摘要: 1.1 本教程的学习内容 在本教程中,你将学会如下内容:如何创建一个ASP.NET MVC的工程。 如何创建ASP.NET MVC的控制器(controller)与视图(view)。 如何使用Entity Framework code-first 范例来创建一个新的数据库。 如何获取和显示数据。 如何编辑数据并且进行数据的有效性验证。 1.2 创建工程 如果要创建一个ASP.NET MVC3的工程时,首先运行Visual Web Developer 2010 Express(本教程中简称“Visual Web Developer”),并且在起始页(start page)中选择“新建项目”。Vi 阅读全文
posted @ 2011-06-11 16:07 董雨 阅读(193) 评论(0) 推荐(0) 编辑
摘要: http://blog.sina.com.cn/s/blog_6ad539a90100orxv.html本教程主要介绍ASP.NET MVC 3的一些基本知识,以及如何使用Microsoft Visual Web Developer Express来建立一个ASP.NET MVC 3的Web应用程序。在开始之前,请确保你已经安装了如下几个开发工具,这些开发工具可以使用Web Platform Installer来统一进行安装。 Visual Studio Web Developer Express with SQL ExpressASP.NET MVC 3SQL Management Stud 阅读全文
posted @ 2011-06-11 16:06 董雨 阅读(141) 评论(0) 推荐(0) 编辑
摘要: ■ Task类相关的时间点 Task类可以被用来执行多个处理。这个时候,想知道的时间点一般有两个。一个是单独一个任务结束的时刻。还有一个是全部任务结束的时刻。这两个时间点可以很容易地被确定。 Task.WaitAny方法与Task.WaitAll方法的参数是一个或多个Task对象。这两个方法的功能分别为返回单个任务结束的时刻与返回所有任务结束的时刻。使用这两个方法,可以很简单的书写代码来创建多个任务并等待它们结束的时刻。task3.cs using System;using System.Threading.Tasks;class Program{ static void Main(strin 阅读全文
posted @ 2011-06-11 16:03 董雨 阅读(292) 评论(0) 推荐(0) 编辑
摘要: PLINQ为查询的并行处理提供了可能性。要并行处理查询操作只要插入AsParallel方法就可以了。 但是问题就出现在并行本身。也就是说,如果没有很好的关于同步的设计的话,出来的数据的顺序可能是乱的,没有经过排序的。因为并行执行的时候,可以同时处理很多数据,但并不确保哪些数据是首先处理结束的。所以,象下面的例子中,如果在查询表达式中插入AsParallel方法,查询出来的结果有可能会发生改变。不经过并行处理的查询操作 using System;using System.Linq;using System.Threading.Tasks;class Program{ static void M. 阅读全文
posted @ 2011-06-11 16:03 董雨 阅读(283) 评论(0) 推荐(0) 编辑
摘要: ■ Task类的基本使用方法 Task类为把线程类进行改良,使之更简便,使用起来更加容易的类。因此,虽然功能相似,但属于两个概念,使用方法也不相同。 要想利用Task类,开始任务,只要调用Task.Factory.StartNew方法就可以了。 task1.cs using System;using System.Threading.Tasks;class Program{ static void Main(string[] args) { // 子任务 var task = Task.Factory.StartNew(() => { for (int i = 0; i < 100 阅读全文
posted @ 2011-06-11 16:02 董雨 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 这里有一张单色(2值)的PNG的图片(1024*1024)。因为是单色,所以只有黑跟白两个值(实际上使用了只有黑跟白两色的8位PNG格式的图片文件)。到底,哪些像素是黑色的,我们编写一个程序来查点一下。同时用它来进行单任务和2~4任务分别进行查点时性能的比较。比较单任务与多任务 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Threading.Tasks;class Program{ public static IEnumerable<Co 阅读全文
posted @ 2011-06-11 16:01 董雨 阅读(217) 评论(0) 推荐(1) 编辑
摘要: 迄今为止,使用多内核的多核计算机还并没有得到广泛的应用。尽管在高端领域,高端服务器的世界里,应用着很多多核计算机系统,但在广大的低端世界里,还是使用着单核或双核。但是另一方面,在笔记本电脑的世界里,也出现了多核笔记本。 “尽管多核时代还只是对未来的预测,但不再是空想了。已经一点点地逐步靠近我们这个世界了”。 当然,还有很多单核,单处理器的计算机被利用着,但这并不单纯是C#等开发语言的应用环境。今天,主CPU的内核数量的增加趋势越来越明显,所以我们已经可以预见广大用户使用多核计算机时代的即将到来,同时以此为目标,开始我们现在的程序开发了。 首先,让我们看一下现实情况,因为只使用到双核,所以对内核 阅读全文
posted @ 2011-06-11 16:00 董雨 阅读(256) 评论(0) 推荐(0) 编辑
摘要: ■ 真的活用了内核吗? 对于想确定是不是真正地活用了内核的人,准备了如下的验证程序。这个程序为,把简单循环所花费的时间分两次进行计算。但是,第一次使用传统方法,第二次使用并行方法。验证程序 using System;using System.Threading.Tasks;class Program{ private const int count = 1000000000; private static void taro() { Console.WriteLine("Taro is busy now"); for (int i = 0; i < count; i+ 阅读全文
posted @ 2011-06-11 16:00 董雨 阅读(180) 评论(0) 推荐(0) 编辑
摘要: ■ dynamic类型与匿名类型 匿名类型是指没有名字,也没有单独定义的类型。严格说来,该类型还是有名字的,只是在C#的源代码中我们看不到这个名字。但是,在4.0版本之前,匿名类型可以被有效利用的范围并不是很大。因为要想在一个方法之外要利用匿名类型并不是不可能的,但是要想在方法之外利用匿名类型,就一定要使用反射。 但是,dynamic类型把这个问题很容易地就给解决了。如果作为dynamic类型来返回,访问它的内容就很简单了。访问使用dynamic类型与匿名类型的对象 using System;class Program{ private static dynamic GetObject() { 阅读全文
posted @ 2011-06-11 15:59 董雨 阅读(311) 评论(0) 推荐(0) 编辑
摘要: ■ dynamic类型 C#从1.0版开始,就可以即使不知道一个对象的类型,在编译时也可以动态访问这个对象的信息。只要使用反射就可以了。使用反射访问对象的成员信息 class A{ public readonly string MyName = "陆凌牛"; public static object GetObjectA() { return new A(); }}class Program{ static void Main(string[] args) { object a = A.GetObjectA(); var name = a.GetType().GetFiel 阅读全文
posted @ 2011-06-11 15:53 董雨 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 两个问题是:◆写程序时少了智能感知;◆运行程序时速度变慢(反射)。今天看完New features in CSharp 4.docx才恍然明白,趁着没事,把东西整理一下,希望能对暂时还不明白dynamic有什么用的朋友提供一些参考。当然,由于本人才疏学浅,不保证所有的观点都是正确的,希望大家用辩证的眼光来看这篇文章,如有错误之处,请大伙批评指正。言归正传,dynamic关键字用于声明一个动态对象,然后通过该动态对象去调用方法或读写属性。在使用C# 2.0或3.0的时候,如果一个对象需要在运行时才能确定,并且没有接口和基类方面的信息,那我们一般使用反射技术来调用这个未知对像的方法或属性,而C# 阅读全文
posted @ 2011-06-11 14:42 董雨 阅读(347) 评论(0) 推荐(0) 编辑
摘要: <!--[endif]--> .NET 4.0引入了一个新概念,叫动态绑定。所谓绑定,就是对类型、成员和操作的解析过程。动态绑定意味着与编译器无关,而与运行时有关。 <!--[endif]--> 一、 基本概念<!--[endif]-->C# 4.0之前的变量声明,在编译时已经决定其类型,虽然C# 3.0提供了var关键字来声明隐式类型,但用var声明的变量终究逃不过编译器的法眼。用dynamic声明变量的好处是,编译器在编译时并不知道它引用对象的确切类型,而要到运行时才知道。因此,我们可以通过动态绑定在运行时来操作一些类型的属性、方法等(如与IronPyt 阅读全文
posted @ 2011-06-11 14:40 董雨 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 【C#4.0】中的dynamic与var的区别注意:var与dynamic这两个关键字,只是看起来很相 似,仅此而已!var表示“变量的类型是在编译时决定的”,但是dynamic表 示“变量的类型是在运行时决定的”。因此,dynamic与var具有截然不同的含义。var让 你在初始化变量时少输入一些字,编译器会根据右值来推断出变量的类型。dynamic更厉害,它告诉编译器,根本就别理究竟是啥类型,运行 时再推断不迟。var只能用于局部变量的定义,你不能把类的属性定义成 var,也不能把方法的返回值类型或者是参 数类型定义成var。dynamic就没有这些局限了。dynamic类型并没有跳过类型 阅读全文
posted @ 2011-06-11 14:39 董雨 阅读(363) 评论(0) 推荐(0) 编辑