摘要:本系列文章导航[一步一步MVC]第一回:使用ActionSelector控制Action的选择[一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理[一步一步MVC]第三回:MVC范例大观园[一步一步MVC]第四回:漫谈ActionLink,有时“胡搅蛮缠”[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper[一步一步MVC]第六回:什么是MVC(上)? ActionFilter一定是MVC控制中对于Action控制中最值得研究的玩意,在项目实际中我们不可避免的使用例如: HandleError Authoriz... 阅读全文
艾伟:DynamicControl/DynamicField 例外的解决
2011-08-28 23:55 by 狼人:-), 321 阅读, 0 推荐, 收藏,
摘要:在使用 DynamicField / DynamicControl 时,经常在PostBack时,会出现一个例外: The DynamicControl/DynamicField needs to exist inside a data control that is bound to a data source that supports Dynamic Data. 中文为: 绑定到支持动态数据的数据源的数据控件内必须存在 DynamicControl/DynamicField 具体发生原因暂时不太清楚,估计是PostBack的事件流程和页面正常加载不一致。当Post... 阅读全文
艾伟:详解AJAX核心 —— XMLHttpRequest 对象 (下)
2011-08-28 23:55 by 狼人:-), 179 阅读, 0 推荐, 收藏,
摘要:继续上一篇的内容上一篇关于XMLHttpRequest 对象发送对服务器的请求只说到了用Get方式,没有说Post方式的。那是因为要说Post方式就需要先说另外一个东西,那就是DOM(Document Object Model)文档对象模型。JavaScript通过DOM读取、改变或者删除 HTML、XHTML 以及 XML中的元素,可以重构整个 HTML 文档。可以添加、移除、改变或重排页面上的项目,而且这样的操作会马上显示在页面上。另外,所有浏览器执行W3C 发布的 DOM 标准规范,DOM的跨浏览器的兼容问题也就不是问题了。
先来看看下面的这个HTML文档
Code highlighti 阅读全文
艾伟:详解AJAX核心 —— XMLHttpRequest 对象 (上)
2011-08-28 23:55 by 狼人:-), 171 阅读, 0 推荐, 收藏,
摘要:我要说的内容都是非常基础的内容,高手就免看了,如果看了欢迎给点意见啊。新手或者对低层还不是很了解的人可以看看,帮助理解与记忆。
XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始。
了解XMLHttpRequest 对象就先从创建XMLHttpRequest 对象开始,在不同的浏览器中创建XMLHttpRequest 对象使用不同的方法:
先看看IE创建XMLHttpRequest 对象的方法(方法1):
Code highlighting produced by Actipro CodeHighlighter (free 阅读全文
艾伟:Chart Controls 简介与下载点
2011-08-28 23:55 by 狼人:-), 150 阅读, 0 推荐, 收藏,
摘要:虽然博客园已有人介绍过了,还是忍不住介绍一下微软这套免费又功能强大的图表控件「Microsoft Chart Controls for Microsoft .NET Framework 3.5」。本帖并提供相关软件、文件、官方示例的下载点。 微软在收购了 Dundas 这家优秀的图表组件公司后,日前释出了功能相当强大,而且完全免费的图表组件,名为「Microsoft Chart Controls for Microsoft .NET Framework 3.5」。 过去要在 ASP.NET 或 Windows Form 中绘制图表,可能要花钱买其它公司的组件,或用微软的绘图函式库自己撰... 阅读全文
艾伟:C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
2011-08-28 23:55 by 狼人:-), 227 阅读, 0 推荐, 收藏,
摘要:1.C#类和接口的区别
接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!
而类是负责功能的具体实现!
在类中也有抽象类的定义,抽象类与接口的区别在于:
抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。
但接口是一个行为的规范,里面的所有东西都是抽象的!
一个类只可以继承一个基类也就是父类,但可以实现多个接口
PS:
接口除了规范一个行为之外,在具体项目中的实际作用也是十分重要的,在面向对象的设计原则以及设计模式的使用中,无不体现作为一个接口的使用好处,最直接
的就是设计
原则中OCP(开放封闭原则),我们使用接口,而不需要关 阅读全文
艾伟:C#3.0之自动属性和对象初始化器
2011-08-28 23:55 by 狼人:-), 177 阅读, 0 推荐, 收藏,
摘要:C#3.0中定义属性更加方便,不用再在像之前的版本那样的繁琐,需要先定义存储数据的字段,然后再定义属性器,现在只需要定义属性器就可以了,其它的有编译器自动为我们完成,就可以省去定义字段时需要的那些时间;在对象初始化的时候我们可在对象构造的时候实现对象属性的初始化工作,和集合初始化类似。 1.匿名属性 定义属性如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public class Employee { pu... 阅读全文
艾伟:用 C# 实现带键值的优先队列
2011-08-28 23:55 by 狼人:-), 282 阅读, 0 推荐, 收藏,
摘要:在上一篇随笔 Timus 1037. Memory management 的“进一步的讨论”小节中,我提到:
这个程序中使用 KeyedPriorityQueue 来存储已分配的“内存块”,使用 PriorityQueue 来存储尚未分配的“自由块”。这两个优先队列的算法是一样的,可以想办法合并。这将在下一篇随笔中讨论。 现在,就开始行动吧。
首先,需要一个接口,用来获取键以及获取和设置值,如下所示:
namespace Skyiv.Util
{ interface IKeyValue { K GetKey(T x); V GetValue(T x); voi... 阅读全文
艾伟:HTML重构:战略篇
2011-08-28 23:55 by 狼人:-), 130 阅读, 0 推荐, 收藏,
摘要:《Refactoring HTML: Improving the Design of Existing Web Applications》是一本精彩的HTML重构指南,作者给出了HTML重构的实践路线和方法。本文是《Refactoring HTML》的读书笔记,按照我的理解将全书的分为:战略篇,战术篇,工具篇。 本文是战略篇:全局方略的角度介绍重构的内涵,原因,时机,目标 嗯哼,我们开始: 进行重构就像打一场仗,而战争的发起是要慎重考虑的,《孙子兵法》里面讲“兵者,国之大事,死生之地,存亡之道,不可不察也。”所以动手重构之前首先要回答下面几个问题: 什么是重构?
为什么进行H... 阅读全文
艾伟:一个让人遗忘的角落—Exception(二)
2011-08-28 23:55 by 狼人:-), 219 阅读, 0 推荐, 收藏,
摘要:在上一篇中"一个被人遗忘的角落"中,跟大家简单介绍了一下Exception,也使大家充分的了解了Exception管理在一个项目中的重要性,那如何在我们的项目中处理异常呢?因为我从事的是Web开发,所以我只跟大家讨论Web的解决方案,Win的解决方式,还希望同大家一起探讨。 上一章中我们了解了异常发生的原因,同时也说了不存在没有bug的程序,任何网站都会遇到各种各样的问题,无论是大网站还是小网站都会存在,但大公司和小公司对待异常的态度全然不同,一个是主动出击,一个是守株待兔,我们是好的开发者,我们不能坐以待毙,我们必须主动出击。好了,废话少说,切入主题。 现在网站一般都采用 阅读全文
艾伟:ASP.NET 2.0的编译模型
2011-08-28 23:55 by 狼人:-), 192 阅读, 0 推荐, 收藏,
摘要:ASP.NET 2.0支持两种编译模型(Compilation Model):
一为动态编译(Dynamic Compilation),另一个为先行编译(Precompilation)。 这让程序设计师可以有更宽广的选择以决定不同网站何时该用何种编译模型,不但弹性大大提升,且若採用先行编译网站执行效能还可以更高,分述如下: (一)ASP.NET网站动态编译(Dynamic Compilation) 在ASP.NET 1.0时就已经支援网站动态编译,也就是使用者第一次请求网站网页时,ASP.NET会先将网站程式编译成一个.dll组件档,而后续的请求就会以此来回应,而编译过后的网站执行效... 阅读全文
艾伟:VS 2008快捷键
2011-08-28 23:54 by 狼人:-), 209 阅读, 0 推荐, 收藏,
摘要:编辑: CTRL + M, O:折叠当前源代码文件中的所有大纲
CTRL + M, L:将当前源代码的大纲在折叠与展开间切换
CTRL + M, M:将当前选中的源代码在折叠与展开间切换
CTRL + M, P:将当前源代码文档中的所有大纲信息清除
CTRL + K, C or CTRL + E, C:注释掉所有选中的源代码部分
CTRL + K, U or CTRL + E, U:取消掉所有选中的源代码部分的注释
CTRL + K, D or CTRL + E, D:按源码缩进和标准格式来格式化当前文档
CTRL + K, F or CTRL + E, F:按源码缩进和标准格式来格式化选中. 阅读全文
艾伟:WCF安全之EndPointIdentity
2011-08-28 23:54 by 狼人:-), 188 阅读, 0 推荐, 收藏,
摘要:最近在做一个项目,应用了WCF进行分布式开发,中间还涉及到消息路由器等,好在有WCF提供了强大的基础支持,当然,本身也作了不少的扩展,实际,我 最关心的是WCF的安全问题,网上不少朋友介绍的WCF的安全也是少得可怜,微软发布的WCF Security GUID好像讲得也只是入门级别的教程,离真正应用到项目中还是有很大的距离,这也让我萌发了分享的想法,今天先放出来占个位置吧,有反对的朋友砖头轻 点,呵~,可以告诉你,WCF的安全里,有很多的小秘密,当然还是要告诉你,并且有此小秘密是要自己去体验后才知道,在博客排版方面,李会军(军哥)让人 感觉最舒服,在解说方面,军哥也是以简洁著称,我在这里... 阅读全文
艾伟:C# Design Patterns (3) - Decorator
2011-08-28 23:54 by 狼人:-), 181 阅读, 0 推荐, 收藏,
摘要:Decorator Pattern(装饰模式)
装饰模式可「动态」地给一个对象添加一些额外的职责,提供有别于「继承」的另一种选择。就扩展功能而言,Decorator Pattern 透过 Aggregation (聚合) 的特殊应用,降低了类与类之间的耦合度,会比单独使用「继承」生成子类更为灵活。
一般用「继承」来设计子类的做法,会让程序变得较僵硬,其对象的行为,是在「编译」时期就已经「静态」决定的,而且所有的子类,都会继承到相同的行为;然而,若用「装饰模式」以及 UML 的 Aggregation 的设计,来扩展对象的行为,就能弹性地 (flexible) 将多个「装饰者」混合着搭配使用,而 阅读全文
艾伟:C# Design Patterns (2) - Strategy
2011-08-28 23:54 by 狼人:-), 228 阅读, 0 推荐, 收藏,
摘要:Strategy Pattern (策略模式)
所谓 Strategy Pattern 的精神,就是将策略 (算法) 封装为一个对象,易于相互替换,如同 USB 设备一样可即插即用;而不是将策略、具体的算法和行为,硬编码在某个类或客户程序中,导至事后的修改和扩展不易。
若有多种「策略」,就将这些个策略,和这些策略的算法、行为,封装在各个类中,并让这些类,去继承某个公用的抽象类或接口。接着在客户程序中,就可动态引用,且易于更换这些不同的「策略」,不会因为日后添加、修改了某一个「策略」,就得重新修改、编译多处的源代码。此即为一种「封装变化点」的做法,将常会变化的部分进行抽象、定义为接口,亦即实现「 阅读全文
浙公网安备 33010602011771号