Alexander Beletsky's development blog

My profession is engineering

ELMAH.MVC v2.0 is coming

Elmah.MVC is rather popular package in NuGet gallery. Being submitted about year ago it currently has about ~14K downloads. I received a lot of nice feedback and to be honest feel quite happy that people are using it. Being extremely simple it requires almost no effort to support.

Anyways, several month ago I received an email from James Driscoll one of the major contributors to ELMAH project. James says that he is working on similar problem, namely easy to pickup ELMAH error handling within ASP.NET MVC applications. He saw my package, but in the same time he has his own prototype in ELMAH.Sandbox project, hosted on google-code. Instead of creating yet another NuGet package he proposed to join our efforts and release next version of ELMAH.MVC. That was the beginning of ELMAH.MVC v2.0.

What will be changed?

Elmah.MVC is really simple one, actually delivered as 2 C# code files. It creates new ASP.NET MVC area and register route to ElmahController, which is just an adapter to ELMAH LogFactory. It worked very smooth, but with more functionality this approach no longer work.

Pack ELMAH.MVC into separate class library

The idea is to bother user as less as possible. Ideally he just drops the DLL into Bin folder and it start to work. In real world it’s a bit more complex, but anyway. Elmah.MVC will be packed and delivered as class library.

Support in VB.NET projects

Since it will be just a class library, VB.NET developers finally could use Elmah.MVC without any manual code conversion. I don’t know how many ASP.NET MVC3 applications are developed in VB.NET, but I think it’s still nice step towards compatibility.

HandleError attribute

A lot of people, including myself are using HandleErrorAttribute on controllers to redirect user for nice looking error page if something goes wrong. This mean you handle the error by yourself, so it won’t appear on ELMAH log. That is very big disadvantage of current Elmah.MVC. This will be fixed as new global filter added, that will care that everything will be properly logged.

Several small fixes

So far, I’ve collected some issues that just was in line and waited to be fixed. It’s a good time to get rid of those.

What’s the plan?

Good for me, James did all heavylifting. I will backport some good code into new project. I’ve created new branch and already started to work. Unfortunately, I could see some breaking changes there. At the end of this week, I’ll have new package ready to test. You can track the progress on github by watching v.2.0 milestone.

I will need your help guys to test that thing out. If everything goes fine, I’ll update NuGet package as soon as possible.