- 博客(2442)
- 资源 (11)
- 收藏
- 关注

原创 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
01—前言MEF是微软自家的托管可扩展框架,在这里我把它用成了ioc容器。在Caliburn.Micro框架下,view和viewmodel被注入到CompositionContainer容器中,然后通过名称可以实现view和viewmodel的匹配。利用这一特点,在多人合作项目开发中,一个解决方法就可以拆分成很多个项目,只用在主项目中搭建框架,每个分支项目开发好以后加载到容器中,就可以实现界面和逻辑的调用,可能这样解释有点生涩,具体我们看下面实例再去理解。02—新建项目MefTest第一步
2021-10-25 23:07:24
796
1
转载 盘点10个.NET开发的快速开发框架
YuebonCore 是基于.Net7.0 开发的权限管理及快速开发框架,整合应用最新技术包括 Asp.NetCore MVC、SqlSugar ORM、WebAPI、Swagger、Vue3 等,核心模块包括:组织机构、角色用户、权限授权、多系统、多应用管理、定时任务、业务单据编码规则、代码生成器等。前端采用Vue、AntDesign,支持多租户、缓存、任务调度、支持统一异常处理、接口限流、支持一键生成前后端代码,支持动态国际化翻译(Vue3),等诸多黑科技,代码简洁易懂、易扩展让开发更简单、更通用。
2025-06-11 07:48:54
6
转载 C#有什么惊艳到你的地方?
这段代码没有在堆上分配空间,你所看到的操作全都是在栈上进行的,GC压力为0。熟悉C++的人,经过思考,可以很好的理解IComparable、IEquatable以及它们的泛型形式。思考C#的底层设计,给人的感觉就是自然、规范、恰到好处。但后来我们看到,随着泛型的成熟和普及,随着泛型容器代替通用容器,装箱和拆箱的问题已经在很大程度上解决了。当然,很多其它语言也有类似的设计,可以说别的语言做的好的部分,C#做的也一样好。还有对异步的支持等等,C#的设计最初带来了一些问题,但是最终还是交上了一份满意的答卷。
2025-06-09 08:09:12
10
转载 四种C#对象的比较方式
(为了获取最佳性能,hash函数为对象内容生成的数字是随机分布的,这就意味着,内容不同的对象,有可能生成的数字是一样的,但可以认为这种概率非常小)。这样一来,string类型虽然是引用类型,但是其==操作和Equals操作都是一样的,均比较值是否相等。对于引用类型而言,其栈中存储的是对象的地址,那么==就是比较两个地址是否相等,即是否指向同一个对象;值类型存储在栈上,故用==判断是直接判断其值是否相等,因为值类型不存在堆中的数据,因此值类型的Equals也是判断数据。若a=b,b=c,则a=c;
2025-06-06 00:01:07
12
转载 什么?原来C#还有这两个关键字
implicit和Explicit都是起到类型转换的作用,它们的区别是转换的时候一个需要显式转换而已,刚才我们那个场景用了隐式转换,如果是显式转换的话就需要 double hours = (double)timeRange;如果不懂这个关键字的同事阅读到这儿,它可能还会很懵逼:“我擦,这个类型明明不是那个类型啊,那个类型又怎么成了这个类型,它们怎么还能等于起来……此时的你,只能对他微微一笑。它所包含了.NET体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.NET知识等等。
2025-06-05 07:49:39
12
转载 C#高性能动态获取对象属性值
在C#中,可读属性都有一个对应的get_XXX()的方法,可以通过调用这个方法来取得对应属性的值。我们知道可以动态构建Linq的Lambda表达式,然后通过编译后得到一个委托,如果能动态构建返回属性值的委托,就可以取到值了。动态获取对象的性能值,这个在开发过程中经常会遇到,这里我们探讨一下如何高性能的获取属性值。通过反射来获取对象的属性值,这应该是大家常用的方式,但这种方式的性能比较差。虽然动态构建Lambda的性能已经很好了,但还是更好吗?毕竟比直接调用还是差了一些,要是能直接调用属性的取值方法就好了。
2025-06-01 09:50:18
37
转载 .NET 8来了,开发一套基于.NET 8的快速开发框架吧,就叫Simple
下面大家看下admin模块和common模块,分别都能实现自动注入、定时任务、自动生成各自的数据库及数据初始化、领域事件处理,顺带说下,不管是控制台应用的主机还是webapi的主机,里面的模块都可使用构造函数注入哦。好了,用最简单的东西实现了大多数项目业务都能搞定的框架了吧,如果对你有用,记得 点我Star 哦,初步版本已提交,有时间会持续优化,代码生成器还有一丢丢没搞玩,其他都差不多了,需要的看代码去吧。以上就是整个框架的封装,够简单吧,是不是感觉啥都没有用,就这么点东西已经完成了我上面构想的支撑!
2025-05-30 07:42:21
19
转载 C# 中将 List 转换为只读的 List
需要注意的是,无论是使用 `ReadOnlyCollection<T>` 还是 `AsReadOnly()` 方法,它们都只是提供了一个只读的视图,而不是创建了数据的副本。通过使用 `ReadOnlyCollection<T>` 或 `AsReadOnly()` 扩展方法,我们可以轻松地创建只读集合,从而提高代码的安全性和可维护性。除了 `ReadOnlyCollection<T>` 类之外,C# 还提供了一个扩展方法 `AsReadOnly()`,它可以将任何 `List<T>` 转换为只读集合。
2025-05-29 07:49:03
16
转载 C# 要逆袭 Java 吗?用数据说话
根据 TIOBE 语言排行榜的数据,C# 的增长率达到了 3.29%,而 Java 的增长率减少了 3.92%。作为开发者,我们应该关注语言的发展趋势,同时不断提升自己的技能,以适应不断变化的技术环境。根据 Boss 直聘网的公开数据,Java 开发职位的数量是 C# 开发职位的 10 倍以上。为了更具体地展示 C# 和 Java 的应用差异,我们可以通过一些简单的代码示例来比较它们在实际开发中的应用。从数据上看,C# 和 Java 的差距正在缩小,C# 的增长势头似乎更强劲。如果喜欢我的文章,那么。
2025-05-28 07:47:32
18
转载 Visual Studio 2022调试技巧:远程调试、线程检查与性能监控
Visual Studio 2022 是 .NET/C# 开发者的首选工具之一,不仅因其强大的代码提示和项目模板,更因其丰富的调试工具。本文将深入探讨 Visual Studio 2022 中的一些高级调试技巧,包括远程调试、线程检查和性能监控,帮助开发者在开发和维护阶段更高效地解决问题。通过本文的介绍,希望能够帮助开发者更好地利用 Visual Studio 2022 的调试工具,提高开发效率和代码质量。Visual Studio 提供了强大的线程窗口,可以查看所有活动线程的运行情况及其在代码中的位置。
2025-05-27 07:50:09
23
转载 C# WPF界面设计,提升用户体验与界面美观
在软件开发中,用户界面(UI)的设计至关重要,它不仅影响着用户的使用体验,也是产品的第一印象。本文将展示一些C# WPF界面设计的最佳实践,并提供代码示例,帮助开发者提升界面设计的质量和用户体验。希望本文提供的C# WPF界面设计实例和代码示例能够启发你的设计灵感,帮助你创建出更加美观和用户友好的应用程序界面。HandyControl是一个开源的WPF控件库,提供了许多美观且实用的控件。由于篇幅限制,其他界面设计的展示将简要概述,并提供设计思路,具体的代码实现可以根据项目需求进行调整。
2025-05-26 07:46:13
26
原创 C# 调用C++算法导致服务崩溃的解决方案
当C#调用C++编写的算法导致服务崩溃时,通常是由于内存管理、线程安全或异常处理不当引起的。通过以上方法,可以显著减少C#调用C++算法导致的崩溃问题。:C++代码访问了未分配或已释放的内存。:C++异常未正确处理传播到C#端。:比直接P/Invoke更安全。:多线程环境下共享资源未加锁。3. 使用安全的数据传输方式。使用C++/CLI作为中间层。:在DLL入口点添加版本检查。:模拟高负载情况下的稳定性。:未正确释放分配的内存。:函数调用约定不一致。++间数据类型不匹配。
2025-05-25 15:24:36
270
原创 .NET原生驾驭AI新基建实战
NET 9 作为微软最新的开发框架,带来了一系列强大的性能优化工具和改进,涵盖内存管理、异步编程、代码执行效率和 Web 应用性能等多个方面。.NET 9 的即时编译器(JIT)引入了多项改进,包括循环优化、内联增强和边界检查消除,显著提升了代码执行效率。与传统的固定堆大小模式相比,DATAS 可以更好地适应“突发”工作负载,在负载高峰时分配更多内存,而在负载降低时释放多余资源。.NET 9 引入了动态适应应用大小(DATAS)的垃圾回收模式,这一特性默认启用,能够根据应用的实际内存需求动态调整堆大小。
2025-05-07 07:15:12
1207
转载 微软退出中国。。。C#要变天了?推荐非常火的C#/AI项目!
包括主控面板、机构、职位、菜单、角色、字典、日志、服务监控、在线用户、公告、文件、任务调度、系统配置、邮件、代码生成、在线构建器、对接微信、导入导出、限流、ES、授权 、APIJSON等。包括商品、订单、会员、服务、财务、字典、促销、分销、代理、库存、统计、自定义表单、文章、广告、商城、平台、后台、短信、日志、门店、消息、小票、直播带货等。包括用户、角色、菜单、部门、岗位、字典、参数、用户、操作日志、登录、定时任务、缓存列表、服务监控、文章、板块、主题、个人中心、授权中心等。
2025-04-24 07:45:27
98
转载 为什么今年在国内讨厌C#的人还是那么多?太落后了!
微软的大佬们基于最新的.NET9+WPF+OpenAI+DeepSeek开发的火爆.NET生态圈、开放源码的10个开源大项目,整合最新人工智能技术,成为了今年C#/.NET又一大热点!专家们循序渐进地、有层次地对各个项目进行了讲解。很多兄弟们也强烈推荐我宣传这些项目,帮助兄弟们快速走出技术雾霾!对于0基础可以作为.NET9、微服务、人工智能的快速入门项目,对于高级程序员而言,这也是你在下半年的项目...
2025-02-27 08:01:02
129
转载 从零到一搭建工业组态系统:WPF拖拽式开发全解析
WPF当前工资水平?在当前的软件开发行业中,.NET技术市场占比日渐缩小,但是wpf方向却一直坚挺。尤其是在工业、金融等领域,WPF以其强大的界面交互能力、相比网页的高性能优势、与硬件的深度集成,成为了web无法替代的因素。BOSS随便无限制条件搜了一下北京的wpf开发岗位,工资如下:为什么WPF开发的工资更高?相比于传统的WinForms或者其他较为基础的桌面开发技术,WPF的技术门槛更高,尤其...
2025-02-20 08:55:41
153
原创 .NET在AI时代给开发者带来了那些机遇?
在当今科技领域,人工智能(AI)的发展可谓是突飞猛进。而.NET作为一款强大的开发平台,正借助这股AI浪潮迎来了属于自己的大爆发.NET与AI的结合,不仅提升了开发效率,还为软件产品带来了更多的创新与价值以下将从几个方面探讨.NET在AI时代给开发者带来的机遇。一、智能代码生成与优化借助AI技术,.NET开发工具可以实现智能代码生成和优化。通过对大量代码的学习和分析,AI可以根据开发者的习惯和项目...
2025-01-29 00:00:26
587
原创 为什么说.NET在2025年会大放异彩,越来越受开发者青睐?!
一、跨平台能力的增强.NET在2025年的一个重要优势是其强大的跨平台能力。随着.NET Core的不断发展,.NET已经能够在Windows、Linux和macOS等多个操作系统上运行,这意味着开发者可以使用同一套代码在不同的平台上部署应用,大大提高了开发效率和代码复用性。例如,一个企业级的Web应用可以轻松地在Windows服务器上开发和测试,然后部署到Linux服务器上运行,而无需对代码进行...
2025-01-28 11:09:45
533
原创 特斯拉等工厂招聘.NET技术人才的缘由剖析
在当今这个科技飞速发展的时代,特斯拉等先进制造工厂正悄然掀起一股招聘热潮,而这次他们的目光锁定在了.NET技术人才身上。这不禁让人好奇,这些工业巨头为何会对.NET技术人才如此青睐有加?背后究竟隐藏着怎样的深谋远虑?让我们一起深入探究,揭开这层神秘的面纱。一、数字化转型的迫切需求随着工业4.0的推进,特斯拉等工厂正加速向数字化、智能化转型。在这个过程中,他们需要构建一套高效、稳定且功能强大的信息系...
2025-01-23 00:00:32
622
原创 利用ML.NET精准提取人名
在当今信息爆炸的时代,文本处理任务层出不穷,其中人名提取作为基础且重要的工作,广泛应用于信息检索、社交网络分析、客户关系管理等领域。随着人工智能不断进步,ML.NET作为微软推出的开源机器学习框架,为开发者提供了高效、便捷的工具来实现人名提取功能,极大地提升了开发效率与模型的准确性。一、理解需求与数据准备首先,明确任务的目标十分重要。人名提取的主要任务是从各类文本中识别出人名。这些文本可以来源于新...
2025-01-22 00:01:13
1036
原创 WinForm 双屏幕应用开发:原理、实现与优化
在当今的软件开发领域,多屏幕显示技术的应用越来越广泛。对于 WinForm 应用程序来说,能够支持双屏幕显示不仅可以提升用户体验,还能满足一些特定场景下的业务需求,比如在演示、监控或者多任务处理等场景中。本文将带你深入了解 WinForm 双屏幕应用开发的原理、实现方法以及优化技巧,通过通俗易懂的代码实例,让你快速掌握这一实用技能。一、双屏幕应用开发的原理在 Windows 操作系统中,多屏幕显示...
2025-01-21 07:46:50
1093
原创 支付宝P0故障复盘:谁该为此次事故负责?
在数字化浪潮汹涌澎湃的当下,支付宝作为国内领先的第三方支付平台,早已深度融入人们的日常生活。然而,2025年1月16日下午,这个看似平常的日子,支付宝却发生了一起震惊业界的P0级重大故障,引发了社会各界的广泛关注与热议。短短5分钟内,众多用户在支付宝上的支付订单竟神奇地享受到了20%的减免优惠,这究竟是怎么一回事?在这起事故背后,又隐藏着怎样的真相?谁又该为此次事故负责呢?一、故障现象:意外的“福...
2025-01-20 07:45:34
1176
原创 .NET特技:教你一招搞定微信运动步数修改!
在当今数字化时代,微信运动已成为许多人展示自己活力与健康生活态度的重要方式。每天在朋友圈里,各种步数排行榜让人眼花缭乱,从几百步到几万步不等。然而,你有没有想过,如果能修改自己的微信运动步数,会是一种怎样的体验呢?今天,就让我们一起探索一下这个看似不可能完成的任务,借助.NET的“邪术”,来实现微信运动步数的修改。一、技术原理概述微信运动步数的修改并非易事,因为微信有其严密的数据安全防护机制。不过...
2025-01-18 16:46:47
1087
转载 为什么在国内喜欢C#的人越来越多?生态越来越完善
在国内,C#的市场需求相对较小,但是C#因其简洁高效和强大的跨平台支持,吸引了越来越多国内开发者。对于开发者,建议保持开放心态,结合项目需求探索C#的优势,同时不断学习新技术,提升自身竞争力。这是微软技术专家们基于最新的.NET9+WPF+OpenAI开发的火爆.NET社区、开放源码的10个开源大项目,整合最新人工智能技术,成为了今年C#/.NET又一大热点!大佬们循序渐进地、...
2024-12-11 07:50:10
404
原创 C# 进行AI工程开发
在人工智能(AI)的浪潮中,C#作为一种功能强大且类型安全的编程语言,为AI工程开发提供了坚实的基础。C#结合.NET框架,使得开发者能够快速构建和部署AI应用。本文将通过一个简单的实例,展示如何使用C#进行AI工程开发。1. 环境准备在开始之前,确保你的开发环境已经安装了.NET SDK和Visual Studio。这些工具将帮助我们创建和管理C#项目。2. 项目创建打开Visual Studi...
2024-11-29 07:55:42
1215
原创 C# 2024年Visual Studio实用插件集合
在2024年,Visual Studio作为.NET开发者的首选IDE,其插件生态不断壮大,为开发者提供了更高效、便捷的开发体验。本文将介绍一些实用的Visual Studio插件,特别是针对C#开发者,帮助提升开发效率和代码质量。1. GitHub CopilotGitHub Copilot 是一款AI编码助手,由GitHub提供,它能够根据上下文自动生成代码补全和整个代码块。这对于C#开发者来...
2024-11-27 11:29:05
1155
原创 .NET 8 实现通用权限开发框架
在.NET 8中实现一个通用权限开发框架,不仅可以提高开发效率,还能保证系统的安全性和可扩展性。本文将介绍如何使用.NET 8构建一个通用权限框架,并提供实例代码展示。1. 框架概述一个通用权限开发框架通常包括用户管理、角色管理、权限管理等核心模块。在.NET 8中,我们可以利用其强大的类库和框架特性,如ASP.NET Core Identity、Entity Framework Core等,来快...
2024-11-26 08:04:51
612
原创 GTK#框架让C# Winform程序跨平台运行
在软件开发领域,跨平台能力是一个重要的考量因素。对于C#开发者来说,Winform是构建桌面应用的强大工具,但原生Winform只支持Windows平台。幸运的是,GTK#框架的出现让C# Winform程序跨平台运行成为可能。本文将详细介绍如何使用GTK#框架让C# Winform程序在Windows、Linux和macOS上运行,并提供实例代码展示。1. GTK#框架简介GTK#是基于GTK+...
2024-11-25 08:28:06
1568
原创 .NET高效下载word文件
在.NET开发中,高效下载Word文件是一个常见的需求。本文将介绍如何使用Aspose.Words和IronWord这两个强大的库来实现这一功能。这两个库都支持.NET 8,并且可以在Linux、macOS和Windows上运行,使得在不同平台上处理Word文档变得简单。1. Aspose.Words:功能强大的Word处理器Aspose.Words是一个商业库,它提供了广泛的功能来创建、编辑和转...
2024-11-21 08:26:57
903
原创 C#开发最快的浏览器,打造极速浏览体验
在现代软件开发中,浏览器已成为我们日常生活中不可或缺的一部分。对于C#开发者来说,使用C#开发一个快速且功能齐全的浏览器是一个挑战,但也是一个展示技术实力的机会。本文将介绍如何使用C#和CefSharp库开发一个高性能的浏览器,以及如何优化其性能以提供极速的浏览体验。1. CefSharp:.NET中的Chromium嵌入式框架CefSharp是一个基于Chromium嵌入式框架(CEF)的.NE...
2024-11-20 07:44:44
1257
原创 .NET开源实时应用监控系统:WatchDog
在现代软件开发中,实时监控系统对于确保应用的稳定性和可靠性至关重要。WatchDog是一个专为ASP.NET Core Web应用程序和API设计的开源、免费的实时应用监控系统。本文将详细介绍WatchDog的技术特点、工作原理、安装配置以及使用场景,并提供实例代码展示。1. WatchDog项目介绍WatchDog是一个开源(MIT License)的实时应用监控系统,专为ASP.NET Cor...
2024-11-19 12:00:21
834
原创 C#超简单实现人脸识别
在C#中实现人脸识别可以通过多种方式,但一个简单且常用的方法是使用第三方库,比如Emgu CV,这是一个.NET封装的OpenCV库。下面是一个使用Emgu CV进行人脸识别的超简单示例:安装Emgu CV:首先,你需要在你的C#项目中安装Emgu CV。你可以通过NuGet包管理器来安装。在Visual Studio中,你可以通过“工具”->“NuGet包管理器”->“管理解决方案的...
2024-11-18 20:16:58
2402
原创 C# WPF .NET6程序可以直接运行?不需要装.NET运行时?
在.NET 6中,你可以选择将应用程序发布为独立部署模式,这意味着应用程序将包含.NET运行时,并且可以在没有安装.NET运行时的机器上运行。这种部署方式对于那些不希望或不能在客户端机器上安装.NET运行时的场景非常有用。创建.NET 6 WPF应用程序首先,你需要创建一个.NET 6 WPF应用程序。以下是创建过程的简要概述:打开Visual Studio。选择“创建新项目”。在项目模板中选择“...
2024-11-16 15:08:25
695
原创 C# WPF .NET WebApi竟然可以获取到这么多客户信息?
在当今的软件开发中,C# WPF 结合 .NET WebApi 已经成为了一种流行的技术组合,用于构建富客户端应用程序。通过这种方式,开发者可以充分利用 WebApi 的强大功能来获取和处理客户信息。本文将探讨如何通过 C# WPF 应用程序调用 .NET WebApi,并获取丰富的客户端信息。引言在构建基于 .NET 的 Web API 时,获取客户端信息对于增强应用的安全性和改善用户体验至关重...
2024-11-14 07:55:20
407
原创 C# 如何将winform只生成一个绿色文件?
在C# WinForms应用程序中,创建一个单一的绿色可执行文件(不需要安装,直接运行)通常需要一些额外的步骤,因为WinForms应用程序通常依赖于.NET Framework或.NET Core运行时库。以下是几种方法来实现或接近生成一个绿色文件的WinForms应用程序。使用.NET Core或.NET 5+ 发布为单文件从.NET Core 3.0开始,.NET支持将应用程序及其所有依赖项...
2024-11-10 12:39:11
1069
转载 牛逼了!微软2024版《C#13/.NET9中文开源手册》火了,完整PDF开放下载!
这是微软技术专家基于最新的.NET9编写,循序渐进地对C#13/.NET9进行讲解。对于零基础可以作为.NET9的快速入门教材,对于高级程序员而言,这也是你的进阶之路,今天来了,就是缘分,看到了就送给你!01资料介绍该手册,可分为三大部分,第一大部分介绍C#基础知识,包括面向对象编程以及新的C#13特性。第二大部分介绍.NET9,包括管理和查询数据、监视和改进性能以及使用文件系统、异步流、...
2024-11-05 07:50:49
402
原创 C# WPF 与 JS 交互可以使用的第三方库
在开发现代桌面应用程序时,C# WPF(Windows Presentation Foundation)经常与 JavaScript 交互,以利用丰富的 Web 技术。以下是一些流行的第三方库,它们可以帮助你在 WPF 应用程序中实现与 JS 的交互。1. CefSharpCefSharp 是一个流行的开源库,它允许你在 WPF 应用程序中嵌入 Chromium 浏览器。通过这个库,你可以加载网页...
2024-11-04 08:54:57
669
原创 C# WPF 两行代码实现微信多开?
在C# WPF应用程序中实现微信多开的功能,虽然微信官方并不支持多开,但是通过一些技术手段,我们仍然可以实现这一需求。以下是如何通过C# WPF两行代码实现微信多开的示例。实现原理微信多开的原理主要是通过启动多个微信进程来实现。由于微信默认设置是不允许多个实例同时运行的,因此我们需要绕过这个限制。这可以通过查找微信进程的Mutex并释放它来实现,从而允许启动多个微信实例。实现代码[DllImpor...
2024-11-02 13:33:11
425
原创 C# wpf 如何监控变量值改变?
在C# WPF应用程序开发中,监控变量值的改变是一项常见的需求。这可以通过多种方式实现,包括使用数据绑定、属性通知、消息传递等。本文将详细介绍几种常用的方法来监控WPF中的变量值改变。1. 使用数据绑定和属性通知WPF中的数据绑定机制允许UI元素与后台数据模型紧密绑定。通过实现INotifyPropertyChanged接口,可以在数据模型中监控属性值的改变。实现步骤1.1 创建数据模型首先,创建...
2024-11-01 22:48:56
835
原创 C# wpf 几种常用的窗口特效?
在C# WPF应用程序开发中,窗口特效是提升用户体验的重要手段。本文将介绍几种常用的窗口特效及其实现方法,包括动画、阴影、模糊效果等。1. 动画效果WPF提供了强大的动画支持,可以通过Storyboard和动画类来实现各种动画效果。1.1 淡入淡出效果淡入淡出效果是最常见的动画效果之一,可以通过以下代码实现:xml<Window x:Class="WpfApp.MainWindow" ...
2024-11-01 08:59:36
746
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人