一:什么是.netCore

从图上得知,.NetCore是同.NetFramework一样也是一种框架,并且都是基于.Net Standard Library,前面我们有用过.netFramwork来开发过一些网站,控制台,winform窗体等,那.netCore 同.netFramwork有何异同或者说现在为啥说是.netcore是开发的趋势呢?

通过有以下几点我们来说明:

1:.netFramework我们晓得版本从1.0升级到了4.7,然后每个版本都是向前兼容的,所以后面会变得越来越繁重复杂,而且内置了很多了module,处理器等,导致一个简单的功能,必须要经过各种不必要的处理。

2:.netFramework是依赖于IIS,web是必须要部署到IIS,即宿主服务器必须是windows服务器,没有办法做到跨平台,导致服务器资源有了限制。

3:.netFramework版本从4.7左右,微软已经停止了维护,就是版本不在做升级了,重新创建了.netCore框架,.netcore比较轻便,灵活;而且自带了一个跨平台的服务器,所以去除了对于IIS的依赖,能够更好的跨平台。

二:.netCore跟.netFramework简单比较认识

我们以简单的控制台来对比分析,首先我们创建两个项目,一个是.netFramwork为Test.Framework.Console,一个是.netCore为Test.Core.Project,分别如下:

对比发现,有以下不同:

1:.netFramwork对应的dll都放在引用下面,而core对应的dll都放在SDK

2:framework有app.config是xml,而core是没有的,其实core的配置文件是json文件,在编译生成的时候会看到。

3:两者都可以NuGet,但是framework的nuGet引用的类都是放在packages.config中,而core是直接放在Nuget文件夹下面的。

4:查看编译后的bin文件夹发现,framework是直接生成exe直接运行文件,而core是没有的。

core编译后的文件,然后服务器运行必须命令行启动,可以放在windows或者linux服务器上面:

framework编译后的文件,然后服务器运行直接点击exe执行程序,但是仅仅是放在windows服务器上面:

三:在 Visual Studio 2019 中创建新的 ASP.NET Core 项目

步骤 1:在 Visual Studio 2019 中创建新的 asp.net Core 项目

步骤 2:在 Visual Studio 中单击**“创建新项目”**。

第 3 步:在“创建”对话框中,右侧菜单栏“语言”下选择“C#”,然后点击**“ASP.NET Core Web 应用程序”**

第 4 步:在配置新项目菜单栏中,键入项目的名称。我将其命名为StudentManagement。 我们将创建一个 asp.net core web 应用程序,在这个程序中,我们将创建、读取、更新、删除学生。

第 5 步:另外,指定要创建此项目的位置。我将把我的项目放在,路径为,C:\Projects\source\repos 文件夹中。

第 6 步:点击创建按钮。

第 7 步: 在下一个屏幕上,选择 ASP.NET Core 2.2(可用的最新.NET Core SDK)

第 8 步:取消选中“为 HTTPS 配置”复选框 ,如上图所示,关闭身份验证。即一个完整的asp.netcore已经创建完成

四:创建asp.netcore时,vs会给我们提供一些模板创建,详情见第7步,下面主要介绍这些模板。

4.1》空:名称暗示的“空”模板不包含任何内容。这是我们将使用的模板,并从头开始手动设置所有内容,以便我们清楚地了解不同部分如何组合在一起。

4.2》API:此模板包含创建 ASP.NET Core RESTful HTTP 服务所需的一切

注意:API 不需要所有网站特定的内容,如 JavaScript 文件,CSS 文件,视图文件,布局文件,因为它没有用户界面。Web API 公开的数据通常由其他应用程序使用,可以简单的理解为 程序和程序之间打交道。

因此,API 模板只会创建Controllers文件夹。它不会创建 Models 和 Views文件夹,因为它们不是 API 所必需的。下面截图显示了我使用 API 模板创建的项目。请注意,我们只有Controllers文件夹。我们没有 RESTful API 不需要的所有 JavaScript,CSS 和布局文件。

4.3》Web 应用程序:此模板使用新的用于构建 Web 应用程序的 RazorPages 框架。使用 Razor 页面,编写以页面为中心的场景更容易,更高效。当我们不想要 ASP.NET MVC 的完整复杂性时,我们通常使用这种方法。我们可以将其视为 MVC 框架的更薄版本。我们将在即将发布的视频中详细讨论 RazorPages。

4.4》Web 应用程序(模型视图控制器):此模板包含创建 Model,视图(Views)和控制器文件夹并添加 Web 特定的内容,如 CSS,JavaScript 文件,布局文件和网站所需的其他资源,也可以基于此模板创建 Restful 风格的 HTTP 服务。

下面的截图显示了我使用Web应用程序(模型视图控制器)创建的项目。请注意,我们有Modes,Views 和 Controllers 文件夹。在 Views 文件夹中,我们有示例视图文件和布局文件,它们代表 Web 应用程序的用户界面。我们还有 Web 应用程序通常需要的 JavaScript 和 CSS 文件。

4.5》Razor 类库(RCL):顾名思义,我们使用此模板创建可复用的 Razor 类库项目。该项目包含所有可复用的用户界面部分,如数据模型,页面模型,控制器,页面,Razor 视图和 View 组件。然后,可以在多个应用程序中复用此 Razor 类库(RCL)项目。任何使用 RCL 的应用程序都可以覆盖它包含的视图和页面。我们将在后面发布的视频中讨论 RCL。

4.6》Angular,React.js,React.js 和 Redux:这三个模板允许我们与 Angular,React 或 React 和 Redux 一起创建 asp.net Core Web 应用程序。

五:vs2019如何发布netcore项目

按照第四条,然后创建了一个Web 应用程序(模型视图控制器)如下:

现在我们来看一下如何发布:

1:选中Test.Core.MVC,然后右键选择发布,会弹出如下图,选择文件夹发布,然后选择要发布的文件地址,可以点击高级进行一些设置如下,目标框架可以选择对应的版本,然后目标运行时是可移植:

2:点击发布,然后再发布的时候会检查是否有编译错误,如果没有问题,会在控制台中输出如下:

3:打开发布的文件夹E:/wss/publish会得到如下图

以上几个步骤则完整了整个发布,下面介绍如果把发布的文件部署在IIS上面。

六:IIS上面部署netcore项目

1:打开iis,然后选择网站,右键添加:

注意:物理路径一定要选择对,我之前运行一直是404,发现是物理路径填写有问题,我是直接打开文件夹,然后把地址贴上去的,然后出现跟iis物理路径斜杠不一致,截下图仅供参考:

2:选择网站上面的【应用程序池】,然后找到Test.Core

3:选中右键选择基本设置如下图,然后点击确定

然后浏览器输入http://localhost:8050/(上面截图的端口号有时候为了截图而出现不一致,以实际添加网站的端口号为主)则出现下面页面,至此整个发布完成了。

注意:之前网上看到很多小伙伴发不完遇到了500.19,这是因为目录访问权限的限制,可以设置一下文件夹的访问权限!

初识.netCore以及如何vs2019创建项目和发布的更多相关文章

  1. Asp.NetCore Web开发之创建项目

    ​这一节,开始讲一下如何创建一个Asp.netCore Web项目,有两种常用的方式,一种是通过.NetCore SDK使用命令创建,另一种如果你使用的VisualStudio,可以直接根据引导创建. ...

  2. WinUI 3 踩坑记:从创建项目到发布

    本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,若内容出现冲突以 GitHub 上的为准. 创建项目 现在 WinUI 3 的入门体验比刚 ...

  3. EJB结合struts2创建项目、发布jboss服务器和访问、父类(BaseDaoImpl)的封装

    一.环境搭建: 1.准备jboss服务器,将对应数据库的xml配置好放到jboss的发布目录下. <?xml version="1.0" encoding="UTF ...

  4. What?VS2019创建新项目居然没有.NET Core3.0的模板?Bug?

    今天是个值得欢喜的日子,因为VS2019在今天正式发布了.作为微软粉,我已经用了一段时间的VS2019 RC版本了.但是,今天有很多小伙伴在我的<ASP.NET Core 3.0 上的gRPC服 ...

  5. 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 ... 基于. ...

  6. 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX

    原文:使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)--初识WiX Visual Studio 打包安装七宗罪 开发.NET的人,肯定会使用Visual ...

  7. 在Android Studio中创建项目和模拟器

    北京电子科技学院 实      验      报      告 课程:移动平台应用开发实践  班级:201592  姓名:杨凤  学号:20159213 成绩:___________  指导老师:娄嘉 ...

  8. 使用 .NET CORE 创建 项目模板,模板项目,Template

    场景:日常工作中,你可能会碰到需要新建一个全新的解决方案的情况(如公司新起了一个新项目,需要有全新配套的后台程序),如果公司内部基础框架较多.解决方案需要DDD模式等,那么从新起项目到各种依赖引用到能 ...

  9. 记录一次创建.net core 项目 并且发布到docekr【完全新手入门】

    1]环境说明 操作系统:Window 10 专业版 开发工具 Vs2019专业版 Docker:  Docker for Windows  2]创建.net core项目并且发布 2.0先打开并且运行 ...

随机推荐

  1. Git入门基础教程和SourceTree应用

    目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...

  2. Java面试题-基础篇二(干货)

    11.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用 ...

  3. hibernate之主键生成策略

    1. hibernate的主键生成器: generator元素:表示了一个主键生成器,它用来为持久化类实例生成唯一的标识 . 连接数据库的xml hibernate.cfg.xml <?xml ...

  4. 有关csp自我反思

    首先说说体会把 这次前几个都是模拟,最后一道题以为自己可能会结果是半吊子根本不会,导致浪费了三个小时写第五题只有十分 如果不畏惧字符串而专心的写第三题的话,应该结果会不一样把.希望下次能好好考 第一题 ...

  5. [C2W1] Improving Deep Neural Networks : Practical aspects of Deep Learning

    第一周:深度学习的实用层面(Practical aspects of Deep Learning) 训练,验证,测试集(Train / Dev / Test sets) 本周,我们将继续学习如何有效运 ...

  6. lua 12 table 的使用

    转自:http://www.runoob.com/lua/lua-tables.html table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组.字典等. Lua table ...

  7. 用Python写Verilog(非HLS)

    https://blog.csdn.net/qq_32010099/article/details/81197171 前段时间玩Python的时候好奇, 既然Python这么强大, 那么能不能用Pyt ...

  8. 【BZOJ3876】[AHOI2014&JSOI2014] 支线剧情(无源汇有上下界网络流)

    点此看题面 大致题意: 有一张\(DAG\),经过每条边有一定时间,从\(1\)号点出发,随时可以返回\(1\)号点,求经过所有边的最短时间. 无源汇有上下界网络流 这是无源汇有上下界网络流的板子题. ...

  9. python 学习常见问题笔记

    1.for...if...构建List segs = [v for v in segs if not str(v).isdigit()]#去数字 https://www.cnblogs.com/eni ...

  10. WEB测试应该注意哪些地方,怎样才能做好WEB测试

    基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战.基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否 ...