.NET Core

校友录小程序开发随笔一:背景与技术方案的选择

╄→尐↘猪︶ㄣ 提交于 2020-12-14 01:12:17
一 业务背景介绍 小女子毕业于湖南长沙某985二梯队大学,在深圳某厂工作,鉴于本校在深圳校友众多(大概4w+), 急切需要一个校友交流的平台,传统的网站形式以及没落且无人问津,故打算开发 一个小程序+公众号的社交平台,供木讷的工科师兄师弟师姐师妹交流,初步计划的模块有资讯,交友,互助,捐赠,个人中心,代言母校,聚会活动,校友供需,后续会陆续来落实。 二 前端技术方案选型 原生 :对性能特别苛刻 or 追求稳定 or 要用最新功能,请记住任何时刻原生都是最稳定性能最好的选择!!!! KBone :kbone 是一个致力于微信小程序和 Web 端同构的解决方案,微信小程序的底层模型和 Web 端不同,我们想直接把 Web 端的代码挪到小程序环境内执行是不可能的。kbone 的诞生就是为了解决这个问题,它实现了一个适配器,在适配层里模拟出了浏览器环境,让 Web 端的代码可以不做什么改动便可运行在小程序里。 MPVue :是美团点评开源的一个使用 Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为小程序开发引入了整套 Vue.js 开发体验。 WePY :腾讯团队开源的一款类vue语法规范的小程序框架,借鉴了Vue的语法风格和功能特性,支持了Vue的诸多特征

通用中小企业架构设计思路

情到浓时终转凉″ 提交于 2020-12-13 21:42:13
在上一篇博客中( 浅谈微服务架构与.Net Core )我们谈到微服务架构与.Net Core,大体分析了下微服务架构的一些优势,在这边博客中,将谈谈架构设计的一些理念。 首先,代码要清晰明了,层次分明,模块间耦合度要尽量降低,代码并不是要越复杂越好,可能有人认为,代码写得越复杂、算法用的越高级,让别人越看不懂就越牛X,我认为恰恰相反,代码越是简单就能实现的就尽量做到简单,能用几行代码能解决的问题何必要写个牛X的算法来实现呢? 其次,能做到通用的模块需要单独提炼出来,不要在其他业务逻辑中混合实现,不利于代码的移植,以下简单说说常用的一些模块或逻辑需要特别注意的; 1、底层数据访问需要单独写,当我们数据库发生变化,比如我们这个项目用的是SqlServer,下个项目用的是MySQL,要做到很轻易的切换; 2、缓存管理需要独立出来,通常,我们开发都会用到缓存技术,能把缓存用好,系统性能也会得到大幅度提升,简单举个例子,比如我们开发一个系统,用的是MemoryCache,但是系统上线运行一段时间后,并发量增大,本机缓存已经不能满足需求,我们需要对系统进行集群,减轻服务器压力,此时需要用Redis来管理缓存,那么此时,我们需要做到很容易的从MemoryCache切换到Redis来做缓存管理,我们只需要改一下配置文件就能达到预期效果而不必在用到缓存的地方一个一个的去改再编译上线。 3

.net core实践系列之短信服务-架构优化

醉酒当歌 提交于 2020-12-13 16:36:16
前言 通过前面的几篇文章,讲解了一个短信服务的架构设计与实现。然而初始方案并非100%完美的,我们仍可以对该架构做一些优化与调整。 同时我也希望通过这篇文章与大家分享一下,我的架构设计理念。 源码地址:https://github.com/SkyChenSky/Sikiro.SMS/tree/optimize (与之前的是另外的分支) 架构是设计的还是演变的? 架构 该词出自于建筑学。软件架构定义是指软件系统的基础结构,是系统中的实体及实体(服务)之间的关系所进行的抽象描述。而架构设计的 目的 是为了解决软件 系统复杂度 带来的问题。 复杂度 系统复杂度主要有下面几点: 高可用 高性能 可扩展 安全性 维护成本 用户规模 业务规模 系统的复杂度导致的直接原因是业务规模。为了用户流畅放心的使用产品,不得不提高系统性能与安全。当系统成为人们生活不可缺一部分时,避免机房停电、挖掘机挖断电缆导致的系统不可用,不得不去思考同城跨机房同步、异地多活的高可用方案。 答案并非二选一 我认为架构,需要在已知可见的业务复杂度与用户规模的基础上进行 架构设计 ;伴随着技术积累与成长而对系统进行 架构优化 ;用户的日益增长,业务的不断扩充,迫使了系统的复杂度增加,为了解决系统带来新的复杂度而进行 架构演变。 因此,架构方案是在已有的业务复杂度、用户规模、技术积累度、人力时间成本等几个方面的 取舍 决策

.Net Core之Swagger

会有一股神秘感。 提交于 2020-12-13 08:02:39
1.项目生成xml 2.添加链接文件,并将属性设值为始终复制 3.添加swagger引用:Swashbuckle.AspNetCore 4.startup.cs配置swargger的xml来源: ConfigureServices方法添加: services.AddMvc(); services.AddOptions(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "DVM AdsPlatformProxy Service WebApi", Version = "v1.0.0.3" }); var basePath = PlatformServices.Default.Application.ApplicationBasePath; var docPath = Path.Combine(basePath, "Docs"); var docs = XMLUtil.CreateXPathDocumentsFromDirectory(docPath); docs.ForEach(xp => c.IncludeXmlComments(() => { return xp; })); });//swagger文件路径配置 services.RegisterServiceR<ILogBase,

Swagger在.Net Core 2.0与Core 2.2中的区别

﹥>﹥吖頭↗ 提交于 2020-12-13 07:08:04
最近要做个简单服务并且需要对外开放几个Web API,之前做项目用过.Net Core 1.0和2.0,去年12月份微软正式发布了.Net Core 2.2版本,所以这次项目框架就选择了.Net Core 2.2。API很简单,写完后需要和其他同事做对接,自然而然直接使用Swagger来做API的文档。.Net Core版本的Swagger就是这个库喽 Swashbuckle.AspNetCore 因为之前在Core 1.0和2.0中一直使用Swagger(1.0和2.0在Swagger的用法上也是有一些不同),所以直接Copy .Net Core2.0项目中Swagger使用的代码到2.2版本中,如下图 发现这边报错了,可以看出 PlatformServices 这个对象找不到了,猜测可能是Core 2.2版本中移除了这个对象。 我们回到2.0的项目中查找下 PlatformServices 这个对象到底是在哪个程序集里面 原来这个对象是在上图这个程序集里面,Copy了程序集名字去2.2里面一搜,果然没有,那就简单了,直接安装一下这个 Microsoft.Extensions.PlatformAbstractions 完事。 当然2.2可是2.0的升级版,丢了这个程序集,那肯定是有更好的写法去代替,无非就是获取一些路径,这种最最基础的方法肯定是有的啦,那么就有了下面的替代方法

将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1.3X

空扰寡人 提交于 2020-12-13 04:36:28
阅读文本大概需要 3.3 分钟。 在上一篇文章 《 ASP.Net Core 运行错误 Http Error 502.5 解决办法 》 的最后有提到说,最推荐的升级办法是从2.0升级到2.1X版本. 操作如下 项目的例子直接使用 https://github.com/52ABP/52ABP.School 作为对象,毕竟他正好是.NET CORE 2.0的版本。 首先要下载SDK包。 地址: https://www.microsoft.com/net/download 下载最新的.NET Core 2.1的版本。 打开 LTM.School 项目后,右键项目找到LTM.School.csproj 文件,将文件中的 target framework 改为 netcoreapp2.1 修改后: < TargetFramework > netcoreapp2.1 </ TargetFramework > 然后讲对应的依赖Package包的引用进行修改。 修改前 < ItemGroup > < PackageReference Include = "Microsoft.AspNetCore.All" Version = "2.0.3" /> < PackageReference Include = "Microsoft.EntityFrameworkCore.SqlServer"

ASP.NET Core使用EPPlus导入导出Excel

别等时光非礼了梦想. 提交于 2020-12-12 00:44:38
开发过程中,经常会遇到导入导出数据的需求,本篇博客介绍在.NET Core中如何使用EPPlus组件导入导出Excel EPPlus: EPPlus是使用Open Office XML格式(xlsx)读写Excel 2007/2010文件的 .net 开发库,能读写Excel 2007/2010文件,可以运行在Windows, Linux和Mac,官网地址: https://archive.codeplex.com/ 在.net core中还可以使用NOPI操作Excel,在此不做介绍。 使用EPPlus操作Excel: 1、引入EPPlus包 ,在程序包管理控制台中执行命令安装依赖包: 1 PM> Install-Package EPPlus.Core -Version 1.5 . 4 2、导出Excel ①使用EF Core操作数据库时,数据源用List集合方便导出。 ②在控制器的构造函数中注入 IHostingEnvironment 来获取网站根目录路径,以便设置导出Excel文件路径。 1 public IActionResult OutputExcel( ) 2 { 3 // 数据源为list集合 4 var query = ( from u in _context.UserInfo 5 select new 6 { 7 u.UId, 8 u.UName, 9 u

使用Northwind数据库的 .NET Core应用你了解多少?

时光怂恿深爱的人放手 提交于 2020-12-11 10:32:02
下载DevExpress v20.2完整版 DevExpress技术交流群2:775869749 欢迎一起进群讨论 通过 DevExpress WPF Controls ,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 在本文中,空白示例项目(.NET Core 3.1)是连接到Northwind数据库。 数据库结构: 您可以使用此示例创建DevExpress项目并体验相关功能,该项目引入 DevExpress ThemedWindow 作为根元素。 要创建一个项目并将其连接到数据库: 1. 创建一个新项目: 2. 选择DevExpress v20.1 WPFBlank App (.NET Core): 3. 指定项目名称,然后单击创建: 4. 将Microsoft.EntityFrameworkCore.SqlServer和Microsoft.EntityFrameworkCore.Tools NuGet程序包添加到项目中: 5. 打开 Package Manager Console 然后运行以下命令,此命令为DbContext和数据库的实体类型生成代码: Scaffold-DbContext "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:

拥抱自主可控Linux,如何在中标麒麟上部署活字格低代码开发平台?

 ̄綄美尐妖づ 提交于 2020-12-10 08:17:59
拥抱自主可控Linux,如何在中标麒麟上部署活字格低代码开发平台? 在“双循环”的大背景下,企业客户对自主可控的需求越发强烈。为了让更多低代码开发者能够将自己开发的应用部署至自主可控的系统平台,活字格企业级低代码开发平台基于开源的.NET Core开源技术,打造了兼容主流Linux系统的私有化部署服务器。本文将以中标麒麟V7为例,为您介绍将活字格服务器端部署在Linux云主机的方法和技巧。 系统选型与基础配置 为了充分满足企业级应用开发过程中,不同应用场景、合规性制度,以及 IT 技术背景对部署方式的要求,活字格企业级低代码开发平台的部署方式非常灵活,全面支持私有化部署和云部署。从项目实践上看,云主机的部署方式更适合预算有限或者应用场景以互联网为主(如移动办公等)的企业级应用,是大多数活字格开发者的首选。 从阿里云等云服务提供商选购ECS等虚拟机时,您首先需要确定Linux的发行版本和恰当的硬件配置。操作系统方面,经过严格测试,活字格服务端支持的Linux类操作系统比较广泛,包括如下主流发行版: CentOS 7 Ubuntu 1604 / 1804 RedHat 7 中标麒麟 V7 在配置选择时,您可以参考技术白皮书,根据注册用户数、在线用户数或并发用户数确定硬件配置。 在云服务提供商处购买云主机后,您需要进行网络访问配置。除了启用Web应用所需的80(HTTP)或443

“外联数据库”还不够!企业级低代码开发平台开放性解密

故事扮演 提交于 2020-12-10 07:37:06
在之前的文章中,我们讨论了企业级低代码开发平台对系统架构提出的技术要求。今天,我们在架构的基础上,关注开放性为企业级应用开发带来的重要价值,详细了解低代码开发平台如何通过与各种软硬件与互联网服务深度集成,打通数据孤岛,协同增效推进企业数智化转型升级。 什么是企业级应用开发平台? 企业级应用是企业软件应用中的一个类别,被称为软件开发领域的“明珠”。典型的企业级应用通常可以分为三个大类,即支撑企业核心业务的应用系统(如生产制造业的MES、交通运输业的TMS)、涵盖企业全流程的大规模综合型系统和基于行业软件定制开发的个性化模块。这些企业级应用支撑着企业的核心业务发展,为推进企业数字化打下坚实的基础。 这些特性决定了能够开发企业级应用的工具,必然能够满足互联网应用的开发,反之则不尽然。这就意味着选择一款企业级应用低代码开发平台,除了生产力外,还需关注工具本身的技术架构、开放程度及安全可控性等关键指标。 本文将专注于开放性,以活字格企业级低代码开发平台为例,从多源数据整合到各层编程接口,全面介绍具备能够支撑企业级应用开发的低代码开发工具,及这类工具的开放性设计。 剑指“数据孤岛”,支持多源数据整合 作为系统集成的重要组成部分和基础能力,多源数据整合被更多开发者和企业 IT 决策人员视为低代码开发平台产品的必备功能。截止目前,少数先进的低代码开发平台厂商已经开放了数据访问能力