C# 如何使框架和依赖的应用程序松散耦合?
我有一个具体的案例,我想知道如何处理它 我制作了一个特定的.NET框架(web应用程序)。此web应用程序通过以下方法与许多其他web应用程序的平台或框架类似: 我们在单独的解决方案中创建依赖的web应用程序(项目业务类、rdlc报告),然后构建它们 之后,我们在框架中添加对结果dll的引用 并创建一组用户控件(每个独立的web应用程序一个),并将它们放在框架中的一个文件夹中 它工作正常,但对特定用户控件的任何修改或对任何一个相关web应用程序的任何修改都可以。我们必须再次添加引用并发布整个框架 我想做的是使这些不同的web应用程序和框架松散耦合。因此,我可以发布一个且只有一个框架,对用户控件或不同web应用程序的任何修改只发布更新的部分,而不是整个框架 如何重构我的代码以便我可以这样做 最重要的是:C# 如何使框架和依赖的应用程序松散耦合?,c#,asp.net,web-applications,platform,loose-coupling,C#,Asp.net,Web Applications,Platform,Loose Coupling,我有一个具体的案例,我想知道如何处理它 我制作了一个特定的.NET框架(web应用程序)。此web应用程序通过以下方法与许多其他web应用程序的平台或框架类似: 我们在单独的解决方案中创建依赖的web应用程序(项目业务类、rdlc报告),然后构建它们 之后,我们在框架中添加对结果dll的引用 并创建一组用户控件(每个独立的web应用程序一个),并将它们放在框架中的一个文件夹中 它工作正常,但对特定用户控件的任何修改或对任何一个相关web应用程序的任何修改都可以。我们必须再次添加引用并发布整个框架
如果任何依赖应用程序中的更改,请不要发布整个框架,只发布更新的部分属于此应用程序 如果您所追求的是松耦合,那么开发“框架(web应用程序)”以作为WCF web服务。客户端应用程序将请求传递给web服务,并以预定义对象的形式接收标准响应 如果采用这种方法,我建议您实现一个附加步骤:不要在客户端代码中直接使用传递给客户端应用程序的对象。相反,在每个客户端应用程序本地创建这些web服务对象的版本,并在收到web服务响应对象后,将它们映射到本地对应对象。我倾向于在我的客户机解决方案中使用facade项目来实现这一点。facade处理对各种web服务的所有调用,并在每次调用中自动进行客户端和服务对象之间的映射。非常方便 这样做的原因是,当您决定修改web服务所服务的对象时,您只需更改客户端应用程序中的映射算法。。。每个客户端解决方案的内部代码保持不变。不要低估这可以为您节省多少工作
开发WCF web服务是一个相当大的课题。如果你感兴趣,我推荐一本书。它为那些有.NET背景的人提供了一个非常好的WCF开发介绍。我完全同意levib的观点,但我也有一些建议:
看看他们!:) 几十年的经验告诉我们:避免框架,你就不会有问题要解决 框架像癌症一样进化。通往地狱的道路是由善意铺就的,而善意的一部分体现在一个框架的巨大肿瘤中,所有这些都是以潜在重用的名义出现的,而这种重用从未真正发生过 当涉及到OO和设计时,获得一些经验和知识,你会找到解决技术问题的无休止的解决方案,比如外观、纪念品以及你所拥有的东西,但它们不是解决你真正问题的解决方案
另一件事,如果您使用的是MS技术,那么除了.NET提供的功能之外,不要再费心了。坚持MS gods提供的服务,因为一旦你偏离主题并致力于某个内部框架,你的日子就屈指可数了。u可以使用facade模式来解决这个问题