Posts in 12月 2021
2021/12/30 下午10:46:19
Blazor系列转载`终结啦`,其实站长在25号时就已`完成转载`,并同步在`Dotnet9`网站(`https://dotnet9.com`)发布,并创建了一个专辑`《大家一起学Blazor》`,大家可随时在网站浏览。
2021/12/27 下午8:53:19
TypeScript非常优秀。它完美地结合了强类型和快速开发,因此非常好用,我在许多情况下都会默认选择这个库。但是,世上没有完美的语言,有些情况下TypeScript并不是最合适的工具:
2021/12/26 下午9:56:27
我开发了一个对.Net程序瘦身的工具,可以把被引用但是没有被使用的程序集删除。我用它把一个.Net core程序从`147兆`瘦身到`59.5`兆。
2021/12/25 下午9:50:23
昨天说到单元测试,但有些时候可能由于时间关系没办法完整测试
2021/12/25 下午8:39:11
开发一个系统最无聊的过程大概就是解决BUG了,尤其是那种尝试对null 对象取值的错误(`Object reference not set to an instance of an object.`),这应该是大部分人刚踏入编程领域最常碰到的问题,为了从枯燥的解决BUG过程解脱,这篇就来介绍`单元测试`。
2021/12/25 下午7:23:26
在`EF Core`中`批量`执行`更新`、`删除`、`插入`数据的框架`Zack.EFCore.Batch`已经发布新版,新版增加了对`.NET 6`的支持,数据批量插入的时候支持`ValueConverter`,彻底解决了`“更新数据的时候,当两列的表达式等价时候出现的The count of columns should be even异常”`。
2021/12/25 下午5:51:34
之前有说到`ASP.NET Core Identity` 使用的是基于`Claim` 的验证,其实`ASP.NET Core Identity` 有不同类型的授权方式,最简单的`登录授权`、`角色授权`、`Claim 授权`,但上述几种都是以一种方式实现:原则授权(`Policy-based authorization`)。
2021/12/25 上午11:08:26
前面说过`ASP.NET Core Identity` 是基于`Claim` 的验证,而`Role` 就是类型为`Role` 的`Claim`
2021/12/24 下午11:20:13
昨天角色的`CRUD` 功能都完成了,接着就是要把角色分配给用户了
2021/12/24 下午10:46:51
有些情况下,需要在程序运行期间动态执行C#代码,比如,将某些经常改变的算法保存在配置文件中,在运行期间从配置文件中读取并执行运算。这时可以使用C#脚本来完成这些工作。
2021/12/23 下午11:08:41
首先添加承载角色数据的`ViewModel`,因为接下来的权限会以角色判断
2021/12/23 下午10:51:24
前天有在`Blog.razor`加入通过验证及未通过的显示内容,但如果系统要呈现的未通过验证内容都一样,在每个Component 都这样写就太浪费时间了,可以利用`App.razor`帮我们做统一呈现的事。
2021/12/23 下午10:19:53
前面有说到`UserAuthentication()`跟`UserAuthorization()`,这两个的差别在于:前者用于验证登录者是谁,后者则决定登录者可以做什么。
2021/12/23 下午9:02:21
最近部门在推微前端,需要按功能拆分多个子应用,主应用在加载的过程中经常出现加载失败的问题。
2021/12/22 下午11:59:48
昨天做的验证只针对`Identity` 系统,没有包含到我们的日志
2021/12/22 下午11:01:31
今天来实现身分验证的部分
2021/12/22 下午10:49:21
目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:`数据库 MySQL 是否需要容器化?`
2021/12/21 下午11:36:29
在开发系统时,记录是一件很重要的事,前面都没有提到,笔者在最近才想到这点,所以就来实现吧!
2021/12/21 下午10:04:11
在大部分的网站中,上传图片也是很重要的功能,今天我们就来操作下。
2021/12/20 下午11:04:06
假设今天有个状况是这样:有一条日志,新增第二条但还没提交前,想将第一条删除,这时会发生什么事呢?
2021/12/20 上午12:21:26
将矢量图形打包成字体的形式,使用方式也和我们使用字体一样,能够自由设置图标的大小,图标的颜色。相对于传统图片来说,优点还是很明显的:
2021/12/19 下午6:56:17
接下来就是讲跟数据库关联的内容了,会着重说明ASP.NET Core 跟EF Core,如果有需要改页面才会说到Blazor,这边会花比较多篇幅着墨。
2021/12/18 下午11:34:26
我们现在有了基本的日志,但是每次输入完重新加载页面数据都会重置,因为这些数据都只存在于浏览器,没有真正储存到数据库,为了保存下来,我们要跟数据库连接。
2021/12/18 下午10:35:17
有时候会想对不同Component 做个别样式设置,但如果把class 都写在`wwwroot/css/site.css`,或是针对某个元素改动样式,可能导致改一个就影响全部Component,这种全域冲突是必须避免的,但应该怎么做?
2021/12/18 下午6:24:32
本文是使用 WPF 做个 PowerPoint 系列的博客,本文来告诉大家如何解析 PPT 里面的文本描边效果,在 WPF 应用中绘制出来,实现像素级相同
2021/12/16 下午9:02:26
虽然Blazor 不需要用到JavaScript,但某些已有的js库 还是很方便,不能因为不想用JavaScript 就全部舍弃,Blazor 就提供了调用JavaScript 的方法,这种情况称为JavaScript interoperability(简称JavaScript interop)。这篇就来实现Delete 按钮的提醒窗口,因为删除是很重要的功能,不能让使用者轻轻一按就轻易删除。
2021/12/16 下午8:51:16
不要小看摸鱼,所有天才的点子都不是敲键盘时激发的。在工作遇到阻滞时,越是投入工作越是找不到解决方案,这时候把目光从屏幕挪开,说不定在一边洗澡一边玩着小黄鸭时,一边发呆一边看着窗外时,一边睡觉一边扣肚子时,解决问题的灵感突然就掉进了脑海里。
2021/12/16 下午8:48:19
目前的4篇日志是来自我们写好的假数据,但正常来说不会这样做,而是有个按钮让用户点击了之后,增加或减少日志的数量。
2021/12/16 下午12:57:34
Blazor允许您`使用C#`而不是JavaScript`构建交互式`Web UI`。 Blazor应用由可重用的Web UI组件组成,这些组件使用C#、HTML和CSS实现。客户端和服务器代码都是用c#编写的,允许您共享代码和库。
2021/12/15 下午11:38:24
昨天不小心把Reset按钮的type改成button,今天改回reset。
2021/12/15 下午10:53:17
目前`MyButton`有3个`[Parameter]`,如果再增加的话,又要再定义新的`[Parameter]`,为了避免不断更新这个Component,我们来用Blazor提供的`@attribute`。
2021/12/14 下午11:31:22
现在我们有一个可以输入日志的界面了,但日志就是每天都要写的意思,只有一篇怎么够呢?我们来加上blog。
2021/12/14 下午10:18:54
假如我们想增加的按钮用来清除`form`(表单)的数据,最快的方式是增加一个`type=”reset”`的按钮,这时候就用到两个按钮了,可以用到Blazor的核心概念:组件封装。
2021/12/13 下午10:36:21
现在每次启动项目,预设路径都会是`/`,但我们目前没有Component套用这个路由,要自己切换到`Post`实在有些麻烦,另外Menu的图案也跟名称不符,我们来调整一下。
2021/12/13 下午9:38:15
自己建立的Service都必须在Startup.cs(Blazor Server)或Program.cs(Blazor WebAssemlby)注册,但有些基本Service就不用自己做了。
2021/12/12 下午9:59:24
昨天看到`FetchData.razor`的代码太长了,为求方便,我们把`@code`的部分抽取出来另成一个文件。
2021/12/12 上午10:01:23
C# 的 GitHub 页面上记载了一长串诱人的想法,其中一些令人头疼的问题仍在讨论中。
2021/12/11 下午1:27:42
问题来了,为什么Blazor会知道WeatherForecastService在这里可以调用?
2021/12/10 下午11:51:41
我遇到的大多数 Windows 窗体应用程序都不存在或单元测试覆盖率极低。而且它们通常也很难维护,项目中各种 Form 类的代码背后有数百甚至数千行代码,但它不必是这样。
2021/12/10 下午11:01:39
由于笔者当初是用ASP.NET Core API + Blazor Server,所以会以Blazor Server示范,日后研究完Blazor WebAssembly会再将心得补上。
2021/12/10 上午12:13:34
下载Visual Studio后首先建立一个Blazor解决方案,里面建立Blazor Server项目,方案位置可以自己选择(注:新版Visual Studio将Blazor Server跟Blazor WebAssembly的新建项目模板拆分了,较为直观)
2021/12/9 下午11:04:23
笔者对网站的认知为前端、后端及数据库,使用者在浏览器页面按下按钮或是表单请求,触发前端事件,将收集起来的条件打包送往后端
2021/12/9 下午10:35:19
笔者接触软件行业的时间不长,先后接触三种架构
2021/12/9 下午9:25:22
如果您一直紧跟 .NET 世界的最新发展趋势,那么现在您一定听说过 Blazor。
2021/12/6 下午10:01:36
创建一个Blazor TabControl组件,有两个目标知识点
2021/12/6 下午2:16:59
简单来说,若是我们不使用Bootstrap 4,而是用手刻的方式来撰写网页,HTML 的内容我们得要自己写(废话),CSS 我们也得要一个一个自己设定(又一个废话),可是若是使用Bootstrap 4 的话,很多常用的CSS 他已经预先帮我们写好了,我们只要熟悉Bootstrap 4 的文件,知道他预写的CSS 是用哪一个class 名,届时只要直接套用到标签上就可以了
2021/12/3 下午12:27:39
移动端和桌面:适用于 iOS、Android、macOS 和 Windows 的原生 .NET MAUI 应用程序