asp.netdesign-patternsarchitectureweb-architecture

ASP.net Confusion among web architecture


A little Background:

I started my career almost 5year ago as a web developer using ASP.net and C#, after working as a web developer for only a year i switched to the world of low level programming (i.e C/C++). Now, from last 4 years i have been working in c/c++

At present i have been assigned a task to develop a large scale web application (by large scale i mean large number of users probably in million and huge communication among those user like communication at twitter or facebook and obviously a huge backend database aswell). Since i worked in ASP and C#, so i will prefer to develop this application using ASP.net and C#

My Question:

Currently the project is in requirement gathering phase and in the meanwhile i am assigned a task to design its architecture. Now i google various architecture resources and came across following:

Now i am totally confused with first two because some site mention that if i use MVC then i am not allowed to use WEb forms, and many more . . .

Secondly some sites also mention SOAP and REST but i feel that i am not able to use with ASP.net and C# (with the .Net Framwork 4.0)

What i Want

First, i appologise in advance coz i feel this all confusion arise because i have experience in C/C++ rather than web development. Secondly, i know that no one did the job done for me and even i don't want to do so, i only need good guidence i.e where to start with, what resources should i study etc.


Solution

  • This site is build on MVC.

    MVP is more suitable for older ASP.NET technology like WebForms, but can be a pain. Three Tier Architecture is more a overall system architecture where you have a database, service exposing database, and consumers using the database. Sometimes it also refers when you separate your app in three layers, like data, business and presentation. MVC and MVP are just UI patterns.

    Now, you want someone to tell you what to use, which is impossible, because we have only tiny piece of picture. However, I would always prefers MVC and heavily object-oriented practices when designing the application, except when something to be put fast is to be made.

    The Internet is full on tutorials on all these technologies, you should familiarize yourself first with them, and then decide which one to use.