I went through the most challenging MCM program this year, I passed the knowledge exam, but did not pass the Qual Lab exam – scored 63% (need 70% to pass it) in my last attempt. I was close, but not close enough to crown the title.

MCM program is the most valuable professional training program I have ever attended in my career. You need to commit a lot of time and energy before jumping on and starting the journey. For me, I spent lots of time, but not enough time to make the final pass; and this is the most valuable lesson I learned.

Here is my thought about SharePoint MCM program:

1. It is totally technology focused, much less focus on the side of governance, planning, Architecture diagram work and documentations;

2. It focuses on hands on experiences, knowledge is the basic, but it tests your working experiences, and, how fast you can get things done

3. It covers almost everything related with SharePoint technology, deep and broad.

4. It is a more IT Pro focused training program.

5. It requires you commit tons of time to prepare and finish. If you are always busy with work, it is very tough to balance the MCM program, work and your life.

6. If you do not know something, just try it out yourself immediately – this will help with the exams

7. Learn summarizing tips from the experience and the real work, always find a way to speed up the SharePoint implementation and configuration work.

8. Good exam experiences and timing skills -:)

9. Keep in great shape — mentally and Physically

10. Take it easy, just enjoy -:) Anyhow, being able to or not being to get a MCM title, everyone learns a LOT! As a SharePoint IT Pro, learning is your life time commitment – you cannot carry on your 2010 MCM title to SharePoint 2013. Technologies updated so fast, and certifications changed even faster. You want to keep the title? You keep learning. -:)

Believe me: when you feel that you really understand what exactly I am talking about, you are getting closer to achieve your goal.


Here are the detailed implementation steps about the SharePoint 2003 Site Report Configuration and Deployment Guide on Contoso environment:

Note: SP2010 has a web analysis service running at different levels and provide detailed web analysis OOTB. Now, in SP2013, it is not a SharePoint Service any more, instead it is integrated into Search service and is a standing alone feature with its own Content DB. From 2003 –> 2007 –> 2010 –> 2013, Web analysis is changed significantly. Although the component was changed dramatically, the Object Model is still similar, and approaches listed below are still useful and can be served as a solution design reference.


Pre-requirement and configuration check list:

  1. Make sure that the logging report is turned on. Contoso should already be turned it on by default.
  2. List all the sites that you wanted to see the usage report information.
  3. Make sure using an administrator account, which also have at least View Usage Data permission for all the sites we want to monitor.

Deployment Guide:

  1. On Contoso product server box, locate file folder under:  _\Templates\Admin\1033\, copy the script web page SitesUsageReport.aspx to the folder.
  2. Navigate to Central Admin site, right after https://ContosoCentralAdmin/ add SiteusageRepport.aspx, and hit refresh button.
  3. Wait for around 4-5 minutes (or whatever it takes to finish running the codes), the report will rendering on the web page
  4. Use the browser to save it as a .xml file
  5. Use excel 2010 tool to open the file and do analysis (sum, grouping, filtering) using excel tool.

Extra notes:

  1. Using this script tool we can collect all the site pages/lists/document libraries data in past month.
  2. The script is deployed on a Central Admin site so users would never have a chance to view this page –security is important.
  3. Any error/exception is written to the web page to provide a friend error message information for debugging and trouble-shooting purpose.
  4. This tool can be modified to get other usage reporting data, such as browser types to access Contoso sites, Users information to access Contoso, OS used to access the Contoso collaboration site, etc. As long as the SharePoint Object Model supported – scale up capability.
  5. This tool also can be modified to do similar site usage reporting foe SharePoint 2007 and 2010 versions – scale out capability.
  6. Since the testing environment I used has very limited site usage data, there might be some cases that would not be considered when it is running on Contoso portal. But it should not crash the server, since it is reading and query some content database tables.
  7. To have a better performance result, suggest running this script at night, when there is less number of user access Contoso sites.

One of the projects I finished before is to implement a SharePoint 2003 -:) Site Usage report .

Note: SP2010 has a web analysis service running at different levels and provide detailed web analysis OOTB. Now, in SP2013, it is not a SharePoint Service any more, instead it is integrated into Search service and is a standing alone feature with its own Content DB. From 2003 –> 2007 –> 2010 –> 2013, Web analysis is changed significantly. Although the component was changed dramatically, the Object Model is still similar, and approaches listed below are still useful and can be served as a solution design reference.

Requirement: For upgrading 2003 to 2010. It is helpful to understand what the most popular SharePoint sites/pages are, and which SharePoint sites/pages are never used before the upgrading work.

My Original Thought and initial design is to put several options on the list:

Step One: extract the site usage data from the SharePoint Sites, including all sites, sub sites and each detailed pages.


1. Use a third party tool, like CardioLog, looks it provides exactly what I need, but the full version of the software is not free.

2. Use existing usage static page: this is same as if you configure the usage statics on the central admin page. As we already knew, this approach is not including sub sites, we have to navigate to all the sites/sub sites to get usage data. This is not a good approach if we need to go through over 5,000 sites.

3. Use customized web page to collect the site and sub sites usage data and gather them together into one single page – in this way you do not need to navigate to all the sub sites, and it will return all the usage data back on one page for one site collection. – It is a preferred approach. we can then go through all the site collections and get the usage data from all sites and sub sites and put them together.

5. Use Stsadm tool. There is no command related with site usage analysis, but there are a couple of commands to loop through the site collections. Did not find out if there is any built-in option available for Listing usage data there, Looks like I have to build a stsadm command extension, this is sort of painful, especially when SharePoint 2003 Object Model is not as neat as 2007 version.

6. Work on configuring the Log file and find/build a log reader to get the usage data and build a UI to display the extracted Usage data. This also needs customized code to parse the log data.

7. Work on SharePoint Database to extract all usage information is recorded on a SharePoint database table. Then using query against the database to calculate the usage summary data. – This need further understand the DB schema structure regarding how it is to store the usage data, and need to access SharePoint DB without using an API.

8. Write or use some tool to parse the user request data information directly at the IIS level since IIS 6.0 support the ISAPI routing pipeline. – This is a good approach if we do not require detailed request information but it needs lots of work on IIS log information parsing process.

Compare with different approaches:

Option 3 is a better choice, it requires using .NET 1.1 to against the SharePoint 2003 Object Model using VS tool. There are two options:

1.Create a unique virtual directory under the portal web site in IIS to deploy the page with codes running on the back end if building a web site, and we do not want it interfere with the running SharePoint sites.

2.Using a script page runs script to access the Object Model to get information. We can deploy it under some secured site so only administrator can view the page results.

Step Two: Analyze the data

A well-structured data format is the base to simplify web site usage report analysis. Since a script page can control how to write out a file, decide to use an xmlwriter class to write out a xml format file on the output page, the save the page as a xml file. Using excel 2010’s new feature to read the xml file directly and then doing analysis accordingly.

Solution Design:

Final decision is option 3, and then writing a script page to reach the SharePoint 2003 Object Model to loop through all virtual server, site collections, sub sites and each pages, and use usage analysis function to get the usage data. Since we are using object model, we get all the current usage data for the latest 31 days by default. This script is writing a xml formatted output on the page itself, and it is then saved as a xml file, and  it is proceed by excel 2010 tool.

A couple of weeks ago, I joined Microsoft interview team for “Final Day” technical interview, Here are some foundamental questions I designed and wanted to test the candidates to evaluate their SharePoint knowledge:

  • 1.  Describe the most complicate SharePoint project you have done in the past, what role you were in?
  • 2.  You technical strength in SharePoint 2010 / 2007?
  • 3.  How to deploy a Farm/Sandboxed solution in a new SharePoint Farm?
  • 4.  For “Send to connection” feature in SP 2010: what options you have to copy/move a document?
  • 5.  How does a document ID and document Set work?
  • 6.  How to avoid duplicated document ID?
  • 7.  What are the two type of web parts you can create from code?
  • 8.  What does the refiner web part do in SharePoint search result page? What is the limitation of refiner? How about in FAST Search?
  • 9.   What are the two authentication types for SharePoint 2010?
  • 10. What are the two approaches to upgrade 2007 to 2010?
  • 11.  What is the foundmental code base for SharePoint workflow? What is new for SharePoint 2010 workflow?
  • 12.  Personal site will be created at which level? – Site collection level
  • 13.  What need to be added for REST web service working?
  • 14.  Which tool must be used for LINQ to SharePoint?
  • 15.  What is Silverlight? How does a Silverlight connect to SharePoint data?
  • 16.  Difference between NTLM and Kerberos
  • 17.  in Patching upgrade: what v2v and b2b means?
  • 18.  Talk about any and all experience you have with any MSFT SharePoint Team Blog and/Technet articles 
  • 19.  Experiences with Powershell?
  • 20. What is the biggest architecture changes for SharePoint 2010 vs SharePoint 2007? 
  • 21. Database High Availability: what are the three types of approaches are?
  • 22. Your experience with large enterprise solution deployment and data migration?
  • 23. Cache configurations:
  • 24. Applying backup/restore strategy:  If you want to move a sub site from Dev Farm to another Prod Farm, what
  •        powershell command you will use? 
  • 25. What does MSF and MOF mean?
  • 26. How many zones one web application can be extended to?

 Recently I was working with the client who needs to review their SharePoint Farm infrastructure configurations. Instead of digging into the weeds immediately, I designed a check list (Cheat Sheet) to list important configuration information about network, hardware and disk storage, SQL, SharePoint server and Monitoring systems, then start to working on the detailed analysis and giving recommendations. Here is the brief list of my cheat sheet:


  Yes No
  1. What is the network bandwidth to support the traffic?
     2. How many VLANs for the SharePoint Farm and how does each VLAN response for the server traffic? Do you have two VLANs for your farm –one for the page traffic and a second backend channel for your servers to talk to each other and SQL?    
    3. what is the name of the Load balancer been installed and configured?   ¨ 
   4. Has all load balanced servers been tested? (WFEs, App Servers, and SQL clustering)   ¨ 

Disks I/O and Domain Controller

  Yes No
  1. RAID5 or RAID10?
     2. Shared SAN or DAS or NAS?    
     3. Does each SharePoint Database data or log file have a unique disk array/on separate spindles? If no, how does the data/log file be placed on the disk array? Yes they have unique LUNs (partitions), but they are contained within the same RAID group ¨ ¨ 

 SQL Server

  Yes No
  1. TempDB:

1). Is tempDB on its own drive?

2). Does it have RAID10 storage?

3). Number of data File?

4). Configuration of Pre-Sizing TempDB? 

    2. Does the SQL Server configured as allowing “instant file initialization”?    
    3. What is the configuration for Pre-sizing Database Files and Adjusting Auto-growth?    
   4. Log Files:1). Number of Log Files Per Database?

2). Pre-Size Log File configuration?

3). Use RAID5 or RAID10?

5. How many instances running on SharePoint SQL Server?    
6. How many content DB created? What is the current content DB size?    

 Web Server, IIS and Web application Pool, and web site configuration Settings

  Yes No
  1. If using SSL, is it using sticky session so don’t have to re-negotiate on each page?
    2. What service applications are enabled and configured?    
    3. What is the configuration to recycle the web application pool?     
4. Are separate application pools being used per web application? ý ¨ 
5. Are separate service accounts being used?    
  1. Output cache:

   1). Blob cache: how does it configure in web.config file?

   2). Object cache: Are you monitoring the object cache and sizing?

   3). SharePoint Publishing Cache: how does it configure?


Other Infrastructure Settings

  Yes No
  1. Is a SharePoint 2010 specific anti-virus being used and are the appropriate directories being excluded by the file system AV client?
    2. Can SharePoint servers be integrated into SCOM?    
    3. If use NTLM, how many SharePoint servers are sharing one Domain Controller?     
    4. Is DPM tool available for SQL Server? Is log shipping or database mirroring being configured for BCM?    

Here are some major differences between two products, talking about OOTB Navigation feature limitation about SharePoint Foundation 2010:

There are two limitation areas/concerns:

  1. OOTB Navigation UI:

Since there is no Publishing feature on Foundation, when using UI to customize the Navigation on Site Setting, UI looks different comparing with Server 2010:

for instance, have to add separate links to show on Top Nav bar or Left Nav Bar, while in Server 2010 you can choose show Sub Site or Sub Page (if turn on Publishing feature);  There is a virtual editor for Navigation Editing and Sorting in SP Server 2010, Foundation version does not have one, etc.

2. Navigation Providers:

Using master page you can also change the navigation Providers for sitemap to configure the site map resources for both Global Navigation and Current Navigation bars, in SP2010 Server there are 8 more SiteMapProviders available OOTB, includes:

1)      1 Search related site map provider:

ExtendedSearchXmlContentMapProvider,  which is a Provider for navigation in Extended Search page, it uses the site Map File under IIS web app directory “_app_bin/layouts.sitemap”

2)      6 Publishing features related Providers:

a). GlobalNavSiteMapProvider, CombinedNavSiteMapProvider, CurrentNavSiteMapProvider, CurrentNavSiteMapProviderNoEncode  — there providers also help to configure second level navigation bars on the master page

b). GlobalNavigation and CurrentNavigation, these are Providers for MOSS Global and Current Navigations, which are useful to help Visual Upgrading “look and feels” feature for SP2010.

3)      1 Portal related navigation Provider:

SiteDirectoryCategoryProvider, which is a Site Directory category provider. Site directory feature is not really working well on SP2010 server, I have no knowledge about what the future of the site directory on later version.

Windows Azure Platform is becoming the hottest topics among many new technologies. Cloud computing has the potential to show people what the future IT world may look like in the near future.  This could be the start of an IT revolution. In the future, imagine that we will have most of the social/public facing RESTful Services/Web applications online – it becomes easier to build, access and consume this reliable and rich information. This is the next move for lots of Web services and applications we are using now.

So what is the next move for SharePoint in the near future, after the release of SharePoint 2010 on May 12th? It’s all about the “blue sky”.  Much like Windows Azure is driving application development to the cloud, SharePoint Online is driving SharePoint adoption to the cloud .

It is here. It is happening. It is the future ….

Many people would ask: how far do we need to go from “Present” to the ”Future”? Cloud computing sounds too real to be true, it is not a real thing in our real life — “It looks like it is a fancy technology that will never happen to me, it is another version of ‘Internet of Things’“.

But it is here already — SharePoint Online has been announced for more than one year. We already started using the Azure technology in the real world. The current SharePoint Online is still limited with WSS3.0 functions on most of the part. After Microsoft started supporting multi-tenant features, some small and medium sized companies started looking into it and a few companies, like GlaxoSmithKline, started using it. These companies outsource IT services to Microsoft. With SharePoint’s multi-tenant version, it targets smaller customers. Since then, Microsoft has been adding tons of customers in the multi-tenant space. In 2010, we’ll see more functionality adding into the multi-tenant space.

In SharePoint 2010, development on-premise and online is the same – this is one of the most exciting improvements for SharePoint Online. You can write what is called sandboxed solutions. These solutions can run either on-premise or in the cloud – which makes it easier for customers to either run in hybrid environments (where they have part of their solution on-premise and part of their solution online) or to make the move to all online. At the same time, Microsoft is investing in the platform in the cloud. Later on, you can use SharePoint not just as the application, but also write to the platform called SharePoint inside the cloud – exactly like the Windows Azure Platform we can use today, and we can call it “SharePoint Azure Platform”

Benefit to use SharePoint online: — enhanced SharePoint server system integration and configuration

  • You can get it up and running quickly, and integrate it with Exchange service, Office Online, emails, etc. You still need to use your own source to do administration, but system integration and  configuration are being taken care of.
  • Latest software upgrade/patches, server upgrades, etc. These server side issues will be automatically handled by Microsoft

What will be improved in SharePoint Online 2010: (which is planed to be released this Summer)

  • Storage – The currently version is limited to 20 Site Collections per account; SharePoint Online 2010 allows unlimited site collections.
  • Feature Functionality – Currently Microsoft Online does not offer all feature functionality (for instance: InfoPath is not available now).  All SharePoint 2010 feature functionality is envisioned as being available on SharePoint Online Services 2010.

     EXCEPT for the following features, which requires an on-premise installation:

  • FAST Search Functionality — which is a very powerful feature for SharePoint server 2010 with FAST service
  • PerformancePoint Services — this is a big lose for SharePoint online 2010
  • Microsoft Information Rights Management — need to install extra services
  • Site Variation — need to install language package on server side
  • Content Staging and Deployment – limited for SharePoint Publishing feature?
  • Business Data Search — cannot include Business data into Search scope for online version

Identity and Access for SharePoint Online Services 2010

In the current version of SharePoint Online, the client must install a package to use Microsoft Online services for access and identity. In SharePoint 2010, Microsoft Online Services will have two choices for identity and access: Managed Identities in Microsoft Online, or use Federated identity against the client’s on-premise Active Directory. This makes the authentication more customizable.

In SharePoint Online 2010, you will see it looks like an on-premise SharePoint Server 2010 with following features:

  • Rich in browser page design, with server side Ribbon, of course.
  • Office Web Apps (view and edit documents on the web page, without having the client application installed on the desktop), and can use an iPhone for reading Microsoft Office files.
  • MySite and Social Computing – this enhances searching and social networking on SharePoint
  • Seamless Office Client application support – you can use Office application to integrate BCS and synchronize Office applications to edit data from Sharepoint content database or external data sources.
  • Excel Services for data driven pages – all should be working on the site page, no need to install an excel tool on local client machine.
  • Fully customize sites using SharePoint Designer (custom page updates and workflow built in) — This is Big! Shaerpoint designer is a much, much more powerful tool than ever, it can do most of the customization work like creating a workflow, creating BCS, creating content types, adding customized views, etc.

So with SharePoint Online 2010, many more small and mid-sized companies can choose SharePoint as a internet facing web page, or as their intranet site, without taking care of SharePoint integration and configuration complexity. SharePoint Online is SharePoint in the cloud – are you ready?.