Cuando comencé en .NET Webforms no tuve problemas para encontrar una estructura de carpetas a seguir, ya que VS me ofreció carpetas de aplicaciones como "App_Code" y la mayoría de ejemplos de aplicaciones ponen "BLL", "DAL" adentro y así sucesivamente.Una estructura de carpetas ideal para .NET MVC
Pero ahora en MVC, cada ejemplo que verifico usa una estructura diferente, como no hay estándares esta vez y no he encontrado una buena solución en Google o SO.
Entonces, tal vez podamos compartir cómo organizamos nuestros proyectos de MVC, puede ayudar a otros a hacer su propia opinión. Aquí está la estructura para proyectos pequeños a medianos que uso:
App_Data
Areas
Admin
Controllers
Models
Views
MyAccount
Controllers
Models
Views
Content
Images
Scripts
Styles
Controllers
HomeController.cs
Helpers
ExtensionMethods // I.e. based on HtmlHelper, use "helper" suffix
MenuHelper.cs // to be called as html.Menu()
Utilities.cs // Other generic (static) libraries, no suffix used
Models
ViewModels // for passing models to Views
RegisterViewModel.cs // use "ViewModel" suffix
Customer.cs // to extend models like adding Model Validation
Repositories
CustomerRepository.cs // use "Repository" suffix
Services
CustomerService.cs // use "Service" suffix, to move code away from controllers
Views
Home
Index.cshtml
Register.cshtml
Shared // Site Layouts (Master templates), also put partials here
SiteLayout.cshtml
¿Qué tal el tuyo?
Posiblemente noob pregunta: aunque he estado usando ASP.NET MVC durante mucho tiempo, nunca he encontrado '.cshtml'! ¿Que es eso? :) –
@Maxim; Eso es Razor. – Pradeep
Sí, eso es una máquina de afeitar, el nuevo motor de vista predeterminado en MVC3, es más limpio y hace que el código sea más legible, puede consultar un blog de Scott Gu: http://weblogs.asp.net/scottgu/archive/2010/07/02 /introducing-razor.aspx – Nestor