当前位置:首页 > Web开发 > 正文

二十几天学 ASP.NETCore 1

2024-03-31 Web开发

  这么多年一直从事桌面开发,一直没有时间好好学学  web 开发。觉得本身就像从石器时代走来的古代类人猿。由于事情的调解,此刻终于有时间学习一下 Web 开发。出于对技术和框架的熟悉和担任,决定还是学习微软的 Web 开发框架(虽然我一直认为java 是一种比C# 更优秀的语言,社区的活力远高于 C#,想想 eclipse 还是算了吧)。

  微软的 Web 开发框架从 ASP,ASP.NET,ASP.NET MVC 一直到此刻的 ASP.NET Core一路走来,坏动静是没有一个熟悉的,好动静是 ASP.NET Core 是完全开源的,这对学习有很大的辅佐。https://github.com/aspnet/AspNetCore  学习技术框架最好的要领是阐起源码,但这种要领显然不适合我这种对 Web  开发一窍欠亨的人,对付我来说,最好的方法是通过项目开发尽快的熟悉 ASP.NET Core 。所以我决定测验考试通过开发一个虚拟的项目来熟悉ASP.NET Core,同时因为要从桌面转到 web 开发可以预料到各类问题会接踵而至。我决定重开博客,用一系列文章记录此中曲折的过程以及问题和思考,但愿这一系列文章能够对需要重 winform 转型到 web 开发的伴侣能够带来一些启发。关于这个虚拟项目的配景我会不才一篇介绍、首先我们要了解一下 ASP.NET Core。

关于 ASP.NET Core 的介绍,网上资料铺天盖地,我就不烦琐了。在这里主要谈谈从一个桌面 措施员的视角看 ASP.NET Core 的几点感应熏染。

首先用 VS 创建一个 ASP.NET Core 项目,在项目模板选项中因为计算机环境的原因,暂时不选择启用 Docker 撑持,Docker 撑持在后期可以很便利的添加,固然前提是你搞定了 Docker 的安置和配置,Docker 是个好对象,在你的应用需要跨平台部署时。固然,如果你决定使用 IIS 托管,并且部署环境很固定的话,是不需要 Docker 的。关于 Docker 的安置和配置,网上资料很多,法式也不是很繁琐,有兴趣的伴侣可以百度一下。身份认证选择“小我私家用户账户”。

  

技术图片

  

  固然,在真实的项目中,你可能不太会直接用 新建 的方法创建一个项目,并把所有代码包罗在一个项目中。更好的方法是创建一个解决方案,然后创建差此外项目对应措施差此外层。更常用的方法是在解决方案根目录下创建文件夹,把项目放在src文件夹,把测试项目放在 test 文件夹。在措施的分层架构方面 winform 或者说桌面措施和 Web 措施没有太大的区别。两者的区别在于暗示层,桌面措施你需要本身设计 UI 措施 ,而 Web 措施你不需要本身设计 UI 措施(感谢感动各类浏览器),你需要在暗示层设计UI的内容,在运行时通过各类框架技术,把他们推送到客户的浏览器中。固然早桌面措施中你也可以这么做,先开发一个通过的窗体作为容器,能够运行用某种文件描述的可编纂的内容,用于产业控制的组态软件凡是这么做,我以前做的一个出产线控制系统也是这么做的。

  好了,空话少说,我们先看看创创建的项目的文件布局

  

技术图片

  可以看出,措施的功效简单清晰,应该切合 Rails 约定,模型,视图和控制器的文件夹,到我们真正使用时再讨论,此刻我们看看感兴趣的文件 – Program 和 Startup,看得出 ASP.NET Core 已经丢弃了 ASP.NET 把措施编译成 DLL ,运行时由 IIS 托管的方法。ASP.NET core 措施是由 Kestrel  托管的,在部署在 IIS 上时。IIS 仅起到 反向代办代理的感化,IIS  会把请求转发到 Kestrel ,为此IIS 必需添加 Asp Net core Module 的模块来实现转发成果,以前在做一个用 ASP.Net Core API 宿主的 SIgnalR 措施时,因为对措施启动方法不了解,就碰到这个坑。让我们先看看 Program 的代码

  

public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); }

  启动代码很简练,使用 WebHost 获取 IWebHost 的构建工厂,再构建出 IWebHost 的实例,然后在运行这个实例。让我们感兴趣的构建 IWebHost 时做了哪些事。这是需要打开 ASP.NET Core 的源码一窥究竟。首先打开 WebHostBuilder 文件,在 Hosting 项目中,我们从里面找到了 Builder 要领,代码对照长,这里只截取我们感兴趣的代码,有兴趣的伴侣可以自行检察源码

  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32792.html