第二章
准备
在开始开发MVC框架应用程序之前必须先做好准备。在这一章,我们将通过准备用于开发的工作平台描述必备的工具和部署服务器。
准备工作站
对于MVC框架发展一些小工具集是必不可少的。他们包括Visual Studio 2010,网络平台安装程序和IIS Express可选组件。这里,我们将解释如何安装这些工具。
Visual Studio 2010安装
第一步是安装Visual Studio2010,为MVC开发准备一个工作站。Visual Studio是微软的完整开发环境(IDE),如果你有做过微软平台的开发,那这个工具就是你最可能用到的。
对于VS2010微软生产了不同范围的版本,每一个都有不同的功能和价格。在这本书中,我们将需要以下版本:
Visual Studio 2010 Professional
Visual Studio 2010 Premium
Visual Studio 2010 Ultimate
我们需要的功能在这三个版本中都能满足,同时这三个版本能平等地适合我们的目的。
安装VS你将安装所有的Windows应用程序,并确保你有最新的版本和安装服务包。
使用Visual Web Developer Express
微软开发了一系列VS的轻量级版本,如Express版本。为了网站开发的Express版本称为Visual Web Developer 2010 Express。
微软区分Express版本的方法之一是通过删除内置用于支持测试的模块。正如我们将在接下来的章节解释,在MVC框架中测试是一个完整的部分,并且我们将演示如何做到使用包含在Visual Studio中使用的测试设施。
为了使用Web Developer Express进行MVC框架开发,你将需要第三方工具来进行测试,如NUnit (http://www.nunit.org)。我们不提供任何细节上的安装或者使用NUnit,Web Developer Express用户的领域问题我们无法遵照本书的例子。总而言之,你能使用Web Developer Express进行MVC框架应用程序开发,但你会发现这本书更具挑战性,如果你有你自己的问题你将自己解决。
Visual Studio 2010旗舰版完整安装7.8GB ,包括编程语言和我们不需要的功能。如果你不想放弃这么多空间,您可以选择这本书需要的组件,如图2-1所示
我们只需要Visual C#和Visual Web Developer功能。默认的情况下,在Visual Studio
安装过程包括SQL Server 2008 Express,但我们建议您取消此选项并按照指示,在本章的后面安装的数据库时再获取最新版本。
被安装的确切的功能将取决于VS的版本和你使用度饿操作系统,但只要你选择了图2-1中展现的选项,你就安装了MVC框架开发所需的一些关键组件。这些包括了VS中的.NET4.0框架和一些将使用到的不公开的功能,例如内置的开发服务器应用和单元测试支持。
注意:Visual Web Developer的功能将导致在Visual Studio 2010安装程序时安装2.0版本的MVC框架。不过不要担心。我们会在后面篇章中告诉你如何升级到MVC 3。
安装必须的软件
微软发行一些你需要的组件在不同的时间段。例如,当VS2010发行时,MVC框架还处于2.0版本。最简单的方式来更新我们需要(MVC 3版本的所有重要组件)的组件是使用Web平台安装程序(WebPI)。
WebPI是由微软提供一个免费的工具,下载并安装组件和产品整体的微软网络平台。
一个广泛的可用软件包含流行的第三方支持组件。
获得WebPI ,可到http://microsoft.com/web/downloads点击下载链接,如下图2-2所示。(微软时常更新改变页面的布局,所以当你访问时可能会看到一些东西不同)
图2-2 下载Web平台安装程序
下载和运行安装程序。名字可能会让人疑惑:这是安装WEBPI。下载的是一个普通的Windows安装程序,是安装WebPI的工具。你将用这个工具下载和安装Web应用组件。
平台安装程序将自动开始,并看到选择窗口,如图2-3。
图2-3WebPI安装
整个屏幕上方有三个类别。我们感兴趣的组件在产品类别。通过滚动列表找到组件,选择屏幕左侧的子类,或使用搜索框:
Visual Studio 2010 SP1
SQL Server Express 2008 R2
ASP.NET MVC 3 Tools Update
对于每一个组件点击添加按钮。当你完成你的选择后,点击安装按钮开始下载和安装过程。
注意:如果你希望你的开发环境和你的数据运行在同样的电脑下,那就使用Web平台安装程序在工作台安装SQL Server Express。如果你希望它们运行在不同的机器,只需运行数据库机器上的WebPI 。
安装可选组件
有一些额外的组件你可能考虑使用:MVC框架的源代码,IIS Express和SQL Server2008Management Studio Express。对于这些这本书都没有要求,但我们发现它们一天比一天有用。
MVC框架源代码
微软公开MVC的源代码因此它能被下载和检查。使用MVC框架你将不需要源代码,并且在这本书你也不用参考源代码,但是当你遇到无法解决的问题时,去参考源代码是非常有必要的。
你能获取MVC框架源代码来自于http://aspnet.codeplex.com。微软发布的许可证是合理的,但是你将确保你愿意受限制。
IIS Express
Visual Studio 包括的Web服务你能用于运行和调试你的MVC框架程序。在很大程度上,它能做你需要的任何事,并且我们将使用它贯穿于整本书。
内置服务器是如此的有用,被称为ASP.NET开发服务器,不支持IISZ中的可用的全方位选择。如一个简单的例子,内置服务器不支持安全套接协议(SSL)。当开发一个应用程序很大可能是使用完整版而不是简易版的IIS,但你失去的是可与ASP.NET与Visual Studio紧密集成开发服务器。
另一种方法是使用IIS Express,它包括从内置的服务器的紧密集成和设置IIS的完整功能。
IIS Express是一个开发服务器的意义,你不应该尝试用它来实现你的应用程序真正的用户,但它使得开发过程更加符合一旦已经部署了应用程序该如何运作。你能获取IIS Exiress通过安装VS2010 Service Pack 1。
SQL Server 2008 R2管理Studio Express
所有我们在这本书中执行的数据库操作都可以通过Visual Studio来完成,但对于更广泛的数据库管理,我们要使用SQL Server管理工具。你可以得到SQL Server 2008 Management Studio通过WebPI工具。
服务器准备
工作站是MVC领域的唯一部分。你同样需要一个服务来部署你的应用程序。MVC框架的应用程序必须部署在IIS,也就是微软的应用程序服务。
小建议 如果您渴望开始MVC框架,那么你就可以留在这部分的说明章,直到你准备好部署应用程序,在第23章的说明。
IIS包括大多数版本的Windows,如Windows Vista和Windows 7的客户端版本。我们不建议部署MVC应用程序的客户端操作系统。有一些非常基本的限制,使他们不适合所有的Windows版本,除了最小的和最简单的Web应用程序。我们建议您使用Windows Server。
当前我们所写的版本是Windows Server 2008 R2中IIS 7.5,我们将对这个版本提供的说明。
注意MVC应用程序可能被部署于IIS 6版本,这个版本的IIS包含在 Windows Server 2003和2003 R2中。在这本书中我们不打算覆盖IIS 6,但是部署过程在http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx 中得到。
在后面的章节中,我们描述只有最低配置服务器所需的步骤,以便您可以部署和运行一个MVC框架应用程序:启用Web服务器角色,安装.NETFramework 4版和Web部署工具,并设立网络部署。我们假设你安装了最新的Windows Server。最佳实践的信息关于生产环境中部署Windows Server和IIS ,请访问IIS学习中心http://www.iis.net ,在那里你会发现大量的参考信息。
使用主机托管服务
你可以使用一个主机托管服务商提供的主机代替你自己的服务器部署你的应用。ASP.NET主机托管市场极具活力和竞争力。你可以从无数的价格中选择合适的配置-这一切都来自于和他人共享的功能强大的专用服务器。
当你注册成为主机托管服务商的用户,他会向你发送你购买的服务管理方法和应用程序的部署说明。确保你的供应商支持ASP.NET 4.0就可以了,即使他没有在服务器上安装MVC 3框架也不要紧,我们在第23章有一个不错的方法可以解决这个问题。
启用Web服务器角色功能
我们要做的第一个工作就是在Windows Server的Web服务器(IIS)上启用角色功能。打开服务器管理器,在“角色摘要”部分选择“添加角色”,如图2-4所示。
图2-4 向Windows Server中添加角色
这样添加角色向导将会启动。你会看到一个可用角色列表(角色的数量取决于你使用的Windows Server 2008 R2的版本)。选中Web服务器(IIS)角色前的复选框,点击“下一步”按钮。
继续点“下一步”配置向导,直至出现“选择角色服务”界面,它将以列表形式显示Web服务器(IIS)可用的角色服务。确保下面的两个服务被选中:
ASP.NET(在应用程序开发类里面)
管理服务(在管理工具类里面)
ASP.NET角色服务是必须要安装的,没有它你就无法安装和运行MVC框架应用程序。管理服务角色服务是我们接下来将要安装的Web部署工具所必须的。
继续点“下一步”,向导将会出现“确认安装选择”界面,这里面显示了我们前面选择的角色和需要启用角色服务,确认无误后,点击“安装”按钮。
安装过程完成以后,你应该能使用浏览器来测试IIS的基本功能了。通过自已的浏览器(访问http://localhost)或者通过另外一台机器上的浏览器(访问http://你服务器的IP地址)即可导航到你服务器上的默认URL。如果你的安装没有什么的问题的话,你将会看到如图2-5所示的IIS 7.5欢迎页面。
图2-5 IIS欢迎页面
安装附加组件
下一步我们要做的就是通过服务器上的WebPI获取并安装附加的软件组件。你只需要下面的两个组件:
.NET Framework version 4.0
Web部署工具2.0
MVC框架依赖于.NET 4.0,它也是运行本书示例的必要条件。
我们将在第23章介绍如何部署Web项目。使用Web部署工具只是众多的部署MVC应用程序的方法之一,不过如果你想重现本书中的内容你需要用到它。
同时这里你也可以选中安装SQL Server 2008 R2。安装SQL Server Express过程中,系统会提示你选择身份验证模式。此处选择混合验证模式,并为sa用户创建一个密码。请特别注意这里。
MVC框架如此重要在这里却是可选项,这看上去很奇怪,其实是因为你在生成部署包的时候还可以选择包含框架库文件。这点对于你要将一个应用程序部署到一个不受你管理的服务器特别有用。第23章中将演示这个技术。
注意:WebPI的一个特色功能就是它能够自动处理依赖问题。例如,如果你只选择了安装ASP.NET MVC,WebPI将自动选中并安装.NET 4.0。
如果你没有专用的数据库服务器,你可以在运行IIS的服务器上安装SQL Server。这一步是可选的,不过在第23章中,我们将把如何部署数据库作为应用程序部署过程的一部分加以说明,那时我们还需要你提供一个SQL Server数据库实例。
Web部署设置
在第23章,我们将会演示如何使用Web部署功能在服务器上部署MVC框架应用程序。不过,在你还没学会它之前,你需要学会如何配置IIS以处理请求。
注意:我们将Web部署配置为允许服务器上以至于任意具有管理员权限的帐户都可以被用来部署我们的MVC框架应用程序。如果使用非管理员用户进行部署将会是一个漫长的过程。相关的教程请参见http://learn.iis.net/page.aspx/984/configure-web-deploy。
在开始菜单找到并打开Internet信息服务(IIS)管理器。在窗口左侧的“连接”面板中,选择以计算机名显示的服务器标识。我们的服务器叫做WIN-2008R2,你可以在图2-6中看见它。
图2-6 使用IIS管理器
双击“管理服务委派”图标,你可以滚动主窗口的在其“管理”部分找到它(如图2-6)。单击“编辑功能设置”链接,并在弹出的窗口确定“允许管理绕过规则”被选中,如图2-7所示,单击“确定”关闭这个对话框。
图2-7 编辑管理服务委派的功能设置
单击“返回”按钮回到服务器管理的主页面。双击“管理服务”图标,选中“启用远程连接”选项,然后再点击“启动”链接,如图2-8所示。
图2-8 启用管理服务
注意 当服务器重启时管理服务不会自动启动,要想让它自动启动,在控制面板-服务里将Web Management Service的启动类型改为自动或自动(延迟启动)。
要测试Web部署功能是否能够正常工作,打开浏览器访问下面的URL:
https://<服务器名>:8172/MsDeploy.axd
Web部署服务需要使用一个安全连接(这就是为什么我们要使用https而不是常规的http)在8172端口上运行。如果一切正常,你会看到一个证书警告,然后会提示你输入用户名和密码。(如果你看不到用户名和密码输入提示,很可能是防火墙阻止了8172端口。)
获取更多信息
我们会努力让本书变得很全面,但在实际工作你肯定会遇到一些问题和情况,是我们没有预见的和涉及到的。这里有一些资源可能会对我们解决问题有所帮助:
微软开发者网络(MSDN):这上面基本包含了.NET程序设计的全部资源,当然也包括有关ASP.NET和MVC框架的参考信息。而且涉及到ASP.NET的内容还非常广泛,不过在我们写这么书的时候,有关MVC框架的内容还比较少。
MVC框架源代码:我们经常发现我们时不时的会用到MVC框架源代码,它可以从http://aspnet.codeplex.com网站上得到。正如你所知道的,MVC框架建立在一系列的约定基础上,而源代码正是了解这些约定工作方式的权威参考。
ASP.NET官方网站:包含ASP.NET所有内容的主要网站就是http://www.asp.net,这里有许多非常好的教程。同时,许多由微软开发团队成员撰写的博客也值得一读,对我们解决一些常见的问题也会有所帮助。
IIS官方网站:IIS应用程序服务器包含了非常多的功能,很多是和MVC框架无关。如果你想了解更多的有关运行和配置IIS的知识,你可以在http://www.iis.net上找到丰富的信息。
JQuery官网:前面我们说过,MVC框架中使用了JQuery这个JavaScript库。如果你想直接使用JQuery,你可以在http://Jquery.com和http://JQueryUI.com获得所有详细说明。
Stackoverflow.com网站:我们最喜欢的一个程序设计网站就是http://stackoverflow.com,它是一个关于程序设计方方面面的问答式的社区,也包含了关于MVC框架的议题。
结语
本章中,我们讲述了如何配置你的工作站,如何对你的服务器完成基本配置。在下一章,我们将演示如何创建一个简单的应用程序。在本书的最后部分,第23章,会教你如何在你的服务器上部署MVC框架应用程序。