Tim Scott

All things for a good .NET geek

  Home  |   Contact  |   Syndication    |   Login
  36 Posts | 0 Stories | 4 Comments | 33 Trackbacks

News


Archives

Post Categories

Image Galleries

Coding

TechEd

Phew, another long day.  It started off with another keynote, this one by Paul Flessner.  He spoke about upcoming stuff in Visual Studio 2005 and SQL Server 2005.  Uh, there was a demo involving a battlebot powered by .NET compact framework, a network hub, and fireworks...oh yeah, and two servers running SQL Server.  The point was to, rather elaborately, show off automatic failover built into SQL Server 2005.  Weee.   Let's see...they also showed off how much faster 2005 was compared to 2000; and how much cheaper (and faster) is is over Oracle's and IBMs offerings. 

Windows Forms: Deploying Applications with ClickOnce

This session talked about ClickOnce deployment.  It is a way to deploy your .net application to your client, without the traditional install process.  Your user goes to a web page, clicks a button, and you app is downloaded and installed.  Except for the code signed authentication dialog (“Do you really want to install foo from gator.com?“) it takes no other user interaction.  When done, now you can run the app from your start menu. It will automatically check for and download updates to your application.  When it updates, it only updates assemblies that have changed.  It uses a strong-named signed application manifest to keep things secure. ClickOnce deployment doesn't require the .NET runtime on the target system...it can offer a bootstrap that installs the runtime, then continues the download of the actual app.

Applications installed in this way are downloaded into an isolated directory, and are only allowed limited access to local resources.  So you're not going to see a Real-Time data analysis package deployed this way.  But you're likely to start seeing rich client UIs for websites, like Amazon.com or eBay.com.  If you can get on a box with a beta of the .NET 2.0 runtime, you can see a demo here. FYI, I'll be building a VirtualPC image with the betas of everything they've got out so far, for anyone that wants to take a look at it.

If you want to deploy an app with extended permissions, there are two ways to do that:

  1. A one-time (admin) deployment of a trust certificate.  Generally done in corporate environments.
  2. Elevate permissions with user-consent. (Mmm, sounds just like ActiveX and spyware)

One neat thing I learned is that VS 2005 has the ability to calculate the requires permissions for your application. You click a button, and it figures out, for example, that you need access to the local filesystem, isolated storage, and clipboard.  This is a great feature for anyone doing declarative CAS policies, as before you had to figure out your permissions by hand.  VS 2005 also lets you test and debug your app under the restricted policies.

If you want to control your own updating and deployment, you can use the APIs in System.Deployment.

The technologies for app deployment are:

  • ClickOnce deployment
  • MSI installers
  • App updating application block
  • Write your own

Microsoft Visual Studio 2005: Debugging Smart Client Applications with Visual Studio 2005

Scott presented some great new debugging options in VS 2005 (it didn't really have much to do with “Smart Client“, but that's the buzzword now). 

  • Debug visualizers: Easy plug-in architecture to visualize debug/watch value data.  It comes with XML visualizers, among others.  If you've tried to look at long XML strings in the watch window (FooVO xml, anyone?), you'll appreciate this addition.  You can write your own visualizers for any data.
  • Edit and Continue works in managed code, now (C++ had it in VS 6).  You can place the stack frame back up almost anywhere you want. 
  • More options in the Exception dialog (called the Exception Assistant).  Don't remember what they were exactly, but looked useful at the time.
  • Something called TracePoints---You set it like a breakpoint, but it dumps output to the Trace log without having to make a code change
  • Added cross-threading check.  If you attempt to access the UI thread from a non-UI thread, you get an exception every time.  This is much better than the old way of digging for the side-effect problem by hand, and finally finding that “Oh, we're calling ProgressBar.Update from our background thread.“  We had this problem in a recent project. Having this checked at runtime would help.
  • All in all, useful stuff that solves problems and productivity issues we've had in the past.

Changing the Visual Studio Build Process through MSBuild

Instead of a session, I did a hands-on lab in this timeslot.  This one walked me through building an msbuild xml file by hand, and showing how it integrates with Visual Studio and msbuild.exe.  Basically, they've decoupled the build system from the IDE, allowing you to build your stuff with a smaller footprint, and much faster.  This looks like it could be very useful for O-word integration and building.

Microsoft Visual Studio 2005 Team System: Building Robust and Reliable Software

Ok, these are getting shorter as it gets later...anyway, they demoed Visual Studio Team System.  This is an add-on for Visual Studio, that also incorporates a server component.  It's a full development system that brings better integrated source control, testing, task tracking, code coverage, profiling, and distributed builds to Visual Studio.  I'll write about this later, as it is too much to go into now.

posted on Wednesday, June 08, 2005 12:50 AM