Архитектура для легкого обновления приложения - PullRequest
1 голос
/ 03 октября 2008

У меня есть система, которая применяет вычисления к набору чисел (особенности не имеют значения). Существует ряд наборов вычислений, которые могут применяться пользователями системы, и часто добавляются новые наборы. В настоящее время, когда в систему необходимо добавить новый набор вычислений, они добавляются в базу кода и выпускается новая версия системы. Я хотел бы иметь возможность добавлять новые наборы вычислений в систему без необходимости выпуска новой версии, а также чтобы эти новые вычисления автоматически становились видимыми для пользователей системы. В настоящее время для каждого набора вычислений создается новая функция, а запись, содержащая соответствующее имя функции, добавляется в системную таблицу. Эти записи видны системным пользователям (имена функций, конечно, псевдонимы!), Которые затем выбирают их из списка. Система использует функцию Eval () для выполнения соответствующих вычислений.

Это приложение VB6 / Access, которое я унаследовал и в настоящее время переписываю в VB.NET и SQL Server.

У кого-нибудь есть советы, как лучше это сделать?

Ответы [ 2 ]

3 голосов
/ 03 октября 2008

Поскольку вы переделываете это в .Net, просто поместите вычисления в плагины. Используйте отражение, чтобы загрузить и изучить эти сборки во время выполнения и предоставить пользователю функции.

У Divil есть хорошая (но довольно старая) статья по написанию приложений на основе плагинов. Это поможет вам: http://divil.co.uk/net/articles/plugins/plugins.asp (+ это в VB.Net)

Если вы делаете это таким образом, все, что вам нужно сделать, это вставить DLL в правильный каталог, и он просто работает.

0 голосов
/ 03 октября 2008

Если вы используете стандартный набор математических функций, вы можете использовать команду use, позволяющую пользователю писать свои собственные математические функции в текстовом поле.

Затем используйте синтаксический анализатор грамматики, такой как: TinyPG на CodeProject

После этого вы можете разбить выражение на: Обратная польская запись
Это может быть легко сохранено и вызвано из базы данных в поле varchar.

После настройки вам не нужно будет повторно публиковать приложение, если вам не нужно добавлять новые математические функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...