Blog

 
Tag: .NET

ASP.NET MVC - Generic filtering based on expressions

2/18/2012
.NET, ASP.NET, C#, MVC
25 Comments

Recently I was asked to implement a reusable filtering mechanism in an ASP.NET MVC application. To be more concrete: A website shows a grid containing arbitrary data. The user should be able to enter a filter for each grid column.
The filters should be generated based on the type of the displayed objects. With that functionality, it is possible to filter every grid in the application with very little effort. Moreover I added a possibility to add custom search criteria.





YAGNI - 'Poor-mans CQRS' sample application with Entity Framework

11/6/2011
.NET, C#, EF, Test
2 Comments

This week Daniel Lang published an interesting article about unnecessary overhead in simple applications.
In a nutshell he proposes an architecture called "Poor-mans CQRS". In his sample he uses an ASP.NET MVC application. The controllers retrieve their required data directly from the database (Query), and updates are performed in service layer (Command).
In this post I will provide a (simple) application, which is based on the Entity Framework. It shows the principle and explains how unit tests can be written without querying a real database.



IoC Container Benchmark - Performance comparison

8/30/2011
.NET, C#
170 Comments

In this post I will do a performance comparison of the most popular IoC containers.
Of course performance is not the only criteria when choosing a container for a project. Perhaps you need features like interception or you develop for a specific platform, then not all containers are suited. But especially in high-load scenarios like a web application, a fast container can help you to serve more requests in the same time, so why not choose the fastest one?



Code Coverage - Testing with OpenCover and PartCover

Just some days ago, a new code coverage tool was released for the first time. It's called OpenCover. Shaun Wilde created this tool, since PartCover 4 has some issues that are difficult to resolve with the current code base. He describes some of them on his blog.
In this post I will do a comparison between OpenCover and PartCover and show how these tools can be used to get the coverage of unit tests.



MetroBackUp - Applying Metro UI and Flow Design (Event-Based Components)

6/16/2011
.NET, C#, WPF
10 Comments

Four years ago I wrote one of my first WPF applications. It was named 'BackUp' and enabled you to keep directories in sync (similiar to Microsoft's SyncToy).
Actually I learned a lot of the WPF stack by creating this application, but since I did use code behind instead of the MVVM pattern, it was a good occasion for refactoring the code and applying a new UI.
In this post I will present the new Metro UI and describe my experience in using event-based components for the synchronization workflow.



VSTO - Importing Google contacts to Outlook 2007

2/27/2011
.NET, C#, VSTO
4 Comments

For a long time I have been using Outlook to manage my contacts and appointments. I always synchronized my mobile phone with Outlook. After buying an Android device things have changed.
Now I use Google Contacts and Google Calendar to manage my contacts and appointments. Since I still use Outlook I need an easy way to synchronize Google with Outlook. Google provides GoogleCalendarSync to synchronize your calendar, but synchronizing contacts is only available for business customers.
In this post I will provide an Outlook addin which imports your Google contacts to Outlook.





.NET 4.0 - Covariance and contravariance

1/5/2011
.NET, C#
0 Comments

Today I took a look at the new covariance and contravariance features of .NET 4. In this post I will explain the theoretical background and will provide some practical examples.
The code snippets cover most of the features of CLR 1 to CLR 4.



AOP - Interception with Unity 2.0

9/26/2010
.NET, C#
10 Comments

Unity is a well known dependency injection container. Custom extensions can be created to extend its functionality. The download of Unity contains an extension for interception.
In this post I will show you, how interception can be used for separation of cross-cutting concerns.