Visual Studio for Mac中的ASP.NET Core
所以你们都听到了#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的更多相关文章
- 在Visual Studio for Mac中使用fastlane管理iOS的provision
Xamarin开发中,最烦的就是provision的管理了. 全手工的话,要先创建一个key,上传后生成cert文件,再创建provision.如果在手机上调试,还要把手机加到provision中去. ...
- 在 Visual Studio for Mac 中编译和生成
使用Visual Studio将C#生成DLL文件的方法 https://www.cnblogs.com/AaronBlogs/p/6840283.html Visual Studio 开发 - Vi ...
- Visual Studio Code和Docker开发asp.net core和mysql应用
Visual Studio Code和Docker开发asp.net core和mysql应用 .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对 ...
- Visual Studio 2015 RC中的ASP.NET新特性和问题修正
(此文章同时发表在本人微信公众号"dotNET每日精华文章") 微软在Build大会上发布了Visual Studio 2015 RC,这也预示着Visual Studio 201 ...
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
.net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对岸的苹果园越来越茂盛,实在不想再去做一只宅猿了.于是,.net猿决定搭上小鲸鱼的渡轮到苹果园去看 ...
- 使用Visual Studio Code创建第一个ASP.NET Core应用程序
全文翻译自:Your First ASP.NET Core Application on a Mac Using Visual Studio Code 这篇文章将向你展示如何在Mac上写出你的第一个A ...
- 【翻译】使用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 ...
- 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
随机推荐
- 学习使用PM2管理nodejs进程
在项目中,偶尔对命令会忘记一下,所以在此记录下pm2的常用命令. 1. pm2是什么?pm2 是一个带有负载均衡的Node应用的进程管理器, 它能够管理Node应用,还能够对应用的运行状态进行监控. ...
- linux内存源码分析 - 内存池
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 内存池是用于预先申请一些内存用于备用,当系统内存不足无法从伙伴系统和slab中获取内存时,会从内存池中获取预留的 ...
- JS表格分页(封装版)
HTML代码: <html> <head> <meta charset='utf-8'> <script type="text/javascript ...
- [Spark][Python][RDD][DataFrame]从 RDD 构造 DataFrame 例子
[Spark][Python][RDD][DataFrame]从 RDD 构造 DataFrame 例子 from pyspark.sql.types import * schema = Struct ...
- OpenResty入门之使用Lua扩展Nginx
记住一点:nginx配置文件很多坑来源自你的空格少了或多了. 1.Centos下载安装 如果你的系统是 Centos 或 RedHat 可以使用以下命令: yum install readline-d ...
- .NET(C#)主流ORM总揽
前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper, ...
- 异步时代-java的协程路在何方
面试官:你知道协程吗? 你:订机票的那个吗,我常用. 面试官:行,你先回去吧,到时候电话联系 ........ 很尴尬,但是事实是,很大一部分的程序员不知道协程是啥玩意,更大一部分的程序员,项目中没用 ...
- Flask的蓝图和红图
1.蓝图 对于简单的项目来说,比如项目就只有一个user模块,我们可以都将视图函数定义在一个文件里面,不需要用到蓝图. 但是如果我们的项目有多个模块,如下有v1模块,v2模块.....等,那么如果我们 ...
- 了解可执行的NPM包
NPM是Node.js的包管理工具,随着Node.js的出现,以及前端开发开始使用gulp.webpack.rollup以及其他各种优秀的编译打包工具(大多数采用Node.js来实现),大家都开始接触 ...
- Python_每日习题_0004_一年中的第几天
# 题目 输入某年某月某日,判断这一天是这一年的第几天? # 程序分析 特殊情况,闰年时需考虑二月多加一天: def isLeapYear(y): return (y%400==0 or (y%4== ...