本文将深入探讨如何在C# WPF项目中运用FluentValidation进行属性验证,并展示如何通过MVVM模式实现这一功能。
此项目应用了Prism MVVM框架,项目展示数据来源于其他服务程序,使用的WebAPI通信,如果要正常运行此程序,需要您自己做一个WebAPI程序,由API接口提供数据驱动,其实直接查看代码最直接,有需要的自己是很方便提取的,即使项目无法运行。
国内优秀的WPF开源控件库,Panuon.UI的优化版本。一个漂亮的、使用样式与附加属性的WPF UI控件库,值得向大家推荐使用与学习。
随着信息技术的快速发展,数字化转型已经成为各行各业发展的必然趋势。在航天设计领域,数字化建设也得到了广泛的重视和应用。航天总体设计单位作为航天行业的重要组成部分,其数字化建设对于提升航天产业的核心竞争力具有重要意义。笔者将结合实际项目经历,详细介绍航天总体设计单位的数字化现状,包括数据类型、非结构化数据的治理难度以及自然语言处理技术在非结构化数据处理场景下的典型应用。
上一篇有简单介绍主工程的国际化,使用的资源字典(XAML)实现的。这几天我添加了几个Prism模块(Module),发现子模块使用资源字典的方式实现国际化和本地化不好做,没有找到比较好的参考文章,所以换了一种方式,使用资源文件实现了。
继上篇介绍Bootstrap风格的BlazorUI组件库后,今天我来介绍另一款Blazor UI组件库:一套基于 Ant Design 和 Blazor 的企业级组件库。
有十分漂亮的界面,整个都是 Win10 风,界面部分和默认 UWP 相近, 这个库支持了 .NET Framework 4.5 和以上的版本,以及 .NET Core 3.0 和以上的版本,可以在 Windows Vista SP2 和以上的系统运行。
基于.Net Framework 4.0+、.Net 5、.Net 6 框架的 C# WinForm 开源控件库、工具类库、扩展类库、多页面开发框架。
其实站长很久之前就知道这个开源WPF控件库了,只是一直欣赏不了这种风格,但也star了该项目。每次浏览该仓库时,发现star越来越多,也看到很多网友对它的褒奖,所以今天就向大家推荐这款WPF控件库。
C/S客户端开发完成,需要将程序交付给用户,直接压缩发给用户是可以的(只是有点不专业),如果能有一个比较好看的安装界面,那档次就不一样了。
继上一篇 《如果诸葛亮用C#写出师表...》后,站长想自己的第一语言是Java,虽然平时工作上用的不多,也用Java实现一遍吧,改改就是了
今天站长推荐一款日志可视化组件`LogDashboard`,可以不用安装第三方进程,只需要在项目中安装相应的**Nuget**包,添加数行代码,就可以实现拥有带Web页面的日志管理面板,十分nice哦。
一系列非常简单易用,对Windows API做了极好封装的.NET类库,几乎不用再写繁琐的Windows API转换函数了。
使用Prism做MVVM,优点咱就不说了,主要用了容器注入,消息和DI,比自己写省很多事。网上有很多标准的MVVM的使用方法,但是没有形成一个系统级的框架。本框架从登录到具体业务的使用,还有自动升级都搭建完成
有些教材,博客说到委托都会提到事件,虽然事件是委托的一个实例,但是为了理解起来更简单,今天只谈委托不谈事件。
当 WPF 客户端需要实现插件系统的时候,一般可以基于容器或者进程来实现。如果需要对外部插件实现异常隔离,那么只能使用子进程来加载插件,这样插件如果抛出异常,也不会影响到主进程
SwiftUI 是Apple 新出面向未来、跨多端解决方案、声明式编程
可以编译该项目。整个控件控除了动画函数由Silverlight提取出来和ColorEditorExt.cs颜色面板视图设计器扩展器在网上例子修改而来,其他都是自己在原生控件基础上写的,没有使用任何第三方库,所以放心使用,没有侵犯他人著作权的问题。
WinForms上MVVM技术的必要性,发现要实现MVVM框架其实并不难,关键在于模型(Model)和视图(View)的双向绑定,即模型的改变引起视图内容的改变,而视图的改变也能够引起模型的改变。
现在我们有一个可以输入日志的界面了,但日志就是每天都要写的意思,只有一篇怎么够呢?我们来加上blog。
我遇到的大多数 Windows 窗体应用程序都不存在或单元测试覆盖率极低。而且它们通常也很难维护,项目中各种 Form 类的代码背后有数百甚至数千行代码,但它不必是这样。
目前`MyButton`有3个`[Parameter]`,如果再增加的话,又要再定义新的`[Parameter]`,为了避免不断更新这个Component,我们来用Blazor提供的`@attribute`。
昨天不小心把Reset按钮的type改成button,今天改回reset。
目前的4篇日志是来自我们写好的假数据,但正常来说不会这样做,而是有个按钮让用户点击了之后,增加或减少日志的数量。
虽然Blazor 不需要用到JavaScript,但某些已有的js库 还是很方便,不能因为不想用JavaScript 就全部舍弃,Blazor 就提供了调用JavaScript 的方法,这种情况称为JavaScript interoperability(简称JavaScript interop)。这篇就来实现Delete 按钮的提醒窗口,因为删除是很重要的功能,不能让使用者轻轻一按就轻易删除。
有时候会想对不同Component 做个别样式设置,但如果把class 都写在`wwwroot/css/site.css`,或是针对某个元素改动样式,可能导致改一个就影响全部Component,这种全域冲突是必须避免的,但应该怎么做?
我们现在有了基本的日志,但是每次输入完重新加载页面数据都会重置,因为这些数据都只存在于浏览器,没有真正储存到数据库,为了保存下来,我们要跟数据库连接。
接下来就是讲跟数据库关联的内容了,会着重说明ASP.NET Core 跟EF Core,如果有需要改页面才会说到Blazor,这边会花比较多篇幅着墨。
笔者对网站的认知为前端、后端及数据库,使用者在浏览器页面按下按钮或是表单请求,触发前端事件,将收集起来的条件打包送往后端
前面有说到`UserAuthentication()`跟`UserAuthorization()`,这两个的差别在于:前者用于验证登录者是谁,后者则决定登录者可以做什么。
前天有在`Blog.razor`加入通过验证及未通过的显示内容,但如果系统要呈现的未通过验证内容都一样,在每个Component 都这样写就太浪费时间了,可以利用`App.razor`帮我们做统一呈现的事。
前面说过`ASP.NET Core Identity` 是基于`Claim` 的验证,而`Role` 就是类型为`Role` 的`Claim`
之前有说到`ASP.NET Core Identity` 使用的是基于`Claim` 的验证,其实`ASP.NET Core Identity` 有不同类型的授权方式,最简单的`登录授权`、`角色授权`、`Claim 授权`,但上述几种都是以一种方式实现:原则授权(`Policy-based authorization`)。
开发一个系统最无聊的过程大概就是解决BUG了,尤其是那种尝试对null 对象取值的错误(`Object reference not set to an instance of an object.`),这应该是大部分人刚踏入编程领域最常碰到的问题,为了从枯燥的解决BUG过程解脱,这篇就来介绍`单元测试`。
下载Visual Studio后首先建立一个Blazor解决方案,里面建立Blazor Server项目,方案位置可以自己选择(注:新版Visual Studio将Blazor Server跟Blazor WebAssembly的新建项目模板拆分了,较为直观)
由于笔者当初是用ASP.NET Core API + Blazor Server,所以会以Blazor Server示范,日后研究完Blazor WebAssembly会再将心得补上。
问题来了,为什么Blazor会知道WeatherForecastService在这里可以调用?
自己建立的Service都必须在Startup.cs(Blazor Server)或Program.cs(Blazor WebAssemlby)注册,但有些基本Service就不用自己做了。
现在每次启动项目,预设路径都会是`/`,但我们目前没有Component套用这个路由,要自己切换到`Post`实在有些麻烦,另外Menu的图案也跟名称不符,我们来调整一下。
假如我们想增加的按钮用来清除`form`(表单)的数据,最快的方式是增加一个`type=”reset”`的按钮,这时候就用到两个按钮了,可以用到Blazor的核心概念:组件封装。
目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:`数据库 MySQL 是否需要容器化?`
简单来说,若是我们不使用Bootstrap 4,而是用手刻的方式来撰写网页,HTML 的内容我们得要自己写(废话),CSS 我们也得要一个一个自己设定(又一个废话),可是若是使用Bootstrap 4 的话,很多常用的CSS 他已经预先帮我们写好了,我们只要熟悉Bootstrap 4 的文件,知道他预写的CSS 是用哪一个class 名,届时只要直接套用到标签上就可以了
Blazor允许您`使用C#`而不是JavaScript`构建交互式`Web UI`。 Blazor应用由可重用的Web UI组件组成,这些组件使用C#、HTML和CSS实现。客户端和服务器代码都是用c#编写的,允许您共享代码和库。
TypeScript非常优秀。它完美地结合了强类型和快速开发,因此非常好用,我在许多情况下都会默认选择这个库。但是,世上没有完美的语言,有些情况下TypeScript并不是最合适的工具:
有些情况下,需要在程序运行期间动态执行C#代码,比如,将某些经常改变的算法保存在配置文件中,在运行期间从配置文件中读取并执行运算。这时可以使用C#脚本来完成这些工作。
不要小看摸鱼,所有天才的点子都不是敲键盘时激发的。在工作遇到阻滞时,越是投入工作越是找不到解决方案,这时候把目光从屏幕挪开,说不定在一边洗澡一边玩着小黄鸭时,一边发呆一边看着窗外时,一边睡觉一边扣肚子时,解决问题的灵感突然就掉进了脑海里。
在`EF Core`中`批量`执行`更新`、`删除`、`插入`数据的框架`Zack.EFCore.Batch`已经发布新版,新版增加了对`.NET 6`的支持,数据批量插入的时候支持`ValueConverter`,彻底解决了`“更新数据的时候,当两列的表达式等价时候出现的The count of columns should be even异常”`。
Blazor系列转载`终结啦`,其实站长在25号时就已`完成转载`,并同步在`Dotnet9`网站(`https://dotnet9.com`)发布,并创建了一个专辑`《大家一起学Blazor》`,大家可随时在网站浏览。
我开发了一个对.Net程序瘦身的工具,可以把被引用但是没有被使用的程序集删除。我用它把一个.Net core程序从`147兆`瘦身到`59.5`兆。
本文是使用 WPF 做个 PowerPoint 系列的博客,本文来告诉大家如何解析 PPT 里面的文本描边效果,在 WPF 应用中绘制出来,实现像素级相同
关于什么是Dapper(详细入口),在此不做赘述;本文仅对Dapper在.Net Core中的使用作扼要说明,所陈代码以示例讲解为主,乃抛砖引玉,开发者可根据自身需要进行扩展和调整
在MAUI微软的官方方案是使用Blazor开发,但是当前市场大多数的Web项目使用Vue,React等技术构建,如果我们没法绕过已经积累的技术,用Blazor重写整个项目并不现实。
本次视频合集共58集, 包含了WPF的基础部分(布局、样式、资源、动画、模板、MVVM) 、Prism的概念(Region、Navigation、DialogService、Module..)、MaterialDesign集成、Asp.Net Core WebApi部分(Entityframework、发布部署)、客户端发布、部署等完整的开发流程。
晚上回家吃饭溜娃打打帝国时代 4,突然想起我很久没有宠幸 UWP 了。一股“吾有上将 UWP,可搞定 3D 穿梭效果”的豪气油然而生。
学习WPF如果不学MVVM,仿佛缺少了灵魂。那什么是MVVM呢?为什么要学MVVM呢,本以一个简单的增删改查的小例子,简述MVVM的基本知识及如何通过进行MVVM架构的程序开发,仅供学习分享使用,如有不足之处,还请指正。
相对CSS和UWP,老牌的WPF对于3D效果的操作是相对繁琐的。 要首先做出3D模型,接着旋转XY轴,其次调整Z轴拉伸,最后一步调整FOV。 穿梭效果要靠这Z轴拉伸的数字决定
我一直在更新的.NET Core视频终于录完了,203节,内容涉及.NET Core基础类、Entity Framework Core、ASP.NET Core WebAPI、DDD(领域驱动设计)、实战项目。
Blazor不得不说真是好东西,极大的提升了开发效率,很多的页面交互功能基本上只需要写很少的代码就能实现了,而且还是无js实现,你也绝对没有想到过,Blazor实现文件上传是有多么简单!
Dotnet9网站用WordPress搭建了两年,去年开始自学ASP.NET Core MVC,开始了独立开发网站之路,现在网站前台算是有模有样了,后台正在开发中
.NET Core具有【剪裁未使用的代码】的功能,但是由于它是使用静态分析来实现的,因此它的剪裁效果并不是最优的。
你的文件夹里有没有一些私人喜好的小网站?嘿嘿!!!必须有啊!分享10个我经常使用、能够提高工作效率、美化图片、绘制流程图的网站,你可能也用得上喔。
100套大数据可视化炫酷大屏Html5模板;包含行业:社区、物业、政务、交通、金融银行等,全网最新、最多,最全、最酷、最炫大数据可视化模板。陆续更新中
因为某些原因,github访问速度确实太慢了,图片经常刷不出来,甚至会出现项目无法下载的情况。码云虽好,可目前还是无法代替github在编程界的地位。
关于WebApi统一结果返回的时候,让我也有了更一步的思考,首先是如何能更好的限制返回统一的格式,其次是关于结果的包装一定是更简单更强大。在不断的思考和完善中,终于有了初步的成果,便分享出来,学无止境思考便无止境,希望以此能与君共勉。
想象一下,您正在填写世界上最长的表格。您已经花了30分钟时间输入详细信息,从地址到您的生日,再到最近访问过的七个国家/地区的列表。您单击“提交”按钮,将立即获得“连接已丢失”消息。
基于 HTTP 的前端鉴权背景,cookie 为什么是最方便的存储方案,有哪些操作 cookie 的方式,session 方案是如何实现的,存在哪些问题
读写锁是以 ReaderWriterLockSlim 对象作为锁管理资源的,不同的 ReaderWriterLockSlim 对象中锁定同一个文件也会被视为不同的锁进行管理
设想,用户双击了桌面图标,然而等待几分钟,应用才启动完毕,那用户下一步会不会就是点击卸载了。为了权衡大型应用软件在启动过程,既需要执行复杂的启动逻辑,又需要关注启动性能,为此过程造一个框架是一个完全合理的事情。
它提供了一个布局引擎,设计时考虑到了完整的分页支持以及灵活性要求!比市面上常见的Aspose和iTextSharp好用太多了!
如果您为 Web 应用程序和身份验证服务器使用单独的域,那么 Chrome 中的这种更改很可能会破坏部分用户的会话体验
去年 10 月,IdentityServer 的两位创建者和维护者 Dominick Baier 和 Brock Allen 宣布,他们当前的商业模式本质上是不可持续的
一直以来,听歌都是热门需求,音乐可以说是人类的重要的精神粮食之一,但是现在的音乐版权都被几大音乐平台瓜分。`即使在一个平台充了会员,也不一定能听到想听的歌`,这一点与国外的流媒体音乐平台不同。
.NetCore+Vue2/Vue3+Element plus+uniapp前后端分离,全自动生成PC与移动端代码;支持移动端(uniapp)ios/android/h5/微信小程序。http://www.volcore.xyz/
说到动态壁纸软件,相信很多人都听说过或用过 `Wallpaper Engine`, 这是 Steam Store 一个好评如潮的壁纸软件,售价为 `18` 元。我之前也一直在使用,当然今天介绍的是另外一个壁纸软件 `Lively Wallpaper`。
这是一个 WPF 项目,用于创作及收集一些好玩的设计和动画。目前已有数十个 Demo,部分 Demo 有相关博客介绍详细的实现步骤和原理
使用 `.NET MAUI`,可以开发可在 `Android`、`iOS`、`macOS` 和 `Windows`、Linux(社区支持)从单个共享代码库运行的应用,一套代码多端运行。
本文介绍了元宇宙的基础知识, 并讨论了它的未来以及它的潜在问题, 当前元宇宙的应用主要表现在游戏、娱乐、企业办公等领域, 未来,伴随元宇宙技术和产业成熟度的持续提高,应用范围将逐步扩大,并不断深入。元宇宙能够对我们的生活产生多大的影响,我们拭目以待!
总有小伙伴问“WinForm和WPF有什么区别?” 细想这个问题好像很简单回答,但是总是没有系统的分析过,今天抽空特地写一篇仅代表个人观点的文章记录总结。
使用`Xamarin.Forms`开发的开源移动App介绍,感兴趣的可以访问[Github](https://github.com/jsuarezruiz/xamarin-forms-goodlooking-UI)和[Gitee](https://gitee.com/dotnet9/xamarin-forms-goodlooking-UI)仓库看看,下载对应的App项目研究。
用于 C# 的自定义 PrintDialog,可实时预览。您可以选择打印机并设置份数、方向、颜色、质量、比例、每张页数、双面、纸张尺寸、纸张类型、纸张来源等。它也很优雅。
Navicat Premium 是一套数据库管理工具,让你以单一程序同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
最近公司需要开发项目能在Linux系统上运行,示例开发项目采用.Net Core + Angular开发;理论上完全支持跨平台。
我们知道在C#和Java明显的一个区别就是C#可以自定义值类型,也就是今天的主角struct,我们有了更加方便的class为什么微软还加入了struct呢?
新号专注于 `.NET` 和 `Flutter` 跨平台开发技术,计划对感兴趣的国外技术文章进行翻译、油管视频分享(不搬运视频,只分享视频中案例代码)
帮助开发人员通过面板来设置定时任务,主要想做的就是像SwaggerUI一样,项目入侵量小,仅需要在Startup中注入的UI组件
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
做WPF微信DEMO,用到了转换器,转换颜色,转换显隐;重写了控件的样式,例如Button、RadioButton、ListBox;然后MVVM模式下,Bind的用法,感觉这个DEOM对于初学者来说应该会有很大的帮助。
在经过了两年的准备,以及迁移了几个应用项目积累了让我有信心的经验之后,我最近在开始将团队里面最大的一个项目,从 .NET Framework 4.5 迁移到 .NET 6 上。
Flutter Web 稳定版本发布至今也有一年多了,经过这一年多的发展,今天就让我们来看看作为大前端时代的乱流,Flutter Web 究竟有什么不同之处,本篇分享主要内容是目前 Flutter 下少有较为全面的 Web 内容。
在 Vue3.2 中只需要在 script 标签上加上 setup 属性,无需 return,template 便可直接使用,非常的香啊!
昨天『.NET 大牛之路』群里的小伙伴们谈论了使用 EF Core 实现仓储模式的话题,我想起以前看过一篇一名国外大佬写的文章,觉得非常有参考价值。
Lottie 动画是一种以 json 文件保存的动画文件。相比 gif 在文件体积和动画流畅度上有很大的优势,而且是图形是矢量的,放大不会糊。
对于大部分.NET 后端开发者来说, 都比较熟悉目前流行的ABP框架, 基于开源的ABP框架, 可以自己进行二次开发, 无需重新开发一些基础功能
微软默认的是一个类对应多个资源文件的方式,使用起来是比较麻烦的,本文介绍单资源文件使用方式,即整个项目所有类对应一套多语言资源文件。
FluentValidation是一个非常强大的用于构建强类型验证规则的 .NET 框架
继上一篇之后,这一篇将给大家带来另外十个 EF Core 6 中的新功能特性,包括值转换器、脚手架和 DbContext 的改进等。
在这篇文章中,你将看到 EF Core 对 SQLite、In-memory 提供者和 EF.Functions.Contains 方法的改进。
在MAUI Blazor和Blazor Server(或者Client)项目之间,通过Razor类库共用一套UI,统一Web、客户端、App界面
AspNetCoreRateLimit 是一种 ASP.NET Core 速率限制解决方案
一直以来,程序署都是非常麻烦且无聊的事情,在公司一般都会有 devops 方案,整个 cicd 过程涉及的工具还是挺多的,搭建起来比较麻烦。
CacheManager 是用 C# 编写的 .NET 的开源缓存抽象层。它支持各种缓存提供程序并实现了许多高级功能
Cake (C# Make) 是一个带有 C# DSL 的构建自动化系统,用于执行编译代码、复制文件/文件夹、运行单元测试、压缩文件和构建 NuGet 包等操作。
Objects Comparer是用于对象比较的工具,C#常见的数据结构都是可以用这个三方库进行对比,比较复杂的对象也是可以比较的。
在人工智能时代,文字转语音是现在人工智能比较热门的功能,各大公司都有这方面的业务,可以可以通过接口对各种文字转语音,甚至能模拟真人,非常的强大
EasyNetQ 的目标是提供一个库,用于在 .NET 中使用 RabbitMQ 尽可能简单。
Coravel 帮助开发人员在不影响代码质量的情况下快速启动和运行他们的 .NET Core 应用程序。
HttpReports 基于.NET Core 开发的APM监控系统,使用MIT开源协议,主要功能包括,统计, 分析, 可视化, 监控,追踪等,适合在微服务环境中使用。
Entity Framework Core 7 (EF7) Release Candidate 1 已发布!该团队专注于解决缺陷、小幅改进以及对功能进行最后润色。
.NET 7 Release Candidate 1 (RC1) 现已推出,其中包括对 ASP.NET Core 的许多重大新改进。
使用FigmaSharp.Maui.Graphics将Figma设计转换为 .NET MAUI Graphics代码。
Entity Framework 7 包括一些已被要求的流行功能,其中之一是批量操作。
对于许多开发人员来说,这可能意味着转向 C#、Go、Java、Ruby、Rust 和 Swift。
这是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统(Windows(.NET Core),Linux(GTK),MacOS,Android和iOS),Web(WebAssembly)
ClickOnce 是一种部署技术,使用该技术可创建自行更新的基于 Windows 的应用程序,这些应用程序可以通过最低程度的用户交互来安装和运行。
最近在排查一个上传功能时,客户端上传的是zip文件,到服务器端后使用C# 解压zip文件的代码将上传文件解压后验证是否是允许上传的文件类型,并且要验证乱改文件后缀啊,文件头什么的都要走一遭,结果解压zip文件时就出妖蛾子了。
在MAUI Blazor中无法直接读取外部文件显示 ,但是可以通过base64去显示,但是由于base64太长可能影响界面卡顿...
由于Maui Blazor中界面是由WebView渲染,所以再使用Android的摄像头时无法去获取,因为原生的摄像头需要绑定界面组件
在现代软件开发中,数据可视化和可交互性越来越受到关注。为了实现这一点,通常需要使用各种图表、表格、网络拓扑图等控件。NodeNetwork就是一种这样的自定义方式,它是一个基于C# WPF的开源项目,可以帮助我们快速构建和定制网络拓扑图。
ThingsGateway 基于net6/7+ ,跨平台边缘采集(物联网)网关,支持南北端插件式开发,支持常用Modbus/OPCDA/OPCUA/S7采集插件,MQTT/OPCUAServer等上传插件
上线了Blazor版俄罗斯方块游戏,并且把在线工具和在线游戏组件提取到Razor共享库,可以被Dotnet9网站和Dotnet工具箱网站复用。
如何在.NET Core3环境下使用MVVM框架Prism的对话框服务,这也是prism系列的最后一篇完结文章
如何在.NET Core3环境下使用MVVM框架Prism的使用事件聚合器实现模块间的通信
本来站长奔着体验.NET 8 Blazor Web App的,在Razor Pages中添加了Razor 组件,但目前该混合模式Razor组件无法交互,页面还出现了重连置灰UI,索性直接用Blazor Server重构,经过几天的奋战,网站前台已经用Blazor Server完全替换Razor Pages,烦人的重连也解决了,现在访问网站飞快,不知道是不是错觉,个人感觉很好。
网站使用Blazor Wasm开发,网站内容包括在线工具和在线小游戏两个种类,主要是体验Web Assembly到底好不好。
如何在.NET Core3环境下使用MVVM框架Prism基于区域Region的导航系统
如何在.NET Core3环境下使用MVVM框架Prism的使用区域管理器对于View的管理
ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。
Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。
富 Web 时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。
多年来,基于XAML的UI框架已经有了很大的发展。这些框架主要包含:支持跨平台应用的Avalonia UI, Uno Platform和 .NET MAUI。如果微软早点推出一个类似Flutter这样的跨平台UI框架,我们可能就不会有这么多的选择。
本文除了回顾拦截.NET类库中的方法,实现方法参数的篡改、方法返回结果的伪造,再着重介绍.NET类库中非public类及方法如何拦截。
Hashids.net是一款轻量级开源的将数字编码成字符串的加密(短ID生成)工具类库,其实灵活用它将字符串生成短Id也是可以的,只是不可逆。
模拟.NET实际应用场景,综合应用三个主要知识点:一是使用dnSpy反编译第三库及调试,二是使用Lib.Harmony库实现第三库拦截、伪造,三是实现同一个库支持多版本同时引用。
在互联网行业,基于 Unix/Linux 的网站系统架构毫无疑问是当今主流的架构解决方案,这不仅仅是因为 Linux 本身足够的开放性,更因为围绕传统 Unix/Linux 社区有大量的成熟开源解决方案,覆盖了网站应用扩展的方方面面。
WebApiClient.JIT/AOT的netcore版本,集高性能高可扩展性于一体的声明式http客户端库,特别适用于微服务的restful资源请求,也适用于各种畸形http接口请求。
昨天(2023年10月23日)蚂蚁集团旗下语雀崩了:在线文档及官网均无法打开 官方称紧急恢复中,建议读者自己开发一个属于自己的博客网站,遇到这种事才不会惊慌。
Dotnet工具箱是一个纯前端的、开源和免费的工具网站,周末我参考了开源项目it-tools,对网站界面文字进行了汉化,并重新部署了网站。该网站共有10大工具分类,提供了73个实时在线小工具。使用Vue3开发的Dotnet工具箱具有独特的特色,本文详细介绍了其中一些特色工具,并简单分享了如何部署自己的工具网站。如果你对工具网站感兴趣,不妨来了解一下Dotnet工具箱吧!
当涉及到删除C#数组中的元素时,你可能会遇到两种常见的方法:常规删除和交换删除(快速删除)。常规删除需要遍历数组并移动元素,而交换删除则通过交换元素位置来删除。本文将介绍这两种方法的时间复杂度,并提供示例代码来演示它们的用法。通过学习这些快速删除技巧,你将能够优化你的代码,使其更高效。让我们一起揭秘这些技巧,让你的代码更加出色!
C#位运算是一种强大的工具,可以在处理二进制数据和位操作时发挥重要作用。通过使用位运算符,我们可以对整数进行位级别的操作,如位与、位或、位异或和位取反等。位运算可以用于优化性能、压缩数据、实现位掩码和位标志等。了解和掌握C#位运算的基本原理和常见应用场景,将使我们能够更高效地处理二进制数据,并在某些情况下提高代码的性能和可读性。通过深入理解C#位运算,我们可以在编程中发挥更大的创造力和灵活性。
虽然 8 又带来了很多方面的增强,比如:人工智能、云原生、性能、native AOT 等,但我还是最关注 C# 语言和一些框架层面的变化,下面介绍下 C# 12 和框架中的我认为比较实用的新增功能。
EasyCaching,这个名字就很大程度上解释了它是做什么的,easy和caching放在一起,其最终的目的就是为了让我们大家在操作缓存的时候更加的方便。
这些面试题涵盖了.NET开发中的各个方面,包括.NET框架、C#语言、ASP.NET、ADO.NET、数据库等。通过对比学习,我们可以更好地理解和掌握这些知识点。
路遥工具箱是一款基于C# WPF开发的开源工具,旨在解决开发过程中常见的功能性需求,并将其自动化。目前已经拥有十数项实用功能,让你的开发工作事半功倍!
在网络通信中,数据序列化是将对象状态转换为可存储或可传输的形式的过程,这对于TCP网络传输尤为关键。在项目中,当需要处理几十万条数据的传输时,传统的JSON序列化方式由于其冗余的字段名和字符串格式,导致了二进制包体积庞大,且序列化与反序列化的效率低下。为了解决这些问题,我们考虑采用更加高效的序列化方法,以减少包大小并提升处理速度。
.NET Core 3.1 已经用了很长一段时间,其实在 2022 年的年底微软已经不提供支持了,后面的一个 LTS 版本 .NET 6 也会在 2024 年 11 月终止支持,所以直接升级到 .NET 8 是最好的选择。
Channel 是微软在 .NET Core 3.0 以后推出的新的集合类型,该类型位于 System.Threading.Channels 命名空间下,具有异步 API 、高性能、线程安全等等的特点。
FluentValidation 是一个基于 .NET 开发的验证框架,开源免费,而且优雅,支持链式操作,易于理解,功能完善,还是可与 MVC5、WebApi2 和 ASP.NET CORE 深度集成,组件内提供十几种常用验证器,可扩展性好,支持自定义验证器,支持本地化多语言。
码坊是站长新开的一个提供网页在线工具、跨平台桌面和手机应用的开源项目。站长将终致力于为你带来更高效、更便捷的使用体验。今天,站长荣幸地推出“文章标题URL别名生成器”,帮助你轻松创建文章标题的URL别名,提升SEO效果和用户体验。快来码坊,探索更多实用工具吧!
借助虚拟机和测试机,检测各版本操作系统对.NET的支持情况。安装操作系统后,实测安装相应运行时并能够运行星尘代理为通过。
一套以用户体验出发的.Net8 Web开源框架,支持Abp.vNext 版本原生版本、Furion版本,前端后台接入Ruoyi Vue3.0,内置Rbac权限管理+Bbs社区论坛模块,开箱即用
为了避免可能出现的误解和混淆(虽然当初报着碰瓷儿的想法),站长决定将原有的Dotnet9仓库进行归档处理。
Azure应用服务用YARP取代了Nginx,获得了80%以上的吞吐量。他们每天处理160B多个请求(1.9 m RPS)。这是微软的一项了不起的技术创新。
前几天跟大家介绍了在winform中使用blazor hybrid,而且还说配上blazor的ui可以让我们的winform程序设计的更加好看,接下来我想以一个在winform blazor hybrid中绘图的例子来进行说明,希望对你有所帮助。
在C#开发过程中,我们经常需要处理各种事件,有时候还需要动态地注册第三方库定义的事件。今天,我将为大家分享一个关于如何动态注册第三方库事件的Demo,并根据提供的代码和注释,详细讲解每一步骤。
在做winform开发的过程中,经常需要做数据展示的功能,之前一直使用的是gridcontrol控件,今天想通过一个示例,跟大家介绍一下如何在winform blazor hybrid中使用ant design blazor中的table组件做数据展示。
在动态且不断发展的软件开发世界中,Java 和 C# 是两个巨头,每个都有自己独特的优势、理念和生态系统。本文深入比较了 Java 和 C#,探讨了它们的历史背景、语言特性、性能指标、跨平台功能等。
近日,微软正式开源缓存存储系统 Garnet。据微软研究院数据库小组高级首席研究员 Badrish Chandramouli 介绍,Garnet 项目是从零开始构建而成,且以性能为核心考量(特别是吞吐量中的线程可扩展性与更高比例的低延迟水平)。
在.NET项目开发中,随着项目复杂性的增加,依赖的dll文件也会逐渐增多。这往往导致输出目录混乱,不便于管理和部署。
Windows屏幕工具,功能包括:屏幕截图、贴图、屏幕取色、截图文字、表格识别(需要申请百度OCR服务)、截图翻译、划词翻译。
本人 C# 出生,写过少许 C/C++,所以一直想着有个类似 Main() 函数的东西是整个程序的入口。然而,查遍了整个目录,没有找到任何线索,接下来就开始各种捣鼓。
在.NET的世界里,数据库选择至关重要。今天为大家揭秘一款轻量级NoSQL数据库——LiteDB,它小巧但功能强大,为你的项目提供快速、灵活的数据存储解决方案。无论你是初学者还是资深开发者,LiteDB都将是你的得力助手!
AvaloniaUI是一个强大的跨平台.NET客户端开发框架,让开发者能够针对Windows、Linux、macOS、Android和iOS等多个平台构建应用程序。在构建复杂的应用程序时,模块化和组件间的通信变得尤为重要。Prism框架提供了模块化的开发方式,支持插件的热拔插,而MediatR则是一个实现了中介者(Mediator)模式的事件订阅发布框架,非常适合用于模块之间以及模块与主程序之间的通信。
给大家分享一款由WPF开源的、免费的(MIT License)、即开即用、即用即走的翻译、OCR工具:STranslate。
一直有小伙伴在微信公众号后台留言让我分享一下.NET MAUI相关的UI框架,今天大姚分享一个.NET MAUI开源、免费的UI工具包:Uranium。
82年的,老鸟。算是第二代搞程序的吧,C++Builder delphi起家(也许很多人都没听过吧)。DOS ucdos pctools玩过一年以上。
插件化的需求主要源于对软件架构灵活性的追求,特别是在开发大型、复杂或需要不断更新的软件系统时,插件化可以提高软件系统的可扩展性、可定制性、隔离性、安全性、可维护性、模块化、易于升级和更新以及支持第三方开发等方面的能力,从而满足不断变化的业务需求和技术挑战。
本文将指导您如何在本地网络环境中成功安装并配置AvaloniaUI所需的工具和模板。
CodeWF.EventBus,一款灵活的事件总线库,实现模块间解耦通信。支持多种.NET项目类型,如WPF、WinForms、ASP.NET Core等。采用简洁设计,轻松实现命令的发布与订阅、请求与响应。通过有序的事件处理,确保事件得到妥善处理。简化您的代码,提升系统可维护性。
CodeWF.EventBus.Socket 是一个轻量级的、基于Socket的分布式事件总线系统,旨在简化分布式架构中的事件通信。它允许进程之间通过发布/订阅模式进行通信,无需依赖外部消息队列服务。
探索《植物大战僵尸-杂交版》,一款基于.Net Framework 4.0开发的创新塔防游戏!结合经典《植物大战僵尸》元素与独特杂交机制,种植多样植物与英雄,抵御僵尸入侵。高性能、流畅体验,挑战与乐趣并存。无论是游戏爱好者还是编程学习者,这款游戏都能带给你前所未有的体验。快来下载试玩吧!
Semi.Avalonia是以MIT协议开源的Avalonia UI框架下的Semi Design主题风格实现,搭配Ursa.Avalonia自定义控件库,为开发者带来全新视觉与功能体验。
SQLite,作为一个轻量级的嵌入式数据库,因其易于使用和部署而广受欢迎。然而,在尝试删除SQLite数据库文件时,开发者可能会遇到一些挑战。本文将分享一个从失败到成功的案例,展示如何在C#中成功删除SQLite数据库文件。
在持续探索与创新的路上,[Dotnet9](https://dotnet9.com) 网站上新一个AI 小工具,专为文章标题生成 URL 别名,同时解锁文章内容 AI 总结功能,此刻,满心皆欢喜,与大家同分享这份成果!
NuGet Next是一款基于BaGet的一款私有化NuGet管理平台,我们对BaGet进行了扩展,并且提供了更多的功能。
2018年12月5日,上海市公安局普陀分局长风新村派出所接到异地报警电话,报警人重金购买了位于长风地区的某资产管理公司“股票期权”产品后,在短短一个礼拜内,被莫名平仓,怀疑自己被骗。
在当今全球化的软件开发浪潮中,应用的国际化(i18n)与本地化(L10n)显得尤为重要。Avalonia UI 作为一款强大的跨平台 UI 框架,为开发者提供了多种实现国际化的途径。其中,使用传统的 Resx 资源文件进行国际化处理,不仅兼容了原 Winform、WPF、ASP.NET Core 等开发场景下的使用习惯,还借助一些实用工具和特定的开发流程,让国际化的实现变得高效且有条理。
本文深入探讨了 Avalonia 使用 XML 文件实现国际化的方法与优势。通过与 Resx 资源文件对比,为开发者提供了选择依据。XML 实现国际化适用于有用户侧修改需求、期望借助 AI 编辑且追求清晰语言结构管理的场景。文中详细介绍了从创建语言文件、强类型生成到具体使用以及语言管理的整套流程,并提供了相关资源链接,如 XML 语言管理包、案例 Demo 及语言管理工具、Resx 资源管理扩展等,有助于开发者快速上手并在实际项目中应用该国际化方案,提升 Avalonia 应用的全球化适配能力与用户体验。
LINQPad 的软件包很小只有二十兆左右,启动速度很快。使用时只需输入想要执行的 C# 语句,并按下 F5 即可
本文将详细介绍如何在 Avalonia UI 中使用 Markdown.AIRender 进行 Markdown 渲染,包括安装、样式引用、示例展示及多种特性(如支持黑白主题、主题色等)。同时,深入探讨了其正在完善的国际化功能,旨在帮助开发者更好地将 Markdown 内容整合到 Avalonia 应用中,提供更好的用户体验,并增强应用的全球化适配能力。此外,还对比了相关的 Markdown 渲染库,为用户选择合适的工具提供参考。
本文详细介绍了在WPF程序中使用自定义XML文件实现国际化的方法,包括安装必备NuGet包、动态获取语言列表、动态切换语言、在代码和xaml界面中使用翻译字符串等内容,同时提供了源码链接,帮助开发者轻松实现WPF应用的国际化。
文章讲述了一位护士因工作压力和家庭责任而辞职,在求职困难后,决定学习编程,特别是C#语言。她详细描述了第一天学习的内容,包括.NET、.NET Framework框架、C#语言概念、C#开发软件类型、不同UI框架、交互模式以及Visual Studio的使用。她表达了对学习编程的信心和决心,并希望得到更多人的指导和帮助。
今天.NET 10 Preview 1发布了,我第一时间下载,升级了Avalonia UI项目和博客网站,前者功能测试及AOT发布正常,后者调试正常,Docker暂时未成功
身为护士的我毅然跨界投身 C# 编程学习,在此分享第二天学习内容,涵盖变量、运算符、转义符等关键知识要点 。
文章详细介绍了如何利用 PowerShell 脚本和批处理文件在 .NET Avalonia UI 项目中实现自动更新程序版本和一键发布。首先,文章解释了 PowerShell 执行策略的设置和修改,以确保脚本能够正常执行。接着,介绍了在 Visual Studio 预生成事件中添加脚本来自动更新版本号的方法,以及如何使用批处理文件在多个平台发布应用程序。最后,提供了一个 PowerShell 脚本示例,该脚本可以根据 Git 标签自动更新程序的版本信息。这些方法能够提高 .NET项目的开发效率和发布流程的便捷性。
在C#编程学习的第五天,我学习了异常处理、变量作用域、switch-case语句和循环结构等内容。作为一名护士转行开发者,我尝试将这些编程概念与护理工作经验相结合。
在C#编程学习的第六天,我学习了循环控制、三元表达式、常量、枚举、结构、数组以及方法等内容。作为一名从护理行业转行的开发者,我将这些编程概念与护理工作经验相结合,帮助自己更好地理解和记忆。
作为一名从护理行业转行的程序员,我将分享如何通过医护工作经验来理解面向对象编程的概念。本文将介绍类、对象、属性、方法等面向对象的核心概念,并结合医疗保健领域的实例来加深理解。
本文将结合医护工作场景,详细讲解C#中的命名空间、数据类型、字符串处理、继承以及集合等重要概念,帮助医护人员更好地理解编程知识。
本文介绍了如何使用C#和Avalonia开发一个图片转Icon的工具,包括需求分析、核心代码实现、UI设计和MVVM模式的应用。
本文介绍了如何开发一个挪车二维码生成工具,包括C#和Avalonia实现的桌面版以及Blazor前端和.NET Web API实现的在线版,涵盖需求分析、核心代码实现、UI设计和MVVM模式的应用。
这篇文章介绍了.NET CLI的文件式程序新特性,它允许开发者直接运行C#源文件而无需创建项目文件。该特性通过在内存中生成虚拟项目文件,并支持NuGet依赖包和项目属性设置,为开发脚本和简单应用提供了便捷。文章还展望了该特性的未来发展方向,包括目标路径扩展、统一命令行参数、性能提升和更多文件式程序命令支持等。
网上搜到的很多 ICO 制作工具都是针对 favicon 的,其他的要不太重,要不就是收费,于是我把目光重新放在了开源工具上
经常看到别人提交的代码记录里面包含一些feat、fix、chore等等,而我在提交时也不会区分什么,直接写下提交信息,今天就来看一下怎么个事
详解Avalonia应用在Windows 7系统下自定义标题栏时原生标题栏残留问题的根本原因与完美解决方案,包含完整代码示例与版本兼容性分析
这是一款专为Avalonia框架设计的多语言管理库,通过插件化架构重构了多语言支持逻辑,不仅兼容传统Resx资源文件,还新增XML和JSON格式支持,同时提供类型安全的资源引用、动态语言切换等能力,让多语言开发更简单、更高效。
在实际软件开发中,尤其是工业软件,每一款设备都有复杂的状态以及状态之间的切换的功能需求,在这种情况下,如何管理状态以及状态之间切换,和对应状态下的功能控制,成为非常重要的一个问题。
在过去几年里,我们的上位机软件主要是用 WPF 和 WinForm 开发的。这些技术在 Windows 平台上确实很好用,也陪伴我们走过了从小规模试产到如今规模化交付的阶段。 但是,随着业务发展和客户需求的变化,单一的 Windows 技术栈逐渐成为了我们必须跨越的一道坎。
相信今年大家没少看到 《抱歉,C# 已经跌出第一梯队》类似的文章,.NET 生态到底如何,本文将为你系统梳理 2025 年 .NET 开发者最应该关注的技术趋势和重要事件,涵盖AI发展、.NET演进及两者融合的最新动态和趋势,以求帮助大家找准定位,迎接未来的挑战与机遇。
记录最近 Avalonia 桌面软件开发解决的两个问题:剪贴板复制崩溃、Tab 切换 DataGrid 卡顿,分析根因并给出解决方案