<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[思胜.net培训，最好.net培训，C#，asp.net培训专家]]></title>
<link>http://blog.pfan.cn/sisheng</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[Contoso&nbsp;大学&nbsp;-&nbsp;使用&nbsp;EF&nbsp;Code&nbsp;First&nbsp;创建&nbsp;MVC&nbsp;应用]]></title>
		<link>http://blog.pfan.cn/sisheng/53437.html</link>
		<description><![CDATA[Contoso 大学 - 使用 EF Code First 创建 MVC 应用 


	&nbsp;


	转自郝冠军老师博客 ：http://www.cnblogs.com/haogj/archive/2012/04/04/2431924.html


	
		&nbsp;
	
	
		Contoso 大学 Web 示例应用演示了如何使用 EF 技术创建 ASP.NET MVC 应用。示例中的 Contoso 大学是虚构的。应用包括了类似学生注册、课程创建以及教师分配等功能。
	
	
		这个系列教程展示了创建 Contoso 大学应用的步骤。你可以 下载完整 的程序，或者按照教程一步一步创建它，这个教程中使用 C# 进行演示，下载的代码中同时包含 C# 和 VB 实现。如果你有与这个教程没有直接相关的问题，可以张贴到 ASP.NET Entity Framework forum&nbsp; 或者 Entity Framework and LINQ to Entities forum.
	
	
		这个教程假设你知道如何使用 Visual Studio 来开发 ASP.NET MVC 程序，如果不是这样，basic ASP.NET MVC Tutorial 是不错的起点。如果你以前使用 Web Form 开发，可以先看看 Getting Started with the Entity Framework 和 Continuing with the Entity Framework&nbsp; 教程。
	
	
		在开始之前，确信下列软件已经安装在你的计算机上：
	
	
		
			Visual Studio 2010 SP1 或者 Visual Web Developer Express 2010 SP1 ( 如果你使用这两个链接，下面的项目将会被自动安装 )
 
			
				ASP.NET MVC 3 Tools Update 
				
					Microsoft SQL Server Compact 4.0 
					
						Microsoft Visual Studio 2010 SP1 Tools for SQL Server Compact 4.0]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2012-04-19 10:07:00</pubDate>
		</item>
				<item>
		<title><![CDATA[思胜.net培训&nbsp;授课视频免费下载]]></title>
		<link>http://blog.pfan.cn/sisheng/53429.html</link>
		<description><![CDATA[&nbsp;思胜.net高级培训.net基础视频(1)
下载地址：http://dl.dbank.com/c0b7ykfqnz
思胜.net高级培训 排序算法授课视频
下载地址：http://dl.dbank.com/c07qvbjib6
思胜.net高级培训.net基础视频(2)
下载地址：http://dl.dbank.com/c0kouwm6qn
思胜.net高级培训.net基础视频(3)
下载地址：http://dl.dbank.com/c08ngocanp
思胜.net高级培训.net基础视频(4)
下载地址：http://dl.dbank.com/c0nkabbob5
思胜.net高级培训.net基础视频(5)
下载地址：http://dl.dbank.com/c0l5qqgwxg
思胜.net高级培训.net基础视频(6)
下载地址：http://dl.dbank.com/c0zbas28da
思胜.net高级培训.net基础视频(7)
下载地址：http://dl.dbank.com/c07vfsw4nx
思胜.net高级培训.net基础视频(8)--&nbsp;&nbsp; “疯狂的比赛”（第二版）
下载地址：http://dl.dbank.com/c01wbqnc46
思胜.net培训专家 C#事件应用实例--“疯狂的比赛”（第一版）
http://dl.dbank.com/c0lnraa2tl
思胜.net高级培训 ADO.NET部分学习视频
http://dl.dbank.com/c0wfd6k3pe
思胜.net高级培训 database数据库部分学习视频
http://dl.dbank.com/c0420pnp9b
思胜.net培训 HTML 视频专题
http://dl.dbank.com/c071avwcbd
思胜.net培训 web开发技术视频专题
http://dl.dbank.com/c0dcbkthex
思胜.net培训最新视频 CSS部分授课视频
http://dl.dbank.com/c0wpzxzca0
思胜.net培训最新视频 javascript部分授课视频
http://dl.dbank.com/c0fza6ej7m
思胜.net培训 javas]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2012-04-12 21:17:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;10.&nbsp;完成导航和站点的设计]]></title>
		<link>http://blog.pfan.cn/sisheng/53427.html</link>
		<description><![CDATA[ASP.NET MVC 音乐商店 - 10. 完成导航和站点的设计 


	
		&nbsp;我们已经完成了网站的大部分工作，但是，还有一些添加到站点的导航功能，主页，以及商店的浏览页面。
	
	
		创建购物车汇总部分视图
	
	
		我们希望在整个站点的页面上都可以看到购物车中的数量。
	
	
		 
	
	
		&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
	
	
		通过创建一个部分视图，然后添加到网站的布局中就可以容易地完成，
	
	
		前面看到，在 ShoppingCart 控制器中包含了一个名为 CartSummary 的 Action 方法返回分部视图。
	
	
// // GET: /ShoppingCart/CartSummary [ChildActionOnly] public ActionResult CartSummary()
{ var cart = ShoppingCart.GetCart(this.HttpContext);
    ViewData["CartCount"] = cart.GetCount(); return PartialView("CartSummary");
}
	
	
		&nbsp;
	
	
		在这个 Action 方法上点击鼠标右键，或者在 Views/ShoppingCart 文件夹夹上点击鼠标右键，选择创建新视图，命名为 CartSummary ，注意选中创建分部视图的复选框。
	
	
		&nbsp; 
	
	
		&nbsp;
	
	
		CartSummary 分部视图非常简单，仅仅链接到 ShoppingCart 的 Index ，显示当前购物车中的数量，完整的代码如下：
	
	
@Html.ActionLink("Cart (" + ViewData["CartCount"] + ")", "Index", "ShoppingCart", new { id = "cart-status" })
	
	
		&nbsp;
	
	
		在网站的任何页面中都可以包含]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2012-04-12 20:54:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;9.&nbsp;注册和结账]]></title>
		<link>http://blog.pfan.cn/sisheng/53425.html</link>
		<description><![CDATA[ASP.NET MVC 音乐商店 - 9. 注册和结账 


	
		在这一节，我们将创建结账的控制器 CheckoutController 来收集用户的地址和付款信息，我们需要用户在结账前注册账户，因为这个控制器需要授权。
	
	
		当用户点击结账 Checkout 按钮的时候，用户将会被导航到结账的处理流程中。
	
	
		
	
	
		&nbsp;
	
	
		如果用户没有登录，将会被提示需要登录。
	
	
		
	
	
		&nbsp;
	
	
		一旦用户成功登陆，用户就可以看到地址和付款的视图。
	
	
		
	
	
		&nbsp;
	
	
		一旦用户填写了这个表单并提交，他们将会看到订单的确认页面。
	
	
		
	
	
		&nbsp;
	
	
		视图访问不存在的订单，或者不属于你的订单，将会看到错误页面。
	
	
		
	
	
		合并购物车
	
	
		在匿名购物的时候，当用户点击结账 Checkout 按钮，用户会被要求注册和登陆，用户会希望继续使用原来的购物车，所以，在匿名用户登录之后，我们需要维护购物车。
	
	
		实际上非常简单，因为 ShoppingCart 类已经提供了一个方法，通过当前的用户名来获取购物车中所有的项目，在用户注册登录以后，我们只需要调用这个方法。
	
	
		打开在成员管理和授权中添加的 AccountController 类，增加一个 using 来引用 MvcMusicStore.Models，然后，增加 MigrateShoppingCart 方法。
	
	
private void MigrateShoppingCart(string UserName)
{ // Associate shopping cart items with logged-in user  var cart = ShoppingCart.GetCart(this.HttpContext);
    cart.MigrateCart(UserName);
    Session[ShoppingCart.CartSessionKey] = UserName;
}
	
	
		&nbsp;]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2012-04-12 20:51:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;8.&nbsp;使用&nbsp;Ajax&nbsp;更新的购物车]]></title>
		<link>http://blog.pfan.cn/sisheng/53424.html</link>
		<description><![CDATA[ASP.NET MVC 音乐商店 - 8. 使用 Ajax 更新的购物车 


	
		在这个项目中，我们将允许用户在没有注册登录的情况下将专辑加入购物车，但是，在完成结账的时候必须完成注册工作。购物和结账将会被分离到两个控制器中：一个 ShoppingCart 控制器，允许匿名用户使用购物车，另一个 Checkout 控制器处理结账。我们先从购物车的控制器开始，然后在下一部分来处理结帐。
	
	
		加入购物车，订单和订单明细的模型类
	
	
		在购物车和结账的处理中将会使用到一些新的类，在 Models 文件夹上右键，然后使用下面的代码增加一个新的类 Cart.
	
	
using System.ComponentModel.DataAnnotations; namespace MvcMusicStore.Models
{ public class Cart
    {
        [Key] public int RecordId { get; set; } public string CartId { get; set; } public int AlbumId { get; set; } public int Count { get; set; } public System.DateTime DateCreated { get; set; } public virtual Album Album { get; set; }
    }
}
	
	
		&nbsp;
	
	
		这个类非常类似我们前面使用的类，除了 RecordId 属性上的[Key] 标注之外。我们的购物车拥有一个字符串类型的名为 CartId 的标识，用来允许匿名用户使用购物车，但是,CartId 并不是表的主键，表的主键是整数类型的名为 RecordId的字段，根据约定，EF CodeFirst 将会认为表的主键名为 CartId 或者 Id，不过，如果需要的话，我们可以很容易地通过标注或者代码来重写这个规则。这里例子演示了在使用 EF CodeFirst 的时候。当我们的表不是约定的样子时，我们也不必被约定所局限。
	
	
		下一步，使用下面的代码增加订单 Order 类。
	
	
using System.]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2012-04-12 20:47:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;7.成员管理和授权]]></title>
		<link>http://blog.pfan.cn/sisheng/53423.html</link>
		<description><![CDATA[ASP.NET MVC 音乐商店 - 7.成员管理和授权 


	
		目前，我们的 Store Manager 可以被任何人访问，让我们限制一下对站点管理的访问。
	
	
		增加 AccountController 和 相应的视图
	
	
		在全功能的 ASP.NET MVC3 Wb 应用程序与空的 ASP.NET MVC3 应用程序模板之间的区别在于，空的应用程序模板中没有包含账号控制器，我们可以从新创建的全功能的 ASP.NET MVC 应用程序中复制相应的文件，来增加账号控制器。
	
	
		另外，在你下载的 MvcMusicStore-Assets.zip 文件中，也包含了账号管理的文件。
	
	
		复制下面的内容到你的网站中。
	
	
		
			复制 AccountController.cs 到 Controllers 目录中
			
				复制 AccountModels.cs 到 Models 目录中
				
					在 Views 目录中创建 Account 目录，然后复制相应的四个视图。
				
					
					
						注意修改控制器和模型类的命名空间为 MvcMusicStore。AccountController 类应该为 MvcMusicStore.Controllers 命名空间，AccountModels 类应用使用 MvcMusicStore.Models 命名空间。
					
					
						更新之后的解决方案看起来如下所示：
					
					
						
					
					
						使用 ASP.NET 站点配置工具增加管理员账号
					
					
						&nbsp;
					
					
						在我们授权访问网站之前，需要先创建一个管理员账号，最简单的方式就是使用内建的 ASP.NET 站点管理工具创建。
					
					
						在解决方案管理器上，点击站点配置工具
					
					
						
					
					
						稍等片刻，将会弹出一个浏览器窗口，点击首页中的安全选项卡，然后，点击屏幕中间的“启用角色”链接。]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2012-04-12 20:45:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;6.&nbsp;使用&nbsp;DataAnnotations]]></title>
		<link>http://blog.pfan.cn/sisheng/53069.html</link>
		<description><![CDATA[转载自思胜.net培训高级讲师郝冠军博客http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html
在前面的创建专辑与编辑专辑的表单中存在一个问题：我们没有进行任何验证。字段的内容可以不输入，或者在价格的字段中输入一些字符，在执行程序的时候，这些错误会导致数据库保存过程中出现错误，我们将会看到来自数据库的错误信息。
通过为模型类增加数据描述的 DataAnnotations ，我们可以容易地为应用程序增加验证的功能。DataAnnotations 
允许我们描述希望应用在模型属性上的验证规则，ASP.NET MVC 将会使用这些 DataAnnotations ，然后将适当的验证信息返回给用户。
为专辑表单增加验证
我们将会使用下列的 DataAnnotations

Required 必须 – 表示这个属性是必须提供内容的字段 DisplayName 显示名 – 定义表单字段的提示名称 StringLength 字符串长度 – 定义字符串类型的属性的最大长度 Range 范围 – 为数字类型的属性提供最大值和最小值 Bind 绑定 – 列出在将请求参数绑定到模型的时候，包含和不包含的字段 ScaffoldColumn 支架列 - 在编辑表单的时候，需要隐藏起来的的字符 

注意：更多关于模型验证的信息，请参考：http://msdn.microsoft.com/zh-cn/library/ee256141(VS.100).aspx
打开 Album 类，首先增加下面的 using 语句，这些语句引用了 DataAnnotations 使用的命名空间。
using System.ComponentModel;
 using System.ComponentModel.DataAnnotations;
 using System.Web.Mvc; 复制代码

 
然后，更新属性，增加显示和验证的 DataAnnotations
namespace MvcMusicStore.Models
{
[Bind(Exclude = "AlbumId")]
 public class Album
{
[ScaffoldColumn(false)]
 public int]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-11 21:56:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;5&nbsp;通过支架创建编辑表单&nbsp;续]]></title>
		<link>http://blog.pfan.cn/sisheng/53068.html</link>
		<description><![CDATA[转载自思胜.net培训高级讲师郝冠军博客http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html

查看 StoreManager 控制器的代码
现在，Store Manager 控制器中已经包含了一定数量的代码，我们从头到尾重新过一下。
首先，在控制器中包含了标准的 MVC 控制器的代码，为了使用方便，还可以引用我们的模型类所在的命名空间 
MvcMusicStore.Models。控制器还拥有了一个私有的 MusicStoreEntities 的私有成员，以方便控制器中的每个 Action 
访问数据库。
using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.Mvc;
 
 using MvcMusicStore.Models;
 
 namespace MvcMusicStore.Controllers
{
 public class StoreManagerController : Controller
{
MvcMusicStore.Models.MusicStoreEntities storeDB
= new MvcMusicStore.Models.MusicStoreEntities(); 复制代码

Index 和 Details Action
Index 视图获取专辑的列表，包含每一个专辑引用的流派和艺术家信息，向我们在前面 Store控制器的 Browse时候看到的，Index 
视图中需要包含对于链接到的流派和艺术家对象来显示相关的信息，所以，在 Index 的 Action 方法中，需要包含这些数据。
//
// GET: /StoreManager/

 public ActionResult Index()
{
 var albums = storeDB.Albums.Include("Genre").Include("Artist");
 return View(albums.ToList());
} 复制代码

在 Details 方法中，类似于]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-11 21:54:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;5.&nbsp;通过支架创建编辑表单]]></title>
		<link>http://blog.pfan.cn/sisheng/53067.html</link>
		<description><![CDATA[转载自思胜.net培训高级讲师郝冠军博客http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html

在上一章，我们已经从数据库获取数据，然后显示出来，这一章，我们将允许编辑数据。
创建 StoreManagerController 控制器
我们将要创建称为 StoreManager 的控制器，对于这个控制器，我们将通过使用 ASP.NET MVC3 
中提供的脚手架功能来实现。在添加控制器的窗口中，注意需要选中 为”创建”、”更新”、”删除”和”详细信息” 方案添加操作方法。

在我们点击添加按钮之后，你将会看到 ASP.NET MVC3 的支架机制已经为你在 Controllers文件夹中添加了一个名为 
StoreManagerController 的控制器。
原文中说：创建了一个带有本地实体框架变量的 StoreManagerController 控制器
但是，在我的 VS2010 中实际并没有创建实体框架变量，在前面的数据访问部分，我机器上的实体框架也是手工下载，并安装的。
原文还说，创建了 Create.cshtml，Delete.cshtml，Details.cshtml，Edit.cshtml，以及 
Index.cshtml 视图。 这些视图使用了强类型的 Album 类型。
但是，在对话框中并没有选择实体类型的选项，所以，在我这里，实际上也没有创建相应的视图，更没有强类型一说了，不过，这些其实都是小问题。

新的 StoreManager 控制器包含了 CRUD （创建，读取，更新，删除）控制器 Action ，原文中说：这些控制器知道如何使用 Album 
模型和实体框架的上下文对象来访问数据。
由于并没有创建实体上下文对象，所以，我这里也没有实际的数据访问代码存在，在下面的说明中，我们将手工创建这一部分。
所以，我们手工在控制器中增加数据访问的实体上下文对象。
namespace MvcMusicStore.Controllers
{
 public class StoreManagerController : Controller
{
MvcMusicStore.Models.MusicStoreEntities storeDB
=]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-11 21:52:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;4.&nbsp;数据访问]]></title>
		<link>http://blog.pfan.cn/sisheng/53066.html</link>
		<description><![CDATA[转载自思胜.net培训高级讲师郝冠军博客http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html
 
上一次，我们使用了模拟的数据从控制器发送到视图模板。现在，我们开始使用真正的数据库，在这个教程中，我们将指导如何使用 SQL Server Compact 
版的数据库，它经常被称为 SQL CE, 来作为数据库引擎，SQL CE 
是一个免费的，嵌入式的，基于文件的数据库系统，不需要任何的安装或者配置，很适合本地的开发使用。
注意：可能需要单独安装 SQL Server Compact 4.0 数据库以及 Entity 
Framework。在我的机器上，这两个软件都是单独安装的。
当然，你还可以使用熟悉的 SQL Server 数据库。
Microsoft SQL Server Compact 4.0
Microsoft SQL Server Compact 4.0 是一种免费的嵌入式数据库，也就是说，你不需要安装数据库系统。软件开发人员可以使用它来构建 
ASP.NET 网站和 Windows 桌面应用程序。SQL Server Compact 4.0 
的优点是：占用的空间小，支持在应用程序文件夹中专门部署其二进制文件，轻松地使用 Visual Studio 和 WebMatrix 
进行应用程序开发，以及无缝地将架构和数据迁移到 SQL Server。
SQL Server Compact 4.0 安装文件的下载地址：http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=033cfb76-5382-44fb-bc7e-b3c8174832e2&amp;displaylang=zh-cn
不过，你完全可以不使用这个数据库，还继续使用原来的 SQL Server, 在我的机器上，我不能直接使用服务器资源管理器来查看 SQL CE 4 
的的数据。如果使用原来的 SQL Server 就不会有这个问题了。
ADO.NET Entity Framework 4.1
EF 4.1有哪些新玩新儿？
1. 首先当然是DbContext 
API，它是基于以前版本中的ObjectContext和其他一]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-11 21:50:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;3.&nbsp;视图与模型]]></title>
		<link>http://blog.pfan.cn/sisheng/53059.html</link>
		<description><![CDATA[转载自思胜.net培训高级讲师郝冠军博客http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html 
上一篇中有同学提到为什么不使用视图，而使用字符串，这一篇我们就开始使用视图来处理。我们已经可以从控制器的 Action 中返回一个字符串，这可以帮助我们更好地理解 Controller 是如何工作的。但是对于创建一个 Web 
程序来说还是不够的。下面我们使用更好的方法来生成 HTML，主要是通过模板来生成需要的 HTML，这就是视图所要做的。 
增加视图模板
为了使用视图模板，我们需要将HomeController 中的 Index 这个 Action 的返回类型修改为 
ActionResult，然后，让它像下面一样返回一个视图。
public class HomeController : Controller  
{
      //
      // GET: /Home/
      public ActionResult Index()
      {
          return View();
      }
}
 
上面的修改表示我们将使用视图来替换掉原来的字符串，以便生成返回的结果。
现在为我们的项目增加一个视图，为达到这个目的，我们将光标移到 Index 
方法内，然后，点击鼠标的右键，在右键菜单中选择“添加视图(D)…”，这样将会弹出增加视图的对话框。 

添加视图的对话框允许我们快速，简单地创建一个视图模板，默认情况下，视图的名称使用当前 Action 的名字。因为我们是在 Index 这个 Aciton 
上添加模板，所以添加视图对话框中，视图的名字就是 Index，我们不需要修改这个名字，点击添加。

在点击添加之后，Visual Studio 将会创建一个名为 Index.cshtml的视图模板，放置在 \Views\Home 
目录中，如果没有这个目录，MVC 将会自动创建它。

Index.cshtml 所在文件夹的名称和位置是很重要的，它是根据ASP.NET MVC 的约定来指定的。目录名称 \Views\Home 
，匹配的控制器就是 HomeController ，视图模板的名字 Index，匹配将要使]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-07 00:18:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;2.控制器]]></title>
		<link>http://blog.pfan.cn/sisheng/53057.html</link>
		<description><![CDATA[转载自思胜.net培训高级讲师郝冠军博客http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html

在典型的 Web 应用中，用户请求的 URL 地址通常映射到保存在网站中的文件上，例如，当用户请求 /Products.aspx 的时候，或者 
/Products.php 的时候，很可能是在通过处理 Products.aspx 或者 Products.php 文件来完成任务。
ASP.NET MVC 的处理方式则不同，它没有映射到文件上，相反，将这些 URL 地址映射到类的方法上，这些类被称为“控制器”，控制器用来接受 HTTP 
请求，处理用户的输入，获取或者保存数据，其中的处理方法称为 Action，然后将回应发送到客户端，可能是显示了一个 HTML 
的网页，下载一个文件，重定向到另外一个地址等等。
默认的路由配置
在新创建的项目中，打开 Global.asax.cs 文件，可以看到如下的代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MvcMusicStore
{
    // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明，
    // 请访问 http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection rout]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-05 23:48:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;1&nbsp;创建项目]]></title>
		<link>http://blog.pfan.cn/sisheng/53051.html</link>
		<description><![CDATA[转载自思胜.net培训高级讲师郝冠军博客http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html

我们的项目从在 Visual Studio 中的文件菜单中选择“新建”，选择“项目”开始。

 
然后，选择 C# 中的 Web 模板组，在右边的项目模板中选择 ASP.NET MVC3 Web 应用程序，在项目的名称输入框中，输入 
MvcMusicStore ，点击确定。

 
这时，你会到第二个对话框，允许我们设置这个项目关于 MVC 的一些设置，确认选中了“空”项目模板，视图引擎选中 Razor ，点击确定。

 
这样我们的项目就创建成功了！
我们看一下在这个项目都创建了哪些内容。

在 ASP.NET MVC 中使用了下面的一些基本的命名约定



  文件夹
 
  功能
 


  /Controllers
 
  控制器接受来自浏览器的请求，进行处理，然后向用户返回回应
 


  /Views
 
  视图文件夹保存用户界面的模板
 


  /Models
 
  这个文件夹定义处理的数据
 


  /Content
 
  我们的图片，CSS以及其他任何的静态内容放在这里
 


  /Scripts
 
  放置脚本文件
 


  /App_Data
 
  数据库文件
 



这些文件夹在一个空的 ASP.NET MVC 应用中也会存在，因为 ASP.NET MVC 
的框架默认使用“约定胜于配置”的原则，已经假定这些文件夹有着特定的用途。例如，控制器将会在 Views 
文件夹中寻找相应的视图，而不需要你在代码中显式设置，这样可以节省大量的编程工作，也可以使其他的开发人员更加容易理解你的程序。在创建这个程序的过程 
中，我们将会详细的说明这些约定。]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-04 23:50:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;MVC&nbsp;音乐商店&nbsp;-&nbsp;0&nbsp;概览]]></title>
		<link>http://blog.pfan.cn/sisheng/53049.html</link>
		<description><![CDATA[这是一个系列文章，原文内容出自微软的 MusicStore。
首先对原文内容进行了简单的翻译，以方便大家参考，另外对于其中的部分内容，也进行了简单的分析，使用的 Visual Studio 
也换成了中文版，这样大家看起来也更亲切一些。
下载地址：http://mvcmusicstore.codeplex.com/
 
MVC 音乐店是用来介绍和展示使用 ASP.NETMVC 以及 Visual Studio 进行 Web 
开发的示例应用程序，我们将从基础知识开始，一步一步地进行介绍，因此，初学者也可以去的很好的学习体验。
这个示例程序使用 ASP.NET MVC3 完成，视图部分使用 Razor 引擎，数据库访问使用 EF 
CodeFirst。
这个程序将会创建一个音乐商店，这个程序包括三个主要的部分：购物，结账和管理。

用户可以通过分类浏览唱片。

 
可以查看某张唱片，然后加入到购物车中。

可以查看购物车，删除其中不再希望购买的项目。

在结账的时候，就会提示用户登录，或者注册一个新的账号。

创建新帐号

创建账号之后，用户可以填写完整的送货和结账信息，为了让这个程序简单一些，如果你在优惠券号中输入 FREE 的话，我们会提示一切免费。

下完订单之后，用户会看到一个简单的确认提示。

另外，我们还会提供一个管理员用来创建、修改、以及删除唱片的功能。

这个项目我们将使用 ASP.NET MVC3 和 Visual Studio 完成。其中的知识涉及到数据访问，表单的提交，数据验证，母版页，布局，以及 
AJAX 的更新和验证，用户的登录等等。]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-12-04 08:23:00</pubDate>
		</item>
				<item>
		<title><![CDATA[热烈祝贺郝老师评为2011年10月微软最有价值专家（MVP）]]></title>
		<link>http://blog.pfan.cn/sisheng/52868.html</link>
		<description><![CDATA[热烈祝贺郝老师评为2011年10月微软最有价值专家（MVP）


Microsoft Most Valuable Professional微软

微软最有价值专家(MVP) 是指具备一种或多种微软技术专业知识，并且积极参与在线或离线的社群活动，经常与其他专业人士分享知识和专业技能，受人尊敬、信任，而且平易近人的专家。
实际生活中，人们总是信任专家的建议和反馈。MVP正是这样一群拥有丰富知识和实际经验的微软技术专家。他们不是微软的员工，但是非常乐于通过在线或离线社区的方式帮助技术人士。另一方面，微软公司时刻不忘倾听来自用户的意见反馈，不断开发新产品，改进技术，提高用户体验。MVP代表来自社群的广大用户，他们的专家意见更能协助微软公司了解用户的真实需求。
Most Valuable Professionals（最有价值专家）是微软对上述专家在技术社群专业贡献的一种正式认同。该项目主要目的在于鼓励形成一个充满活力的全球性社群，使得微软和用户之间建立良好的相互关系，增进相互了解。目前主要策略为：



在全球范围内认可MVP 并建立交流渠道 － 通过跨产品、服务和行业的广大社群，嘉奖有影响力和特殊贡献的专家，并赋予他们特殊的资源和权力
 贴近用户、提高体验－ 认可技术专家的特殊贡献，不论他们来自哪个领域、使用何种语言，致力提高使用微软技术的亲身体验
 推动项目日臻完美－ 不断提高对技术专家的支持力度，在全球范围建立协调和沟通网络，增进微软和用户的相互了解



该项目已经运作了17年，在全球90多个国家拥有接近4000多位最有价值专家。
http://news.cnblogs.com/n/117471/]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-10-17 11:37:00</pubDate>
		</item>
				<item>
		<title><![CDATA[微软技术大会Tech·Ed社区之夜&nbsp;(沟通.&nbsp;分享.&nbsp;免费参加)]]></title>
		<link>http://blog.pfan.cn/sisheng/52799.html</link>
		<description><![CDATA[思胜.net培训专家&nbsp;


 
微软技术大会Tech·Ed社区之夜 (沟通. 分享. 免费参加) 

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于微软技术开发者来说，今年是一个技术大年，从云服务Window Azure ，到智能终端Windows Phone，再到全新发布的Windows 8, 无时无刻都体现出“服务+ 设备”的无缝体验，Tech&#8226;Ed 2011开发者社区专场提供了一个大家交流的机会，可以畅谈技术，展望趋势，或者闲话生活。加入我们，一起探讨属于开发者的未来！

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本届Tech&#8226;Ed 2011 的大会日程安排精彩纷呈，除了白天的丰富课程，Tech·Ed首次尝试推出夜间活动- Tech·Ed社区之夜。这是由社区主办的,完全免费的活动。我们取得了业界知名技术社区的鼎力支持，并将最受大家欢迎的微软技术专家邀请到社区活动现场，与广大的技术爱好者面对面零距离沟通。

其中蓝色理想 * WEB技术开发未来探索 活动由 郝老师 组织和演讲，从HTML5&nbsp; css3&nbsp; jquery 到后端技术 框架 云平台等与大家分享WEB技术开发未来探索！

活动详情：
 日期：2011年10月12日&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 时间：19:00 – 21:45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 地点：北京国际饭店会议中心

请大家提交以下信息，思胜.net培训统一给大家报名：

姓名：&nbsp;&nbsp;公司：&nbsp;&nbsp;电话：&nbsp;&nbsp;邮箱：

联系人：张继刚&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;电话： 15001082883&nbsp;&nbsp;&nbsp;&nbsp; qq：602701468]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-09-22 17:37:00</pubDate>
		</item>
				<item>
		<title><![CDATA[思胜.net培训最新实际授课视频迅雷下载地址（清晰版）]]></title>
		<link>http://blog.pfan.cn/sisheng/52796.html</link>
		<description><![CDATA[思胜.net培训最新实际授课视频迅雷下载地址（清晰版）
http://dl.dbank.com/c0682vwj41

大家在学习过程中有任何技术问题可以提问到技术问题讨论版块，思胜帮大家解决，也希望各位有好的学习资源发到思胜的论坛里，大家一起学习共同进步！]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-09-22 10:38:00</pubDate>
		</item>
				<item>
		<title><![CDATA[对面向对象分析与设计与实现的一些看法]]></title>
		<link>http://blog.pfan.cn/sisheng/52792.html</link>
		<description><![CDATA[我对面向对象分析与设计与实现的一些看法 
最近对OO的理解又有了一些新的认识，拿出来和大家分享一下。为了能让大家简单直观清晰的知道我想表达的主要意思，我不说废话了。直接提出问题，然后回答。
1. 什么是真正的对象？
2. 什么是面向对象分析阶段时的对象？ 
3. 什么是面向对象设计阶段时的对象？
4. 什么是面向对象实现阶段时的对象？

1. 真正的对象：
我所理解的真正的对象就是现实生活中客观存在或不存在的真正的对象。这个对象有一个明显的特征就是它具有非常多的状态特征和行为特征。比如一个人是一个对象，他在一生中会经历无数个交互场景，在这个过程中，每个人的行为特征会不断增多，大部分行为是通过后天学习得到的，只有少数行为是先天就具有的；另一方面，对于状态特征也是在时不时的变化，比如你的身高、体重，等等。最后，人因为会参与到不同的交互场景，会导致和他关联的各种关联信息也会不断增多，比如你去上大学，老师给你一张借书卡，此时你就拥有了一张借书卡，可以理解为你多了一个关联信息；哪一天你去参加英语四级考试，考了70分，然后你拥有了一本四级考试证书，上面写这成绩为70分，此时你也同样多了一个关联信息，就是一本英语四级考试证书；
这里我想表达的主要观点是：现实生活中的对象：1）兼具各种场景下的所有状态和行为特征；2）固有状态会时不时的变化，通过参与交互场景还会增加一些关联信息；3）行为会不断增多，一般是通过学习得到；因此，我们从中可以知道，现实生活中的对象肯定不是我们设计软件时候的对象，因为它是如此的复杂，包含了或关联了非常多的状态特征和行为特征；

2. 面向对象分析阶段时的对象：
既然是分析阶段，那我们就不要过多的考虑任何设计阶段的思想。我觉得在分析阶段，我们在分析对象时主要考虑两个方面：1）对象的状态特征变化规律；2）对象的行为特征变化规律；分析阶段，我们往往从某个场景出发，分析该场景中有哪些“对象”，此时的“对象”之所以加双引号是因为它不是真正的对象，而是真正的对象的某个方面，我们在某个场景下只关心对象的某个方面；我觉得分析阶段的对象和现实生活中的对象应该是一致的，或者至少是逻辑上是一致的。也就是说，在面向对象的分析阶段，我们应该将现实生活中我们所理解的对象的一切特征在脑子里描述清楚。比如同一个人，它在不同的场景下（一个场景代表了一个考虑问题的边]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-09-17 10:11:00</pubDate>
		</item>
				<item>
		<title><![CDATA[人月神话介绍及pdf下载]]></title>
		<link>http://blog.pfan.cn/sisheng/52783.html</link>
		<description><![CDATA[人月神话介绍及pdf下载
 

内容简介
《人月神话》原文：The Mythical Man-Month: The Essays on Software Engineering, 2nd ed.在软件领域，很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。

Brooks博士为人们管理复杂项目提供了最具洞察力的见解。既有很多发人深省的观点，又有大量软件工程的实践。本书内容来自Brooks博士在IBM公司System/360家族和OS/360中的项目管理经验。该书英文原版一经面世，即引起业内人士的强烈反响，后又译为德、法、日、俄中等多种语言，全球销量数百万册。确立了其在行业内的经典地位。

在本书第一次出版32年后的今天，我们重新整理了Brooks博士的经典内容，并将国内软件开发领域先行者们对《人月神话》中的实践及系统理论的使用经验和心得集结成册与大家共享，更使本书成为国内从业者的必读经典之一。






作者简介

Frederick P.Brooks,Jr.曾荣获美国计算机领域最具声望的图灵奖（A.M.Turing Award）桂冠。美国计算机协会（ACM）称赞他“对计算机体系结构、操作系统和软件工程作出了里程碑式的贡献”。

Brooks博士是北卡罗莱纳大学Kenan－Flagler商学院的计算机科学教授。他被认为是“IBM 360系统之父”，曾担任360系统的项目经理，以及360系统项目设计阶段的经理。凭借在此项目中的杰出贡献，他与Bob Evans和Erich Bloch在1985年荣获了美国国家技术奖（National Medal of Technology）。Brooks博士早期曾担任IBM公司Stretch和Harvest计算机的体系结构设计师。

Brooks博士创立了北卡罗莱纳大学的计算机科学系，并在1964～1984年期间担任系主任。他还曾任职于美国国家科技局和国防科学技术委员会。Brooks博士目前的教学和研究方向是计算机体系结构、分子模型绘图和虚拟环境设计。






媒体推荐书评

各路英豪品评人月实践
软工经典再启江湖争论

汇集国内软件开发领域先行者们对《人月神话》中的实践及系统理论的使用经验和心得！

Frank Chance

介绍
出版于19]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-09-07 14:12:00</pubDate>
		</item>
				<item>
		<title><![CDATA[&quot;1&quot;的数目]]></title>
		<link>http://blog.pfan.cn/sisheng/52743.html</link>
		<description><![CDATA["1"的数目
给定一个十进制正整数N，写下从1 开始，到N 的所有整数，然后数一下其中出现的所有“1”的个数。
例如：
N= 2，写下1，2。这样只出现了1 个“1”。
N= 12，我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样，1 的个数是5。
问题是：
1. 写一个函数f（N），返回1到N之间出现的“1”的个数,比如f（12）=5。
2. 在32位整数范围内，满足条件“f（N）= N”的最大的N是多少？
&nbsp;
【问题1 的解法一】

这个问题看上去并不是一个困难的问题，因为不需要太多的思考，我想大家都能找到一个最简单的方法来计算f（N），那就是从1 开始遍历到N，将其中每一个数中含有“1”的个数加起来，自然就得到了从1 到N 所有“1”的个数的和。写成程序如下： 


public class OneToN
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 计算某一个数中 1 的个数
&nbsp;&nbsp;&nbsp;&nbsp;private long Count1InAInteger(long n)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long iNum = 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (n != 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iNum += (n % 10 == 1) ? 1 : 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n /= 10;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs]]></description>
		<author><![CDATA[xiake1818]]></author>
		<pubDate>2011-08-17 12:12:00</pubDate>
		</item>
		</channel>
</rss>