I was going through a blog post from Jeffrey Palermo on some of the “tools” that he think that all the agile developers need to know these days. I feel that open source development (in Microsoft technology world)is getting lot of attention these days, we have lot many good tools available to developers which help us develop/deliver quality software on .net framework.
I do have to agree that I never paid attention to some of the below tools in details and decided to spend some time to learn some of these .I thought of putting together some basic information that I know about some of the below tools as a blog post. I am planning to have a blog series on detailing some of them tools in the coming weeks.
Also, I went back and looked at some of the old pics (what tools we all use) that I took when we all met in Austin for the first ALT.Net conference. Things changed a bit, but not much in the past two years!..
. 7zip
7-Zip is an open source file archiver designed originally for Microsoft Windows. 7-Zip operates with the 7z archive format, and can read and write to several other archive formats. The program can be used from a command line interface, graphical user interface, or Windows shell integration.
By default, 7-Zip creates 7z format archives, with a .7z file extension. Each archive can contain multiple directories and files. As a container format, security or size reduction are achieved using a stacked combination of filters. These can consist of pre-processors, compression algorithms, and encryption filters. The core .7z compression uses a variety of algorithms, the most common of which are bzip2, LZMA2, and LZMA. Developed by Igor Pavlov, LZMA is a relatively new system, making its debut as part of the 7z format.
More details: http://www.7-zip.org/
· APNetMVC
I am sure, each and every one who work with latest Microsoft technologies heard about this. ASP.NET MVC is a free, fully supported, Microsoft product that enables developers to easily build great web applications. It provides total control over your HTML and URLs, enables rich AJAX integration, and facilitates test driven development. I am still learning about this, there is a lot to learn and implement, more details : www.asp.net/mvc/
· AutoMapper
From Codeplex, “Mapping code is boring. Testing mapping code is even more boring. AutoMapper provides simple configuration of types, as well as simple testing of mappings”.A convention-based object-object mapper. Object-object mapping works by transforming an input object of one type into an output object of a different type. What makes AutoMapper interesting is that it provides some interesting conventions to take the dirty work out of figuring out how to map type A to type B. As long as type B follows AutoMapper’s established convention, almost zero configurations is needed to map two types.
AutoMapper uses a fluent configuration API to define an object-object mapping strategy. AutoMapper uses a convention-based matching algorithm to match up source to destination values. Currently, AutoMapper is geared towards model projection scenarios to flatten complex object models to DTOs and other simple objects, whose design is better suited for serialization, communication, messaging, or simply an anti-corruption layer between the domain and application layer.
You can have some samples and more details at: http://www.codeplex.com/AutoMapper
· Cassini
The ASP.NET Cassini Web Server Sample is a sample web server written using the Microsoft® .NET® Framework, and demonstrates hosting ASP.NET using the ASP.NET hosting APIs (System.Web.Hosting).In an effort to try to prevent Cassini from cannibalizing the market for IIS, Microsoft decided to make it only serve requests from the local machine.I never used this. I am seeing some documents in Internet which talks about unlocking Cassini( make Cassini serve pages to the outside world). I am not sure about this. did any of you ever tried this. I am yet to play with a latest version.
· Castle
Castle is an open source project for .net that aspires to simplify the development of enterprise and web applications. It includes main projects as ActiveRecord, Mono Rail, MicroKernel/Windsor with lot of other tools. As a person using most of these in my current projects, I can talk about these projects for hours. I wish you get the proper knowledge from their web site: www.castleproject.org/castle/projects.html
· CruiseControl.NET
CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plug-ins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. And the standard CruiseControl distribution is augmented through a rich selection of 3rd Party Tools. CruiseControl is written in Java but is used on a wide variety of projects. There are builders supplied for Ant, NAnt, Maven, Phing, Rake, and Xcode, and the catch-all exec builder that can be used with any command-line tool or script.
I still use Microsoft Visual Studio’s Team system Build for my project builds (My company spent ‘some’Money for the same). So I am using it!…
· Exceptioneer
This is something I never tried before. I did some research on this tool and realized that their web site isnot having much information on the same. They are saying that they are working on Exceptioneer. I hope to have some more details in the coming days.
Their blog says,Exceptioneer is a revolutionary service offering a free hosted system designed for .NET folks and their applications to help identify, manage and resolve unhandled exceptions. When an Exception occurs within an Application which is subscribed to the Exceptioneer service, that exception and a range of platform specific details is transmitted securely to the Exceptioneer servers where the data is analyzed and placed onto the Exceptioneer platform ready for you to handle in your own way and in your own time.
Great concept, Let me try to get an invite to try the online service. I managed to get more details from a blog post by Neil Terry : http://blog.sceniceye.co.uk/2009/05/exceptioneer-wow-much-nicer-than.html
· FxCop
From Microsoft, FxCop is an application that analyzes managed code assemblies (code that targets the .NET Framework common language runtime) and reports information about the assemblies, such as possible design, localization, performance, and security improvements. Many of the issues concern violations of the programming and design rules set forth in the Design Guidelines for Class Library Developers, which are the Microsoft guidelines for writing robust and easily maintainable code by using the .NET Framework. FxCop is intended for class library developers. However, anyone creating applications that should comply with the .NET Framework best practices will benefit. FxCop is also useful as an educational tool for people who are new to the .NET Framework or who are unfamiliar with the .NET Framework Design Guidelines .FxCop is designed to be fully integrated into the software development cycle and is distributed as both a fully featured application that has a graphical user interface (FxCop.exe) for interactive work, and a command-line tool (FxCopCmd.exe) suited for use as part of automated build processes or integrated with Microsoft Visual Studio® .NET as an external tool.
· Gallio
The Gallio Automation Platform is an open, extensible, and neutral system for .NET that provides acommon object model, runtime services and tools (such as test runners) that may be leveraged byany number of test frameworks. The Gallio platform seeks to facilitate the creation of a rich ecosystem of interoperable testing tools produced by and for the community at large so as to address a far wider range of testing needs than any previous independent testing framework has done before. Unit tests, integration tests, performance tests, and even semi-automated test harnesses should all be able to leverage common facilities where appropriate. Moreover, they should present consistent interfaces to the world so that they can easily be integrated into the systems and processes of the enterprise. At present Gallio can run tests from MbUnit versions 2 and 3, MSTest, NBehave, NUnit, xUnit.Net, and csUnit. Gallio provides tool support and integration with CCNet, MSBuild, NAnt, NCover, Pex, Powershell, Resharper, TestDriven.Net, TypeMock, and Visual Studio Team System. Gallio also includes its own command-line runner, Echo, and a Windows GUI, Icarus. Additional runners are planned or under development. Third parties are also encouraged to leverage the Gallio platform as part of their own applications.
Thrilled eh?!.. more details : http://www.gallio.org
· MSDeploy
From Microsoft, tool for synchronizing, migrating, and deploying web sites hosted in IIS. This looks like something that could turn into a real time saver and prevent some pretty nasty headaches with IIS configuration in the future.
It supports moving configuration, content, SSL certificates and other types of data associated with a web server. You can choose to sync a single site or the entire web server. The goal of the tool is to help you keep servers in sync, to make deployment easier and also to help with migrating to new versions of IIS. You could use a sync on two machines in a web farm, for example. Or maybe you need to move to a new server of the same version, you can use this tool. Of course, we also enable you to do a migration from IIS 6.0 to 7.0.
So far, I’m simply using MSDeploy as a smart file copy mechanism. I need to improve!..
· MVCContrib
This is the contrib project for the ASP.NET MVC framework. This project adds additional functionality on top of the MVC Framework. These enhancements can increase your productivity using the MVC Framework. It is written in C#.You can read more about this here: http://www.codeplex.com/MVCContrib or there is always updates from Eric Hexter and Jeffrey Palermo on this.
· NAnt
NAnt is a free .NET build tool. I feel 90% of the .net programmers/project configuration team use(d) NAnt. This is the most famous build tool in the .net world. All the details about NAnt can be found here : http://nant.sourceforge.net/
· NAntContrib
NAntContrib is the project for tasks and tools that haven’t made it into the main NAnt distribution yet.I am yet to see what are the missing parts in Nant are available for us in nantcontrib.I don’t think that we need to have these (NAnat and nantcontrib) to be separated as two different tools!..
More details : http://nantcontrib.sourceforge.net/
I have some more basic information coming as another blog post.