Microsoft’s latest SharePoint product includes many new features in terms of collaboration as well as integration, with a growing number of applications and third-party components. Many companies are now turning towards SharePoint integration services to provide enterprise-wide access to documents, spreadsheets, forms, and other types of data gathering and business intelligence. The fact that SharePoint is built on top of the popular ASP.NET framework makes it extremely customizable and allows vendors to create products that can accommodate any type of business need. Enterprise packages like CRMs and ERPs can provide information that is accessed through SharePoint as well as accept data from SharePoint applications to provide a seamless experience for the enterprise user and visibility across all divisions from a single login. In fact, this is usually integrated directly into the Active Directory structure available on Windows and authentication and authorization can be handled from a single location by administrators.
With the latest version of Sharepoint 2007, Microsoft has standardized on the latest .NET technologies to provide a complete content management, document and workflow management, and process management system. Many companies and enterprises are beginning to see these benefits and start adopting various pieces of Windows SharePoint Services (WSS) and Microsoft Office SharePoint Services (MOSS). This, in turn drives the need for additional SharePoint consulting services. To begin to address this, let us first see how SharePoint consulting and SharePoint development differs from standard ASP.NET development. We can break up the general software development activities into areas where SharePoint development is easier than ASP.NET, comparable to ASP.NET, and more difficult than ASP.NET.
As mentioned earlier, SharePoint 2007 has actually been built from the ground up on .NET and Microsoft Office technologies, which gives developers with ASP.NET knowledge a strong head start on SharePoint development. Having said that, a good SharePoint consultant should be able to determine when it makes sense to perform SharePoint development for a particular project and when alternative technologies may be more suitable. In particular SharePoint development often makes a lot of sense when requirements include integrating with Microsoft Office solutions such as Excel Services or InfoPath forms. These tools make development of SharePoint solutions and deploying them to SharePoint a process that can be initiated by a business analyst at any time. Other features like Enterprise Search are also more easily done with SharePoint 2007.
If, on the other hand, project requirements included fine-grained control over URLs (sometimes known as pretty URLs), then a technology like ASP.NET MVC is a better solution as doing the same with SharePoint development requires a lot more work. In general, keeping an objective view of the customer and project requirements and not trying to come up with an implementation on the fly will go a long way to choosing the most ideal technology for the project at hand.
With that in mind, you still need to be a good ASP.NET developer to provide the best SharePoint consulting. SharePoint development tools are not that good and the GUI tools have not been perfected to the same level as the standard ASP.NET framework. For example, authoring a master page with SharePoint development is more difficult than using the Visual Studio tools for ASP.NET. SharePoint only has one visual feedback tool, Microsoft Office SharePoint Designer, which does not give all the coding tools that Visual Studio gives ASP.NET developers.
Also, best practices like Test Driven Development (TDD) and Agile development are harder to implement in SharePoint. Version control is also more difficult. To come up with a good, workable versioning strategy, keep the following in mind:
The feature.xml version id in SharePoint 2007 means nothing. As a developer, you need to make sure that your C# assemblies and the corresponding feature.xml are synced, and know the impact of any code you deploy. When you retract a feature the folder is removed, but the content database may remain. You will need to decide what you need to remove as a SharePoint developer.
Another best practice is to always use a virtual machine for SharePoint development and SharePoint consulting containing the Windows Server instance with SharePoint 2007 as well as Visual Studio 2008 and Microsoft Office. These can be very useful when deploying SharePoint to a testing and staging environment as well. Another important feature for development in general and with SharePoint consulting and development in particular is to maintain a script to allow you to go from a fresh SharePoint install to the latest version with the necessary data in one step.
Finally always prototype your solution before you make any promises regarding the functionality of a particular SharePoint component. Because SharePoint development and Microsoft Office often involves significant areas of the business operations, many of the features may not be documented or may be missing a crucial piece of information, and assuming that everything works just like it does ASP.NET or like it does in other areas of SharePoint 2007 will get you into trouble sooner or later. For example, it is not possible to add the business data column type in a content type (as a side column), although you can add it to a standard SharePoint list. Keeping these standard practices in mind, you’ll find that SharePoint consulting can be extremely rewarding and a great way to add lots of value to your client’s projects.
As a Microsoft Partner, Ayoka delivers application integration solutions that integrate directly with Windows SharePoint Services as well as Microsoft Office SharePoint Services. SharePoint integration services offer solutions from custom business applications and workflows to customized reports, data mining, and business intelligence solutions.