摘要: 欢迎使用WinServiceTask,注意:此框架针对开发人员。源代码地址:http://wstask.codeplex.com/这是一个作业调试框架,类似于Quartz.Net一、功能摘要:1. 启动触发时间采用开源的Quartz.Net项目的Cron表达式:"0 0 12 * * ?" 每天中午12点触发;2. 多线程运行各任务,互不干扰;3. 自动监视配置文件,配置文件更改后服务重启;4. ...阅读全文
posted @ 2010-11-23 10:26 一线风 阅读(669) 评论(6) 编辑
摘要: 2009新年贺岁版- 牛气冲天下载演示地址:http://csblog.cszi.com/技术特点说明:----------------------------------------------------------------------------------1. 经典N层的原创架构设计;2. 输出XML原始数据+XSLT模板生成标准的XHTML页面显示的方式,主题更改更容易,更方便;3....阅读全文
posted @ 2009-01-14 11:00 一线风 阅读(1886) 评论(3) 编辑

欢迎使用WinServiceTask,注意:此框架针对开发人员。

源代码地址:
http://wstask.codeplex.com/

这是一个作业调试框架,类似于Quartz.Net 

一、功能摘要:


1. 启动触发时间采用开源的Quartz.Net项目的Cron表达式:"0 0 12 * * ?" 每天中午12点触发;
2. 多线程运行各任务,互不干扰;
3. 自动监视配置文件,配置文件更改后服务重启;
4. 配置Tasks.config中可以引用公用的资源;
5. 具体任务中可以引用公有资源,并加入本任务对应的相关参数;
6. 具体任务配置中加上Settings设置,方便加入一些配置信息,如果还是不能满足,那么就要自定义Extend的扩展了。

 

二、运行机制:


1. 每个任务做为一个独立的运行线程 隐喻:工人
2. 服务本身做为一个独立线程 隐喻:监督工人
3. 监督工人每隔 N 秒轮询一次任务,如发现任务的触发时间小于间隔N 即创建该任务并且启动该任务。
4. 启动后的任务根据启动时间于特定时间执行任务。
5. 工人工作完本身任务后自动停止。待下一轮监督工人查看时清除任务对象。

三、任务驱动UML图

UML类图


四、项目内容:
1. support 调用的一些外部类库
2. CS.Scheduling.Framework 任务调度框架
3. CS.Scheduling.NUnitTests 一些测试,这个随便写的
4. CS.Task.DataTransfer 一个数据转存的任务示例(DataTableToDataTable已经完成)
5. CS.WinServiceManager WindwosService的服务管理器,这个可以算是一个分支了。用来安装和管理实现本框架的AppForm。 
6. CS.WinServiceTask WindsService的实现示例,该Demo直接调用任务调度框架。

五、任务实现代码:
1. 参见CS.Task.DataTransfer.TaskDemo的示例实现及CS.Task.DataTransfer.DataTableToDataTable实用实现
2. 继承TaskProvider类后,重写protected override Result Work() 即可。
3. 如果自已扩展了Extend节点,则要重写public override void InitExtend()方法
4. 具体备置可参见Tasks.config文件

六、WindService的调试:
1. 方法一:打开控制台,拖入CS.WinService.Demo的执行程序(该程序还是WinService)加上任一参数 如:-t 后回车
2. 方法二:通过CS.WinServiceManager安装服务。启用UDP监视器查看即。

七、更新列表:
----udpate:2010-07-07---To:1.3.1 Beta2-----
1. 配置初始化功能
2. 明确补全功能,注意:补全功能是按执行结果的XML文件里的最后成功执行时间来计算下一个周期点的。修改补全时间时必须停止服务(肯定是手动大改动)。
3. Tasks.config配置中增加公用资源部分配置,这样就可以共用一些通用的资源信息了。
4. 增加所有总服务状态Task4WinService.Status,这个好像还是有问题。
5. 增加了一个默认的扩展配置保护属性Extend, 如果自定义了扩展配置后可以重写LoadExtendConfig方法 Extend.Settings"key".Value;

----udpate:2010-07-26---To:1.3.2 Beta1-----
1. 调整文件及程序集信息;
2. 重写预定义好的预定义扩展,预定义扩展是引用公有资源再加上可能的参数组成;
*3. 注意,具体任务中不要抛出异常,以免使整个服务挂起;
4. DataTableToDataTable表对表导入任务实现;
5. Tasks.config中的预扩展中Params参数加入 对<!CDATA[]> 支持,以避免手动转义特殊字符,注:text中有值时会覆盖value中的值。
posted @ 2010-11-23 10:26 一线风 阅读(669) 评论(6) 编辑

本功能是基于log4net的,

log4net里有个东东,就是 UdpAppender ,通过这个Appender可以输出到UDP中.

<!--输出到UDP中-->

<appender name="UdpSender" type="log4net.Appender.UdpAppender">

<remoteAddress value="127.0.0.1" />

<remotePort value="8081" />

<layout type="log4net.Layout.PatternLayout" value="%-5level: %message%newline" />

</appender>

这样,你不用打开日志文本,也能直接通过控制台来获得日志信息. 代码是log4net帮助文档里的,保是整理了一下.写成了一个小工具而已.喜欢的下吧,呵~~~

 

 /Files/atwind/UdpWatcher.rar

posted @ 2010-05-19 13:38 一线风 阅读(230) 评论(0) 编辑

应用场景:
  设计一个任务调度系统,配置信息以XML行式保存在Tasks.config的配置文件里,该配置里不止一个任务。不同的任务,会有不同配置信息与设定。
 
解决方案1:使用XPath直接读
 优点:1. 直接;2. 灵活(配置可以千变万化)
 缺点:1. 不友好,要写一堆的读取XML数据的方法,每次有新的任务时都要重写不同的XML片断;2. 容易出错,很有可能因为写了一个错误的节点属性名称而得不到数据
 
解决方案2:使用对象序列化成XML文档
 缺点:1. 反序列化配置时必须有定义好的类型。
 优点:1. 友好,XML里的数据直接反序列化成对象的属性;2. 不容易出错,为什么呢?你肯定要先定义好类型序列化后使用,你别告诉我你是手写XML的;
 
 现在的问题是设计一个方法,解决它的缺点。就算有不同的配置我也能给你反序列化出来。那么抽出相同的部分,这部分不是我们关注的重点了。我们关注的是,如何重现不同的配置XML为实例。因为所有的对象都是继承自object的,那么,我们把扩展部分的类型就设定为object好了。经过测试发现,反序列化后的object是XmlNode[]数组。那我们要做的就是把这个XmlNode[]数组给转换为文本,然后再客户端使用的时候,将文本与定义好的类型进行反序列化。
 
代码原型:

 

代码

    [Serializable,
    XmlRoot(ElementName 
= "configuration")] 
    
public class XmlConfig
    {

        
/// <summary>
        
/// 扩展
        
/// </summary>
        [XmlElement("extend")]
        
public object Extend { getset; }

        
/// <summary>
        
/// 获取已设定的扩展类型实例
        
/// </summary>
        
/// <typeparam name="T">扩展的类型</typeparam>
        
/// <returns>扩展类实例</returns>
        public T GetExtend<T>() where T:class 
        {
            
return Serializer.XmlDeserializerFormText<T>(ExtendRawXml);
        }

        
/// <summary>
        
/// Extend扩展的Xml片断
        
/// </summary>
        
/// <returns></returns>
        protected string ExtendRawXml
        {
            
get
            {
                var nodes 
= Extend as XmlNode[];
                
if (nodes == null || nodes.Length == 0)
                    
return "<extend />";
                var w 
= new StringWriter();
                XmlWriter writer 
= new XmlTextWriter(w);
                writer.WriteStartElement(
"extend");
                
foreach (var node in nodes)
                    writer.WriteRaw(node.OuterXml);

                writer.WriteEndElement();
                writer.Close();
                
return w.ToString();
            }
        }

    }

    [Serializable,
    XmlRoot(
"extend")]
    
public class MyExtend
    {
        
public int Id { getset; }
        
public string Name { getset; }
    }
    

 

 

posted @ 2010-04-07 15:34 一线风 阅读(854) 评论(4) 编辑
摘要: 最近公司上马了一个新的项目,用到的数据库是Oracle10g的 今天用到C#里调用Oralce包里的SP返回分页的记录集,在网上查了一下,都用的是MS提供的Oracle.Cient,而在Oracle.DataAccess.Client 里调用时(Ms的Oracle.Client 有问题,所以用的是Oracle官方提供的Oracle.DataAccess.Client ),输出的参数也要赋值后调用才能返回,否则返回的记录集是空的。即DbNull.Value要先赋值到参数上。本人用Oracle还不到三个星期,因此肯定有不对的地方,还望各位大虾们多多指教。 今天发现Oracle的Package确实不错,是我用的这几天里的我目前感觉到的一大亮点(可以重载,可以把相关的操作放到一个包里)。不知MSSQL2008里有没有。 阅读全文
posted @ 2009-11-04 20:56 一线风 阅读(2107) 评论(8) 编辑
只在原来的版本上加了一个功能,因为我要把PHP序列化后的字符串再给反回去,所以网上找了一下,就加上去了!想用的就下吧! 呵!
不能算是我的作品,只是加了个功能,懒得再开新分类了.
posted @ 2009-07-21 09:58 一线风 阅读(283) 评论(1) 编辑
摘要: 一直在想,可是进度不是很尽人意呀.目前的想法是:1. 具体模块的权限设定写在配置文件里.通过类似于反射或是反序列化来映射到不同的模块上(可动太增加,这样多少插件来了也不怕)2. 权限验证要灵活,不能像现在这样写死在方法里了(典型的面向过程编程呀).初步想到可能要用到工厂方法模式[目前本人这方面欠缺,正在学习中]-----------无奈的分割线-以上为前几天的想法--------------今天[...阅读全文
posted @ 2009-06-08 13:54 一线风 阅读(929) 评论(3) 编辑
摘要: 内测地址: http://www.010jy.com/同CSBlog一样,用的是XML+XSLT生成XHTML的,起点缓存后还是比较快的. 呵~~~ 查看源代码就能看到执行的相关信息了.采用Jquery库, 并且全部放在页面的最下面了,这样Js就不会阻塞Http的下载进程,能把内容先下回来!阅读全文
posted @ 2009-06-02 11:30 一线风 阅读(496) 评论(3) 编辑
摘要: 周一从当当定的书,周4到的,看了20多页。讲的非常好。真的!以前看模式老是雾里看花的感觉。现在不一样,很清淅。 可能你也和我一样,一直不明白,接口只不过是个规范,是个定义,是个好抽的抽象,她倒底有什么迷人的呢?看到下面,你也许能知道了接口真的是很迷人。 策略模式用了三个原则: 一、封装变化 二、接口编程 三、用组合代替继承阅读全文
posted @ 2009-03-13 15:24 一线风 阅读(1428) 评论(11) 编辑
摘要: 2009新年贺岁版- 牛气冲天下载演示地址:http://csblog.cszi.com/技术特点说明:----------------------------------------------------------------------------------1. 经典N层的原创架构设计;2. 输出XML原始数据+XSLT模板生成标准的XHTML页面显示的方式,主题更改更容易,更方便;3....阅读全文
posted @ 2009-01-14 11:00 一线风 阅读(1886) 评论(3) 编辑
摘要: 新年主题包-牛气冲天下载阅读全文
posted @ 2009-01-06 09:52 一线风 阅读(1393) 评论(0) 编辑
摘要: 这两天一直在搞XML+Xslt输出的标准化,即输出Xhtml标准的代码在.Net2.0的XslCompiledTransform 里 名字空间 xmlns="http://www.w3.org/1999/xhtml" 是正确输出xhtml标准的关键如果没有这个命名空间的话,输出的文档标签会自动去掉结尾的 / 符号即<meta xxx /> 变成了<meta xxx>有两种角...阅读全文
posted @ 2008-11-27 16:08 一线风 阅读(422) 评论(4) 编辑
摘要: 下载地址: CSBlogV2 B081124CSBlogV2_B081120至B051124的改进及升级办法--------------------------------------------------------------------------------1. 验证码改为单独的Aspx文件[感谢Fancy等提供测试]2. Blog公告改至Blog频道配置;3. 取消默认主题的硬编码,由...阅读全文
posted @ 2008-11-25 09:13 一线风 阅读(249) 评论(0) 编辑
摘要: 先准备一个XML文件:[代码]再准备一个XSLT模板文件[代码]然后就是C#转换代码:[代码]执行后的输出结果:[代码]怎么样?是不是超简单呀? 呵~~~ 待续...阅读全文
posted @ 2008-11-24 17:44 一线风 阅读(271) 评论(0) 编辑
摘要: CSBlogV2_B081120 说明: ------------------------------------ 软件所属分类: Asp.net 代码 软件名称: CSBlogV2 软件版本: 2.0.1 软件关键字: CSBlog,Asp.Net,C#,Xlst,Xml 软件语言: 简体中文 软件授权: 免费版 软件大小: 1.43M 软件操作系统: Windows2003+IIS6.0+.Net2.0+Access 软件作者: 一线风(zhouyu@69sea.com) 软件演示URL: http://csblog.cszi.com 下载地址: http://www.cnblogs.com/Files/atwind/CSBlogV2_B081117.rar 中国站长站分流: http://down.chinaz.com/soft/24379.htm 阅读全文
posted @ 2008-11-20 17:34 一线风 阅读(413) 评论(9) 编辑
posted @ 2008-11-17 10:54 一线风 阅读(475) 评论(1) 编辑
posted @ 2008-11-15 17:10 一线风 阅读(522) 评论(19) 编辑
摘要: ChaosSea验证码0.20版

演示地址:http://max.cszi.com/VerifyCode.aspx


功能说明:
1. 可自定义字体
2. 可自定义最大字号
3. 可自定义随机旋转的角度
4. 可自定义前景随机噪色量
5. 可外部生成随机码,由VerifyCode类处理成图片
6. 可自定义数字与英文字母随机出现的比率
7. 可自定义验证码长度
8. 可自定义验证码背景色
9. 可自定义验证码色彩(噪点色同验证码色一致)
10. 可自定义字体

------------------------------
本人觉得用上随机角度就行了,不用前景噪点,因为这个东东会耗一定的资源

阅读全文
posted @ 2008-03-28 11:51 一线风 阅读(578) 评论(3) 编辑
posted @ 2008-03-25 17:04 一线风 阅读(3152) 评论(18) 编辑
摘要: CSBlog开发进度35%,相关情况收集 演示:http://csblog.cszi.com -----------------已完成的主要功能-------------------- 1. Blog发表,编辑,查看 2. Blog首页列表,Blog分类列表 3. Blog评论,Blog评论删除 4. Blog登录 5. 文件上传及缩略图 [2008-2-20] 6. Feed.aspx Rss订阅完成[2008-3-3] ------------正在做(Next)----------------------------------------------- 1. 逻辑层的完整性及合理化 2. 管理与配置 阅读全文
posted @ 2008-02-02 15:24 一线风 阅读(931) 评论(2) 编辑