Sponsors

Microsoft


TechWell

We have 829 guests and 2 members online

Home From the Editor CM and deploying using .Net, C#

CM and deploying using .Net, C#

E-mail
Written by Bob Aiello   
In CM Basics, we have been covering the use of Ant, Maven 1.02 and (soon) Maven 2. These are all excellent build tools and, along with Make/GNU Make, are the core ingredients in taking a buggy, unreliable build and bringing it down to a repeatable process that runs flawlessly in 1 – 3 hours (from what used to take 1 – 3 days). I have enjoyed playing the hands-on role in this process many times and, on my last build assignment, bet the CIO and the CTO that I could fix the build process in three iterations of their current release process. (I always watch, learn, and document the current procedures before I change anything!)

BTW - I won the bet!

The Build Engineer usually gets the current build, from the developers, who typically only know what function key to press when they are building from their favorite Integrated Development Environment (IDE). I have seen teams deploy directly from their IDE – with very mixed and unreliable (painful) results. Usually, the build engineer needs to translate these builds using tools like Ant/Maven to make the deployment process repeatable and reliable. I have always worked with Eclipse. Recently, I had a chance to take a look at the Rational Application Developer (RAD7) and was very impressed. I also had a chance to work with Visual Studio .Net and was overjoyed with the improvements in build and deployment support that Microsoft has packaged into their .Net Framework. Over the coming months, we will be taking a closer look at a number of IDEs - including the three that I have already mentioned.

Here are some of the highlights that I saw in Visual Studio .Net. First, Microsoft has introduced Assemblies as a specific mechanism for configuration and deployment. Assemblies are a response to the difficulties of using DLLs in earlier Microsoft frameworks. Assemblies also have built-in version identification and store key metadata, describing dependencies, that can be used to control the deployment of all components (or as we call them Configuration Items – CIs).

Assemblies contain their own Manifest which includes a comprehensive list of CIs and their dependencies. Assemblies can also be signed using cryptographic keys – which has become an essential aspect of both web based and client application deployment. Really, all Configuration Items should be signed using a public/private key pair to prevent an unauthorized deployment that could easily afford the hacker a convenient back door.

Finally, Assemblies also have built-in dynamic version numbers including a C# method called GetExecutingAssembly which returns the Version in a four part token including the .... I was also impressed by a number of new features in MSBuild and ClickOnce deployment, but we’ll save that for a future article in CM Basics.

Please write and share your experiences with effective build and deployment tools!

Bob Aiello
Editor in Chief
CM Crossroads
bob.aiello [at]cmcrossroads.com
http://www.linkedin.com/in/BobAiello

For this article I used Wrox’s excellent book called Professional C# 2005 by Christian Nagel, Bill Evjen et al, as well as Apress’s book on Deploying .NET Applications using MSBuild and ClickOnce by Sayed Y. Hashimi and Sayed Ibrahim Hashimi. (Drop me a line if you need the ISBN numbers)


Trackback(0)

Comments (3)add comment

Khaja said:

Khaja
...
Good one to describe the Microsot approach on Assemblies for secure deployment mechanism
 
January 16, 2009
Votes: +0

Bob Aiello said:

Bob Aiello
...
... is the right order. Why Curtis?
 
November 02, 2008
Votes: +1

Curtis Yanko said:

Curtis Yanko
...
Is it just me or does that versioning seem out of order?
 
October 14, 2008
Votes: +1

Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
 
509 Bandwidth Limit Exceeded

Bandwidth Limit Exceeded

The server is temporarily unable to service your request due to the site owner reaching his/her bandwidth limit. Please try again later.