Методы 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', '_');
}
Хороший вопрос, я думаю, вы охватили все слои, которые я видел: Модальное связующее и служебный слой являются необязательными.
Возможно, вы можете добавить еще один уровень обработки ошибок, такой как elmah .
Прежде всего, я думаю, что программы и шаблоны имеют тенденцию к чрезмерному усложнению. Как следует из названия ASP, основная идея фреймворка - это модель-представление-контроллер (MVC). Вы можете поместить между этими компонентами множество вещей, включая базы данных, службы, API и т. Д. Однако основная концепция шаблона модель-представление-контроллер довольно проста: разделите эти функции на модули, чтобы проект мог быть легче обслуживать.
MVC можно применить к ЛЮБОМУ программированию или написанию сценариев, которые вы делаете. Даже для сценария оболочки может быть полезен MVC. Вот несколько примеров каждого из них:
Теперь самое интересное. Контроллер не заботится о том, как 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 из-за его простоты. Это будет похоже на создание лазера для уничтожения мух. Вы, конечно, убьете их, но не во всех случаях усилия стоят того.