Я бы попросил также о лучших методах и шаблонах для asp.net MVC, используя этот пример:MVC шаблоны и практика
У меня есть проект. Это его архитектура:
- Модели
- Controler
- Просмотров
- Инструменты
В модели папки у меня есть каждый ViewModel в отдельном поле класса. Все объявления таблиц (объекты) я помещаю в один файл (AccountModels.cs или ForumModels.cs). У меня есть отдельный файл для контекста EF (MyAppContext.cs).
Контролер - здесь у меня есть только классы-контроллеры. Но, может быть, часть кода будет лучше пример и предложение, что я могу улучшить:
private AppContext db = new AppContext();
[HttpPost]
[Authorize]
public ActionResult AddGun(GunModel model)
{
if (ModelState.IsValid)
{
Gun gunToAdd = new Gun
{
Tilte = model.Tilte,
AuthorID = UserTools.getUser(User.Identity.Name).UserId,
AddDate = DateTime.UtcNow,
Content = model.Content,
CategoryID = model.CategoryID,
CategoryName = GunsTools.getCategoryName(model.CategoryID)
};
db.Guns.Add(gunToAdd);
db.SaveChanges();
return RedirectToAction("Details", new { ID = gunToAdd.ID });
}
return RedirectToAction("Index");
}
Это часть контроллера с AddGun действий. Другие ActionResults похожи - Дженерали я использую лямбда-выражение на моем контексте дб, чтобы получить значения и т.д.
Просмотров - Просмотров в отдельной папке, для Частичный вид I установить специальный префикс (например - _NavigationPartial.cshtml или _CalculatorPartial.cshtml). Есть ли что-то для улучшения здесь? Конечно, Views использует ViewModels, а не модели.
И не менее - Инструменты. Я поставил здесь несколько классов и методов, чтобы предотвратить повторение кода. Вот несколько методов, которые witch возвращает из базы данных некоторые объекты или просто строки, такие как GetUser (..) или GetCategoryName (..). Это хорошая практика?
Я думаю, что многие молодые разработчики MVC имеют одинаковую архитектуру проекта (я лично видел это в нескольких компаниях), и многие из них, возможно, также хотят улучшить что-то в своих проектах, чтобы стать лучшими программистами.
С уважением
Я думаю, вы должны сузить это и отточить конкретные вопросы. Вопросы с лучшей практикой часто закрываются или обсуждаются бесконечно. –
Спасибо за ответ. У меня возникла проблема в том, как задавать конкретные проблемы или практики, поэтому я подумал, что покажу пример моего приложения MVC. Я не знаю шаблонов и практик, поэтому не знаю, что я должен спросить. – whoah