所以你们都听到了#Build 2017的消息,Mac上的Visual Studio已经被完全发布,是一般的。为了庆祝这个版本,我将在我的Mac上写几篇关于构建一些不同的.net应用的帖子。

正如你已经期望的标题,本文将在ASP.NET核心我将使它简短而简单。

我将建立的虚拟应用程序将在电影上。以下是创建新项目并选择ASP.NET Core Empty时的外观。

在选择名称并创建项目之后,Visual Studio只是为您提供了一个简单的网络项目,其中一些nugets正在恢复,在第一次运行时,正如预期的那样,您将在默认浏览器中获得一个旧的漂亮Hello World。

现在让我们探索模板,并了解我们可以免费获得这个Empty模板并开始构建我们的应用程序。

如上图所示,我们为我们生成了两个文件Program.cs和Startup.cs以及Movies.csproj本身,其中包含相关信息,以告诉Visual Studio该应用程序的功能。

现在来看看Program.cs文件 

这个文件实际上有一个Main方法,我们在Web项目中没有看到一段时间,ASP.NET Core应用程序需要一个主机来运行。该主机实现IWebHost接口,暴露了启动主机所需的功能和服务。

上面的行首先创建了WebHostBuilder的一个实例,一个构建和配置主机的类帮助器,首先配置说明是UseKestrel实际上告诉主机使用Kestrel服务器,下一个配置UseContentRoot是告诉主机应该在哪里找到内容您可以看到文件以当前目录作为参数。UseIISIntegration,另一方面加入支持IIS / IIS快速集成和用来指定一个反向代理由红隼进行内部服务器。UseStartup告诉主机如何配置中间件和服务,并且您可以看到这是两个文件之间的链接,它告诉主机在另一个文件中使用启动类的实例。最后,它构建此主机并返回为此角色配置的实例。

下一行host.Run()  是实际运行Web应用程序并阻止调用线程的主机,直到主机关闭。还有一个替代的非阻塞方法host.Start()。

下一个文件Startup.cs是将要使用的实际ASP.NET配置,我们将在随后的帖子和主题中重新访问此文件。

在这个文件中没有什么可以描述的,它很简单(到目前为止)。其中一个方法被声明为添加服务。另一个用于初始配置。

正如你可以看到依赖注入是内置在.NET Core和本机支持的,如果你注意到using语句,你将Microsoft.Extensions.DependencyInjection来处理它。因此,所有的参数值将设在幕后运行时绑定,所有你需要做的就是要求实现的目标IApplicationBuilder,或IHostingEnvironment甚至是ILoggerFactory,你会得到你用一个具体的实施; 当我们探索更多并深入ASP.NET Core时,还有更多的这些来到这里。

该方法中的第一行添加了一个控制台记录器,如果使用Kestrel运行Windows,则您将始终获得一个“命令”窗口,您可以在网页上执行某些操作时查看日志跟踪。在Mac上使用Visual Studio时,这个记录器将被嵌入应用程序输出窗口中。

一个关于ASP.NET Core的intersting的事情,它只是一个核心任何服务,你需要添加或配置,你必须要求它!即使是旧的异常页面(黄色屏幕死亡),现在是一个可爱的淡蓝色屏幕的死亡告诉你什么发生错误,也不是我们只告诉应用程序生成器添加这个DeveloperExceptionPage只在Developement环境中,这是一个很好的实践中,因为您不想在生产中暴露内部代码异常,您可能希望构建自定义的500错误页面。添加此开发人员异常页面实际上是在管道中添加了一个“中间件”,这是一个很快会谈到的主题。

最后一行是管道命令的终止中间件,它侦听来自此服务器的请求。它需要一个委托(处理程序)参数,并且您可以看到这是我们获得“Hello World”的地方,我们只需将纯文本写入当前上下文的Repsonse。

这是所有的这个帖子,非常基本的没有代码实际上是写的,但我相信这个帖子是一个插入ASP.NET核心和初学者即将发布的帖子。

Visual Studio for Mac中的ASP.NET Core的更多相关文章

  1. 在Visual Studio for Mac中使用fastlane管理iOS的provision

    Xamarin开发中,最烦的就是provision的管理了. 全手工的话,要先创建一个key,上传后生成cert文件,再创建provision.如果在手机上调试,还要把手机加到provision中去. ...

  2. 在 Visual Studio for Mac 中编译和生成

    使用Visual Studio将C#生成DLL文件的方法 https://www.cnblogs.com/AaronBlogs/p/6840283.html Visual Studio 开发 - Vi ...

  3. Visual Studio Code和Docker开发asp.net core和mysql应用

    Visual Studio Code和Docker开发asp.net core和mysql应用 .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对 ...

  4. Visual Studio 2015 RC中的ASP.NET新特性和问题修正

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") 微软在Build大会上发布了Visual Studio 2015 RC,这也预示着Visual Studio 201 ...

  5. docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用

    .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对岸的苹果园越来越茂盛,实在不想再去做一只宅猿了.于是,.net猿决定搭上小鲸鱼的渡轮到苹果园去看 ...

  6. 使用Visual Studio Code创建第一个ASP.NET Core应用程序

    全文翻译自:Your First ASP.NET Core Application on a Mac Using Visual Studio Code 这篇文章将向你展示如何在Mac上写出你的第一个A ...

  7. 【翻译】使用Visual Studio在Azure上部署Asp.Net Core Web应用

    配置运行环境 Install the latest Azure SDK for Visual Studio. The SDK installs Visual Studio if you don't a ...

  8. 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

    前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...

  9. 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

    前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...

随机推荐

  1. mac 下利用AndroidStudio APK获取签名信息

    注:网上没找到特别好的.不是xxx.keystore 就是debug.keystore 而真正去找这些目录的时候系统就会提示没有这个秘钥库文件.所以就悲剧了 下面附上快速查看APK签名信息的方法(SH ...

  2. 读写分离子系统 - C# SQL分发子系统 - Entity Framework支持

    A2D Framework增加了EF支持,加上原先支持ADO.NET: 支持EF方式 支持ADO.NET方式 这次来讲如何让Entity Framework变成nb的读写分离 1. 先设计EF模型, ...

  3. Python股票分析系列——系列介绍和获取股票数据.p1

    本系列转载自youtuber sentdex博主的教程视频内容 https://www.youtube.com/watch?v=19yyasfGLhk&index=4&list=PLQ ...

  4. hdu1201,hdu6252差分约束系统

    差分约束系统一般用来解决a-b>=c的问题,有n个这样的限制条件,求出某个满足这些条件的解 可以将这个问题转化成最长路问题,即b到a的距离最少为c,而有多条b到a的路的话,我们就取最长的b到a的 ...

  5. 小小知识点(二)——如何修改win10 的C盘中用户下的文件夹名称

    1.以管理员身份登录计算机 在win10桌面的开始界面处有个用户头像,点击在里面找到administrator: 如果没有,则需进行如下设置: (1)右键计算机,双击管理,找到如下所示的用户中的adm ...

  6. 福州大学软件工程1816 | W班 第7次作业成绩排名

    写在前面 汇总成绩排名链接 1.作业链接 第七次作业--项目需求分析(团队) 2.评分准则 本次作业映射总分为100分+贡献度得分,由以下部分组成: 引言(5 points) . 用户场景(15 po ...

  7. Jmeter之发送请求入参必须使用编码格式、Jmeter之发送Delete请求可能入参需要使用编码格式

    这里的其中一个属性值必须要先编码再传参才可以,具体可以通过抓包分析观察:

  8. nginx学习笔记二

    一,nginx架构在Linux系统中以daemon(守护进程)的方式在后台运行,后台进程包含一个master进程和多个worker进程(多进程的工作方式) master进程 | 信号 | | ---- ...

  9. PAT L3-016 二叉搜索树的结构

    https://pintia.cn/problem-sets/994805046380707840/problems/994805047903240192 二叉搜索树或者是一棵空树,或者是具有下列性质 ...

  10. linux系统下MySQL表名区分大小写问题

    linux系统下MySQL表名区分大小写问题 https://www.cnblogs.com/jun1019/p/7073227.html [mysqld] lower_case_table_name ...