摘要:
静态类是一种声明为 static 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。 静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。 静态类的主要特点如下: 它们仅包含静态成员。
它们不能被实例化。
它们是密封的。
它们不能包含实例构造函数。 因此创建静态类与创建仅包含静态成... 阅读全文
随笔分类 - [01].NET技术
一起谈.NET技术,回顾.NET Remoting分布式开发
2011-09-01 23:57 by 狼人:-), 187 阅读, 收藏,
摘要:
记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。WCF是结合Remoting,Web服务,TCP/IP套接字,MSMQ信息,P2P,WSE等多方通讯的混合体。 随着WCF的出现是否意昧着Remoting即将没落,答案是否定的。因为Remoting有其独到之处,在通讯效率,信息交换,安全性等多方面都有其特点,所以在企业内部系统的信息化交换层的开发当中,很多时候会使用Remoting进... 阅读全文
一起谈.NET技术,页面片段缓存(二)
2011-09-01 23:57 by 狼人:-), 213 阅读, 收藏,
摘要:
在上一篇文章中,我介绍了我们用土法炼钢的方法,使用Velocity提供的自定义标签实现片段缓存。这样的方式虽然也解决了我们的问题,但还是引出了一些bug。而且还有点hack的味道(虽然我喜欢hack)。实际上对于片段缓存,业界有成熟的解决方案,还有一个所谓的W3C标准:ESI(Edge Side Include) 。 ESI本身没有什么,只是一个XML的标签集合。ESI和SSI(Server Side Include)很相似,做过ASP开发的都熟悉这么一个标签: <!--#include src="header.inc" --> IIS碰到这么一个标签后,会把h 阅读全文
一起谈.NET技术,页面片段缓存(一)
2011-09-01 23:57 by 狼人:-), 181 阅读, 收藏,
摘要:
一般,页面上会分为很多部分,而不同的部分更新的频率是不一样的。如果对整个页面采用统一的缓存策略则不太合适, 而且很多系统的页面左上角都有一个该死的“Welcome XXX”。这种特定于用户的信息我们是不能缓存的。对于这些情况我们就需要使用片段缓存了。对页面不同的部分(片段)施加不同的缓存策略,而要使用片段缓存,首先就得对页面进行切分。土一点的办法可以用iframe,用iframe将页面划分为一块块的,不过我总觉得iframe是个邪恶的东西。好点的办法可以用Ajax单独的请求这个片段的内容然后再填充,看起来挺美好的。不过使用Ajax也有一些限制: 1、如果页面上有许多片段,使用太多的... 阅读全文
一起谈.NET技术,.NET简谈面向接口编程
2011-09-01 23:57 by 狼人:-), 170 阅读, 收藏,
摘要:
过程式的开发方式已逐渐退出大众的眼线,随之而来的是各种各样的高抽象的开发模式;我们不得不承认在没有设计模式的时候,我们很难总结出有价值的开发模型,便于以后重复使用和推广;面向对象的流行,让我们开发人员重新站在一个高的起点来看待软件模型,抽象固然是好事,但是也给初学者带来了迷惑,将软件中的东西都想成很简单的封装,我们只需要调用就行,这样越来越多的开发人员开始慢慢的往上浮,有一定编程经验和感触的人,能够明白我所说的浮,也算是给初学者提个醒吧。 1: 2:
我们将计算机系统抽象层三个层次,我们做应用层开发的基本上处于最上层;我为什么要给出这张图,其实当我们的软件系统不断的抽象后... 阅读全文
一起谈.NET技术,改善代码设计 —— 简化函数调用(Making Method Calls Simpler)
2011-09-01 23:57 by 狼人:-), 139 阅读, 收藏,
摘要:
系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文
一起谈.NET技术,改善代码设计 —— 处理概括关系(Dealing with Generalization)
2011-09-01 23:57 by 狼人:-), 158 阅读, 收藏,
摘要:
系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文
一起谈.NET技术,改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)
2011-09-01 23:57 by 狼人:-), 139 阅读, 收藏,
摘要:
系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文
一起谈.NET技术,改善代码设计 —— 组织好你的数据(Composing Data)
2011-09-01 23:57 by 狼人:-), 147 阅读, 收藏,
摘要:
系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文
一起谈.NET技术,改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)
2011-09-01 23:57 by 狼人:-), 157 阅读, 收藏,
摘要:
系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文
一起谈.NET技术,ASP.NET MVC 入门介绍 (下)
2011-09-01 23:57 by 狼人:-), 179 阅读, 收藏,
摘要:
相关文章:ASP.NET MVC 入门介绍 (上) 接上文,我们来完善验证功能。在System.ComponentModel.DataAnnotations命名空间中,已经有了一些基本的属性类来实现验证功能,只要把这些属性加到Model的字段上就可以了。具体的属性类可以查MSDN, 下面给出一个例子: public class Movie{ [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int ID { get; set; } [StringLength(10,MinimumLen... 阅读全文
一起谈.NET技术,详解.NET程序集的加载规则
2011-09-01 23:57 by 狼人:-), 184 阅读, 收藏,
摘要:
程序集的加载涉及到很多方面的知识,包括配置文件、全局缓存装配、私有目录等的查找。用LoadAWithPartialName方法加载程序集,必须提供程序集的文本名称,还可以包公钥标记、版本或区域性等,但不必包含完全引用信息,如名称、版本、区域性、公钥标记。 使用(System.Reflection.Assembly.Load)并仅指定部分引用,运行库在全局程序集缓存和应用程序根目录中对程序集进行检查。使用LoadWithPartialName方法并仅指定部分引用,运行库在应用程序目录中和全局程序集缓存中对程序集进行检查。另外,提供部分引用,可在应用程序集的配置文件中提供完全引用的信息。
... 阅读全文
一起谈.NET技术,ASP.NET MVC 入门介绍 (上)
2011-09-01 23:57 by 狼人:-), 211 阅读, 收藏,
摘要:
参考文章 ASP.NET MVC Overview. 1. MVC模式 MVC模式是一种软件架构模式。它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller)。MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予... 阅读全文
一起谈.NET技术,如何通过ildasm/ilasm修改assembly的IL代码
2011-09-01 23:57 by 狼人:-), 236 阅读, 收藏,
摘要:
这段时间为跟踪一个Bug而焦头烂额,最后发现是Framework的问题,这让人多少有些绝望。所以到微软论坛提了个帖子,希望能得到些帮助。虽然论坛智能到能够判断楼主是否是MSDN订阅用户,以便尽快解决(传说MSDN订阅用户的问题能在两天内得到回复的,当时还很得意公司为我们购买的MSDN订阅账号),但得到的回复是“Could you file a bug report for this issue through Connect?”,绝望之后的又一次寒心啊。 看过payeasy的广告之后,便有了以下的这些内容,如何修改.net framework: 这里我们以修改Guid类为例,我们将... 阅读全文
一起谈.NET技术,Linq学习笔记
2011-09-01 23:57 by 狼人:-), 147 阅读, 收藏,
摘要:
写在前面 其实在09年就已经学习过Linq了,并被她那优美的语法所吸引,只是现在所在的公司还在使用VS2005在.Net2.0的框架下面的开发,所以Linq也很久没有用过了,最近看部门的同事对这个有些兴趣,所以打算整理点东西出来跟大家一起做个分享。 什么是Linq LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。 Li... 阅读全文
一起谈.NET技术,关于代码规范
2011-09-01 23:57 by 狼人:-), 148 阅读, 收藏,
摘要:
今天被培训了C#代码规范,为了统一风格。其中我比较有异议的两点如下: 类型实例的私有字段应采用骆驼命名法(camelCasing),不应该有任何前缀,在使用时前边加"this.”; 要用FCL类型而不是C#的基元类型,例如要使用Int32代替int。 首先对于第一点,个人比较习惯的做法是前边加下划线,说不上好坏,这两种写法在各种开源框架的源码中都见到过。由于VS默认并不提供像Eclipse那样的对私有字段变色的功能,所以如果只是简单的使用camelCasing的话会很难区分哪些是私有字段,哪些是局部变量,所以才有了加this的要求。那么来做个比较: public void T... 阅读全文
一起谈.NET技术,Entity Framework 4.1 推荐英文教程
2011-09-01 23:57 by 狼人:-), 205 阅读, 收藏,
摘要:
Entity Framework 4.1 相关文档实在少得可怜,在网上找到一个不错的系列文章,与大家分享一下。
作者:Vincent-Philippe Lauzon
感谢冠军的翻译!
·Entity Framework 4.1: Basics(1)
[译文]Entity Framework 4.1 之一 : 基础
·Entity Framework 4.1: Override conventions(2)
[译文]Entity Framework 4.1 之二 : 覆盖默认的约定
·Entity Framework 4.1: Deep Fetch vs Lazy 阅读全文
一起谈.NET技术,为类提供软件约定
2011-09-01 23:57 by 狼人:-), 202 阅读, 收藏,
摘要:
根据一种很好的旧软件开发做法,应在每个方法的顶部(即实现任何重要行为之前)放置一个条件语句作为屏障。 每个条件语句都检查输入值必须验证的不同条件。 如果条件未通过验证,代码会引发异常。 这种模式通常称为 If-Then-Throw。 但是,有了 If-Then-Throw,我们就可以编写出高效正确的代码吗? 是不是在所有情况下,这都足够了? If-Then-Throw 不是在所有情况下都能解决所有问题,这不是什么新观点。 根据约定设计 (DbC) 是 Bertrand Meyer 几年前提出的方法,这种方法基于这样一种想法,即每个软件都拥有一个正式描述其输入和输出的约定。 If-... 阅读全文
一起谈.NET技术,Azure和Bing Maps API示例经验分享
2011-09-01 23:57 by 狼人:-), 212 阅读, 收藏,
摘要:
头疼的Bug,糟糕的代码,崩溃的调试作为开发人员的你,遇到上述任何一种情况可能就会陷入抓狂。如果能直接获得需要的代码,编程的活儿就会轻松许多。 微软最新推出的一站式示例代码库,让开发人员可以免费获得所需的示例代码或向微软工程师提出示例请求,轻松解决常见的编程问题,大大减轻工作负担。 本文以一个名为AzureBingMaps的示例应用程序为例,分享了一些在开发该示例过程中积累的经验,以期对广大开发人员有所帮助。AzureBingMaps是一个旅游站点管理系统,演示了很多技术,可以认为是一个实际项目。 写这个示例的初衷 在Windows Azure论坛,我们常见到这样的开发人员... 阅读全文
一起谈.NET技术,.NET中的异步编程:使用F#简化异步编程
2011-09-01 23:57 by 狼人:-), 162 阅读, 收藏,
摘要:
不管是使用yield或借助第三方类库来简化异步编程,或多或少总是感觉不那么正统,有点hack的感觉。这种感觉在实验阶段倒还可以,要是用在产品中总有点担心,即使这些类库来自权威的第三方,我不知道大家有没有跟我同样的感觉。那么这个时候我们就会想,如果在语言中直接能提供这种机制该多好呢。 F#的异步工作流 在Visual Studio 2010中,新包含了一种语言:F#。F#的一大特性就是异步计算。能让你用同步的方式编写异步的代码,不用使用AsyncCallback回调将一个方法分为两段,也不用注册异步完成事件。 F#是一个强类型的函数式编程语言,现在是2.0版本,在VS2010中... 阅读全文
浙公网安备 33010602011771号