Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在两个应用程序之间共享类和功能_C#_Architecture_Software Design - Fatal编程技术网

C# 如何在两个应用程序之间共享类和功能

C# 如何在两个应用程序之间共享类和功能,c#,architecture,software-design,C#,Architecture,Software Design,我开发了一个应用程序(例如,为了方便起见,假设它是一个会员卡应用程序), 用户刷卡,应用程序检索他们的详细信息,查找他们的购物记录,计算他们应得的折扣率等。 该应用程序还进行“规则匹配”:根据资历、银行余额等不同规则确定贴现率 现在,我被要求在用户刷卡时创建一个新的模块/应用程序,然后系统根据规则匹配显示一些促销信息(例如,如果您的银行余额>5000美元,则为jewlery commercial,如果您的所列职业为“m.d.”等,则为定制的lisence车牌创建商业) 现在,这两个应用程序只在某

我开发了一个应用程序(例如,为了方便起见,假设它是一个会员卡应用程序),
用户刷卡,应用程序检索他们的详细信息,查找他们的购物记录,计算他们应得的折扣率等。
该应用程序还进行“规则匹配”:根据资历、银行余额等不同规则确定贴现率

现在,我被要求在用户刷卡时创建一个新的模块/应用程序,然后系统根据规则匹配显示一些促销信息(例如,如果您的银行余额>5000美元,则为jewlery commercial,如果您的所列职业为“m.d.”等,则为定制的lisence车牌创建商业)

现在,这两个应用程序只在某种意义上相关:
*它们使用一些相同的域模型(成员实体)
*它们共享一些相同的功能(从卡详细信息中检索会员信息、规则匹配和规则管理)
*商业应用程序需要从主应用程序中检索信息(成员详细信息)
*此外,我希望为我的应用程序开发的“基础设施”操作可用于商业应用程序(如
ControllerBase
的日志记录功能,或管理会话创建和销毁的
httpModule
——每个请求的会话)

我现有的应用程序是一个(相当)简单的MVC/n层应用程序

就如何实现这一点而言,我的最佳想法是将commercials应用程序作为一个完全不同的应用程序,它与主应用程序通信(使用wcf/web服务),以便检索成员的详细信息

我还希望在两个应用程序之间共享一些公共类(如
Member
ControllerBase
) 要实现这一点,最简单的方法是创建一个
Common
dll,其中包含我想共享的任何内容。
但我担心的是,在这种情况下,
Common
dll只会变成一堆零碎的东西,没有任何连贯的关系(
EntityBase
ControllerBase
ViewBase
在同一个dll中??)
欢迎对上述解决方案或总体主题提出任何想法


p、 这其实并不重要,但我使用的技术是c#3.5(很快将成为4.0)、用于持久性的nHibernate、用于客户扫描卡的终端的winforms应用程序以及基于jQuery的管理网站

您担心使用一个公共dll是对的,因为它很可能很快就会变成一团乱麻。我建议使用多个共享DLL(您认为合适的数量或数量),逻辑拆分。您将得到更多的项目和引用,但我不认为这是一个问题。

您担心使用一个公共dll是对的,因为它很可能很快就会变成一团乱麻。我建议使用多个共享DLL(您认为合适的数量或数量),逻辑拆分。你最终会有更多的项目和参考资料,但我不认为这是一个问题