『练手』001 Laura.SqlForever架构基础(Laura.XtraFramework 的变迁)

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

 

Laura.XtraFramework 到底是 做什么的?

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

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

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

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

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

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

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

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

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

 

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

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

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

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

>是的。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 一写再写,确实 是 面试 时的 被逼无奈:

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

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

>单凭 Laura.ComputeLaura.SerializationLaura.WebControlLaura.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                                                                                                                                                                                                                                                                                                                   

posted on 2014-03-17 14:24  InkFx  阅读(1221)  评论(0编辑  收藏  举报