我正试图解决重用组件的问题。我有一些UI组件( JS、CSS和HTML的混合物),这些组件并不是特定于任何应用程序的。这些UI组件需要能够在多个应用程序中使用。一个是RoR应用程序,另一个是ASP.NET MVC应用程序。我如何维护这些组件(例如,使用版本控制、发行版),并使需要使用它们的不同平台仍然可以访问这些组件?
例如,ApplicationA和ApplicationB使用UIComponentA,这在本质上不是其项目或存储库的一部分,因为UIComponentA存在于自己的存储库中。这些项目如何获得它们所需的依赖关系,同时保持组件可重用并在它们自己的位置托管?有没有人有过类似情况的经验,如果有的话,你是如何处理的?
如果您需要进一步的信息,请不要犹豫,我会更新这个问题。
发布于 2011-12-16 20:04:56
我认为您可以查看任意数量的公开可用的客户端框架,比如jQuery和YUI,看看它们是如何部署的。任何特定的项目都可能依赖于UI的特定版本。它可以将相关版本复制到自己的repo中,也可以将抓取作为部署过程的一部分。另一种选择是CDN方法,其中UI组件实际上是独立托管的,并且只是在客户端。
发布于 2011-12-16 20:11:09
一种选择是将包(JS、CSS、静态图片等)托管在可公开访问的url上,并在URL需要时引用它们。jQuery和所有大型库都是这样做的。
发布于 2011-12-16 21:13:15
从阅读你的问题来看,最重要的问题似乎是“以一种技术不可知论的方式消除依赖关系”。要解决这个问题,您可以创建一个服务外观,它为您提供@Mike提到的可重用元素,还可以通过公开RestFull服务的一些实现来提供数据和功能。这在您的系统中引入了一个额外的层,通过它将顶层(UI)组件与它所依赖的组件的实现隔离开来。
https://softwareengineering.stackexchange.com/questions/125644
复制相似问题