Rants, rambles, news and notes from another geek

Visual Studio 2005 Web Application Projects

If you are like me and you prefer the old VS 2003 Web Application project structure to the new one in VS 2005, we recently shipped the Visual Studio 2005 Web Application Project model for VS 2005 which does just this.

From the overview page:

The Visual Studio 2005 Web Application Project model uses the same project, build and compilation semantics as the Visual Studio .NET 2003 web project model:

  • All files contained within the project are defined within a project file (as well as the assembly references and other project meta-data settings). Files under the web’s file-system root that are not defined in the project file are not considered part of the web project.
  • All code files within the project are compiled into a single assembly that is built and persisted in the \bin directory on each compile.
  • The compilation system uses a standard MSBuild based compilation process. This can be extended and customized using standard MSBuild extensibility rules. You can control the build through the property pages, for example, name the output assembly or add pre- and post-build actions.

Because the Web Application Project model uses the same conceptual semantics as the Visual Studio .NET 2003 web project model, it can make migrating projects much easier–minimizing code changes. The key changes in this release from the previous release are:

  • Team Build Support with VSTS
  • Strongly-typed access to resources defined within the App_GlobalResources directory
  • Custom Build Tool Action support
  • Edit and Continue support

To fully enable Web Application Projects in Visual Studio 2005, you will need to first install Microsoft Visual Studio 2005 - Update to Support Web Application Projects, then this add-in. Visual Studio 2005 Web Application Projects are not supported in Visual Web Developer Express Edition.

Please visit the links above to download this package.

&nbsp_place_holder;

Just Released - Updater Application Block for .NET 2.0

We are pleased to annouce the release of Updater Aplication Block for .NET 2.0 which includes adjustments to use the latest version of Enterprise Library (January 2006 Release).

We suggest you should always evaluate ClickOnce as the peferred technology for managing updates on Smart Clients, but there are scenarios where ClickOnce is not applicable (like Windows Services). Based on the feedback received from our community, we’ve ported UAB into .NET 2.0 to help customers working with these scenarios. No new features have been included though.

What is in the release:

  • The code compiles on .Net 2.0 of course :-)
  • Updater Application Block uses Enterprise Library 2.0 (Jan 2006) for the configuration
  • Quickstarts migrated to support the new configuration system
  • Breaking changes only related to configuration and not the Updater API
  • Bits Downloader now handles broken downloads gracefully (this is a fix to the original implementation)
  • UpdaterTask serialization fixed. There was a bug on the net 1.1 version of UAB related to the partial update scenario. When some files were removed from the manifest, the UAB serializes the UpdaterTask with the original version of the files. This caused the ApplicationDeployProcessor to fail.
  • Partial update scenario fixed.
  • The algorithms that might be used to calculate file hashes are non-keyed hash algorithms like: MD5; RIPEMD160; SHA1; SHA256; SHA384; SHA512
  • Manifest tool fixed to correctly support salt enabled hashes
  • The solution assumes you have EntLib installed in your machine to the default location (c:\program Files...)

There is no Enterprise Library 2.0 Design time (that’s an excercise to the reader), there are still .NET 2.0 compilation warnings and we’ve only ported the C# version.

As usual, feedback is very much welcome!

patterns & practices Client Team

10,000 Days - Nineteen!

Only one thing to say…

![Tool10000_Days_Cover](http://www.peterprovost.org/Files/Tool10000_Days_Cover.jpg)The new Tool record 10,000 Days absolutely fucking rocks! On a scale from one to five, it is a nineteen.

As you might expect, you can hear the influence that A Perfect Circle has had on Maynard’s lyrical and vocal style. It is more pronounced on some songs that others. But then you get a song like Rosetta Stones that is so obviously a Tool song that it almost knocks you down.

It was long wait. Thanks guys for not letting the fans down.

Windows PowerShell (Fka Monad) RC1 Available

You all know that I love Monad, which has now been rebranded “Windows PowerShell”. Now you can download RC1 of the best shell ever invented!

A few important points:

  • The file extension for scripts has changed from MSH to PS1[1]
  • There are lots of new features, like custom TabExpansions!

To get the real story behind all this, and to find the right download links, read this post on the Windows PowerShell Team blog.

If, like me, you have a directory full of .MSH files that need to be renamed to .PS1, you can use this little tidbit:

gci *.msh foreach { ren $_ $([System.IO.Path]::GetFileNameWithoutExtension($_.Name) + “.ps1”) }

[1] Yeah, I know, .PS1 seems dumb to me too, but there are lots of reasons why it couldn’t (and maybe shouldn’t) be something else. Oh wellΓǪ get used to it.

New P&p Bloggers

I’m just gonna cheat and blatantly copy Brad’s postΓǪ

Two of our three recent developer hires have started blogs: Michael Puleio and Francis Cheung. They’re both at the single post stage of the game, so let’s all wish them luck in making it to post #2. :)

Welcome guys!

First Community Drop of the Web Service Software Factory Now Available!

From Tom Hollander’s blog:

The patterns & practices team is pleased to announce that the first public drop of the Web Service Software Factory is now available from our new community site at http://practices.gotdotnet.com/projects/svcfactory. We’re looking forward to having you as a member of the community, and your feedback and questions will help us make this deliverable more relevant to your needs.

But first things first, what is the Web Service Software Factory? Here’s what Don has stated so eloquently on the community site:

&nbsp_place_holder;&nbsp_place_holder;&nbsp_place_holder; The Service Factory is a cohesive collection of various forms of guidance that have been built with the primary goal of helping you build high quality connected solutions in a more consistent way with less effort. In addition to the forms of guidance you may have already seen from the patterns & practices team, there is a new form of guidance in here, called a guidance package, that allows guidance to be automated from inside Visual Studio 2005 through the use of a wizard-based dialog than can be modified (by an architect perhaps) to fit the needs of a specific solution.

Keep in mind that we’re still pretty early in the development process, and we’ll do plenty of work to improve the architecture, features and user experience before the final release. Currently the features are very “top heavy” in that we’ve got lots of guidance around the web service interface, but the plan is to go much deeper into the service boundary and provide more guidance around topics such as persistence and service agents, and we’ll also start to integrate other p&p guidance including Enterprise Library into the solution. So for now, we’d love to hear your feedback but we know it’s not ready and we don’t suggest that you use it for real projects.

Those of you who follow our work closely may have heard us refer to an upcoming project called the “Service Baseline Architecture Toolkit” or “Service BAT”. The Service Factory is one and the same project, but it’s been renamed as a Software Factory. Expect to hear a similar story about the Smart Client BAT soon. So what’s up with this Software Factory name? We’ll discuss this in much more detail shortly, but for now I’ll just say that after many, many hours of discussion we’ve come to realize that what we’ve been building as BATs is very much in line with the Software Factories vision and it makes sense to label them accordingly. That doesn’t mean that our first generation of factories will include everything outlined in the vision, but we plan on getting there eventually. Plus, to me at least, Software Factory sounds way cooler than BAT!

Nice job team.

Why I Love Monad Reason #249

I love being able to quickly bust out little scripts like this…

[1] MSH> gci -r -i *.csproj foreach { $xml = [xml] (get-content $); write-host $.Name - $xml.Project.PropertyGroup[0].ProjectGuid }

And have it produce this output…

Common.csproj - {028E519B-1B04-4D62-A96C-44C3493C4D5A}
GreeterModule.csproj - {9308450E-0564-4B01-BC1B-9B327C4E1ECF}
Shell.csproj - {A0DB510A-B00B-464F-A904-CC11A20E0E8A}

Cool, eh?