Thursday, September 18

ASP.NET之不爽
首先是ViewState。我本希望在codebehind的cs程序里直接定义类变量
protected int typeID;
即可以维持状态了,而且我在aspx里也设置了enableViewState="True",但是只有愿望是不行的。
不这样做是不行的。:<
protected int typeID
{
get{return (int)ViewState["typeID"];}
set{ViewState["typeID"] = value;}
}


另外,就是ViewState这个名字也是奇怪的。既然所谓的View State只能在一个Page里有效,为什么不直接使用Page这个名字呢。
Page["typeID"] = 123;
不是更爽一些吗?即使在控件里使用Page这个名字也没什么奇怪的,因为控件最终还是要在Page里使用的。
大概是不好实现吧?对微软来说,好像也不难吧。:S

另一个不爽的地方是web用户控件ascx不能像普通服务器控件一样,在aspx中%@ Register以后,自动在codebehind中自动追加类变量,还要
%@ Reference Control="MyUserControl.ascx" %

Control c1 = LoadControl("MyUserControl.ascx");
((MyUserControl)c1).BackColor = "beige";
Page.Controls.Add(c1);

我的天啊,巨麻烦!!!

Wednesday, September 17

偶然发现的网站:World Hello, Johnson is here
站主还是我的老乡呢。(赫赫,老乡这个词我头一次用)。
里面有许多好文章,整理得非常规整,很有专业精神。值得一读。
不愧是3中毕业的啊。

Tuesday, September 16

在开心就好主持的博客堂申请了一个新的blog空间:重粒子的运行轨迹,以后这两边尽量同步吧。
现在的这个blog是使用BLOGGER的系统,因为它的blog提交集成到了google的toolbar上,内容的文件自动通过ftp传输到我的ftp上,所以用起来比较放心,而且支持unicode,这样可以直接用日文blog。最近还增加了upload file和draft功能。
开心的系统使用了著名的.Text,这是一个asp.net的系统,还在不断完善中,开心对它进行了汉化。
一定要注意仔细设置asp.net的web.config配置文件。今天的在一个DropDownList的databind问题上浪费了2个小时(随后的闲逛,又浪费2个小时‘--),原因就是我在web.config里直接使用了MSpetshop的设置了,这里enableViewState="false"导致所有的页面的状态都无法保持,除非你在需要的网页里明确设置了enableViewState="true"才行,看VS的属性设置窗口的信息是不灵的,那些信息没有根据web.config的设置自动更新。这导致ms的例子都不好使了。我甚至怀疑是不是VS2003的bug。
上一个项目已经结束1个多月了,新的项目一直没有下来。最近的一个月,yan一直在设计他的workflow。workflow的思想是去年他们做open cube的时候学到的。那个系统最终还是成为了他们的噩梦。一周只回家一次,月加班时间达到300个小时,持续半年以上。最后的结果还是放弃。完全是《人月神话》里描写的泥潭。一个近百人组成的team就像一个困兽掉进了沼泽地,经常半夜2,3点钟开会,还一个人不缺,一周也不回家一次的人大有人在。开始还用sourcesafe管理,后来sourcesafe都不管用了,改用原始的笔记本,每一个要更新source的人都要先登记,在早上6点的时候,会看到大家排队,手里拿着软盘,等着更新source的场面。我虽然没有经历这些,但我可以想象得到。可笑的是,那个用来登记的笔记本有一天不翼而飞,哈哈哈哈
yan总结的workflow思想里,全部使用xml来描述各个部分。一个flow就是一个xml,一个文档也是xml,另外角色权限也是用xml管理的。这几部分最终用所谓的“部品“关联起来。没个部品就是表现层的控件,通过它来表现flow等逻辑层的内容。
我也有时间思考了一下workflow系统的设计,确实是充满难题。单单角色权限管理就很有学问。在csdn上看到一篇文章《基于授权和角色的访问控制的设计和实现》。看来角色,权限管理实在是一个复杂的问题。

white说:
企业建模里专门有一块是组织建模(BTW,企业建模中的流程建模就差
不多是工作流了,http://www.justep.com)

SAP的参考模型中,关于组织建模这块大致是将角色分为职位和组织
单元两类,组织单元是一个容器,其中可有职位和子组织单元.从而
构成一棵树,同时还可以表达上下级的管理关系,可谓比较接近企业
的真实情况(比MS的AD要更接近).用户拥有角色,可有多个角色.

我所认可的工作流模型组成包括:
   组织模型
   数据模型
   流程模型

刚好他们都是企业建模的内容.所以,要真的能很好地实现一个系统,
那它就真的称得上是BOS(Business Oeration System)了.

Thursday, September 4

想象力
早上在电车里的广告上看到一篇关于想象力的文章。上面认为诸多的艺术形式,比如电影,舞台剧,小说,绘画,都是人们之间相互交流的工具,通过这些手段传达的不是说教,而是一种共同的想象力。受众之所以喜欢这些艺术形式,是因为他们可以在精神上得到愉悦,这种愉悦就是想象力得以发挥的结果。
如果说程序设计也是一种艺术的话,从想象力的角度来看,一点也不为过。我们在利用有限的工具(程序语言,开发工具),发挥自己的想象力,去创造一个作品。对你的作品的评价好与坏,都在于需要这件产品的人是否能从产品得到某种愉悦。我们有的时候感叹一个软件非常“牛“,是因为它令我们对作者的想象力产生了佩服的感觉,通过它,作者的创作力,想象力传播给了我们。

Tuesday, September 2

ADO.Net真是好东西啊。我只能发出这种由衷的感叹。
2年多前,我在ECC设计模式的基础上成功实践开发出了一个框架结构,提高了项目的开发效率。甚至初学java的两个人在我的框架的基础之上都成功完成了一个商业网站。在当时,我非常兴奋地提出在那个框架的基础之上,做代码的自动生成程序,来解决关系数据同对象模型的相互映射,进而提高项目的开发效率。当时的想法就是通过设计XML的Schema来自动生成关系数据库结构和操纵数据的java程序。
现在看ADO.Net,它的DataSet近乎就是实现了我当时的想法,那种通过XSD来自动生成源代码的方法,确实能极大地提高生成效率。
在dev-club的这个thread里,有我对强类型DS批注的理解。