本文写了一部分,中间停了几天,在准备写的时候发现微软提供的文档中已经写得很好了( 点击这里查看), 所以停止这个文档的更新。遥想当年刚学.net,国内还没有什么材料的时候就是用msdn与微软发布的startkit学习的,现在来看微软在文档方面还是继续保持了比较好的水平。初学者,特别是如果对c#编程与web应用(指其他语言的开发,如python的django)开发有一定经验的话,.net core上手一定非常快。昨天刚听到有位从教师跳到程序员行列的人说,很久以前往往有语言之争,现在高级语言基本上越来越趋同,学会了一种就可以很快地切换到另一种。
引子
专业里想把编程语言改成python,所以想把所有的课程都改了。但是我知道《网站开发》如果用python可能不会那么愉快,或者说从学生的角度来看用python来开发网站,远没有用.net来得更有可能。先不说发布问题与ide的选择,单单是windows下的环境配置都让这些谈命令行色变的同学够呛。
最近疫情比较紧张,刚好在家做点准备。asp.net core据说最近上升挺快,一方面是开源社区的推动,另一方面是性能上的优势。从我这里来看,asp.net core 的开发工作对接受其他网站开发方案也有好处,也就是说如果能够熟练驾驭asp.net,那么学习其他django,ror都有一个比较好的知识基础。所以趁着这段时间做一点功课,希望能够给未来的同学带来方便。
.net core已经更新到了3.X了,据说这也是.net core的最后一个版本,下一个版本直接命名为.net 5。ASP.NET Core基于.net core,并且3.X只支持在.net core上运行,而不是像以前版本可以在.NET Framework上运行。
为什么要使用ASP.NET Core ?那是因为他除了有更高的效率、更好的生态与跨平台特性外,还具有如下优点:
- 生成 Web UI 和 Web API 的统一场景。
- 针对可测试性进行构建。
- Razor Pages可以使基于页面的编码方式更简单高效。
- 能够在 Windows、macOS 和 Linux 上进行开发和运行。
- 开放源代码和以社区为中心。
- 集成新式客户端框架和开发工作流。
- 基于环境的云就绪配置系统。
- 内置依赖项注入。
- 轻型的高性能模块化 HTTP 请求管道。
- 能够在 IIS、Nginx、Apache、Docker上进行托管或在自己的进程中进行自托管。
- 基于 .NET Core运行时,可以使用并行应用版本控制。
创建ASP.NET Core应用程序
选择asp.net core的一个更为重要的原因就是微软提供了visual studio的community版可以免费使用,而且功能还挺全,唯一的限制就是不能用于盈利的目的,所以用于教学一点问题都没有。欢迎大家使用这个宇宙最好有的ide。
新建一个asp.net core的应用程序,这个过程就不赘述了,对初学者来说,理解新建程序后的目录与相关文件更为要紧。一般来说目录包括如下几部分:
- wwwroot:网站的静态文件目录
- appsettings.json:配置文件,比如数据库连接字符串等等配置信息。
- Program.cs:程序入口文件(里面有个Main方法);
- Startup.cs启动配置文件 ;
- 依赖项:管理项目所依赖的第三方组件的安装,配置,升级
- Controller:控制器
- Models:实体
- Views:视图
静态文件目录
静态文件存储在项目的Web根目录中。 默认目录是 {content root}/wwwroot,但可通过 UseWebRoot方法更改目录 。
默认的静态目录的机构如下:
wwwroot
- css
- images
- js
我们可以通过波形符
~/
+目录名来访问这些目录,如要访问图片目录就可以使用~/images。如果要使用其他目录来存放静态文件。
Startup 类
用途:
用于配置应用所需的服务。
用于定义请求处理管道。