Образовался у меня следующий текст, надеюсь будет интересен и даже полезен.
Ядро системы Cerebrum.Runtime.dll не делает никаких предположений о возможной структуре БД и ее семантике. Это голое API хранилица сетевой БД. Надстройка над этим API - Cerebrum.Integrator.dll разворачивает собственные структуры в БД и держит в них собственную базу метаинформации. Реализацию Cerebrum.Integrator можно рассматривать как пример исспользования ядра и построение над ним собственной СУБД. В качестве примера работы с ядром СУБД в обход уровня Cerebrum.Integrator можно посмотреть проект векторного графического редактора ObjectiveDraw исходные тексты которого доступны по адресу
http://www.codeplex.com/ObjectiveDrawObjectiveDraw - это прототип полноценного приложения. В этот проект включено несколько частей, заслуживающих отдельного упоминания. Библиотека элементов управления, основанная на Managed DirectX.Direct3D обеспечивает отображение графических сцен. Object to object mapping - в чем-то аналог ORM но предназначенный для работы с СУБД Cerebrum. Он позволяет пометить аттрибутами свойства объекта уровня приложения, и в аттрибутах указать на какое свойство персистент объекта уровня БД отображать данное свойство объекта уровня приложения.
Векторный редактор задумывался как средство, позовляющее пользователям быстро набросать какой нибудь рисунок сверху сложного графического материала, подготовленного на основе данных из БД. Например нарисовать или доуточнить диаграмму, чарт,... график. Его можно использовать или по этому, прямому назначению, или по любому другому, где потребуется векторная графика. Еще можно как прототип собственного приложения, требующего в том числе возможности рисования и отображения векторной графики. Понятное дело, что чем сложнее твое приложение тем меньше подходящих заготовок ты найдешь в опубликованных исходниках и тем больше придется разработать самому. Тогда тебе может пригодится библиотека, она разрабатывалась максимально универсальной.
Если мы говорим о библиотеке элементов управления, основанной на Managed DirectX.Direct3D то она была построена по идеологии взятой из WinForms. Все элементы управления располагаются в коллекциях других родительских элементов управления. Интерфейсы элементов управления и их события сделаны максимально близко по именованию и функциональности к WinForms. Однако в ней еще нет многих привычных элементов управления. Но она позволяет развернуть свою модель классов в пределах Direct3D.Device который можно подключить к клиентской области любого System.Windows.Forms.Control. Именно объект типа System.Windows.Forms.Control передается в конструктор Microsoft.DirectX.Direct3D.Device. Что будет если подключить ее к элементу со сложным поведением типа текстбокса или дропдауна я не знаю, не проверял )) Она полностью работоспособна в пределах формы или UserControl. Это позволяет с минимальными усилиями развернуть объектную модель, аналогичную объекной модели Windows.Forms в любой прямоугольной области окна твоего приложения, но отображаемую средствами Direct3D. Затем в пределах этой прямоугольной области, например всего окна приложения, или только одного элемента управления UserControl пользоваться такими привычными элементами управления как Button, Label, Panel с привычной моделью событий, или организовать отображение графики напрямую средствами DirectX.Direct3D. Это все в месте с одной стороны позволяет сохранить привычные методы построения интерфейса пользователя знакомые по WinForms и с другой стороны восспользоваться графическим акселератором видеоадаптера. Эта библиотека может быть полезна при построении приложений требующих эффективное отображение графики при сохранении возможности работы с оригинальным Windows.Forms. Это могут быть CAD, CAM приложения, приложения для бизнеса, требующие отображения сложных графических сцен, или даже игрушки.
В некотором смысле эта бибилиотека - конкурент WPF )))) Сделана она была еще в 2004м году. Но из за различных вопросов не технического характера опубликовал ее только сейчас.
ВНИМАНИЕ: С Managed DirectX надо быть относительно осторожным в том смысле, что его установка вещь не тривиальная, особенно на серверных платформах, на XP все проходит без запинки. Требуется видеокарта с поддержкой 3D акселератора совместимого с DirectX не ниже 9 и правильно установленные ее драйвера. Т.е. чем круче видеокарта тем лучше. Если что то идет не так то DirectX переходит в режим software emulation и его скорость работы а так же скорость работы библиотеки падает очень заметно. Но при желании трудности с установкой Managed DirectX можно побороть. Дело не в моей реализации а в Managed DirectX самом в себе. Часто его корректная установка требует от пользователей нетривиальной интуиции )) Для готового коробочного приложения будет нужен специальный инсталлятор.
ObjectiveDraw можно рассматривать как наиболее продвинутой сложности пример, демонстрирующий возможности СУБЗ Cerebrum как хранилища документов для CAD/CAM систем. Его скриншоты и скриншоты другого аналогичного проекта можно увидеть здесь
http://www.shdsoftware.com/go/00000000002icitg9rsitlt4v7.html , к слову веб рессурс по этой ссылке так же исспользует СУБЗ Cerebrum в качестве БД, наиболее интересная часть исходников веб приложения (реализация этой идеи
http://www.shdsoftware.com/go/00000000002isiikmenu1nnv14.html) доступна в папке Enterprise в SDK.
В качестве примера исспользования СУБЗ Cerebrum в приложении по тематике Искуственного Интеллекта очень интересна работа моего товарища и партнера по разработке обсуждаемой СУБЗ/БД
http://www.codeplex.com/Morphologyhttp://contest2005.gotdotnet.ru/Request/Tools/UtilitiesLib/523896.aspxhttp://contest2005.gotdotnet.ru/Request/Apps/Other/525202.aspx