12 2009 档案

摘要:NVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。 当NVelocity应用于web开发时,界面设计人员可以和.NET程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由.NET程序开发人员关注业务逻辑编码。NV... 阅读全文
posted @ 2009-12-30 14:10 catch22 阅读(713) 评论(0) 推荐(0)
摘要:Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于WinForm和ASP.NET应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。 你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11... 阅读全文
posted @ 2009-12-30 14:09 catch22 阅读(888) 评论(0) 推荐(0)
摘要:虽然目前.NET对WebService支持的非常好,Spring.NET认为还是有几个方面可以改进:   第一、.NET在.asmx文件中保存WebService请求和服务对象的关联关系,这些.asmx文件不管有用没用都得放在那儿。  第二、Spring.NET希望能通过IoC容器对WebService进行依赖注入。一般说来WebService总会依赖其它服务对象,所以,如果能用配置方式来选择服务... 阅读全文
posted @ 2009-12-30 14:08 catch22 阅读(747) 评论(0) 推荐(0)
摘要:Spring.Services命名空间的目的是为业务服务提供位置的透明性。我们相信使用普通的接口和.NET类,用户应该可以用最简单的方式实现服务。我们也认为在将某个服务发布给客户端的时,应该只关心服务的配置,而无需关心服务的实现。在Spring.Services命名空间的支持下,可以用IoC容器中的服务导出对象将任一个普通对象发布为web服务、企业服务组件或远程对象。这里说的“普通对象... 阅读全文
posted @ 2009-12-30 14:05 catch22 阅读(635) 评论(0) 推荐(0)
摘要:ASP.NET MVC Framework是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架。MVC(Model-View-Controller)用于表示一种软件架构模式.它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。  今天带给大家的就是期待以久的ASP.NET MVC与Spring.NET和NHibernate的组合,视... 阅读全文
posted @ 2009-12-30 14:02 catch22 阅读(1063) 评论(0) 推荐(1)
摘要:NHibernate是一个基于.Net的针对关系型数据库的对象持久化(ORM)类库。NHibernate来源于非常优秀的基于Java的NHibernate关系型持久化工具。从数据库底NHibernate来持久化你的.Net 对象到关系型数据库。NHibernate为你处理这些,远胜于你不得不写SQL去从数据库存取对象。你的代码仅仅和对象关联,NHibernate自动产生SQL语句,并确保对象提交到... 阅读全文
posted @ 2009-12-30 13:58 catch22 阅读(1189) 评论(0) 推荐(0)
摘要:上篇我们学习了Spring.NET的事务机制。回顾一下,实现事务需要在方法上标记[Transaction]。在很多情况下,事务往往与业务分离。Spring.NET提供了事务代理帮我们管理这些事务,我们可以通过TransactionProxyFactoryObject使用声明式事务。在很多情况下TransactionProxyFactoryObject比ProxyFactoryObject易用,因为... 阅读全文
posted @ 2009-12-30 13:57 catch22 阅读(1104) 评论(0) 推荐(0)
摘要:目前有很多种数据访问技术。在.NET FCL中,有三类API可以执行事务管理,分别是ADO.NET、企业服务和System.Transactions。其它的数据访问技术,如对象关系映射(object relational mappers)和结果集映射(result-set mapping)等等的应用也很广泛,每种技术也都有自己的事务管理API。事务管理的代码一般是直接和各种事务API绑定在一起的,... 阅读全文
posted @ 2009-12-30 13:55 catch22 阅读(1052) 评论(0) 推荐(0)
摘要:上篇我学习了Spring.NET的四种通知类型,AOP的实现方案比较复杂,是通过代码实现的。而Spring.NET框架给我们提供了配置的方式来实现AOP的功能。到目前为止,我们已经讨论过使用ProxyFactoryObject或其它类似的工厂对象显式创建AOP代理的方法。如果应用程序需要创建很多AOP代理,比如当需要代理某个服务层的所有对象时,这种方法就会使配置文件变的相当庞大。为简化配置过程,S... 阅读全文
posted @ 2009-12-30 13:51 catch22 阅读(965) 评论(0) 推荐(0)
摘要:上篇我们学习了AOP的基本概念,我们回顾一下上篇提到的Advice(通知):所谓通知是指拦截到joinpoint(连接点)之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,环绕通知。   Spring.NET的通知既可由某个类的所有对象共享,也可由该类型的单个实例独占。共享的通知称为基于类型(per-class)的通知,而独占的通知称为基于实例(per-instance)的通知。  ... 阅读全文
posted @ 2009-12-30 13:48 catch22 阅读(789) 评论(0) 推荐(0)
摘要:上篇我们简单的了解了AOP的应用场景,知道AOP编程的重要性。这篇我们先看一段代码,来开始今天的学习。   回顾与上篇类似的代码:SecurityService类的IsPass判断用户名为“admin”则有权限保存数据。OrderService为保存数据的类,实现IOrderService接口。    public class SecurityService    {   ... 阅读全文
posted @ 2009-12-30 13:46 catch22 阅读(847) 评论(0) 推荐(0)
摘要:AOP即面向切面编程(Aspect Oriented Programming的缩写),是OOP(面向对象编程)的一种延续形式。是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术,它从一个不同于OOP的角度来看待程序的结构:OOP将应用程序分解为一系列表现为继承关系的对象;AOP 则把程序分解为一系列方面(aspects)或者关注点(concerns)。AOP... 阅读全文
posted @ 2009-12-30 13:45 catch22 阅读(940) 评论(0) 推荐(0)
摘要:Spring.NET通过几个专门的接口来控制容器中对象的行为。说到对象的行为无非就要提到对象的生命周期控制。类似在WinForm开发,Form生命周期中,Load方法为Form的载入方法和Dispose方法为Form的销毁方法。Spring.NET都能完美的实现这些需求。      一、生命周期接口  在使用Spring.NET框架的时候通常遇到怎样初始化和销毁非托管资源(如数据库连接)的麻烦,下... 阅读全文
posted @ 2009-12-30 13:43 catch22 阅读(917) 评论(0) 推荐(0)
摘要:多数用户都会将容器中的大部分对象布署为singleton模式。当一个singleton对象需要和另一个singleton对象协作,或者一个非singleton对象需要和另一个非singleson对象协作时,Spring.NET都能很好的处理它们的依赖关系。但是,如果对象的生存周期不同,就可能会产生问题。例如,假设一个singleton对象A要使用一个非singleton(原型)对象B,A中的每个方... 阅读全文
posted @ 2009-12-30 13:42 catch22 阅读(1305) 评论(0) 推荐(0)
摘要:Spring.NET还支持集合类型的注入。而且使用起来也比较方便。   一、ILIst类型  使用<list>元素作为ILIst的标签,value为集合中元素的值。也可以注入对象,甚至关联其它对象,使用 <ref/>元素表示关联的对象,object 属性为所关联对象的id或name。集合可以为空,用<null/>元素来标记。  在<list>元素中设... 阅读全文
posted @ 2009-12-30 13:40 catch22 阅读(853) 评论(0) 推荐(0)
摘要:我们在《打造简易的依赖注入框架(上)》中学习里一个简易的IoC框架。今天我们接着上次的程序,实现带参数构造函数对象的实例和属性的注入。   我们知道可以通过反射获取类的构造函数及参数(GetConstructors方法);可以获取属性和属性的类型(GetProperties方法)。通过Activator的CreateInstance(Type type, params object[] args)... 阅读全文
posted @ 2009-12-30 13:40 catch22 阅读(556) 评论(0) 推荐(0)
摘要:一、属性注入   上篇我们简单提到依赖注入的用途。回顾一下所讲内容,发现在object节点下使用了<property name="Tool" ref="computer"/>。而property 标签正是用来属性注入的。而ref是用来标识是关联到哪个object。而name属性是指属性名。如下:<object id="modernPerson" type="SpringNetIo... 阅读全文
posted @ 2009-12-30 13:39 catch22 阅读(1090) 评论(0) 推荐(0)
摘要:谈到高级语言编程,我们就会联想到设计模式;谈到设计模式,我们就会说道怎么样解耦合。而Spring.NET的IoC容器其中的一种用途就是解耦合,其最经典的应用就是:依赖注入(Dependeny Injection)简称DI,目前DI是最优秀的解耦方式之一。下面我就来谈谈依赖注入的应用场景。   我模拟了三种不同的场景,可以一起学习使用依赖注入的重要性。  下面是应用场景的条件:人类使用工具劳动。  ... 阅读全文
posted @ 2009-12-30 13:38 catch22 阅读(1322) 评论(0) 推荐(0)
摘要:容器中对象的部署分为两种方式:singleton和非singleton(java里叫prototype)。这里的singleton指的是“单例模式”,就是说当一个对象被定义为singleton时,容器中就只会有一个共享的实例,任何时候通过id或别名请求该对象都会返回这个共享实例的引用(也就是说这个对象只会被创建一次)。当使用非singleton,或者说原型模式布署时,每次请... 阅读全文
posted @ 2009-12-30 13:34 catch22 阅读(1610) 评论(0) 推荐(0)
摘要:学过了前面的课程,我们来一起学习Spring.NET的IoC容器对象的创建。   创建对象一般有3种方式:1.构造器创建,2.静态工厂创建,3.实例工厂创建  多数情况下,容器会根据对象定义中的type属性值去直接调用相应类型的某个构造器。另外,容器也可以调用工厂方法来创建对象,这时type属性的值就应该是包含工厂方法的类型(按:而不是要创建的类型,但通过该对象定义的名称获取的则是由工厂方法所创建... 阅读全文
posted @ 2009-12-30 13:16 catch22 阅读(2759) 评论(0) 推荐(0)
摘要:讲了这么多理论,我们来手动实现一个简易的IoC框架的,这样可以加深IoC的理论知识。   一、思路  在我们使用Spring.NET框架的时候,首先需要实例化Spring.NET容器, 然后调用IoC容器IObjectFactory接口中GetObject方法获取容器中的对象。通过这一点就可以告诉我们制作IoC容器需要写一个获取 XML文件内容的方法和申明一个Dictionary<strin... 阅读全文
posted @ 2009-12-30 12:57 catch22 阅读(1791) 评论(0) 推荐(0)
摘要:一、环境下载及安装     到Spring的官方网站下载Spring.NET框架的安装文件(Spring.NET-1.3.0-RC1.exe)。目前Spring.NET最新的版本是1.3。下载并解压后就可以了。  我们使用Spring.NET框架经常用到的一下几个文件:  Common.Logging.dll(必要)  Spring.Core.dll(必要)  Spring.Data.dll  S... 阅读全文
posted @ 2009-12-30 12:36 catch22 阅读(4742) 评论(0) 推荐(0)
摘要:转自:http://tech.ddvip.com/2009-10/1256454418136481.html在学习Spring.NET这个控制反转(IoC)和面向切面(AOP)的容器框架之前,我们先来看一下什么是控制反转(IoC)。   控制反转(Inversion of Control,英文缩写为IoC),也叫依赖注入(Dependency Injection)。我个人认为控制反转的意思是依赖对... 阅读全文
posted @ 2009-12-30 12:30 catch22 阅读(2838) 评论(0) 推荐(2)
摘要:ORACLEUPDATE语句语法与性能分析的一点看法选择自aceplus的Blog关键字ORACLEUPDATE语句语法与性能分析的一点看法出处ORACLEUPDATE语句语法与性能分析的一点看法为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中,--客户资料表createtablecustomers(customer_idnumber(8)notnull,--客... 阅读全文
posted @ 2009-12-30 10:53 catch22 阅读(721) 评论(0) 推荐(0)
摘要:对于递归与迭代的关系,也许很多人都不是很清晰,其实本质上递归与迭代时间复杂度方面是等价的(在不考虑函数调用开销和函数调用产生的堆栈开销),而递归主要是每递归一次,都会在栈中分配函数的空间,造成空间消耗过大,而且是与递归的深度成正比。从实际上说,所有的迭代可以转换为递归,但递归不一定可以转换为迭代。以下为引用: <作者:Enoch Wang 引用自:http://chinawangquan.s... 阅读全文
posted @ 2009-12-28 10:56 catch22 阅读(759) 评论(0) 推荐(0)
摘要:一、质量的相对概念1、多数比较上进的程序员,都希望自己的代码作品是优雅的、高质量的、别人看到能赞赏不已的。但事实上,紧迫的进度压力使程序员没有太多时间思考,匆忙赶出功能后,赶快测试发布赶快交付给客户。因此有人提出需要重构,有人提出各种测试方法,计算“每千行代码缺陷率”,以追求“零缺陷”为目标。总之多数技术人员认为“质量越高越好”... 阅读全文
posted @ 2009-12-23 16:43 catch22 阅读(402) 评论(0) 推荐(0)
摘要:一、R&D概念的分拆搞研发的掏出名片来一般会印上这么个部门:R&D。所谓R&D就是Research & Develop,研究与开发,所以简称研发。我曾经碰到个高人,强调把这两词拆开来单独理解。“研究”就是把一个团队知识之外的知识点弄懂,引入项目中使用;“开发”就是把已经明白的东西做出来。二、为什么多数程序员更喜欢搞研究... 阅读全文
posted @ 2009-12-23 16:25 catch22 阅读(223) 评论(0) 推荐(0)
摘要:软件开发的残酷的现实告诉我们:没有规则的软件开发过程带来的只可能是无法预料的结果。我们中的大多数项目管理人员在其个人简历中纷纷写到:"拥有多年的丰富的项目管理经验",但在实际开发中,"丰富的"管理经验变成了软件开发人员可怕的梦魇。一次次的失败、一次次的返工,她所谓的项目管理经验只不过是再一次的游戏于"无间"(十八层地狱)。一次,在与不少项目管理者的交流中,大家纷纷提到的软件变更带来的可怕影响。但是... 阅读全文
posted @ 2009-12-23 16:24 catch22 阅读(250) 评论(0) 推荐(0)
摘要:软件研发人员考核的十项基本原则作者: 任甲林 来源: 万方数据 软件研发人员的考核一直是软件企业管理的难点笔者在长期的研发管理实践与咨询实践中总结了进行软件研发人员考核的一些基本原则。 (1) 要体现公司的价值观 公司的价值观体现了公司认可什么类型的人员?要挽留哪些人?提倡做什么?对这些人员的认可可以通过具体的考核办法落实下来。比如企业鼓励在某一个业务领域内积累丰富的领域经验,鼓励在某个技术方向... 阅读全文
posted @ 2009-12-23 15:14 catch22 阅读(368) 评论(0) 推荐(0)
摘要:??可能是一个被遗忘的运算符,很少看到有人用它,它的用法很简单却很实用:variable ?? defaultValue相当于variable == null ? defaultValue : variable有了它,一行便能搞定Lazy Evaluation了:使用??之前:Code highlighting produced by Actipro CodeHighlighter (freewa... 阅读全文
posted @ 2009-12-22 18:43 catch22 阅读(422) 评论(0) 推荐(0)
摘要:接着使用复合主键(1)继续:还是那三张表哟!Users表(用户信息表):   UserID char(10) not null primary key, UserName varchar(50)Books表(图书信息表):  BSN char(10) not null primary key, BookName  varchar(50)BorrowRecord表(图书借还登记表):  UserID... 阅读全文
posted @ 2009-12-17 17:16 catch22 阅读(1001) 评论(0) 推荐(0)
摘要:引用:http://blog.csdn.net/liangxunjian/archive/2006/08/11/1048625.aspx主要是关于:<composite-id>元素接受<key-property> 将在使用复合主键(2)中讲到<key-many-to-one>属性映射我目前在实施一个.net项目中,使用了ORM工具,参考了java的hiberna... 阅读全文
posted @ 2009-12-17 17:11 catch22 阅读(1315) 评论(0) 推荐(0)
摘要:Asp.Net MVC 模型(使用LINQ to SQL创建Model类) 这篇教程的目的是解释一种为ASP.NET MVC应用程序创建模型类的方法。在这篇教程中,你会学习到如何利用Microsoft LINQ to SQL创建模型类并执行数据库访问。在这篇教程中,我们创建了一个基本的Movie数据库应用程序。我们尽可能地用最快速和最简单的方法创建Movie数据库应用程序作为开始。我们直接从控制器... 阅读全文
posted @ 2009-12-17 16:53 catch22 阅读(1124) 评论(0) 推荐(1)
摘要:Asp.Net MVC 模型(使用Entity Framework创建模型类) 这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类。这篇教程假设你事先对Microsoft Entity Framework没有任何的了解。读完本篇教程,你将会理解如何使用Entity Framework来选择、插入、更新和删除数据库... 阅读全文
posted @ 2009-12-17 16:48 catch22 阅读(669) 评论(1) 推荐(0)
摘要:Asp.Net MVC 视图(使用TagBuilder类创建HTML Helpers) ASP.NET MVC框架包含了一个有用的实用工具类,叫做TagBuilder类,你可以在创建HTML helpers的时候使用它。TagBuilder类,如其类名所暗示的,允许你轻松地创建HTML标签。在这个简短的教程中,将会为你提供一个TagBuilder类的概览,并且会学习到在创建一个简单的、呈现HTML... 阅读全文
posted @ 2009-12-17 16:38 catch22 阅读(451) 评论(0) 推荐(0)
摘要:Asp.Net MVC 视图(显示数据库数据表格) 在这篇教程中,我示范了显示一系列数据库记录的两个方法。我演示了在一个HTML表格中格式化一系列数据库记录的两个方法。首先,我演示了如何直接在视图中格式化数据库记录。接下来,我示范了如何在格式化数据库记录时利用部分类。1.1创建模型类我们将要显示Movies数据库表中的一系列记录。Movies数据库表包含下面的列:Column NameData T... 阅读全文
posted @ 2009-12-17 16:28 catch22 阅读(1597) 评论(0) 推荐(0)
摘要:Asp.Net MVC 视图(创建自定义HTML Helpers) 1.创建自定义HTML Helper本篇教程的目的是为你演示如何创建自定义HTML Helper,你可以在MVC视图中使用它们。通过利用HTML Helpers,你可以减少大量HTML标签的输入,你必须输入这些标签来创建标准的HTML页面。在这篇教程的第一部分,我描述了一些包含在ASP.NET MVC中的现有的HTML Helpe... 阅读全文
posted @ 2009-12-17 16:24 catch22 阅读(378) 评论(0) 推荐(0)
摘要:Asp.Net MVC 路由原文链接:http://www.asp.net/learn/mvc/在这篇教程中,我将为你介绍每个ASP.NET MVC应用程序都具有的一个重要功能,称作ASP.NET路由(ASP.NET Routing)。ASP.NET路由模块负责将即将到来的浏览器请求映射到特定的MVC控制器动作。学完这篇教程之后,你将会理解标准的路由表是如何将请求映射到控制器动作的。1. 理解默认... 阅读全文
posted @ 2009-12-17 15:30 catch22 阅读(753) 评论(0) 推荐(2)
摘要:原文链接:http://www.asp.net/learn/mvc/tutorial-04-cs.aspx这篇教程的目的是为你提供一个对ASP.NET MVC视图、视图数据和HTML Helpers的简短介绍。读完本文之后,你应该能够理解如何创建新的视图、将数据从控制器传递给视图,并且使用HTML Helper在视图中生成内容。1. 理解视图ASP.NET MVC与ASP.NET或者动态服务器页(... 阅读全文
posted @ 2009-12-17 14:58 catch22 阅读(337) 评论(0) 推荐(0)
摘要:原文链接:http://www.asp.net/learn/mvc/这篇教程探索了ASP.NET MVC控制器(controller)、控制器动作(controller action)和动作结果(action results)这几个主题。在读完本篇教程之后,你将会理解控制器如何控制访问者与ASP.NET MVC网站进行交互的方式。1.理解控制器MVC控制器负责响应对ASP.NET MVC网站发起的... 阅读全文
posted @ 2009-12-17 14:18 catch22 阅读(777) 评论(0) 推荐(0)
摘要:原文链接:http://www.asp.net/learn/mvc/tutorial-02-cs.aspx这篇教程将为你提供ASP.NET MVC模型、视图、控制器的高层次概览。换言之,它解释了ASP.NET MVC中的“M”、“V”和“C”。在读完本教程之后,你应该能够理解ASP.NET MVC应用程序中的各个不同部分是如何... 阅读全文
posted @ 2009-12-17 14:13 catch22 阅读(1438) 评论(0) 推荐(0)
摘要:MVC其实是一种设计思想,包括了设计模式中的策略、观察者等,主要优点在于解耦,用MVC搭建的程序易维护,易扩展,易测试。以下转自代震军BLOG: 一. MVC是谁提出的 模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion... 阅读全文
posted @ 2009-12-17 10:55 catch22 阅读(633) 评论(0) 推荐(0)
摘要:以下转自MSDN:HttpApplication 类的实例是在 ASP.NET 基础结构中创建的,而不是由用户直接创建的。使用 HttpApplication 类的一个实例来处理其生存期中收到的众多请求。但是,它每次只能处理一个请求。这样,成员变量才可用于存储针对每个请求的数据。应用程序引发的事件可以由实现 IHttpModule 接口的自定义模块处理,也可以由 Global.asax 文件中定义... 阅读全文
posted @ 2009-12-16 16:40 catch22 阅读(508) 评论(0) 推荐(0)
摘要:转自:http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-In-CSharp.aspxC# 中的委托和事件引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和... 阅读全文
posted @ 2009-12-16 16:11 catch22 阅读(382) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/jimmyzhang/archive/2007/11/25/971878.htmlAsp.Net 构架(HttpModule 介绍) - Part.3引言Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进... 阅读全文
posted @ 2009-12-16 09:25 catch22 阅读(283) 评论(0) 推荐(0)
摘要:转自:http://www.tracefact.net/Asp-Net-Architecture/Introduction-to-Http-Handler.aspxHttp Handler 介绍引言在 Part.1 Http请求处理流程 一文中,我们了解了Http请求的处理过程以及其它一些运作原理。我们知道Http管道中有两个可用接口,一个是IHttpHandler,一个是IHttpModule,... 阅读全文
posted @ 2009-12-16 09:17 catch22 阅读(186) 评论(0) 推荐(0)
摘要:转自:http://www.tracefact.net/Asp-Net-Architecture/Http-Request-Processing-Flow.aspxHttp 请求处理流程引言我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net。他们耐心、细致地告诉你如何一步步拖放控件、设置控件属性、编写CodeBehind代码,以实现某个特定的功能。这种做法... 阅读全文
posted @ 2009-12-16 09:13 catch22 阅读(312) 评论(0) 推荐(0)