Код: Выделить всё
MyExamProject
│
├── MyExamProject.sln
│
└── MyExamProject
│
├── Areas
│ └── Admin
│ ├── Controllers
│ │ ├── DashboardController.cs
│ │ ├── ProductController.cs
│ │ └── CategoryController.cs
│ │
│ ├── ViewModels
│ │ ├── Product
│ │ │ ├── ProductCreateVM.cs
│ │ │ └── ProductEditVM.cs
│ │ └── Category
│ │ ├── CategoryCreateVM.cs
│ │ └── CategoryEditVM.cs
│ │
│ └── Views
│ ├── Shared
│ │ └── _AdminLayout.cshtml
│ │
│ ├── Dashboard
│ │ └── Index.cshtml
│ │
│ ├── Product
│ │ ├── Index.cshtml
│ │ ├── Create.cshtml
│ │ ├── Edit.cshtml
│ │ └── Delete.cshtml
│ │
│ └── Category
│ ├── Index.cshtml
│ ├── Create.cshtml
│ ├── Edit.cshtml
│ └── Delete.cshtml
│
├── Controllers
│ ├── HomeController.cs
│ └── AccountController.cs
│
├── Services
│ ├── Interfaces
│ │ ├── IProductService.cs
│ │ ├── ICategoryService.cs
│ │ └── IUserService.cs
│ │
│ └── Implementations
│ ├── ProductService.cs
│ ├── CategoryService.cs
│ └── UserService.cs
│
├── ViewComponents
│ ├── HeaderViewComponent.cs
│ ├── NavbarViewComponent.cs
│ ├── FooterViewComponent.cs
│ └── AdminSidebarViewComponent.cs
│
├── Models
│ ├── Base
│ │ └── BaseEntity.cs
│ │
│ ├── Product.cs
│ ├── Category.cs
│ └── AppUser.cs
│
├── ViewModels
│ ├── Account
│ │ ├── LoginVM.cs
│ │ └── RegisterVM.cs
│ │
│ └── Home
│ └── HomeIndexVM.cs
│
├── Data
│ └── AppDbContext.cs
│
├── Views
│ ├── Shared
│ │ ├── _Layout.cshtml
│ │ ├── _ValidationScriptsPartial.cshtml
│ │ ├── Error.cshtml
│ │ └── Components
│ │ ├── Header
│ │ │ └── Default.cshtml
│ │ ├── Navbar
│ │ │ └── Default.cshtml
│ │ ├── Footer
│ │ │ └── Default.cshtml
│ │ └── AdminSidebar
│ │ └── Default.cshtml
│ │
│ ├── Home
│ │ └── Index.cshtml
│ │
│ └── Account
│ ├── Login.cshtml
│ └── Register.cshtml
│
├── wwwroot
│ ├── css
│ ├── js
│ ├── images
│ └── fonts
│
├── Migrations
│
├── appsettings.json
├── Program.cs
└── MyExamProject.csproj
Вот как я понимаю базовую структуру MVC. Поправьте меня, если что-то не так или чего-то не хватает.
Контроллеры
- Содержит классы контроллеров
- Обрабатывает HTTP-запросы
- Получает данные из моделей
- Отправляет данные в представления
- Содержит модели данных и бизнес-логику
- Представляет таблицы базы данных или объекты домена
- Используется для передачи данных между контроллером и представлением
- Содержит файлы .cshtml
- Отвечает только за пользовательский интерфейс
- Отображает данные, полученные от Контроллера
- Содержит статические файлы, такие как CSS, JavaScript, изображения.
- Доступ непосредственно из браузера.
- Конфигурация приложения
- Настройка промежуточного программного обеспечения
- Конфигурация маршрутизации
- Используется для файлов локальной базы данных или хранилища данных
- Правильна ли эта структура для чистого проекта MVC?
- Где мне следует разместить сервисы и бизнес-логику?
- Следует ли мне создавать отдельные папки, такие как Services, Repositories или DTO?
- Какова наилучшая практика для крупномасштабного MVC проекты?
Подробнее здесь: https://stackoverflow.com/questions/798 ... cture-like
Мобильная версия