lucene.net所有版本源代码下载地址

  lucene.net所有版本源代码下载地址,包括lucene.net1.4.3到最新版本的lucene.net3.03都可以在apache.org的svn站点中找到,下载地址如下https://svn.apache.org/repos/asf/lucene.net/tags/
http://www.w3dev.cn/article/20121115/lucene.net-all-version-download-url.aspx

EntLib实现ASP.NET页面的自动授权

该页面,自动化授权可以通过下图得到证实:当前用户为Foo和Bar时,页面得以正常显示;而当我们以 Baz的身份登录后,显示Access denied。二、AuthorizationFilterAttribute  这里我吸取了ASP.NET MVC基于AuthorizationFilter的授权方式,不同的是AuthorizationFilter在ASP.NET MVC中以特性的方式应用到Controller类型和Action方法上,这里我们则将它应用到Web页面对应的类上。 AuthorizationFilterAttribute作为授权筛选器特性的基类定义如下,由于多个特性可以同时应用到
http://www.w3dev.cn/article/20121108/EntLib-ASP.NET-Automatic-authorization.aspx

json.js与jquery冲突too much recursion/Stack Overflow

  json.js文件和jquery序列化JSON对象为键值对的方法param产生冲突,导致json.js文件中的toJSONString方法重复调用自身从而堆栈溢出出现too much recursion【firefox】/Stack Overflow【IE浏览器】错误。  产生too much recursion/Stack Overflow这个问题主要是jquery调用ajax方法时,如果参数为json对象,jquery会调用param方法序列化json对象为键值对,param方法中使用了for语句遍历json对象,而json.js对object对象扩展了toJSONString方法,
http://www.w3dev.cn/article/20121010/json.js-jquery-Conflict-too-much-recursion-Stack-Overflow.aspx

JSON.stringify介绍

students[2] = I love you; var json = JSON.stringify(students,switchUpper); function switchUpper(key, value) { return value.toString().toUpperCase(); } alert(json);/scriptvar json = JSON.stringify(students, function (key,value) {
http://www.w3dev.cn/article/20121009/JSON.stringify.aspx

ASP.NET MVC Razor介绍:View编译原理

iew文件编译类型名称的字符串,具体显示效果下图所示。与上图显示的View类型名称相比较,我们会发现它们是一致的。  上面我们简单地介绍ASP.NET MVC以目录为单位的动态View编译,有人可能会问一个问题:编译生成的程序集存放在哪里?在默认情况下,View文件被动态编译后生成的程序集被临时 存放在ASP.NET的临时目录%WinDir%\Microsoft.NET\Framework\{Version No}\Temporary ASP.NET Files\下,不过我们可以通过如下所示的配置节system.web/compilation的 tempDirectory 属性来改变动态编译
http://www.w3dev.cn/article/20120911/ASP.NET-MVC-Razor-View.aspx

ASP.NET MVC Razor介绍:RazorView

ext, null, null), writer, startPage); } }三、实例演示:自定义View模拟RazorView的View呈现机制  为了让读者了解RazorView实现 View呈现的本质,我们按照其实现原理自定义一个简单的RazorView类型。我们在一个ASP.NET MVCWeb应用中定义了如下一个表示自定义RazorView的SimpleRazorView类型。SimpleRazorView直接实现了 IView接口,在构造函数中初始化的属性ViewPath表示View文件的虚拟路径。 public class SimpleRazorView: IVie
http://www.w3dev.cn/article/20120911/ASP.NET-MVC-Razor-RazorView.aspx

ASP.NET MVC Razor介绍:IoC在View激活过程中的应用

(Type serviceType) { return this.Kernel.GetAll(serviceType); } }  我们演示的是一个针对多语言支持的场景,为了让View上输出的一些内容随着当前线程的UICulture而动态地变化,我们在一个ASP.NET MVC应用中定义如下一个读取资源内容抽象类ResourceReader。这里资源是一个宽泛的概念,并不对存储方式作强制的约束,我们可以使用资源文 件也可以使用数据库来存储资源内容。简单起见,ResourceReader仅仅定义了一个唯一GetString方法获取指定名称的字符串。 public
http://www.w3dev.cn/article/20120911/ASP.NET-MVC-Razor-IoC-View.aspx

ASP.NET MVC Razor介绍:RazorViewEngine

w对指定的View进行释放 回收操作。ReleaseView方法在RazorViewEngine的实现很简单,如果指定的View对象的类型实现IDispose接口,它会直接 调用其Dispose方法。下图所示的UML体现了Razor引擎涉及的相关类型/接口以及它们之间的相互关系。  在《ASP.NET MVC Razor介绍:RazorView》一文中我们创建了一个用于模拟RazorView的SimpleRazorView,现在我们为它创建一个对应的RazorViewEngine,我们直接在该实例项目中添加如下一个SimpleRazorViewEngine。 public class Sim
http://www.w3dev.cn/article/20120911/ASP.NET-MVC-Razor-RazorViewEngine.aspx

ASP.NET MVC View呈现[设计篇]

面我们介绍 的各种ActionResult要复杂得多,ASP.NET MVC内部设计了一个扩展的View引擎实现了最终的View呈现工作。一、View引擎中的View  ASP.NET MVC为我们提供了两种View引擎,它们针对不同的动态View设计方式。一种是传统的Web Form引擎,由于该引擎下View的设计与我们定义.aspx页面一致,又称为ASPX引擎。另外一种则是本书默认采用同时也是推荐使用的Razor引 擎。在两种View引擎的工作机制之前,有一个必须要知道的问题:View如何表示?提到View,很多ASP.NET MVC的开发人员可能首先想到的就是定义UI界面的.aspx文
http://www.w3dev.cn/article/20120910/ASP.NET-MVC-View-Design.aspx

ASP.NET MVC View呈现[实例篇]

  在《ASP.NET MVC View呈现[设计篇]》篇中通过对View引擎的总体介绍讲述了从ViewResult的创建到View呈现的原理,为了让读者对View引擎及其View呈现机制具有一个深刻的认识,我们自定义一个简单的用于呈现静态HTML的StaticFileViewEngine。 在一个通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用中,我们定义了如下一个针对于静态HTML内容呈现的自定义StaticFileView。 StaticFileView实现了IView接口,在实现的Render方法中读取制定文件的内容写入作为参数的TextWriter。
http://www.w3dev.cn/article/20120910/ASP.NET-MVC-View-Demo.aspx

ASP.NET MVC ActionResult本质:EmptyResult & ContentResult

NET MVC应用中我们定义了如下一个HomeController,其中定义了4个无参数的Action方法。Foo返回一个RedirectResult对 象,Bar的返回类型为viod,Baz返回值为Null,而Qux则返回一个double类型的数字。 1: public class HomeController : Controller 2: { 3: //其他成员 4: public ActionResult Foo() 5: { 6: return new RedirectResult(http://www.asp.net
http://www.w3dev.cn/article/20120909/ASP.NET-MVC-ActionResult-EmptyResult-ContentResult.aspx

ASP.NET MVC ActionResult本质:FileResult

ntentType, string fileDownloadName); 30: }五、实例演示:通过FileResult发布图片  为了让读者对FileResult具有更加深刻地认识,我们通过一个实例来演示如何通过FileResult来对外发布图片。在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用中,我们在根目录下添加一个名为images的子目录来存放发布的.jpg图片,然后我们定义如下一个 HomeController。 1: public class HomeController : Controller 2: { 3: publ
http://www.w3dev.cn/article/20120909/ASP.NET-MVC-ActionResult-FileResult.aspx

ASP.NET MVC ActionResult本质:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult

的索引,对于暂时重定向则不会。 1: //1、Redirect 2: HTTP/1.1 302 Found 3: Server: ASP.NET Development Server/10.0.0.0 4: Date: Wed, 13 Jun 2012 09:34:15 GMT 5: X-AspNet-Version: 4.0.30319 6: X-AspNetMvc-Version: 4.0 7: Location: http://www.asp.net 8: Cache-Control: private 9: Content-Type: text/html; charset=utf-8
http://www.w3dev.cn/article/20120909/ASP.NET-MVC-ActionResult-HttpStatusCodeResult-RedirectResult-RedirectToRouteResult.aspx

ASP.NET MVC ActionFilter介绍

对象,设置的ActionResult直接作为其 Result属性,而Cancel属性被设置为True。我们现在考虑的问题是:之前的ActionFilter的OnActionExecuted是否 还被执行呢?  为了弄清楚这个问题,我们来创建一个测试程序。在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用中我们定义了如下三个ActionFilter(FooAttribute、BarAttribute和 BazAttribute),它们都继承自我们自定义的FilterBaseAttribute。在FilterBaseAttribute中实现的 OnActionEx
http://www.w3dev.cn/article/20120906/ASP.NET-MVC-ActionFilter.aspx

自定义BuildProvider生成ASP.NET代码

DOM定义生成代码的结构和基于T4的代码生成方式为ASP.NET应用提供了两种不同方式的代码生成解决方案,还有第三种选择自定义BuildProvider。[文中涉及的源代码从这里下载]一、BuildProvider是什么?  对 于ASP.NET应用的开发者来说,你可能不知道什么是BuildProvider,但是你几乎无时无刻不在使用它所带来的代码生成机制。当你创建一 个.aspx文件的时候,为什么会自动创建对应源代码?当你在该.aspx页面中以XML的方式添加一个按钮,源代码中为什么会自动添加一个同名的属性。 实际上,ASP.NET就是通过一个特殊的BuildProvider实现了将.as
http://www.w3dev.cn/article/20120719/selfdefined-BuildProvider-create-asp.net-code.aspx

ASP.NET MVC的筛选器

GlobalFilterCollection Filters { get; } 4: }  到目前为止,我们已经介绍了ASP.NET MVC默认提供的三种FilterProvider,以及各自采用得Filter提供机制。当用于注册FilterProvider的静态类型在加载的时 候,会默认创建这三种类型的对象并将其作为表示全局FilterProvider集合的Providers属性值,具体的逻辑体现在如下的代码片断中。也 就是说,在默认的情况下ASP.NET MVC会采用这三种FilterProvider来提供所有的Filter对象。 1: public static class F
http://www.w3dev.cn/article/20120709/ASP.NET-MVC-filter.aspx

ASP.NET MVC AuthorizationFilter

))); 14: } 15: }  我们直接运行该程序并在浏览器中通过输入相应的地址来访问这两个Action,并以查询字符串的形式指定它们的两个参数。为了检验ASP.NET MVC对请求输入的验证,我们将表示参数foo的查询字符串的值设置为为script/script。如下图所示,Action1能够正常地被调用,而Action2在调用过程中抛出异常 ,并提示请求中包含危险的查询字符串。  在ASP.NET MVC Model元数据IMetadataAware接口中我们谈到可以通过AllowHtmlAttribute特性来定义表示Model元数据的ModelMetadata的 Re
http://www.w3dev.cn/article/20120709/ASP.NET-MVC-AuthorizationFilter.aspx

ASP.NET MVC异步Action定义和执行原理

原理。一、基于线程池的请求处理  ASP.NET 通过线程池的机制处理并发的HTTP请求。一个Web应用内部维护着一个线程池,当探测到抵达的针对本应用的请求时,会从池中获取一个空闲的线程来处理该 请求。当处理完毕,线程不会被回收,而是重新释放到池中。线程池具有一个线程的最大容量,如果创建的线程达到这个上限并且所有的线程均被处于忙碌状 态,新的HTTP请求会被放入一个请求队列以等待某个完成了请求处理任务的线程重新释放到池中。  我们将这些用于处理HTTP请求的线程称为工作线程(Worker Thread),而这个县城池自然就叫做工作线程池。ASP.NET这种基于线程池的请求处理机制主要具有如下两
http://www.w3dev.cn/article/20120708/ASP.NET-MVC-asynchronous-action-defined-execute.aspx

ASP.NET MVC同步与异步[上篇]

er直接通过对指定的类型进行反射来提供对应的实例对象,所以对于前面两个步骤返回的对象 均为Null,所以默认创建出来的ActionInvoker类型为AsyncControllerActionInvoker。我们可以通过如下一个简 单的实例来验证这一点。在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用中,我们创建了如下一个默认的HomeController,在Action方法Index中直接通过 ContentResult将ActionInvoker属性的类型名称呈现出来。 1: public class HomeController : Control
http://www.w3dev.cn/article/20120708/ASP.NET-MVC-asynchronous-synchronous-I.aspx

ASP.NET MVC同步与异步[下篇]

  关于ASP.NET MVC对请求的处理方式(同步或者异步)涉及到的五个组件,在《ASP.NET MVC同步与异步[上篇]》 中我们谈了三个(MvcHandler、Controller和ActionInvoker),现在我们来谈余下的两个,即 ControllerDescriptor和ActionDescriptor,这五个组件的执行并非孤立的,而是具有议定的关系。相信读者认真阅读了这 两篇文章后,会对整个请求的处理方式有一个深刻的理解。四、ControllerDescriptor的同步与异步  如果采用ControllerActionInvoker,Action总是以同步的方式来直接,但
http://www.w3dev.cn/article/20120708/ASP.NET-MVC-asynchronous-synchronous-II.aspx

jquery easyui datagrid数据源为json文件问题

tagrid插件使用.json文件为数据源,通过非http协议访问【就是直接拖进浏览器查看效果】,能正常加载.json文件并且生成datagrid数据源。但是通过http协议访问示例代码时,无法加载json文件生成datagrid的数据源。  这个是由于服务器软件,如iis的配置MIME类型或者一些配置不正确导致的。  默认iis是没有json文件的mime映射的,所以请求json文件会出现404【GET请求】或者405 Method Not Allowed【POST请求】错误,导致无法加载json文件。  解决这个问题,可以有2种办法。1)在iis中给网站添加json文件的mime类型,内
http://www.w3dev.cn/article/20120629/jquery-easyui-datagrid-datasource-json-file.aspx

ASP.NET MVC客户端jQuery验证

读者对jQuery的验证框架可能不太熟悉,为此我们来做一个简单的实例验证。  虽然演示jQuery验证使用一个单纯的HTML文件就可以了,但是在这里我们还是通过Visual Studio的ASP.NET MVC项目模板创建一个空的Web应用,这样做有两个目的:其一、项目在创建过程中会自动添加包含jQuery本身及其验证插件的.js文件;其二,可以 确保我们现在使用的用于验证的.js文件和ASP.NET MVC真正使用的.js文件是一致的。我们创建如下一个默认的HomeController,在Action方法Index中将默认的View呈现出来。 1: public class HomeCo
http://www.w3dev.cn/article/20120622/ASP.NET-MVC-client-jQuery-validate.aspx

ASP.NET MVC客户端jQuery Model验证

验证失败后的错误消息。该span元素的CSS类型为field-validation-valid,我们可以通过它来定制错误消息 的显示样式。二、客户端验证规则的生成  ASP.NET MVC在利用jQuery进行客户端验证的时候,虽然验证规则并没有采用其原生的方式通过被验证元素的class属性来提供,但是却可以通过data-val-{rulename}的命名模式提取相应的验证规则属性值,并最终得到一样验证规则,ASP.NET MVC只需要对两种作简单的适配即可。  我们现在关心的是当我们调用HtmlHelperTModel相应的扩展方法将Model对象的某个属性以表单输入元素的形式呈现的时候是如
http://www.w3dev.cn/article/20120622/ASP.NET-MVC-client-jQuery-Model-validate.aspx

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

age 23: }; 24: options.messages[agerange] = options.message; 25: });三、AgeRangeAttribute的应用  现在我们将AgeRangeAttribute 应用到一个简单的ASP.NET MVC应用中。在通过VS的ASP.NET MVC项目模板创建的空Web应用中,我们定义了如下一个简单的Person类型,我们定义的AgeRangeAttribute 应用到了表示出生日期的BirthDate上,并将允许的年龄上、下限设置为18和30。 1: public class Person 2: {
http://www.w3dev.cn/article/20120622/ASP.NET-MVC-client-self-defined-validate.aspx

ASP.NET MVC Model验证-ValidationAttribute

24: return base.IsValid(value, validationContext); 25: } 26: }  那么这样一个RangeIfAttribute特性真的能够按照我们期望的方式进行验证吗?为此我们通过Visual Studio的ASP.NET MVC项目模板创建了一个空的Web应用,我们将上面的Employee类型定义其中,然后创建一个具有如下定义的HomeController。在 Action方法Index中,我们创建了一个DataAnnotationsModelValidatorProvider对象,通过它获取针对 Employ
http://www.w3dev.cn/article/20120618/ASP.NET-MVC-Model-ValidationAttribute.aspx

ASP.NET MVC Model验证-DataAnnotationsModelValidator

  对于ASP.NET MVC基于标注特性的Model验证,很多人只知道应用在数据类型及其属性上用于定义验证规则和错误消息的ValidationAttribute。通过《ASP.NET MVC Model验证-ModelValidator》 的介绍,我们知道了最终用于进行Model验证的是一个叫做ModelValidator的组件。ValidationAttribute对应的 ModelValidator为DataAnnotationsModelValidator,这篇简短的文章为你介绍ASP.NET MVC是如何针对Validation来创建DataAnnotationsModelVali
http://www.w3dev.cn/article/20120618/ASP.NET-MVC-Model-DataAnnotationsModelValidator.aspx

ASP.NET MVC Model验证-ValidationAttribute示例

为止,为了能够将验证特性应用于Action方法的参数,我们创建了自定义的ActionInvoker、 ModelValidatorProvider和ModelBinder。为了验证它们是否能够最终实现我们期望的验证效果,我们将它们应用到一个简单的 ASP.NET MVC应用中。六、实例演示  在通过Visual Studio的ASP.NET MVC项目模板创建的空的Web应用中,我们创建了一个具有如下定义的HomeController。我们重写了CreateActionInvoker 方法,如果调用基类同名方法返回一个ControllerActionInvoker对象,那么我们返回一个 Pa
http://www.w3dev.cn/article/20120618/ASP.NET-MVC-Model-ValidationAttribute-demo.aspx

ASP.NET MVC Model多种验证规则

ASP.NET MVC的Model验证确是Model驱动的,因为验证规则以验证特性的形式应用到Model类型及其属性上。这样的验证方式实际上限制了Model类型 在基于不同验证规则的使用场景中的重用。通过上一篇文章《ASP.NET MVC Model验证-ValidationAttribute示例》的扩展我们将验证特性直接应用在参数上变成了可能,这从一定程度上解决了这个问题,但是只能解决部分问题,因为应用到参数的验证特性只能用于针对参数类型级别的验证,而不能用于针对参数类型属性级别的验证(源代码从这里下载)。一、同一个Model在采用不同的验证规则  现在我们通过利用对ASP.NET MVC
http://www.w3dev.cn/article/20120618/ASP.NET-MVC-Model-Validatio-rules.aspx

ASP.NET MVC Model验证-ModelValidator

ic readonly ValidationResult Success; 5: }二、DataAnnotationsModelValidator  稍微了解ASP.NET MVC的读者应该知道,我们可以通过数据类型的某个属性上应用相应的验证标注特性(比如RequiredAttribute、 RangeAttribute和RegularExpressionAttribute等)的方式来定义相应的验证规则,这是ASP.NET MVC 提供的默认Model验证方式。这种基于数据标注(Data Annotation)特性的验证对应的ModelValidator类型为DataAnnotations
http://www.w3dev.cn/article/20120615/ASP.NET-MVC-Model-ModelValidator.aspx