Lately I’ve been working on a very interesting project along with quite a few great developers that I haven’t had the pleasure of working with before. Apart from it having been, and still is, very instructive and a lot of fun the experience has also opened my eyes to a few great tools for .NET development that I haven’t used before.
When I was preparing to do the final release of Page Type Builder for EPiServer CMS 5 recently one of the developers on the team suggested I’d analyze the code using Microsoft FxCop. While I recalled having heard about it before I had (shame on me!) never tried it. FxCop is a tool that checks .NET assemblies for conformance to Microsoft's .NET Framework Design Guidelines and while I can’t say I agree with every warning it gave me when I tried it out it’s ease of use assures it’s place in my toolbox.
To use it you create a new project add one or more assemblies that you want to analyze as targets (Project –> Add Targets) and hit the Analyze button. FxCop will then go through the targets and provide you with a list of all violations of the rules in Microsofts Design Guidelines. Select any of the violations in the list and it will present you with a detailed description of the rule violation including a link to some often very useful information on MSDN.
FxCop is free and can be downloaded here.
LogView4Net is a tool for viewing logs created by Log4Net. It can display logs written to a file, to a SQL Server database, to the eventlog etc. Most interesting to me however is it’s ability to listen to UDP transmissions which makes it a perfect tool for viewing what EPiServer CMS writes to it’s log. Fredrik Haglund has posted a great tutorial on the subject on his blog.
I have used dotTrace before and found it fairly useful, especially when me and Emil used it to locate a few performance issues with the beta versions of Page Type Builder this summer, but in this project dotTrace hasn’t just been a valuable tool, it has been an absolute life saver and our primary go to tool when trying to locate performance bottlenecks. It’s extremely easy to profile web applications with it (as long as you use IIS) and it’s straight forward interface makes it very easy to locate bottlenecks, such as methods that takes to long to execute.
dotTrace is a commercial product developed by JetBrains (the company behind ReSharper) and costs quite a lot but a 10 day trial license is available.
LINQPad is a great help when writing complex LINQ queries. You select a data source (it supports LINQ to Objects, LINQ to SQL, Entity Framework, LINQ to XML and a bunch of other data sources) and write a query against it. Hit the run button and LINQPad will show you the result. In the cases where the data source is a SQL Server database you’re also able to view the generated SQL which is great for verifying that the resulting database query is what one would expect LINQPad comes in two versions, one that is free and a commercial one that gives you auto completion.