2012年7月23日

Apache2.2+Tomcat7.0整合配置详解

摘要: Apache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,可以在 Windows、Unix、Linux 等操作系统中运行是最流行的Web服务器软件之一。Apache 反应速度快,运行效率高,但只支持HTML等静态页面(加载插件后也可支持PHP页面)。 Apache Tomcat 是由 Apache 软件基金协会与 Sun 公司联合开发的一款Web服务器,它除了支持HTML等静态页面外,还支持JSP、Servlet 。 在相同的运行环境下,Tomcat 对静态页面的反应速度没有 Apache 灵敏,整合 Apache 与 Tomcat 能 阅读全文

posted @ 2012-07-23 17:54 风尘浪子 阅读(65521) 评论(4) 推荐(9) 编辑

2012年6月29日

软件项目管理流程总结

摘要: 项目管理与软件开发的质量、效率、最终成果息息相关,本文主要讲述软件项目的风险评估、成本预算、客户沟通、需要分析、开发管理、成品交付等多个流程。 在现今国内的项目的管理形式十分零乱,对管理欠缺重视,以致很多项目因为失去管理而最终折腰。 很多的实战形人才只重视于开发环节,而对其他的流程欠缺认识(包括本人),因而导致项目欠缺有条理的、阶段化的管理。 本人是一个典型的只重视开发的管理者,在多次的教训中深刻地体会到管理的重要性,因而以此文章对项目管理作出一个总结。 阅读全文

posted @ 2012-06-29 13:24 风尘浪子 阅读(96219) 评论(35) 推荐(28) 编辑

2012年5月17日

.NET基础篇——Entity Framework 数据转换层通用类

摘要: 本文将为您介绍一个对应Entity Framework的 CRUD 通用类,相比起以往的SqlCommand操作,Entity Framework更体现出映射的灵活性。以往的操作中,即使开发出一个通用类,CommandText 通常都需要使用手工输入,特别是重复的Update命令操作中,往往令人不厌其烦。通过Entity Framework可以把CRUD更高度地集中在一个通用类,令开发变得更加简单。 阅读全文

posted @ 2012-05-17 14:16 风尘浪子 阅读(14458) 评论(18) 推荐(13) 编辑

2012年3月22日

C#综合揭秘——深入分析委托与事件

摘要: 本章主要介绍了委托(Delegate)的使用,解释委托的协变与逆变,以及如何使用 Delegate 使 Observer(观察者)模式的使用变得更加简单。 而事件(Event)属于一种特殊的委托,最后,本文还介绍了匿名方法,泛型委托Predicate,Action,Func 的来由,以及 Lambda 表达式的使用方式。 委托对象是一个派生自 System.MultcastDelegate 的类,它能通过 Invoke 方式进行同步调用,也可以通过 BeginInvoke,EndInvoke 方式实现异步调用。 阅读全文

posted @ 2012-03-22 11:04 风尘浪子 阅读(70405) 评论(42) 推荐(81) 编辑

2012年3月6日

C#综合揭秘——细说进程、应用程序域与上下文之间的关系

摘要: 本文主要是介绍进程(Process)、应用程序域(AppDomain)、.NET上下文(Context)的概念与操作。一个进程内可以包括多个应用程序域,也有包括多个线程,线程也可以穿梭于多个应用程序域当中。但在同一个时刻,线程只会处于一个应用程序域内。线程也能穿梭于多个上下文当中,进行对象的调用。虽然在一般的开发当中这三者并不常用,但熟悉三者的关系,深入了解其作用,对提高系统的性能有莫大的帮助。在本篇最后的一节当中将会介绍到三者与线程之间的关系,希望对多线程开发人员能提供一定的帮助。 阅读全文

posted @ 2012-03-06 09:36 风尘浪子 阅读(48704) 评论(61) 推荐(78) 编辑

2012年3月1日

先睹为快:Visual Studio 11测试版已于2.29在微软官方网站正式发布

摘要: 在2011的下半年,Visual Studio 11就已经呼之欲出,在2012年的2月29日,微软官方网站正式发布了VS11的测试版。 VS11中使用了Framework4.5,与Framework4.0相比,没有发生太大的改变,只是对功能进行了优化。 下载地址:http://www.microsoft.com/visualstudio/11/zh-cn/downloads 单单一个安装包就需要1.7G左右,安装旗舰装大约需要7.6G的空间,安装时间可能比较长,可需要耐心等待喔。 阅读全文

posted @ 2012-03-01 17:04 风尘浪子 阅读(12131) 评论(43) 推荐(18) 编辑

2012年2月8日

C#综合揭秘——细说多线程(下)

摘要: 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel。其实合理使用I/O线程在通讯项目或文件下载时,能尽量降低IIS中的压力。 并行编程是Framework4.0中极力推广的异步操作方式,更值得更深入地学习。 阅读全文

posted @ 2012-02-08 15:38 风尘浪子 阅读(52057) 评论(67) 推荐(64) 编辑

2012年2月7日

C#综合揭秘——细说多线程(上)

摘要: 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel。其实合理使用I/O线程在通讯项目或文件下载时,能尽可能地减少IIS压力。 并行编程是Framework4.0中极力推广的异步操作方式,更值得更深入地学习。 阅读全文

posted @ 2012-02-07 15:17 风尘浪子 阅读(144016) 评论(107) 推荐(161) 编辑

2012年1月10日

反流程升职记

摘要: 正所谓创业难,守业更难,在创业后,必须密切观察市场的走势,制定企业长期的发展路线,那企业才能得到迅速的发展与壮大。其实为啥这是 “反流程” 升职记,就是因为 “升职” 不应该只是等待,而应该是自己争取。“命运” 不应该由天来控制,而应该由自己去创造。“升职” 并不是一个已经有的流程,而是由我们自己的努力而创造的 “奇迹” 。 阅读全文

posted @ 2012-01-10 10:55 风尘浪子 阅读(6733) 评论(27) 推荐(24) 编辑

2012年1月5日

C#综合揭秘——细说事务

摘要: 事务是在数据层、服务层、业务逻辑层多处地方都会使用到的东西,在本篇文章将会为大家一一细说。在软件系统当中可以看到无论在数据库、Web服务、WCF、文件系统都存在着数据参与到事务运作当中,我们把管理这些数据的工具称为资源管理器RM(Resources Manager)。而事务管理器TM(Transaction Manager)就是协调多个资源管理器的工作,保证数据完整性的工具。 阅读全文

posted @ 2012-01-05 10:23 风尘浪子 阅读(38702) 评论(51) 推荐(62) 编辑

2011年12月12日

结合领域驱动设计的SOA分布式软件架构

摘要: 领域驱动设计DDD的总体结构,Repository层使用ORM映射或SQL命令等方式把持久化数据转化为领域对象,然后根据业务逻辑设计对应领域层服务Domain Service 。接着应用层进行操作上的协调,利用Repository、领域模型、领域层服务Domain Service 完成业务需要,再通过数据转换器把领域对象Domain Object转化为数据传输对象DTO。最后,利用远程通讯技术把应用层的服务(Application Service)对外开放。注意留意的是SOA系统中,UI表现层与Application Service应用层服务是实现分离的,表现层可以同 阅读全文

posted @ 2011-12-12 09:49 风尘浪子 阅读(31444) 评论(77) 推荐(60) 编辑

2011年11月24日

.NET基础篇——利用泛型与反射更新实体(ADO.NET Entity Framework)

摘要: 自从ADO.NET Entity Framework面世以来,受到大家的热捧,它封装了大量代码生成的工具,用户只需要建立好实体之间的关系,系统就是会为用户自动成功了Add、Delete、CreateObject、Attach、ToList......等等方法,这些方法基本上已经包含获取、删除、插入等基本方法,使用起来非常方便。只是在实体的更新上,由于LINQ面向的是泛型对象T,所以每个对象的更新方法都要由用户自动编辑。有见及此,下面在下利用反射方法,创建了一个更新工具,此工具可以更新ObjectContext里面的任意一个实体或者多个关联实体。 阅读全文

posted @ 2011-11-24 15:15 风尘浪子 阅读(14293) 评论(16) 推荐(7) 编辑

2011年11月22日

.NET基础篇——反射的奥妙

摘要: 反射是一个程序集发现及运行的过程,通过反射可以得到*.exe或*.dll等程序集内部的信息。使用反射可以看到一个程序集内部的接口、类、方法、字段、属性、特性等等信息。在System.Reflection命名空间内包含PropertyInfo,MethodInfo,FieldInfo,MemberInfo,EventInfo,ParameterInfo多个反射常用的类。 阅读全文

posted @ 2011-11-22 12:08 风尘浪子 阅读(23394) 评论(16) 推荐(23) 编辑

2011年10月14日

WCF揭秘——自定义绑定

摘要: 当预定义的绑定无法满足用户需求时,可以使用CustomBinding类开发自定义绑定,该类存在于System.ServiceModel.Channels命名空间。用户可以根据需要绑定以下属性: 事务(TransactionFlowBindingElement类)、可靠性会话(ReliableSessionBindingElement 类)、安全( SecurityBindingElement 类)、流安全、单工双工工作模式、信息编码、传输绑定等,其中信息编码和传输绑定元素是自定义绑定的必要属性,其他属性用户可根据需求制定。 阅读全文

posted @ 2011-10-14 11:44 风尘浪子 阅读(8044) 评论(3) 推荐(5) 编辑

2011年9月9日

.NET基础篇——分部类和分部方法

摘要: 根据微软的定义,分部类就是“将类或结构、接口或方法的定义拆分到两个或多个源文件中。 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来”。在使用分部类的时候,必须为类加入partial的关键字,注意每个类的可访问性必须一致,其中一类为public,其他类也必须为public。如果其中一个类为抽象类,那合并后整个类都将被视为抽象类,其中一个类为密封类,那合并后整个类都将视为密封类。在页面类、DataSet里面你经常可以发现分部类的身影,当你用到Entity Framework的时候,你会发现每个映射生成的对象都是使用分部类的方式生成的,分部类似乎早已 阅读全文

posted @ 2011-09-09 15:13 风尘浪子 阅读(9752) 评论(5) 推荐(4) 编辑

2011年8月8日

WCF揭秘——可靠性会话功能

摘要: Windows Communication Foundation (WCF) 可靠性会话是一个如 WS-ReliableMessaging 协议所定义的 SOAP 可靠消息传递的实现。它在绑定层保证消息只会被传送一次,并能确定消息之间的传输顺序。它的特性在于保证了传输过程中消息不会丢失或者错位,在连接掉线的时候,它会重新连接服务器,连接次数可在配置文件中设定,当在连接失败的时候,能自动释放对话所占用的资源。 系统有多个绑定支持可靠性会话功能:wsHttpBinding、wsDualHttpBinding、wsFederationBinding、netTcpBinding 阅读全文

posted @ 2011-08-08 11:30 风尘浪子 阅读(8650) 评论(4) 推荐(14) 编辑

2011年8月3日

WCF揭秘——共享数据契约

摘要: 当客户端引用WCF服务时,必须为服务定义一个唯一的命名空间。在默认情况下,这个服务中所用到的类会被导入到这个命名空间内。这样,在不同的服务内引用同一个数据契约时就会遇到一个问题:在客户端,同一个数据契约被导入到在不同的命名空间中,无法实现转换。从Visual Studio 2008开始,系统为客户提供了“共享数据契约”这一功能。首先把需要共享的数据契约包含在一个程序集中,生成一个Model.dll文件。在客户端引用这一程序集,在添加服务引用时,选择"高级"—>"重新使用引用的程序集中的类型(A)"—>"重新使用所引用的指定程序集中的类型(S)" 阅读全文

posted @ 2011-08-03 17:26 风尘浪子 阅读(3001) 评论(2) 推荐(0) 编辑

javascript摘要——为file标签的name属性赋值

摘要: 关于FileUpload的赋值问题,由于FileUpload经过编译后,最后生成file标签。而在 HTML 文档中 ,file标签是浏览器向服务器发送选中文件的。该元素有一个 value 属性,保存了用户指定的文件的名称,为安全起见,file标签的value 属性是只读的,不允许程序员修改它的值,并且HTML value 属性也会被忽略。所以,当数据库记录下文件在客户端的地址,需要为file标签的value属性赋值时,就会出现问题。经过多翻查询,最后在下决定使用“隐藏标签”的方法来实现这些功能。首先在页面添加一个text标签,一个button标签,一个file标签,并把file标签的sytle属 阅读全文

posted @ 2011-08-03 15:41 风尘浪子 阅读(9522) 评论(3) 推荐(3) 编辑

2011年6月8日

分享8年开发经验,浅谈个人发展经历,明确自己发展方向

摘要: 很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML、DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容易找到工作,收入比普通的工作还要高一些,所以成为了很多高校毕业生的选择。如果您只是抱着这样一个心态来入行的话,那阁下可真的要小心。因为干IT这一行竞争本来就比较激烈,特别是页面设计这方面,能够开发的人很多,所以为了节省成本在大部分公司都会在需要的时候才招聘这类人员,在没有订单的时候一些小公司还可能找各类的借口或者以降薪的手段去开除这类员工。而在招聘信息上常常会看到“招聘页面设计师,条件:30岁以下……欢迎应界毕业生前来应聘”这样一条,因为这一类工员对技术 阅读全文

posted @ 2011-06-08 16:31 风尘浪子 阅读(26740) 评论(190) 推荐(135) 编辑

2011年5月31日

JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯

摘要: 在.NET Remoting与RMI通信中同时存在一个弊端,那就是对开发语言的限制,无论是使用哪一种通讯方式,服务器与客户端都必须支持同一种开发语言。通讯过程中不能跨越开发语言的限制,这是一个人令人懊恼的消息。JNBridge是一种领先的JAVA与.NET互操作的的产品,凭借JNBridge技术,Java和.NET代码无需交叉编译器就可以实现对象共享。所有Java代码运行在JVM上,而.NET代码则运行在CLR上。在该方案下,JVM和CLR可以运行在不同的机器上,也可以运行在一台机器的不同进程上,甚至还能运行在相同的进程的不同应用程序域上。经历多年的发展,JNBridg 阅读全文

posted @ 2011-05-31 14:43 风尘浪子 阅读(11724) 评论(13) 推荐(13) 编辑

导航