(C/C++)基于SharpUI控件库的插件式框架开发--第一篇简介

看到题目,很明显这里要说的是插件式框架的开发,当然是用c/c++来实现的。开发对于我来说,是一种爱好,但并非科班出身,所以这里要说的一点分享就是,开发并不是会写代码就行了,最主要的是要有思路想法,比如要实现一个功能,就要知道,这个功能到底是要来实现啥的,要实现它需要什么样的算法等等,做到胸中有丘壑,再去用最简单代码去实现它,就会发现写代码是一件很享受的事情。

参加工作快两年了,一开始的是用C#开发,写了半年多的功能和小控件,上手之后,参考ICSharpCode.Core.Presentation开源插件式开发框架源码,写了仿Office2013插件式管理框架(见图1运行界面,为西安瑞特森科技股份有限公司设计),所有功能均是WPF样式设

图1

计前端,后台实现功能;这里提到了WPF,为什么选择WPF来开发呢,对于它来讲,网上众说纷纭有夸有也有贬的,我是比较中立的对于这一点,因为只要对于我的开发有帮助那就是好的,选择WPF,因为它是数据驱动的,想我写的功能多是与数据打交道,要是完全代码实现会增加很大工作量,但是WPF就能很解决这一问题,有很多数据与界面的交互,在前端设计的时候就可以实现,后台只需要很少代码就能完成。虽然目前为止我用到的WPF的功能只是部分,就感觉它能设计出很多酷炫的东西,有兴趣的话可以网上搜一下WPF设计出来的东西,单从美观上看确实要好,既然WPF很适合我现在的工作用,为什么后来又选择C/C++来开发呢原因有那么几点:首先虽然C#上手快,但是写好的代码不安全,很容易被反编译,原代码都可以完完全全的开放给别人;二就是在运行效率上不如C/C++,当然了C/C++也有其好坏,我只关注好的地方。

不多说费话,前文说我现在一为了软件不容易破解和效率选择了C/C++重新做一个插件式开发框架,有一个问题摆在面前就是,C/C++,并没有那么丰富的控件库,当然MFC先就不说了,我现在这里说明的就是脱离MFC的框架;在网上找了下,发现C/C++的控件库还是有好多了,找来找去还是选择了SharpUI,因为它是和我之前用WPF开发最接近的一个控件库,支持数据绑定,前端设计和后台实现不冲突;具体优点,这里就摘自SharpUI于说明文档里的几句话:

Sharpui是居于DUI思想的一套界面引擎,采用纯c++开发,实现完整的消息处理机制、渲染引擎分离以及灵活的控件扩展,是一款c++真正意义上的界面和业务逻辑分离的界面引擎。 Sharpui通过把界面元素抽象为一个一个单独的绘制单元,然后通过模版的概念把这些绘制单元重新组合成一个逻辑控件,因此,界面引擎实现最核心的渲染和绘制单元,通过组合得到各种各样的逻辑控件,从而满足不断变化的业务需求,而且,从根本上使得界面的开发简单、高效,业务真正地只关心自己的业务逻辑,至于业务数据的展现则通过界面引擎数据绑定核心层自动完成。Sharpui是目前c++领域优秀的界面引擎,其采用了和传统完全不一样的实现方式,传统的DUI界面库一般使用的是界面驱动数据;而Sharpui采用的是数据驱动界面。

其特点如下:

  • 实现数据到UI控件的绑定,自动完成用户数据和UI控件同步更新,用户真正只需专注业务逻辑,开发效率更高效、更智能、更轻松;
  • 实现完整的依赖属性系统,有效节约系统占用的内存空间;
  • 实现完整的虚拟显示机制,轻松支持100000+数据项的呈现,大幅加速应用程序的启动速度和减少内存的占用;
  • 完善的动画框架,用户可以轻松开发各种高效、酷炫的动画,满足实际业务需求,提升产品的用户体验;
  • 界面相关绝大部分逻辑都可以通过xml配置完成,开发效率高、代码小;
  • 采用虚拟控件和脏区域处理技术,系统占用cpu小、消耗内存低;
  • 委托机制的实现,使得用户和界面的交互简单、轻松、自然。

具体示例程序示例图如下:

图2

先给大家上一下,我用C/C++基于SharpUI控件库写的控件式框架运行界面图(图3):

图3

在图3中的菜单和工具条全是在插件中定制,程序在启动后自动加载,在后续的篇章中会逐一介绍如何实现?在第二篇里会先介绍C/C++来实现的可停靠管理的实现。

时间: 2024-10-10 04:39:19

(C/C++)基于SharpUI控件库的插件式框架开发--第一篇简介的相关文章

(C/C++)基于SharpUI控件库的插件式框架开发--第二篇可停靠管理

一个软件,不可能只有一个文档界面,会有多个甚至几十二,比如一些浏览器.文档查看等都是多个标签页的形式,在C#中开源的可停靠管理的常用的是Xceed.Wpf.AvalonDock:但是用C/C++开发的开源停靠管理库是没找到,没办法只能自己写一个了. 图1 可停靠管理项目名XPDock,其中所有控件的样式存放在“.bin\layout\Theme\Controls\XPDock.xml”:如图2: 图2 在XPDock控件中,DockingManager为控件主要控件,控件内定义添加视图方法Add

(C/C++)基于SharpUI控件库的插件式框架开发--第三篇框架基础服务库

一个框架基础的东西,一般也是操作的最基础的类,比如char.int.bool等,有时出现内存泄露的问题导致错误的抛出,但是C++开发有的时候就算是抛出异常,那也是靠经验来积累才能非常快速准确的找出错误所在,这就需要在框架中需要添加日志管理的接口,日志管理的好处就是开发者自身在找异常时提供参考,另一个就是如果用户操作时出现问题,也可将日志反馈,帮助快速解决问题:总之了为了更好的扩展完善我的框架,我详细列一下这个基础服务库(XPCore)包含内容: 虽说sharpui控件库内封闭好string类,但

《Dotnet9》系列-开源C# Winform控件库强力推荐

本系列已介绍一款国内开源C# Winform控件库,大家如有比较好的开源C# Winform控件库,欢迎向Dotnet9推荐,您可在本文下方留言,谢谢您对dotnet的关注和支持,让我们期待dotnet更好的明天,以下是Dotnet9已完成的1篇开源C# Winform控件库推荐文章: 1. <Dotnet9>系列-开源C# Winform控件库1<HZHControls>强力推荐 本篇文章待完善后,将同步在博客园发表,谢谢大家支持! 除非注明,文章均由 Dotnet9 整理发布,

基于 jQuery 的专业 ASP.NET WebForms/MVC 控件库!

目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策略(MVC5+EF6) [第四篇]ASP.NET MVC快速入门之完整示例(MVC5+EF6) [番外篇]ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6) 请关注三石的博客:http://cnblogs.com/sanshi 新建项目 打开VS2015,找到菜单项[文件->

FineUIMvc v1.4.0 发布了(ASP.NET MVC控件库)!

FineUIMvc v1.4.0 已经于 2017-06-30 发布,FineUIMvc 是基于 jQuery 的专业 ASP.NET MVC 控件库,是我们的新产品.由于和 FineUI(专业版)共享前端库,所以从一开始功能就非常丰富,而且产品稳定可靠. 目前官网示例和版本记录已更新:官网示例:http://fineui.com/demo_mvc/更新记录:http://fineui.com/version_mvc/ FineUIMvc(基础版)完全免费 FineUIMvc(基础版)作为三石奉

C语言实现的简易可移植GUI控件库

从大一开始接触到单片机(MCU),一直都觉得挺好玩的.从8位的51单片机到16位的TI MSP系列的单片机都尝试学过.感觉还不错,不过,以前一直都觉得32位的ARM处理器距离自己很遥远.幸运的是,如今我确实有机会接触一款32位的处理器了.当然使用的是Cortext M4内核,TI Stellaris系列处理器之一.       在这几天的学习中,发现高端的处理器确实很强大,不管是内存,FLash存储空间,还是内部的各种硬件资源都极为丰富.也让我一时间不知所措了.此外,还学习了下TFT彩屏的操作.

(四)开源C# WPF控件库《AduSkin – UI》

微信公众号:[Dotnet9的博客],网站:[Dotnet9],问题或建议:[请网站留言], 如果对您有所帮助:[欢迎赞赏]. (四)开源C# WPF控件库<AduSkin> 追求极致,永臻完美 A Beautiful WPF Control UI 一款简单漂亮的WPF UI,融合部分开源框架的组件,为个人定制的UI,可供学者参考. 阅读导航 关于<AduSkin> 1.1 控件库全貌 1.2 动态修改主题色 1.3 技术交流 基于<AduSkin>控件库衍生的Case

[WPF]是时候将WPF控件库从.Net Framework升级到.NET Core 3.1

1. 升级到Core的好处 去年中我曾考虑将我的控件库项目Kino.Toolkit.Wpf升级到.NET Core,不过很快放弃了,因为当时.NET Core是预览版,编译WPF还需要使用最新的Visual Studio 2019,这样作为一个教学项目不够友好.到了今天.NET Core 3.1都出来了,已经正式支持WPF和Winform,Visual Studio 2019也已经普及,我觉得应该是时候将我的控件库升级到.NET Core.那么现在是WPF正式迁移到.NET Core的好时机吗?

DevExpress控件库 开发使用经验总结3 制作项目安装包

2015-01-27 使用DevExpress控件包开发C/S项目完成后,部署前需要制作本地安装包.本文还是使用“SetupFactory”安装工厂来制作安装包.在以前的系列文章中详细介绍过该工具的使用,请参考http://www.cnblogs.com/SavionZhang/p/4106338.html. 实际情景:SetupFactory V9.0.3.DevExpress14.1.8.依赖程序.Net Framework 4.0. 由于项目中引用了很多DevExpress控件库中的DLL