我有一个特殊的案例,我想知道best practice处理它的方法。
我创建了一个特定的.NET框架(web应用程序)。该web应用程序通过以下方法对许多其他web应用程序起着类似于平台或框架的作用:
我们在一个单独的解决方案中创建我们的依赖web应用程序(项目业务的类,rdlc报告),然后构建它们。
之后,我们在框架中添加对结果dll的引用。
并创建一组用户控件(每个依赖的web应用程序一个),并将它们放在它自己的框架中的一个文件夹中。
它工作良好,但对特定用户控件的任何修改,或对任何依赖的web应用程序的任何修改。我们必须再次添加引用并发布整个框架!!
我想做的是让这些不同的web应用程序和框架松耦合。因此,我可以发布框架一个,也是唯一一个,以及对用户控件的任何修改,或者不同的web应用程序只是发布更新的部分,而不是整个框架。
如何重构我的代码以便我可以这样做?
最重要的是:
不要发布整个框架,如果任何依赖的应用程序中的更改,只需发布更新后的部分属于此应用程序。
发布于 2012-11-22 08:42:46
如果您所追求的是松散耦合,则开发您的“框架( web应用程序)”以作为WCF web服务。客户端应用程序将向web服务传递请求,并以预定义对象的形式接收标准响应。
如果采用此路线,我建议您实现另一个步骤:不要使用直接在客户端代码中传递给客户端应用程序的对象。相反,创建每个客户端应用程序本地的这些web服务对象的版本,并在接收到您的web服务响应对象时,将它们映射到它们的本地对应方。我倾向于用客户端解决方案中的facade项目来实现这一点。facade处理对我的各种web服务的所有调用,并通过每次调用自动在客户端和服务对象之间进行映射。很方便。
其原因是,当您决定修改web服务所服务的对象时,您只需更改客户端应用程序中的映射算法.每个客户端解决方案的内部代码保持不变。不要低估这能拯救你多少工作!
开发WCF web服务是一个相当大的课题。如果你感兴趣,我推荐的书是WCF服务的编程。它为那些来自.NET背景的人提供了一个很好的WCF开发介绍。
发布于 2012-11-22 09:09:26
我完全同意娶寡嫂制,但我也有一些建议:
检查他们!:)
发布于 2012-11-26 21:36:45
几十年的经验表明:避免使用框架,您就不会有任何问题需要解决。
框架就像癌症一样进化。通往地狱的道路是用善意铺就的,其中很好的一部分体现在一个框架的巨大肿瘤中,所有这些都是以潜在的再利用的名义出现的,而这种情况从未真正发生过。
当涉及到面向对象和设计时,获得一些经验和知识,您就会发现对您的技术问题的无休止的解决方案,例如外观和纪念品,以及您拥有的东西,但它们并不是真正问题的解决方案。
另一件事是,如果您使用的是MS技术,那么除了.NET提供的功能之外,不要再麻烦了。坚持MS神所提供的,因为一旦你离题并致力于某些内部框架,你的日子就屈指可数了。
https://stackoverflow.com/questions/13508559
复制相似问题