Sorry for the delay in posting my TechEd deck and links up - I've been sick the last few days.
First - the downloads:
Next - here's some links and other info relevant to the content we showed in each of the 8 "rehab" steps (also click here to read Zac's content post).
Hope you've all managed to cure your SharePoint addictions since getting back home!
1. Optimize your development environment
Aside from the hardware optimization and tuning tips, Zac also demoed a few shortcuts. Here's some of the more useful ones:
2. Get a productive build cycle
In this I demoed both Visual Studio Extensions for WSS and STSDEV, and also mentioned WSPBuilder and Andrew Connell's Project Utility Window. Custom build scripts were also shown in the deck but not demoed - the code ZIP includes the OFC303.HelloWebPartCustomScripts project that was used to generate the screenshots in the deck.
Note that if using STSDEV with IIS7, you'll need to customise the Microsoft.SharePoint.Targets file for configurations that reset the app pool - see the STSDEV project in the code ZIP for a version of this. Also, the default configurations output by STSDEV do not support debugging, so to enable this (for each configuration you want to debug in) you need to:
- Access project properties (right-click project name, "Properties") and click the "Build" tab
- Click "Define DEBUG constant" and "Define TRACE constant"
- Click "Advanced"
- Change "Debug Info" to "full"
The last part of the demo in this section concerned the F5 DebugApp. In time I'll post a more detailed article describing the whys and hows of this approach, but in short here's how you do it:
- Create a web application project in Visual Studio (File -> New -> Project -> ASP.Net Web Application, not File -> New -> Web Site).
- Move the .csproj and .csproj.user files, along with the Properties folder, into C:\inetpub\wwwroot\wss\virtualdirectories\<x>, where <x> is the name or number of the web application corresponding to the SharePoint site you'd like to debug on.
- Attach the project to an existing solution (e.g. STSDEV project).
- Set as startup project (right-click project name, "Set as Startup Project").
- Access project properties (right-click project name, "Properties") and click the "Web" tab.
- Under the "Servers" setting, click "Use IIS web server", then enter the URL to the SharePoint web application you want to debug on, e.g. http://mymachine:99.
Kapow! F5 debugging against SharePoint.
3. Don't be a tool, be a better developer through tools!
Links to the tools we showed (in order):
More tool links can be found in the deck itself, particularly the "What's in our toolkit (partial)" slide, which Zac has also replicated in his post.
4. Only code when you have to
Links from Zac's post: Community Kit for SharePoint, Search Community Toolkit, Pod Casting Toolkit, Fantastic 40 Templates, Telerik Controls, Bamboo Solutions
5. Use the right tool for the job
In the first slide of this section, I mentioned a method for extracting list definitions from lists already set in the browser. Here's some tools/links that can help with this:
- Andrew Connell's STSADM extensions - useful for extracting site column and content type XML.
- Imtech STSADM extensions - effectively does the same thing as the SharePoint Solution Generator (part of the SDK), but without the GUI.
- Also see Step 5 in Ari's post on creating custom list definitions. Once you've extracted the schema (using Imtech or the Solution Generator), you'll want to follow this step to hook up the Content Type used by the list to the site-level Content Type rather than the copy of the Content Type that the list gets.
In time, I will also post a script for extracting a list def with content types and site columns correctly hooked up in one go - it's not quite "community ready".
In terms of the User Control demo shown in this section, the code ZIP includes both the OFC303.UserControlWebPart and DebugApp projects, though without the SQL albums database (that was used to generate the ListView) this code won't deploy. However, the AjaxWebPart.cs that I inherited from (to get Ajax working) may be useful to some, as might the relatively simple UserControlWebPart.cs. Also in the code ZIP is an AjaxEnabler project I wrote to automate all the custom Web.config tweaks that get AJAX working. This is similar to "Ajax.Config" as available on the CodePlex Features project, but that wasn't around at the time.
6. Get friendly with Powershell
Zac showed a couple of quick demos of Powershell use in SharePoint. Here's a guide to get you started (from Zac's post). I'll try to post my own views on this in upcoming weeks.
7. Make peace with SharePoint Designer... it's for developers, too!
In terms of the features that were demoed, I showed:
- Creating a Linked Data Source combining SQL and SharePoint data
- Multiple item grid views and alternative layouts
- A joined sub-view that linked the SQL data with SharePoint data based on a "foreign key"
- No-code conditional formatting
- No-code two-way data binding with a single item form
- Web part connections between the grid view and form
- A completely custom XSLT rendering that generated a Silverlight chart from a data source
The code ZIP excludes the "code" for this demo (other than the Visifire XSLT), as without the database and specific SharePoint data this is relatively useless. However, here's a few links that may be helpful:
8. Get help faster, and stay up to date
Here are the links from the deck:
- Microsoft Content: MSDN WSS Portal, MSDN MOSS Portal, TechNet WSS Portal, TechNet MOSS Portal, MSDN WSS SDK, MSDN MOSS SDK, GearUp, Office Online, Developer Intro Portal
- Forums: SharePointU, MSDN, TechNet
- Aggregate Blogs: MVPs, MS Individuals, MS Teams
I also have a list of Essential SharePoint Resources up on my blog.
If nothing else, I recommend you subscribe to the aggregate blogs above. The best information usually has a way of getting through on these blogs.
Thanks again to everyone who attended, and for all the positive and constructive feedback. Until next time!