ASP.NET Core

ASP.NET Core Blazor Webassembly 之 组件

ⅰ亾dé卋堺 提交于 2020-09-24 13:30:44
关于组件 现在前端几大轮子全面组件化。组件让我们可以对常用的功能进行封装,以便复用。组件这东西对于搞.NET的同学其实并不陌生,以前ASP.NET WebForm的用户控件其实也是一种组件。它封装html代码,封装业务逻辑,对外提供属性事件等信息,它完完全全就是个组件,只是用户控件跑在服务端,而现在的组件大多数直接跑在前端。现在Blazor Webassembly微软正式把组件带到前端,让我们看看它是怎么玩的。 第一个组件 废话不多说下面开始构建第一个组件。这个组件很简单就是绿色的面板加一个标题的容器,我们就叫它GreenPanel吧。 新建Blazor Webassembly项目 前几天的build大会,Blazor Webassembly已经正式release了。我们更新最新版的Core SDK就会安装正式版的模板。 新建项目选Blazor Webassembly App项目模板 新建GreenPanel组件 在pages命令下新建一个文件夹叫做components,在文件夹下新建一个razor组件,命名为GreenPanel.razor。 注意:组件的命名必须大写字母开头 添加代码如下: <div class="green-panel"> <div class="title"> Green panel </div> <div class="content"> </div> <

T4模板初体验

我的未来我决定 提交于 2020-08-20 08:21:57
今天初步接触T4模板,记录一下使用过程,后续可以再修改。 首先,T4模板是一个帮助我们生成模型的一种“工具” ,他可以 在项目里生成我们使用的模型。 一.以下以Asp.net core 为例,我们首先新建一个类库, 这个类库存放后续生成的实体模型, 这个类建好以后我们引用T4模板需要的Nuget包: 安装好以后(以使用mysql为例)我们再在创建的类里面新建一个文本模板 这个时候直接复制粘贴相关数据库的T4文档然后复制进去(mysql为例) 注意修改数据库的连接字符串;如果保存后出现报错一般是连接字符串出问题(一般是ip地址出问题),其次如果显示找不到dll文件则需要把图中的文件复制到类库的根目录中。 在都改完之前不能在文本模型中保存,改完之后保存就可以出现数据库表对应的实体类了。 来源: oschina 链接: https://my.oschina.net/u/4352142/blog/4429547

Asp.net core下利用EF core实现从数据实现多租户(2) : 按表分离

╄→гoц情女王★ 提交于 2020-08-20 05:29:56
前言 在 上一篇 文章中,我们介绍了如何根据不同的租户进行数据分离,分离的办法是一个租户一个数据库。 也提到了这种模式还是相对比较重,所以本文会介绍一种更加普遍使用的办法: 按表分离租户。 这样做的好处是什么: 在目前的to B的系统中,其实往往会有一个Master数据库,里面使用的是系统中主要的数据,各个租户的数据,往往只是对应的订单、配置、客户信息。 这就造成了,租户的数据不会有很多的种类,他的数据表的数量相对Master来说还是比较少的。 所以在单一租户数据量没有十分庞大的时候,就没有必要对单一租户数据独立到单一数据库。多个租户数据共享使用一个数库是一个折中的选择。 下图就是对应的数据表结构,其中store1和store2使用不同的数据表,但有同一个表名后缀和相同结构。 实施 项目介绍 本文的项目还是沿用上一篇文章的代码,进行加以修改。所以项目中的依赖项还是那些。 但由于代码中有很多命名不好的地方我进行了修改。并且,由于代码结构太简单,对这个示例实现起来不好,进行了少量的结构优化。 项目中新增的对象有什么: 1. ModelCacheKeyFactory,这个是EF core提供的对象,主要是要来产生ModelCacheKey 2. ModelCacheKey, 这个跟ModelCacheKeyFactory是一对的,如果需要自定义的话一般要同时实现他们俩 3.

CSharp Web实现文件上传下载功能实例解析

二次信任 提交于 2020-08-19 23:16:59
以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载。 准备文件上传的API #region 文件上传 可以带参数 [HttpPost("upload")] public JsonResult uploadProject(IFormFile file, string userId) { if (file != null) { var fileDir = "D:\\aaa"; if (!Directory.Exists(fileDir)) { Directory.CreateDirectory(fileDir); } //文件名称 string projectFileName = file.FileName; //上传的文件的路径 string filePath = fileDir + $@"\{projectFileName}"; using (FileStream fs = System.IO.File.Create(filePath)) { file.CopyTo(fs); fs.Flush(); } return Json("ok"); }else{ return Json("no"); } } #endregion 前端vue上传组件 ( 利用Form表单上传 )

《全栈工程师 Web 开发指南》

百般思念 提交于 2020-08-19 23:02:14
**《全栈工程师 Web 开发指南》 ========== ========== ========== [作者] (意) Dino Esposito [译者] (中) 李永伦 [出版] 人民邮电出版社 [版次] 2019年03月 第1版 [印次] 2019年03月 第1次 印刷 [定价] 79.00元 ========== ========== ========== 【第02章】 【选择支撑架构】 (P018) 领域模型模式的要点是构建一个完全体现业务领域的行为和流程的面向对象模型。 DDD 愿景中的全部持久化问题都委托给领域服务,尤其是仓库。 (P020) 对于领域模型而言,值类型的角色比很多人想象的重要得多。值类型是更精确地建模真实世界的工具。 【第03章】 【用户体验驱动设计】 (P038) 好的 UI 不一定是好的 UX 。好的 UX 可能是有效的,但可能没那么美观。 (P044) 不管物理层、逻辑层、框架、数据库和技术是什么,对于最终用户而言,软件系统唯一重要的是用户界面,确切地说,是这个应用程序的用户体验和感知速度。 【第04章】 【Web 解决方案的架构选项】 (P053) ASP.NET Core 1.0 最复杂的部分是选择要使用的 .NET CLR 。 DNX 运行时环境 (新的 ASP.NET 运行时) 是一个托管进程,其职责之一就是加载 CLR 。 (P054

asp dotnet core 不正经的提升效率的单元测试方法

妖精的绣舞 提交于 2020-08-19 16:58:29
在写 asp dotnet core 时,如果没有单元测试保证,需要每个方法都从 web api 的入口开始运行,此时的执行效率是很低的。而如果写单元测试,又有一个坑的问题是写单元测试也是需要时间的。本文告诉大家一些提高效率的方法,这些方法不是正经的用法,但是能提升效率。至于能不能用好不好用就请观众老爷自己决定 CUnit 中文命名单元测试 在写单元测试时,小伙伴说需要让单元测试的方法名符合 条件_执行_结果 而要求这个方法命名为英文,我的英文就超级渣,这一点 少珺 小伙伴可以帮我证明。于是你会看到我写了以下的测试 WhenABuDengYuThree_DokanarkelawNinirahajairi_SetSlj 的命名,而如果要我优化这个单元测试的命名,大家都知道,有些小伙伴和我一样想一个好的命名可能占了开发的一半时间 写单元测试时,大量的单元测试方法命名将会占用大量的时间,让小伙伴不愿意写单元测试。或者写出来的单元测试的只有自己能读懂 在一个团队里面的,如果英文水平参差不齐,如我所在的团队有英文特别厉害的 walterlv 和 天龙 也有英文特别差国语也特别差的大壮哥,还有英文有毒的本渣。此时用英文命名的单元测试就是一个神坑,除非团队能成立一个改名部专门协助命名 一个解决方法是干脆用中文命名单元测试算了,请看下面单元测试 [TestClass] public class

2020-06-11-ASP.NET Core Blazor 子组件父组件数据同步的问题

强颜欢笑 提交于 2020-08-19 16:47:06
上一篇写 数据绑定 的文章,写到最后留了一个坑。当子组件绑定父组件的一个字段,并且子组件修改它的时候父组件不能实时进行同步更新UI的问题,最近终于在 Blazui 作者的指导下搞定了。 UserInfo类要实现INotifyPropertyChanged接口 public class UserInfo: INotifyPropertyChanged { private string _userName; public string UserName { get { return _userName; } set { _userName = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(UserName))); } } public string Sex { get; set; } public DateTime BrithDay { get; set; } public event PropertyChangedEventHandler PropertyChanged; } 没想到微软blazor还是借用了WPF搞MVVM的模式,模型需要实现INotifyPropertyChanged类,在属性发生修改的时候可以发出通知。 父组件订阅PropertyChanged事件: @page

初识ABP vNext(2):ABP启动模板

耗尽温柔 提交于 2020-08-19 16:37:04
目录 前言 开始 AbpHelper 模块安装 最后 前言 上一篇介绍了ABP的一些基础知识,本篇继续介绍ABP的启动模板。使用ABP CLI命令就可以得到这个启动模板,其中包含了一些基础功能模块,你可以基于这个模板来快速开发。 开始 首先ABP CLI的安装以及基本指令这些就不说了,官网上写的很清楚。目前ABP的前端部分只支持ASP.NET Core MVC / Razor Pages和Angular,移动端支持React Native。 初学者建议跟着官网https://docs.abp.io/zh-Hans/abp/latest/Tutorials/Part-1?UI=MVC这个指引做一遍,体验一下ABP开发的基本流程,虽然ABP开发流程几乎都标准化了,照着官网的流程编写代码就能完成一个功能的开发,但是这个过程有些繁琐,容易出错。这里推荐一个开源项目: https://github.com/EasyAbp/AbpHelper.GUI,这是一个ABP帮助工具,你只需要创建一个实体,剩下的代码它都可以帮你生成。这个项目是https://github.com/EasyAbp下的一个子项目,EasyAbp是国内ABP爱好者创建的,里面还有很多开箱即用的模块,可以关注一下。。。 AbpHelper 使用AbpHelper来完成官网的例子非常容易,首先创建项目解决方案:

技术人的持续学习成长之路

穿精又带淫゛_ 提交于 2020-08-19 05:41:20
近期有几位童鞋在公众号后台留言,希望我指点一下如何从码农进阶为大佬。我想说的是,我不是大佬,因此无法给你建议。但是,对于学习成长提高自己这方面,我想我应该还是有一点发言权。因此,我录制了一期骚年快享的视频《 技术人的持续学习成长之路 》,本文是该视频的文字稿,希望对你有帮助! 1、技术人成长之路是什么样的 理想中的样子 大多数技术人理想中的进阶路线都会像上图一样,从毕业之后的初级码农、中级码农、高级码农 再到 技术经理 甚至CIO/CTO。不过,正如这个圆圈一样,越往上进阶圈子越小,里面的人也就越少。我们大部分人还是在外层的三个圈子(初级、中级、高级码农)里边奋斗。 现实中的样子 现实中呢,可能随着年龄的增大,生活的压力也随之增大,时间管理的效率也随之降低,伴随而来的就是学习提高的欲望逐渐消灭。所以,可能身边的人大部分都有35岁的危机焦虑,因此可能会选择去送外卖、摆地摊之类的。 虽然大部分的时候都是程序员的自嘲打趣,但是现实就是这样,本质上还是处于信息爆炸时代的技术人们充满了焦虑,不时发出:“我太难了”! 2、你的焦虑,企业早就在经历 其实你的这些焦虑,大部分的企业早就开始在经历了。近年来,不确定性和不可预测性不断冲击各个行业的企业,企业的高层管理者们焦虑倍增。特别是在今年的疫情之下,大部分中小企业的高官们比你还难。但是,他们越来越发现在企业前方市场和企业内部支撑之间的一个冲突

《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》正式出版

穿精又带淫゛_ 提交于 2020-08-19 04:26:40
“全书之写印,实系初稿。有时公私琐务猬集,每写一句,三搁其笔;有时兴会淋漓,走笔疾书,絮絮不休;有时意趣萧索,执笔木坐,草草而止。每写一段,自助覆阅,辄摇其首,觉有大不妥者,即贴补重书,故剪刀浆糊乃不离左右。个中甘苦,只自知之。”董作宾先生的这段文字正好描述我写作此书的状态。 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》于2020年1月正式出版。 《ASP.NET Core应用开发入门教程》是作者潜心研究ASP.NET Core 技术的心血之作,书如其名,整本书的内容深入浅出地介绍了ASP.NET Core应用开发所需要的基础知识,并对其底层框架进行了剖析,力求将ASP.NET Core的整个运行机制完整而清晰地呈现在读者面前。主要包括.NET Core的基础知识及其安装、dotnet命令、Visual Studio开发工具的安装和使用、ASP.NET Core的原理及其组件介绍、Entity Framework Core框架、ASP.NET Core MVC框架和依赖注入等。 《ASP.NET Core 应用开发项目实战》主要是在《ASP.NET Core应用开发入门教程》的基础上,通过开发一个经过简化的物流管理信息系统(TPLMS),来实践ASP.NET Core MVC应用程序框架的开发技术