One of the issues we’re facing at Microsoft is how do we release products, or more specifically components, to customers more frequently.  There’s an expectation that Microsoft released components have a servicing and support model associated with them.  It’s a fair assumption.  However this assumption has a “price” associated with it.  Our current ability to support managed code is through the global assembly cache.  Which means that unless the components are installed in the GAC we don’t have a way to service them directly.  And, of course, installing in the GAC requires Administrator rights. 

Now we could say our servicing model is we make the components available on the web for developers to upgrade their applications once they test the “fix”.  However the application development group isn’t always around when the issue surfaces.  For the typical enterprise development environment building small applet applications, the development team is long gone once the app goes into production.  There’s nobody around to keep up with components that may require servicing 

For consumers I would suggest this isn’t as much an issue.  Someone “in the house” has administrative rights.  For consumers, I’d suggest the problem is more related to size of the components and dependencies.  If I have a 3mb app I want to share with my friends, does it require a 25mb download of the .net FX or a 55mb download of SQL Server Express?

For enterprise developers size isn’t as much of an issue as computers are usually connected through high bandwidth connections.  (Note the caveats here of “as much” and “usually”)  However, are admin rights an issue?  We’ve seen excellent adoption by IT to roll out the .NET Framework.  However, we haven’t seen IT willing to roll out every little application individual groups within a company develop.  And, does it really make sense for the inventory department to have the accounting applets?  Applications that do “affect the bottom line” of the company get exec management visibility and get IT support.  But for the hundreds of small apps that workgroups want to create, the only real answer they seem to have is building an internal website.  For $300 a manager can host a webserver on a dedicated desktop machine and email URLs to their workers.  Voila, their productive, or are they? 

We’re increasingly seeing additional value we can add to the Windows Client.  Features that are completely end user focused.  Whether it’s the ability to go offline with a local database and sync components, or the ability to create reports locally with Reporting Controls developers need to get Microsoft, and other vendor, components on end user machines. 

So, what is Microsoft doing about this tug of war?  Well, we have a number of ideas in the works.  Some may take a while to get out to customers, some that may be quick fixes. 

But my question to you is how much of an issue is this? 

  • Are admin right requirements a problem? 
  • Do development groups get full support from their IT staff to rollout applications, large and small, to their users? 
  • Do end users have Admin rights to their machines?  
  • Should Microsoft service critical security fixes directly to end user machines or should we leave it to the application owners to service the apps?

Steve