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. 学习笔记1--响应式网页+Bootstrap起步+全局CSS样式

    一.学习之前要了解一些背景知识: 在2g时代,3g时代,4g时代,早期的网页浏览设备,功能机,智能机.(本人最喜欢的透明肌,和古典黑莓机) 1.什么是响应式网页? Responsive Web Pag ...

  2. blog4go.go

    package blog4go import ( "bufio" "errors" "fmt" "io" "o ...

  3. 【bzoj 2916】[Poi1997]Monochromatic Triangles

    题目描述        空间中有n个点,任意3个点不共线.每两个点用红线或者蓝线连接,如果一个三角形的三边颜色相同,那么称为同色三角形.给你一组数据,计算同色三角形的总数.          输入 第 ...

  4. 【爆料】-《英博夏尔大学毕业证书》BPP一模一样原件

    英博夏尔大学毕业证[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&a ...

  5. Hibernate-ORM:02.Hibernate增删改入门案例

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本笔者使用的是Idea+mysql+maven做Hibernate的博客,本篇及其以后都是如此! 首先写好思路 ...

  6. Netty实现高性能IOT服务器(Groza)之精尽代码篇中

    运行环境: JDK 8+ Maven 3.0+ Redis 技术栈: SpringBoot 2.0+ Redis (Lettuce客户端,RedisTemplate模板方法) Netty 4.1+ M ...

  7. 用原生JS从零到一实现Redux架构

    前言 最近利用业余时间阅读了胡子大哈写的<React小书>,从基本的原理讲解了React,Redux等等受益颇丰.眼过千遍不如手写一遍,跟着作者的思路以及参考代码可以实现基本的Demo,下 ...

  8. java游戏开发杂谈 - 有限状态机

    在不同的阶段,游戏所运行的逻辑.所显示的界面,都是不同的. 以五子棋举例,游戏开始.游戏中.胜负已分,对应的界面和逻辑都不同. 在游戏中,又分为:自己下棋.对方下棋.游戏暂停.悔棋等多个状态. 再比如 ...

  9. Redis持久化方式的选择

    本文将介绍Redis持久化的两种方式:快照持久化和AOF持久化,并对两种方法进行分析和对比,方便在实际中做出选择. 持久化 什么是持久化 Redis所有数据保存在内存中,对数据的更新将异步地保存到磁盘 ...

  10. 【Android Studio安装部署系列】十七、Android studio引用第三方库、jar、so、arr文件

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 在Android开发过程,经常需要用到第三方库以及jar.so.arr文件,那么如何引用到项目中呢?下面简单介绍下. 引用第三方库 ...