WCF 4.0新特性-路由服务示例

评论(0)浏览(80)分类:Asp.Net/C#/WCF
WCF 4.0新特性-路由服务示例  创建连个简单的服务HelloServie和GoodbyeService。假设客户端 不能直接调用这两个服务,需要使用到路由服务作为两者之间的中介。整个消息路由的场景如下图所示,中间的GreetingService.svc就是代表 路由服务,而两个目标服务则通过HelloServie.svc和GoodbyeService.svc表示。路由服务使用的消息筛选器 EndpointAddressMessageFilter,即根据..

WCF 4.0新特性-路由服务

评论(0)浏览(118)分类:Asp.Net/C#/WCF
WCF 4.0新特性-路由服务  在一个典型的服务调用场景中,具有两个基本的角色,即服务的消费者和服务的提供者。从消 息交换的角度讲前者一般是消息的最初发送者,而后者则是消息的最终接收者。在很多情况下,由于网络环境的局限,消息的最初发送者和最终接收者不能直接进行 消息交换,这就需要一个辅助实现消息路由的中介服务,这就是我们接下来要介绍的路由服务。一、..

WCF 4.0新特性-默认绑定和行为配置

评论(0)浏览(76)分类:Asp.Net/C#/WCF
WCF 4.0新特性-默认绑定和行为配置  对于传统的WCF配置系统,无论是绑定的配置还是行为(服务行为和终结点行为)都必须具 有一个名称。而正是通过整个配置名称,它们才能被应用到目标对象(终结点或者服务)上。而在实际的项目开发中,绝大部分服务或者终结点都具有相同的绑定和 行为,如果能够定义一种默认的绑定和行为,这无疑会简化我们的配置。WCF4.0为此提供了一个新的特性..

WCF 4.0新特性-标准终结点与无(.SVC)文件服务激活

评论(0)浏览(115)分类:Asp.Net/C#/WCF
WCF 4.0新特性-标准终结点与无(.SVC)文件服务激活  WCF 4.0的另外两个新特性:标准终结点(Standard Endpoint)和无(.SVC)文件服务激活(File-Less Activation)。前者实现了针对典型通信场景对终结点的定制,后者让你在进行IIS/WAS的服务寄宿中无须定义.svc文件。一、标准终结点  我们知道,绑定的本质就是一系列相关绑定元素的有序集合,而系统绑定就是基于若干典型的通信场景对相关绑定元..

WCF 4.0新特性-默认终结点

评论(0)浏览(92)分类:Asp.Net/C#/WCF
WCF 4.0新特性-默认终结点  很多WCF的初学者是从之前的Web服务上转移过来的,他们非常怀念.asmx Web服务无配置的服务寄宿方式。你只需要在定义Web服务的时候再表示服务操作的方法上应用WebMethodAttribute特性就可以了,完全可以不需要手工进行相应的配置,因为Web服务运行时会自动为你添加默认的配置。但是对于WCF来说,在进行服务寄宿的时候,你必须以编程或者配置的..

ASP.NET MVC Model验证-DataAnnotationsModelValidatorProvider

评论(0)浏览(144)分类:asp.net-mvc
ASP.NET MVC Model验证-DataAnnotationsModelValidatorProvider  DataAnnotationsModelValidator最终是通过它对应的 ModelValidatorProvider,即DataAnnotationsModelValidatorProvider创建的。通过前面的介绍 我们知道它是AssociatedValidatorProvider的子类,后者在用于获取ModelValidator的GetValidators 方法中已经根据指定的Model元数据所有特性创建出来,DataAnnotationsModelValidator只需要从中筛选..

ASP.NET MVC客户端自定义验证

评论(0)浏览(159)分类:asp.net-mvc
ASP.NET MVC客户端自定义验证  ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需 要将相应的ValidationAttribute应用到Model的类型或者属性上即可。对于自定义验证,我们也只需要定义相应的Validation 就可以了,不过服务端验证比较简单,而客户端验证就要稍微复杂一些,本文提供一个简单..

ASP.NET MVC客户端jQuery Model验证

评论(0)浏览(122)分类:asp.net-mvc
ASP.NET MVC客户端jQuery Model验证  在简单了解了Unobtrusive JavaScript形式的验证在jQuery中的编程方式之后,我们来介绍ASP.NET MVC是如何利用它实现客户端验证的。服务端验证最终实现在相应的ModelValidator中,而最终的验证规则定义在相应的 ValidationAttribute中;而客户端验证规则通过HtmlHelperTModel相应的扩展方法(比如 TextBoxFor、EditorFor和EdidtorForModel等)..

ASP.NET MVC客户端jQuery验证

评论(0)浏览(204)分类:asp.net-mvc
ASP.NET MVC客户端jQuery验证  之前我们一直讨论的Model验证仅限于服务端验证,即在Web服务器根据相应的规则对 请求数据实施验证。如果我们能够在客户端(浏览器)对用户输入的数据先进行验证,这样会减少针对服务器请求的频率,从而缓解Web服务器访问的压力。 ASP.MVC 2.0及其之前的版本采用ASP.NET Ajax进行客户端验证,在ASP.NET MVC 3.0中,jQuery验证框架被引入是我们..

ASP.NET MVC Model多种验证规则

评论(0)浏览(165)分类:asp.net-mvc
ASP.NET MVC Model多种验证规则  对于Model验证,理想的设计应该是场景驱动的,而不是Model(类型)驱动的,也 就是对于同一个Model对象,在不同的使用场景中可能具有不同的验证规则。举个简单的例子,对于一个表示应聘者的数据对象来说,针对应聘的岗位不同,肯 定对应聘者的年龄、性别、专业技能等方面有不同的要求。但是ASP.NET MVC的Model验证确是Model驱动的,因为验证..

ASP.NET MVC Model验证-ValidationAttribute示例

评论(0)浏览(129)分类:asp.net-mvc
ASP.NET MVC Model验证-ValidationAttribute示例  ASP.NET MVC默认采用基于标准特性的Model验证机制,但是只有应用在Model类型及其属性上的ValidationAttribute才有效。如果我们能 够将ValidationAttribute特性直接应用到参数上,我们不但可以实现简单类型(比如int、double等)数据的Model验证,还能 够实现一个Model类型,多种验证规则,本篇文章将为你提供相关的解决方案(源代码从这里下..

ASP.NET MVC Model验证-DataAnnotationsModelValidator

评论(0)浏览(107)分类:asp.net-mvc
ASP.NET MVC Model验证-DataAnnotationsModelValidator  对于ASP.NET MVC基于标注特性的Model验证,很多人只知道应用在数据类型及其属性上用于定义验证规则和错误消息的ValidationAttribute。通过《ASP.NET MVC Model验证-ModelValidator》 的介绍,我们知道了最终用于进行Model验证的是一个叫做ModelValidator的组件。ValidationAttribute对应的 ModelValidator为DataAnnotationsModelValidator,..

ASP.NET MVC Model验证-ValidationAttribute

评论(0)浏览(225)分类:asp.net-mvc
ASP.NET MVC Model验证-ValidationAttribute  通过前面的介绍我们知道ModelValidatorProviders的静态只读 Providers维护着一个全局的ModelValidatorProvider列表,最终用于Model验证的ModelValidator都是通过 这些ModelValidatorProvider来提供的。对于该列表默认包含的三种ModelValidatorProvider来 说,DataAnnotationsModelValidatorProvider无疑是最重要的,ASP.NET MVC默认提供的基..

ASP.NET MVC Model验证-ModelValidatorProviders

评论(0)浏览(140)分类:asp.net-mvc
ASP.NET MVC Model验证-ModelValidatorProviders  《ASP.NET MVC Model验证-ModelValidator》介绍用真正用于实施Model验证的ModelValidator,以及用于提供ModelValidator的ModelValidatorProvider《ASP.NET MVC Model验证-ModelValidatorProvider》, 那么对于ASP.NET MVC的Model验证体系来说,最终是通过怎样的方式对ModelValidatorProvider进行注册,又是如何利用它们来创建相应的 ModelVa..

ASP.NET MVC Model验证-ModelValidatorProvider

评论(0)浏览(106)分类:asp.net-mvc
ASP.NET MVC Model验证-ModelValidatorProvider  在《ASP.NET MVC Model验证-ModelValidator》 中我们介绍了ASP.NET MVC用于Model验证的四种ModelValidator,那么这些ModelValidator是如何被创建的呢?ASP.NET MVC的很多组件(比如ModelBinder和Filter)都采用了基于Provider的提供机制,这篇文章为你讲述这些 ModelValidator对应的ModelValidatorProvider。一、ModelValidatorProvider  ..

ASP.NET MVC Model验证-ModelValidator

评论(0)浏览(95)分类:asp.net-mvc
ASP.NET MVC Model验证-ModelValidator  为目标Action方法的执行绑定输入参数的Model绑定过程伴随着对Model 的验证。借助相应的验证特性,我们可以直接以声明的方式在Model类型上定义验证规则,这些规则将会作为Model元数据的一部分。具体在Model绑 定过程中,ModelBinder通过ValueProvider为Model对象的某个属性提供相应属性值之后,会根据定义在基于该属性的Model元 数据的验证规..

ASP.NET MVC Model字典绑定

评论(0)浏览(120)分类:asp.net-mvc
ASP.NET MVC Model字典绑定  在《ASP.NET MVC Model简单复杂类型绑定》、《ASP.NET MVC Model数组绑定》通过创建的实例程序模拟了ASP.NET MVC默认使用的DefaultModelBinder对简单类型、复杂类型以及数组对象的Model绑定。现在我们按照相同的方式来分析基于集合和字典类型的Model绑定是如何实现的。[源代码从这里下载]一、集合  这里的集合指的是除数组和字典之外的所有..

ASP.NET MVC Model数组绑定

评论(0)浏览(181)分类:asp.net-mvc
ASP.NET MVC Model数组绑定  基于数组和集合类型的Model绑定机制比较类似,对于绑定参数类型或者参数类型的某个 属性为数组或者集合,如果ValueProvider根据对应的Key能够匹配多条数据,那么这些数据最终将会转换为绑定的数组/集合的元素。此外,针对 数组/集合的Model绑定还支持基于索引的方式。[源代码从这里下载]一、基于名称的数组绑定  对 于针对NameValueConlle..

ASP.NET MVC Model简单复杂类型绑定

评论(0)浏览(174)分类:asp.net-mvc
ASP.NET MVC Model简单复杂类型绑定  总的来说,针对目标Action方法参数的Model绑定完全由组件ModelBinder来实现,在默认情况下使用的ModelBinder类型为DefaultModelBinder,接下来我们将按照逐层深入的方式介绍实现在DefaultModelBinder的默认Model绑定机制。[源代码从这里下载]一、简单类型  对于旨在绑定目标Action方法参数值的Model来说,最简单的莫过于简单参数类型的情况..

ASP.NET MVC Model绑定ModelBinder

评论(0)浏览(97)分类:asp.net-mvc
ASP.NET MVC Model绑定ModelBinder  Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数。通 过前面的介绍我们知道Action方法的参数通过ParameterDescriptor来描述,ParameterDescriptor的 BindingInfo属性表示的ParameterBindingInfo对象具有一个名为ModelBinder的组件用于完成针对当前参数的 Model绑定。ModelBinder可以看成是整个Model绑定系统的核心,我..

ASP.NET MVC ValueProvider值提供系统:ValueProviderFactory

评论(0)浏览(131)分类:asp.net-mvc
ASP.NET MVC ValueProvider值提供系统:ValueProviderFactory  在ASP.NET Model绑定系统中,用于提供数据值的ValueProvider对象通过ValueProviderFactory来创建。在ASP.NET MVC应用编程接口中,ValueProviderFactory继承自ValueProviderFactory类。本篇文章只要介绍基于ValueProviderFactory的ValueProvider的提供机制,以及如何通过自定义ValueProviderFactory实现我们需要的数据值的绑定方式。一、Valu..

ASP.NET MVC ValueProvider值提供系统:DictionaryValueProvider

评论(0)浏览(96)分类:asp.net-mvc
ASP.NET MVC ValueProvider值提供系统:DictionaryValueProvider  NameValueCollectionValueProvider采用一个 NameValueCollection作为数据源,DictionnaryValueProvider的数据源类型自然就是一个 Dictionnary。NameValueCollection和Dictionnary都是一个键值对的集合,它们之间的不同之处在 NameValueCollection运行元素具有相同的Key,Dictionnary却要求元素的Key具有唯一性。一、DictionaryValueProvider..

ASP.NET MVC ValueProvider值提供系统: NameValueCollectionValueProvider

评论(0)浏览(161)分类:asp.net-mvc
ASP.NET MVC ValueProvider值提供系统: NameValueCollectionValueProvider  在进行Model绑定过程中,需要根据基于Action方法参数的绑定上下文从请求数据 中提取相应的数据以提供相应的数据。具体来说,Model绑定的数据具有多个来源,可能来源于Post的表单或者JSON字符串,或者来源于当前的路由数 据,也可能来源于请求地址的插叙字符串。ASP.NET MVC将这种基于不同数据来源的数据获取/提供机制实现在一个叫做ValuePro..

ASP.NET MVC ParameterDescriptor对象

评论(0)浏览(122)分类:asp.net-mvc
ASP.NET MVC ParameterDescriptor对象  Model绑定是为作为目标Action的方法准备参数列表的过程,所以针对参数的描述才是Model绑定的核心。在ASP.NET MVC应用编程接口中,服务于Model绑定的参数元数据通过ParameterDescriptor类型来表示,而ActionDescriptor的GetParameters方法返回的就是一个ParameterDescriptor数组。  如下面的代码片断所示,ParameterDescriptor同样实现了IC..

ASP.NET MVC ControllerDescriptor与ActionDescriptor的创建机制

评论(0)浏览(103)分类:asp.net-mvc
ASP.NET MVC ControllerDescriptor与ActionDescriptor的创建机制  不论是用于描述Controller的ControllerDescriptor,还是 用于描述Action方法的ActionDescriptor,都具有同步和异步两个版本,那么这些不同类型的ControllerDescriptor 的ActionDescriptor是在什么情况下创建的呢?一、ControllerActionInvoker与AsyncControllerActionInvoker  ControllerDescriptor 的创建设计到一个重要的名为ActionInvo..

ASP.NET MVC ActionDescriptor对象

评论(0)浏览(139)分类:asp.net-mvc
ASP.NET MVC ActionDescriptor对象  在Model绑定过程中会通过激活的Controller类型创建用于描述它的 ControllerDescriptor对象。Controller是一组Action方法的集合,而每一个Action通过 ActionDescriptor对象来表示,在这篇文章中我们就来着重谈谈不同类型的ActionDescriptor。一、ActionDescriptor  用于描述定义在Controller类中的Action方法的ActionDescriptor定义如下。属..

ASP.NET MVC ControllerDescriptor对象

评论(0)浏览(135)分类:asp.net-mvc
ASP.NET MVC ControllerDescriptor对象  ASP.NET MVC应用的请求都是针对某个Controller的某个Action方法,所以对请求的处理最终体现在对目标Action方法的执行。而Action方 法具有相应的参数,所以在方法执行之前必须根据相应的规则从请求中提取相应的数据并将其转换为Action方法参数列表,我们将这个过程称为Model绑 定。在ASP.NET MVC应用编程接口中,Action方法某个参数的元数据通..

ASP.NET MVC Model元数据提供机制的实现

评论(0)浏览(121)分类:asp.net-mvc
ASP.NET MVC Model元数据提供机制的实现  在前面的介绍中我们已经提到过表示Model元数据的ModelMetadata对象最 终是通过一个名为ModelMetadataProvider的组件提供的,接下来我们着重讨论基于ModelMetadataProvider的 Model元数据提供机制及其扩展。一、 ModelMetadataProvider  在ASP.NET MVC的Model元数据相关的应用编程接口中,用于创建Model元数据的ModelMetadataProvider接继承..

ASP.NET MVC Model ListControl

评论(0)浏览(114)分类:asp.net-mvc
ASP.NET MVC Model ListControl  可以创建相应的模板来根据Model元数据控制种类型的数据在UI界面上的呈现方法,还可以通过一些扩展来控制Model元数据本身。在某些情况下通过这两者的结合往往可以解决很多特殊数据的呈现问题,我们接下来演示的实例就是典型的例子。  传 统的ASP.NET具有一组重要的控件类型叫做列表控件(ListControl),它的子类包括DropDownList、ListBox..

ASP.NET MVC Model模板的获取与执行策略

评论(0)浏览(118)分类:asp.net-mvc
ASP.NET MVC Model模板的获取与执行策略  当调用HtmlHelper或者HtmlHelperTModel 的模板方法对整个Model或者Model的某个数据成员以某种模式(显示模式或者编辑模式)进行呈现的时候,通过预先创建的代表Model元数据的 ModelMetadata对象都可以找到相应的模板。如果模板对应着某个自定义的分部View,那么只需要执行该View即可;对于默认模板,则直接可 以得到相应的HTML。本篇文章着重..