在完成学业或正在学习的过程中,可能会发现,当尝试构建某些东西并通过网络搜索时,大多数教程和书籍使用的是尚未完全掌握的新技术。这可能会导致更多的困惑和挫败感。一种方法是清空大脑(忘记已经知道的),然后重新开始学习这些新概念,之后再将它们与之前学到的知识联系起来(这就是做法)。但还有另一种方法,那就是从已经知道的东西开始,并在此基础上进一步发展,理解为什么需要新的方法,并开始在新项目中使用它们。本教程就是为此而制作的。将从基本的SQL连接和HTML界面开始,逐步探索MVC、ORM和面向对象编程的概念,并通过构建一个会议室预约系统来实践这些概念。将为每个部分提供源代码。
如果已经完成了学业,或者正在学习,但当开始尝试构建一些东西并通过网络搜索时,会发现大多数教程和书籍使用的是还没有完全掌握的新技术。这可能会导致更多的困惑和挫败感。一种方法是清空大脑(忘记已经知道的),然后重新开始学习这些新概念,之后再将它们与之前学到的知识联系起来(这就是做法)。但还有另一种方法,那就是从已经知道的东西开始,并在此基础上进一步发展,理解为什么需要新的方法,并开始在新项目中使用它们。本教程就是为此而制作的。将从基本的SQL连接和HTML界面开始,逐步探索MVC、ORM和面向对象编程的概念,并通过构建一个会议室预约系统来实践这些概念。
如果习惯于构建网站,阅读这篇文章来理解网站和Web应用程序之间的区别。
1) 设置环境
1.1 安装Visual Studio
首先,确保有正确的环境。有Visual Studio吗?(如果有,可以跳过这一步。)
前往 https://visualstudio.microsoft.com/downloads/ 下载最新的社区版。(截至撰写本文时为2019年。)所以它将下载一个不到2MB的在线安装程序,然后可以选择需要的功能,它将自动下载并安装。微软现在推荐这种方式,并在2017年停止提供完整的下载包(ISO文件)。但知道,如果电脑上没有快速的互联网连接,这会很困难(必须下载5-40GB,具体取决于在安装程序中选择的功能),如果对此感到不舒服,可以按照这个链接创建一个离线缓存,然后在其他有良好互联网连接的电脑上下载文件,并将文件传输到电脑上进行安装。
cmd命令(在下载vs_community的目录中)。
vs_community.exe — layout c:\vslayout — add Microsoft.VisualStudio.Workload.ManagedDesktop
— add Microsoft.VisualStudio.Workload.NetWeb — add Component.GitHub.VisualStudio
— includeOptional — lang en-US
并将文件传输到PC上(c:\vslayout),然后运行:
c:\vslayout\vs_community.exe — add Microsoft.VisualStudio.Workload.ManagedDesktop
— add Microsoft.VisualStudio.Workload.NetWeb — add Component.GitHub.VisualStudio
–includeOptional
遗憾的是,微软决定不再使用ISO文件了。(他们说他们想要保持每个安装程序都是最新的,但仍然……)也可以尝试从朋友那里获取Visual Studio的非官方ISO(大约48GB)。不确定是否可以合法地提供链接。
安装SQL Server和Management Studio(如果已经安装了这些,可以跳过这一步)。
由于将使用SQLServer作为数据库,应该也有SQL Server Express和用于手动创建和修改数据库的SQL Server Management Studio。
这里是最新的链接:
SQL Server Management Studio 18.0
SQLServer Express Edition 2017
……这是一个5MB的在线安装程序,但可以按下载媒体按钮并复制该文件到另一台电脑上。
1.2 创建项目并开始使用WebForms
但是为什么在2019年使用WebForms。
是的,WebForms和aspx页面现在越来越老了。
但是,如果来自Visual Basic和C# Windows Forms背景(很可能在学校学的就是这个),会发现WebForms非常熟悉。像代码后置、设计器视图、拖放和事件驱动模型这样的概念非常相似。在本系列的后面,将以MVC的方式重做应用程序,这样就可以真正地联系起来,理解发生了什么变化,以及关于MVC的所有炒作。
打开Visual Studio,新建项目,选择Web类别中的ASP.NETWeb应用程序。
所以,运行应用程序,看看微软希望看到的默认模板。
注意元素首页(default.aspx)、标题(顶部菜单)代码在(site.master),稍后会讨论主布局。玩转这些文件,将看到变化而不需要重新运行应用程序。(只需在浏览器上点击刷新。)
如果正在运行,请停止应用程序,让显示动态内容。
打开default.aspx,确保在源视图中(在底部检查):
更改:
<h1>
ASP.NET
</h1>
为:
<h1>
Hello
<%=Name%>
</h1>
<%是ASP.NET转义到服务器代码操作符,如果知道PHP语言,它是<? ?>。它基本上执行块中的任何内容,并将结果(如果有的话)与HTML一起渲染。
Name是一个变量,将不得不在代码后置中创建,=键在这里很重要,它的意思是返回Name变量以显示。所以,让创建变量。
按F7或在解决方案资源管理器中找到default.aspx文件,点击展开图标并打开文件default.aspx.cs。
添加一个变量Name并分配它,如下所示:
C#
public partial class _Default : Page
{
public string Name {
get;
set; } = "Abebe";
protected void Page_Load(object sender, EventArgs e)
{
}
}
现在如果运行,将看到Hello Abebe文本。
好的,让动态地改变文本。
切换到设计器视图,左侧面板上,将看到工具,展开并选择按钮。将按钮拖放到页面上。双击它,将被重定向到代码后置文件,并注意到新的函数(事件处理程序)被创建。在函数内部,让将Name文本分配给另一个。
C#
protected void Button1_Click(object sender, EventArgs e)
{
Name = "Kebede";
}
现在运行应用程序并点击按钮,文本Abebe将更改为Kebede。明白了吗?
这应该让了解如何用代码后置控制UI元素。会注意到WebForms几乎和WindowsForms一样。
切换回设计视图,让从工具箱中拖放标签元素。点击刚刚拖放的新标签项,在属性窗口(右侧面板)(按F4如果看不到它),将找到像Text和ID这样的属性,将Text更改为“幸运数字”。
拖放另一个按钮,双击它,在处理函数上:
C#
protected void Button2_Click(object sender, EventArgs e)
{
Label1.Text = new Random().Next().ToString();
}
如果运行应用程序并按下第二个按钮,将看到标签元素上显示了一个随机数字。
基本上,当将元素拖放到页面上时,可以通过元素的ID访问的字段将自动创建,可以在代码后置文件中访问并设置元素的任何属性。很酷,它和WindowsForms一样。