C# 我如何制作一个程序,用一个代码库支持多个客户的定制需求?

C# 我如何制作一个程序,用一个代码库支持多个客户的定制需求?,c#,javascript,modularity,C#,Javascript,Modularity,正如标题所述,我正在寻找一种方法来组织具有各种客户“设置”的代码,这些设置控制程序逻辑,有时显示逻辑,而不在客户端(javascript)和服务器(C#)中引入一套if/else分支 我必须选择什么机制来制作一系列用于验证、字段可见性、处理规则的模块,以及可以基于用户名或其他客户数据动态加载的模块?我知道IOC,我需要比“可配置模块”更具体的东西。有没有库可以提供一种结构来组织代码并有条件地加载它 那javascript呢?是否有众所周知的机制可以从小文件中动态加载javascript并有条件地

正如标题所述,我正在寻找一种方法来组织具有各种客户“设置”的代码,这些设置控制程序逻辑,有时显示逻辑,而不在客户端(javascript)和服务器(C#)中引入一套if/else分支

我必须选择什么机制来制作一系列用于验证、字段可见性、处理规则的模块,以及可以基于用户名或其他客户数据动态加载的模块?我知道IOC,我需要比“可配置模块”更具体的东西。有没有库可以提供一种结构来组织代码并有条件地加载它

那javascript呢?是否有众所周知的机制可以从小文件中动态加载javascript并有条件地执行

最重要的是,我描述的东西有名字吗?我不希望规则引擎或决策引擎将代码存储为一组值和运算符。我想把代码保存在原始文件中。我还希望尽可能使用强类型和接口

有什么想法吗?

你应该看看这两种方法中的一种(或两种)

  • 微软的
以下是System.Addin命名空间上的MSDN文档:

本讨论讨论了MEF和系统之间的区别。Addin:

扩展系统的布线和配置当然是高度领域特定的

祝你好运

您应该查看以下任一项(或两项)

  • 微软的
以下是System.Addin命名空间上的MSDN文档:

本讨论讨论了MEF和系统之间的区别。Addin:

扩展系统的布线和配置当然是高度领域特定的


祝你好运

如果您希望使用强类型和接口,那么为什么不这样做呢?您可以创建一个接口,为您的单个客户逻辑定义可调用的方法,然后为每个客户逻辑创建实现类。这样,您的系统启动例程中就只有一条条件逻辑,可能是一条switch语句,用于加载正确的实现。

如果您希望使用强类型和接口,那么为什么不这样做呢?您可以创建一个接口,为您的单个客户逻辑定义可调用的方法,然后为每个客户逻辑创建实现类。这样,在系统启动例程中,只有一条条件逻辑(可能是switch语句)可以加载正确的实现。

我不想切换整个系统的哪个实现。我希望能够在整个系统中放置任意扩展点。我也不想管理目录、清单、元数据等。IOC就是为了解决这些问题而发明的。我的意思不是说你需要为整个系统提供不同的实现,仅仅是支持逻辑差异的部分。说到国际奥委会,你完全可以采用工厂设计原则。不要使用接口,而是创建一个抽象基类,该基类具有可重写的默认属性和方法,这些属性和方法由客户实现对象继承。例如,布尔属性可用于控制字段可见性。您提到的可扩展性点只是将基类解析为加载对象的实现,我不想切换整个系统的哪个实现来加载。我希望能够在整个系统中放置任意扩展点。我也不想管理目录、清单、元数据等。IOC就是为了解决这些问题而发明的。我的意思不是说你需要为整个系统提供不同的实现,仅仅是支持逻辑差异的部分。说到国际奥委会,你完全可以采用工厂设计原则。不要使用接口,而是创建一个抽象基类,该基类具有可重写的默认属性和方法,这些属性和方法由客户实现对象继承。例如,布尔属性可用于控制字段可见性。您提到的扩展点只是将基类解析为加载对象的实现的地方。