Что является разбивкой всех слоев, required/recommended для Asp. Сетевое Приложение Mvc после лучших практик программирования?

Методы Pythonic для Словарей:

/// <summary>
/// If a key exists in a dictionary, return its value, 
/// otherwise return the default value for that type.
/// </summary>
public static U GetWithDefault<T, U>(this Dictionary<T, U> dict, T key)
{
    return dict.GetWithDefault(key, default(U));
}

/// <summary>
/// If a key exists in a dictionary, return its value,
/// otherwise return the provided default value.
/// </summary>
public static U GetWithDefault<T, U>(this Dictionary<T, U> dict, T key, U defaultValue)
{
    return dict.ContainsKey(key)
        ? dict[key]
        : defaultValue;
}

Полезный для того, когда Вы хотите добавить метку времени к имени файла для уверения уникальности.

/// <summary>
/// Format a DateTime as a string that contains no characters
//// that are banned from filenames, such as ':'.
/// </summary>
/// <returns>YYYY-MM-DD_HH.MM.SS</returns>
public static string ToFilenameString(this DateTime dt)
{
    return dt.ToString("s").Replace(":", ".").Replace('T', '_');
}
8
задан Matt 13 July 2009 в 20:57
поделиться

2 ответа

Хороший вопрос, я думаю, вы охватили все слои, которые я видел: Модальное связующее и служебный слой являются необязательными.

Возможно, вы можете добавить еще один уровень обработки ошибок, такой как elmah .

  • Вид / UI -> Вы помещаете свою HTML-разметку / код Javascript.
  • Связывающее устройство модели -> Вы творите магию чтобы привязать ввод к параметрам действия, обычно используется привязка по умолчанию, поэтому вам не нужно об этом беспокоиться. Однако вы можете переопределить это с помощью собственного подшивки и выполнить проверку на этом уровне. Вот хороший пример по этому поводу.
  • Контроллер -> Достаточно документации в Интернете.
  • Уровень обслуживания -> Многие люди выполняют здесь проверку и другую обработку бизнес-логики перед отправкой в ​​репозиторий . Asp. Пример net mvc contact manger имеет здесь хороший пример. Это также уровень для реальной работы с вашим модальным окном.
  • Репозиторий -> Простая операция чтения / записи.
  • Entity Framework / LINQ to SQL -> DB - Фактическая запись в базу данных. Nhibernate - еще один хороший кандидат здесь.
2
ответ дан 6 December 2019 в 01:40
поделиться

Прежде всего, я думаю, что программы и шаблоны имеют тенденцию к чрезмерному усложнению. Как следует из названия ASP, основная идея фреймворка - это модель-представление-контроллер (MVC). Вы можете поместить между этими компонентами множество вещей, включая базы данных, службы, API и т. Д. Однако основная концепция шаблона модель-представление-контроллер довольно проста: разделите эти функции на модули, чтобы проект мог быть легче обслуживать.

MVC можно применить к ЛЮБОМУ программированию или написанию сценариев, которые вы делаете. Даже для сценария оболочки может быть полезен MVC. Вот несколько примеров каждого из них:

  • Просмотр - вот как пользователь взаимодействует. Это может быть веб-страница, форма Windows или интерфейс командной строки.
  • Контроллер - Мозг программы должен знать обо всем, но должен быть довольно простым. Он в основном получает сообщения или события из представления и / или модели и решает, что делать. Хорошие контроллеры - это, по сути, диспетчер событий. В зависимости от событий он вызывает методы представления или модели. В ASP MVC контроллер - это тот, который предоставляет ActionResults для представления и взаимодействует с моделью.
  • Модель - это в основном то, где находятся данные. Это может быть БД, файловая система, веб-сеанс или память.

Теперь самое интересное. Контроллер не заботится о том, как View управляет взаимодействием с пользователем. Это может быть интерфейс командной строки или веб-форма. Контроллер не знает, как хранятся данные, не имеет значения, БД это или файл. Он просто запрашивает данные и передает их представлению. Не его дело - знать, как представление получает входные данные или как моделирует данные.

Тогда вопрос, Какого черта мы хотим слишком усложнять вещи с помощью этого шаблона? Что ж, представьте, что у вас есть приложение MVC, использующее базу данных MySQL, и вы знаете, что хотите использовать SQL Server. Какой модуль вам следует изменить? Очевидно, затронута Модель. Контроллер и представление не должны иметь серьезных последствий. Теперь представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на веб-формы? По сути, это повлияет на представление (и некоторые части контроллера), но ваша модель должна быть такой же.

Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Однако я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

Представьте, что у вас есть приложение MVC, использующее базу данных MySQL, и вы знаете, что хотите использовать SQL Server. Какой модуль вам следует изменить? Очевидно, затронута Модель. Контроллер и представление не должны иметь серьезных последствий. Теперь представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на веб-формы? В основном это будет затронуто View (и некоторыми частями контроллера), но ваша модель должна быть такой же.

Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Однако я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

Представьте, что у вас есть приложение MVC, использующее базу данных MySQL, и вы знаете, что хотите использовать SQL Server. Какой модуль вам следует изменить? Очевидно, затронута Модель. Контроллер и представление не должны иметь серьезных последствий. Теперь представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на веб-формы? В основном это будет затронуто View (и некоторыми частями контроллера), но ваша модель должна быть такой же.

Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Однако я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

Какой модуль вам следует изменить? Очевидно, затронута Модель. Контроллер и представление не должны иметь серьезных последствий. Теперь представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на веб-формы? В основном это будет затронуто View (и некоторыми частями контроллера), но ваша модель должна быть такой же.

Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Однако я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

Какой модуль вам следует изменить? Очевидно, затронута Модель. Контроллер и представление не должны иметь серьезных последствий. Теперь представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на веб-формы? По сути, это повлияет на представление (и некоторые части контроллера), но ваша модель должна быть такой же.

Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Однако я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на веб-формы? В основном это будет затронуто View (и некоторыми частями контроллера), но ваша модель должна быть такой же.

Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Однако я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

Представьте, что у вас есть другое приложение MVC, использующее Windows Forms, и теперь вы хотите изменить его на веб-формы? По сути, это повлияет на представление (и некоторые части контроллера), но ваша модель должна быть такой же.

Таким образом, MVC - отличный шаблон, и его следует использовать чаще. Однако я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

Я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

Я думаю, что есть проекты, которые не подходят для MVC из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.

0
ответ дан 6 December 2019 в 01:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: