摘要:创建型模式工厂方法(Factory Method)在工厂方法模式中,工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节。工厂方法模式的核心是一个抽象工厂类,各种具体工厂类通过抽象工厂类将工厂方法继承下来。如此使得客户可以只关心抽象产品和抽象工厂,完全不用理会返回的是哪一种具体产品,也不用关系它是如何被具体工厂创建的。抽象工厂模式(Abstract Factory)抽象工厂模式的主要优点是隔离了具体类的生成,使得客户不需要知道什么被创建了。犹豫这种隔离,更换一个具体工厂就变得相对容易。所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需改变具体工厂的实例
阅读全文
摘要:发一个专门处理时间和日期的类库,记录以备查询。using System;namespace Utilities{ /// <summary> /// Common DateTime Methods. /// </summary> /// public enum Quarter { First = 1, Second = 2, Third = 3, Fourth = 4 } public enum Month { January = 1, February ...
阅读全文
摘要:Microsoft Expression Encoder是Microsoft Expression产品中的一部分,它主要的功能是转换和重新编码媒体文件,如将视频或音频文件转换为Web支持的格式,或者进行各种音视频文件格式之间的转换,将媒体文件转换为Microsoft Smooth Streaming支持的格式或者Silverlight媒体文件格式等。Encoder提供的功能很强大,而且非常专业,大家可以去微软的官方站点查看介绍和下载使用版本,http://www.microsoft.com/download/en/details.aspx?id=19652。 有关如何在Encoder中转换S.
阅读全文
摘要:在写这一系列文章之前,我要首先申明一个事情,那就是自打.NET一开始我们大概就已经开始使用它在自己的程序中与Excel进行交互了,诸如从Excel中读取数据显示报表、将程序中的数据导出到Excel中等等。这个看似很平常,而且我相信有很多的人都写过或看过类似的程序。在早期版本的.NET中我们需要在Windows中执行一个命令(时间太久我也不太记得这个命令叫什么了)来将Office COM组件变成托管代码以便在.NET程序中调用,后来的.NET Framework可以完全支持Office COM组件的调用,但需要在工程中添加引用。但是无论怎样,我们在程序中都是对Office COM组件进行操作,这
阅读全文
摘要:在前一篇文章中我谈到了Excel 2007以后版本的文件其实就是一个zip压缩包,里面包含了该Excel文件的所有内容和使用的资源,大部分文件都是以XML的形式存放的。再来回顾一下解压之后的文件夹结构, 其中比较重要的是xl文件夹,里面包含了一些很有用的信息。sharedStrings.xml文件存放了Excel中所有的字符串数据。 worksheets文件夹中存放了所有的工作表信息,如果你的Excel文件中包含多个工作表,则这里你会发现有多个与工作表对应的xml文件。 来看一下sharedStrings.xml和工作表xml文件之间的关系。首先找到对应的工作表xml文件,如上图所示文件...
阅读全文
摘要:Sub Page_Load()Dim i as IntegerFor i=0 to 4 Dim myUserControl as ControlmyUserControl = Page.LoadControl(“foo.ascx”)PlaceHolder1.Controls.Add(myUserControl)PlaceHolder1.Controls.Add(New LiteralControl(“<br>”))Next iEnd Sub随着微软.NET的流行,ASP.NET越来越为广大开发人员所接受。作为ASP.NET的开发人员,我们不仅需要掌握其基本的原理,更要多多实践,从实践中获取真正
阅读全文
摘要:在使用ASP.NET2.0的身份验证和授权时,有时候我们需要提供比页面更高一级的安全功能。传统的我们使用web.config里的deny或者allow来控制用户对某一个页面的访问,但是如果您使用 username为administrator password为aspx-net.com 登陆 http://www.aspx-net.com 您会发现随着您权限的不同,你可以对页面的全部或者局部进行更改,天天称呼这种安全为“页面的安全”,利用ASP.NET2.0很容易实现这个功能这主要分为两步:1)在后台代码定义一个bool类型的变量bool IsAdmin=false;然后在代码里,例如在用户登陆
阅读全文
摘要:ASP.NET技术框架+脚本语言,对于不绑定数据的页面都用了HTML的静态控件。使用了最新的AJAX技术实现了无刷新的三级连动,通过继承IHttpHandler(处理器)类防止图片盗链,使用了大量用户控件来代替重复界面,同时运用了观察者模式,让用户控件可以回调页面的方法。通过页面传值来实现购物车的购买。在处理多用户注册和访问时使用线程锁定。整个系统使用分层架构(业务逻辑层,数据层,界面层)实现代码和页面的分离。A. 业务实体层把数据库的字段都用设为私有字段通过属性调用具有很好的封装效果。B. 业务接口层为所有的行为提供公开接口,实现了业务逻辑层,界面层,数据层的异步。C. 业务逻辑层通过数据工
阅读全文
摘要:一.什么是ajax? ajax = asynchronous + javascript + xml = 同步传输数据 + javascrip处理返回XML数据 实际上,几年前ajax这个技术就应用于互联网上,但因思维的禁锢,一直在ajax的"X", 即处理返回XML数据上打转. 只至伟大的梦想家GOOGLE将其应用于GMAIL及GMAP上,告知世人AJAX也可以玩的这么COOL, 这种老技术才被大家重新所重视. 二.为什么要用ajax 富客户端已经成为网站以及基于网站的程序发展的必然(什么是富客户端?自己google),要构建一个富客户端的程序,必须满足以下条件: 1. 用
阅读全文
摘要:局部更新是ajax技术的最基本,也是最重要的用法,今天大概把asp.net ajax中的局部更新控件 updatepanel的用法记录下,大家可以共同探讨UpdatePanel控制页面的局部更新,这个更新功能依赖于scriptManger控件的EnablePartialRendering属性,如果这个属性设置为false局部更新会失去作用(scriptManger控件的EnablePartialRendering属性的默认值为true不必刻意去设置) 下面是一个完整的UpdatePanel的结构: 代码如下:<asp:ScriptManager ID="ScriptManage
阅读全文
摘要:一、AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于MonoC#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言规范CLS(CommonLanguage Specification),它可以在任何.NET开发环境中使用,包括微
阅读全文
摘要:一.设置web.config相关选项先启用窗体身份验证和默认登陆页,如下。<authenticationmode="Forms"><formsloginUrl="default.aspx"></forms></authentication>设置网站可以匿名访问,如下<authorization><allowusers="*"/></authorization>然后设置跟目录下的admin目录拒绝匿名登陆,如下。注意这个小节在System.Web小节下面
阅读全文
摘要:.NET是一个平台,一个抽象的平台的概念。 .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台。 个人理解.NET核心就只是.NET Framework。 .NET Framework包括了两个关键组成元素: Common Language Runtime, 公共语言运行时 --提供内存管理、代码安全性检测等等功能。 .NET Framework Class Library, .NET框架类库 --提供大量应用类库、提高开发效率。 具体内容可以去看MSDN Library 2003 以上一篇文章 《.NET Framework Conceptual Over...
阅读全文
摘要:ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:1、代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。2、代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。3、弱类型造成潜在的出错可能:尽管弱数
阅读全文
摘要:几点说明永远不要纠结于在什么时候使用什么模式永远不要纠结于什么模式适用于什么情景永远不要去死记任何的模式并不是说,23种设计模式可以应付所有的问题,要知道,使用一种方法的时候,往往伴随着新问题的出现只有最适合你当前所遇到问题的解决方案,而没有最适合的设计模式,任何一种设计模式在应用的时候,都应该根据问题的实际情况去做适当的改变,不然一定会陷入设计模式的陷阱之中三种工厂的说明简单工厂(SimpleFactory):定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口。工厂方法(FactoryMethod):定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化
阅读全文
摘要:第一步:创建一个空页面,如: SetDesktop.aspx【名字随便叫,不限定】第二步:后台代码 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 Response.Clear(); 4 Response.ContentType = "APPLICATION/OCTET-STREAM"; 5 6 //解决中文乱码 7 Response.Buffer = true; 8 Resp...
阅读全文
摘要:1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 4 <title>QQ在线客服</title> 5 </head> 6 <body> 7 <DIV id=divStay style="POSITION: absolute"> 8 <TABLE cellSpacing=0 cellPadding=0 widt
阅读全文
摘要:用户注册信息验证在web开发中使用的非常多,只要涉及到用户注册,就会涉及到注册信息的验证。下面将介绍使用Jquery实现用户注册信息的验证,在这我就是以验证用户名是否已经在数据库中存在为例来介绍用户注册信息验证。 1、在使用Jquery之前,确认您是否下载了Jquery框架的库文件,如果没有下载可以到Jquery官方网站http://jquery.com/下载最新的版本。 2、这个DEMO使用的开发环境是vs2008+sql server2005,首先新建一个网站,数据库名为Ajax,数据库里只有一个Users表, 3、新建一个Jquery.aspx页面,前端代码如下: 1 Code h...
阅读全文
摘要:在c# / ASP.net中我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。//获取日期+时间DateTime.Now.ToString(); // 2008-9-4 20:02:10DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12//获取日期DateTime.Now.ToLongDateString().ToString(); // 2008年9月4...
阅读全文
摘要:重载using System;class Vector{private double XVector;private double YVector;//构造函数public Vector(double x, double y ){XVector = x;YVector = y;}//获取向量的长度public double GetLength( ){double Length = Math.Sqrt( XVector*XVector + YVector*YVector );return Length;}//重载运算符==public static bool operator == ( Vect
阅读全文