42. C-sharp 38 17-42-15

Created Tuesday 22 July 2014

Exceptionless — dll, который после подключения к проекту начинает обрабатывать исключения (например, отправлять на мейл)

log4net — инструмент для записи логов в разные места

Extension methods — методы, которые можно описать, как бы добавив к классу, код которого нам не доступен.

Fluent interface — способ создания объектной модели, где методы могут вызываться по цепочки, как в функциональном программировании, и тогда эта цепочка выводов хорошо читается, и считается профессиональным подходом. Для реализации можно использовать extension methods.

http://rlacovara.blogspot.co.il/2009/07/fluent-interface-for-composing-entity.html

Многозадачность

Threads — потоки
Поток — последовательность машинных комманд, исполняемых процессором в данный момент времени
Наш код после компиляции исполняется в одном потоке
Процесс — область памяти и код, которые выделены определённому участку работы. Если программа многопоточная, то в процессе организуются несколько потоков
Веб приложения предполагают, что они будут обслуживать много потоков
Веб сервер может создавать поток на каждый запрос, поэтому часто нет нужды беспокоиться о многопоточности на уровне веб-приложения, если только нет необходимости оптимизировать работу самого приложения на запрос
Когда выполняется какая-нибудь длительная операция (запись или считывание большого файла), никакая другая задача кодом не выполняется
Можно процедуру чтения файла запустить в отдельном потоке, в то время как основной ход программы будет выполняться и следить за состоянием потока чтения файла.
Запрос к файлу
Запрос к базе данных
Запрос к Интернет
Запрос к ресурсу
Длинные рекурсии или циклы
Несколько способов реализации потоков
Task Parallel Library — TPL
Task, Async/Await — самый современный способ, надстроен над TPL
Рекомендуется почитать из книги Албахари главу о многопоточности — есть в свободном доступе
http://www.albahari.com/threading/part3.aspx
Асинхронность
Windows services



Backlinks: