公司产品,部署到实际项目地后,运营一段时间,项目地均会有不同程度上的定制需求,有可能是独立的新功能,有可能是同一功能的不同要求(此时需要对界面进行改造,底层可能发生变化)。如此运行时间长了之后,基于产品本身开发出来的新特性或新功能,想部署在已有项目地上,同时还需要保持项目地已经做了的效果不发生改变。
产品现状,EXTJS+MVC(ASPX视图)+简单工厂,目前确实做不到及时将新特性发布到已有项目地上,同时保留已有定制需求。
针对此种情况,有人提出这样的模式:“将功能独立成一个模块,也就是说功能A,在最后开发完成后得到 功能A.dll ”。最后在发布产品时,需要功能A,则将相关文件和页面放在网站下,做些必要的配置即可。
基于这种前提下,可以预见的是,开发新的功能,则会创建一个控制器,然后它去调用公共层(Common、DB),实现功能后,使用ExtJS编写前端,然后调用该控制器的路由地址。
这样的开发模式,想必有人用过吧,用过的人来说说,怎么样,最后可能会遇到什么问题,或者如果为了解决 “项目地版本不一致且不影响项目地已有功能的前提下,又想将产品的新功能发布到项目地”,大家是怎么做的。
重点是在开发和部署,期待高人作答,或提供相关资料以便学习。先谢过了。
这得实际问题实际分析,你应该先归纳出你们的项目的特点。还是那句话“软件开发中没有银弹”,这就是你作为一名程序员的价值。
MVC里面这么做东西比较少,webform里面有dotnetnuke,你可以参考一下人家的设计
反正公用的api的话,统一交给总部去开发。地方想扩展功能,可以自行扩展功能,但不可修改、移除公用的api。