July 2004 - Posts

Off to Tech Ed

As the title implies, I'm off to Auckland (The UnGodly Cesspit) tomorrow for the local edition of Tech Ed 2004.
Brian Goldfarb was actually down in Wellington on Thursday giving a preview of ASP.NET 2 and Visual Studio 2005 goodness at our friendly neighbourhood Microsoft office. It was a very good presentation and a good example of infectious enthusiasm. My manager went along too - I think he may even have understood some words.

I'm turning comments off for a few days, last night some cretins posted comment spam to every single post I've ..er, posted to date. Idiots who think they are making a smart commercial move are obviously buying into comment spam as a “service”, since the spam comments had long lists of unrelated urls attached to them. May rabid chihuahuas eat the testicles of all involved. Slowly.
I'm keen to visit the HP booth at Tech Ed (on the assumption there is one) on the off chance they might be demo-ing the new iPAQs (a faint chance, but it would be cool). The lack of substantive reviews of the hx4700 is frustrating  - this is clearly a result of the restrictive conditions HP now impose on anyone before sending them review units: yet another not particularly bright marketing move from a company that should know better. I think most marketing people everywhere could probably do with a visit from the aforementioned chihuahuas (yep, I'm full of the spirit of peace and brotherhood tonight).

Anyway, I'll hopefully be posting something shortly relating to Tech Ed (since I don't have a laptop I'll have to wait till I get back), and also finally some more about the Visual Studio 2005 and SQL Server 2005 betas. Soon.-ish.

More on Visual Studio 2005 Beta 1

Having logged a suggestion a few days ago I've had answers to some of my questions about the ASP.NET 2 support, which I'll try to summarise without garbling too much:

  • LoweredApplicationName (or something like that) - The purpose of this is to enable an indexed value to be used in queries, since you lose the ability to take advantage of an index on the column when applying a Lower() function to it. Sounds fair enough to me - admittedly sites that don't have a lot of members/registered users/whatever won't get a lot of benefit from using the index anyway, but the benefits for those who do would outweigh that.  
  • Website Administration Tool support for adding Windows users to roles - may be seen in future, there are reasons for omitting it relating to customer perception (e.g. some people would be nervous at the thought of this sort of tool having access to their user list).Plus the tool wasn't intended for large scale purposes (that sentence is amazingly clumsy, but I'm tired so my language skills are dropping off). In addition, Windows users can be added to roles programmatically (I started looking at the docs on this just this morning, I hope to have a nice code sample soon - I know how to do it the old ASP.NET 1.x way, but this is so much cooler), so it's really up to us to handle it how we want
  • Associating roles with a specific application name - you have to set it up in your web.config file. Once again, fair enough.

Neil Cowburn has some nice coverage of the new Class Designer on his blog, with good screenshots.
If you check the “Screenshots” gallery on this page there's also a small example that I perpetrated this morning

Visual C# 2005 Express Edition Beta 1, SQL Server 2005 Express Edition Technical Preview, Visual Studio 2005 Beta 1, etc.

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

  1. 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.
  2. 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.
  3. 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?
  4. 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.
  5. 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.
  6. 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).