摘要: 一个比较有趣的问题:某程序在启动之前,需要对三种不同类型的数据的交叉引用(Cross Reference,xref)进行更新,现假设每种xref组件(xref component)都专门负责一种类型数据的交叉引用更新。交叉引用更新程序(XRefUpdator)在被构造的时候,会通过反射列举出当前assembly中的所有components,以便在更新的时候,逐一调用这些components的相应方... 阅读全文
posted @ 2009-09-14 10:57 dax.net 阅读(2991) 评论(1) 推荐(0) 编辑
摘要: C#接口有三种用途:提供方法、属性、事件的抽象。这是接口最常见的用途。在面向对象的设计中,接口是软件架构可扩展性的重要保证因素,与抽象类配合使用,使得框架结构具有“被注入”的特性,从而提高系统的扩展性用作泛型约束。在这种情况下,接口可以仅仅是一个类型,其中可以不带任何方法、属性或事件的定义。请看:view plaincopy to clipboardprint?public... 阅读全文
posted @ 2009-09-10 10:06 dax.net 阅读(1877) 评论(0) 推荐(0) 编辑
摘要: 十年前的今天,1999年9月9日,是我去大学报到的日子。感叹一下,时间过得真快啊,当时的情景好像就是发生在昨天似的,感觉很近。特在此发篇微博,以示纪念! 阅读全文
posted @ 2009-09-09 11:14 dax.net 阅读(563) 评论(2) 推荐(1) 编辑
摘要: 上个月试装了Visual Studio 2010 BETA1版本,内置.NET 4.0。Entity Framework(EF)是其中的一个非常重要的框架,在上文中我也介绍过,从整体上看,Entity Framework已经开始让.NET逐步走向了领域驱动设计时代。事实上Visual Studio 2008 Service Pack 1中已经带了一个Entity Framework的BETA版本,... 阅读全文
posted @ 2009-08-29 19:29 dax.net 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 周末在家里,在自己的笔记本上安装了微软最新版操作系统:Windows 7。该系统无论在易用性还是在视觉体验方面,都有很大的改善。但是我个人建议,对Windows系列操作系统不是很熟悉的话,还是不要安装Windows 7了,毕竟在用户体验上的变动还是很大的。 我的笔记本电脑是惠普HP dv1606tn的,2006年买的,至今已经有3年历史了。3年里,硬件都已经发展了好几代了,而我的本本还能跑最新的W... 阅读全文
posted @ 2009-08-09 09:07 dax.net 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 【本贴转载并翻译自 When to use domain driven development and database driven development】 出于某种原因,Martin Fowler在其PoEAA一书中介绍了三种不同的模式:事务脚本(transaction script)、活动记录(active record)以及领域模型(DomainModel)。领域驱动设计使用的是领域模型... 阅读全文
posted @ 2009-08-03 10:24 dax.net 阅读(2070) 评论(0) 推荐(1) 编辑
摘要: 今天无意中看到一篇文章,介绍了.NET Framework 4.0中的Entity Framework的设计与使用。文章开头部分提到了Database First和Model First两种应用程序设计方式。从.NET Framework 3.5 SP1开始,Database First的思想就开始伴随我们,它支持反向工程,可以将数据库中的表反向生成支持DLinq的模型。而从即将到来的.NET F... 阅读全文
posted @ 2009-07-29 14:50 dax.net 阅读(1823) 评论(0) 推荐(1) 编辑
摘要: 附件是在Dynamics AX 2009中调用Crystal Reports的演示。注意:由于是使用ActiveX和COM技术,因此在使用前请确保安装了Crystal Reports产品演示里的Show report按钮打开的是d:\report1.rpt文件,请您根据自己的情况在Crystal Reports里开发所需的rpt文件,然后在Show report按钮的Click事件处理过程里指定这... 阅读全文
posted @ 2009-07-03 11:21 dax.net 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 【本文转载自CSDN论坛:http://topic.csdn.net/u/20081209/10/39b3b38a-0376-45e5-b878-b0305a573712.html】 今天在SD2大会上,听了李建忠老师讲的《.NET框架中的几个典型设计模式》课程收益非浅,李建忠老师的课总能给人醍醐灌顶的感觉,去年的《WPF内核机制》让我们可以从根本上理解WPF的革命。今年的设计模式,也是从根本上理... 阅读全文
posted @ 2009-07-03 11:03 dax.net 阅读(467) 评论(0) 推荐(1) 编辑
摘要: 先看下面的例子:view plaincopy to clipboardprint?staticvoidMain(string[]args) { List<string>l=newList<string>(); l.Add("a"); l.Add("b"); l.Add("s"); l.Add("t"); if(l.Exists(s=>s.Equals("s"))) {... 阅读全文
posted @ 2009-05-26 12:19 dax.net 阅读(5393) 评论(2) 推荐(0) 编辑
摘要: 今天遇到一个问题,就是希望能够动态调用事件。传统的思路是,通过Reflection.EventInfo获得事件的信息,然后使用GetRaiseMethod方法获得事件被触发后调用的方法,再使用MethodInfo.Invoke来调用以实现事件的动态调用。 很不幸,Reflection.EventInfo.GetRaiseMethod方法始终返回null。这是因为,C#编译器在编译并处理由event... 阅读全文
posted @ 2009-05-22 15:37 dax.net 阅读(4003) 评论(1) 推荐(1) 编辑
摘要: WCF所支持的序列化格式分为Xml和DataContract两种(以下简称Xml格式和DataContract格式)。个人认为,Xml序列化格式是为了达到协议兼容而保留下来的传统格式。比如通过WCF实现基于xup协议的UI架构时,为了与xup协议保持兼容,在设置WCF属性时,建议采用Xml格式;而DataContract格式则是WCF提供的一种新的序列化格式。默认情况下,WCF采用DataCont... 阅读全文
posted @ 2009-05-22 09:40 dax.net 阅读(1596) 评论(1) 推荐(0) 编辑
摘要: 上文对RSS的使用作了简介,现在对RSS的原理作个简单的介绍。首先应该了解到,你发表的博客内容(比如标题、作者、分类、发表时间、正文、Tag等信息)都会被保存到永久介质上(比如后台数据库、文本文件等,一般是关系型数据库)。现假设你的博客系统使用的关系型数据库,并且保存分类和文章的数据表有如下的数据:【“博客分类”表(Categories)】IDCategoryName1.N... 阅读全文
posted @ 2009-05-15 14:46 dax.net 阅读(4733) 评论(0) 推荐(0) 编辑
摘要: 本文将简要介绍接口的显式实现。 先看下面的代码:interfaceIInterfaceA { intGetValue(intx); } interfaceIInterfaceB { intGetValue(intx); } classConcrete:IInterfaceA,IInterfaceB { } 在上面的代码中,Concrete类同时实现了IInterfaceA和IInterfaceB。... 阅读全文
posted @ 2009-05-12 20:11 dax.net 阅读(739) 评论(0) 推荐(0) 编辑
摘要: 轻叹世间事多变迁。有着传奇历史的Borland软件公司被英国Micro Focus公司以7500万美金的价格收购了! 记得李维先生曾经写过一本《Borland传奇》的书,当时(大概是2003年的时候)特别火,我也买来了一本,那是我能够静下心来通篇阅读完的第一本讲述IT公司经历的书。书中讲述了Borland公司的创建、发展以及其产品在商场局势影响下的发展路程。我关注Borland,是因为其具有传奇色... 阅读全文
posted @ 2009-05-11 08:31 dax.net 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 我想业内人士和具有WEB专业知识的朋友对“RSS订阅”应该已经非常熟悉了,但更多的网友或许对这一有趣的事情无法理解,甚至根本没有听说过。今天从应用上简要介绍一下RSS订阅。 在WEB 2.0时代,博客已代替原来的日记,成为众多网友发布自己的日记、文章、评论和最新生活动态的主要场所。博主自然希望自己的博客能够被更多的朋友关注和收藏,而另一方面,自己也希望去关注他人的博客。早段... 阅读全文
posted @ 2009-05-08 15:52 dax.net 阅读(1197) 评论(0) 推荐(0) 编辑
摘要: 在 上文中,我发布了一个在WLW中插入语法高亮代码的插件,该插件使用table的HTML 标记来分隔代码与行号。这样做的一个问题是,针对不同的博客主题,行 号列的宽度可能需要手动调整,而且大量的<td></td>标记使得博客文章变得很大。为此,我修改了插件源代码,使用空格来分隔代码与行号。这样做其实也有弊端,比如代码折行的时候,折行后的第一个字符会与行号的第一个字符同列,这... 阅读全文
posted @ 2009-05-06 11:03 dax.net 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 最近在安装一台Windows Server 2003的虚拟机,打算在这台虚拟机里安装SQL Server 2005、Visual Studio 2008,并部署Dynamics AX 2009 + EP,以便学习之用。弄到一半发现原本分配的20GB硬盘文件(动态模式)容量不够了,而Virtual PC又无法调整vhd文件的容量,因此只能通过internet寻求方法。 上网找到一个vmToolkit... 阅读全文
posted @ 2009-04-02 14:46 dax.net 阅读(2311) 评论(0) 推荐(0) 编辑
摘要: 在DDD中,实体(Entity)、值对象(Value Object)和服务(Service)是领域模型的基本元素;而数据传输对象(Data Transferring Object,DTO)只负责保存数据,以便数据在层与层之间进行传递,这是前两者与DTO的主要区别。理解实体与值对象 实体是我们在做开发的时候经常遇见的领域对象,比如上文成绩管理系统中的“学生”就是一个实体,因为... 阅读全文
posted @ 2009-03-31 10:22 dax.net 阅读(3007) 评论(1) 推荐(4) 编辑
摘要: 简单的说,软件开发的目的就是通过计算机解决某一领域的实际问题。这样的定义已经将我们的立足点置于领域层面了:我们需要关注的是领域本身,而不是其它的技术细节。很多人拿到需求,很喜欢从建立数据模型开始,画出数据模型图、ER图,考虑数据库表的结构,以便开始软件设计。比如,假设现在要设计一套简单的学生成绩管理系统,就管理学生各科的成绩,我们都会毫不犹豫的设计三个数据表:Students(用于保存学生信息)、... 阅读全文
posted @ 2009-03-10 15:59 dax.net 阅读(1007) 评论(2) 推荐(0) 编辑