追寻人生

学习之园地,创意之源泉

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  开始的时候,我们什么也没有,后来技术人员为了便于开发、维护、扩展、管理等,整出了面向对象、设计模式、还有越来越多的各种框架,工具、软件等。这一切都是为了更好的开发并且开发出更好的产品。

  所有这些都不应该成为技术开发的羁绊。程序员应该利用一切可以利用的资源、因素,实现最优开发。(这里的最优开发,可以参考广告词“没有最好,只有更好”理解)

  前段时间,偶所在公司ERP项目里需要一个供货商的下拉列表控件,默认显示常用的供应商,选择更多时可以查看全部,并且可以返回。之前用到过供用商列表,是用一个DropdownList实现的,在aspx.cs里实现DataSource的DataBind,很原始,连SourceID都是默认的DropdownList1。现在要开发这个控件,实现复用。如何开发?(在.Net下,using C#)

  1,写一个ascx,在这个控件里实现供应商列表数据的绑定?2,给这个控件一个数据源DataSource,一个绑定方法Databind,一个事件OnSelect,在选择后触发,再加若干属性如Text、Value、Disable等,这样一来,它不仅可以可以做为供应商下拉列表使用,也可以用于其它类型的列表,看起来很不错。。。

  最终我在现有项目的namespace下,加了一个DropdownList.cs,派生自.Net类库的DropdownList,在DataBind里实现供应商列表数据的绑定,并且自动绑定。这样做,数据与表现放在一起,似乎不合模式,不合规则。但是这样一来,1,使用方便,使用时可以和Label一样直接从Toolbar上拖下来,其它的都不用关心,可以用DropdownList1.SelectedText直接取值。2,对于旧代码,只要用
<xxx:DropdownList Id="DropdownList1" runat="server"></xxx:DropdownList>

替换原有的
<asp:DropdownList Id="DropdownList1" runat="server"></asp:DropdownList>
就可以了,连SourceID都不用改,原代码里用Dropdownlist1.SelectValue,Dropdownlist1.SelectedItem.Text取值的代码也不需要修改,代码前后是兼容的。3,因为是编译过的控件,响应速度也明显优于ascx。4,开发时间大大缩短,实现起来也简单。5,以后如果修改的话,并不影响旧代码,也不影响在行开发。

  当然ascx也有许多优点,比较开发起来像aspx一样,比较容易一些。控件布局和CSS样式也比较容易控制,可以方便的处理复杂的逻辑业务关系等等。所谓的方案和解决方法我都相信,是在一定条件下才是最合适的。换一个公司一个项目可能就不合适了。举这个例子只是为了表达我对如何面对设计模式以及如何使用设计模式的一点看法。

  计算机的诞生还不算长,还不足以让某人说他祖辈三代都是搞计算机的。我们现在,特别在中国,可能就像革命前辈们当年八年抗战的时候,需要快速,敏捷。我们需要的是因地制宜,随机应变。

  语言和工具都是次要的,最重要的是思想方法和思维方式。语言,无论是C#,Java,Perl等,都是相通的。做为程序员,面向对象是必须要学的,建议所有初学者从Flash学起,从ActionScript学起。



sban 2007-05-27 00:16 发表评论

文章来源:http://www.cnblogs.com/sban/archive/2007/05/27/761211.html
posted on 2007-05-29 17:17  追梦华仔  阅读(123)  评论(0编辑  收藏  举报