- PVSM.RU - https://www.pvsm.ru -
В предыдущей статье [1] я рассказал о том, почему считаю неэффективной разработку с применением Content Management System. В этой статье, я расскажу о том, какой подход использую в построении веб-приложений.
В комментариях к предыдущей статье были предложения вместо Content Management System применять Content Management Framework. Это действительно позволяет гораздо гибче проектировать архитектуру веб-приложения, но более затратно по ресурсам.
Я предлагаю альтернативу в виде Data Management System.
Прежде чем продолжить, следует разделить понятия Content Management System, Content Management Framework и Data Management System.
В статье под Content Management System я понимаю систему, которая имеет свою заданную структуру базы данных и набор объектов предметной области.
Под Content Management Framework я понимаю некий набор классов и методов, который помогает автоматизировать работу с данными на уровне программного кода.
Под Data Management System я понимаю автономное веб-приложение, которое предоставляет возможности по управлению данными. При этом
При разработке с использованием системы управления данными идет архитектурное разделение проекта на несколько независимых частей база данных, frontend и backend.
Следует также заметить, что нам нет необходимости для каждого проекта создавать пользовательский интерфейс, а так же реализовать CRUD-логику (create retrieve update delete — Создание чтение обновление удаление), поскольку этот функционал обеспечивается самой системой управления данными.
Ключевым функционалом, на котором основывается работа Data Management System, является скаффолдинг. Скаффолдинг – это технология поддерживаемая некоторыми MVC фреймворками, которая позволяет используя дополнительное описание (например атрибуты классов) схемы данных строить приложение которое поддерживает CRUD -функционал взаимодействия с базой данных. Одним из проектов, который активно применяет эту технологию является Ruby on Rails. Так же к системам, применяющим скаффолдинг следует отнести ASP.NET Dynamic Data (.NET) и Django (Python).
Итак, в общем случае система управления данными базируется на:
Процесс проектирования с применением DMS можно описать следующим образом:
Ниже представлена схема взаимодействия различных компонентов проекта.
В случае применения системы управления данными есть и свои ограничения
При использовании системы управления данными мы получаем следующие преимущества:
В своей практике я использую систему управления данными построенную на основе таких компонент как:
В большинстве случаев, при создании веб приложения мне нет необходимости в кастомизации системы управления данными. Например, мне достаточно поменять путь к библиотеке содержащей набор классов предметной области – и я могу управлять совершено другим приложением.
Таким образом, технология скаффолдинга в связке с расширенными библиотеками элементов управения и гибкой спецификацией описания атрибутов а классов предметной области позволяет строить гораздо более гибкие и мощные веб-приложения, без ограничений накладываемых распространенными Content Management System.
Эти ссылки будут полезны скорее начинающим разработчикам, чем тем кто уже имеет опыт в построении веб-приложений:
Что такое скаффолдинг (англ.) [2]
Django [3]
ASP.NET Dynamic Data [4]
ASP. NET Dynamic Data — пример использования [5]
Автор: Ernado
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/proektirovanie/4647
Ссылки в тексте:
[1] предыдущей статье: http://habrahabr.ru/post/138435/
[2] Что такое скаффолдинг (англ.): http://en.wikipedia.org/wiki/Scaffold_(programming)
[3] Django: http://ru.wikipedia.org/wiki/Django
[4] ASP.NET Dynamic Data: http://msdn.microsoft.com/en-us/library/cc488545.aspx
[5] ASP. NET Dynamic Data — пример использования: http://dou.ua/lenta/articles/asp-net-dynamic-data/
Нажмите здесь для печати.