站点图标 江湖人士

Azure和NET Core成就天作之合

Azure和NET Core成就天作之合

跟着。NET Core 2。0的发布,微软具有了通用、模块化、跨平台和开源的平台的下一个次要版本,该平台最后发布于2016年。。NET Core曾经被建立为具有良多在目前发布的。NET框架中可用的API。最后建立它的目标是为下一代ASP。NET处理方案供给支撑,可是此刻成为很多其他场景的根本,包罗IoT、云以及下一代挪动处理方案。在本系列文章中,我们将切磋。NET Core的长处以及它若何不只仅无益于保守的。NET开辟人员,还无益于所有需要留心健、高机能和经济的处理方案带入市场的手艺人员。

本文是《。NET Core》系列文章的此中之一。您能够通过RSS订阅以领受相关通知。

我最感乐趣的。NET Core的特征之一是跨平台支撑,无论是在开辟期仍是在运转期。对于。NET,您不再被限制于Windows。现在,您能够利用Linux和macOS进行开辟和运转使用法式。还有,不再要求开辟和运转平台不异,因而,您能够在Mac上开辟您的。NET Core使用法式,然后摆设到Windows和Linux办事器。

Azure是微软的云平台,能超卓地婚配。NET Core使用法式,由于其具有大量用于托管这些使用法式的根本设备和平台办事,以及普遍的跨平台支撑。Azure有一套根本架构办事,供给计较、存储和收集功能,使客户可以或许像办理保守数据核心的根本架构一样摆设虚拟办事器。 这种方式为客户供给对托管使用法式的根本架构和操作系统设置装备摆设的强大节制。 Azure虚拟机支撑多种版本的Windows Server和多种Linux版本,包罗Red Hat、CentOS、Suse等。

在把您的。NET Core使用法式摆设到Azure之前,您需要在Azure中设置使用法式主机或运转。在Azure中,您能够有良多方式来摆设根本架构和办事。最简单容易的入门方式是利用Azure门户网站。从该门户网站,您能够在市场上找到所需的办事,并通过一系列扣问领导来设置装备摆设和摆设这些办事。若是您正在设置装备摆设虚拟机,只需虚拟机处于运转形态了,就能够进行近程办理和设置装备摆设了,若是运转在Windows中,就利用近程桌面(Remote Desktop);而若是运转在Linux中,则利用SSH。

若是您跟我一样,是个DevOps的粉丝,也许喜好本人尽可能地编写脚本,如许就能够做到可反复和精简的。Azure资本办理(Azure Resource Manager,简称ARM)模板答应您在Azure中主动摆设办事。ARM模板只是简单的JSON文件,定义了您但愿摆设的资本以及它们之间的关系。这些ARM模板很受接待,而且有个GitHub repo,它含无数百个为很多办事、平台和设置装备摆设预备的预置模板。您能够找到这些模板和这个GitHub repo。

此刻是时候建立一个我们能够摆设到Azure的。NET Core使用法式了。操纵Visual Studio 2017,我利用ASP。NET Core建立了一个简单的web API。因为阿谁新的Hello World!收集使用法式看起来是个待处事项列表,我就建立了一个待处事项列表API。

建立项目之后,我添加了一个定义属性为待处事项列表的模子类,代码如图3所示。我让它很简单,只建立了id的属性和待处事项列表项的名称,以及一个用于跟踪该项能否完成的布尔量。netcore网址

在建立数据拜候类时,我喜好利用仓储模式,因而,我为待处事项列表存储库建立了一个接口,如图4所示。这定义了所有我需要用于拜候数据的方式,包罗一个读取单个待处事项的get方式、一个前往所有待处事项列表项的get方式,还有用于添加、更新和删除待处事项列表项的方式。

然后,我用实体框架(Entity Framework,简称EF)建立了待处事项列表项目仓储接口的实现,如图5所示。这包罗EF上下文类和利用该EF上下文的仓储类。

最初,我用图6中所示的代码为待处事项列表web API建立了节制器。该节制器只是利用ITodoItemRepository并施行得当的数据拜候方式。

此刻,我们曾经完成了那些实现待处事项列表web API的类,接下来我们需要为我们的web API做些设置装备摆设以让它工作。当我们建立web API节制器实现时,我提到我们在用ITodoItemRepository,可是在审查代码后,您也许想晓得ITodoItemRepository字段是若何获取实现实体框架的TodoItemRepository实例的。ASP。NET Core具有内置依赖注入容器支撑运转时注入实现,而且能够挪用Startup。cs中的ISserviceCollection。Add*方式,如图7所示,我们能够把ITodoItemRepository接口与TodoItemRepository类联系关系起来,因而,无论何时需要一个ITodoItemRepository类型的字段,都能够用TodoItemRepository实现的实例对其进行初始化。在这种环境下,我们利用AddScoped()方式,为每个请求建立一个新实例,并保举给实体框架。您能够阅读更多相关办事生命周期选项的消息。

另一方面,我们需要设置装备摆设的是实体框架的数据存储。对于我们简单的Hello World!待处事项列表API,我选择利用内存数据库。在图7所示的Startup。cs中,挪用IServiceCollection。AddDbContext为实体框架上下文设置装备摆设内存数据库。

有了这个,您就可以或许按F5键在当地运转该使用法式了,而且能够利用Visual Studio进行调试。除了在Windows上运转外,您也能够在macOS或Linux OS上运转,然后,您也能够把它摆设到Azure中的Windows或Linux 虚拟机。

作为开辟人员,我们不想费心摆设、设置装备摆设和办理办事器。相反,我们甘愿把时间和精神专注于开辟我们的使用法式上。虽然我们能够用底层根本架构办事,但Azure供给了良多高级平台办事,闪开发人员专注于其使用法式和数据,从而削减花在设置和设置装备摆设根本架构上的时间。对于客户来说,也不必不断为操作系统和使用法式办事器打补丁和进行维护了。

Azure使用法式办事(Azure App Service)属于高级平台办事,能够把办事器和根本架构笼统并躲藏起来,只为我们供给一个摆设我们收集使用法式的方针。在Visual Studio中,您能够在ASP。NET项目上单击右键,选择Publish选项,如图8所示,以启动把您的收集使用法式摆设到Azure使用法式办事中的收集使用法式。

选择Publish选项后,netcore网址Visual Studio中的一个屏幕会显示将要供给的几个摆设方针选项,此中Azure App Service是该列表上的第一个选项,如图9所示。

若是您选择Azure使用法式办事,能够选择能否要通过“Create New”选项来建立一个全新的收集使用办事,或者能够通过选择“Select Existing”选项,在您的Azure订阅当选择一个现有的收集使用法式。完成之后,netcore网址能够点击“Publish”按钮以启动通过指导进行摆设的流程。这将摆设到默认的运转于Windows上的Azure使用法式办事,可是,此刻您能够摆设到运转于Linux上的Azure使用法式办事,以至能够利用Docker容器。

在Visual Studio中,您能够轻松地启用Docker容器支撑您的Core使用法式,只需要在您的ASP。NET Core项目上单击右键罢了,在上下文菜单当选择Add,然后选择Docker Support,如图10所示。

此刻,在项目上单击右键选择发布(Publish)时,您会看到一些分歧的选择,包罗微软Azure使用法式办事Linux和容器注册表(Container Registry),如图11所示。

当您选择微软Azure使用法式办事Linux时,它将指导您完成摆设流程,该过程将建立一个运转于Linux上的Azure使用办事法式,并具有docker支撑,您也能够选择建立或利用现有的docker容器注册表。

Azure是一个大型云平台,包含良多办事,我曾经在本文中提到了像虚拟机如许的根本架构办事,以及像使用法式办事如许的平台办事,可是,在其他使用法式运转时,您还能够在Azure中运转的。NET Core使用法式,包罗Azure Functions(无办事器)、Service Fabric(微办事)和Azure Container Service(docker容器)等等。若是您对这些办事感乐趣,能够拜候以获得更多资讯。

正如我在本文开首所提到的,我最喜好的。NET Core的特征之一是普遍的平台支撑,包罗Windows、Linux和macOS。连系Azure,您不只获得跨平台的开辟平台,还能够获得云平台以托管和运转支撑良多操作系统(包罗Windows Server和多个版本的Linux)的使用法式,而且还有良多高级平台办事,像Azure使用法式办事、Docker容器和具有Azure Functions的无办事器计较。这种能力令人很是兴奋,并通过供给普遍的生态系统支撑和开放性供给了良多可能性。

是responsiveX的创始人兼CEO。responsiveX是一家办理和手艺征询公司,具有深挚的行业和专业技术。通过对用户体验、立异及新兴平台的高度关心,responsiveX的客户获得了计谋合作伙伴,以协助指点现在的开辟工作,与此同时,为将来的立异预备。Eric敌手艺、创业和营业增加充满激情。他喜好开辟立异和倾覆性的草创企业,成长示有营业,协助他人提高手艺投资的价值和报答。

退出移动版