Wiki

Clone wiki

ElmahR / Nuget

Nuget packages

Since 1.0.0 final, a dashboard can be fully built from Nuget packages. There are several of them, each one with a specific role and for a specific component of a whole dashboard, reflecting the modular structure of ElmahR. Let's see them in detail, grouped by their main areas of action.

Dashboard

As described elsewhere, we have 2 different types of dashboard, a first level providing a basic log and a second level delivering a more sophisticated UX, let's see them:

ElmahR.Core

Location: Nuget package

This is the main package, which deploys the dashboard engine (see Architecture for details). Installing this package in your application will allow you to add a basic live log page reachable at elmahr/basic, and the required configuration sections will be added to your web.config, which you will have to fill with the missing information for your specific setup.

ElmahR.Modules.Dashboard

Location: Nuget package

Requires: ElmahR.Core

ElmahR.Core supplies the low-level dashboard engine, but from an UI perspective it's a very basic module. ElmahR.Modules.Dashboard applies a Single Page Application approach and delivers a more efficient and appealing UX to the final users. You will find a new page at elmahr/dashboard, a full fledged interactive and live error dashboard. This module depends on ElmahR.Core, which it will automatically be added if still missing.

Dependency Injection

See Architecture for details.

ElmahR.Ioc.NInject

Location: Nuget package

Requires: ElmahR.Core

This is an IoC module (actually the only one available for the time being), which hooks NInject into ElmahR.Core in order to leverage its features where a dependency injection system is needed inside ElmahR.

Errors Persistence

See Architecture for more details about persistence. Persistence modules have been made available in several independent packages.

ElmahR.Persistence.EntityFramework.* packages

Requires: ElmahR.Core

These modules support EntityFramework setups, in 3 possible flavors:

  • ElmahR.Persistence.EntityFramework.EF4

    Location: Nuget package

  • ElmahR.Persistence.EntityFramework.EF5.NET40

    Location: Nuget package

  • ElmahR.Persistence.EntityFramework.EF5.NET45

    Location: Nuget package

Names should be self-explanatory, you will choose the best option according to your settings and preferences.

ElmahR.Persistence.EntityFramework.SqlServerCompact

Location: Nuget package

With EntityFramework we easily support several relational databases, but we will still need to deploy the related assemblies in case they're not supported by .NET Framework out of the box. A specific scenario revealed to be interesting, the one which is based on SqlServerCompact, because it easily allows to support a server-less scenario and to persist errors in a local .sdf file. For this reason an additional Nuget package has been built in order to deploy the necessary dependencies with just one package. It's just a handy facility which does not install any ElmahR related assemblies, it just takes care of adding to your project a couple of references to existing Nuget packages deploying SqlServerCompact related binaries.

ElmahR.Persistence.MongoDB

Location: Nuget package

Requires: ElmahR.Core

To prove the flexibility of the approach, a different module has been built to support a document oriented database like MongoDB, and a related Nuget package has been built.

Monitored applications

When your dashboard has been composed, you will need to hook into it your specific applications you want to monitor, to accomplish this goal you will need the ElmahR.Elmah module.

ElmahR.Elmah

Location: Nuget package

Thanks to this package you can easily enable an existing application to be monitored by an ElmahR dashboard. The package will install the ElmahR.Elmah assembly and all the related dependencies. The package will also introduce a sample configuration key in the web.config of your application, you will just have to customize it with your current settings, following instructions you can find here.

More packages

ElmahR.Appharbor

Location: Nuget package

A sample ElmahR plugin is available, it extends an ElmahR dashboard to enable it receiving build notifications from any monitored application hosted on Appharbor infrastructure. Installing it you will be able to configure your source apps to be target of HTTP POST from Appharbor containing info about the last build occurred on your source app. After installing the plugin, all you have to do is:

  • open the web.config of your ElmahR instance, and for each application hosted on Appharbor go to the corresponding application configuration section, add an attribute called appharborId and assign to it a value corresponding to the Appharbor slug for your application (check Appharbor docs for details)
  • on the Appharbor administration console for your source application, add a Service Hook pointing to this url: http://yourElmahrDashboardAddress/buildInfo.axd

You are now ready to receive Appharbor build notifications live on ElmahR.

Updated