编程语言
首页 > 编程语言> > c# – 如何使框架和依赖应用程序松散耦合?

c# – 如何使框架和依赖应用程序松散耦合?

作者:互联网

我有一个特定的案例,我想知道处理它的最佳实践方法.

我制作了一个特定的.NET框架(Web应用程序).通过以下方法,此Web应用程序就像许多其他Web应用程序的平台或框架:

我们在单独的解决方案中创建我们的依赖Web应用程序(项目业务类,rdlc报告),然后构建它们.

之后,我们在框架中添加对结果dll的引用.

并创建一组用户控件(每个依赖Web应用程序一个)并将它们放在框架中的自己的文件夹中.

它工作正常,但对特定用户控件的任何修改或对任何一个依赖Web应用程序的任何修改.我们必须再次添加引用并发布整个框架!!

我想要做的是使那些不同的Web应用程序和框架松散耦合.所以我可以只发布一个框架,对用户控件或不同的Web应用程序进行任何修改只发布更新的部分而不是整个框架.

如何重构我的代码,以便我可以这样做?

最重要的是:

永远不要发布整个框架,如果任何依赖应用程序的更改,只需发布​​更新的部分属于此应用程序.

解决方法:

如果您正在使用松散耦合,请开发“框架(Web应用程序)”以充当WCF Web服务.您的客户端应用程序将请求传递给您的Web服务,并以预定义对象的形式接收标准响应.

如果采用此路由,我建议您执行其他步骤:不要直接在客户端代码中使用传递给客户端应用程序的对象.相反,在每个客户端应用程序本地创建这些Web服务对象的版本,并在收到Web服务响应对象后,将它们映射到本地对应项.我倾向于在我的客户端解决方案中使用Facade项目实现这一点. Facade处理对我的各种Web服务的所有调用,并在每次调用时自动映射客户端和服务对象之间的映射.这很方便.

这样做的原因是,您决定修改Web服务所服务的对象的那一天,您只需要更改客户端应用程序中的映射算法……每个客户端解决方案的内部代码保持不变.不要低估这可以为你节省多少工作!

开发WCF Web服务是一个非常大的主题.如果您感兴趣,我推荐的一本书是Programming WCF Services.它为那些来自.NET背景的人提供了很好的WCF开发介绍.

标签:c,web-applications,asp-net,platform,loose-coupling
来源: https://codeday.me/bug/20190613/1231082.html