I'm currently building a very small website, around 20 to 30 views, 10 controllers.I know MVC is only a design pattern and should only be the top presentation layer.I'm currently at a stage in development when you start question yourself and what you're doing. It feels like this small website don't 'need' the N-tier architecture because it's too small for that. But in the long run maybe it's worth it.Is it worth the time to migrate to N-Tier?IS there some level of abstraction when you should migrate to n-tier? Is there some magic point when the project grows too large? Or should it be done directly in the beginning of the development?
Should I Make my ASP.NET MVC N-tier?
mvc;n tier
Well, let's evaluate what you are asking first.Your application is currently a Model-View-Controller application.  What does that mean?  It means your application has:A Presentation layer, the View,An Application Processing Layer, the Controller, andA Data Management Layer, the Model.What would it take to convert it to N-tier?  Well, according to Wikipedia, a Multi-Tier application is a clientserver architecture in which presentation, application processing, and data management functions are physically separated.Hmm, seems like you have multi-tier already.If you don't buy that, then make your Data Layer a web service.  That way your MVC application will be able to access it, and so will your mobile application, your desktop application, or any other application that you wish to write.  In any event, multi-tier is primarily about scaling applications to multiple machines.  Writing web services accomplishes that in part, but so does splitting parts of your application to multiple machines on the same intranet.  Whether or not you need all this depends entirely on your application and its scope.