- 博客(33)
- 资源 (13)
- 收藏
- 关注
原创 K2工作流学习系列(三)--- K2介绍
经过三天的培训我深刻地了解了K2,当然局限于K2是什么,对于K2怎么做还处于未知阶段。 K2 blackpearl是一款BPM的解决方案,所谓解决方案一般在技术上具有平台化,对于K2来说平台化就是所有的流程均只需建立在K2服务器上并运行,无需嵌入到客户端,当然流程的触发还是需要客户端自定义代码来触发的。 K2的英文官网是http://www.k2.com/ 帮助
2015-03-22 21:40:03 7398 1
原创 K2工作流学习系列(一)--- BPM流程介绍及场景
最近整个部门在学习K2工作流,需要培训三天,已经过去两天了。虽然老师讲得有气无力,我们听得云里雾里,但是总体上对于K2的开发、部署、应用场景有了大致的方向,剩下的具体应用准备通过阅读官网文档来了解。在学习官网文档前,首先了解了BPM相关的知识。主要是BPM介绍、BPM与传统OA的区别、BPM应用场景。 BPM介绍 BPM即Business Process Manag
2015-03-19 20:01:06 15636
原创 Castle学习系列(十二)---Windsor和DynamicProxy实现AOP
AOP就是可以在一个已有的类方法中动态地嵌入代码,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能。前提必须是被切入的类是通过IOC容器来控制的。 Castle通过DynamicProxy来实现动态代理每一个切面方法均需要实现接口IInterceptor。 下面通过代码的方式来学习下AOP,新建一个切入类public class
2015-03-15 16:06:47 3171 2
原创 Castle学习系列(十一)---Windsor性能检测
Windsor提供了容器性能检测的功能,只需在程序启动的时候后添加一下代码var diagnostic = LifecycledComponentsReleasePolicy.GetTrackedComponentsDiagnostic(_container.Kernel);var counter = LifecycledComponentsReleasePolicy.GetTracked
2015-03-15 15:56:45 2035
原创 Castle学习系列(十)---Windsor框架类注册
上篇已经学习了Windsor的快速入门,框架的配置只需要两步,本篇学习下这个两步配置针对特定场景的自定义的配置,我只学习了代码的配置,对于XML的配置可以参考官方文档http://docs.castleproject.org/Windsor.XML-Registration-Reference.ashx。 安装的配置 安装的配置比较简单,无非是寻找安装类,并执行
2015-03-15 15:19:44 4249
原创 Castle学习系列(九)---Windsor框架快速入门
Windsor是Castle提供的一个IOC框架,使用非常简单,支持批量注册。开始快速入门 首先引用dll 两个dll版本均是最新的3.3.0.0新建两个接口文件IPrinter(打印接口)和ICharge(收费接口) public interface IPrinter { void RegPrint(int regID);
2015-03-15 14:54:24 5591
原创 Quartz.NET学习系列
Quartz.NET是一个开源的任务调度引擎,对于周期性的任务,持续性的任务提供了很好的支持,并支持持久化,集群等功能。一下是我这个对于Quartz.NET的学习记录:Quartz.NET学习系列(一)--- 快速入门Quartz.NET学习系列(二)--- 简单触发器Quartz.NET学习系列(三)--- Cron触发器Qua
2015-03-15 09:56:17 2011 1
原创 .net reactor 学习系列
.net reactor是一款不错性价比的.net 代码保护工具,功能有.net代码的混淆,整合,字符串加密等。一下是个人的学习系列:.net reactor 学习系列(一)---.net reactor介绍.net reactor 学习系列(二)---.net reactor界面各功能说明.net reactor 学习系列(三)---.net
2015-03-14 21:46:18 1683
原创 Quartz.NET学习系列(十二)--- Quartz.NET集群
Quartz.NET提供了集群的配置,这个集群并不能达到负载均衡的效果,而仅仅提供了故障转移的功能,主要场景是:两个节点的Quartz.NET任务服务器同时连接到另一个节点的数据库服务器,当一个任务服务器宕机时,另一个任务服务器会启动。 集群的主要配置如下:properties["quartz.jobStore.clustered"] = "true";总的代码如下:
2015-03-14 21:29:37 3159
原创 Quartz.NET学习系列(十一)--- Quartz.NET持久化及客户端服务器模式
持久化 Quartz.NET如果不进行数据库相关配置,则默认的执行模式为内存模式,优点是执行速度快,确定就是数据无法存储,宕机了需要重新开始。 持久化只需要做如下配置(以SQLServer为例) NameValueCollection properties = new NameValueCollection();
2015-03-14 21:17:21 3633
原创 Quartz.NET学习系列(十)--- 触发器执行优先级
在使用Quartz.NET的时候可能会碰到这样一种情况,多个触发器触发同一个任务时,当多个触发器触发的时间相互冲突时,也就是在同一时间触发同一个任务,这时候就需要有一个触发的优先级了,即由哪个触发器来触发,如果不设置优先级的话,Quartz.NET会按照默认的方式处理。设置优先级的代码如下: public class TriggerEchoJob : IJob {
2015-03-14 21:05:06 2986
原创 Quartz.NET学习系列(九)--- XML任务配置
Quartz.NET除了可以代码定义触发器、任务之外,还可以由XML定义这两个对象。其实Quartz.NET的理想架构是:计划管理容器作为服务器运行在服务机上,而触发器、任务的添加可通过自定义任务管理软件向服务器上添加特定的任务计划。这时就要求数据的持久化以及服务器的容错性了,后面几篇文章将会介绍持久化以及集群相关内容。VS的XML只能提示 第一篇已经将Quartz.NE
2015-03-14 20:35:48 4592
原创 Quartz.NET学习系列(八)--- 任务监听器
Quartz.NET提供了触发器监听接口、任务监听接口、计划监听接口,基本上不怎么使用,除了任务监听接口有使用场景外,其它的监听器目前还未找到使用场景。 任务监听接口需要继承自IJobListener,应用场景可以是:执行完一个任务,自动切换执行另一个任务。具体代码如下: public class SimpleJob1 : IJob { private
2015-03-14 20:30:32 2719
原创 Quartz.NET学习系列(七)--- 日历式任务
Quartz.NET除了支持前面几篇讲的持续时间式的任务外,还支持日历式的任务,日历式的任务主要应用场景比如一些节假日或者特定纪念日的任务执行或排除。主要通过AnnualCalendar 类来控制。代码如下: public class SimpleJob : IJob { private static readonly ILog log = LogManager
2015-03-14 20:20:20 2253
原创 Quartz.NET学习系列(六)--- 中断任务
Quartz.NET的任务除了继承IJob之外,还可以继承IInterruptableJob。IInterruptableJob为可中断任务,相对于IJob多了个Interrupt接口实现,用于捕获中断事件,当某个任务中断时,可调用Interrupt进行实际的业务处理。 具体代码如下: public class DumbInterruptableJob :
2015-03-14 20:10:41 3551
原创 Quartz.NET学习系列(五)--- 失败恢复和异常处理
Quartz.NET为了提高程序的容错性,加入了失败恢复和异常处理的机制。失败恢复 失败恢复是Quartz.NET触发器的方法,用于指示失败之后的操作 ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create() .Wi
2015-03-14 19:55:42 6074
原创 Quartz.NET学习系列(四)--- 数据注入
Quartz.NET中任务是需要额外新建一个类继承IJob的,方法入参和出参都是已经规定好了的,这时要想传额外参数就得借助Quartz.NET的内置的对象IJobExecutionContext通过代码JobDataMap data = context.JobDetail.JobDataMap;获取JobDataMap键值对象就可以读写注入的参数了。总的代码如下: p
2015-03-14 19:43:58 3425 3
原创 Quartz.NET学习系列(三)--- Cron触发器
Cron触发器是使用Cron表达式来配置任务的时间的。Cron表达式介绍 Cron表达式总共有7个值,其中一个可选,具体如下(摘自官方文档):值是否必须允许的值范围允许的字符SecondsYES0-59, - * /MinutesYES0
2015-03-14 19:06:34 1822
原创 Quartz.NET学习系列(二)--- 简单触发器
Quartz.NET的触发器比较多,但是常用的有两个分别是SimpleTrigger和CronTrigger,本篇学习下SimpleTrigger SimpleTrigger 的创建方式如下:ISimpleTrigger trigger = (ISimpleTrigger) TriggerBuilder.Create()
2015-03-14 18:46:20 1992
原创 Quartz.NET学习系列(一)--- 快速入门
Quartz.NET是一个任务调度的开源框架,官网地址是http://www.quartz-scheduler.net/index.html 帮助文档地址是http://www.quartz-scheduler.net/documentation/index.html目前Quartz.NET的最新版本是2.3.1,本系列以后的文章都是基于这个版本的。先从官网下载2.3.1版本的rar,可在ra
2015-03-14 17:08:01 3293
原创 Castle学习系列
最近在学习Castle框架的一些应用,发现Castle是一个比较全面的框架,包括ORM、IOC、MVC等一系列模型的实现,现在打算一一学习下Castle的一些组件的应用。ActiveRecord学习 (例子下载:http://yunpan.cn/cZsdI3t7jdY9e 访问密码 f742)Castle学习系列(一)---ActiveRecord基础环境配置
2015-03-10 22:27:56 2056
原创 Castle学习系列(八)---ActiveRecord 执行的SQL监测
官方文档推荐Log4net来记录ActiveRecord执行过程中产生的SQL,但我准备使用NHibernate Profiler工具进行SQL记录。NHibernate Profiler 不但记录了SQL语句,还记录了执行SQL的执行时间。 首先进行Profiler的环境配置,先从官网下载NHibernate Profiler。如果是测试环境下,测试客户端需要引用Hiberna
2015-03-10 18:46:52 1331
原创 Castle学习系列(七)---ActiveRecord HQL介绍
ActiveRecord 中HQL也就是NHibernate中的HQL,可用来查询实体。 简单的HQL写法如下:public static Post[] GetPosts(int id){ SimpleQuery q = new SimpleQuery(@"from Post p where p.OwnerBlog.id = ?", id); retur
2015-03-10 18:37:32 1251
原创 Castle学习系列(六)---ActiveRecord属性校验
ActiveRecord提供了字段的一些基础的验证配置。要想使用验证的配置,类必须继承自ActiveRecordValidationBase。首先看看如下代码:[ActiveRecord]public class Customer : ActiveRecordValidationBase{ private String contactName; private String
2015-03-09 22:54:46 981
原创 Castle学习系列(五)---ActiveRecord事务
ActiveRecord中使用SessionScope或者TransactionScope来保证事务性(均是隐式的方式) 代码分别如下:SessionScopeusing (new SessionScope()){ Blog blog = new Blog(); blog.Name = "Eye_cng的博客"; blog.Create(
2015-03-09 22:24:05 1611
原创 Castle学习系列(四)---ActiveRecord映射配置
本章只学习下ActiveRecord的一些常见的映射配置,比如主键配置、属性配置、字段配置、一对多、多对多等配置,像继承、复合主键自己可参考官网文档,地址:http://docs.castleproject.org/Active%20Record.MainPage.ashx。 一些映射的属性描述可以查看博客http://terrylee.cnblogs.com/archive/2
2015-03-09 18:14:39 1298
原创 Castle学习系列(三)---ActiveRecord生命周期
ActiveRecord充分封装了NHibernate,要想充分地使用ActiveRecord必须要了解NHibernate的持久化相关知识。了解Sessions(会话) NHibernate使用session来管理实体的相关操作,ActiveRecord封装了NHibernate的session管理代码,所以有必要了解下NHibernate的session
2015-03-08 19:31:05 1419
原创 Castle学习系列(二)---ActiveRecord普通CRUD
上一篇已经介绍了ActiveRecord的基础配置,系统初始化的时候需要初始化基础配置,连接到数据库,之后才能进行增删改操作。本章学习下具体的增删改步骤:1.创建数据库CREATE TABLE [dbo].[Users] ( [LogonID] [int] IDENTITY (1, 1) NOT NULL , [LogonName] [varchar] (40) N
2015-03-08 19:06:57 1282
原创 Castle学习系列(一)---ActiveRecord基础环境配置
接下来准备学习下Castle框架,官网是http://www.castleproject.org/,本系列文章是建立在官网帮助文档的基础之上的。 Castle最早在2003年诞生于Apache Avalon项目,目的是为了创建一个IOC(控制反转)框架。发展到现在已经有4个组件了,分别是ActiveRecord(ORM组件)、Windsor(IOC组件)、DynamicProxy(
2015-03-08 15:50:27 3837
原创 .net reactor 学习系列(五)---.net reactor针对De4Dot脱壳工具的应对
De4Dot是一个专门反混淆.net程序的一个工具,支持对于以下工具混淆过的代码的清理:Agile.NET (aka CliSecure)Babel.NETCodeFortCodeVeilCodeWallCryptoObfuscatorDeepSea ObfuscatorDotfuscator.NET ReactorEazfuscator.NETGoliath.NETILProtect
2015-03-03 18:57:51 10812
原创 .net reactor 学习系列(四)---.net reactor应用场景
前面已经学习了.net reactor一些基础知识,现在准备学习下实际的应用场景,只是简单的保护和许可证发放场景。如果想应用更高级的场景比如自动化程序许可证的发放及自定义客户端的过期提示等等就需要自己根据实际的需求在掌握基础知识的前提下自己思考了。 首先操作保护程序功能: 打开需要保护的程序:如下图 然后点击左边快捷面板的Protect
2015-03-02 19:11:23 3905 1
原创 .net reactor 学习系列(三)---.net reactor代码自动操作相关保护功能
接上篇,上篇已经学习了界面的各种功能以及各种配置,这篇准备学习下代码控制许可证。 代码控制许可证的意思就是软件经过.net reactor保护后,到期时客户端就需要购买许可证,这时软件开发商就需要生成许可证等操作,这个操作可以由代码控制来达到自动化的效果。当然不仅仅是生成操作,还包扩获取许可证的信息,作废许可证,激活许可证等操作。 在安装目录下...\.NET
2015-03-01 21:58:17 5727
原创 .net reactor 学习系列(二)---.net reactor界面各功能说明
安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.chm,目前没有中文版本,里面详细介绍了.net reactor的各功能及使用场景。本系列文章是基于此帮助文档来写的。.net reactor主要有三大面板:菜单面板:- 文件就是普通的创建操作环境,打开操作环境,加载程序集等操作- 运行保护
2015-03-01 12:23:14 16868 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人