共 9 页: 上一页 1 2 3 4 5 6 7 8 下一页 末页
摘要:关于C#/.NET性能在上次的例子里面,第二次执行Console.WriteLine()方法时,会完全跳过JITCompiler编译。因为第一次已经完全编译为了本地CPU指令并且返回了指令在内容里的入口地址,所以这一次会直接跳转到该方法的内存地址处执行代码,当然也会比第一次的性能要高。C#性能较之C/C++低在哪?在托管环境中,完成代码的编译会经历两个过程:1.源码首先被编译为IL代码2.执行代码时,IL会经历第二次编译为本地CPU指令,这个过程需要分配更多的内存和占用CPU资源。怎么客观地看待这个部分?1.首先必须承认二次编译的确损害了性能,并且分配了动态内存。分配动态内存意味着当程序终止时 阅读全文
posted @ 2012-07-10 18:59 Rt-张雪飞 阅读 (3078) 评论 (17) 编辑
摘要:前言 《CLR via C#》(Jeffrey Richter著)——.NET 界的经典之作,相读"恨晚",读的过程写点笔记跟大家分享: 【我也推荐大家看英文版,能够直接领会原意 】认识CLR一个被多种编程语言使用的运行时。核心功能包括:内存管理,程序集加载,安全性,异常处理,以及线程同步。这些核心功能能够被所有以它作为目标平台的语言使用,实际上,在运行时,CLR并不关心程序员使用哪一种语言编写源码的。微软开发了很多以CLR作为目标平台的语言编译器,如:C++/CLI,C#,VB,F#,Iron Python,Iron Ruby,以及IL汇编。另外还有很多其他的公司,学校开 阅读全文
posted @ 2012-07-06 11:22 Rt-张雪飞 阅读 (2987) 评论 (8) 编辑
摘要:最近的项目里面使用了比较多的UpdatePanel和repeater搭配使用,但是在IE9里面常常会出现这样一个问题:当显示非常多的数据时,总有一行或几行错位,从而导致样式乱掉了。本来使用UpdatePanel是为了简化自己的工作并提升下用户体验,这样一来有违初衷。其实完全可以不使用UpdatePa... 阅读全文
posted @ 2012-06-27 18:35 Rt-张雪飞 阅读 (1628) 评论 (2) 编辑
摘要:准备要部署的应用程序在正式进入部署MVC程序到IIS之前,会介绍一些关于应用程序迁移到生产环境之前探测错误以及一旦进入生产环境最大化性能的技术。同时也会展示关于流线型部署过程的有用的功能。检测视图错误Razor视图会在服务器需要的时候编译而不是在VS里面生成项目时编译,正常情况下,探测视图编译错误的方式是系统的访问每一个action,从而让每一个view都能够呈现。这显然是非常乏味而且不会一直成功的技术,特别是在基于不同的model状态呈现不同的view的时候。我们可以启用一个特别的项目选项来启用我们的视图并且报告任何编译错误。我们可以编辑一个.csproj的文件,设置MvcBuildView 阅读全文
posted @ 2012-06-20 00:04 Rt-张雪飞 阅读 (2648) 评论 (8) 编辑
摘要:使用windows验证(Using Windows Authentication)在软件术语里面,验证的意思是测定身份。这个跟授权是完全分开的,授权是让合适的人做合适的事情,授权通常在验证之后发生。ASP.NET的验证功能也紧紧围绕识别访问者的身份并且设置决定实际的访问者能够做什么的安全上下文(security context)。最简单的验证方式就是把这个任务委托给IIS(这通常适合内部系统)。在配置文件里启用Windows身份验证,如果我们使用的Intranet应用程序模版,默认会使用这个配置。如下:<configuration> <system.web> <a 阅读全文
posted @ 2012-06-15 23:28 Rt-张雪飞 阅读 (4172) 评论 (5) 编辑
摘要:本章会简要阐释对用户而言操纵HTTP请求(例如,修改cookies,隐藏或禁用表单字段等)是多么容易的事情,这会让我们在正确的思维框架下清楚地考虑web的安全性。接着会依次介绍常见的避免攻击的指南,并了解它们的工作原理以及它们怎么应用到MVC框架里面。还会描述如果阻止每一种攻击的形式或者是更换的并设计出来。所有的输入都是可以被伪造的(All Input Can Be Forged)有这样一句话:不要相信用户的输入。用户的输入有哪些种类呢?如下所示:①传入的URLs(包括Request.QueryString[]的值)②表单提交的值(Request.Form[]的值,包括隐藏域和禁用的字段值)③ 阅读全文
posted @ 2012-06-13 23:14 Rt-张雪飞 阅读 (3363) 评论 (18) 编辑
摘要:Ajax是Asynchronous JavaScript and XML的缩写,正如我们看到的,XML部分已经不再像过去那样重要,但是异步的部分却让Ajax非常有用。它是一种在后台从服务端请求数据的模型,而不用重新加载网页。使用MVC无入侵的Ajax(Using MVC Unobtrusive Ajax)MVC框架包含了对无入侵的Ajax的支持,而且是基于jQuery库的。下面创建示例项目UnobtrusiveAjax,如下:View Code //modelusing System.ComponentModel.DataAnnotations;namespace UnobtrusiveAja 阅读全文
posted @ 2012-06-01 23:25 Rt-张雪飞 阅读 (3477) 评论 (12) 编辑
摘要:模型验证是确保接收的数据适合绑定到model的这样的一个处理过程,当不适合的时候能够提供一些有用的信息来帮助用户改正他们问题。模型验证可以分为两个部分:1.检查我们接收的数据。2.帮助用户修正问题。非常庆幸的是,MVC框架对模型验证提供可扩展支持,本章会展示基本功能的使用以及阐释一些针对验证过程的高级技术。添加一个ModelValidation项目添加一个视图模型Appointment,如下:View Code using System.Web;using System.ComponentModel.DataAnnotations;namespace ModelValidation.Model 阅读全文
posted @ 2012-05-28 08:20 Rt-张雪飞 阅读 (5748) 评论 (19) 编辑
摘要:模型绑定(Model Binding)是使用浏览器发起Http请求时的数据创建.NET对象的过程。我们每一次定义带参数的action方法时就已经依靠了模型绑定——这些参数对象是通过模型绑定创建的。这一章会介绍模型绑定的原理以及针对高级使用必要的定制模型绑定的技术。理解模型绑定(Understanding Model Binding)想象下我们创建了一个控制器如下:View Code using System; using System.Web.Mvc; using MvcApp.Models; namespace MvcApp.Controllers { public class ... 阅读全文
posted @ 2012-05-15 18:03 Rt-张雪飞 阅读 (4999) 评论 (10) 编辑
摘要:在前面出现过Html.CheckBoxFox和Html.TextBoxFox等HTML helper方法,这些方法用来指定必要的HTML元素编辑数据。MVC框架还支持另一种方法实现,称为模板化视图helper(辅助)方法,在这些方法里面我们可以指定哪一个模型对象或属性被显示或编辑,并且让MVC框架自己判断应该呈现哪一种类型的HTML元素(是TextBox还是CheckBox)。这一章里面,会介绍这些方法并阐释怎样调优和完全替换model模版系统的部件1.使用模板化的视图Helpers(Using Templated View Helpers)模版化视图helpers的创意就是它们更加灵活。我们 阅读全文
posted @ 2012-04-23 22:49 Rt-张雪飞 阅读 (5593) 评论 (5) 编辑
共 9 页: 上一页 1 2 3 4 5 6 7 8 下一页 末页