Today I was at Microsoft in Reading (pronounced “Red-ing”, don’t laugh, I’ve heard Americans pronounce it “Reed-ing”, lol) for a seminar on Visual Studio .NET 2005. Stop reading if you are not a techie, you’ve been warned.
I’ve not been so excited about something techie for about 10 years, since the launch of Windows 95 and 32-bit development tools I think. Team Foundation Server is awesome, you can build in reports and “work items” (new work/bugs) right into the IDE – and insist things are checked off before the source code is checked in (there’s a whole new Source control system built from scratch – no more patching up Source Safe to do stuff it was never designed to do, the new system is built on SQL 2005). There’s also automated unit testing (again, can insist on this being done before a developer can check in) which can be scripted from input capture, all built in. Failures from this can be easily assigned as work items in the project to a developer. Seems like it’s got bits of Project Server built into it! It’s also got elements of Visio built in, so you can do your architecture diagrams right there in the project – so they are available for the developers to reference (you can also reverse engineer code to produce diagrams, something which Rational Rose has been able to do for years, but I don’t think I’ll be running it on many old projects, hehehehehe). There’s automated build server capabilities, coverage metrics, performance profiling – MS have basically taken things that are available right now in a number of third-party and other MS tools and embedded them into the Visual Studio IDE.
Had a demo of the latest Infragistics controls – those things kick ass. The Windows Forms grid is, in my opinion, worth the 700 dollars for the license alone. Pinning of columns and rows, export to Excel, printing, filtering per column, layout persisting to XML. There’s also Windows Forms task panes, run time docking interfacetabbed MDI, and a scheduler/calender control that blew me away when I saw it. The web controls look slick and damned quick – they’ve made heavy use of AJAX (Asychronous Javascript And XML) and wrapped a lot of the fiddly client-side script up that’s needed for it, which means that pages don’t have to post back in their entirity to the server – only those bits which have changed get passed backwards and forwards. This results in vastly decreased traffic, giving big speed improvements.
In the afternoon there were more in depth presentations for Smart client development and ASP.NET 2.0 development. Windows Forms 2.0 looks good. Renderers to control look and feel of UI elements, Flow layout and table layout panels to enable the user to re-jig his dialogs, automatic user preference saving (dialog sizes/positions). Grids that automatically relate based on FK relationships in tables.
One click deployment – wow. You can publish your Windows Forms apps to a web server, and install them to client desktops from there. When the clients run, they check with the server to see if there’s a new version of the component and download it. So when you create a new version of a client, you just deploy it to the web server, and it’s done. Clients will automatically get updated when they run!
There was also a quick demo of Office integration. Basically, intead of doing VBA and macros embedded in for instance an Excel document, which means the code has to be stored with the data and document, resulting in versioning issues, security issues, size issues, etc. you can package up all of your Excel code as a .NET assembly and publish this on a web server. You can then reference it from any Excel document! This means one set of code for multiple documents, and because you can secure the assembly, less potential for viruses and the suchlike.
ASP.NET 2.0 was the final thing. The main thrust of this is increased ease of development. I need to go away and read up some more on the concepts they covered, as I’ve not touched ASP programming since about 1999 and was a bit out of touch with some of the concepts. They have introduced about 50 new controls, and a number of “building block” APIs. Amongst these is a system of “Master” pages, which define layout, and content pages which use the layout elements from the master pages. There is also a membership/role security API, and some really neat stuff with auto-navigation controls – based on an XML file, you can get an autogenerated tree-type control for navigation, plus a generated breadcrumb control.Web Parts are very interesting – a user can, at runtime, drag around controls on page to customise his view. The user preferences can be then persisted to storage (database) automatically based on the logged in credentials (uses their membership API). Localisation is another area improved – you can reference localisation resource placeholders directly in the ASP – and you can with one placeholder indicate a whole block of localised resources for a control, e.g for a button you can specify one placeholder to represent localisable properties, and in your resource file, list against that placeholder the button text, tooltip, error messages, etc.
You can bind UI controls on a page (grids) not just to a DB now – you can bind to a BLL method. This is huge – it means developers on n-tier systems can use the UI binding mechanisms now. Previously, as the binding only worked direct to DB objects, it wasn’t much use if you wanted a proper scalable system. There’s also a funky notification mechanism with SQL 2005 that means when the database changes, the server publishes these changes to the client somehow. I need to look into this a bit more.
They’ve made a lot of improvements to the general IDE – you can load up and debug a single page, no project file needed, which is a big improvement, and there’s no need for IIS or PWS on the dev machine anymore – VS 2005 comes with its own ASP.NET server so you can run and debug easily. They also went into AJAX a little – apparently ASP.NET 2.0 makes it slightly easier to implement this – I think the Infragistics web controls are ahead in this area though!
Well worth going to, despite the 2 and a half hour drive each way!
whoa. if i wasn’t so tired i’d read the whole thing. but i got up at 5am for a 7am meeting.
there’s a Reading, pronounced Redding, in pennsylvania.