ORM,即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。
最值得期待的ORM工具就是ObjectSpaces,因为它是微软推出的,集成在VS2005中,当然值得期待了。但是,最近有消息说,ObjectSpaces要到2006(2007)年才会推出,这样的等待好像也太长了些。
下面我们的目标就转到了国外的一些开发工具和开放源码上了,开发工具很多都有时间或者数据表的数量的限制,而且代码中间老有些“****工具自动生成”也不是一件好事情。在开放源代码中我现在要介绍的工具是Nhiberate,它是仿照Java的Hiberate制作的,虽然大家都抱怨它的开发速度有点慢,但是其实现在应该还是比较不错的。
和ObjectSpaces一样,在做ORM转换的时候,它也要自己先定义一个Schema文件,还要自己去手动写类的生成代码,很不方便。为了解决这个问题,飞鹰制作了这个Cool Coder工具,它的作用就是根据数据库的表结构自动生成.cs程序和schema文件。请点此查看使用说明。我修改了生成Map文件时的一个Bug,并我写了一个类来简化开发过程,请点此了解使用来开发基于NHibernate应用程序的技巧。
终于有时间看看.Text的真面目,安装和配置还花了点时间。最后还是用
开心汉化的版本。现在只能在自己的机器测试。由于
ASPCool的空间暂时还不支持SQL Server,所以现在还没有办法把它放上去。不知道谁知道哪儿有支持ASP.NET+Sql Server的比较好的空间?
最近,在给《软件设计心理学》的期末考试选择设计项目的方向,很多人根据老师在课堂上的例子选择了手机的设计。而我希望选择一个可以对自己,或者说对开发人员,有用的方向来做自己的调查报告。
开始想做代码生成工具方面的研究,后来又想做模型驱动的方向,但是发现这个方向实在太难,就如sam1111所说的,属于未来的技术,也就作罢。
昨天,我终于定下了一个方向,那就是做《极限编程开发辅助工具》,为什么要做这么一个工具呢?因为我并不了解极限编程,而我做这个工具的目的就是为了使那些和我一样不了解极限编程的人,通过这个工具可以用这个方法来编程。下面是我这个项目的设计目标:
“为了解决软件开发过程中存在的各种问题,人们在软件开发的过程中引入了各种办法。从以前的RUP、CMM到现在比较流行的极限编程(XP)、测试驱动开发(TDD)和模型驱动结构(MDA)等,但是真正能够在开发过程中使用这些方法的却还是极少数。这是因为这些方法的理论性太强,概念繁多,学习曲线复杂,使得很多开发人员对其望而却步。《极限编程开发辅助工具》就是针对人们在极限编程开发过程中遇到的上述问题。本工具可以指导人们根据极限编程的标准实施开发过程,对其下一步要做的工作进行提示,同时,如果用它也会限制人们在开发过程中用不符合极限编程开发标准的方法来进行开发。它可以指导那些不懂极限编程理论的开发人员,通过极限编程的方法高效的开发程序。”
不知道大家对于这个思路有什么看法,如果你有好的建议和心得体会,希望可以一起交流,当然,如果你也时间有兴趣来参加这个工具的设计,那就更好了。
先前在Kaneboy的Blog上看到关于ORM(Obeject-Relation Mapping)的介绍,就开始学习许多ORM的内容,并深深被它吸引。因为我是属于比较懒得那类人,其实看的是ORM,我实际上在寻找代码自动生成的方法,用了一些工具,比如:ORM.NET,LLBLGen Pro,它们也确实利用ORM的思想帮你生成了许多现成的结果,其中ORM.NET最后生成的结果是我最喜欢的,如下所示:
DataManager dm= new DataManager(Config.Dsn);
Student s = dm.NewStudent();
s.FirstName = "Tim";
s.LastName = "Brown";
s.Contact = dm.NewContact();
s.Contact.Address1 = "555 Main Street";
s.Contact.Address2 = "Apt 6";
s.Contact.City = "Oakland";
s.Contact.State = "CA";
dm.CommitAll();
真得很不错,以后编写数据库的程序如此之简单,岂不是太美了。
但是我们平常的程序并不是都是访问数据库的程序,如果能够自动生成代码呢?
在无意中我发现了MDA,Module Driven Architechture.这是OMG(对象管理组织)以UML2的基础上提出的概念性软件开发架构。以前学习UML的时候,老觉得和自己的开发有不少的距离,现在如果有一个很好的MDA工具可以把我们的设计自动生成代码,那一定是一件舒服的事情。
但是微软的WhiteHorse并没有基于UML和MDA的标准,不知道那家公司可以给我们提供一个这样的产品?我们只有开始期待了。
今天看到
Nunit的单元测试工具,也想当下来试试。但是运行后,并没有看到什么异常结果。不知道谁有没有使用
Nunit测试asp.net程序的经验,需要自己去写测试代码吗?
以前用c#写程序,所以用IBuySpy; 后来用VB.NET,就用DotNetNuke。我发现在DotNetNuke中有一个类SqlCommandGenerator非常好,使得我们在写访问数据库的类的时候的代码量大大减少。如下面的代码:
Public Function GetSingleLink(ByVal ItemID As Integer, ByVal ModuleId As Integer) As SqlDataReader
Dim myConnection As New SqlConnection(GetDBConnectionString)
' Generate Command Object based on Method
Dim myCommand As SqlCommand = SqlCommandGenerator.GenerateCommand(myConnection, _
CType(MethodBase.GetCurrentMethod(), MethodInfo), _
New Object() {ItemID, ModuleId})
myConnection.Open()
Dim result As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
Return result
End Function
使用起来非常的方便。但是有个地方我没有看明白,就是在向存储过程中传递参数的时候,我们会传入类型和长度,不知道在DotNetNuke中,他们在哪儿把这两个值传给SqlParameterAttribute的呢?
自从在VS.NET2003上装了Together以后,发现QuickCode就没有办法用了,不知道是不是这两个软件冲突?
有没有谁在同时使用这两个程序?
最近几天发现我周围越来越多朋友在ASPCOOL.COM学习技术,真是让我感到高兴,自己苦心经营三年的网站终于给大家带来越来越多的帮助。
先是收到我以前的同事小脱的来信,信中说:
老王,你好,我是小脱。好久不见,你的网站终于成为一个响当当的技术论坛门派网站了。我的好几个朋友都在给我推荐这个网站,我听了都在偷偷的笑呢。祝贺你
接着,看到Sam111在他的博客上说,他也经常上ASPCOOL.COM上看看。
有一天,看到单位的一个同事真在看ASPCOOL.COM,非常高兴,对她说非常感谢她看我的网站,她说她很早就开始上ASPCOOL.COM了,只是怎么都不相信是我的站点。
今天去听微软的《asp.net的安全机制》的讲座,我向旁边的朋友推荐ASPCOOL.COM,没想到他说他经常上。真是让我听着高兴。
非常高兴越来越多的朋友开始利用ASPCOOL.COM学习,飞鹰感觉责任重大,一定不能辜负大家对ASPCOOL.COM的支持,把它办的越来越好!
在淳朴的狗熊的博客上看到
Borland Together for Visual Studio .NET,下栽下来一试.效果很不错。以后我学习UML就用它来设计了,简直太棒了。唯一的遗憾是它好象只支持C#和J#,并不支持VB.NET,所以我现在的项目暂时还没有办法用它。下个项目希望还是用C#来做吧!