1概述

1.1应用场景

尽管互联网高速发展,互联网软件也随之越来越多,但桌面应用程序在某些领域中还是不可替代,如MIS,ERP,CRM等软件产品,同时,这类软件均包括一些通用的功能,如:与数据库操作,日志管理,权限管理等

本框架指在解决这些问题,并将通用的功能抽离并实现.使在开发过程中,将更多的精力放在业务逻辑

1.2面向对象

Net程序开发员

1.3开发环境

开发环境

描述

VS2012或以上

整个框架只有此一个解决方案.Net类库版本是4.0

EntityFramework

版本6.0

MySql数据库

版本是5.6

SQLite数据库

版本是1.0.98.0

DevExpress第三方控件

版本是12.2,可自行升级至更高版本

注:所有项目的目标平台建议选择:x86

1.4框架亮点

l 基于EntityFramework+Repository模式开发,完全ORM开发.通过配置Config文件,可切换不同数据库

n 检索数据全部通过QueryModel类,避免出现检索方法参数过多.检索方式基于Linq语法,简单高效

u 引入Specification模式

u 可编写Linq语法Where条件

n 采用双Model模式,Entity类用于DAL层操作数据,Model类用于UI层页面展示

l 主界面支持2种顶部菜单,包括MenuBar普通菜单和Ribbon类型菜单,同时支持3种导航菜单,分别是Accordion,Tree和TabPage

Riibon+Accordion模式

Ribbon+Tree模式

MenuBar+Tabpage模式

l 多语言,包括英文,中文简体,中文繁体

n 注:语言包可自行编辑,已提供编辑器

l 换肤,支持多达60种皮肤

n 换肤包括2种功能,包括系统样式和系统皮肤,分别从Ribbon菜单的如下位置切换

l 框架数据可通过WebAPI和WebService两种方式被第三方软件使用

n 调用代码如下所示

l 基础设置模块,包括系统选项,编码规则等

详见2.1介绍

l 通用权限模块,可精确至按钮级别

详见2.2介绍

l WinForm常用业务场景示例

详见2.3介绍

2功能模块

2.1基础设置

2.1.1元数据

描述

l 左侧Grid控件,展示辅助编码类型.暂不提供对辅助编码类型编辑

l 右侧Grid控件,展示辅助类型对应的辅助编码,可增删改

2.1.2系统选项

描述

l 每个编辑控件对应选项表中一个选项

l 设置完成后,点击保存,实现对选项的修改

l 注:暂不提供对选项的新增和删除

2.1.3系统语言包

暂未提供

2.1.4编码规则

描述

l 提供对编码的新增,删除和修改操作

n 编码前缀:常量.任意字符串

n 中间值类型:年月日,EAN13和无.其中,EAN13用于生成条码使用

n 中间值长度:6和8.针对年月日,格式:yyMMdd和yyyyMMdd

n 序号长度:顺序号长度

2.1.5计量单位

描述

l 提供对计量单位的批量增删改查功能

n 批量操作的典型示例

2.2基础数据

2.2.1部门信息

描述

l 顶部部分是工具栏,提供对部门的增删改查

n 部门支持无限分级

l 中间是数据检索区域,可录入部门名称和负责人,提供检索条件

l 提供对单条部门新增/编辑功能,如下图所示

2.2.2用户信息

描述

l 顶部是工具栏,提供对用户的增删改和初始化密码

n 提供用户条码生成和打印功能.选中用户,点击打印条码,弹出如下图所示页面,可直接打印

l 中部左侧是部门树状结构列表,右侧为选中部门下用户列表

l 提供对单条用户新增和编辑功能,如下图所示

2.2.3功能模块

描述

l 顶部是工具栏,提供对功能模块的增删改功能

l 中间是数据展示区域,可直接编辑,点击保存即可

n Grid控件批量操作数据典型示例

2.2.4权限信息

描述

l 顶部是工具栏,提供对权限的增删改功能

l 中间是数据展示区域,可直接编辑,点击保存即可

2.3.5角色/权限

描述

l 提供对角色数据的新增,删除和修改.如上图左侧显示

l 提供对角色/用户关系的数据维护.如上图右侧显示.用户根据部门分组,最右侧是此角色中的用户列表

l 提供对角色/功能模块的数据维护,即某一角色所拥有的对某功能模块的操作权限,如:访问,新增,修改,删除等.权限可控制至按钮级别

l 注:暂不支持数据权限

2.3实验室

2.3.1微软控件

描述

l 提供在日常项目开发过程中,各功能点整理和总结

n 提供对字符串的加密/解密,转义等功能.如下图所示

n 时区转换

n C#代码是支持goto语句的,如下图所示.但不推荐使用

n 调用Com对象.此项技术用于使用C#制作Com对象,被其他开发工具使用.如:VB,PB,Delphi等

n 条码打印.此示例是使用DevExpress提供的打印功能,通过其自带的打印模板,实现打印功能.如下图所示

n 截屏(全屏),用于将整个屏幕截取,生成图片文件.适用于系统出现异常,需要将数据发送给系统管理员

n 异步示例.包括单条和多条.是基于BackgroundWorker控件,直接查看示例即可.如下图所示

n 打开摄像头.使用第三方插件,打开摄像头,并截取屏幕

n 源码预览.使用第三方控件,实现源码预览.支持文件类型包括:sql,cs,vb和xml.如下图所示

n 生成二维码.是基于ZXing.net组件开发而成.可生成一维码(条形码和二维码).详细示例如下图所示

n 截取页面.是根据Url地址,将其内容生成图片.代码比较简单,可以示例中自行实验

n 生成验证码.是指生成图片验证码.如下图所示

n Tree控件帮助页面.是指将数据以树状形式展示,只需传入参数,页面是公用的

n Grid控件帮助页面.是指将数据以Grid网格形式展示,只需传入参数,页面公用

n CheckBoxList帮助页面,是指将数据以复选框列表形式展示,只需传入参数,面用公用

n 附件列表.是指在WinForm项目,可以打开各种文件预览.包括Office,Html,Xml等

u 注:暂不支持cad文件预览

u 双击预览文件

预览Excel文件

预览Flash文件

预览Gif文件

预览Mht或Html文件

预览PPT文件

预览SQL文件

预览Visio文件

预览Word文件

预览Xml文件

预览图片文件

预览Pdf文件

n 附件预览(Web)

描述

此附件预览功能,是针对Web站点件操作,而不是本地.可实现对网络文档的管理,如上传和下载等

u 文档下载如下所示

n 简易服务器

描述:即通过代码在系统搭建一个仿IIS的服务器(利用HttpListener类),实现不同应用程序间的通信服务

2.3.2Dev表单控件

描述

l 提供对Dev表单的示例

n 弹出提示框,包括3种

n MSN提示:在屏幕右下角弹出提示信息,仿MSN效果

n 打印设计器,提供打印设计器

2.3.3DevGrid控件

l 此示例主要针对Grid控件的综合示例.包括分页,多表头,各种栏目类型,父子表,Layout视图,表达式

n 分页

注:此功能的分页,是数据库分页,不是内存分页

n 多表头

注:支持汇总合计

n 栏目类型

注:常用的栏目类型均支持,包括:复选框,日期,图片列表,按钮,进度条,RadioButton列表等

n 父子表

n Layout视图

n 表达式

2.3.4Dev图表控件

描述

l 取自官方Demo,整合进来.此示例还包括:PivotGridControl控件使用

2.3.5Dev报表控件

暂未实现

2.3.6Dev日程控件

暂未实现

5FAQ

1. COM组件引用

项目引用若干COM组件,包括PDF文档预览组件,Office文档预览组件,视频播放组件.框架本身已提供安装程序在\packages\Tools\文件夹中(暴风影音安装程序未提供)

2. SQLite数据库如何使用

注1:所有的C#项目的目标平台,建议是x86,即使是64位开发环境中

注2:需要在客户端安装SQLite驱动,可以官方下载,注:本框架使用的是Net4.0的驱动.文件名称是: sqlite-netFx40-setup-bundle-x86-2010-1.0.98.0.exe

6后记

此版本是3.1,在2.0基础上整合,引用DevExpress控件,重构大量代码,稳定性大大增强.同时,也引入若干Winform应用场景下的示例

下载地址

在线帮助

Navi.Soft31.WinForm框架(含下载地址)的更多相关文章

  1. Navi.Soft31.Mobile框架(含下载地址)

    1概述 1.1应用场景 互联网的发展,使用基于Web的软件异军突起,目前占据着相当大的市场份额,而手机,平板电脑等移动端设备的频繁使用,使移动端的软件快速发展,逐步有超越Web软件的趋势 移动软件中, ...

  2. Navi.Soft31.微信WinForm框架(含下载地址)

    1.概述 1.1应用场景 微信的出现,改变了我们日常生活.而微信公众平台的出现,使我们每个人都可能成为一个品牌,微商的普及.微店越来越多.越来越多的人,借助微信公众平台,实现了自己的梦想 在此背景环境 ...

  3. Navi.Soft31.开发工具(含下载地址)

    1系统简介 1.1功能简述 在软件开发过程中,我们需要经常对字符串.文件.数据库操作.有时需要浏览Json格式串,有时需要浏览Xml格式串,有时需要读取txt或excel文件,有时需要对数据库访问.本 ...

  4. Navi.Soft31.WebMVC框架(含示例地址)

    1概述 1.1应用场景 互联网高速发展,互联网软件也随之越来越多,Web程序越来越被广泛使用.它部署简单,维护方便,深得众多软件公司使用 Bootstrap前端框架,是最近非常流行的框架之一.它简洁, ...

  5. iOS开发之常用第三方框架(下载地址,使用方法,总结)

    iOS开发之常用第三方框架(下载地址,使用方法,总结) 说句实话,自学了这么久iOS,如果说我不知道的但是又基本上都摸遍了iOS相关知识,但是每次做项目的时候,遇到难一点的地方或者没试过的东西就闷了. ...

  6. ArcGIS Desktop 10.1+ArcEngine10.1完全破解安装教程(含下载地址+亲测可用!)

    最近在二次开发中用到了VS2010+ArcGIS的二次开发模式,因为之前的某些原因,对ArcGIS的接触甚少.初次安装也遇到了很多问题,这里做一个总结. 系统环境 win732位操作系统 需要文件 ( ...

  7. Navi.Soft31.WinCE框架.开发手册(含下载地址)

    1.概述 1.1应用场景 随着物联网的普及,越来越多的制造商对货品从原料配备,加工生产,销售出库等环节的要求和把控越来越高.在此情况之下,传统的ERP软件已经无法满足现有的操作流程. 移动设备的应用, ...

  8. Navi.Soft31.代码生成器(含下载地址)

    1系统简介 1.1功能简述 在Net软件开发过程中,大部分时间都是在编写代码,并且都是重复和冗杂的代码.比如:要实现在数据库中10个表的增删改查功能,大部分代码都是相同的,只需修改10%的代码量.此时 ...

  9. arcgis 10.2 安装教程(含下载地址)

    http://jingyan.baidu.com/article/fc07f98911b66912ffe5199b.html 2013年7月,Esri即将推出全新的版本——ArcGIS 10.2,那些 ...

随机推荐

  1. php分享二十一:mysql语句

    一.Join语法概述 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. LEFT JOIN(左连接) RIGHT JOIN(右连接 ...

  2. Java数据结构和算法(六):前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...

  3. 对于在Android Studio 的 build.gradle 中的默认applicationId 要不要写呢?

    起因 刚完成一个版本的开发.刚上Google play 就有用户反映无法更新应用.错误代码为:Can't install app "****" can' be installed. ...

  4. MySQL 自定义函数CREATE FUNCTION实例

    分享一个MySQL 自定义函数CREATE FUNCTION的实例.mysql> delimiter $$mysql> CREATE FUNCTION myFunction-> (i ...

  5. Newton差分插值性质证明(均差与差分的关系证明)

  6. python *和**的用法

    1.使用场景 *和**用在函数参数列表中 2.*作函数参数 以列表的形式提供参数 def foo(*args): for arg in args: print(arg) foo(1, 2, 3) 运行 ...

  7. lua 的 table 处理

    lua 的整体效率是很高的,其中,它的 table 实现的很巧妙为这个效率贡献很大. lua 的 table 充当了数组和映射表的双重功能,所以在实现时就考虑了这些,让 table 在做数组使用时尽量 ...

  8. Mac下用brew搭建PHP(LNMP/LAMP)开发环境

    Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...

  9. DIOCP开源项目-DIOCP3直接发送对象,帮你处理粘包问题

    该DEMO演示,如何在客户端与服务端之间直接传递TStream对象,让你专注于处理数据逻辑,可以忽略处理网络传输间粘包的问题. 上面由服务端向所有的客户端推送一个消息TMemoryStream对象(该 ...

  10. java阻塞队列与非阻塞队列

    在并发编程中,有时候需要使用线程安全的队列.如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法. //使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入 ...