1.c++网站开发MVC框架
Treefrog框架是一个基于C++和Qt的高速全栈的网页应用框架, 支持HTTP和WebSocket协议. 用它开发的网页应用程序可以比用其它轻量级的编程语言运行得更快. 在程序开发过程中, 它提供了O/R映射系统和基于MVC体系的模版系统, 目标是通过惯例优于配置的原则实现快速开发.
特点
- 高性能 - C++引擎的高速优化的应用服务器
- O/R 映射 - 隐藏了复杂的和麻烦的数据库访问
- 模版系统 - 采用类似ERP的模板引擎
- 支持多种数据库 - MySQL, MariaDB, PostgreSQL, ODBC, MongoDB, Redis和Memcached
- 支持WebSocket - 提供双向通信通道
- 生成器 - 自动生成程序骨架和Makefile文件
- 支持各種響應類型 - JSON,XML和CBOR
- 跨平台 - Windows, macOS, Linux等. 一次编写,到处编译
- 开源 - New BSD Licens
- 下载链接:https://www.treefrogframework.org/ch/
2.基于Qt的c++MVC框架libgitlmvc
- 授权协议: BSD
- 开发语言:
- 操作系统: 跨平台
- 软件首页: GitHub - lheric/libgitlmvc: C++ MVC framework for Qt
- 软件文档: GitHub - lheric/libgitlmvc: C++ MVC framework for Qt
软件介绍
libgitlmvc 是一个基于Qt构建的的C++ MVC 框架
概览:
View<====>Front Controller<====>Commands<====>Model
该框架包括四个部分:
视图: 用户交互界面
前端控制其(Front Controller): 处理所有的视图请求
命令: 前端控制其根据不同的视图请求,调用不同的命令,实现某个特定的功能
模型: 表示程序当前的状态。
3.PureMVC--一款多平台的MVC框架
下载:GitHub - PureMVC/puremvc-csharp-multicore-framework at 1.1.0
API文档:Live Documenter API Documentation
引子
了解设计模式的人应该都多少听说过MVC模式。
严格意义上来说,“MVC模式”是一个伪概念,因为MVC并不属于设计模式,至少不属于GoF的23种设计模式之一,而更像是一个设计模式的结合体:V和C之间会实现观察者模式,M内部会实现单例模式,C在派发任务时会实现Command模式。
不得不说,MVC模式对软件的高可扩展性和高可维护性做出了巨大的贡献,这也使得MVC模式成为很多中等规模甚至大规模软件的常用框架,且经历了20余年仍旧在软件开发领域流行并通用,足可见MVC模式的经典。
但是传统MVC模式真的那么完美吗?
传统MVC的痛点
让我们一个个来说。
Controller:控制器,包含了项目的业务逻辑。但是也是被大家吐槽最多的一个,原因就是很多人,或者说大多数人,习惯于什么都往Controller里写,最后一个Controller超过1000行代码是司空见惯的事。所以关于传统MVC的第一个痛点就是,Controller过于臃肿。
Model:模型,包含了项目的数据模型。MVC定义之初,Model是核心,旨在使得同一个Model可以被复用到多个项目或者被复用到同一个项目的不同模块之中。但是在实际项目中,Model还承载着纯Model层内部的运算的工作,但是运算部分会项目的不同而有所区别,因此与项目的适配反而成为了Model可复用的枷锁。所以关于传统MVC的第二个痛点就是,Model变得不可复用。
View:视图,包含了项目所有的UI组件。视图本身没有什么好被大家诟病的,但是由于MVC中对于View和Controller界限的模糊界定造成了使用者在写代码的时候会觉得这部分代码放在View或者Controller里都可以的情况。例如事件的处理,组件的组合等。所以关于传统MVC的第三个痛点就是,View概念的模糊。
PureMVC
既然上文说的是传统MVC,那么可以判定PureMVC是一个新型MVC。
其实PureMVC只是相对于传统MVC(20年陈酿)来说“新”一些而已,因为PureMVC今年也已经有10年的历史了。
PureMVC是一款基于MVC的开源框架,最初是为基于ActionScript3的Flash,RIA程序开发的,后来被移植到16种语言平台上。
PureMVC分为标准版本和多核版本,后者为程序的模块化开发提供了支持。本文以标准版为例分析PureMVC。
PureMVC的MVC
PureMVC架构图