Как Конфигурация Влияет На Архитектуру Приложения

Тестовое приложение для тестирования сериализаторов было сделано на NFX-библиотека .

Это библиотека Unistack. Честно говоря, мне сложно назвать еще один пример библиотеки Unistack. Возможно, есть что-то подобное в виде ServiceStack. Хотя ServiceStack, в отличие от NFX, размазан по нескольким dll. Но самое главное — ServiceStack — это не Uni, так как его части сделаны немного по-другому, и он не охватывает такое глобальное пространство, как NFX. Но целью этой статьи является обсуждение не концепции Unistack, а одной из особенностей использования NFX. Как использование NFX повлияло на наше тестовое приложение? Давайте посмотрим.

Тестовое приложение представляет собой консольное приложение.

Запускаем его и в конце получаем результаты теста.

Тестов может быть много, и все тесты можно запускать во всех комбинациях.

за один проход это будет глупо.

Что бы я делал без NFX? Скорее всего я бы добавил в командную строку несколько параметров, чтобы запускались только те, которые мне нужны Сейчас тесты.

Немного поработав, я бы добавил параметры конфигурации в файл конфигурации Xml и прочитал их оттуда.

Я бы, скорее всего, использовал простой массив параметров имя-значение в разделе appSettings файла конфигурации.

Можно построить и более сложную структуру конфигурации, но поддержка этого в .

NET не так проста, и я бы на время забыл о самих тестах и занялся разработкой и отладкой этого файла конфигурации.

Нет, я бы не стал делать сложную конструкцию, потому что она сложная, а польза, получаемая с ее помощью, не так уж и велика.

В NFX легко создавать сложные конфигурации.

Это настолько просто, что кардинально меняет дизайн нашего тестового приложения.

Допустим, я ничего не знаю о NFX и пытаюсь понять, как он работает на примере.

наше приложение .

Я открою файл конфигурации объектный график .

Лаконф .

Вот раздел, описывающий сами тесты:

  
   

tests { test { type="Serbench.Specimens.Tests.ObjectGraph, Serbench.Specimens" name="Warmup ObjectGraph" order=000 runs=1 ser-iterations=1 deser-iterations=1 } test { type="Serbench.Specimens.Tests.ObjectGraph, Serbench.Specimens" name="Conferences: 1; Participants: 250; Events: 10" order=000 runs=1 ser-iterations=100 deser-iterations=100 .



Очевидно, что раздел тестов содержит набор разделов тестов, каждый из которых определяет параметры одного теста.

Первый параметр — это тип, который снова явно указывает на тип (класс) в сборке.

В первом тесте это соответственно класс Serbench.Specimens.Tests.ObjectGraph в сборке Serbench.Specimens. Все остальные параметры также понятны без дополнительных пояснений.

Вот раздел, описывающий сериализаторы:

serializers { // Stock serializers: they use only Microsoft .

NET libraries serializer

Теги: #.

NET #Unistack #nfx #C++ #архитектура #разработка.

настройка #программирование #Анализ и проектирование систем #.

NET #Разработка для Windows

Вместе с данным постом часто просматривают: