ASP.NET网站制作之.NET 4特征聚焦:代码左券仓酷云
竟发现没有太大的帮助。总觉得要用起来,感觉到不了位。因为公司机器的原因,一直没有安装vs.net(也从来没有用过)。以前做asp的时候一直用DW(感觉其代码联想功能不错),可现在到了asp.net却不习惯了。客岁,我们已入手下手在会商Spec#,这是一个基于C#的撑持经由过程左券来举行计划的言语。以左券来计划是构建于诸如静态范例化如许的观点之上的,特定的举措只要在编译时被考证以后才干实行。左券一般利用前置和后置前提的情势来暗示,好比一个参数或前往值永久不克不及为空大概只能包括某个特定局限的值。为了不闪开发职员进修全部诸如Spec#如许的新言语,微软正在构建一个自力于言语的函数库,能够被任何.NET言语所使用。在某些方面,左券看上往相似断言,不外它们实质上存在十分年夜的区分。左券经由过程静态代码剖析的组合来完成,它能被用于编译器外部和内部,和测试框架当中。它们也能被实行,这意味着它们在运转调试版本的时分和断言很相似。让我们来看第一个例子:stringGetDescription(intx){Contract.Requires(x>0);Contract.Ensures(Contract.Result()!=null);假如只看署名,开辟职员只能取得静态范例的信息“GetDescription请求输出一个整数并前往一个字符串”。而经由过程附加左券,开辟职员和工具都能够晓得“GetDescription请求输出一个正整数并前往一个不克不及为空的字符串”。除显式的左券以外,左券反省器也撑持隐式的左券。一个例子就是被零除如许的情形。假如一个类包括一个整数除法,个中的除数是一个变量,那末所有的代码路径都必需包管这个变量不会为零大概会激发一个告诫。假如在这类情形中的变量是一个开放类的属性,那末它也会请求反省每一个子类。关于非联系关系化空值和数组索引也存在一些隐式左券。为了让左券计划更简单,还存在一个ObjectInvariant办法的观点。这个出格的办法只包括左券,能够被注进到每一个办法挪用的开端以包管对象的形态坚持分歧。要侧重注重的是,这个工具要使用到一切办法当中,包含那些来自于其他程序集的子类。别的一个节俭工夫的功效是容易对旧值的会见。鄙人面的例子中,Ensures左券被用于联系关系OldValue语法以断定汇合的数量属性是递增的。PublicSubAdd(valueasObject)Contract.Ensure(Count=Contract.OldValue(Count)+1)固然左券是写在办法之上的,不外它能被编译器主动地移到Return语句之前。因为必要一些体系开支来存储Count的旧值,反省器的这类排序操纵只在调试编译版本中产生。为了撑持函数库开辟职员,公布版本包括了一个援用程序集。比方,Widgets.dll程序集具有的大批左券被提取和安排到了程序集Widgets.Contracts.dll中。这同意客户端开辟职员在使用由函数库开辟职员创立的左券时,仍是能利用更快的公布编译版本。一个更风趣的特征是左券不单单能使用于实践的函数,乃至没有其他完成细节的接口和笼统办法也能具有左券。这是经由过程创立这个接口的一个援用完成来完成,这个援用完成的独一目标就是持有左券。而这个援用完成则经由过程特征以毗连回接口。关于左券的内容没有任何限定。因为不异的左券能够用于静态和运转时反省历程,以是,一个不克不及被评价的束缚大概仍旧同意被其他的反省。左券也能被文档天生器提取为文档信息。关于.NET4中的左券的更多信息,能够细心浏览PDC大旨讲话的前半部分。检察英文原文:.NET4FeatureFocus:CodeContracts本文出自:http://www.infoq.com/cn/news/2008/12/Code-Contracts
觉得J2EE好像有很多工具,比如servlet,jboss,tomcat,ejb什么的,可是微软的.NET怎么什么也没有啊? Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
页:
[1]