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.

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

Читать далее

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

elm

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

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

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

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

Читать далее

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

angularjs_logo-svg

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

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

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

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

Читать далее

Что такое Elm? Часть 1 — основы

Elm — это функциональный язык, компилируемый в JavaScript. Данная статья является кратким введением в Elm, она поможет быстро вникнуть в суть и начать писать код на Elm. Ключевыми фичами языка являются:

  • Отсутствие ошибок в рантайме. В отличие от JavaScript, код, написанный на Elm, не выдает рантайм ошибок. Elm использует выведение типов для обнаружения проблем во время компиляции и выдает дружелюбные подсказки. Таким образом, ошибки никогда не доходят до конечного пользователя. В NoRedInk написано 36 тысяч строк на Elm, и за год промышленной эксплуатации код ни разу не упал в рантайме.
  • Высокая производительность. Elm использует собственную реализацию виртуальной DOM, ориентированную на простоту и скорость. Все значения в Elm иммутабельны, и бенчмарки показывают, что это выгодно сказывается на генерации действительно быстрого JavaScript кода:

Читать далее

Заметки по ускорению Angular-приложений

angularjs_logo-svg

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

AngularJS — один из популярных JS-фреймворков. В его основе — шаблонизация и 2-way data binding. В Angular-приложениях поддерживается модульность, из коробки работает клиентский роутинг.

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

Существует множество способов оптимизации приложений Angular. Здесь я попробую перечислить самые популярные их этих способов и сравнить их.

Читать далее

Как быстро построить круговую диаграмму на CSS и JavaScript

Для front-end разработчика существует огромное количество способов, которыми можно построить круговую диаграмму —  разнообразные библиотеки, плагины, потрясающие возможности SVG графики и т.д. Однако стоит, пожалуй, рассмотреть и самый простой способ создания «пирожкового» чарта, который может быть полезен, когда задача поставлена максимально просто и нет необходимости или возможности использовать дополнительные инструменты. Далее речь пойдёт о примере такой реализации.

Читать далее