Создаем класс для хранения данных для рабочего потока (Thred Local Storage)

Иногда есть данные которые хочется сохранить для текущего рабочего потока и многие сохраняют их в HttpContext.Current.Items.  Но такой способ привязывает все приложение к asp.net mvc. Создадим класс TLS(Thread Local Storage), чтобы по возможности можно было использовать ThreadStatic или CallContext, в зависимости от режима TlsMode.

Читать далее Создаем класс для хранения данных для рабочего потока (Thred Local Storage)

Получаем данные из appSettings при помощи Ninject

Создадим пользовательский атрибут ValueAttribute, который будет производным от атрибута InjectAttribute. Данный атрибут достает значение из appSettings, а Inject в свою очередь запишет это значение в указанное свойство.

Читать далее Получаем данные из appSettings при помощи Ninject

Обертка для написания пользовательских ошибок elmah

Elmah позволяет писать свои сообщения в лог таким образом:

Elmah.ErrorLog.GetDefault(System.Web.HttpContext.Current).Log(new Elmah.Error(new Exception(str)));

Получается приходиться писать очень длинную строчку. Поэтому создадим класс — обертку, которая будет делать это за нас.

Читать далее Обертка для написания пользовательских ошибок elmah

Работа с логированием в asp.net

Посмотрим логи которые пишет iis сервер по умолчанию. Установим elmah и nlog логирования. Первый удобен тем что имеет веб интерфейс. Второй позволяет писать логи в текстовый файл, что удобно когда нужно исследовать участок кода более подробно.

Читать далее Работа с логированием в asp.net

Настраиваем контекст бд и migration (entity framework)

Создадим контекст базы данных. Настроим логирование всех sql запросов в debug вывод. Настроим migration для обновления бд.

Читать далее Настраиваем контекст бд и migration (entity framework)