SharePoint Developer Resources not to be missed! Not just a repeat announcement of SharePoint Guidance ;-)

November 10, 2008

SharePoint Guidance : P&P

image

The new SharePoint Guidance was released last week. There's a whole CodePlex source control project that covers how the team have implemented particular areas Leveraging the SharePoint Platform. They have taken a Contoso scenario to show how the solution could be implemented using the SharePoint platform.

It covers off so far:

  • Content types
  • Custom actions
  • Custom groups and permission levels
  • Event receivers
  • Features
  • Lists
  • Standard and custom Web Parts
  • Workflows

    It leverages the Visual Studio Extensions for WSS 3.0 (VSeWSS 1.2) that can be downloaded and installed on Visual Studio 2008. They also promote other tools like Typemock for unit testing and utilise them, but unfortunately don't promote other useful tools such as SPSource that will reverse engineer Content Types and Site Columns from a SharePoint Site in the Development Environment. I can understand why they don't promote STSDEV or WSPBuilder because they are open source tools that do a similar sort of thing as VSeWSS but with a different approach.

    They provide a Virtual PC image for development and has installation instructions for the Contoso package and source code.

    The documentation explains why the application was designed the way it was and the architecture etc. They use various Patterns (MVP, Repository and Service Locator) to implement the solution. There's also a vision document that explains what they are trying achieve.

    There are various issues being tracked with the Solution on the CodePlex Portal that are worth bearing in mind ;-)

    What I'd like to see in the next version. Please understand that this is constructive criticism and I can apreciate A LOT of work has gone into this and that I certainly will be taking it all onboard and reusing this with my students in the future.

    • Web Part Pattern
      I had a look at the way this has been implemented and I think that this much engineering is going to really scare people off and is probably unrealistic. As I've mentioned in posts before, Business Users can build these things in minutes (with a few exceptions - workflows, event receivers)...to develop what's in this solution is by my estimations at least 1 developer for 3 weeks coding. Once the developers get used to this approach it'll come down, but when you look at what is built for 3 weeks work, it isn't going to wow that many Stakeholders.
      There are huge advantages of writing it this way, maybe they need to think of it from the Stakeholders point of view and scare them a little about doing this the "quick and dirty way".
    • PowerShell
      Use of PowerShell for automated build scripts, not relying on VSeWSS 1.2 to deploy to environment...e.g. how would they currently deploy this giving instructions to a SharePoint Administrator into UAT.
    • The Versioning story
      More explanation on how they have done the Contoso.RI.Upgrade solution for web parts, workflows etc. and how you would do this step by step.
      This seems to be a very tedious approach, as you really want to get v1.0 correct otherwise you'll be permanently writing incremental update scripts from v1.0 to v2.0 to v3.0. Will make getting the big picture on a Solution a nightmare by v5.0. I understand this is an issue with how SharePoint treats instances but there must be a smarter way of doing this with a tool.
    • TypeMock Unit Tests
      The Unit Tests are in a separate solution file and utilise TypeMock . I had a few failed Unit Tests, didn't have time to have a full look to see why they failed but the Domain issue (below) seems to be some of them.
      image
    • ISSUE: Domain Machine
      Also noticed when I installed this on a machine in a Dev Domain it is actually hard coded to use local accounts to get the HR Manager and doesn't fully leverage the SharePoint Environment. I know this is only a demonstration, but didn't see that warning in the notes.
         1: /// <summary>
         2: /// The GetManager method returns a user's manager.
         3: /// </summary>
         4: /// <param name="userName">the username of the employee</param>
         5: /// <returns>the name of the employee's manager</returns>
         6: public string GetManager(string userName)
         7: {
         8:     return String.Format(@"{0}\{1}", Environment.MachineName, "spgmanager");            
         9: }
    • ISSUE: Rendering Failed
      Also found when I approved the Task I got this in the View (below), I'm sure these things will come out in the wash.
      image 

    PDC 2008 - SharePoint 2007: Creating SharePoint Applications with Visual Studio 2008

    image

    If you want to see a webcast walk through VSeWSS 1.2, this is a great webcast walk-thru of using VSeWSS 1.2 to create Contoso application that is self provisioning using Features and Solution packages which includes Custom Fields, Content Types, Custom Actions, Event Receivers, Custom Application Page and Lists.

    I liked the 'List Definition from Content Type' feature in VSeWSS 1.2. This saves using Solution Generator and generate you your List definition files. He also walks through how to modify schema.xml to add the Fields in a Content Type to the Default View into the <ViewFields> element.

    He also created a WIKI Page Library too which gave all the List Definition files too. He also links the Content Type to the Wiki page using a Custom Action which will create the wiki page if it's not already there using a Custom Application Page.

    He discusses how to disable/enable event firing when he makes changes to list properties inside an Event Receiver which is extremely useful!

    He also discusses SilverLight too and discusses new Controls including the new Charting control in SharePoint.

    He shows how to deploy the generated WSP package and also debug the Event Receiver with a build (yes it will find the correct w3wp process to attach to and start debugging! NEAT).

    He had a "demo god" moment and used Hyper-V to jump to a working snapshot as his code didn't build and deploy properly! Very slick! His code is available here. Chris Johnson did a great job presenting too!

    Microsoft SharePoint Developer Portal

    image

    Andrew Connell and Robert Bogue put together a Portal for SharePoint targeted at ASP.NET Developers with Web Casts, Labs and quick start code. They picked 10 areas that they thought would catch developers eyes and encourage them to Leverage the SharePoint Platform.

    The content is broken down in such a way that it makes it easy to keep coming back to this almost like a virtual "brown bag" lunch! There's no excuse to miss this! The Silverlight interface adds that "get the developers excited" feel. Again  I had issues with accessing some of the screen casts.

    RAMPUP

    image

    The new MSDN Ramp Up section is targeted at SharePoint Developers too and covers off:

    • Web Parts
    • Data Lists
    • Event Handlers
    • Workflow
    • Silverlight Web Parts

    There are:

    • Articles
    • Slide-casts (couldn't get working!)
    • Code-casts (couldn't get working!)
    • Virtual Labs

    These are another great set of training content that will overlap with the SharePoint Development Portal content. But it's another great place for people to start. I noticed I couldn't view the slide-casts or code-casts.

    Andrew Connell's book: Professional SharePoint 2007 Web Content Management Development

    image

    This book has so many great chapters and although it focuses on WCM, has the best flow for learning how to develop Site Definitions, Solution packages, Features, Web Parts, Custom Fields, Site Columsn...the list goes on! I've read a lot of SharePoint 2007 books and for me this is one of the best Development focused books out there! His podcast interview over at SharePointPodShow.com was awesome last week! Top work to Andrew Connell!

    Final word

    One thing to take into account is do yourself a favour and use Internet Explorer with all these Microsoft web sites, they just don't work the way they should do in Firefox!

  • diigo itdeliciousdiggfacebookreddit

    Comments

    blog comments powered by Disqus