.NET工程个性化开发方案

来源:互联网 发布:php网站流量统计 编辑:程序博客网 时间:2024/05/16 00:55
    我们的项目使用的是.NET的web应用程序进行开发的,但是,在产品正式发布以后,发现很多客户仍旧有一些零散的需求需要进行个性化开发,有的只是涉及到前台的展现或设计,但是有的需求就涉及到我们产品的后台流程,类似前者的需求,我们可以很容易地进行替换实施,但是针对后者的需求,我们如果通过再次编译主版本的工程dll,然后进行替换的话,这样存在    很大的隐患,那就是如果我们在开发个性化需求的时候,如果不小心影响了原来的流程的话,那么这个后果往往是不可以想象的……

    所以,我们必须寻找另外一个合适的方式来应对客户涉及流程的需求变更,尽量能够保证主版本的dll不进行替换,于是有了下面的一个方案,仅供大家参考:

1.单独创建一个ClassLibrary项目

2.为项目添加引用:System.web、添加cs类文件和自定义命名空间SpecialNamespace

3.创建page继承类:public class SpecialClass : System.Web.UI.Page

4.创建页面初始化函数:protected void Page_Load(object sender, EventArgs e)

5.编译个性化项目工程,并得到special.dll库文件

6.将个性化需要修改或添加的页面的aspx页面的Inherits属性值修改为"SpecialNamespace.SpecialClass"

7.将special.dll和修改的页面文件一起拷贝到主工程相同目录,其中dll文件拷贝到bin目录

8.重新进入主工程即可实现功能的修改,而且是不用替换原工程dll,获取了最大的安全性

9.最后还要说一点,有关页面中含有服务器端控件的问题:需要创建web应用程序工程,并添加一个web窗体,保证此窗体的中同样包含待修改页面的全部服务器端控件,这样才能正常编译,并保证替换后不出现问题

    当然,针对个性化开发,为了保证版本的历史维护,必须指定相关的一些规范,这就因团队不同而不同了,但是有一个统一的规范还是非常必要的。