Monday, August 30, 2010

The Microsoft Certified Master program

I just added the MCM logo to my blog. Why? Just another certification from Microsoft? Last time I looked on my transcript, I had the following, MCT, MCSD, MCDST, MCAD, MCDBA, MCSA, 2 MCITPs, 19 MCTSs, 5 MCPDs and 3 MCSEs. Each of those certifications took a lot of work and study and I consider each a good proof of competence in a technical area. Why am so excited about 3 more unpronounceable letters? ( so much so that when the email came late at night on Friday, our whole family was dancing around our home).

The key lies with the difficulty of the Master certification. The Master certification in effect certifies that one is an expert in a particular area, in my case SharePoint 2007. When I came to the three weeks of intensive course in Redmond in March 2009, I considered myself very competent in SharePoint, I had worked with SharePoint from the early beginnings of Digital Dashboard, all though the incarnations 2001, 2003 and 2007. I had gained a lot of experience, coaching a consultancy to become a SharePoint consultancy, retraining their consultants and developers to become SharePoint consultants and developers and fielding all the more difficult problems that came up. However, coming to Redmond I was a Commerce Server expert, not a SharePoint expert and to obtain the Masters certification I had to become an SharePoint expert. The 3 written exams are difficult enough, but it is the lab exam that is the real monster. 8 and a half hours of real world tasks that would usually take 8 and a half days in the real world. Because of the time difference between Europe and the US, by the end of my retake it was after midnight and I was so exhausted I would have had difficulty spelling SharePoint let alone doing any tasks. It took me more than a year after the Redmond training to reach the level of expertise required. Some of the recipes on this blog are the product of that preparation. Does that mean that I now think I know everything about SharePoint? No, it means that I have to continue learning constantly just to keep up. Being a master requires clearly identifying what you do not know and constantly filling in the gaps.

What advice do I have to others considering the same path? Firstly, I would advise you to be sure you are an expert before you get to Redmond. You will get much more out of the class. The experience is unique, you are sitting with a class with vast experience and the program tries to get the instructors who have the best knowledge in the world. Not all of them are natural teachers, so you also have to be able to draw the information out of them. It is also much easier if you can concentrate just on one product, my life is made a lot more difficult in effect trying to be a master of both SharePoint and Commerce Server, (even though there is no master program for Commerce Server).

Now that I have joined an small group of MCMs, (I calculate that I am the 18th outside Microsoft to obtain this qualification for SharePoint), do I think that we know SharePoint better than anyone else? No, I am very conscious that there are doubtless many good SharePoint experts who will not get this opportunity. (Having my own company meant that it was easier to convince my boss.) What about MVP's? I realize that MVP is an award given in recognition of services to the community, it does not in itself certify that one is an expert in that area. That said, we had 2 MVPs in our class and they were among the best in the class. The Master certification however, certifies that one is an expert right across SharePoint not just one particular area. Thus it is especially the case that although there is a focus on the architecture of large farms, since this is where you especially need a Master, a Master also has to know the development side well also. While there can always be gaps in a Masters knowledge, the breadth and depth of the exams sure tries to make sure that those gaps are small.

What is the Return On Investment from the Masters program? The jury is still out on that one. It would help us if Microsoft would require (or strongly recommend) having an MCM on board for large installations. It would help if a Gold Partnership received an advantage in competencies for having a Master involved. Unfortunately, they have recently gone the other way, and the Partner program no longer counts an MCM as counting as two MCPs.

What is my next step? I need to first make sure that my understanding of Commerce Server and SharePoint 2010 is at the same level as my understanding of SharePoint 2007. And that is a challenge enough for today.

Here are some of my classmates blogging about their experience:
http://www.houberg.net/archive/2009/04/06/master-training_are-you-ready.aspx
http://www.sharepointchick.com/archive/2009/04/08/the-microsoft-certified-master-experience.aspx
http://harbar.net/archive/2009/04/28/certified-master-for-sharepoint-2007-ldquor2rdquo.aspx
http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=301
http://www.sharepointbits.com/blog/2009/10/31/freshly-minted-microsoft-certified-sharepoint-master.html
http://blogs.msdn.com/b/ramg/archive/2009/05/16/my-mcm-experience.aspx

Friday, August 27, 2010

Creating a generic Data Form web part with SharePoint Designer 2010


If you create a List Form web part and save it to a file or gallery you get a prompt whether you want the web part saved with a relative path (list name is stored in the web part) or fixed to thesite (list id is saved in the web part)


If you create a Data Form web part and save it to a file or gallery you do not get this prompt.
Insert > Data View > Empty Data View
Select a Data Source, then insert fields as Single Item Form.
Save Web Part to a gallery.

To make the web part generic and referencing a file name you need to do the following changes.

In the property ParameterBindings replace:
ParameterBinding Name="ListID" Location="None" DefaultValue="{01CF5B35-CB1E-4A5A-82D1-144C6A0312E2}"
with
ParameterBinding Name="ListName" Location="None" DefaultValue="Shared Documents"

Also replace
property name="ListName" type="string">{01CF5B35-CB1E-4A5A-82D1-144C6A0312E2}
with
property name="ListName" type="string">Shared Documents

remove this line
01cf5b35-cb1e-4a5a-82d1-144c6a0312e2

And replace each occurence of
ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{01CF5B35-CB1E-4A5A-82D1-144C6A0312E2}" Name="ListID"
with
ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="Shared Documents" Name="ListName"

Make sure that the ListId and the List Guid do not appear any where else in the webpart.

Now you have a generic Data Form web part!

With thanks to Sandeep and the folks at Trinedy.