Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 374
  • Last Modified:

Best design pattern for a database application coded in C#



Hello all,

I would like to implement a large database application and I wonder if model-view-controller pattern is the best pattern to use. Please, let me know if there are better patterns to use in this case.


Thanks
0
TungVan
Asked:
TungVan
  • 4
  • 3
  • 2
  • +1
1 Solution
 
devsolnsCommented:
Patterns dont really work that way. Efficient and proper use of patterns are implemented through experience.  Your first attempt will likely have many flaws regardless of what pattern you follow.  If it is truly "large" i would advice having it architected by someone else and you learn as you go.
0
 
TungVanAuthor Commented:

Thanks devsolns,

I agree with you that proper use of pattern will come with experiences.

However, I need to tell my idea to my senior coworker next week (I already have MVC pattern in my mind). I just want to know if there are better patterns that I need to consider and investigate more.
0
 
devsolnsCommented:
TungVan, can you give me a little briefing on what this application does?
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
TungVanAuthor Commented:

devsolns,

It is basically a "purchase order" application for the company that i am working for. The database contains information about gains and expenses.
0
 
topdog770Commented:
I agree with devsolns both about patterning and needing more information.

Here's a brief, direct description of the Model View Controller perspective.
http://ootips.org/mvc-pattern.html

The question
===
"I would like to implement a large database application and I wonder if model-view-controller pattern is the best pattern to use. Please, let me know if there are better patterns to use in this case."
===
Feels like trying to answer "which is better a diesel engine or gas engine?"  without knowing whether the engine will be used on a bicycle or a tug boat.

Conceptually, a level of separation between the database and the GUI is a GREAT idea.  But in terms of how to integrate database information with an application requires more specifics




0
 
topdog770Commented:
It took me a couple of hours to submit that last response, sorry.

Are you using 2005 or 2003 VS?



0
 
TungVanAuthor Commented:

no problem...:)

I am using VS 2003.
0
 
devsolnsCommented:
I think the first and most important things to establish is the architecture from a high level.

-what are performance expectations.
-are you using physical or logical tiers?
-thick or thin client?
-will usage grow?  if so do you build to scale out (preferable over scaling up).
0
 
TungVanAuthor Commented:

>>-what are performance expectations.

I think it should be fairly quick because the database will grow quite fast.

>>-are you using physical or logical tiers?

I am not quite sure what those terms mean..

>>-thick or thin client?

The client connects to the database and retrieve information from it. It has little logic. So I would think to have thin client.

>>-will usage grow?

Yes, it will grow (more and more people in my company will use it.)

0
 
gregoryyoungCommented:
I might take a look at MVP as well ... the CAAB is probably worth a download + some research.

Generally some other common ui patterns you will end up using are things like Observer, Event Aggregate, etc

For business layer I would highly recommend a read through P of EAA (Fowler), Domain Driven Design (Evans), and Applying Domain Driven Design and Patterns (Nilsson) which is just about to come out (or jsut came out I forget).

Cheers,

Greg Young
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 4
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now