ASP.NET Core

上周热点回顾(9.23-9.29)

大城市里の小女人 提交于 2020-11-02 07:36:48
热点随笔: · .NET Conf 2019 大会上发布.NET Core 3.0 ( 张善友 ) · 程序员写 2000 行 if else?领导:这个锅我不背 ( 小柒2012 ) · 多事之秋-最近在阿里云上遇到的问题:负载均衡失灵、服务器 CPU 100%、被 DDoS 攻击 ( 博客园团队 ) · 程序员过关斩将--要想获取我的用户信息,就得按照规矩来 ( 架构师修行之路 ) · ASP.NET Core 3.0 使用gRPC ( 晓晨Master ) · [翻译] ASP.NET Core 3.0 的新增功能 ( 秦文轩 ) · ASP.NET Core 3.0 gRPC 双向流 ( 晓晨Master ) · 基于RHEL8/CentOS8的网络基础配置 ( 王者★孤傲 ) · 我用数据结构花了一夜给女朋友写了个h5走迷宫小游戏 ( bigsai ) · 从壹开始 NetCore 新篇章 ║ Blog.Core 开发社之招募计划书 ( 老张的哲学 ) · 跳槽时,不敢要高工资也会对候选人不利 ( hsm_computer ) · ASP.NET Core 3.0 : 二十四. 配置的Options模式 ( FlyLolo ) 热点新闻: · Facebook中国程序员之死:年仅38岁跳楼轻生,浙大EE毕业生 · 李彦宏主刀百度大手术:用户优先,去庸人打硬战 ·

2、FreeSql简单博客集成AutoMapper

可紊 提交于 2020-11-01 14:59:54
基础结构解释 UI-表现层-与控制器打交道(UI向Controller 传递数据时使用DTO(数据传输对象)) Service-应用服务层 Domain 领域对象 DTO 数据传输对象,一般只包含基础的Get,Set功能,也会包含一些数据验证,如必填项,大小,自定义规则等。 一个完整的业务是通过领域实体(对象)domain建立的,而DTO是根据UI的需求来设计的。 比如:Customer领域对象可能会包含一些诸如FirstName, LastName, Email, Address等信息。但如果UI上不打算显示Address的信息,那么CustomerDTO中也无需包含这个 Address的数据。 比如:User表设计字段如下:Id,UserName,Password,RegisterTime。注册时,那这个接口的参数应该只有UserName,Password,因为RegisterTime是后台赋值的,Id是数据库自动生成的。即设计一个RegisterDto,只包含UserName,Password二个字段,作为注册接口的参数。不然,那二个参数对于开发前端的人来说是无意义的,因为传递也没有效果。所以不应该暴露给前端使用。 以上即领域对象来实现业务,DTO只注重数据。 UI->Controller(通过 DTO完成数据传输,表单验证)->Service(操作Domain,完成业务服务

学完这篇依赖注入,与面试官扯皮就没有问题了。

ⅰ亾dé卋堺 提交于 2020-10-30 06:49:52
IOC: Inversion Of Control 控制反转 DI: Dependency Injection 依赖注入 1.控制反转 Inversion Of Control 的前世今生 1.1 IOC理论产生的背景 讨论控制反转之前,先看看软件系统提出 控制反转 的前世今生。 一个完整精密的软件系统,组件之间就像齿轮,协同工作,相互耦合。 一个零件不正常,整个系统就崩溃了。 系统对象之间耦合关系无法避免,在项目规模和复杂度变大的情况下,管理类之间的依赖关系将会很复杂。 对象之间耦合度很高的系统,架构师和开发人员对于系统的修改,必然会出现牵一发而动全身的情形。 对象之间耦合性依赖,单元测试很复杂。 1.2 IOC理论 软件专家为此提出 IOC理论 ,用来实现对象之间的解耦。 再来看看,控制反转(IOC)到底为什么要起这么个名字?我们来对比一下: 软件系统在没有引入IOC容器之前,对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已经创建的对象B。无论是创建还是使用对象B,控制权都在自己手上。 软件系统在引入IOC容器之后,这种情形就完全改变了,由于IOC容器的加入,对象A与对象B之间失去了直接联系,所以,当对象A运行到需要对象B的时候,IOC容器会主动创建一个对象B注入到对象A需要的地方。 通过前后对比,我们不难看出:

Blazor.Server以正确的方式集成Ids4

白昼怎懂夜的黑 提交于 2020-10-29 23:25:20
(一个真正的以后端形式来集成认证中心的方案) ❤ 本文导读 首先特别感谢张善友老师提供技术指导,源于上周我发了一篇文章 《 [Mvp.Blazor] 集成Ids4,实现统一授权认证 》, 我本来是想通过像vue框架那样,通过引oidc-client.js的方式,来实现Ids4的集成问题,我当时以为已经很好的,后来看了张队发的文章以后,发现好像我写的那种方式并不优雅。 所以我又重新改了一次, (但是代码保留了,新建了对应的分支) ,以适应在Blazor服务端集成ids4的完美体验,如果你是wasm的项目,也不需要引用,张队已经写好了组件,大家看看引用下即可: https://github.com/BlazorHub/AntDesignTemplate 那今天我就快速的给大家说一下,如何在Blazor服务端来设计和集成认证中心,当然里边会涉及一些基础知识点,我就不展开了,所以你自己需要先掌握以下知识储备: Ids4配置授权码模式客户端 Razor page的On{handler}{Async}()语法 HttpContext.User基本使用 第一部分:配置认证方案 在上一篇文章中,我们 主要是通过oidc-client.js的形式进行 ids4的连接的。 但是我们的项目毕竟是服务端, Blazor服务端使用ids4,感觉和MVC还是有些相似的 ,都是基于Cookie的oidc认证模式

ASP.NET Core 中间件

匆匆过客 提交于 2020-10-29 17:02:51
转自:梦里小探花 cnblogs.com/aoximin/p/13576479.html 前言 对中间件的一个概况,在《重新整理.net core 计1400篇》系列后面会深入。 正文 什么是中间件呢? 其实中间件这个概念来源于分布式,当然这是一个狭隘的概念了,现在中间件概念就非常广泛了。 官网给出了这样一张图,这张图认为从请求到响应过程中间都是中间件,包括我们认为的路由。 看一段node代码: var http = require ( "http" ); http.createServer( function (req,res){ res.writeHead( 200 ,{ "Content-type" : "text/blain" }); res.write( "Hello NodeJs" ); res.end(); }).listen( 8888 ); 没有学过node 也是ok的,从字面意思就是创建了一个http服务,然后端口是8888。 createServer 可以传入一个方法,中间有两个参数,一个参数是req,另一个参数就是res。 其实就是这么回事,我们写的就是这个这个方法里面的代码,至于,你想拿到req的什么参数,或者给res写入什么信息,这些都是中间件的范畴。 那么问题来了,问什么叫做中间件呢?从语文的层面上理解,那就是分开的,一件一件的。

[C#.NET 拾遗补漏]09:数据标注与数据校验

倾然丶 夕夏残阳落幕 提交于 2020-10-29 07:37:08
数据标注(Data Annotation)是类或类成员添加上下文信息的一种方式,在 C# 通常用特性(Attribute)类来描述。它的用途主要可以分为下面这三类: 验证 Validation:向数据添加验证规则 展现 Display:指定数据如何呈现给用户 模型 Modelling:添加关于用法和与其它类的关系信息 下面是一个用来验证和展现用户信息的一个 Model: class Kid { [ Range(0, 18) ] // 年龄不能超过18岁,不能为负数 public int Age { get ; set ; } [ StringLength(MaximumLength = 50, MinimumLength = 3) ] // 名称的长度不能超过 50,不能小于 3 public string Name { get ; set ; } [ DataType(DataType.Date) ] // 生日将作为日期展示 (不带时间) public DateTime Birthday { get ; set ; } } 数据标注的展现的用途主要在早期的 ASP.NET 和 ASP.NET MVC 等框架中使用。例如,在 ASP.NET MVC 中,Razor 引擎会根据 Model 属性的 DataType 特性动态生成不同类型的表单元素。不过,现在这类用途除了 WPF

【招聘(深圳)】轻岁 诚聘.NET Core开发

白昼怎懂夜的黑 提交于 2020-10-28 18:30:48
招聘简介 为了支撑公司互联网的战略转型,我们将基于.NET Core + K8S/TKE + 腾讯云云函数的微服务架构,打造高性能、高并发、高扩展的基础平台,同时基于该平台进行应用开发,包括Web端,移动端(微信公众号、小程序、支付宝应用号)的开发。 如果你对【IOT + .NET Core + K8S + 无服务计算/微服务 + 轻应用】感兴趣,有冲劲,肯学习,想往互联网、云原生等新技术方向发展,那这里将是你保持技术领先和成长的好地方。 招聘岗位1:.NET 研发工程师(18k-20k) 任职资格: 1、全日制本科及以上学历,计算机或其他相关专业,3年以上相关工作经验,有独立负责项目经验者优先; 2、.NET 基础扎实,精通C#编程,有丰富的MVC、WebApi开发经验,掌握ASP.NET Core应用开发和ORM框架; 3、掌握面向对象编程思想,掌握常用的设计模式,良好的编程素养; 4、掌握数据库编程;掌握Web前端开发技术; 5、熟悉.NET Core 容器化和基于Kubernetes 的云原生应用开发经验优先; 6、了解MongoDB、Redis、RabbitMQ等技术。 7、有ABP 框架开发经验者优先; 8、自我驱动,热爱学习和总结; 福利: 五险一金;绩效奖金;带薪年假;弹性工作;员工旅游;餐费补贴;节日福利。(没有的我们一起去努力!) 轻岁团队

发布基于Orchard Core的友浩达科技官网

懵懂的女人 提交于 2020-10-28 15:24:17
2018.9.25 日深圳市友浩达科技有限公司发布基于Orchard Core开发的官网 http://www.weyhd.com/ 。 本篇文章为你介绍如何基于Orchard Core开发一个公司网站。Orchard Core是一个免费和开源的社区交流项目,致力于在ASP.NET Core平台开发应用程序和可重用性组件。它将创建用于ASP.Net Core应用和扩展的共享组件,以及修改这些组件以便使其应用于终端用户,脚本人员和开发者。如果您现在是.NET Core 跨平台的爱好者,想找一个基于ASP.NET Core开发的开源框架,Orchard Core是一个很不错的选择,Orchard Core是一个基于ASP.NET Core构建的可扩展与模块化设计的开源CMS系统,全部代码在GitHub上已开源,其中使用了很多框架和最佳实战,它的架构设计值学习 。 官方文档介绍: http://orchardcore.readthedocs.io/en/latest/ GitHub: https://github.com/OrchardCMS/OrchardCore Orchard Core是全新一代的ASP.NET Core CMS。支持模块化和多租户。整个Orchard Core就是通过一个个模块Module组成的,整个网站由主题和业务模块组成。基于Orchard

.NET Core 在 K8S 上的开发实践--学习笔记

只愿长相守 提交于 2020-10-28 10:31:22
摘要 本主题受众是架构师,开发人员,互联网企业 IT 运维人员。大纲:1、 K8S 对应用的要求;2、 .NET Core 上 K8S 的优势;3、 K8S 下的 .NET Core 配置;4、 .NET Core 上分布式组件概览。 大纲 kubernetes 对应用的要求 asp .net core 在 kubernetes 上的优势 基于 kubernetes 的配置 asp .net core 分布式组件概述 kubernetes 对应用的要求 ASP .NET Core 在 Kubernetes 上的优势 基于 kubernetes 的 Configuration 视频中有演示 ASP .NET Core 分布式组件概览 视频中有演示 总结 视频链接 相关文章 传统.NET应用向微服务架构迁移的实践经验--学习笔记 微服务快速开发框架的设计--学习笔记 在.NET Core下的机器学习--学习笔记 RPA AI .NET Core 与未来--学习笔记 当我们在谈 .NET Core 跨平台时,我们在谈些什么?--学习笔记 .Net Core + 微信赋能企业级智能客服系统--学习笔记 用ASP.NET Core构建可检测的高可用服务--学习笔记 ASP.NET Core基于K8S的微服务电商案例实践--学习笔记 .NET 社区 NB,2019 中国 .NET 开发者峰会

ASP.NET Core MVC如何上传文件及处理大文件上传

ε祈祈猫儿з 提交于 2020-10-27 21:56:17
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发ASP.NET Core MVC的Controller中的Action方法。这种情况下,如果上传一些小文件是没问题的,但是如果上传大文件,势必会造成服务器内存大量被占用甚至溢出,所以IFormFile接口只适合小文件上传。 一个文件上传页面的Html代码一般如下所示: < form method ="post" enctype ="multipart/form-data" action ="/Upload" > < div > < p > Upload one or more files using this form: </ p > < input type ="file" name ="files" /> </ div > < div > < input type ="submit" value ="Upload" /> </ div > </ form > 为了支持文件上传,form标签上一定要记得声明属性enctype="multipart/form-data",否则你会发现ASP.NET Core MVC的Controller中死活都读不到任何文件。Input type=