I am new to designing ASP.net architecture and I have to design the architecture for our new web application.
This web application is a migration from .Net 1.1 to .Net 4.0.
It's an intranet application with few reports coming through SSIS besides the normal UI(input->save-> retrival cycle) at various application tabs.
Please suggest a suitable architecture that I should be going with and if possible detail out it a bit so that it becomes easy for me to go ahead and implement.
(Note: I don't want to go with ASP.Net MVC and want to write architecture from scratch.)
Please mark as answer if you find the post useful
My Blog: Akshay's Notion
Since you are not interested in using ASP.NET MVC, maybe you want to take advantage of the MVP (model - view - presenter) pattern. There is a framework from the Patterns and Practices site.
I don't think it is a silver bullet to every application. But it is a good way of getting organized. To be honest, the intranet application may not be this complex. No need to over-architect an application if all it is doing basic CRUD and reporting.
Marked as answer by akshay22 on Apr 27, 2012 03:08 AM
I am new to designing ASP.net architecture and I have to design the architecture for our new web application.
The paper answer to this question is to use MVP (Model View Presenter) as mentioned before as it improves on the tightly coupled nature between a page and it's code behind by using separation of concerns to segregate responsibilities.
However, I have been doing this long enough with Jr. developers and there is a reality to jumping into more advanced architectures even though they are a much better choice in the long run. Jr. devs probably don't even understand
why MVP is better than the native model created by webforms and could slow down or even halt development. Concepts which are 2nd hand to seasoned developers will honestly make no sense to a team of inexperienced developers.
It doen't mean you shouldn't take on the chanllange, but I would recommend a more entry level layered approach in your case since you mentioned you are "new to ASP.NET architecture" with a 3-layer approach. A (3) layer architecture uses a UI (User Interface),
BLL (Busniess Logic Layer), DAL (Data Access Layer) design. You can use this easliy with webforms and there are many examples on how to apply this architecture. This is a stepping stone to understanding spearation of concerns into different logical layers
into the main parts of the application. This will lead you to some of the more advanced architectures and associated OOP concepts moving forward.
If you do have a lot of ASP.NET experience and feel compitent or have some seasoned developers to work with than MVP is a good option. However I recommend using the (3) layer approach for your intranet application especially since it does not sound
overly complex either. This is something else to take into consideration when choosing an architecture (and is why I didn't even mention something like DDD for this type of project).
akshay22
Participant
914 Points
184 Posts
Suggestion for a new ASP.net application architecture
Apr 26, 2012 01:51 PM|LINK
Hi All,
I am new to designing ASP.net architecture and I have to design the architecture for our new web application.
This web application is a migration from .Net 1.1 to .Net 4.0.
It's an intranet application with few reports coming through SSIS besides the normal UI(input->save-> retrival cycle) at various application tabs.
Please suggest a suitable architecture that I should be going with and if possible detail out it a bit so that it becomes easy for me to go ahead and implement.
(Note: I don't want to go with ASP.Net MVC and want to write architecture from scratch.)
My Blog: Akshay's Notion
voodoo9055
Participant
1873 Points
438 Posts
Re: Suggestion for a new ASP.net application architecture
Apr 26, 2012 03:13 PM|LINK
Since you are not interested in using ASP.NET MVC, maybe you want to take advantage of the MVP (model - view - presenter) pattern. There is a framework from the Patterns and Practices site.
http://webclientguidance.codeplex.com/wikipage?title=MVP_landing_page
As far as architecture for the rest of the application, I been a fan of the Onion Architecture.
http://jeffreypalermo.com/blog/the-onion-architecture-part-1/
I don't think it is a silver bullet to every application. But it is a good way of getting organized. To be honest, the intranet application may not be this complex. No need to over-architect an application if all it is doing basic CRUD and reporting.
atconway
All-Star
16846 Points
2756 Posts
Re: Suggestion for a new ASP.net application architecture
Apr 26, 2012 06:12 PM|LINK
The paper answer to this question is to use MVP (Model View Presenter) as mentioned before as it improves on the tightly coupled nature between a page and it's code behind by using separation of concerns to segregate responsibilities.
However, I have been doing this long enough with Jr. developers and there is a reality to jumping into more advanced architectures even though they are a much better choice in the long run. Jr. devs probably don't even understand why MVP is better than the native model created by webforms and could slow down or even halt development. Concepts which are 2nd hand to seasoned developers will honestly make no sense to a team of inexperienced developers.
It doen't mean you shouldn't take on the chanllange, but I would recommend a more entry level layered approach in your case since you mentioned you are "new to ASP.NET architecture" with a 3-layer approach. A (3) layer architecture uses a UI (User Interface), BLL (Busniess Logic Layer), DAL (Data Access Layer) design. You can use this easliy with webforms and there are many examples on how to apply this architecture. This is a stepping stone to understanding spearation of concerns into different logical layers into the main parts of the application. This will lead you to some of the more advanced architectures and associated OOP concepts moving forward.
If you do have a lot of ASP.NET experience and feel compitent or have some seasoned developers to work with than MVP is a good option. However I recommend using the (3) layer approach for your intranet application especially since it does not sound overly complex either. This is something else to take into consideration when choosing an architecture (and is why I didn't even mention something like DDD for this type of project).
Below are some resoirces to help you get started:
Building an N-Tier Application in .NET:
http://msdn.microsoft.com/en-us/library/ms973279.aspx
Creating a UI-BLL-DAL:
http://www.asp.net/data-access/tutorials/introduction
N-Layered Web Applications with ASP.NET 3.5 Part 1: General Introduction:
http://imar.spaanjaars.com/476/n-layered-web-applications-with-aspnet-35-part-1-general-introduction
3-tier Architecture with ASP.NET 2.0:
http://msdn.microsoft.com/en-us/library/aa581769.aspx
Hope this helps!