C# 编程模块化软件

C# 编程模块化软件,c#,C#,我站在一个小问题面前;我想创建一个模块化软件 让我们把它变得更一般,而不是针对我的情况。我要创建的是一个加载DLL的软件,这些DLL为软件添加了功能 可以将DLL想象为xvid、divx或任何附加的编解码器,这是您最喜欢的视频播放器的功能。我想要一个更加定制的模块化程序,在我的例子中,我正在创建一个软件来处理客户、发票和产品,不同的用户可能有不同的需求,因此我需要以某种方式处理这个问题 然而,重新编译软件并具体地将新文件发送给每个不同的用户是“愚蠢的”,我宁愿创建一个模块化软件(实际上不知道这是

我站在一个小问题面前;我想创建一个模块化软件

让我们把它变得更一般,而不是针对我的情况。我要创建的是一个加载DLL的软件,这些DLL为软件添加了功能

可以将DLL想象为xvid、divx或任何附加的编解码器,这是您最喜欢的视频播放器的功能。我想要一个更加定制的模块化程序,在我的例子中,我正在创建一个软件来处理客户、发票和产品,不同的用户可能有不同的需求,因此我需要以某种方式处理这个问题

然而,重新编译软件并具体地将新文件发送给每个不同的用户是“愚蠢的”,我宁愿创建一个模块化软件(实际上不知道这是否是正确的术语)

所以我想的是,我开始创建一个模式,我的DLL应该遵循这个模式

然后我在我的软件中创建一个模块处理程序,该处理程序加载实际的DLL并调用其中的方法(这里就是模式出现的地方!)

我想知道的是;我走对了吗

你们能给我一些关于这件事的建议或例子吗


<>这都是C++语言,但是当然,java和Python或C++也会有区别。

< P>为你的类创建一个通用的接口IMIO接口,它应该包括所有你的模态之间的所有的共同点。您应该研究我相信您可以从中获得它。

为您的类创建一个通用接口IMyInterface,该接口应包括所有modular之间的所有通用接口。你应该调查一下,我相信你可以从那里得到。下面是一个列表,微软的是。此外,您还可以查看,以了解它们是如何实现其提供程序体系结构的,例如,在中,您可以插入自己的缓存提供程序。

以下是一个示例。下面是一个列表,微软的是。此外,您还可以查看以了解它们是如何实现其提供程序体系结构的,例如在中,您可以插入自己的缓存提供程序。

您必须有一个目的。您要么需要模块符合某种接口,要么需要应用程序能够处理的东西(比如通过反射找到的具有已知属性的方法)。然后,该接口执行已知的功能,如发票创建、发票打印等

或者,您的应用程序必须符合某些接口,并使用模块将其自身注入到您的应用程序中


插件可以很容易地进行分割(媒体编解码器)。钩子适用于定义良好的事件模型(如web服务器)。使用哪一种取决于您希望客户、发票等模块化的工作方式。

您必须有一个目的。您要么需要模块符合某种接口,要么需要应用程序能够处理的东西(比如通过反射找到的具有已知属性的方法)。然后,该接口执行已知的功能,如发票创建、发票打印等

或者,您的应用程序必须符合某些接口,并使用模块将其自身注入到您的应用程序中


插件可以很容易地进行分割(媒体编解码器)。钩子适用于定义良好的事件模型(如web服务器)。使用哪一种取决于您希望客户、发票等模块化的工作方式。

+1表示MEF。我已经在大学的一个学生项目中使用了它,它使整个模块/插件的工作变得非常简单。我不想使用任何预先构建的东西,我想为自己创建一个小而简单的系统。但他们的架构可能很有趣。它仍然是整洁的,看看这个问题在C++,Python,java或其他任何…1 + MEF中有什么不同。我已经在大学的一个学生项目中使用了它,它使整个模块/插件的工作变得非常简单。我不想使用任何预先构建的东西,我想为自己创建一个小而简单的系统。但他们的架构可能很有趣。在C++、Python、Java或其他任何一个问题上,这个问题仍然是很清楚的。如果它有C++和爪哇、C、π和Python之间的代码示例和比较,这将是最好的答案。如果它有C++和爪哇、Cyjava和Python之间的代码示例和比较,这将是最好的答案。