Yep, those names surely trip lightly off the tongue :-)
I downloaded the Express Editions a few days ago (Visual C# 2005 Express Beta 1 and the web dev thingy, and SQL Server 20005 Express) and have been playing with them since, then over the weekend I downloaded the full version of Visual Studio 2005 Beta 1 (which appears to have installed quite happily alongside its baby siblings). Then I got a chill from the freezing cold, but this is not the time for me to moan about the weather.
I'll start with the niggly bits first (so I can finish on a positive note):
Disappointments and slightly icky bits
- The planned DATE and TIME datatypes have been dropped from SQL Server 2005. This is a major annoyance for me since I've always found the handling of datetime in SQL Server somewhat clumsy, and particularly the fact that you are always stuck with a time part whether you want it or not (and usually I don't). I think we all know how many newbie errors that one has led to. It has been suggested that someone could use the new CLR support to write a UDT for this purpose, but currently I'm leaning towards using the same approach to write a function for this purpose (along the lines of Oracle's trunc when applied to datetime values) - I have a feeling that might involve fewer headaches.
- Once again, device support has been skipped from the low-end products. Given the boost that the readily available embedded Visual Tools gave Pocket PC development originally, and the fact that the hallowed Enterprise [all please genuflect] model of corporate development does not really apply that well to mobile and Pocket PC development, I truly hope Microsoft will reconsider this decision. Alberto Silva (a mobile devices MVP) has suggested an Express product purely for mobile development - that might well be a good solution, providing access to mobile development while maintaining the simplicity of the individual Express products.
- The SQL Server database used to store application and user stuff has had since the PDC version a new column added to the aspnet_Application table: LoweredApplicationName (working from memory here, it might be slightly different). I understand why ApplicationName is nvarchar (you really need to do that when designing for global usability), and the case sensitivity implications that has, but really this last bit seems a bit naff. Whatever happened to “Thou Shalt Not Store That Which Thou Canst Derive“, which I'm sure was a normalisation rule when I was a boy? Surely the perf issues aren't that great?
- OK I admit my last one was a bit overly picky, so here's a serious one in the same area: ASP.NET configuration for intranet users needs serious work. The lack of any ability through the online interface within VS to add Windows users to the application or assign application roles to them is deeply sub-optimal. I don't know what the team may have had in mind, but I sure hope it didn't involve Windows roles (as opposed to the kind you would define on a database and associate specifically with that application: you know, the useful kind). In all fairness however it's early days yet and I'm sure a number of scenarios are being tried and experimented with, and we could see big improvements in this area by RTM. The web authentication-based stuff on the other hand is great.
- This does not I'm sure reflect on the final product, and it may be a case of either something not being finished yet (it is after all a Beta 1 product) or just a quirk of my installation. I've noticed that when using Visual Studio 2005 Beta 1 (the full version), the Class Designer works in Windows Forms projects but not on a Web project. I hope that will get cleaned up later.
- Lastly, this is a disappointment but I'm hopeful that it simply reflects the stage we're at in the development process, not an actual set of feature-choppings: managed access to Contacts and so on (I believe it was to be through something called an ItemStore?) appears to be absent from the mobile device support as it currently stands. I'm guessing this is because it either hasn't been completed yet or is dependent on actual changes in the yet-to-come Windows Mobile 2005 operating system. It would be a big blow if this feature were to be dropped from the final product.
Bits That Make Kevin Happy
Pretty much everything else.
- The new device controls and class designer (to single out completely unrelated features) in the full version are things of beauty.
- I think it's brilliant that there is going to be a low-cost web development tool that will provide both intellisense and codebehind (sorry, -beside), along with the key ASP.NET 2 features. This will be of benefit not only to the hobbyist/enthusiast market but also to people developing for small businesses.
- Similarly, SQL Server Express 2005 will provide an excellent database solution for websites that aren't Amazon.com. The ease of deployment should also mean that developers will find it much easier to produce packaged web site solutions for customers. This has the potential to put good-quality dynamic web sites consistently within the reach of small businesses and interest groups - let's hope that hosting schemes evolve to keep up with what will then be possible
- ASP.NET 2 is (my earlier quibbles aside) very, very nice. The addition of things like Master Pages and the new controls will be a huge boost to productivity (and I suspect the user experience will get a boost too). In addition, it's great to see that .ASIX and .ASHX files have been given proper IDE support in this version (I hoped that would happen after trying the PDC build of Whidbey, and it's good to see it's come to pass)
- The device emulator (which in its Pocket PC version at least is a true ARM emulator, not x86) actually works on the VM I'm running all this in...so I have a virtual machine running happily (if somewhat understandably sluggishly) within a virtual machine. I had no idea that would work. I'm impressed.
There is a lot more in there, and I haven't even scratched the surface of Windows Forms yet in this version. I hope to have some mildly interesting code examples soon, especially after I finally get the full MSDN library (it is, as usual, vast, and having used a good portion of my monthly download allocation already on Visual Studio 2005 Beta 1, I decided it might be better to wait for the disks).