随笔- 785
文章- 9
评论- 171
阅读-
123万
01 2007 档案
寻找属于自己的阳光
摘要:「生命是一种庞大的、神秘的存在。」 每个人来到这个世上,总要寻找属于自己的光亮,哪怕只有一秒钟,也要让自己璀璨一次、美丽一回。 一个活得很精彩的人,总是能够在生活中自由自在的挥洒,勇于选择和承担生命的责任,不受尘世的约束却又深情细致;在任性与认真之间,不管是守着边缘或主流的位置,都能在飘泊移动的生命中,体悟人生。 有阳光,当然也会有阴影。当阴影来临时,就是自我沉潜、韬光养晦的时机,即使阴影仍...
阅读全文
老板的最高境界
摘要:老板最高境界:越清闲越赚钱“活是人干出来的,钱是人想出来的。越干活的人越穷,越思想的人就越富有。” 12月3日,中国社会科学院博士生导师李海舰教授在中山大学作了一场关于《利润来自体系财富创造机制》的学术报告,给参加中山大学高等继续教育学院MBA高研班同学会2005年度年会论坛的同学们上了一堂别开生面的讲座。 钱是想出来的 很多人都喜欢做老板,但都是小老板,老板总是做不大。为什么...
阅读全文
当你有一个迫不得已的理由
摘要:有一个商人,32岁时就拥有几十亿元的资产,而他16岁时,还只是一家娱乐城的服务生。十几年的时间,竟然发生了如此翻天覆地的变化。 他说:“我要感谢一个人。在我做服务生的时候,有一次,一位财大气粗的老板,喝醉了酒,在我给他送咖啡的时候,打翻了咖啡杯,还把嘴里嚼得血红的槟榔吐在我身上。当时,看着自己雪白的衬衫沾满了污秽的槟榔汁,我气得浑身颤抖,经理这时却叫我给客人赔礼 道歉。明明是客人酗...
阅读全文
NHibernate整合
摘要:本文约定:1. Nhibernate简写为NHB;2. 本文例子的开发平台为win2000xp+sp2, sql server2000, Nhibernate0.9.1.0;3. 使用SQL Server自带的罗斯文商贸数据库(Northwind),中文版;4. 本文例子是基于测试驱动开发(TDD)的,因此建议使用NUnit2.2和Log4Net (如果你不熟悉NUnit,不要紧啊,趁此机会学习点...
阅读全文
nhibernate入门系列: many-to-many映射
摘要:多对多关系在数据库也是比较常见的,它通过一个中间表将两个主表关联起来。下面来看看多对多关联在nh的实现,示例是一个User和Group之间的多对多关联。先来看看User类的映射信息: 在多对多定义中,定义了中间表为UserGroups,此表只有两个字段:user_id和group_id;用于关联Users和Groups表。User的定义: public class User { public ...
阅读全文
nhibernate入门系列 NHB的MAP文件使用
摘要:MAP文件,可以充当一个数据库的描述,例如数据库的基本关系,类型的定义,一般情况下,当给出了MAP文件,您完全可以根据它生成对应的数据库. using NHibernate;using NHibernate.Cfg;using NHibernate.Dialect;using NHibernate.Tool.hbm2ddl; using System ;using System.Reflecti...
阅读全文
nhibernate入门系列 值集合映射
摘要:在数据库的多对多关系中, 实现方法是通过一个额外的关联表将两个主表关联起来,关联表中只保存两个主表的主健,显然, 主表与关联表是一对多的关系. 这样两个主表就通过这个关联表构成了一个多对多的关系. 典型的例子就是用户和权限了, 每个用户可以有多个权限, 而每个权限也可以分配给多个用户. 通过一个用户权限表就可以实现这样的要求.因为关联表并没有其它任何信息, 所以在NH中它不能算是一个持久对象, 没...
阅读全文
nhibernate入门系列: one-to-one映射
摘要:nh中的one-to-one(一对一)映射有两种情况, 一种是主键(PrimaryKey)关联, 一种是外健(ForeignKey)关联. 在主键关联的情况下, 显然必须有一个主键是根据别一个主键而来的, nh通过一个特殊的方式来处理这种情况, 要注意的是两个主健名称必须同名.而外健一对一关联, 需要在one-to-one配置中定义一个property-ref属性, 这个配置属性在当前版本的nh中...
阅读全文
nhibernate入门系列: 使用Criteria载入对象
摘要:nh会话提供一种使用表达式(就像SQL语句的where表达式)来载入数据的方法, 以取得满足条件的对象集合。 通过CreateCriteria方法, 可以取得一个ICriteria接口, 这个接口用于操作表达式和排序字段. 由CriteriaImpl类实现,此类加有Internal修饰,因此不能在程序集外显示创建, CreateCriteria方法需要一个要加载对象类型的参数.这里列出ICrite...
阅读全文
nhibernate入门系列: one-to-many映射
摘要:数据库中的主从表就是一对多的关系了,这种关系在按范式设计的数据库中是十分常见的.在nh中,通过one-to-many映射可以十分方便的处理这种关系,包括级联更新,删除等. 下面以一个简单的主从表来说明one-to-many的应用. 先来看看Parent类的映射信息: one-to-many关系必须通过一个nh的集合类型来定义, 这...
阅读全文
在nhibernate中执行SQL语句和存储过程
摘要:在有些时候,可能需要直接执行SQL语句、存储过程等,但nhibernate并没有提供一种让我们执行SQL语句的方法,不过可以通过一些间接的方法来实现。1. IDriver接口IDriver接口就是数据访问的驱动器,对于不同的数据提供者(SqlClient, OleDb等)就有不同的驱动器,与SqlClient对应的是SqlClientDriver, 而与OleDb对应的就是OleDbDriver。...
阅读全文
nhibernate源码九: 事务处理
摘要:对数据库的操作是少不了事务处理的,事务能保整数据完整性和有效性。 在nh中,使用Transaction对象对.net的事务对象(实现了IDbTransaction接口的对象)进行了包装。在nh中,一个典型的事务处理是这样的(见ISession.cs的注释)ISession sess = factory.OpenSession();Transaction tx;try { tx = sess.B...
阅读全文
nhibernate源码八: 解析HQL
摘要:本文将对HQL查询文本的解析过程进行分析,这个可以说是NH中比较复杂的一块了(个人认为),涉及到的类也比较多。建议阅读之前先深呼吸十下,看完之后脑袋成浆糊可不要找我哟。:-)在HQL数据加载一文中,我们有提到QueryTranslator的创建过程,代码如下://*** SessionFactoryImpl.cs 429行 *** private QueryTranslator GetQuery...
阅读全文
nhibernate源码七: HQL数据加载
摘要:NH中,HQL是一个十分强大的面向对象的查询语言,简单的说,就是不需要使用实际的表名和列名来查询数据,而改用类名和属性。有两种方式来执行HQL数据加载,一种是直接使用ISession的Find方法,另一种是使用IQuery接口。IQuery接口提供了一些额外的设置,最重要的就是分页了,这个和ICriteria差不多,另外一些就是设置参数的值了。IQuery最终还是会调用ISession的Find方...
阅读全文
nhibernate源码六: Criteria数据加载
摘要:ICriteria是使用Expression进行数据加载的接口, 提供了设置表达式(Expression), 排序方式(Order), 分页记录等操作.它使用一种类似于SQL语句where表达表的方式来加载满足条件的数据. 下面以一个查询Username为billy, Password为test的用户为例来分析nh中Criteria数据加载是怎样工作的. 查询代码如下: Expression ex...
阅读全文
NHibernate源码三(续):数据持久化
摘要:当持久化对象时,显然必须存在把记录的值赋值到对象属性和取得对象属性的值用于持久化操作,对于更新操作,还需要检查对象的值是否已发生变化,即是否为Dirty,这些操作都是由对象的持久化类来完成的。有关持久化类可参考《会话和持久化操作》一文。下面对NH的源码进行分析,以了解NH中数据加载和更新的过程。一、持久对象加载先来想像一下对象的加载过程(Load).1. 根据对象Id从数据库取得记录;2. 使用默...
阅读全文
nhibernate源码五: 对象标识
摘要:对象标识相当于数据表中的主键,在持久化中起着十分重要的作用,nhibernate通过对象标识来辨别两个持久对象是否相等。在映射文件中,通过id属性来定义对象标识,内容如下: 其中unsaved-value属性用来指明对象未持久化时的值,如果此值与未持久化的对象标识值不符,将无法save对象,generator用于指定标识对象的类型,常用的有identity, assigned等。标识对象为实现...
阅读全文
nhibernate源码四: 持久化操作与SQL语句
摘要:持久化操作由与持久对象关联的持久化类来完成,持久化类是实现IClassPersister接口的类,每个持久对象都有一个关联的持久化类,这些持久化类存储在会话工厂的classPersisters集合中,nhibernate允许用户通过自定义的持久化类来持久化数据。IClassPersister接口定义了基本的CRUD操作,在nhibernate中由AbstractEntityPersister类实现...
阅读全文
nhibernate源码三: 会话与持久化操作
摘要:会话是nhibernate中的主要接口,也是我们进行持久化操作和数据加载的主要接口,ISession在IClassPersister、ITransaction、ICriteria和IQuery之间起着协调者的作用。会话对象通过调用会话工厂的OpenSession方法获得,OpenSession方法有一个参数interceptor,这是一个拦截器,由实现了IInterceptor接口的对象来完成,比...
阅读全文
nhibernate源码二: 会话工厂
摘要:会话工厂是NHibernate中的关键类,它与数据库连接、数据库事务等进行交互,还存储着与所有持久对象类型关联的持久化对象,持久化类是持久化的关键,它实现基本的CRUD操作。当用户需要持久操作时,由会话工厂创建一个会话供用户进行持久操作。1. 会话工厂的创建会话工厂由ISessionFactory接口实现,由Configuration的BuildSessionFactory方法创建,会话工厂应该使...
阅读全文
NHibernate源码一: 配置信息
摘要:配置信息用于指定NH以何种方式访问数据库, 根据这些配置信息, NH动态的创建数据访问对象并与数据库进行交互. 除了.net类库自带的Odbc, OleDb, OracleClient和SqlClient访问方式外, 在0.2版中, NH增加了用于访问MySQL和Firebird的访问方式, 这两种访问方式由第三方组件提供, mono的用户应该高兴了. :) NH的配置有两种存放方式 存放在应...
阅读全文
NHibernate源码分析开篇
摘要:为了让大家更好的了解NHibernate的功能和工作原理, 我们将对NHibernate的源代码进行全面的分析. 在此系列文章中, 我们做出以下约定: 为简化输入, 文中NHibernate均以NH代替; 若无特殊说明, 均以NHibernate 0.2.0.0的源代码为准; 文中在引用NHibernate的源代码段时, 均会在代码段的上文给出所在的文件名称和起始的行号;
阅读全文
关于项目管理九大知识领域的比较详细的教程
摘要:转自http://www.stcsm.gov.cn/learning/lesson/guanli/jee/index.asp 第一章 绪论 1.1 本文的目的 1.2 什么是项目 1.3 什么是项目管理 1.4 与其它管理方式的联系 1.5 相关的工作第二章 项目管理环境 2.1项目的阶段和项目的生命周期 2.2项目涉及人员 2.3组织影响力 ...
阅读全文
聪明人
摘要:☆聪明人一定反应敏捷,善于接受新事物。 ☆他能迅速进入一个新领域,给你一个头头是道的解释。 ☆他提出的问题往往一针见血、击中要害。 ☆他能及时掌握所学知识,并且博闻强记, ☆他能把本来认为互不相干的领域联系在一起使问题得到解决。 ☆他富有创新精神与合作精神……
阅读全文
经典管理定理二十三条
摘要:一、 素养 蓝斯登原则:在你往上爬的时候,一定要保持梯子的整洁,否则你下来时可能会滑倒。 提出者:美国管理学家蓝斯登。 点评:进退有度,才不至进退维谷;宠辱皆忘,方可以宠辱不惊。 卢维斯定理 :谦虚不是把自己想得很糟,而是完全不想自己。 提出者:美国心理学家h?卢维斯 点评:如果把自己想得太好,就很容易将别人想得很糟。 托利得定理: 测验一个人的智力是否属于上乘...
阅读全文
asp.net常用代码
摘要:0.用session判断是否登陆 if(Session["login"] == null) { Response.Redirect("error.aspx"); } 1. 打开新的窗口并传送参数:传送参数:response.write("") 接收参数:string a = Request.QueryString("id");string b = Request.QuerySt...
阅读全文
Oracle备课笔记
摘要:Oracle第一课(数据库介绍)备课笔记 一、了解数据库管理系统的不同类型 1、数据存储系统 将数据存储在计算机上的概念就叫数据存储系统 。 数据以文本、数字、图片或声音等形式存储。 2、数据库是一组在逻辑上相关的信息的集合 。表以行和列的形式保存数据。实现数据库管理任务的软件叫做数据库管理系统(DBMS)。 3、DBMS的不同类型为 :RDBMS和ORDBMS RDBMS是由E.F.C...
阅读全文
WAP.WXL.WMLScript备课笔记
摘要:第一部分:概述 一 什么是WAP一种通信协议和应用环境 二 WAP的作用1.部署信息资源2.高级电话服务3.使移动设备可访问Internet 三 WAP的历史演变 四 WAP的优点1.可移动性2.设备之间的互操作性3.网络独立性4.设备独立性 五 WAP的体系结构1.Wap Client 2.Gateway 3.Server 六 WAP体系结构的部件1.WAP客户2.WAP设备3.WAP浏览器4...
阅读全文
Donet网络编程备课笔记
摘要:一 System.Net和System.Net.Socket命名空间介绍二 WebRequest、WebResponse、WebProxy、HttpWebRequest、HttpWebResponse类介绍三 举例(见MSDN同步HttpWebRequest示例)四 TcpClient介绍以及举例(见例2)五 TcpListener介绍以及举例(见例子3)六 UdpClient介绍以及举例(见例...
阅读全文
DotNET异步编程备课笔记
摘要:一.如何理解异步编程使用 .NET 异步编程,在程序继续执行的同时对 .NET 类方法进行调用,直到进行指定的回调为止;如果没有提供回调,则直到对调用的阻塞、轮询或等待完成为止。例如,一个程序可以调用一个方法,该方法枚举一个较大的列表,同时主程序将继续执行。在完成枚举后,进行回调并由程序对它进行寻址。 二.使用异步编程的领域文件IO 流IO 套接字IO远程处理信道(HTTP、TCP)和代理使用 A...
阅读全文
DotNET分布式编程之COM+(二)
摘要:第一部分:回顾:一、COM+中的对象构造服务二、COM+中的基于角色的安全性 第二部分:新课:一、COM+中的共享属性管理器介绍二、使用.NET类库访问Windows队列,两个例子:一个例子用于发送消息,一个例子用户接收消息发送方代码:using System;using System.Messaging; namespace Sender{ class SenderMain { sta...
阅读全文
.NET WEB服务专题
摘要:Web服务:1.介绍WEB服务在分布式应用程序中的用途以及地位2.介绍WSDL\SOAP\UDDI\XML在WEB服务中的作用3.举例演示Visual Studio 2003创建WEB服务的步骤4.举例说明如何在.NET应用程序使用WEB5.修改代理类的构造函数,传递web服务的URL6.介绍wsdl.exe的使用方法,演示如何使用wsdl.exe生成代理类7.使用MessageName属性为方法...
阅读全文
分布式编程
摘要:2006-10-26授课安排(晚:分布式编程)第一部分:回顾:一、创建简单的.NET服务组件二、注册.NET服务组件的方法1、手动注册(使用regsvcs.exe)2、自动注册(懒惰注册)3、编程注册注:懒惰注册的条件三、调用COM+组件 第二部分:新课:一、线程与COM+单元模型(STA\MTA\TNA)二、COM+同步(五个同步属性:Disabled\Supported\Not Support...
阅读全文
什么是Ajax技术
摘要:定义Ajax Adaptive Path公司的Jesse James Garrett这样定义Ajax: Ajax不是一种技术。实际上,它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含: 基于XHTML和CSS标准的表示; 使用Document Object Model进行动态显示和交互; 使用XMLHttpRequest与服务器进行异步通信; 使用JavaScript绑定...
阅读全文
什么是Web2.0技术
摘要:什么是Web2.0Web2.0是以Flickr、43Things.com等网站为代表,以Blog、TAG、SNS、RSS、wiki等社会软件的应用为核心,依据六度分隔、xml、ajax等新理论和技术实现的互联网新一代模式。 Blog——博客/网志:Blog的全名应该是Web log,后来缩写为Blog。Blog是一个易于使用的网站,您可以在其中迅速发布想法、与他人交流以及从事其他活动。所有这一...
阅读全文
C#入门代码
摘要:一、从控制台读取东西代码片断:using System; class TestReadConsole{ public static void Main() { Console.Write(Enter your name:); string strName = Console.ReadLine(); Console.WriteLine( Hi +...
阅读全文
IOC的概念
摘要:最近在学习IOC的东西,顺便写点加深自己的理解。。。 1.什么是IOC(Inversion of control-控制反转) Ioc(inversion of control)的翻译为控制反转。这个概念其实并不新奇,在程序开发的各个环节你都有意或无意的使用到了。 控制反转顾名思义是指在程序执行时控制权的转移,比如一个控制台程序如: using System; ...
阅读全文
使用接口实现附带插件功能的程序
摘要:插件功能给软件的使用者可以扩充软件功能的机会。我们不可能让软件适用于所有人,也不是所有的人都会出资帮助你实现他们的需求。插件功能提供了一个软件的高度可扩充性,允许用户作为软件的二次开发者,继续完善软件的功能。 为了在软件中加入插件功能,我们需要下面几个特别的条件: (1) 本软件(此后我们称之为‘宿主程序’)需要开放自己的成员,包括属性、方法、事件为插件程序提供服务。 (2) ...
阅读全文
我们是否需要ORM
摘要:在遥远的编程大陆上,一条大河分隔了整个大陆。河的西边住着一群疯狂的程序员,他们疯狂的崇拜着OO大神,他们以OO大神规定的教义要求自己和自己的身边的一切,他们把自己的首都叫做OO城。但是 不如意的是,大陆上的美女,都集中在OOfans的对面:东岸。 河的东岸(数据库之领)住着崇拜“关系”女神的部落。虽然在程序员们的不断的圣战下很多部落的蛮人都偷偷信仰了OO大神,但是这一切都是不公开的。“关系”女神仍...
阅读全文
大型软件开发与ORM构架
摘要:大型软件开发与ORM构架 在最近的几年里,很多程序员把自己的业余时间献给了ORM框架的开发,甚至在有些单位的招聘面试中把是否理解或是能否使用一种ORM构架,作为了一种评价开发人员技能的必要条件。作为一个一线的开发工人,我毫不否认ORM框架对设计模式社区发展作出巨大的贡献,以及对提高开发效率这一目标的成果。 但是请各位读者注意的是,本文是站在大型软件开发的角度上阐述笔...
阅读全文
Spring.NET学习实践(2)
摘要:Spring.NET学习实践(2) 修改下我们的小例子: 在上一篇文章的最后,我们作了一个简单的例子,来使用Spring.NET,虽然这个例子真的是很简陋. static void Main(string[] args) { StaticApplicationContext context = new StaticAp...
阅读全文
Spring.NET学习实践(1)---Spring.NET的构架
摘要:Spring.NET学习实践(1) Spring.NET的构架: 从2004-08-04的第一版本算起,Spring.NET出来已经很久了。但是相比较他的姐姐Spring,虽然借助于 .NET 强大的反射机制,甚至拥有比原 Java 版本更强大的功能。但是不得不承认,相对于JAVA社区的人山人海,Spring.NET的人气还真的是不旺。 在这篇笔记中,我会谈及一些概念和术语,如果你...
阅读全文
远离UpdatePanel给我的噩梦
摘要:摘要: 自从项目要求启用ajax之后,一直都很头痛,直到ComponentArt放出支持ms asp.net ajax之后,所有的问题迎刃而解,于是乎立马down下ms asp.net ajax beta2,祭出神奇的UpdatePanel。但是正所谓“福之祸所依,祸兮福所至”,噩梦已经埋下伏笔...... 一、噩梦的根源:庞大的页面 UpdatePanel在页面小的时候还是很好用的,而当...
阅读全文
从简单工厂到工厂方法
摘要:写在前面 最近一段时间在研究有关设计模式方面的文章,拜读了TerryLee以及吕震宇两位老师所写的设计模式方面的系列文章,收获颇丰,也让我对OOP,OOD有了新的理解和认识,不过在看到工厂方面的几篇文章时,却总有个地方想不通,望各位老师专家能替在下答疑解惑,以下是自己对工厂模式的一些理解以及提出的一种改良方案,不知道是否有人提出过类似的方案,如有雷同纯属巧合。有说得不对的地方还请批评指正。 从简...
阅读全文