Andre Gallo
Andre Gallo

Reputation: 2269

ASP.NET C#: Which Design Pattern should I use and why?

I am developing an app in ASP.NET C# and came across the following scenario:

  1. I will have to create some maintenance screens for different entities (tables)
  2. Those entities will basically have the same behaviour within the UI: Search, GetById, Save, Create and GetAll
  3. The entities may have different structure i.e. different properties (fields)

As I am talking about 20 plus admin screens, which design pattern I could take advantage of in order to minimize the amount of code I will have to write?

I though of the bridge pattern but I am a little confused on how to implement it ...

A little bit of the technology background I am using:

  1. ASP.NET classic (n-tier)
  2. LINQ to SQL and DAO objects
  3. SQL Server 2005

Upvotes: 3

Views: 1135

Answers (4)

Brendan Enrick
Brendan Enrick

Reputation: 4307

If you're really just doing some basic stuff like this: Search, GetById, Save, Create and GetAll, I would recommend you use repositories. If done wrong repositories can get really bad and nasty, but if you're really primarily limited to this set of operations you've basically described a repository with that set of operations.

You'll want to look at ways in which you can extract the extra logic for example of searching so that you're not creating duplicate logic.

Repositories are nice and testable as long as you make sure not to let them get out of control. I give you this warning only because I've seen far too many people create monster classes out of repositories.

The repositories work with your objects. They are basically the intermediary which handles the persistence of your data. This abstraction allows you to hide from the rest of your code how you're persisting your data. In this case the implementations of your repositories will be using LinqToSql as I believe that is what you said you were using.

There are plenty of resources explaining the repository pattern.

Upvotes: 2

Naren
Naren

Reputation: 724

What you want is not a design pattern. You are looking for an ORM with scaffolding. I have used and highly recommend SubSonic - http://subsonicproject.com. You can read about its scaffolding features here: http://subsonicproject.com/web-forms-controls/the-scaffold/

Upvotes: 1

Timothy Khouri
Timothy Khouri

Reputation: 31885

This is not a design pattern... but I would strongly suggest using Dynamic Data. Jonathan Carter has some great articles about it: http://lostintangent.com/index.php?s=dynamic+data

Upvotes: 2

Steve Willcock
Steve Willcock

Reputation: 26889

For a set of admin screens that are just doing CRUD (Create, Read, Update, Delete) operations and with little in the way of business logic, I'd be quite tempted to more or less eschew design patterns and take a look at asp.net dynamic data. This is especially true if you want to minimise the amount of code you want to write.

Upvotes: 4

Related Questions