Tuesday 12 June 2007

It's 6pm - where are your virtual machines?

I mentioned last time that I'd share a couple more of my SharePoint-related highlights from Tech Ed. On a general note, despite the fact this wasn't my first Tech Ed I'm still amazed at the scale - an estimated 14,000 people in total apparently. Incredible when you think the team can feed 14,000 people in one hour in one room! As my colleague remarked, even Jesus only managed 5,000 ;-)

Anyway, things I didn't mention last time:

Virtual Machine Manager

- Microsoft beefs up it's story on managing virtual machines with Virtual Machine Manager 2007 (part of System Center family). I know other products out there have much of this functionality, but let's face it, for many of us management of virtual machines currently extends to the Virtual Server 2005 admin website. Some of the things I liked were:

  • 'library' of virtual machines including metadata - including the facility to have template machines which can be used as building blocks
  • fast 'physical to virtual' conversions
  • Intelligent Placement tool - analyzes all your physical hardware you have allocated to virtual machines and provides a recommendation as to where to put a new VM. This is based on information it has gathered (analysis of hardware etc.) but the parameters can be weighted, such as processor, memory, disk space etc.
  • ability to delegate starting up (etc.) of the VM from the physical box, without granting them remote access to the physical machine or other VM management capability

SharePoint development thoughts

- On other matters, an interesting (and accurate I feel) angle on SharePoint development - whilst the current dev experience is often painful, this is an issue with the tools rather than the platform. Ted Pattison talked about the 'denial, anger, acceptance' cycle often seen in .Net developers starting SharePoint development. SharePoint 2003 developers on the other hand think everything is slick in comparison ;-) Remember that in the .Net world, the tool (Visual Studio) is developed and released in parallel with the platform (.Net). In the SharePoint 2007 world, for whatever reason (likely to be pressure to release at same time as Office client apps) this hasn't been the case, and so the tools are perhaps 18 months behind the client. So there may well be a time when you look back and chuckle at the idea of generating feature files/solution packages without an MS-developed tool.

- Some interesting examples of using the DataView web part from Dustin Miller. This thing alone can get you a long way to building composite applications in SharePoint. Most SharePoint developers will already be switched on to this idea (using WSS as a development platform rather than building from scratch in ASP.Net), but it could be the future for a lot of reasonably simple apps. Some of the functionality includes:-

  • Display data from SQL, XML or web service
  • Join disparate datasources without code (need at least a string value [or other 'joinable' type] to join on)
  • Implement in-line editing (a la DataGrid)
  • Perform conditional formatting (if x == 1 show a, otherwise show b)
  • Use in a connected way with other web parts

..all without code. Very cool indeed. Note that the control renders using XSLT which can also be customised to get the required output. Also impressive is that SPD actually provides help by allowing in-line editing of the rendering in the design view, and mini-wizards to help with conditional formatting. The underlying XSLT is then written by the tool.

So it's not all bad with SharePoint development ;-)


Chris said...

Ok, any idea on how to create these joins of data from separate lists? I believe it is possible using XPath, but I would almost rather have a structure similar to SQL, since creating a join of data is much more intuitive than XPath queries!

Chris O'Brien said...

Hmm, I'm not an expert on the DataView web part, but it does seem possible to join 2 SharePoint lists for example.

For this scenario, the key seems to be ensuring the list schema contains the join - make sure that you have a column which is a lookup on a column from the other list.

Then in the DataView web part:

- select the list as your datasource
- select 'Link to another datasource'
- add the 2nd list, click next and specify to 'join' rather than 'merge' (merge performs a UNION query)
- finally, select the fields you require from your linked entities, and click the 'Insert selected fields as..' button and choose 'multiple'.

Note that example is for lists. If you are using other datasources, you should have a 'Joined subview' option in the last step, which allows you to specify the 'join' information in a dialog.

This article demonstrates this:

Display data from multiple sources in a single Data View

Hope that's of some help!

Anonymous said...

How do you package and deploy pages and code built with SharePoint Designer into other sites or environments.

Chris O'Brien said...

If you need to package artifacts for deployment to other environments, Features are often the best way to do this.

In case you've not found them already, some of the earlier articles on my blog cover this in detail.


Deploying master pages and page layouts as a feature

Deploying content types as a feature
Deploying web parts as a feature

..and some of the other earlier articles for examples.

Anonymous said...

Absolutely! Features and WSPs are the best way to package and deploy SharePoint applications