001 Laura.SqlForever架构的基础(Laura.XtraFramework 的变迁之路)

Laura.XtraFramework 到底是 做什么的?

Laura.XtraFramework 是一个 WinForm 系统的 UI底层:

>实现 大中型WinForm系统的 UI插件布局

>具体包括 文档子窗体,导航栏,工具栏,右键菜单 的 插件嵌入

>解决 大中型WinForm系统开发 中的多种问题:

>多人多次操作 同一个类 时,造成的 代码质量 降低;

>多人多次操作 同一个类 时,引入 新的BUG;

>多人操作 同一个类文件 时,等待他人操作 的 时间浪费;

>通过 插件嵌入 的方式 对软件 进行扩展 —— 在不改变 之前版本的基础上,实现 功能的 新增 或 改写

>最最重要的是,封装 复杂的代码,简化插件扩展方式,降低开发门槛 —— 让 应届毕业生 都可以 模仿写插件,在 不需要 对内核进行理解的基础上 就能 实现 相对复杂的功能;

Laura.XtraFramework 只能实现这样的 WinForm UI布局:

>打开 VS2010,SqlServer2008客户端 你会发现布局 有一个 共同点:

>上图:红色区域 是 导航栏; 蓝色区域 是 工具栏;粉色区域 是 导航窗;

>上图:更 习惯 是 子窗体 类似 选项卡控件 一样的打开方式(图中没有打开 子窗体 进行标记);

>是的。Laura.XtraFramework 就是 对 这类WinForm UI布局的封装(之后,会有基于 Laura.XtraFramework 的项目截图);

 

Laura.XtraFramework 升级变迁

 

BaseUserInterface 和 Laura. WinFramework 基于 .Net Framework 2.0控件库 + 第三方 WeifenLuo.WinFormsUI

BaseXtraUserInterface 和 Laura.XtraFramework 基于 第三方DevExpress控件库

所有变迁 的版本用到的是 现有优秀的第三方布局控件库——而Laura.XtraFramework 更多的偏向于 架构;

Ps.   好吧,我承认:你也肯定 看到了 “2012-05仿进销存Invoicing”—— 这也太抢眼球了吧。

这和 2012-05 所在的 创业时期 有关系。

这个 仿进销存项目 写了 2个月,只写完了底层和所有需要的组件 —— 具体进销存逻辑 是没有实现的。

仿照的是 管家婆进销存系统(虽然 之前有过 金蝶的相关工作,但是 金蝶系统 没能在网上下载到)。

为什么 SqlForever项目 要 一写再写

>各位 也看到了,SqlForever 经历过 三个版本。基本就 伴随着 Laura.XtraFramework 的升级而改写;

>作者 喜欢 跨数据库,之前写过 Laura.Source 跨数据库ORM框架;

>SqlForever 就是一个 跨数据库 的客户端软件(目前支持 五种数据库);

>更重要的是 SqlForever 支持 跨数据库 数据迁移(比如 可以 从 SQLServer 数据库 转移成 MySql数据库:并且 保存主键,自增,和可以兼容的默认值);

>其实,SqlForever 一写再写,确实 是 面试 时的 被逼无奈:

>自己从不带走之前公司的源码,面试时 被问到 之前的项目,我也只能空口白牙 —— 信不信全看 面试官的主观。

>部分面试官 问技术:JQuery,MVC,EF,Ajax 等 这些技术 十有九人 都能说出来 —— 自己说得再好,也只是 90%。

>单凭 Laura.Compute、Laura.Serialization、Laura.WebControl、Laura.Source 这几个 王牌算法,确也辛亏 博客园斑竹 的推荐。但是,算法毕竟是 底层 —— 面试官 看不到算法的 适用前景。

>综上所叙:我的面试 完全 体现不出 优势啊 —— 有木有。

>“2012-05仿进销存Invoicing”很抢眼,但是 面试 不敢拿出来(因为没人相信 22岁的年轻人 敢拿 进销存开刀 —— 拿出来了 反而 更容易落一个 弄虚作假 的印象)

>SqlForever 的 升级过程 由简化繁, 或许能 让面试官更容易接受“2012-05仿进销存Invoicing”的存在。

Laura.XtraFramework 相关项目截图

WebCreate 2.5 代码生成器

SqlForever 2.0 跨数据库客户端(如果不是 窗口标题,你能看出 这是一个 山寨项目 么)

SqlForever 2013 跨数据库客户端(兼容了更多的 数据库)

SqlForever 2014 跨数据库客户端(完全移植于 SqlForever 2013 —— 6个散漫小时即完成 底层的转换 [如果不是 因为 Laura.XtraFramework插件架构思想,这个工作 至少得 60个高压小时 且不保证不产生 BUG]

2012-05 仿进销存 Invoicing

 

 

Laura 到底是谁,为什么用这个 名称的 命名空间?

>2005年,电视中 播放过一个 动画片 《查理 和 罗拉》 —— 那时 和亲妹 就 不自觉的 对号入座。

>2008年,给 亲妹 写信,正式 用到了 Charlie 和 Laura。

>2013年,之前的 SVN 版本库 Project 存在很多问题,准备另外 开辟 版本库:

> Project的 主命名空间 Beetle是 大学时期的“屎壳螂”团队 的名称,但是 不想再用;

>不知所爱,处在 情场动荡期,所以 不敢贸然挑选 其她女子的英文名;

>天长地久,最能信赖的 女子 或许就是 亲妹 了 —— 于是,最后选择了 Laura。

>Ps.   最终,找到8年前的 动画片 《Charlie And Lola》—— 即 Laura 是一个历史遗留 的 错误名称

>Ps.   2013-12-21,开辟 新版本库 Siyu 专门用于 尝试 顶级人工智能算法(一个注定会失败的算法)。

好啦,至此 Laura.XtraFramework 的变迁 已经介绍完成。

之后的 系列文章 将 专门介绍 Laura.SqlForever。

 

 

舒小龙

2014-02-11 20:03                                                                                                                                                                                                                                                                                                                   

『练手』001 Laura.SqlForever架构基础(Laura.XtraFramework 的变迁)的更多相关文章

  1. 『练手』005 Laura.SqlForever历史遗留 的 架构思想缺陷

    005 Laura.SqlForever历史遗留 的 架构思想缺陷 我们 比较一下 Laura.WinFramework 和 Laura.XtraFramework 的差异: Laura.WinFra ...

  2. 『练手』004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件

    004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件 导航栏 插件扩展 比如下图的    窗口 > 关闭所有文档    这个导航栏: 在 任何程序集,任何命名空间,任 ...

  3. 『练手』003 Laura.SqlForever如何扩展 兼容更多数据库引擎

     003 Laura.SqlForever如何扩展 兼容更多数据库引擎 数据库引擎插件 在 界面上的体现 导航窗体 的 工具栏 中的 引擎下拉列表        导航窗体 的 树形控件 中的 引擎主节 ...

  4. 『练手』手写一个独立Json算法 JsonHelper

    背景: > 一直使用 Newtonsoft.Json.dll 也算挺稳定的. > 但这个框架也挺闹心的: > 1.影响编译失败:https://www.cnblogs.com/zih ...

  5. 『练手』通过注册表 获取 VS 和 SQLServer 文件路径

    获取任意 VS 和 SQLServer 的 磁盘安装目录. 背景需求:如果磁盘电脑安装了 VS 或者 SQLServer 则 认定这台计算机 的使用者 是一名 软件研发人员,则让程序 以最高权限运行. ...

  6. 『集群』001 Slithice 服务器集群 概述

    Slithice 服务器集群 概述 Slithice是做什么的 Slithice 是一个 跨平台 的 分布式架构 框架: 旨在简化 分布式开发 的开发难度,节省 开发成本 和 后期维护成本: 并提供 ...

  7. 『TensorFlow Internals』笔记_系统架构

    一.架构概览 TensorFlow 的系统结构以 C API 为界,将整个系统分为前端和后端两个子系统: 前端系统:提供编程模型,负责构造计算图: 后端系统:提供运行时环境,负责执行计算图,后端系统的 ...

  8. 『ACM C++』Virtual Judge | 两道基础题 - The Architect Omar && Malek and Summer Semester

    这几天一直在宿舍跑PY模型,学校的ACM寒假集训我也没去成,来学校的时候已经18号了,突然加进去也就上一天然后排位赛了,没学什么就去打怕是要被虐成渣,今天开学前一天,看到最后有一场大的排位赛,就上去试 ...

  9. 20个Java练手项目,献给嗜学如狂的人

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固. JAVA基础 ...

随机推荐

  1. jdbc 增删改查以及遇见的 数据库报错Can't get hostname for your address如何解决

    最近开始复习以前学过的JDBC今天肝了一晚上 来睡睡回笼觉,长话短说 我们现在开始. 我们先写一个获取数据库连接的jdbc封装类 以后可以用 如果不是maven环境的话在src文件下新建一个db.pr ...

  2. hkws摄像头拆机

  3. 如何在ST官网下载STM32固件库

    1.首先要注册一个ST账号,下载的时候需要. 2.找到工具与软件 3.进去之后选"产品列表" 4.在产品列表里选STM32微控制器软件,直接点下图标号2,不要点左边的加号 5.进去 ...

  4. python五种调试或排错的方法

    1.print,直接打印,比较简单而且粗暴   在代码中直接输入print+需要输出的结果,根据打印的内容判断即可   2.assert断言,很方便,测试人员常常在写自动化用例的时候用的比较多   如 ...

  5. 1. CMake 系列 - 从零构建动态库和静态库

    目录 1. 文件目录结构 2. 库文件源代码 3. 编译生成库文件 1. 文件目录结构 首先创建如下目录结构: └── lib ├── build # ├── CMakeLists.txt └── s ...

  6. 『审慎』.Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历

    异步Task简单介绍 本标题有点 哗众取宠,各位都别介意(不排除个人技术能力问题) —— 接下来:我将会用一个小Demo 把 本文思想阐述清楚. .Net 4.0 就有了 Task 函数 —— 异步编 ...

  7. .Net 事件总线之Autofac解耦

    事件总线是通过一个中间服务,剥离了常规事件的发布与订阅(消费)强依赖关系的一种技术实现.事件总线的基础知识可参考圣杰的博客[事件总线知多少] 本片博客不再详细概述事件总线基础知识,核心点放置使用Aut ...

  8. 金三银四,如何征服面试官,拿到Offer

    又到了茶余饭后的时间,想想写点什么,掐指一算,噢呦,快到3月份了,职场的金三银四跳槽季又来了,不同的是今年比往年「冷」一些,形式更加严峻一些,大家多多少少可能都听到或看到一些信息,就是好多公司在优化裁 ...

  9. Java 在PDF文档中绘制图形

    本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等 ...

  10. 设计模式 | 抽象工厂模式(abstract factory)

    定义: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类. 结构:(书中图,侵删) 这个图相对来说有一点点复杂,其实就是在工厂方法模式的基础上做了一些扩展,工厂方法模式只用于生成一种 ...