RSS: Новости



Инновации

Платформа , Комментарии (0)

В рамках платформы NReco.Сайт реализовано несколько уникальных инновационных решений:
  • механизм слияния артефактов в проектном репозитории (concept merging) позволяет существенно снизить стоимость разработки и поддержки семейства схожих продуктов (product family)
  • гибкая компонентная инфраструктура на основе механизма композиций и паттерна "инверсия управления" позволяет эффективно использовать компонентно-ориентированную разработку для проектов любого уровня сложности. Это позволяет избежать "болезни роста" проекта (когда сложность внесения изменений в проект линейно растет в процессе разработки).
  • легковесная инфраструктура для работы с предметно-зависимыми XML-моделями, которая позволяет воспользоваться всеми преимуществами модель-ориентированной разработки уже сегодня
Детальное описание теоретических аспектов этих решений опубликованы в различных научных журналах (запросить детальную информацию).

Механизм слияния артефактов

Суть этого механизма базируется на предположении, что большинство программных проектов являются родственными, т.е. имеют общее подмножество компонент и подсистем. Возможность использования общих компонент подразумевает также единое концептуальное поле разработки (наличие общего "знаменателя" - технологий, языков и т.д.) этих проектов, например, для ASP.NET приложений это действительно так (все типовые ASP.NET-приложения используют общие механизмы шаблонов, доступ к данным ADO.NET, стандартную обработку web-форм, и т.д.). Это означает, что в рамках таких проектов можно условно построить дерево обобщения:

Если провести сравнительный анализ "общее-частное" по отношению ко всем артефактам проектов (ресурсам, компонентам, шаблонам и т.д.), такое дерево может иметь прямое соответствие с соответствующими каталогами в репозитории проектов. Все общие части будут находиться в одном месте; их изменение (или исправление ошибок) будет автоматически доступно во всех "наследниках". Реализация такого подхода к организации проектного репозитория требует особого механизма сборки (build) проектов и поддержку правил интеграции (слияния).
Платформа NReco.Сайт содержит реализацию такого механизма слияния, который позволяет работать с объемными деревьями обобщений без ущерба для процесса разработки. Эта особенность, в комплексе с компонентной архитектурой платформы, позволяет организовывать продуктовые линии (product lines) с минимальными издержками.

Компонентная инфраструктура на основе IoC

Детально паттерна "Инверсия управления" в контексте разработки современных корпоративных приложений описан в статье Мартина Фаулера "Inversion of Control Containers and the Dependency Injection pattern". Это техника программирования, которая позволяет уменьшить связность между объектами в ОО-программе, что позволяет эффективно реализовать на практике основное свойство компонентов — возможность повторного использования и замещаемость.
Суть паттерна инверсия управления заключается в абстрагировании создания и инициализации компонентов через делегирование этих действий особому компоненту (IoC-контейнеру). Создание компонентов и определение зависимостей в виде конкретных экземпляров объектов выполняет IoC-контейнер. Вся необходимая для функционирования контейнера информация обычно хранится в виде XML-файлов (Spring.NET, Winter.NET).
NReco.Сайт содержит полноценную реализацию компонентной инфраструктуры на основе IoC-контейнера Winter.NET, которая специально адаптирована для эффективного использования в веб-окружении.

Инфраструктура трансформации XML-моделей

Внедрение процесса разработки, основанной на использовании моделей, является новейшим трендом последних лет. В контексте разработки прикладных приложений особый практический эффект связан с определением и использованием предметно-зависимых моделей. Суть технологии состоит в том, что описание артефактов системы происходит в терминах соответствующей предметной области, что позволяет на порядк сократить время на описание и изменение свойств артефакта. Особой частью технологии есть наличие автоматической трансформаций модели артефакта к ее программной реализации.
В своих последних разработках Microsoft также демонстрирует приверженность использованию DSM-технологии (например, использование XAML для описания интерфейса пользователя); тем не менее, унифицированная инфраструктура для модель-ориентированной разработки, которую разработчики могли бы использовать для определения собственных метамоделей, так и не была предложена.
NReco.Сайт активно использует легковесную DSM-технологию NReco для описания интерфейсов пользователя, определения домена данных, а также описания композиций сервисов.

+ Комментарий