Skip to Content

Новые стандартные механизмы .NET. Часть 1. DI-контейнер

Вводная

Это небольшая серия статей про новые стандартные механизмы в .NET. Вместе с выпуском .NET Standard Microsoft выпустили большое количество обвязок, которые должны привести в порядок некоторый зоопарк используемых технологий.

В первой статье поговорим про то, почему это круто — иметь реализацию DI-контейнера по умолчанию, и почему в большинстве случаев стоит использовать именно его. Также напишем простую реализацию биндинга по атрибутам.

Во второй я расскажу про недостатки старого способа конфигурирования приложения (через app.config/web.config) и про то, как они исправлены в новом подходе.

В третьей посмотрим на стандартный интерфейс логирования и прикрутим к нему привычный NLog.

Далее следует план статей по очереди их публикации. Подписывайтесь на нашу рассылку, чтобы не пропустить новые части.

План

  1. IoC-контейнер
  2. Конфигурация — статья будет опубликована позднее.
  3. Логирование — статья будет опубликована позднее.

Текущая статья посвящена первой теме плана — IoC-контейнер.

Читать далее

TS-WORD. Генератор Word-документов для .NET приложений

В рамках своих проектов мы часто сталкиваемся с такой задачей, как выгрузка (экспорт) различных данных в Word-документ заданного шаблона.

Поэтому мы разработали библиотеку, которая позволяет генерировать документы Word на основе имеющейся в Вашем .NET приложении модели данных и шаблона документа, созданного в Word.

Читать далее

Проект. Официальный информационный портал ЕГЭ

В 2015-2016 гг. команда TS Soft в рамках работ над проектами Министерства образования РФ разработала специальную устойчивую к высоким нагрузкам систему для учеников школ России.

При требовании к обеспечению нагрузки в 4 тыс. обращений в секунду, команде TS Soft удалось добиться уровня допустимой нагрузки в пике до 10 тыс. обращений в секунду.

Вакансии в разработке высоконагруженных приложений.

Читать далее

Мокирование в приложениях web mvc

Другие статьи по юнит-тестированию:

Проекты с примерами из статьи:

Зачем нужны моки
Юнит-тестирование класса, работа которого не зависит от поведения других классов — несложная задача. Мы можем написать что-то вроде:

assertEquals(4, calculator.add(2, 2));

Но приложение web mvc, как правило, состоит из нескольких независимых слоев:
Архитектура MVC-приложения

Читать далее

Проект. Система тестирования «Мои достижения»

В середине 2016 года в промышленную эксплуатацию была запущена web-система «Мои достижения», которая разрабатывалась нами  в течение нескольких месяцев.

  • За полгода работы сервиса учениками школ пройдено более 20 тыс. тестов.
  • В сервисе содержатся тесты для каждого с 1 по 11 класс средней школы. Охватывается от 3 до 10 школьных предметов для каждого класса.
  • В системе реализована подробная аналитика. Сервис отражает результат каждого тестирования, показывает прогресс по каждому предмету, подробно — более, чем по 50 элементам — показывает уровень освоения материала по предмету.
  • В системе реализован специальный модуль для организации онлайн видеоконференции между учеником и экспертом Московского центра качества образования. Ученик и эксперт могут совместно работать с тестом, просматривая, обсуждая и внося правки в ответы.

Хочу работать на таких проектах.

Читать далее

Коллекции в .NET

Коллекции – структуры данных для работы с наборами однотипных объектов.

Когда решается, какую именно структуру использовать для хранения или передачи коллекции, стоит подумать о следующем:

  • в первую очередь, какой класс лучше передаёт намерение разработчика и смысл переменной. Например, если по логике приложения где-то нужна коллекция с уникальными объектами, в которой не нужны повторные вхождения, следует рассмотреть использование коллекций-множеств, а если нужно запретить изменять коллекцию после создания, стоит взглянуть в сторону иммутабельных классов.
  • далее, какие операции будут часто производиться с коллекцией, и насколько быстро их выполняют разные реализации.

Читать далее

AbstractCalendar.JS. Когда нужно больше, чем Datepicker

В некоторых проектах возникает необходимость разработать календарь с необычным функционалом или дизайном. Чтобы сделать это, можно использовать готовые компоненты (например, jQuery UI Datepicker), либо писать код календаря с нуля. Для упрощения такой задачи можно использовать утилиту AbstractCalendar.JS.

Читать далее

Автоответчик в Gmail, Яндекс.Почта и Mail.ru

Современные почтовые веб-клиенты предоставляют обширные возможности автоматической обработки входящей почты. Одной из таких возможностей электронной почты является автоответчик. В данной статье мы расскажем как сделать автоответчик на все входящие письма и для конкретных адресов в трех самых популярных почтовых веб-клиентах: Google mail (Gmail), Яндекс.почта (Yandex) и Mail.ru.

Gmail

Автоматические ответы на все входящие письма
Автоматические ответы на входящие письма от конкретных адресатов
Полезно знать

Яндекс.Почта

Автоматические ответы на все входящие письма
Автоматические ответы на входящие письма от конкретных адресатов
Полезно знать

Mail.ru

Автоматические ответы на все входящие письма
Автоматические ответы на входящие письма от конкретных адресатов
Полезно знать

Читать далее

Что такое Elm? Часть 2 — архитектура

elm

Архитектура Elm

В предыдущей части мы познакомились с синтаксисом и основами языка. Теперь посмотрим, как строятся приложения, написанные на Elm.

При создании фронт-энд приложений в Elm, мы используем паттерн, называемый Elm-архитектурой. Этот паттерн предоставляет способ создания изолированных компонентов, которые могут переиспользоваться, комбинироваться и компоноваться бесконечным множеством способов.

Elm предоставляет для этого модуль Html.App. Для более легкого понимания, напишем небольшое приложение.

Читать далее

Ускорение приложений Angular с помощью ручной генерации HTML-кода

angularjs_logo-svg

Другие статьи по AngularJS:

Бывают случаи, когда в приложении, написанном на Angular, встречаются изолированные блоки, в которых отображается большой набор данных, из-за которых приложение сильно тормозит. Например, это могут быть большие таблицы.

Существует не совсем изящный, но действенный (и иногда единственный) способ ускорения отрисовки интерфейса в таких ситуациях. Это переписывание подобных блоков с использованием ручного построения DOM.

Этот способ не всегда одинаково хорошо ускоряет отрисовку. Его эффективность зависит от особенностей шаблона, который отрисовывается с задержками. В этой статье описано, в каких случаях этот способ даёт наилучшие результаты, а также, какие у него есть альтернативы (например, использование шаблонизатора jQote2), и приведено сравнительное время отрисовки вёрстки разными способами на различных примерах.

Читать далее