.NET Core

介绍一个基于 .NET 的船新 PHP SDK + Runtime: PeachPie

自古美人都是妖i 提交于 2020-08-11 13:42:17
前言 这几天想基于 .NET Core 搞一个自己的博客网站,于是在网上搜刮各种博客引擎,找到了这些候选:Blogifier、Miniblog 以及 edi 写的 Moonglate。 Blogifier:这是前端是个 Angular SPA 应用,不利于 SEO,同时首屏加载速度慢,因此排除。 Miniblog:顾名思义 Mini,可以完美承载内容但是主题实在是过于简单,没有可自定义性,因此排除。 Moonglate:总体感觉不错,界面设计得也很好,功能全面,然而需要 SQL Server 作为数据库,然而 SQL Server 虽然有 Linux 版本,但受限于主机配置和预算因此也被排除。 难道就没有适合我需求的博客引擎了吗?答案当然是:有。 众所周知 PHP 是世界上最好的语言(滑稽),还是众所周知有一个叫做 WordPress 的博客引擎生态非常庞大,而且是使用 PHP 构建的。 可是 PHP 和 .NET 又有什么关系呢? PeachPie PeachPie 是一个完全构建于 .NET Standard 之上的一套完整的 PHP SDK + Runtime,包含编译器和运行时等等,兼容 PHP 5.4-7.4(当然部分功能仍在开发中)。 官网: https://www.peachpie.io 那么 PeachPie 有什么优点呢: 开源: https://github

基于 abp vNext 和 .NET Core 开发博客项目

 ̄綄美尐妖づ 提交于 2020-08-11 12:36:49
上一篇文章( https://www.cnblogs.com/meowv/p/12896177.html )已经成功创建了博客项目,但是abp默认给我们引用了许多项目中用不到的组件。 本篇文章将给项目进行瘦身,删掉对我们来说暂时用不到的组件。讲解各个模块之间的关系,写一个Hello World,让其成功运行起来。 给项目瘦身 Meowv.Blog.HttpApi.Hosting Meowv.Blog.HttpApi.Hosting 相当于一个web项目,但这里主要依赖于 Meowv.Blog.HttpApi 模块,用来暴露我们的API的。 删掉 Meowv.Blog.HttpApi.Hosting 项目中abp自己生成的文件和文件夹,只留下 Program.cs 和 Startup.cs 两个类。 在abp中,每个模块都应该定义一个模块类,派生自 AbpModule ,那么就添加一个模块类 MeowvBlogHttpApiHostingModule.cs AbpModule 类中可以做 配置服务前和后的操作,应用程序初始化,应用程序初始化前和后,应用程序关闭和模块依赖等一系列操作,详看, https://docs.abp.io/en/abp/latest/Module-Development-Basics 为了方便,在这里直接集成Autofac,来替换官方依赖注入,详看,

ASP.NET Core MVC四种枚举绑定方式

我们两清 提交于 2020-08-11 12:32:22
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满满的干货,你值得拥有。 探讨枚举绑定方式 我们首先给出要绑定的枚举类。 public enum Language { JavaScript, Java, C, Python, SQL, Oracle } 枚举绑定方式一(@Html.DropDownList) 接下来我们废话少说直接进入主题。 ViewBag.enums = Enum.GetValues( typeof (Language)).Cast<Language>(); 视图页面则是得到该ViewBag中的值。 @Html.DropDownList( " enumList " , new SelectList(ViewBag.enums), new { @class = " btn btn-success dropdown-toggle form-control " }) 绑定方式二(@Html.EnumDropDownListFor) 此时我们需要借助强类型视图来操作,如下控制器代码 [HttpGet] public IActionResult Get() { var test = new TestViewModel();

C# 数据操作系列

杀马特。学长 韩版系。学妹 提交于 2020-08-11 12:21:45
0.前言 上一章简单介绍了一下ORM框架,并手写了一个类似ORM的工具类。这一章将介绍一个在C#世界里大名鼎鼎的ORM框架——Entity Framework的Core版。 Entity Framework 非Core版目前已经更新到了6代,这是一款经过检验的ORM框架。在这里简单介绍一下Entity Framework(简称EF,额,别拿这个当关键字搜索,要不然你会被忽悠到一个英语培训机构的)的优点。 C#的设计理念是约定优于配置,意思就是通过一定程度的规范性格式化的写法来避免使用配置文件或者配置代码等。而EF可以说是很好的诠释了这个理念。 EF可以在不使用任何配置的前提下,自动解析类与表之间的映射(具体的映射逻辑与我们手写的ORM工具类一致或相近)。 自动跟踪更改。在直接使用通过EF获取的元素时,EF会自动跟踪哪些字段发生了变化,当手动调用保存的时候,EF就会把数据回传给数据库。 可以延迟加载需要的数据,外键引用属性、查询结果等 丰富的映射关系,支持一对一,一对多,多对多,甚至继承、单表多实例等 可以使用Linq 进行查询 非Core版的可以通过数据库表生成实体类,两种都可以通过实体类生成表 基于 ADO.NET 的数据库连接和可用于连接到 SQL Server、Oracle、MySQL、SQLite、PostgreSQL、DB2 等 当然,还有一个特点:EF是约定优于配置

基于 abp vNext 和 .NET Core 开发博客项目

泪湿孤枕 提交于 2020-08-11 12:16:10
首先,默认咱们已经有了.net core 3.1的开发环境,如果你没有,快去下载... https://dotnet.microsoft.com/download 由于项目是基于abp vNext开发的,所以开发之前建议去撸一遍abp官方文档, https://docs.abp.io/en/abp/latest/ 创建项目有很多种方式: 第一种,纯手撸,使用vs手动创建新项目 第二种,借助abp模板直接傻瓜式下载,地址: http://abp.io/get-started 第三种,abp cli(推荐) abp cli abp cli是使用ABP框架启动新解决方案的最快方法,那么前提是你要安装啊。 dotnet tool install -g Volo.Abp.Cli 如果你的版本比较低,使用下面命令进行更新 dotnet tool update -g Volo.Abp.Cli 更多使用方法,请参考 https://docs.abp.io/en/abp/latest/CLI abp new 终于进入主题了,使用命令 abp new <solution-name> 创建博客项目 默认会生成两个项目,一个aspnet-core,一个react-native。暂时干掉不需要项目吧,虽然react-native也很香,但是现在先忽略它。 然后将aspnet

走向统一的 .NET 旅程

可紊 提交于 2020-08-11 10:27:42
这是微软第一次完全线上举办的Build大会,也是第一次完全属于开发者的大会。几乎所有的新产品都是属于开发者,开发者成为了唯一的主角。 现在的微软比以往任何时候都贴近开发者,重视开发者的作用,为他们打造平台和工具。因为没有开发者,就没有微软的生态平台,也就没有微软的一切, 今年的Build大会究竟都宣布了很多新产品,自然也少不了.NET, 两个Scott 在 统一 .NET 平台的旅程 视频里揭晓.NET 的发展现状和未来。 发布了.NET 5 Preview4 , Blazor WebAssembly RTM, ML.NET Model Builder、云原生应用开发的tye 以及 docker 改进等。在dotnet团队的官方博客上连续发了好几篇篇文章: Announcing .NET 5 Preview 4 and our journey to one .NET Introducing .NET Multi-platform App UI Windows Forms Designer for .NET Core Released ML.NET Model Builder is now a part of Visual Studio Announcing Entity Framework Core 5.0 Preview 4 ASP.NET Core updates in

.Net Core实战之基于角色的访问控制的设计

不羁的心 提交于 2020-08-11 09:04:28
前言   上个月,我写了两篇微服务的文章:《 .Net微服务实战之技术架构分层篇 》与《 .Net微服务实战之技术选型篇 》,微服务系列原有三篇,当我憋第三篇的内容时候一直没有灵感,因此先打算放一放。   本篇文章与源码原本打算实在去年的时候完成并发布的,然而我一直忙于公司项目的微服务的实施,所以该篇文章一拖再拖。如今我花了点时间整理了下代码,并以此篇文章描述整个实现思路,并开放了源码给予需要的人一些参考。   源码: https://github.com/SkyChenSky/Sikiro.RBAC RBAC   Role-Based Access Contro翻译成中文就是 基于角色的访问控制 ,文章以下我都用他的简称 RBAC 来描述。   现信息系统的 权限控制 大多数采取RBAC的思想进行实现,其 本质思想 是对系统各种的操作权限不是直接授予具体的某个用户,而是在用户集合与权限集合之间建立一个角色,作为 间接 关联。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。   通过以上的描述,我们可以分析出以下信息:   用户与权限是通过角色间接关联的   角色的本质就是权限组(权限集合)   这样做的好处在于,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多

.Net Core实战之基于角色的访问控制的设计

情到浓时终转凉″ 提交于 2020-08-11 08:19:38
前言   上个月,我写了两篇微服务的文章:《 .Net微服务实战之技术架构分层篇 》与《 .Net微服务实战之技术选型篇 》,微服务系列原有三篇,当我憋第三篇的内容时候一直没有灵感,因此先打算放一放。   本篇文章与源码原本打算实在去年的时候完成并发布的,然而我一直忙于公司项目的微服务的实施,所以该篇文章一拖再拖。如今我花了点时间整理了下代码,并以此篇文章描述整个实现思路,并开放了源码给予需要的人一些参考。   源码: https://github.com/SkyChenSky/Sikiro.RBAC RBAC   Role-Based Access Contro翻译成中文就是 基于角色的访问控制 ,文章以下我都用他的简称 RBAC 来描述。   现信息系统的 权限控制 大多数采取RBAC的思想进行实现,其 本质思想 是对系统各种的操作权限不是直接授予具体的某个用户,而是在用户集合与权限集合之间建立一个角色,作为 间接 关联。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。   通过以上的描述,我们可以分析出以下信息:   用户与权限是通过角色间接关联的   角色的本质就是权限组(权限集合)   这样做的好处在于,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多

探讨NET Core数据进行3DES加密或解密弱密钥问题

落花浮王杯 提交于 2020-08-11 08:15:44
前言 之前写过一篇《探讨.NET Core数据进行3DES加密和解密问题》,最近看到有人提出弱密钥问题,换个强密钥不就完了吗,猜测可能是与第三方对接导致很无奈不能更换密钥,所以产生本文解决.NET Core中3DES弱密钥问题,写下本文,希望对碰到此问题的童鞋有所帮助。 3DES加密或解密弱密钥 在基于.NET Framework中,我们可以使用反射获取到TripleDESCryptoServiceProvider的“_NewEncryptor”私有方法,从而规避判断弱秘钥问题,但在.NET Core中没有这个方法,我们首先来看看问题的产生,如下为.NET Core中加密和解密的方法实现 public static string DesEncrypt( string input, string key) { byte [] inputArray = Encoding.UTF8.GetBytes(input); var tripleDES = TripleDES.Create(); var byteKey = Encoding.UTF8.GetBytes(key); byte [] allKey = new byte [ 24 ]; Buffer.BlockCopy(byteKey, 0 , allKey, 0 , 16 ); Buffer.BlockCopy(byteKey, 0

造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

▼魔方 西西 提交于 2020-08-11 07:46:37
微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等等。而我为什么还要造一个轮子呢?一来这些都不是.net实现的,我就想试试用.net core实现一个,而且他们也对.net不太友好,也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了,比如apoll,光跑起来就要部署多个节点(admin,portal,meta sevice)还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的,可能是一步步来的,比如先把所有的服务都容器化,并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶,毕竟微服务不是银弹,很多项目单体结构就足够了,有些项目传统的SOA架构也可以了。(唠叨一句,那种毫无流量毫无并发的项目,几人几天就搞完的强上微服务真的好吗?)但是这些项目也可能是分布式的,容器化部署的,那么这些项目我觉得也是需要配置中心的,因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能,做的尽量简单(陋),开发了AgileConfig,为.net core的生态尽一份绵薄之力。 Github求star: AgileConfig