Tuesday, March 1, 2016

Due to my previous employer making Intellectual Property Right claims to knowledge that I obtained while in their employment, I have removed all technical blog posts since February 2012.
I'll be updating the topics and posting new posts here from now on:

http://powerblogger.tips

Monday, February 6, 2012

Coding Duel online

While researching more on Test Driven Development for SharePoint I came across a cute code duel website. The basis of this website is to write valid C# code and have the PEX engine analyse the code, come up with suitable test values and then compare those against expected values. If your code matches the secret implementation which is providing the expected values, the PEX scan will complete without errors.

http://www.pexforfun.com

Although this site can provide hours of fun entertainment for bored coders ( I could not resist to solve one or the other puzzle myself to try it out) and feel good factor for coming up with clever and light solutions (resource constraints stop you from using the full object model) it can also serve a very different purpose:

Recruitment Assistance! Sit your next development candidate infront of two or three of those puzzles and let them solve them there and then. No need to come up with lots of scenarios. No need to test the solutions. Heck, no need to know anything about coding at all. Just let them solve it and confirm that the puzzles complete with a success note.
Record exactly which puzzle was atempted, and if a candidate gets stuck let them try out another one. The senior developer can always evaluate which ones were completed and which ones not at a later stage.

Friday, December 30, 2011

Lync User Adoption And Training Kit

The team at Microsoft has made a great resource available for companies planning to roll out Lync within their organization. http://lync.microsoft.com/adoption-and-training-kit

Here you will find ready to use training material for end users, a pre made help site which you can make available in your intranet, a great overview of who needs what level of training and lots of useful resources and tools. Now, creating a Lync Adoption Plan for your organization has become a matter of hours and not days/weeks.

Wednesday, December 7, 2011

Trend Analysis of Lync Servers using Reporting Services Snapshots

So you have a Lync farm and have monitoring set up. You keep the last 6 weeks worth of data for those reports but what about last year? How can you easily compare the usage and network statistics that the OOB Lync Reports give you effectively and efficiently?
SQL Server Reporting Services Snapshots could be the answer to your question. To enable Snapshots and start tracking usage over time you need to do following things:
1) un-hide the individual reports in Report Manager
2) create a snapshot schedule
3) subscribe to the snapshots so you don't forget to look at the data!


By default only the homepage and the dashboard can be viewed from the Report Manager url (http://your-report-server/Reports). At the root of that url you will find a folder called "Lync Server Reports". Within that folder is the Reports Home Page. This is the main dashboard that opens up directly when you open the reports from the Lync Control Panel. At the same location you will find a sub folder called "Reports Content" This is actually where all the juicy sub-reports are hidden. Yes. HIDDEN. But you can still see them by clicking the Show Details button found at the top right of the report manager. From there you can then unhide reports, set up snapshot schedules and even subscribe to the snapshots to easily stay informed about your general lync farm health.



First go to the Report Manager Url which is the fqdn of your report server followed by /Reports




 Then drill down to the Reports Content Page with the Show Details button at the top right. Just two Datasources and the Monitoring Dashboard are visible. Click on the


Click on the edit properties button of the report to change the visibility status.



That's the magic tick box to make the reports easily visible in the report manager again.



Click the History link of the Report to set up a snapshot schedule



From here you can run a snapshot at a regular interval



And finally add a subscription based on the snapshot so you get an email and can look at performance related data on a regular basis! (If email is not an option, check smtp settings of reporting server)


A couple of tips along the way:
  • Set up different schedules for different types of reports
  • Set up Subscriptions only for reports that you are planning on reading
  • Make sure your Reporting Services Server is properly configured and has a valid SMTP server address associated with it. (Report Server Configuration Tool on the Reporting Server). Otherwise the subscriptions page will not show email as an option!


Tuesday, September 20, 2011

Hands on Labs for SharePoint and Lync

[Update 7/12/2011: Found two more Lync Labs and added them to the list]

Often when I teach a course students feel overwhelmed by the sheer amount of information bombarding them in just five days. Obviously the best medicine is to go over the books when they have had a chance to breathe and digest all the great new things they have learnt. But the best way to learn is not to read about it but do it! No, I can't give my students copies of the lab servers to play with at home. And no, you should not repeat the exercises on your production SharePoint farms. Luckily there is a simple answer to this dilemma. It is called Virtual Labs.
The boys and girls at Microsoft have put a tremendous amount of effort and resources into creating lab environments which anybody can use to gain invaluable skills with the SharePoint products. The labs are split into two main audience groups. Administrators and Developers. While the administrators will be able to get their juice from Technet the developers can get their labs from MSDN. Below is a compilation of labs which I think you will find quite useful. (Lync labs at the end of the article)


TechNet Virtual Labs for SharePoint 2010 Administrators

  • TechNet Virtual Lab: Backup and Restore in SharePoint Server 2010 - After completing this lab, you will be better able to use farm-level backup and restore features in Microsoft® SharePoint® Server 2010, use granular backup and content recovery tools in SharePoint Server 2010, and use Microsoft Windows® PowerShellTM to restore sites and lists in SharePoint Server 2010
  • TechNet Virtual Lab: Business Connectivity Services - After completing this lab, you will be better able to create an External Content Type based on a back end database and view and manipulate backend data in External Lists
  • TechNet Virtual Lab: Business Continuity Management in SharePoint Server 2010 - After completing this lab, you will be better able to configure and use the versioning features in Microsoft® SharePoint® Server 2010, configure and use the SharePoint Server 2010 Recycle Bins, and use Microsoft Windows® PowerShellTM cmdlets to perform backup and restore operations in the SharePoint 2010 Management Shell
  • TechNet Virtual Lab: Configuring Remote Blob Storage FILESTREAM Provider for SharePoint Server 2010- After completing this lab, you will be better able to enable FILESTREAM on the appropriate SQL Server database, provision the RBS data store, install the Remote Blob Storage (RBS) FILESTREAM Provider, enable the RBS FILESTREAM Provider on the appropriate content database, and configure the RBS FILESTREAM Provider scenario
  • TechNet Virtual Lab: Configuring Tenant Administration on SharePoint Server 2010 - After completing this lab, you will be better able to create a new Tenant Administration site collection, manage site collections through Tenant Administration, and create a partitioned service application
  • TechNet Virtual Lab: Configuring User Profile Synchronization in SharePoint Server 2010 - After completing this lab, you will be better able to configure the User Profile Synchronization Service in Microsoft® SharePoint® Server 2010, start the User Profile Synchronization Service, create a New Profile Synchronization Connection, edit Profile Synchronization Connection Filters, map User Profile Properties, and configure Profile Synchronization Settings
  • TechNet Virtual Lab: Enterprise Search - After completing this lab, you will be better able to create a new content source for SharePoint to crawl, exclude certain results from being crawled by search, create a Search Center, and customize and extend the user interface
  • TechNet Virtual Lab: Introduction to Microsoft SharePoint Server 2010 Upgrade - After completing this lab, you will be better able to verify existing 2007 farm and content upgrade readiness through the use of the 2007 pre-upgrade checker command, verify existing 2010 farm readiness to upgrade specific content databases using the 2010 Test-SPContentDatabase cmdlet, initiate upgrade for individual content databases using the 2010 STSADM -o addcontentdb command, review the upgrade session status using the improved Central Administration web site Upgrade Status page, initiate upgrade for multiple individual content databases using multiple PowerShell sessions to trigger parallel upgrade sessions, troubleshoot an upgrade failure due to missing features, and how to restart upgrade for individual content database, and use Visual Upgrade features to switch sites from the 2007 product look and feel to the new 2010 product user interface
  • TechNet Virtual Lab: New IT Pro Features in SharePoint Server 2010 - After completing this lab, you will be better able to find your way around the Microsoft® SharePoint® Server 2010 Central Administration Web site, use basic site management tools in SharePoint Server 2010, describe the health monitoring and Web analytics capabilities of SharePoint Server 2010, provide and consume SharePoint Server 2010 service applications, and use commands from the Microsoft Windows® PowerShellTM command-line interface in the SharePoint 2010 Management Shell
  • TechNet Virtual Lab: Performance Management - After completing this lab, you will be better able to set limitations on the number of list items returned at a time, understand how large list limits affect users, configure Resource Throttling, and understand how Resource Throttling and HTTP Request Monitoring and Throttling affect SharePoint performance and user experience
  • TechNet Virtual Lab: PowerShell and SharePoint 2010 - After completing this lab, you will be better able to find your way around the SharePoint 2010 Management Shell and interact with SharePoint Web applications, site collections, and sites, use Windows PowerShell scripting techniques such as pipes, filters, wildcards, and enumerations for SharePoint Server 2010 administration. You will also be better able to explain how to create and assign variables and use the SharePoint object model from Windows PowerShell
  • TechNet Virtual Lab: SharePoint Designer for IT Pros - After completing this lab, you will be better able to create and modify lists on the SharePoint site, create and modify workflows, and save SharePoint site as reusable template
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Business Continuity Management - After completing this lab, you will be better able to navigate through an unattached SharePoint Content Database, export content from an unattached SharePoint Content Database, and import previously exported content
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Installing and Configuring - After completing this lab, you will be better able to successfully install and configure SharePoint Server 2010, create a Managed Account in Central Administration, create a Web Application in Central Administration, and also create a Site Collection within the Web Application
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Service Applications - After completing this lab, you will be better able to configure the new Managed Metadata Service Application, associate the Managed Metadata Service Application with a web application, manage the Metadata Service by adding your own custom groups and term sets, import a group into the Enterprise Term Store within the metadata service, utilize the Managed Metadata Service Application within a list, configure My Site settings, and create a My Site
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Upgrade - After completing this lab, you will be better able to verify existing 2007 farm and content upgrade readiness through the use of the 2007 pre-upgrade checker command, verify existing 2010 farm readiness to upgrade specific content databases using the 2010 Test-SPContentDatabase cmdlet, initiate upgrade for individual content databases using the 2010 STSADM -o addcontentdb command, review the upgrade session status using the improved Central Administration web site Upgrade Status page, initiate upgrade for multiple individual content databases using multiple PowerShell sessions to trigger parallel upgrade sessions, troubleshoot an upgrade failure due to missing features and know how to restart upgrade for individual content database, and use Visual Upgrade features to switch sites from the 2007 product look and feel to the new 2010 product user interface
  • TechNet Virtual Lab: Windows PowerShell in SharePoint Server 2010 - After completing this lab, you will be better able to find your way around the SharePoint 2010 Management Shell and interact with SharePoint Web applications, site collections, and sites, use Windows PowerShell scripting techniques, such as pipes, filters, wildcards, and enumerations, for SharePoint Server 2010 administration, and explain how to create and assign variables and use the SharePoint object model from Windows PowerShell

SharePoint Server 2010 Virtual Labs for Developers

  • MSDN Virtual Lab: Client Object Model - After completing this lab, you will be better able to retrieve lists, print a list, and use ADO.NET data services
  • MSDN Virtual Lab: Customizing MySites - In this lab you will work with some of the new events capabilities in SharePoint Server 2010 as well as the new Visual Studio 2010 SharePoint Tools. You will customize public my site by adding new public page, which can host any additional services exposed for my site end users, create stapled features to customize structures created in personal my site using Visual Studio 2010, and also create delegation control to customize top navigation and web parts, which exists by default in the personal my site
  • MSDN Virtual Lab: Designing Lists and Schemas - In this lab you will work with some of the new events capabilities in Windows SharePoint Services 14 as well as the new Visual Studio 2010 SharePoint Tools. You will create a custom list definition, template and instance using Visual Studio 2010, implement referential integrity between two SharePoint lists so that items in one list cannot be deleted until referenced items in a child list are removed first, and create a synchronous event receiver that is triggered when new task is created
  • MSDN Virtual Lab: Developing a BCS External Content Type with Visual Studio 2010 - After completing this lab, you will be better able to build a BCS External content type, create a Business Data Catalog Model project, configure the External Content Type for offline use, and open the list using Outlook
  • MSDN Virtual Lab: Developing a Sandboxed Solution with Web Parts - In this lab you will construct a basic Web Part that will call into the SharePoint API to retrieve some information. Next it will try and use SPSecurity to try to elevate privileges. The third and last action that is added is an attempt to initiate a HTTP connection to an external site
  • MSDN Virtual Lab: Developing a Visual Web Part in Visual Studio 2010 - After completing this lab, you will be better able to work with existing Web Parts and Linq and also you will be more familiar with connecting two web parts
  • MSDN Virtual Lab: Developing Business Intelligence Applications - After completing this lab, you will be better able to use the Chart Web Part to create graphical representations of data within SharePoint lists, use Microsoft Excel 2010 to examine and data from SQL Server Analysis Services, and publish an Excel workbook with Excel Services to make it accessible to users using a browser. You will also be able to work with a PerformancePoint Services site and the new Dashboard Designer
  • MSDN Virtual Lab: Enterprise Content Management - In this lab you will work with some of the new capabilities added to SharePoint Server 2010 in the area of Enterprise Content Management. You will verify the configuration of an Managed Metadata in a SharePoint Web application, customize the Managed Metadata term store and leverage it within an existing SharePoint site, and implement document sets
  • MSDN Virtual Lab: Getting Started with SharePoint 2010 - In this lab you will begin your work with SharePoint 2010 and become familiar with the Virtual Machine (VM) that you will be using. You will get experience working with the SharePoint 2010 Central Administration site as well as working with a standard team site. This will allow you to experience the new user interface concepts introduced in SharePoint 2010 such as the server-side ribbon and in-place item editing. You will also get a chance to write and test C# code using the SharePoint Foundation 2010 object model
  • MSDN Virtual Lab: LINQ to SharePoint 2010 - In this lab you will create lists for use with LINQ, and create a web part for accessing the list data using LINQ
  • MSDN Virtual Lab: SharePoint 2010 User Interface Advancements - After completing this lab, you will be better able to create and customize SharePoint 2010 lists for storing ideas for new toys, and use various new features of SharePoint, SharePoint Designer and InfoPath
  • MSDN Virtual Lab: Visual Studio SharePoint Tools - In the lab you will become familiar with the standard project structure used by SharePoint Tools, create and test a project that contains a Feature, a Feature Receiver and a Web Part, configure SharePoint Tools deployment options, and debug a SharePoint Tools project by single-stepping through the code in your solution
  • MSDN Virtual Lab: Workflow - After completing this lab, you will be better able to use Visio to create the high level process, export the Visio model to SharePoint Designer 2010, and use SharePoint Designer 2010 to complete the detail. You will also be able to export from SharePoint Designer 2010 to a WSP file and import the WSP file into Visual Studio 2010

Virtual Labs for Lync 2010 Developers


TechNet Virtual Labs for Lync 2010 Administrators


Monday, September 19, 2011

Using Office 365 in an Extranet Scenario

This is something that has been one of the most exciting aspects of Office 365 for me. The fast and effective way of creating an Extranet scenario without the need to worry about firewalls, external user accounts or certificates.
When you sign up with Office 365 on an Enterprise plan you get access to your SharePoint Admin control panel. (Sorry folks, the Small business version aka Professional Plan does not have this feature)
There you can create several site collections and even allow external user which have not been set up in your AD or on Office 365 to access your SharePoint sites.
This is great news for companies who work closely with clients and want to use the SharePoint Online part of Office 365 as a information sharing hub.
When you open your first SharePoint team site at :https://youcompanyname.sharepoint.com" as administrator you will notice a new Site Action menu item called "Share Site". This is where you can add users as Visitor or Member to your site or sub site. You will also notice that this does not seem to work for external users straight away. You first need to change two settings for externals to gain access.

  1. On the SharePoint Administration page accessible via https://portal.microsoftonline.com/admin/default.aspx you will find a button that says Settings. Use this button to enable external access for your whole account. 
  2. Then go to the Site Settings of your private site collection via the Site Actions menu and activate the External User Invitations feature under Site Collection Features.

That's it folks. From now on you can add any email address to the Share Site dialog and that person will receive an invitation email to connect to your SharePoint site.
Using what username and password you might ask? Windows Live ID solves this problem for us. This part of Office 365 integrates via federation with Windows Live ID and so the external user can either use their existing Windows Live ID or sign up for a new one.
Once the user has signed in with their Live ID, they will appear in the group that you have added them to. Not any sooner though. They will also appear with their Live ID email which might be different from the email address you sent the invitation to. So before you get a heart attack thinking you got hacked by some random person, double check the email if it does not belong to someone you know who favours cryptic email addresses.

Happy Sharing!

Thursday, September 1, 2011

Call Admission Control (CAC) not working in Lync?

The best tool to test if Call Admission Control (CAC) is actually being used once you have activated it is to use the Logging tool provided with Lync. The Protocol you are interested in is PDP. Another cool tool is the bandwidth monitoring tool provided in the Resource Toolkit. That will show you currently used BW and also existing limits imposed via bandwidth policies.
Should you be in a lab environment, there is a good chance you will not find any CAC entries in the PDP logfile (look for the keywords: requested,current,returned) and the monitoring tool shows Zeros throughout.

CAC is initiated from the client. Effectively the client must know to start asking for a bandwidth for it to turn up in the logs and CAC to do its magic. If the client does not know that CAC is enabled it will not ask. Thus make sure you exit out of the test clients completely and also run gpupdate /force on each test machine after you enabled CAC.

Another universal fix it when Lync clients are misbehaving is to delete the Cache file. For best results go to:
%userprofile%\AppData\Local\Microsoft\Communicator and delete every folder starting with sip_. That will clear out any cached values on your client (and the contact list too) and will force it to pull the latest updates. Careful! that will also delete any connection settings that you might have used for manual configuration instead of automatic configuration.

Finally, try establishing an IM conversation first and adding Audio to that running session. That has proven to be most effective when clients refused to request bw from CAC. After that also non IM initiated sessions request BW.
If you still can't see anything happening on the monitor or requests in the log files I suggest you have a closer look at your Edge and Front End Servers. Make sure all services are running and restart the Lync Bandwidth related services.