30 October 2007

SharePoint Development Environment

I have seen multiple questions posted to several of the forums I participate in concerning how to begin developing against SharePoint 2007. They usually come from users who are copying assemblies from the SharePoint server to their development box and then attempting to develop against it. While this will work in many cases, most developers will find this to be a very difficult approach to development. Others have installed Windows Server 2003 on their desktops and begun developing solutions, but if they accidentally do something unexpected through code, they have to end up rebuilding their machine or reinstalling SharePoint -- thus wasting valuable time.

Since I have gone multiple routes with my development environment, I decided that I would share what has been the best environment thus far (and is recommended standard from Microsoft).

I have a standard desktop with the following configuration:

  • Hardware
    • Intel Core 2 Duo 6700
    • 4GB Memory
    • 250 GB Primary Hard Drive (SATA)
    • 500 GB Secondary Hard Drive (SATA)
  • Software
    • Windows XP Professional, 32-Bit
    • VMWare Workstation 6.0

I have created a virtual machine using Windows Server 2003 R2 and installed MOSS 2007 Enterprise Edition, Visual Studio 2005 and Office 2007 Enterprise Edition. I now do all of my development inside of the virtual machine. This affords me two tremendous benefits: 1) If I accidentally break a machine, I can restore to a previous snapshot and 2) I can perform local debugging and step through the code. From here, I complete the entire development of the new feature or solution and then create a solution file to deploy to a development network running SharePoint in a similar configuration as our production systems. This gives me a chance to work with real data in a scratch-pad environment.

The final step occurs after testing and Q&A have been completed on the newly developed solution in the development network. This is where we deploy the solution to production servers and begin using it.

If you don't have the capability of using VMWare Workstation 6.0, you can substitute either Microsoft Virtual PC or Microsoft Virtual Server R2. Both of these are solid products and will still allow you to build a virtual environment for development.

If a team based development environment is needed, I would highly recommend reading this MSDN article by Eric Charran. It details the concepts needed for creating a team based development strategy.

26 October 2007

Information Architecture Planning Sheets

It's not often that you come across tools that can be used to both educate users and plan implementation at the same time, however, Mark Miller has successfully accomplished this with his Site Planning Worksheets. I am beginning to explore the use of these with the training department at my place of work for both their educational and developmental potential.

My organization has been offering training to our users for around two months now, and each time they leave a training session, new ideas are hatched that could be implemented in SharePoint. These ideas range from simplistic site designs with a few standard lists and attached workflows to entire systems that are supported and maintained through SharePoint. However, after a few weeks, the "new" wears off and the user forgets the original idea.

With these worksheets, I hope to capture these ideas and place them into a queue for better analysis of the business problems my users are attempting to solve. This way -- even if the new wears off -- our development team can better serve the user community with timely and accurate solutions. Through the process of requirements gathering, we will refine the final solution and be better able to deliver a solution that is up to the expectations of the user.

I would highly recommend to anyone that is involved in a roll-out of SharePoint to review these worksheets. They have benefits to all levels of user -- administrator, developer and end-user.