cnblogs.com

August 2007 - Posts

感叹:当日的老牌著名微软技术站点asptoday.com全部内容现在免费了,变了microsoft.apress.com
    今天才发现,当日的老牌著名微软技术站点asptoday.com全部内容现在免费了,变了microsoft.apress.com,当初www.asptoday.com
是鼎鼎大名的技术站点,后来大家熟悉的wrox红宝书,就是那里出的,后来换了apress,现在终于全部内容免费了,
变成了microsoft.apress.com,大家可以去看看,还是不少好资料的,但感觉几年前已经比不上其他技术站点了,
但有的文章依然很不错的,属于精品。当初玩ASP开始就认识asptoday.com了,转眼居然这么多年过去了,又成了回忆,感叹哦

jackyrong的世界 2007-08-31 23:13 发表评论
令人耳目一新的ORM 的另一种实现NBusiness 和E#
    只有注册用户登录后才能阅读该文。阅读全文

风云 2007-08-31 17:26 发表评论
学习委托(3)-----解析委托的实现机制续篇
     摘要: 来园子看看自己的博客,至今方体会到白驹过隙的含义,瞅着晾在这里的那几篇可怜的蝇头小文,却已然成为时间的见证了。想想以前立下的壮志雄心,要做到学习不止,笔端也要勤耕耘,可现今自己博客的境况表现,哈哈!自己确实该怀揣点羞耻之心了,尽管可以找一大堆搪塞的理由。所以今天来涂鸦一篇小文,以慰吾心! 本文乃是前篇《学习委托(3)-----解析委托的实现机制》的延伸或扩充吧,前篇未曾详谈到的关于多播委托的内容...  阅读全文

李玉锋 2007-08-31 09:42 发表评论
参加金蝶OperaMasks-WebFramework成都推广活动后的感想

接到金蝶的邀请邮件参加OperaMasks的推广会,虽然这玩意儿是JAVA平台下的Framework,不过他山之石可以攻玉,看完整个演示过程,不禁赞叹金蝶中间件的野心。
整个OperaMasks所标榜的大约两个方面,一个是集成化开发环境,囊扩配置,管理,设计与开发的全过程开发环境(Apusic Studio)和全方位的原生Ajax支持。其中开发环境是基于Eclipse的,与MyEclipse相比在可视化编辑的程度和友好性方面都是有质的区别,而且最主要的是免费,支持绝大部分应用服务器容器的管理操作。并且将繁杂的配置工作降低到相当简化的程度,虽然和VS系列相比还有差距,不过对于在Java下工作的同学特别是在全开源环境下工作的同学来说感觉就像是鸟枪换炮一般。
另一个最主要的部分就是对Ajax的支持了,不得不说在我所看过的框架中,对Ajax支持的最好的就是OperaMasks,0成本的Ajax在一个看似简单的过程中表现得淋漓尽致,金蝶的工程师在现场将一个Sun的Car Store 的Demo程序部署在了OperaMasks的环境里,没有做更多的改动,直接就将所有的Button的事件都变成Ajax的客户端异步调用而不是Submit动作,而且直接就支持了皮肤和换肤的能力。框架拉提供了java下所欠缺的很多种控件,金蝶称之为Rich Component,感觉有点类似于Ajax.NET里的Toolkit,不过就开发的简便性和透明度来说相对于UpdatePannel,OperaMasks的支持实在是非常的简便,OperalMasks默认提供了很多控件,有类似GridView的,DataList,Repeater,Chat等.NET下很经典的控件都能在其中找到身影,而且使用上来说,也都是拖拖拉拉,改改属性就能使用的,而且这些控件都是默认的具备Ajax的能力的。
总的感觉来说就像是VS2005+Ajax.NET的java版本,而且对于Ajax结合的更加紧密,并且是开源的,免费的,而且最重要的是不是.NET而是在Java下出现这类的产品。真的是感觉狼来了,很多时候.NET对于JAVA来说所标榜的就是开发的便捷和快速,不过在Java平台下出来如此犀利的免费开源的工具,作为一个使用了.NET5年多的人来说,感觉真是复杂啊。
现在手头有推广会上发的OperaMasks的碟子,准备在有空的时候试用一下,估计下个月底在来给大家汇报情况。

PS,邀请函上说会后要送一个Ipod,结果拿到手是个特制版的128M的shuffle苹果的标记还被抹掉了,换成了金蝶的标记,郁闷啊



亚历山大同志 2007-08-31 00:31 发表评论
ProMesh.NET: 开源的.net MVC框架
如果你已经很习惯于微软提供的webform框架,熟练的拖放设置各个控件,现在不如尝试下这个开源的MVC框架,站在另外的角度审视我们每天使用MS给我们提供的标准框架,会得到不少的收获。

ProMesh.NET为CodePlex上的一个项目(作者Philippe Leybaert),用于创建.NET 2.0 Web 应用程序,MVC框架随着Ruby on Rails以及Castle Project 和 MonoRails的流行,最近获得了大家的欢迎.
该框架包含如下特性:

1.轻量级(<100k)
2.基于控制器易于实现MVC模式
3灵活的基于模板的绘制引擎(使用纯html文件)
4提供非常强大的集成测试框架以在你的网页上运行单元测试
5很容易地把参数和其他映射到键入的方法参数和类成员上
6灵活和易于使用的表单生成功能和Postback处理
7集成的日志和配置管理
8和CoolStorage.NET ORM函数库可选的集成
9针对性能特别优化

整个框架的代码并不多,且结构非常清晰。不过从代码上看,我并不认为性能相对标准的WebForm有多大的提高 大量的采用了反射以增加的框架灵活性,事实上也在人在官方的论坛上质疑这一点,好在Web大部分的瓶颈在DB操作和网络上,所以并不会成为重点。
作者Philippe Leybaert声称未来开发计划将放在:动态加载插件和控件、集成的Ajax框架(类似AjaxPro)和内置的Wiki引擎(这个对我来说很cool) ,而不希望框架成为瑞士军刀,如果感兴趣不妨到这里下载下来

参考:InfoQ 译者:朱永光

笔端



笔端 2007-08-30 23:11 发表评论
国内项目开发过程分析总结

我最近想写一篇关于国内项目开发过程分析的总结,目前列出了这些项目的一些阶段,希望得到大家的支持,多提意见。我会近期完善本文的。

希望dudu让我放首页收集下各位朋友的意见 谢谢!!!



一 、方案阶段
     在方案阶段首先从两个阶段分析项目的风险:1、公司是否对本项目所处的行业很熟悉或者对本项目的业务很熟悉以及是否做过类似的项目;2、本项目客户的业务是否规范,也就是客户的业务流程是否规范话。如果有其中的任意一条,那么风险之大可想而知,更不用说两天皆有了。那么我们怎么克服防止这些风险呢?如果是第一条公司在组建团队的时候就该考虑招聘熟悉相关业务的人员了;如果是第二条,我认为这时候公司的管理人员和客户接触时就该给客户打预防针了,再就是在合同中下点功夫了。
二、合同阶段
       在合同阶段主要注意的是以下几点:1、项目的功能模块范围;2、客户需求的变动;3、 对项目中某些功能模块做特殊的说明;4、开发进度和成本。
三、调研阶段
四、团队建设阶段
五、分析设计阶段
六、开发测试阶段
七、实施维护阶段

高海东 2007-08-30 19:37 发表评论
发布SoanCode代码生成器 V3.0.0.0 ,自动生成的项目多达10个

经过一个多星期的努力,终于把 V3.0弄出来了,为了加这个聚合缓存依赖,几乎把以前的代码都重构了一遍,变得有条理多了,点击这里下载

这是直接查看代码的效果,如果缓存结构选了聚合缓存依赖的话,下面会有N多Tab,屏幕不够的话,会出现向左向右两个按钮。



选中数据库,在菜单里选代码-》输出代码,就到了直接输出代码界面。



输出后,打开文件夹就出现了这些文件



双击Web.sln打开解决方案,出现了自动生成的10个项目(这里模式选了工厂模式三层结构,缓存选了聚合缓存依赖)



把生成的代码文件选中,右键加入到项目中,我本想让代码生成器智能一点省略这一步的,由于时间或者个人比较懒,就没做了,想着这一步也不是很麻烦。



解决方案上点右键,生成,Web文件bin目录下立即生成N多的DLL,左下角显示生成成功!



好了,基本使用就这么简单。如果你看不懂生成的代码,别来问我。并不是有了代码生成器就可以偷懒了,它只是一个工具,让你对熟悉的工作省点体力,而你使用之前,必须要知道这些项目这些代码的作用。

请大家把错误和Bug告诉我!谢谢!



yvesliao 2007-08-30 16:50 发表评论
使用X.509数字证书加密解密实务(二)-- 使用RSA证书加密敏感数据
     摘要: 本文从实用出发,比较全面的介绍X.509数字证书的获得、证书的管理(包括证书的导入、导出),最后是使用数字证书对敏感数据进行加密和解密的详细过程,由于篇幅稍长分三部分发。第一部分是证书的获得和管理,第二部分是使用RSA证书加密敏感数据,第三部分是使用RSA证书结合对称加密技术加密大数据。
这是第二部分 -- 使用RSA证书加密敏感数据  阅读全文

chnking 2007-08-30 16:03 发表评论
理解强类型查询

      假设
      1)你跟我一样在某种程度上不能容忍“智能UI”的开发方式。
      2)你跟我一样同样不能容忍持久层掺杂进任何的业务逻辑
      3)你跟我一样在面向对象数据技术彻底成熟之前,总是优先倾向于ORM,而不是直接书写SQL语句来完成对象持久相关的工作,你总是认为数据库就是个仓库而已。

      一直以来我对关系数据库总是爱恨交加。最让我烦躁的是,总是不得不把一些业务逻辑放到数据库中去,哪怕就这么一点原因,也足以让我非常非常的不爽。这其中又有两个典型的场景。
      场景一:通过查询条件来获取列表。在这种情况下,有这么一种比较典型的设计,代码类似下面的样子:      

 1/// <summary>
 2        /// 扩展查询机构信息(模糊查询)
 3        /// </summary>
 4        /// <param name="orgName">机构名称片断</param>
 5        /// <param name="orgType">机构类型</param>
 6        /// <param name="isAuthorize">是否授权</param>
 7        /// <param name="orderName">排序字段名称</param>
 8        /// <param name="isASC">是否升序</param
 9        /// <param name="pagingInfo">分页信息</param>
10        /// <returns>机构列表</returns>

11        IList<Organization> GetOrgInfoListByMultiField(string orgName, OrgType orgType, bool? isAuthorize,
12                                                       string orderName, bool isASC, PagingInfo pagingInfo);

这个方法所在的接口,放在了领域层内,但是接口的实现是在数据访问层。在这种场景下面,如果是仅仅单表的查询,还不是最糟糕的,起码各种各样的参数还标明了领域层的印记。最糟糕的是查询里面隐藏了很强的业务逻辑
      场景二:获取在某个项目中,没有参与投标的企业列表(申报的产品数量为0)。在这种情况下,我同样可以设计一个接口方法,象上面的一样,提供一个ProjectId来进行查询。但是申报的产品数量为0这个显而易见的领域逻辑,就以一种令人生厌的Sql形态高度耦合到持久层了。

      我很难想象这种原本属于领域层的逻辑大量的以查询的方式散落到持久层会对业务相对复杂的系统产生的不良影响。令人欣慰的是ORM技术越来越成熟,显然他们针对这个问题做出了一些努力。比如在Nhibernate中提供了HQL,我们可以使用HQL来进行面向对象的查询,通过NHibernate的支持来满足类似上述这两种场景的需求。但是,仅仅是这样,还不够。HQL本质上还是字符串,我们无法象静态类型一样来保证我们的类型安全,保证编译期间排除错误
      
      于是,强类型查询出现了。请看下面的类似代码:      

1var q2 = (from o in db.Orders
2                 where !(new string[] "AROUT""BOLID""FISSA" }).Contains(o.CustomerID)
3                 select o).ToList();

      强类型在HQL之外,给我们带来了更直观,更强壮的查询。这使得我们从本质上可以用相对优雅的方式完全把领域和它的仓库隔离开来(抛开诸如效率,学习曲线,领域建模这些问题先不谈)。我们可以这样理解强类型的查询,用我们熟悉的类型安全的代码方式来表达我们的业务逻辑,然后交给支持强类型的服务去执行。
领域层依赖于持久层提供的服务,但是聚合了领域范围内有实际意义的业务逻辑。
      通过相关的ORM技术(这种技术支持强类型查询,至少也要支持一套描述标准SQL的查询规则)以及相应的配套工具,剥离领域层和持久层的强关联,可以使我们更专心于业务的本身。 

      期待着相对屏蔽数据库的开发时代到来……              



Loris 2007-08-30 14:55 发表评论
VISTA+VSTS2008BETA2, IDE崩溃?
我的操作系统VISTA ULTIMATE。

我现在装上VSTS 2008 BETA2,最近20070828更新几个VISTA补丁后,
 

当打开HTML或ASPX文件,转到设计模式后,IDE就不动了,崩溃。
有人碰到吗?

这次是第二次碰到崩溃的情形了。

第一次是编辑CSS文件时突然崩溃,还不只我一个人有这个问题。

BETA 就是BETA。 



leoxu 2007-08-30 14:47 发表评论
用MSIL剥开C#的外衣(一):方法参数ref、out、params和lock、for和foreach关键字
     摘要: 我们可能从来都不需要用到MSIL,但了解MSIL可以让我们了解许多其他人所不知道的内幕。本文就试图通过MSIL,剥开一些披在C#上面的漂亮外衣。  阅读全文

永红 2007-08-30 13:21 发表评论
.Net Native Image 还原的原理和加强保护的方法
     摘要: 在 net 2.0 中 ngen 能生成 native code 的 image,但是它同时会保留原始程序集的 MetaData 和ILCode 。
这就是还原的关键。同样的,知道了还原方法后加强保护也很容易实现。  阅读全文

瑞克 2007-08-30 13:19 发表评论
利用treeview实现的文件夹的多选,并且实现类似Ajax的Loading .
     摘要: 利用treeview实现的文件夹的多选,并且实现类似Ajax的Loading .
  阅读全文

信元 2007-08-30 12:02 发表评论
数据库对象命名参考(第2版)
     摘要: 本文是我今年发表的同名文章的第2版,这个版本对第1版中没有深入的问题做了探讨,对一些常见的与命名相关的问题做了补充,相对于第1版,第2版的内容增改了近50%。
  阅读全文

JimmyZhang 2007-08-30 11:11 发表评论
数据库厂商提供的 Providers for ASP.NET
     摘要: ASP.NET一堆内建服务,只提供SqlProvider,至于Oracle或MySQL怎么办?现在Oracle或MySQL也应该是因为微软的不支持,而自己开发相关Provider来提供给他们的数据库使用者及客户。  阅读全文

自由、创新、研究、探索…… 2007-08-30 08:17 发表评论
More Posts Next page »