Difference between MVC and 3-tiers architecture [closed] - asp.net-mvc

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
After a lot of reading i still unable to understand the difference between the design pattern MVC and 3-tier architecture.
I see that the model in mvc is the same as business layer in 3-tier.
In all websites i searched in, i found that MVC is an applicatif architecture for presentation layer in 3-tier architecture.

I guess in a sense a MVC project could be considered a 3-tiered application. It has a data layer, view layer and a logic layer. However, all 3 of these layers are tightly coupled to the MVC project.
On the otherhand an n-tiered application may consist of a UI application(ie. MVC web app) which calls a web service(ie. WCF) which then calls a Business Logic/Data Access layer(ie. LINQ-> SQL, Database calls).
The main difference I see is MVC is tightly coupled to it's architecture. By this I mean, you can not just remove the controller/models without rebuilding the application. N-tiered applications on the other hand are more loosely coupled. Meaning, I could switch out the WCF layer for Web API and the rest of my application would not care. This is an advantage where growth/expansion may required.

Related

.NET MVC application into an N Tier application [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
In either .NET MVC 5 or a .NET Core MVC application, is it possible to split your Models into a Data Transport Layer, your business logic into a Business Logic Layer and your Db Contexts into a Data Access Layer? I essentially would want the main project to really only have controllers that call to the BLL, and display the results in the view. That way there is portability with my application if I wanted to exchange the main project, which is essentially just a presentation layer.
I know I am going to be needing this kind of architecture as I am building an application that will share a lot of the same business logic between the two applications. What ways can I still get access to helpful features like scaffolding a model into views/controller, and still maintain that portability? Is there a way to do such a thing?
Please note, that this project may be on a short budget, so it is pretty essential to be able to maintain the scaffolding tooling.

Reducing development time on ASP.Net MVC [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am starting new medium size ASP.Net MVC project. There will be 50-60 tables. IE: employee tables(assigning training etc/) , basic warehouse management,. There wont be complicated workflows also.
I am looking for the ways to reduce my development time.
Scaffolding is a good starting point but hard to manage.
I could not decide about using AngularJS SPA or not, Using angular JS reduce the development time ? Or what is the advangates of using angular ?
What is your recommandations about reducing the development time on ASP.Net MVC projects, which ways are you using to building medium size applications.
I don't know your experience with MVC, but generally speaking, I'd suggest to use a UI Framework (like Telerik, DevExpress or Aspnetawesome) because they offer plenty of example on how to organize your project. It definitly saves you time. Then which one you choose depends on your preference and budget. All 3 are good.
As for managing your data, just create a Domain project which will only contain your data access (probably repositories). For that project, it is no different from a normal C# project. You'll probably want to use Entity Framework, nHibernate or a similar ORM.
So to recap, divide your solution in at least 2 projects, one for the data and one for the UI, then use a UI framework for the MVC project and an ORM for the data access.
As for AngularJS, I would not focus on such tool unless you are really comfortable with MVC.
Pros:
On the long term, you may save some time
It is free
It is well supported and seems to be there to last
Cons:
If you are part (now or eventually) of a team, not all members will
know that tool
If you are comfortable with MVC, this will not save you significant time in my opinion. You don't become an MVC superstar
because of it
If you are not that comfortable with MVC, incorporating such tool is a bad idea. It is better to know a few tools but to use them
properly than to poorly use many of them.

Is MVC a design pattern only or Programming Technology [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Is MVC a design pattern only or Programming Technology? If I violation the MVC pattern like ASP.Net Form Application then any performance issue arise or not.?
MVC is neither a design pattern or a technology. It's a software architecture pattern. See:
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
The difference between a design pattern and a software architecture pattern is that design patterns tend to be simpler and apply to specific components of an application, while architecture patterns are broader and apply to the application as a whole.
In any event, there is also various pieces of technology called MVC, which are based on the MVC pattern. For instance, ASP.NET MVC is the official name for the flavor of MVC created by Microsoft for use in web applications. This is a specific implementation of MVC.
Violation of the MVC pattern has nothing to do with performance, and is largely an issue dealing with maintainability. The MVC pattern stresses separation of concerns to make designing and maintaining your application easier, and making your application less fragile to change.
MVC is just a architecture pattern not a technology, and its goal is separating concerns, you should know something that you can use MVC pattern and Webforms together, and if MVC does not separate Model View and Controller then you are doing something else not MVC

Is Asp.NET MVC Not Suitable For N-Tier Architecture? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Firstly, I have a question which already I know the answer but I want to ask;
Which one is manageable on HTML source?? Asp.NET Web Forms or Asp.NET MVC??
My second and important question;
Think a project which is big and expandable web project.. You sell something and control your agents with this project. You can give XML for your product range, and you would be able to add new products.. What does "Asp.NET Web Forms is more suitable for N-Tier Architecture and Asp.NET MVC is not" mean??
I would say that MVC is just as suited if not more so than Web Forms. Given the much clearer separation of the different parts in the MVC framework it lends itself very well to creating a solid N-tier solution. But with anything, if care is not taken in the implementation it really doesn't matter what framework you are using.

Why did Microsoft Choose MVC to build ASP.net MVC? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I know what is ASP.net and I know what is MVC and some other Design patterns , my question is why did microsoft choose this design pattern ? why not ASP.net 3tiers or ASP.net AOP ...etc is it easier to program with , more powerful for building websites? in other words what are the advantages to use MVC instead of other Design Patterns with ASP.net?
MVC is a strong pattern and has proved very popular in other development communities including but not limited to Ruby on Rails. Wikipedia has a long list of MVC web frameworks. I guess Microsoft, didn't want to be left behind as more and more people migrated away from WebForms.
My guess would be that it is a proven and very suitable pattern for the web. MVC fits very well with the stateless nature of the http protocol. And many other big web frameworks for other languages use the MVC pattern.

Resources