Yes, I’ve visited the dark side; I needed to see how the other half lives. I get invitations from Microsoft all the time to attend their Developer Events. The location (Carousel Mall) and pricing (free) made yesterday’s event too good to pass up.
After filling out my pre-seminar survey (with a chance to win Zune), I filed into a movie theater that had seats that were far too comfortable. The presenter for the day was Susan Wisowaty. She was fairly engaging, but had some curious Microsoft observations and a couple answers to gallery questions that were a little questionable.
The presentation was broken out in three parts:
- Take Control of the Database Development Lifecycle with Visual Studio Team Edition for Database Professionals
I’m not 100% up on Microsoft development, but in their scheme they have different versions of Visual Studio for the different players in the software development team (architects, developers, testers, etc.) Until now, they didn’t have a dedicate interface for the database developers.This new gadget has some stuff that was kinda interesting. First, there’s some tools for diff’ing schema between different versions of your database (development vs. testing vs. production.) After showing you the diff results, you get a script that can be used to push the updates from server to server. The tool is fairly smart about tracking down table/field renames in ancillary database objects like indices, views, and stored procedures.
Second, (while they didn’t show it specifically) was the ability to maintain version control on your database schema. I’m guessing what they just throw the sql create statements for the database objects in SCCI.
Third, there’s a sample data generator. This was pretty interesting. You set up some rules for how the tables relate to each other (foreign keys, etc) and some rules for the individual fields in the tables (using regular expression, shocker!) You then save this as a data generation plan. You can then run it populate your database. Seems useful, but was kinda slow for the amount of data it actually ad libbed. They also said to make sure you’re applying the update script to right database (the interface makes it almost too easy to blast away your production data accidentally.)
The demo started fairly smoothly, but got a little off track when they tried to demo adding a new field to table in development and pushing out to production. They tried to add a new field to a table with ‘NOT NULL’ to an existing table. The schema editor didn’t have a problem doing that (maybe it should have generated a warning?), the diff tool showed the change, but when you tried to run the update script in production, Visual Studio went down in flames (with a roar of laughter from the crowd.)
To be fair, the version being demo’d is not the production version of Visual Studio. Hopefully, they’ve cleaned things up a little bit in the real version.
- Windows Workflow Foundation Exposed
Workflow Foundation is a primary component of the .Net framework 3.0. Its a fancy workflow engine. The basic idea is that you manage the components of your application at new workflow abstraction level. Said another way, you can separate your functional code from the flow.The workflow rules are managed via XML, but they provide a slick graphical editor where you can drag and drop activities in and set their properties graphically. The associated code is just a click behind. I think this would be pretty useful after you’ve built up a good selection of components.
Their example in the demo was setting tax and shipping rules by state in shopping cart type setting. They made a big point to say that the workflow is dynamic. That is, you can tweak the workflow model while its running in the engine. I think this would work fine for workflow additions, but it doesn’t seem to sanity check your changes against data in the field opening up the possibility of orphaning objects in obsolete workflow states.
Another good question from the gallery was is it possible when changing workflow to have the existing dependent objects retain the original workflow, while newly create objects take the update workflow. They said currently, this isn’t possible. Man, that would be a killer feature.
- Create Cutting-Edge Web Designs with Expression Web
This was actually the primary interest item for me. Unfortunately, it was the weakest part of the presentation. It only got about 40 minutes of time, and the presenter was a lot more developer than designer (complete with some designer focussed wise-cracks.) Oh well…The Expression Suite are tools based around graphics. Expression Design is graphics folks only and meant to be an alternative to Adobe Illustrator. Expression Blend is a little more programming oriented, and allows you to designs Windows Forms based interfaces (using XAML) and web interfaces. Express Web is the web interface only version of Blend.
The presentation concentrated on Expression Web. To me, its basically an updated version of Frontpage that borrows a lot of ideas from Dreamweaver. It shares its coding backend with Visual Studio so you when you’re developing an application, you can start in one and switch to the other when appropriate, or hand off. Theoretically, the engineer to could do the general layout of the application in VS and hand off to a designer in Expression to add the look and feel with minimal complication. I’m not sure if source control is possible from the Experssion tool though.
As a Dreamweaver fan, I didn’t see much that I hadn’t seen before. The only stuff I thought was cool was the ability to edit css padding and margins with drag and drop (if there’s a way to do that in Dreamweaver, I haven’t seen it) and the editing interface was pretty snappy. The CSS stuff the presenter that was so cool was pretty much old hat for Dreamweaver users.
All in all, it was interesting and useful to see this stuff, and get some perspective on how the other side does all the fun stuff that I normally do in LAMP.