The Silverlight Express
…aka the MSDN Roadshow.
…filing into a cinema with Indiana Jones posters on the walls I am somewhat disappointed to see a flaming winged heart on the screen bearing the text ‘code to live, live to code’. What is this, some kind of geekathon??
And then I remembered that it was. I’m here in the Odeon Silverlink in Wallsend to attend a Microsoft conference to tell me what is coming with ADO, .NET and Silverlight. Not necessarily things that will be of direct relevance to my new role — at least initially — but things that will help give me an understanding of what technologies can be used, and that’s never a bad thing.
Obviously, it being a conference I had been obeying the normal rules — my ‘freedar’ was set, and I’d already managed to pick up a couple of ballpoints, two magazines and something called the ‘developer highway code’ which looked quite interesting.
The event basically focussed on:
- What’s new in 2008 for .NET developers
- ADO.NExT entity framework & data services
- Building Rich Internet UI with Silverlight 2
- ASP.NET - the ASP.NET 3.5 extensions
- Getting the most from the Visual Studio Team Suite toolbox
…to be followed by a question and answer session.
Alfred Biehler from Microsoft opened the event and asked people to text in their names for IT-related films - “Planet of the APIs” and suchlike, which inspired me to the extent that my notes for the rest of the event had movie titles scribbled in the margins. You therefore shouldn’t assume that my impressions of the event are 100% accurate — go and read the appropriate things over at the Microsoft site if you want the official line!
ADO.NExT
Mike Taulty then opened the conference proper telling everyone that the information he was talking about could be found on his personal site. He informed us that the stuff he was talking about would be available in Summer 2008 (or thereabouts) and would be released with SP1 of Visual Studio 2008.
The interesting thing about the entity framewoek in VS2008 is that at allows you to separate out a conceptual model from your database structure and query against this mapped structure, rather than against the underlying data. Obviously you need to set up this mapping in the first place, but still…
He also suggested reasons why you might want to do this sort of thing — maybe if your database has grown organically and the storage structure is sub-optimal, or ‘crap’ to use the his alternate term, or maybe if you have different applications looking at the same underlying data which would benefit from different conceptual models.
With ADO.NET today, the SQL command SELECT * FROM CUSTOMERS
is therefore specific to the provider, whether that be T-SQL, MySQL or whatever, whereas the conceptual model uses provider agnostic SQL which connects to the underlying datasource through the entity mappings that you have set up earlier.
One of the other interesting things about this is that you never see a JOIN
because the joins are already built into the mapping structure so you can simply navigate from one table to another as and when required.
However, the entity framework is currently only a reader language, but although you can’t perform updates through this entity SQL, there are other methods that can be used to perform updates and the like.
It was apparent that Microsoft’s continuing obsession with ‘Northwind Traders’ was showing no signs of abating, with this sample data being used again… and again… through the day. Come on, guys and gals, we’ve had that one for long enough now, let’s have a new sample data set, eh?
Data Services
This was quite an interesting topic, covering RESTful data services. In other words, Representational State Transfer Data Services, which may be considered an alternative to SOAP. If that sounds like complete gobbledygook to you, don’t worry. It sounded the same to me at first.
But basically, it’s all about using the HTTPRequest to tell the data service precisely what you want to achieve.
GET
reads the dataPOST
inserts recordsPUT
updates dataDELETE
… well, you can guess.
The querystring on the web services is a very powerful tool — you use the URI to navigate through the data sets. Unfortunately, I didn’t actually write a lot of notes for this one, mostly because I wasn’t going to write down multiple lines of code, but it certainly looked quite a useful technique for web services and the like, and well worth a closer look…
Introduction To Silverlight 2
Next up we had Daniel Moth, who again advised not to take to much in the way of notes because all of the information could be found on his blog.
Basically, it was all about the idea of Silverlight 2.0 “bringing the power of .NET to the browser”. As a browser plug-in, the usefulness of Silverlight is somewhat dependent on who, and how many people have actually downloaded and installed the Silverlight plugin, but the 4MB plugin apparently works on Internet Explorer, Firefox, Safari and others so the potential is there for quite a degree of uptake.
It therefore provides the potential to have client-side cross-browser and cross-platform .NET, which is an interesting thought. It’s a very rich user experience, creating “islands of richness” according to Daniel, but it did truly look impressive — I thought it’s basically Microsoft’s equivalent to Adobe Flash which could well supercede it’s counterpart.
Silverlight 2 (in beta) currently has tools (in Beta) for Visual Studio, and also introduces the concept of separating form and function somewhat. The idea being that the developer will use Visual Studio 2008 with the Silverlight tools and then pass the solution over to the designer who will use something called ‘Expression Blend’ to add the graphical bits and bobs.
Obviously this is a new tool with fancy new features, but there’s part of me couldn’t help wondering why this same functionality couldn’t have been included in VS2008 — another way to get the revenues from an increased number of software licences, perhaps?
Basically however the main gist of the Silverlight demo — at least as interpreted by me was — bloody hell, this looks impressive. Obviously when all the stuff is out of beta, I intend to go and download it and play with it and … well, I’m not actually sure what I would do with it, but it looked good. There was also that slight nagging doubt at the back of my head ‘how does any of this tie in with web standards and/or accessibility’ as these didn’t seem to be a concern for anyone doing any of the demos.
Yes, I know when you’re demoing something in a table or a form, you don’t want to be wasting time with properly-scoped table headers or with form labels (explicitly associated or otherwise) but it would at least start to give the impression that Microsoft developers cared about web standards, instead of just looking at the cool things you can do if you’ve got all the latest technologies, don’t rely on assistive technology and don’t care about web standards…
By this point in the demo, I think I was the only one in the entire room writing anything as everyone else appeared to have drifted off into zombie “it’s warm and I want my dinner” mode, so I don’t know whether anyone else noticed that the only way to communicate between Silverlight and the rest of the web page is with Javascript. This isn’t exactly Microsoft’s fault — when you’re adding something beyond the current specification that you don’t want to do server-side, there isn’t really another way to do it — but it does hint at the limitations of Silverlight, at least for anyone who is mandated to adhere to WCAG 1.0.
ASP.NExT
…was also presented by Daniel Moth as his colleague Mike Ormond had dropped out and he’s drawn the short straw, but he covered the presentation exceedingly well, and you wouldn’t really have known that “web pages weren’t his thing”, so comfortable did he appear. Although he did suggest it might be worth looking at Mike’s site for more information.
ASP.NExT offers some enhancements to AJAX — obviously it’s still reliant on javascript — but now it allows partial page updates to be effectively saved in a history so that the back button is not necessarily ‘broken’. Quite a step forward for the AJAX world, methinks…
…although Daniel did then aggravate me somewhat by referring to a copy-and-paste procedure he carried out as ‘clipboard inheritance’. Dear me. There simply wasn’t any need for that!
The techniques he was demonstrating allowed you to remove the need for a file extension (no need for the .aspx ‘ass-pix’ extension) which also means that if you later decide that you want to change the underlying technology of your site, then so long as the same facility is included, you could switch from .aspx to .php or what have you, because the file extension isn’t required.
It was also at this point that I became increasingly aware that at 75 minutes, the sessions were all simply too long. It’s difficult to maintain concentration when you’re sat in a cinema seat watching someone type code and click through powerpoint slides at the best of times, but after about 50 minutes you really start to suffer. I’d therefore recommend more sessions, of shorter time, with more opportunity to go and get some fresh air and/or cups of coffee for next time.
ASP.NExT appeared to offer an awful lot of validation straight out of the box, obviously working client-side, but unfortunately there was no indication whether or not this was also backed up by server-side validation for those for whom javascript might only be partially supported.
Then there was something else about ASP.NET I didn’t quite catch because I was trying to come up with film titles, before Daniel caught my attention with the following line when talking about classifying people into sets…
…they try and put people into buckets. Well, not actual buckets…Daniel Moth
What??
Fortunately, that was pretty much the end of the presentation…
Visual Studio Team Suite
This ‘un was presented by Neil Kidd who started out dull, got interesting, and then descended back into dull and over-running his timeslot (which was quite sneaky of him, as by that time I’d already filled in my evaluation form). He wasn’t really helped by having to fill the last slot on a Friday afternoon, nor by talking about a product that I’ll never use, so they may well be significant factors and I’d not blame Neil too much.
Anyway, he provided the acronym heavy URL for UKVSTS, which I presumed was for UK Visual Studio Team Suite, since that was the topic of his presentation.
The team suite offers different editions, each of which have extra features not present in the Standard edition of Visual Studio 2008. However, if Visual Studio 2005 is anything to go by, these will be considerably more expensive (or at least, that’s what I was told last time).
If you can afford it, it might well be worth looking at, as some of the features for testing were particularly impressive, adding an awful lot of features for unit testing, load testing of your application and so on. The load testing even allowed to add different profile types for users — you could assume 80% of your users are just reading, 20% are making updates, 70% are on Internet Explorer, 20% on Firefox, 10% on Safari and so on.
Where this will come into its own is where people actually carry out a lot of unit testing and check things in and out of code trees: where you have a lot of people working on a single application, which isn’t the sort of development environment I’m used to, which is why I’ve never used the team suite. If you work in one of those sorts of environments though, and you use Visual Studio then I’d suggest you at least take a look at the team suite. It might well offer you a lot of time saving tools (although you’ll have to pay for them, of course!).
Although I do have to give credit to Neil for using the phrase:
…and quite a lot of other gubbins…Neil Kidd
…as I was beginning to think that I was the only person who ever used the word ‘gubbins’.
Question And Answer
There were some questions and answers. The most important question though, was “was my film title deemed to be the best of the day, netting me a free keyboard?”. Unfortunately, although they did list half a dozen of my suggested film titles in their top 20, the answer was “no”. My list, in case you’re interested (and even if you aren’t) was:
- Rear Window(s XP)
- John Carpenter’s The Blog
- True GrI.T.
- Buffer Overflow The Application Slayer
- The Daniel Mothman Prophecies
- The XMLorcist
- Hell(o World)Raiser III
- Krakatoa, East of Javascript
- Everything you always ever wanted to know about .NET (but were afraid to ask)
- The Great Esc
- Carry On Coding
- Gone with the Northwind
- Much ADO about Nothing
- The King and URI
But I couldn’t really begrudge the winner his keyboard (partly because I didn’t need a keyboard, and partly because for me the fun was in coming up with the names). The winner was:
- Raiders of the isolated storage file
…obviously though, mine were better. Although those lovely people at Microsoft then gave me (and everyone else who had completed an evaluation form) a free copy of Visual Studio 2008 (and some other gubbins). Which was nice…
Hi,
Thanks for the write-up. I tend to use the Northwind database because it’s familiar and it’s simple. We did move away from Northwind and Pubs a few years ago towards the AdventureWorks DB but I find that one way too big/complex to use to get across concepts.
Mike