自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(103)
  • 资源 (1)
  • 收藏
  • 关注

原创 C# 软件自动更新程序(七)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using AutoUpgrade.Models;using System.Xml.Linq;using System.Net;using System.Windows.Forms;using System.Config

2013-01-03 19:05:02 553 1

原创 C# 软件自动更新程序(六)

using System;using System.Collections.Generic;using System.Globalization;using System.Linq;using System.Net;using System.Text;using System.Windows.Forms;namespace AutoUpgrade.BL{ public c

2013-01-03 19:02:54 398

原创 C# 软件自动更新程序(五)

using AutoUpgrade.BL;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading

2013-01-03 18:58:20 373

原创 C# 通用应用程序发布检查工具-软件自动更新程序(四)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using AppReleaseCheckTool.Models;using System.IO;using System.Windows.Forms;using

2013-01-03 18:19:44 376

原创 C# 通用应用程序发布检查工具-软件自动更新程序(三)

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.W

2013-01-03 18:17:20 501

原创 C# 通用应用程序发布检查工具-软件自动更新程序(二)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Xml.Linq;namespace AppReleaseCheckTool.Models{ public class Fold

2013-01-03 18:14:15 495

原创 C# 通用应用程序发布检查工具-软件自动更新程序(一)

项目中自动更新程序因为网络的策略的原因,始终无法自动更新,正好利用2013元旦这几天研究一下。一、通用应用程序发布检查工具,主要目的生成自动更新配置文件。二、此工具可以过滤发布目录下的部分文件,目录。

2013-01-03 18:10:50 576

原创 [WF4实践二] 使用 WorkflowInvoker 和 WorkflowApplication

Windows Workflow Foundation (WF) 提供承载工作流的若干方法。WorkflowInvoker 提供调用工作流的简单方法,就像方法调用一样,并且只可用于不使用持久性的工作流。WorkflowApplication 为执行工作流提供更丰富的模型,包括生命周期事件通知、执行控制、书签恢复和持久性。WorkflowServiceHost 为消息传递活动提供支持,主

2012-07-16 10:47:41 592

原创 [WF4实践一] 使用 TryCatch 在 Flowchart 活动中进行错误处理

在此示例中,将促销代码和孩子数量作为变量传递到 Flowchart 活动,该活动将根据与促销代码相对应的公式计算折扣。此示例分为命令性代码版本和工作流设计器版本。 下表详细描述了 CreateFlowchartWithFaults 活动的变量。参数说明promoCode促销代码。类型:String可能的值,括号中带有说明:Si

2012-07-16 10:29:12 405

原创 [WF4实践一] 使用 TryCatch 在 Flowchart 活动中进行错误处理

在此示例中,将促销代码和孩子数量作为变量传递到 Flowchart 活动,该活动将根据与促销代码相对应的公式计算折扣。此示例分为命令性代码版本和工作流设计器版本。 下表详细描述了 CreateFlowchartWithFaults 活动的变量。参数说明promoCode促销代码。类型:String可能的值,括号中带有说明:Si

2012-07-16 10:18:48 155

原创 Silverlight图形编程系列(七)-再续绘制矢量图之Polyline 和 Polygon

Polyline(多线段) 和 Polygon(多边形)Polyline(多线段) 和 Polygon(多边形)是Silverlight中简单但功能强大的绘图对象。它允许你声明N个Points属性值,然后根据Points属性的坐标先后顺序来绘制图形,并且支持线条内部的颜色填充。首先介绍一下PolyLine,他比Line元素更加强大,下面例子利用Polyline来绘制线条:

2012-02-25 22:39:45 399

原创 Silverlight图形编程系列(六)-图形之Ellipse, Line, Path, Polygon, Polyline, Rectangle

Silverlight 2.0 图形:    Ellipse - 椭圆    Line - 线    Path - 一系列相互连接的直线和曲线    Polygon - 多边形,闭合图形,起点与终点自动相连    Polyline - 非闭合图形,一串连接起来的线,起点与终点不会自动相连    Rectangle - 矩形  1、Ellipse.xaml

2012-02-25 22:20:56 623

原创 Silverlight图形编程系列(五)-绘制矢量图之Line

形状绘图形状(shape)在Silverlight是一个2D绘图类,它位于System.Windows.Shapes这个命名空间内。我们可以把Shape理解为所有Silverlight形状元素的一个集合,包括矩形(Rectangle)、椭圆(Ellispe)、线条(Line)、多段线(PolyLine)和多边形(Polyon).一、线条元素线条(Line)是Shape类中的一个最基本的

2012-02-25 22:13:40 704

原创 Silverlight图形编程系列(四)-布局控件Canvas

每一个XAML文件都应该有一个布局对象,布局对象相当于一个容器他可以容纳几乎所有的XAML元素,Silverlight为开发者提供了三种布局对象Canvas、StackPanel、Grid。Canvas:Canvas允许声明一个区域,包含在该区域内的XAML元素可以使用相对Canvas坐标的附加属性来显示和定位元素。StackPanel:StackPanel允许把若干个元素放在StackP

2012-02-25 21:49:38 536

原创 Silverlight图形编程系列(三)-XAML使用集合语法

使用集合语法来设置属性是一种比较特殊的设置方式,使用这种方式的元素通常都是支持一个属性元素的集合。可以使用托管代码的Add方法来添加更多的集合元素。使用集合语法设置元素实际上是向对象集合中添加属性项xaml :<UserControl x:Class="SilverlightApplication1.UserControls.LinearGradientBrushTest"    xml

2012-02-25 21:39:13 350

原创 Silverlight图形编程系列(二)-使用GetValue和SetValue来设置属性

GetValue和SetValue是在托管代码中直接获取或设置对象属性的一种方法,如下面例子:<UserControl x:Class="SilverlightApplication1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas

2012-02-25 19:16:06 444

原创 Silverlight图形编程系列(一)-基础篇

第一个Silverlight程序,绘制一个长方型、一个椭圆、画一条线1、首先新建一个Silverlight程序 <UserControl x:Class="SilverlightApplication1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=

2012-02-25 18:59:05 312

转载 WF(Windows Workflow Foundation)

0        前言各位网友大家好!Vista的到来对于跟随微软的开发人员可谓又是一场技术的革命,革命尚未到来已经就有了山雨欲来风满楼的感觉。从去年的Avalon(WPF开发代号)、Indigo(WCF开发代号)、InfoCard(CardSpace开发代号)到现在的.Net Framwork 3.0的RTM版本已经有了将近两年的时间,在这段时间里相信大家也都对这些技术有一定的了解。

2008-10-16 14:21:00 1146

原创 面向图形可扩展矢量图形规范:SVG

来源:(正在更新,待查证,最初发表在2002年)  在过去十年中,图像图形技术曾经使出版印刷行业发生了一场深刻的技术革命,使古老的印刷术融入了高速发展的信息产业。随着Internet技术的普及和发展,图像图形技术作为Web浏览技术的基础,更将为建立一个全新的互联网行业,发挥至关重要的作用。然而,目前的Internet技术在图形图像方面,应该说还处在年轻阶段,从浏览器的核心技术来看,其对于图形图

2007-11-16 11:25:00 486

原创 一个关于构造方法的问题

今天看到一帖子。原文:http://community.csdn.net/Expert/topic/4657/4657161.xml?temp=.0378992Abstract class A{  public A(){draw();}  abstract draw();}class B extends A{  public B(){}  void draw(){}}public class

2007-10-17 16:42:00 470

原创 关于构造方法

很多人对构造方法都存在误解,这种误解来源于对象的创建语法和一些书对其模糊不清的说明。当然,在大多情况下这个误解并不会影响您的工作,但是这并不表示您就可以不去了解事实的真相。好了,我们就假设对象是由构造方法来创建的,我们看看下面这段代码会告诉我们什么。abstract class Base{  public Base()  {    Console.WriteLine("Base...");  

2007-10-17 16:33:00 415

原创 Const 带来的错误

这本来是个小问题,但是却造成了几次错误了。在此贴一下,省得我再花时间去给那些犯错误的兄弟们上课。 首先看下面的代码:解决方案中有两个项目,分别是类库和CUI程序。Library.csproj========public class Lib{ public const int X = 13;}Test.csproj=======public class Class1{ static v

2007-10-17 16:31:00 376

原创 再议 构造方法

先看代码  class Base  {    static Base()    {      Console.WriteLine("Base Static Constructor...");    }    public Base()    {      Console.WriteLine("Base Constructor...");    }  }  class Class1 : Base

2007-10-17 16:27:00 324

原创 Overload 陷阱

经常看到类似下面的方法重载public class Class1{  public static void Test(string s)  {  }  public static void Test(object o)  {  }}虽然这样的重载能通过编译,但是会带来潜在的混乱和错误。当我们调用 Class1.Test(null) 时,我们并不能确定哪个方法会被执行,因此这样的编码设计是不

2007-10-17 16:25:00 324

原创 几个小细节

1. 使用 string.Empty 代替长度为0的空字符串""。// string s = "";string s = string.Empty;2. 触发事件时尽可能使用 EventArgs.Empty 替代 new EventArgs() 和 null。public class Class1{  public event EventHandler OnEvent;  privat

2007-10-17 16:24:00 374

原创 关于将临时变量置为null是否有助于快速垃圾回收。

“将不再使用的临时变量立即置为null是否有助于垃圾回收”的话题好像有不少人争论过。首先,我们要理解GC回收垃圾数据的标准是通过路径检查,看是否还有引用指向某个对象。如果不再有引用指向这个待回收的对象,那么GC会将其放入待回收队列。从这个理论上来说,适时将不再使用的变量置为null是有助于垃圾回收的。但是,进一步理解GC的工作模式,我们会发现如下几个问题。1. GC只是将其置于待回收队列,并不一定

2007-10-17 16:18:00 380

原创 new 和 override 的区别

帮某个兄弟修改一个错误时,再次发现这个错误,于是写了个小例子,让初学者注意。呵呵。   class A   {     public virtual void Test()     {       Console.WriteLine("A");     }   }    class A1 : A   {     public override void Test()     {       C

2007-10-17 16:16:00 415

原创 关于测试代码

有些时候,我们为了测试或者跟踪某些信息需要编写一些测试代码,而这些代码在正式发行的时候却是多余的。那么我们可以采取以下的方法。1. #if DEBUG#endif2.[Conditional("DEBUG")]注意:"DEBUG" 区分大小写。ConditionalAttribute 需要添加 using System.Diagnostics;为了检验效果,我们看下面的例子。  public

2007-10-17 16:14:00 331

原创 “多态”一个需要注意的问题。

在C#中只有属性和方法能被声明为virtual,而字段则不能。因此注意下面例子中的问题。  public class Base  {    public int i = 10;    public virtual void Test()    {      Console.WriteLine(i);    }  }  public class Deliver : Base  {    publ

2007-10-17 16:12:00 353

原创 C# 方法参数 ref 详述

前几日在博客园看到一篇关于 ref 的帖子,想起以往一些同事工作中的错误,特作如下笔记。其实这个问题很容易理解,首先在C#中传递方法参数缺省是“值拷贝”模式,也就是说对于值类型(ValueType)变量直接拷贝一份,而对于引用类型则拷贝一个指向同一对象的引用副本传递给方法,因此即使不使用ref关键字,我们也可以在方法内部改变该引用所指向对象的内部状态,但是某些时候我们需要在方法内部创建一个新的对象

2007-10-17 16:09:00 479

原创 Castle.Windsor 类型和对象构造参数注入

Castle.Windsor 是一种非常方便的 IOC Framework,有关细节请参考官方文档。本文仅介绍如何向构造方法注入类型和对象参数。在下面的例子中,我们需要注入 InjectionClass 这个类型,为了方便我将它和其他类型写到一起。在注入 InjectionClass 的同时需要为这个类型提供另一个所依赖的类型 Data,Data 实现了 IData 接口。如果你为了更好地理解,可

2007-10-17 15:10:00 1161 1

原创 [ActiveRecord] 之六:继承

ActiveRecord 支持继承体系,我们看看几种不同的实现方式。1. 无关联继承public class Person{  private int id;  [PrimaryKey(PrimaryKeyType.Identity)]  public int Id  {    get { return id; }    set { id = value; }  }  private stri

2007-10-17 15:09:00 556

原创 [ActiveRecord] 之五:ActiveRecordMediator

有意无意的,很多文章都没有提及 ActiveRecordMediator 。ActiveRecordMediator最大的用途是:即便你的实体类不是继承自 ActiveRecordBase (不推荐这么做),它也可以进行同等的创建、查找等操作;另外这个类实现了很多常用的方法,我们直接使用它就没必要为每个实体类写一堆相同的操作方法了(ActiveRecordBase的静态方法干吗声明为 protec

2007-10-17 15:07:00 617

原创 [ActiveRecord] 之四:Cascade

在ActiveRecord中级联操作为我们带来很多方便,但是一些细节地方需要注意。[ActiveRecord("Users")]public class User : ActiveRecordBase{  public User()  {  }  public User(string name) : this()  {    this.name = name;  }  private int

2007-10-17 15:05:00 499

原创 [ActiveRecord] 之三:SessionScope

看了网上很多有关ActiveRecord的文章,对于SessionScope只是在延迟加载中提及,但是SessionScope实际上是ActiveRecord一个非常重要的特点。善于使用它可以提高应用性能。看看Castle官方网站是怎么说的。Session scope allows you to reuse the NHibernate session, thus not flushing it

2007-10-17 15:02:00 984

原创 [ActiveRecord] 之二:常用方法

看下面的例子[ActiveRecord("Users")]public class User : ActiveRecordBase{  public User() {}  public User(string name) : this()  {    this.name = name;  }  private int id;  [PrimaryKey(PrimaryKeyType.Identi

2007-10-17 15:00:00 687

原创 [ActiveRecord] 之一:初始化和配置

有关Castle.ActiveRecord的介绍文章已经有不少了,本文不做详述。配置文件个人认为使用一个独立的配置文件可能更好点,App.config / Web.config 已经被塞入很多的内容了。ActiveRecord.xml                    初始化代码// 获取数据库连接配置XmlConfigurationSource source = new XmlC

2007-10-17 14:58:00 706

原创 多层架构 简述

使用多层架构进行系统开发是现今系统设计的流行趋势。通过分解业务细节,将不同的功能代码分散开来,更利于系统的设计和开发,同时为可能的变更提供了更小的单元。以下就是一个典型的多层体系结构图。首先我们以“订单(Order)”为例,进行一个简单的业务分解。1. 订单自然包括订单的内容(OrderInfo),其中有诸如订单编号、商品名称、数量,以及金额等信息。2. 有了订单信息,我们还需要一个存储订

2007-10-17 10:33:00 400

原创 IOC 与 .net Framework 2.0

我们已经很习惯于使用工厂模式来创建对象,作为最常用的设计模式,可以让客户端非常容易地在多个产品类型中切换。尽管客户端使用接口或者抽象类来调用产品方法,但是我们依然无法摆脱具体的产品类,我们必须引用最终产品类库来创建目标产品对象,这是工厂模式的弊端。如果使用模板方法,我们就必须将产品接口和抽象类作为单独的类库打包,否则模板方法所在类库和最终产品类库间就会形成循环引用(见系统架构设计 & 避免循环引用

2007-10-17 10:31:00 482

原创 系统架构设计 & 避免循环引用

今天有同事问这个问题,记得以前也曾遇到过类似问题,特记录下来,免得再次忘记。下面这个系统结构图,恐怕大家都很熟悉。这种结构非常简单,而且其好处十分明显:1. 架构设计师完成设计后,使用工具直接生成Facade Library框架,将界面和类库开发进行分离。由于完全基于接口和外观模式,使得界面和类库之间的耦合降到最低。2. 界面程序员可以直接使用数据模拟类来进行开发,而无需等待类库(Conc

2007-10-17 10:29:00 460

实现AOP的一个例子

AOP+Sample 实现AOP的一个例子

2008-10-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除