STRIGANOV SERGEY: Software development.

Разработка программного обеспечения на: C++, T-SQL, VBS, JavaScript, PHP

TPluginObject (C++Builder, SQL)

Продолжаю развивать тему борьбы с проектами-монстрами
с количеством форм > 100, строк исходного кода > 500 000 
(см. мой предыдущий пост: TDebugInterceptor)
На этот раз речь пойдет о том, как добавлять новые формы, менять поведение программы не внося изменений в ее исходный код. 

Мой класс TPluginObject позволяет добавлять/заменять пункты главного меню приложения для вызова плагинов и/или привязать выполнение плагинов к некоторым событиям.
В качестве плагина может быть зарегистрировано все, что угодно : *.bat, *.exe, *.vbs, *.hta, *.dll.
При инициализации класса плагинов, сначала выполняется обращение к таблицам  APP_PLUGINS и APP_MENU на SQL сервере - считываем описатели плагинов и пунктов меню (и/или событий), к которым они привязаны и для каких пользователей они назначены.
При этом предполагается, что работа приложения выполяется за счет вызова хранимых процедур на SQL сервере, и вся неоходимая для работы плагина информация (состояние сессии и текущие состояния обьектов пользователя) - хранится так же на сервере в таблице APP_SESSION, для обращения к этой таблице следует использовать APP_SESSION_SET (stored procedure) и APP_SESSION_GET (table-valued function)

 

Attachments:
FileDescriptionFile sizeLast modified
Download this file (PluginSample.rar)PluginSample.rar 623 kB2011-05-06 15:11

Add comment


Statistics

Visitors
1
Articles
25
Web Links
8
Articles View Hits
112170