3

我正在寻找有关构建会计应用程序的方向的输入。应用程序需要允许高度定制,有时需要更改整个流程。

当客户有特定的修改请求时,我想要一种无需重新编译整个应用程序即可进行更改的方法。后端将是某种 SQL 数据库。出于成本原因,很可能是 SQL Server Express。前端将是 C#。

我正在考虑一个基于事件的系统,该系统将在进行不同类型的操作(例如条目)时具有事件。然后我会有一个处理事件的插件系统。在最终保存数据之前,我可能需要以特定顺序对数据应用多个进程。它还需要触发其他进程。

我想保持我的基本应用程序相同,它适用于大多数客户,但有一种优雅的方式来加载其他特定客户拥有的自定义流程。

我愿意接受所有建议。即使他们正在考虑解决问题的完全不同的方法。我们目前的内部开发人才是 .NET 和 MS SQL Server。我不知道可能适合这种情况的软件模式。

附加信息:这不是一个完全空白的系统,它将具有适用于大量客户的功能。由于各种原因,要求会根据州甚至可能需要定制的地区和城镇级别而变化。

我希望能够插入额外的预编译模块。当我开始研究可能的选项时,我在想象一个可以通过插件插入代码的空处理程序。例如,在引发事件的总账中创建了一个新条目。处理程序被调用,但处理程序的代码来自一个插件,这可能是我的原始流程,适合 80% 的客户。如果客户想要自定义操作,我可以添加一个插件来完全替换原来的插件,或者让它在原来的运行后通过另一个插件添加额外的后期处理步骤。我猜是一种分层过程。

4

3 回答 3

2

您可以查看Managed Extensibility Framework 它提供了丰富的组合层功能,允许您构建松散耦合的插件应用程序。

更新:听起来您需要不同地理区域的预定义模块,使用责任链设计模式可能会帮助您管理变更原则。抱歉,没有提供代码只是抛出我的想法

于 2012-04-12T20:05:35.540 回答
0

Windows Workflow Foundation (WF)(.NET Framework 的一部分)是满足您要求的潜在候选者。它支持动态组合各种操作、命令和脚本,以便您可以更轻松地为不同的用户/客户定制不同的工作流程。

WF 被 Biztalk 用于大规模系统集成,并由许多其他需要能够轻松修改许多较小任务和操作的编排的应用程序在进程中托管。

您可能想从WF4 上的本教程开始

HTH。

于 2012-04-12T19:12:39.287 回答
0

这不仅仅是插件或您如何在技术上解决该插件问题的方式,使用 MEF(+1 @laptop)或其他东西,您必须尽最大努力在应用程序中定义插件“点”,这已经是最重要的了例如。你将把那个空的“事件”放在哪里来放置你的代码,或者这个事件或插件将有什么参数。

例如,可用的插件将在保存事件之前,但您必须在应用程序中只有一个地方可以保存各种类型的业务文档,因此您可以在那里调用插件,参数将是抽象文档对象。

所以你必须认真思考你的系统架构,对于各种插件点足够抽象,并且完全完成那个架构,不要只做系统的一部分然后开始编码。

我希望你明白我的意思,因为英语不是我的母语。

于 2012-04-12T20:52:48.907 回答