coremvc

.NET Core 3.0 部署在docker上运行

房东的猫 提交于 2020-04-24 16:57:43
自从.NET Core3.0发布之后,写了几篇关于.NET Core 3.0的文章,有助于你快速入门.NET Core3.0。 本篇文章主要讲解如何一步步创建一个mvc项目,然后发布并部署在Docker上运行。需要你本地有docker环境 .Net Core3.0 配置Configuration .Net Core3.0使用gRPC .NET Core3.0创建Worker Services .Net Core3.0 日志 logging .Net Core3.0依赖注入DI .NET Core 3.0 中间件 Middleware .Net 5.0:.Net的未来-译 1.创建一个站点 创建一个 ASP.NET Core Web 应用程序,选中启用 Docker 支持。自动帮我们创建一个 Dockerfile 文件。 2.编写Dockerfile文件 dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。 dockerfile主题内容一般分为4部分 基础镜像信息 维护者信息使用label指令 镜像操作指令 容器启动时执行指令 FROM mcr.microsoft.com/dotnet/core/aspnet: 3.0 -buster-slim AS base WORKDIR / app

Docker 部署Dotnet Core MVC项目

被刻印的时光 ゝ 提交于 2020-04-24 13:42:35
原文: Docker 部署Dotnet Core MVC项目 1.dotnet core创建项目   dotnet new mvc -o myweb   cd myweb   然后就是业务代码的编辑,增删改查乱七八糟的需求上的东西吧,总之就是一顿coding....   dotnet publish -o ./release   项目就发布到 release文件夹了   然后为docker创建一个创建镜像的文件 也叫dockerfile 不懂的可以看下官方api   内容如下:   donetcore.dockerfile    FROM microsoft/dotnet RUN mkdir /home/app COPY ./myweb/publish /home/app WORKDIR /home/app CMD ["dotnet","myweb.dll"]    2.docker 创建自己的镜像    用上面的dockerfile创建的文件创建一个镜像文件,命令如下   docker build -f ./dotnetcore.dockerfile -t glc/netcore:v1   -f:dockerfile的路径   -t:要build的镜像的名字 后面是tag   3.执行部署命令   docker run -d -p 5000:80 --name testmvc

ASP.NET Core MVC 网站学习笔记

泄露秘密 提交于 2020-04-20 03:53:27
ASP.NET Core MVC 网站学习笔记 魏刘宏 2020 年 2 月 17 日 最近因为” 新冠” 疫情在家办公,学习了 ASP.NET Core MVC 网站的一些知识,记录如下。 一、新建项目及基本结构 我们要新建的是 “ ASP.NET Core Web 应用程序” 类型的项目: 起名之后选择 .NET Core 分类下的 “ Web 应用程序 (模型视图控制器)” 模板,也就是 MVC 类型的模板,然后创建即可: 创建后结构如下图: wwwroot 存放网站的 js、css 等前端文件,Models 存放模型类,Views 存放视图文件,Controllers 存放控制器; appsettings.json 用于配置,比如可以在其中加入数据库连接字符串: Programs 是程序入口,实际的启动工作通过 Startup 来进行。 二、实体模型和 EF 框架 我们可以在 Models 文件夹下添加实体类,并给字段添加一些特性: using System; using System.ComponentModel; using System.ComponentModel.DataAnnotations; // 存放实体类 Entity namespace EasyBlog.Models { /// <summary> /// 用户表 /// </summary>

DOTNET Core MVC (一)

会有一股神秘感。 提交于 2020-04-20 03:22:07
以控台的形式,运行.net core mvc 代码, Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); // 指定网络主机要使用的启动类型。 }); 返回默认的IHostBuilder ,程序初始化。 根据官方说明文档:该方法做了这么多事情: 将 ContentRootPath 设置为 GetCurrentDirectory() 的结果 从 "DOTNET_" 前缀的环境变量加载主机 IConfiguration 从提供的命令行参数加载主机 IConfiguration 从 "appsettings" 和 "appsettings" 加载应用 IConfiguration。 [EnvironmentName] json " 使用条目程序集 EnvironmentName "开发" 时从用户机密加载应用 IConfiguration 从环境变量加载应用 IConfiguration 从提供的命令行参数加载应用 IConfiguration 将 ILoggerFactory 配置为记录到控制台、调试和事件源输出 当 EnvironmentName 为 "开发" 时,对依赖关系注入容器启用范围验证

Asp.net Core MVC(三)UseMvc设置路由

99封情书 提交于 2020-04-18 11:53:22
在家办公,下班继续看点东西,不废话,继续看MVC的路由。 asp.net核心mvc的路由是建立在asp.net核心的路由之上的。通过终结点加载路由中间件的配置方式在此不细说了,( DOTNET Core MVC(二)已经说明 )。在看一下其他的加载方式: app.UseMvc(routes => { // 使用指定的名称和模板将路由添加到IRouteBuilder。 routes.MapRoute( " default " , " {controller=Home}/{action=Index}/{id?} " ); }); 这种方式在.net core 3.0(使用终结点加载路由中间件)中使用会提示 根据提示我们在代码中添加: ConfigureServices方法中添加: // 不启用终结点 services.AddMvc(options => options.EnableEndpointRouting = false ); public static IApplicationBuilder UseMvc( this IApplicationBuilder app, Action<IRouteBuilder> configureRoutes { if (app == null ) { throw new ArgumentNullException(nameof(app)); }

Asp.net Core MVC(三)UseMvc设置路由

倾然丶 夕夏残阳落幕 提交于 2020-04-18 10:58:36
在家办公,下班继续看点东西,不废话,继续看MVC的路由。 asp.net核心mvc的路由是建立在asp.net核心的路由之上的。通过终结点加载路由中间件的配置方式在此不细说了,( DOTNET Core MVC(二)已经说明 )。在看一下其他的加载方式: app.UseMvc(routes => { // 使用指定的名称和模板将路由添加到IRouteBuilder。 routes.MapRoute( " default " , " {controller=Home}/{action=Index}/{id?} " ); }); 这种方式在.net core 3.0(使用终结点加载路由中间件)中使用会提示 根据提示我们在代码中添加: ConfigureServices方法中添加: // 不启用终结点 services.AddMvc(options => options.EnableEndpointRouting = false ); public static IApplicationBuilder UseMvc( this IApplicationBuilder app, Action<IRouteBuilder> configureRoutes { if (app == null ) { throw new ArgumentNullException(nameof(app)); }

abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六)

十年热恋 提交于 2020-04-18 08:42:23
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) 通过前面三篇文章的介绍,我们学习了如何创建实体,如何创建数据库操作,如何创建应用服务。在上一文章中我们在应用层实现了对数据库的CURD操作。在本篇文章中,主要是使用常规的MVC方式来实现增删改查的功能,通过完善Controller、View、ViewModel,以及调试修改控制器来实现展示层的增删改查。最终实现效果如下图: 一、创建ModuleController ABP对ASP.NET Net Core MVC Controllers进行了集成,通过ABP网站创建的项目会自动创建一个Controller基类,这个Controller基类继承自AbpController, 我们即可使用ABP附加给我们的以下强大功能: 本地化 异常处理

通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[中篇]:请求的响应

百般思念 提交于 2020-04-16 21:39:55
【推荐阅读】微服务还能火多久?>>> 《 200行代码,7个对象——让你了解ASP.NET Core框架的本质 》让很多读者对ASP.NET Core管道有了真实的了解。在过去很长一段时间中,有很多人私信给我:能否按照相同的方式分析一下MVC框架的设计与实现原理,希望这篇文章能够满足你们的需求。我们在《 [上篇]:路由整合 》将定义在Controller类型中的Action方法简化成只返回Task或者Void的方法,并让方法自身去完成包括对请求予以相应的所有请求处理任务,但真实的MVC框架并非如此。真正的MVC框架中具有一个名为IActionResult的重要结构,顾名思义,IActionResult对象一般会作为Action方法的返回值,针对请求的响应任务基本上会由这个对象来实现。 源代码下载: IActionResult的执行 IActionResult的类型转换 一、IActionResult 作为Action方法执行结果旨在对请求做最终响应的IActionResult接口同样具有极为简单的定义。如下main的代码片段所示,IActionResult对象针对请求的响应实现在它唯一的ExecuteResultAsync方法中,针对待执行Action的ActionContext上下文是其唯一的输入参数。 public interface IActionResult { Task

[ASP.NET Core MVC] 如何实现运行时动态定义Controller类型?

最后都变了- 提交于 2020-04-11 19:49:58
昨天有个朋友在微信上问我一个问题:他希望通过动态脚本的形式实现对ASP.NET Core MVC应用的扩展,比如在程序运行过程中上传一段C#脚本将其中定义的Controller类型注册到应用中,问我是否有好解决方案。我当时在外边,回复不太方便,所以只给他说了两个接口/类型:IActionDescriptorProvider和ApplicationPartManager。这是一个挺有意思的问题,所以回家后通过两种方案实现了这个需求。源代码从 这里 下载。 一、实现的效果 我们先来看看实现的效果。如下所示的是一个MVC应用的主页,我们可以在文本框中通过编写C#代码定义一个有效的Controller类型,然后点击“Register”按钮,定义的Controller类型将自动注册到MVC应用中 由于我们采用了针对模板为“{controller}/{action}”的约定路由,所以我们采用路径“/foo/bar”就可以访问上图中定义在FooController中的Action方法Bar,下图证实了这一点。 二、动态编译源代码 要实现如上所示的“针对Controller类型的动态注册”,首先需要解决的是针对提供源代码的动态编译问题,我们知道这个可以利用Roslyn来解决。具体来说,我们定义了如下这个ICompiler接口,它的Compile方法将会对参数sourceCode提供的源代码进行编译

[ASP.NET Core MVC] 如何实现运行时动态定义Controller类型?

不问归期 提交于 2020-04-09 04:52:52
昨天有个朋友在微信上问我一个问题:他希望通过动态脚本的形式实现对ASP.NET Core MVC应用的扩展,比如在程序运行过程中上传一段C#脚本将其中定义的Controller类型注册到应用中,问我是否有好解决方案。我当时在外边,回复不太方便,所以只给他说了两个接口/类型:IActionDescriptorProvider和ApplicationPartManager。这是一个挺有意思的问题,所以回家后通过两种方案实现了这个需求。源代码从 这里 下载。 一、实现的效果 我们先来看看实现的效果。如下所示的是一个MVC应用的主页,我们可以在文本框中通过编写C#代码定义一个有效的Controller类型,然后点击“Register”按钮,定义的Controller类型将自动注册到MVC应用中 由于我们采用了针对模板为“{controller}/{action}”的约定路由,所以我们采用路径“/foo/bar”就可以访问上图中定义在FooController中的Action方法Bar,下图证实了这一点。 二、动态编译源代码 要实现如上所示的“针对Controller类型的动态注册”,首先需要解决的是针对提供源代码的动态编译问题,我们知道这个可以利用Roslyn来解决。具体来说,我们定义了如下这个ICompiler接口,它的Compile方法将会对参数sourceCode提供的源代码进行编译