Browsed by
Author: Alan

FXCop, a .NET code analyzer

FXCop, a .NET code analyzer

I tried out FX Cop today and was quite impressed.

For those not aware of it (and neither was I until a couple of days ago) it’s a "Microsoft Best Coding Practices" reporter which takes a .NET assembly and reports on how it conforms to those practices.

It’s available from http://www.gotdotnet.com/team/fxcop/

There is an article on CodeProject on how to extend FXCop:

Why FxCop?

  • To ensure that coding standards such as naming conventions, localization etc. are as per company standards.

  • To avoid bad coding and make use of best practices.

  • Well-formatted test reports.

FxCop allows you to write / create your own rules or to use standards provided by Microsoft, and apply to your assembly. A rule is managed code that can analyze targets and return a message about its findings. FxCop analyses programming elements in managed assemblies and provide an informational report containing messages about the targets, including suggestions on how to improve the source code.

Coding standards: all developers are supposed to follow a company’s coding standards. It’s not an easy task to check manually the thousands of lines of code to ensure that coding standards are followed or not. FxCop solves this problem. You create an assembly having all these standards and run your assembly (DLL or EXE) against these rules, and FXCop will ensure that the specified rules are used in the coding or not.

Darwen at CodeGuru describes it this way:

Newsgator Online

Newsgator Online

I’ve switched my online news aggregator from Bloglines to Newsgator.  First, I wanted to try it out and compare it to Bloglines.  I like the interface better, especially in how you mark things as read.  I’ve switched for good.  I mainly switched so that I can continue using RSS Bandit and get the benefit of syncing between it and an online news aggregator (supported in latest RSS Bandit 1.3.0.38 release)

Warning, when you export your subscription list from Bloglines in order to import into Newsgator, you’ll want to edit it and remove the high-level “Subscriptions” node, otherwise all your subscriptions will be created inside a folder called subscriptions.

 

  • Update July 9, 2019.   Bloglines and Newsgator are not longer in business.  Here is a page with suggestions on the latest RSS Readers.  I use Feedly on my phone.
C# Gotchas

C# Gotchas

I ran into my first bad encounter with C# garbage collection.  The destructor I added to my main application form wasn’t being called.  I tried forcing it with GC.Collect(), nothing.

What worked was adding IDisposable as a base class and implementing Dispose(), then adding a using{} block around my main form:

using (myMainForm = new MyMainForm()
{
.
Application.Run(myMainForm);
.
}

This seems to defeat the purpose of destructors, or at least the convenience of relying on them to do cleanup.

I don’t like the Dispose/using technique so I actually replaced it with a handler for the Form.Closing event.  Of course this only works with Form derived classes.

There may be something special about the main form preventing the destructor from being called.  I know the main form is being destroyed because it contains an object whose destructor DOES get called.

A few helpful web pages I googled in researching this anomoly:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=6905
http://www.ondotnet.com/pub/a/dotnet/2002/02/11/csharp_traps.html?page=1
http://www.andymcm.com/csharpfaq.htm