第一个ASP.NET项目
ASP.NET MVC高效构建Web应用- 商品搜索 - 京东
(1)打开VS,然后点击“创建新项目”,此时出现“创建新项目”对话框,我们在该对话框上选择C#版本的“ASP.NET Web应用程序(.NET Framework)”,如图2-8所示。
图2‑8
然后点击“下一步”按钮,此时出现“配置新项目”对话框,如图2-9所示。
在这个对话框中,我们需要输入“项目名称”,比如helloworld,确定项目位置,这里在“位置”下面输入D:\ex\myweb,这个路径即使不存在,也会自动建立。另外,框架选择“.NET Framework 4.8”,然后点击右下角“创建”按钮。此时出现“创建新的ASP.NET Web应用程序”对话框,如图2-10所示。
图2‑9
图2‑10
有关项目的创建过程,我们的第一个实例说得详细一点,后面的实例,为了节省篇幅,我们一般就直接说“新建一个基于MVC的项目”了,默认项目名称是test,然后项目默认保存在D:\ex\myweb\下,并且每完成一个实例就清空该目录,因此当开始新建项目时候,就默认为myweb目录下是空的。
微软为ASP.NET 提供了4种用于开发模式,分别为Web Forms(Web窗体)、MVC(Model View Controller模型-视图-控制器)、Web API和Web Pages(单页应用程序)。这4个框架都稳定且成熟,你可以使用其中任何一个框架创建出色的Web应用程序。无论选择哪种框架,你都会随时随地获得ASP.NET的所有优势和功能。
Web Forms又称Web窗体。在这个模式下你可以以传统的拖拽事件驱动模型的方式来生成动态网站,同时利用设计图面以及许多控件和组件,你可以迅速生成带有数据访问的高级的、功能强大的UI驱动型网站。但是需要注意Web窗体开发的模式在现在已经过时,学习价值已经不大了。
MVC 全称为Model-View-Controller,是一种基于模型-视图-控制器的开发模式。MVC模式为你提供了功能强大、基于模式的方法来构建完全分离关注点的动态网站。基于MVC模式的网站有着耦合度低、重用性高、部署快等优点,MVC模式是使用ASP.NET框架开发复杂网站的首选开发模式。
Web API是专门用于构建面向控制器API的应用程序,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的HTTP服务。Web API强调在数据访问层和表示层之间提供通信机制,即Web API通常被用于在Web应用程序和其他应用程序之间共享数据,服务于数据访问的需要。ASP.NET Web API是用于在.NET Framework上搭建基于RESTful风格的、前后端分离架构的应用程序的理想平台。Web API是一个用于构建RESTful Web服务的框架,基于HTTP协议,提供灵活的路由、数据格式序列化和状态管理,能快速开发公开、可靠、高性能的API接口。通过Web API,开发者可以轻松地处理和返回数据,并与客户端通过HTTP完成通信。在现代Web开发中,构建高性能、可扩展的Web服务至关重要。ASP.NET Web API是一个强大的框架,它提供了构建RESTful Web服务的工具和功能。无论是为移动应用程序提供后端支持,还是与第三方平台集成,Web API 都能够满足各种需求,并帮助开发者更轻松地构建功能丰富的应用程序。
Web Pages即单页应用程序,指的是只有一个Web 页面的应用。在这个模式中,你可以使用C# (或 Visual Basic)结合网页的Razor标记语法将C#(Visual Basic)代码嵌入到网页当中,实现C#(Visual Basic)代码和 HTML 、CSS 、JavaScript等服务器代码的结合。值得一提的是,单页应用程序的开发模式是ASP.NET框架三种开发模式中最简单的一种,如果你是个新手,那么Web Pages单页应用程序开发模式是你入门的不错选择。
这几种技术都有优缺点和各自不同的应用,现在我们不做详述。由于目前最流行的开发方式基于MVC,因此我们选择“MVC”,然后点击右下角“创建”按钮。稍等片刻,一个ASP.NET项目框架自动建立起来了,并且可以在解决方案视图下看到已经生成的文件,如图2-11所示。
图2‑11
现在这些文件的作用先不需要去管。只要记住,Controllers文件夹存放控制器相关的代码文件,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信;Models文件夹存放模型相关的代码文件,用于描述要处理的数据以及修改和操作数据的业务规则;Views文件夹存放视图相关的代码文件,用于定义应用程序用户界面的显示方式。这样组合起来就构成了MVC架构。至于其他文件都是一些辅助功能,比如程序启动文件、程序配置文件以及路由配置等。我们对一些文件夹或文件进行一些解释:
- App_Data:用于存储应用程序的数据文件,例如数据库文件或其他本地文件。
- App_Start:包含应用程序的启动配置文件,例如路由配置、日志配置等。
- bn:包含应用程序的二进制文件,例如编译后的DLL文件、第三方库等。
- Content:存放应用程序的静态资源文件,如CSS、JavaScript、图像等。
- Controllers:包含控制器类,用于处理请求并生成响应。
- Models:存放应用程序的模型类,用于表示数据结构、业务逻辑等。
- Views:用于存储与应用程序的显示相关的HTML文件(用户界面)等。Views文件夹下面有Home和Shared两个子文件夹,Home文件夹用于存储诸如home 页(首页)和 about 页(关于页)之类的应用程序页面。Shared文件夹用于存储控制器间分享的视图(母版页和布局页)。
- Scripts:存放应用程序的JavaScript文件(.js文件)。
- Web.config:Web.config是ASP.NET Web应用程序的主要配置文件,使用XML 格式。它包含了应用程序的各种配置信息,如应用程序的全局设置、连接字符串、授权和身份验证设置、HTTP模块和处理程序的配置等。
- Global.asax:Global.asax是一个全局的应用程序类文件,用于处理应用程序级别的事件,如应用程序的启动和关闭、会话管理、应用程序错误处理等。它没有特定的后缀名,但通常命名为Global.asax。
- .cs文件:.cs是C# 源代码文件的后缀名。在ASP.NET中,.cs文件通常用于编写服务器端的逻辑代码,包括控制器、模型、业务逻辑等。这些文件包含了用C# 编写的代码,用于处理请求、生成动态内容和执行服务器端的操作。
- .cshtml文件:.cshtml是Razor视图文件的后缀名。Razor是一种用于在服务器端生成动态 HTML内容的视图引擎。.cshtml文件可以包含 HTML标记和Razor语法,用于定义Web页面的结构和呈现逻辑。在.cshtml文件中,可以使用C#代码和Razor语法来动态生成页面内容。我们在Views文件夹下面可以找到很多.cshtml文件。
- .config文件:.config是各种配置文件的通用后缀名,如Web.config和packages.config。这些配置文件用于存储应用程序的配置信息、软件包配置等信息。
另外,我们到D:\ex\myweb\下可以看到生成了一个helloworld文件夹,这个文件夹就是我们的解决方案文件夹(注意是解决方案文件夹),里面包含解决方案文件、所有的项目文件夹以及软件包文件夹。进入helloworld文件夹,可以看到文件helloworld.sln、另一个helloworld文件夹(这个文件夹是项目文件夹)、软件包文件夹packages,其中helloworld.sln表示解决方案文件,它是一个文本文件(但我们不要去编辑它),文件扩展名“.sln”代表“Solution(解决方案)”,helloworld表示解决方案的名称。Visual Studio(VS)使用解决方案的概念,这是一个顶层的源代码结构,它将多个项目绑定在一个持久的环境中,通过VS中的解决方案资源管理器处理。一个解决方案由基于文本的解决方案(.sln)文件和二进制解决方案用户选项(.suo)文件表示。一个解决方案内可以包含和管理多个项目,以后我们只要直接双击这个sln文件,就可以直接打开VS并加载解决方案及其下面的所有项目了。当然现在我们刚刚开始学,在helloworld这个解决方案下只放一个项目,这个项目就是helloworld,名称默认就是helloworld,所以我们能看到文件夹helloworld,这个文件夹就是项目文件夹。一般情况下,新建项目的时候,解决方案的名称默认和项目名称相同,当然也可以在VS中修改。
项目文件夹helloworld里面的内容,就是实际的代码文件和项目配置文件了,该文件夹下的内容和VS中看到的解决方案资源管理器视图下面的内容是一一对应的。而且,我们在VS的解决方案资源管理器视图下增加、删除或重命名文件,实际上就是对这个项目文件夹下的文件进行同样修改。我们在VS的编辑器中编辑文件,实际上也是对该项目文件夹下的文件进行同样的修改。
图2‑12 |
软件包文件夹(简称包文件夹)packages存放项目运行所需要的基础软件包,我们一般不需要去改动,VS会自动进行配置。
(2)罗里吧嗦说了一大堆,是时候让程序跑起来了!下面我们来执行程序,按快捷键Ctrl+F5或点击菜单“调试”→“开始执行(不调试)”,这个时候将直接打开IE浏览器来显示网页结果了,如图2-12所示。
这个页面是我们项目网站的首页,如果我们点击网页上的“关于”或“联系方式”等菜单,将会显示相应的页面。IE地址栏中的“localhost”表示访问的网站主机位于本地电脑上,因此也可以写成127.0.0.1,44358表示Web服务的端口。
如果要停止程序,只需直接关闭IE浏览器。至此,我们的第一个ASP.NET项目运行成功了,我们一行代码都没有写,居然实现了一个MVC架构的ASP.NET网站!通过这个实例,也证实了VS安装成功了。
通过这个实例,我们学会了新建ASP.NET工程,学会了执行程序,也了解了ASP.NET工程的文件组织架构。这里有必要再说明一下,在Visual Studio中,“解决方案”(Solution)和“项目”(Project)是两个重要的概念,它们用于组织和管理软件开发过程中的代码、文件和资源。以下是它们之间的区别:
一个解决方案是一个包含一个或多个项目的容器。它是一个顶层的组织单元,可以包含多个项目、项目文件夹、配置和设置。解决方案提供了一种组织代码的方式,使多个项目可以协同工作,共享资源,同时管理它们的构建和调试设置。解决方案文件通常有 .sln 扩展名。例如,如果你正在开发一个大型应用程序,你可能会创建一个解决方案,其中包含多个项目:主应用程序项目、库项目、测试项目等。这样的结构使得不同项目可以在同一个解决方案下协同工作,而不必单独管理每个项目。
一个项目是一个独立的代码组织单元,它包含了实际的源代码、资源文件、配置文件等。每个项目代表着特定的功能或模块。在解决方案中,每个项目都可以有自己的构建设置、依赖项和编译规则。项目可以是应用程序、库、控制台程序、DLL等不同类型的程序单元。例如,如果你在一个解决方案中创建了一个名为“MyApp”的项目,那么 “MyApp”项目就可以包含你的应用程序的源代码、图像资源等。
总之,解决方案是一个容器,用于组织和管理一个或多个项目。每个项目是一个独立的代码单元,代表特定的功能或模块。通过将多个项目组织在一个解决方案中,你可以更好地管理整个开发过程。
如果不想用IE浏览器显示程序结果,也选择其他浏览器,比如火狐浏览器。但会出现报错,如图2-13所示。
图2‑13
此时我们可以降低Firefox对TLS版本的要求,网站就能正常访问成功了。设置步骤如下:
打开Firefox的高级设置。在浏览器的地址栏中输入 about:config,然后按下回车键,打开Firefox的高级配置页面。打开的页面后,会看到一个警告,提示“更改这些设置可能会影响你的计算机……”,点击“接受风险并继续”按钮。
搜索TLS版本设置。在页面的搜索框中,输入 security.tls.version.min,快速匹配与TLS版本相关的设置。在搜索结果中找到security.tls.version.min 这个设置项。默认情况下,它的值可能是2或3(我这里是3),代表Firefox只支持TLS 1.2或1.3更高版本。点击该项旁边的“编辑”按钮(或“修改”按钮,取决于Firefox版本),然后在弹出的对话框中输入数字1,以允许Firefox使用TLS 1.0及以上协议,点击“√”(保存按钮)以应用更改。如图2-14所示。
图2‑14
上面配置都改好后,Firefox将支持使用TLS 1.0及以上协议,网站就可以正常访问了!建议确保正在尝试访问的是一个可信的网站。如果是未知网站的话,降低TLS版本可能会使你的连接更容易受到攻击,不建议降低安全标准哟。