Несмотря на название данный постинг будет не о путешествиях, а о программировании, извиняюсь :)
Acropolis - это фреймворк от Майкрософт для разработки клиентских приложений на платформе .NET c использованием WPF. Два дня назад стала доступна версия CTP1, о которой я немного и расскажу.
Для установки и работы понадобится Microsoft Visual Studio "Orcas" Beta1, которую тоже можно свободно загрузить с сайта Майкрософт.
Задачи, которые могут быть легко решены с помощью Акрополиса таковы:
- Модульная разработка приложения.
- Работа с темами пользовательского интерфейса
- Четкое разделение бизнес-логики приложения и этого самого пользовательского интерфейса.
- Легкость и прозрачность взаимодействия различных частей приложения.
- Простота создания модулей приложения.
Как видите, этот список очень пересекается с тем, что мы имеем в случае Composite UI Application Block, однако сразу скажу, что Acropolis не использует ни CAB, ни Enterprise Library вообще.
Теперь немного о том, как это работает сейчас.
Основными "строительными блоками" приложения в Acropolis являются Services и Parts.
Services - сервисы - это то же самое, что и сервисы в CAB - спрятанные за интерфейсами сущности, к которым можно обращаться из приложения для доступа к какой-либо функциональности.
Part - это некоторая логически обособленная часть приложения, реализующая некоторую бизнес-логику. Part - это модуль, UseCase. Например, модуль редактирования документа. Каждый Part может иметь несколько Views - представлений, реализующих пользовательский интерфейс.
Добавить Part в проект можно, выбрав нужный тип элемента из стандартного списка "Add -> New Item..", при этом можно одним кликом добавить связку Part и View.
Что интересно, Part, так же как и View, описывается декларативно с помощью XAML и может "настраиваться" прямо в design-time. Вот как это выглядит:
Подчеркну, это не кусок пользовательского интерфейса, это настройка модуля бизнес-логики. Здесь с помощью простого перестакивания мышкой (или с помощью написания XAML, как удобно) можно указать Сервисы, от которых зависит и с которыми должна работать данная часть приложения (в моем случае я задекларировал зависимость от сервиса SuperService), задать ConnectionPoints - попросту говоря, набор свойств и команд, которые будут доступны из представления (View) (в моем случае это свойство DocumentText и команда DoSomethingCommand). Здесь же задаются и другие параметры, которые видны на скриншоте.
Представление (View) же представляет собой "обычный" XAML-файл, внутри которого можно располагать различные элементы управления, с которыми будет взаимодействовать пользователь.
Разобраться и работать с Acropolis достаточно легко, фреймворк снабжен документацией, в которой на примерах показано, как можно реализовывать ту или иную функциональность.
Задумка мне очень понравилась, будем надеяться, что следующие CTP, беты и релизы не заставят себя долго ждать.
Скачать и посмотреть самому можно здесь. Там же есть простенькое видео, демонстрирующее некоторые возможности фреймворка.