Interested in SharePoint Certification?

by Shawn March 24, 2009 09:23

A good place to start from would be here http://www.microsoft.com/learning/mcp/mcts/default.mspx. From there it all depends upon what certification you are planning to take: You can get certified either on MOSS or in Windows SharePoint Services 3.0.

Keep in mind that practical knowledge is essential for all these exams and if you have done couple of implementation, you will find these exams a lot easier.  An easy way to get hands on experience is to download the MOSS trials or even preconfigured VHD's from Microsoft: http://www.microsoft.com/downloads/details.aspx?familyid=67F93DCB-ADA8-4DB5-A47B-DF17E14B2C74&displaylang=en

The Best Cheat Sheet (that have found so far) is  go to these URL's and Check the Skills Measured Sections and start implementing these concepts in your project and keep practicing.   

Check these URLs for Skills measured, Reference Books, and Practice Tests:

The certification path and preparation guides are available at the following URL's:

MCTS: Windows SharePoint Services 3.0, configuring http://www.microsoft.com/learning/en/us/exams/70-631.mspx
MCTS: Microsoft Windows SharePoint Services 3.0 – Application Development http://www.microsoft.com/learning/en/us/exams/70-541.mspx
MCTS: Microsoft Office SharePoint Server 2007 – Configuration http://www.microsoft.com/learning/en/us/exams/70-630.mspx
MCTS: Microsoft Office SharePoint Server 2007 ― Application Development http://www.microsoft.com/learning/en/us/exams/70-542.mspx

Another thing to note is that Microsoft announced SharePoint Master Certification. This Certification path would get you SharePoint Architect or SharePoint Certified Master Credentials.

More details can be found here:

http://blogs.msdn.com/sharepoint/archive/2008/11/10/introducing-the-microsoft-certified-master-and-certified-architect-for-sharepoint.aspx

http://www.microsoft.com/learning/mcp/master/SharePoint/default.mspx

Plus, I think currently you can receive up to a 50% discount.

A for a few SharePoint 2007 Exams tips check out this site:http://www.sharepointforum.com/en-US/Blog/archive/2007/11/20/the-sharepoint-2007-exams-tips.aspx

Tags:

SharePoint

A fantastic set of articles on creating a Silverlight web part for WSS and SharePoint

by Shawn March 20, 2009 08:27

I was about to write up a set of posts on my recent experience on working with Silverlight in SharePoint, however when I ran across these posts from Ton Stegeman I decided that I couldn't have done a better job.

Take a look at his articles as he has written up a set of 4 articles that do an incredible job of outlining how to create a Silverlight webpart and application for Sharepoint

Tags:

Development | SharePoint

Ever wondered how to write code against the BDC?

by Shawn March 03, 2009 10:01

SharePoint 2007: BDC - The Business Data Catalog  (this is from http://blah.winsmarts.com/2007-4-SharePoint_2007__BDC_-_Writing_Custom_Code_against_the_runtime_object_model.aspx)

This post is in continuation to a series of blogposts I put up on BDC - the Business Data Catalog.

Table of Contents:

  • Introduction
  • In-built Webparts
  • Lists with Business data type columns.
  • Search
  • User Profiles
  • Other custom applications targeting a common runtime object model.  <--- You are here.
  • Making it easier to author XML Applications: BDCMetaMan

    Whew!

    My long series on BDC is coming to an end. What a bitch it has been to type so much LOL. So first of all, if I missed something, please ping me, so I can blog about it.

    In this last post, I am going to target the application we wrote here, using custom code.

    Here is a quick sample application targeting literally any BDC app.

    Sniffing your BDC App.

    static void Main(string[] args)
    {
    	string ssp = "SharedServices1";
    	
    	SqlSessionProvider.Instance().SetSharedResourceProviderToUse(ssp);
    	NamedLobSystemDictionary lobSystems = ApplicationRegistry.GetLobSystems();
    	
    	foreach (LobSystem system in lobSystems.Values)
    	{
    		Console.WriteLine("Application: " + system.Name);
    		
    		NamedDataClassDictionary lobClasses = system.GetDataClasses();
    		
    		foreach (DataClass dataClass in lobClasses.Values)
    		{
    			Console.WriteLine("  Entities: " + dataClass.Name);
    		}
    	}
    }
    
  • If I run the above, I get this output -

    Application: NorthWindApp
      Entities: Order
      Entities: Customer

    If you are wondering, I am using namespaces

        Microsoft.Office.Server.ApplicationRegistry.MetaDataModel
        Microsoft.Office.Server.ApplicationRegistry.Infrastructure.

    The references are

        Microsoft.Office.Server.dll
        Microsoft.SharePoint.dll
        Microsooft.SharePoint.Portal.dll

    Now, Let us slice and dice the above code step by step.

    The first thing you see in the above code is SqlSessionProvider. SqlSessionProvider represents a way to connect to the SSP. It immediately sticks out that the BDC runtime can target only the local farm. So, if you wish to allow BDC access over the network, you will need to write a webservice and deploy it on the farm, and access it via the web service.

    Once you get a hold of an instance using SqlSessionprovider.Instance(), you can then start querying it for various stuff. For instance, the first thing I wanted to find out were all the LobSystems (i.e. applications) registered in the SSP. And once I have the applications found, I can find the individual entities in each one of those classes.

    Once I have the individual entities, I can easily find the methods that entity has using the code below -

    DataClass customers = lobClasses["Customer"];
    NamedMethodDictionary methods = customers.GetMethods();
    
    foreach (Method meth in methods.Values)
    {
    	Console.WriteLine("Method: " + meth.Name);
    }
    

    You can continue to sniff around, and you will see that you can find methods, method instances, properties, heck if you snooped around enough, you could literally smell the entire metadata for the BDC app.

    So now that I have information about the BDC app, the next question is "How to use it".

    Using your BDC App.

    In order to actually use your BDC App, you need to first get a hold of the LobSystemInstances. Check the code out below -

    static void Main(string[] args)
    {
    	string ssp = "SharedServices1" ;
    	
    	SqlSessionProvider.Instance().SetSharedResourceProviderToUse(ssp);
    	
    	NamedLobSystemDictionary lobSystems = ApplicationRegistry.GetLobSystems();
    	
    	foreach (LobSystem system in lobSystems.Values)
    	{
    		Console.WriteLine("Application: " + system.Name);
    
    		NamedLobSystemInstanceDictionary instances = 
    		
    		lobSystem.GetLobSystemInstances();
    		
    		foreach (LobSystemInstance instance in instances.Values)
    		{
    			Console.WriteLine(instance.Name);
    		}
    	}
    }
    

    You might ask, what is the difference between a LobSystem and a LobSystemInstance? BDC in MOSS 2007 lets you put upto two instances on each LobSystem. This means, you get different authentication settings for the two instances, for the same application. This is incredibly useful, say when you are setting up search on BDC, because you would typically want search to work under different credentials than regular BDC usage by a user.

    Once you have the specific instance, you can then find the entity, the filters, set filter values, and finally execute the Finder method using the following code -

    Entity customerEntity = instance.GetEntities()["Customer"];
    FilterCollection filterColl = customerEntity.GetFinderFilters();
    
    (filterColl[0] as WildcardFilter).Value = "London";
    
    IEntityInstanceEnumerator customerEnum = customerEntity.FindFiltered(filterColl, instance);
    
    while(customerEnum.MoveNext())
    {
    	DataTable dt = (customerEnum.Current as DbEntityInstance).EntityAsDataTable;
    	PrintDataRow(dt.Rows[0]);
    }
    

    PrintDataRow is simply a method that prints out the values of the DataRow in a single line.

    The full final code looks like this.

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using Microsoft.Office.Server.ApplicationRegistry.MetadataModel;
    using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
    using Microsoft.Office.Server.ApplicationRegistry.Runtime;
    using Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db;
    
    namespace SampleBDCApp
    {
    	class Program
    	{
    		static void Main(string[] args)
    		{
    			string ssp = "SharedServices1";
    			SqlSessionProvider.Instance().SetSharedResourceProviderToUse(ssp);
    
                NamedLobSystemDictionary lobSystems = ApplicationRegistry.GetLobSystems();
    			
                foreach (LobSystem system in lobSystems.Values)
                {
    				Console.WriteLine("Application: " + system.Name);
                    NamedLobSystemInstanceDictionary instances =                     system.GetLobSystemInstances();
    				
                    foreach (LobSystemInstance instance in instances.Values)
                    {
    					Console.WriteLine(instance.Name);
    					
    					Entity customerEntity = instance.GetEntities()["Customer"];
    					FilterCollection filterColl = customerEntity.GetFinderFilters() ;
    					
                        (filterColl[0] as WildcardFilter).Value = "London";
                        IEntityInstanceEnumerator customerEnum =  customerEntity.FindFiltered(filterColl, instance);
    					
                        while(customerEnum.MoveNext())
                        {
    						DataTable dt = (customerEnum.Current as DbEntityInstance).EntityAsDataTable;
    					PrintDataRow(dt.Rows[0]);
                        }
    				}
    			}
    		}
    		
            private static void PrintDataRow(DataRow dr)
            {
    			foreach (DataColumn dataColumn in dr.Table.Columns)
                {
    				Console.Write(dr[dataColumn] + "\t");
    			}
    			Console.WriteLine();
    		}
    	}
    } 			
    

    .. and when you execute this, you get the following output -

    Congratulations - you've just written your first application using BDC. You can now implement the above in a web service, and expose any underlying LOB using a consistent BDC API.

    Here is an interesting exercise for you to try - Try using Office SSO + WindowsCredentials, so the end application's identity matters when calling the web service, and that same identity goes all the way to the web service.

    Have fun!

    Tags:

    Development | SharePoint

    Find out the details behind the "Unknown Error" screen.

    by Shawn January 23, 2009 14:55
    Looking for more details on the "Unkown Error" screen, here is a great way to do it.
    All you need to do is modify a couple things in web.config for the particular SharePoint site you are working on (granted it does require that you have Admin access to the SharePoint Server and folder).
    • In <SharePoint><SafeMode> set the CallStack property = "true"
    • In <system.web><compilation> set the debug property = "true"
    • In <system.web><customErrors> set the mode property = "Off"

    Tags:

    SharePoint

    User Adoption: Educate the End User Community (EndUserSharePoint.com)

    by Shawn January 08, 2009 13:49

    Start Your Engines!User Adoption: Educate the User Community on the Differences between Blogs, Wikis, RSS Feeds, Discussions and SharePoint Lists

    Introduction

    The most powerful feature of SharePoint is its ability to socialize information, to offer the people in your company an easy to use collaboration environment that will provide them the ability to publish information for others to consume. The ease with which users publish information with SharePoint often overshadows the need for your users to understand exactly _what_ SharePoint capability to use. Believe it or not, your users are probably confused as to just which capability of SharePoint to utilize when they want to share information.

    In a recent discussion I had with several end users, they were most confused regarding the differences between SharePoint Blogs, SharePoint Wikis, discussion boards and the myriad of available SharePoint List options. And RSS feeds? Forget about it. This may be one of the most confusing capabilities to end users of all.

    Here’s how I describe each of the capabilities mentioned above so that users can compare and contrast them to determine which to use for their particular situation:

    SharePoint Blogs

    Blogs are a ‘one-to-many’ conversation. This means that Blogs are generally best used when one person who’s a Subject Matter Expert (SME) produces blog postings to share what they know with a larger audience. Blogs can also be written by a team of SME’s so that the responsibility to write postings fall to a larger number of people and so that there are different voices offered to the readers (much like this blog, EndUserSharePoint.com). One of the secrets to user adoption of blogging in your environment is to educate your people on the following two things: 1) the importance of sharing information to increase the level of collaboration within your company and, 2) the importance of your users providing feedback to blog postings.

    I was with a client recently that wanted to promote blogging but people were not embracing the idea. I was told the story of a wicked smart manager that had started blogging but stopped after only three postings (sound familiar?).

    One of the manager’s direct reports asked me, “How can I encourage her to start blogging again and what to say to her?” I told her not to talk with her manager but, instead, talk with a minimum of 5 members of her team, tell them to go out to their manager’s blog and each write a response to any of the blog postings. I told her it was very important to have them write honest, thoughtful responses to the postings provided and to not be insincere or fake.

    Two days later, with the responses having been written, the manager reinitiated her blogging without anyone even talking with her directly. The importance of feedback to an individual’s blog postings should not to be underestimated (on that note, why not write a response to this posting after you finish reading it? : )

    Start Your Engines!Start Your Engines! Tell your users to identify a topic that they are the most knowledgeable about or that they are most passionate about. If they can’t come up with anything, get their manager to tell them what _they_ think is their strongest area of knowledge. Everyone likes to be flattered by hearing what others think they know the most about. Then show them how to create a SharePoint Blog and post to it.

    The Blogging interface in SharePoint is not the most user friendly thing, so show them how to use the Word 2007 blogging capabilities or have them download the free Live Writer application from Microsoft. (Btw, Live Writer is awesome! If you haven’t tried it, I highly recommend it.)

    SharePoint Wikis

    Wikis are a ‘many-to-many’ publishing mechanism where all members of a team are equal and are asked to add their own knowledge and background to the information being presented. Wiki’s allow for free-form information and are infinitely malleable with regards to format and information presentation.

    My experience is that your users will find Wiki’s wildly beneficial once they see some examples of a well-formatted, well-written Wiki. When talking to users about Wiki’s I generally take people to Wikipedia.org and show them the Wiki entry for ‘Baseball’. Showing users that pictures, hyperlinks, well-written narrative and tabular information can be easily broken down by section header has an immediate impact on people.

    They seem to ‘get it’ really quickly once they see examples of how Wiki’s can be used. While SharePoint Wiki’s are as powerful as we would like for them to be, it is simply more important for you to get your users used to publishing information for people to read that it is to focus on the features of the SharePoint Wiki.

    I was told the story of an extreme technophobe that pushed back on all technology changes and enhancements, including Wiki’s. Once someone showed her how to use the tool she said, “That’s it!? Heck, even I can do that!” You would be surprised at how many people will start using the more advanced SharePoint capabilities once you sell them on how easy it is to use a Wiki.

    Start Your Engines!Start Your Engines! Tell Human Resources or a team of people in your department that new employees are frequently confused by the acronyms and abbreviations that your company uses. Ask them to collaborate on a Wiki that will describe in detail what each of the acronyms mean, who is a key person in your company that knows a lot about the topic the acronym refers to and describe some examples where the acronym applies in the practice of your business. Call the Wiki something cool like “Jargon Watch” or “C.A.R.L.” (Comprehensive Acronym Resource for Lingo). Now, tell them how important it is to keep it updated!

    SharePoint RSS Feeds

    Most techies know that RSS stands for ‘Real Simple Syndication’. What a horrible name for such a great technology capability! Users don’t understand, and honestly don’t care, what RSS stands for because they see it as just another technology acronym that reinforces the moat around the ivory tower of the IS Department. Instead, I call them ‘newsfeeds’. I also tell people that RSS is like a radio station’s broadcasting tower.

    The radio station broadcasts a signal and your radio receives it. While you can listen to the broadcast, you can’t talk back to the radio station through your radio because you can only receive the signal the radio tower is sending. I show people the RSS icon at the bottom of the Yahoo! News site so they understand that this is an internet technology, not a SharePoint technology. I show them how to add the RSS Web Part to the SharePoint page and how to put an RSS feed from Yahoo! News. Then I tell them that every SharePoint list that they create has an RSS feed associated with it so that others can be kept up to date with regards to what’s happening on the SharePoint site without even visiting SharePoint or getting alerts. Users dig RSS if you make it applicable to them.

    As I say in my SharePoint Training classes, “What’s everyone’s favorite Radio Station? WII-FM, of course!” (WII-FM stands for ‘What’s In It For Me?’)

    Start Your Engines!Start Your Engines! Identify two or three of your company’s competitors and perform a search in Yahoo! News with the competitor’s name. Capture the URL associated with the RSS feed for the competitor and paste that into the RSS Web Part in SharePoint on one of your main pages that people see frequently. Limit the number of news stories to 2 or 3 so that the page load times won’t increase dramatically. Enjoy! (I find that Google RSS feeds don’t display as nicely and expand as nicely in the SP RSS Web Part as the Yahoo! Feeds).

    Discussion Groups

    Discussions are a great way to allow people to post questions for others to read and respond to. This is great for shift workers that rarely see their co-workers and for Q&A discussions. (If you have been successful at getting people talking using discussion groups, share your experience with the rest of us….please).

    Discussion groups work best when you use them to build a knowledge-base of Q&A with regards to a particular facet of your business. While people generally have a lot of questions, the people that have the answers don’t generally peruse the questions and provide insightful, thoughtful answers to them.

    Quite simply, there is just too much to do and too few people to do it.

    One of the secrets to making discussion groups successful within your company is to limit a discussion group to a specific topic where all postings have a similar theme or focus. Discussion groups that are too broad and are not focused on specifics generally won’t be successful.

    Start Your Engines!Start Your Engines! Open up a discussion group where people can ask questions about SharePoint and how others are using it in your company. Allow people to post any and all questions related to SharePoint but police the questions to ensure that questions about PeopleSoft, Oracle or the best flat screen TV on the market are kept out of the discussion threads.

    Foster a community of users and allow your user community to begin to answer the questions people are posting. This helps to provide an “I was one where you are now” feeling to the education which helps people to absorb the information without feeling like they are asking a silly question.

    SharePoint Lists

    Lists are a great way to capture and present ‘active’ content on your SharePoint site. This is information that you update regularly and share with others so that they have the ability to use it to make business decisions. After all, that’s probably one of the reasons you deployed SharePoint in the first place, isn’t it? To inform others of information they don’t know?

    SharePoint lists allow you to sort information by the column header, filter the information being presented and present information in a read-only format so that people can consume the information but not necessarily contribute to it. Lists also allow the user to sign up for alerts to be notified when things change.

    Lists are very powerful and very confusing to your end users. They are infinitely malleable, which is their greatest power and their greatest weakness. The power comes in that the list can display information and capture information in fields (called ‘columns’ in SharePoint) while the weakness manifests itself in the myriad of field _types_ that are available in SharePoint.

    Educate your users that if a pre-defined SharePoint list doesn’t contain a column that will capture the information they need that they can just create the list. Tell them how each _type_ of column will benefit them and provide examples on how and why they would use each column type.

    Start Your Engines!Start Your Engines! Tell your team that you want them to create a SharePoint contact list for their team members to use to share business contacts. Show them how to delete the “Full Name” column from the list and add it back as a ‘calculated column’. Then, concatenate the first and last name columns in the calculated column called “Full Name” and walk them through three or four other column types.

    One of the columns that users get most excited about it the ‘Lookup’ column that pulls information from an existing list. For your more advanced users, provide them the information contained in Dessie Lunsford’s excellent series on calculated columns and really blow their minds with what they can do!

    Conclusion

    There is no silver bullet for increased SharePoint user adoption. It takes 2 parts education, 1 part toughing-it-out, 2 parts patience and 4 parts dedication to answering dozens and dozens of questions. A great place to focus on educating them on when to use each of the specific SharePoint capabilities to move beyond the how.

    Next week, I’ll write about creating a ‘Collaboration Café Meeting Place’ for your users that will help grow your SharePoint User Community.

    Author: Lee Reed
    ThoughtBridge, Atlanta, GA

     

     

    Tags:

    SharePoint | Microsoft Office

    Two Great eBooks on using the Calculated Column in SharePoint

    by Shawn December 17, 2008 11:49
    EndUserSharePoint.com author just recently posted two completed eBooks (Part 1 and 2) for taming the Calculated column in SharePoint.
    I highly recommend taking a look at them...

    Tags:

    SharePoint | Microsoft Office

    Microsoft Whitepaper on Document Management in SharePoint

    by Shawn October 10, 2008 20:49

    Overview

    Microsoft delivers an integrated solution that extends document management to all employees. By recognizing that a document’s lifecycle begins the moment it is created and does not end until it is destroyed, organizations can achieve wide adoption and enforcement of enterprise standards, resulting in decreased management costs and reduced corporate risk.

    Office SharePoint Server 2007 Document Management Whitepaper

    Tags:

    SharePoint | Microsoft Office

    Powered by BlogEngine.NET 1.6.1.0
    Theme by Mads Kristensen | Modified by Mooglegiant