原文地址:http://www.cnblogs.com/xqin/archive/2013/05/29/3105291.html

前言

这些年一直在.net下做企业web系统开发,前前后后经历的不同的开发框架有五六个之多,一直想有一个比较简单灵活顺手的BS开发框架,网上也没有找到一个比较合适的能应用于企业系统开发的。去年辞职在家的时候,网上找了些东西,按照自己的想法实现一些东西,慢慢的形成现在的B/S开发框架。想接下来慢慢的写出来和大家共享下,这里面很多都是我自己的想法,并没有什么高深的设计模式,欢迎大家拍砖。

框架愿景

1、提高开发效率(尽量少的配置,尽量少写代码,尽量简单)
2、考虑较好的拓展性及winform及手机端接入的可能性(所有的数据访问均采用 ajax+ restful webservice实现)
3、数据访问层比较灵活高效,分页查询,支持多数据库
4、有一个不错不的UI
5、一些代码可以自动生成

技术选型

采用.net4.0作为基础技术平台,原来是采用.net4.5的,但是后来发现.net4.5不支持Windows Server2003,所以又降为.net4.0。
  1、asp.net mvc 4.0 用于提供页面服务
  2、asp.net web api 用于提供restful数据服务
  3、fluentData 新型轻量级ORM模型用于数据持久方案
  4、log4net 作为日志组件
  5、json.net 作为序列化组件
  6、文档方案(均为开源) 导出:Excel2007使用EPPlus、Excel2003使用NPOI、Word2003/2007使用DocX、Pdf使用Gios  压缩:Ionic.Zip、Ziplib
  7、js库为jquery
  8、UI选用jquery easyui 1.3.2
  9、选knockoutjs为前端mvvm框架
10、css框架选用960gs
11、报表采用stimulsoft report(商业)
12、图形分析采用fusioncharts

简单实现图

框架分层

一、框架分层截图如下,主要是分了以下几层:
1、Zephyr.Core框架核心层:主要是一些服务基类,日志处理,参数处理等。
2、Zephyr.Data数据处理层:数据库操作类,引入FluentData并做了少量的修改以适应
3、Zephyr.Generator代码生成器:目前只能生成实体类及服务类
4、Zephyr.Utils工具类:里面包含了很多东西如转换函数,文档处理加密解密等等,我不喜欢引入太多的dll所以很类库我就直接加在它里面了。
5、Zephyr.WorkFlow工作流引擎:参照JBPM思想只实现了核心功能

二、框架的使用
直接在项目中引入框架的dll即可,早期的很多项目都是参照petshop分了很多的层,这里我不打算分太多的层,目的只有一个,要使框架使用起来尽量的简单。就直接使用Model 、View、Controller这mvc自带的三层,web api同mvc。其中Model层是广义的Model,其中包括数据实体的定义及数据服务。数据服务可以看做我们传统三层中的dal或bll + dal的。框架的作用主要在服务层,相当于服务层只要继承了框架的服务基类即可拥有所有我预定义的方法。所以后台分层只有mvc三层。
前台则采用mvvm的开发模式,把前端也分为三层分别为Model、View、ViewModel三层。Model即为后台传入的数据,View即为Razor页面,ViewModel则为一段处理页面与数据交互的脚本对象。这样一来,只要页面差不多ViewModel就可以直接重用了。

好了先写到这吧,第一次写博客,写的很慢,接下来我准备写以下几篇:
1、利用zephyr框架的登陆的实现
2、系统管理详细开发讲解(好多)
3、典型业务页面开发讲解
4、框架的功能及实现

先给大家截几开发出来的效果图,接下来的博客中我会详细讲解我的实现。

查询页面:

编辑页面:

系统管理:

(转)第一次发博客-说说我的B/S开发框架(asp.net mvc + web api + easyui)的更多相关文章

  1. 第一次写博客,关于前端开发deMVC在js中的应用

    对前端MVC MVC分别是model.view.controller的缩写,模型.视图.控制器.这些更加偏向于后台,在以前MVC是只属于后台的.当然随着技术的进步,前端的大牛们将后台的一些东西应用于前 ...

  2. 第一次写博客Poj1044

    Date bugs Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3005   Accepted: 889 Descript ...

  3. Beta版本——第一次冲刺博客

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...

  4. C蛮的全栈之路-node篇(二) 实战一:自动发博客

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  5. HDU 2064 菜鸡第一次写博客

    果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚 ...

  6. Linux 桌面玩家指南:05. 发博客必备的图片处理和视频录制神器

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  7. 关于如何使用Microsoft Word发博客

    关于如何使用Microsoft Word发博客   PS:以Microsoft Word 2010为例作具体操作,实际上Microsoft Word 2007也可以完成该功能,略有差异,但是只能是20 ...

  8. vscode发博客插件更新v0.1.0(可能会相对好用点吧)

    距离上一次编写这个vscode在博客园发博客的插件已经过去好久了,那个时候vscode插件的功能也没有那么强大,期间有人提出问题来,也有人提出建议来,我一直没有抽出时间来维护,深感抱歉,直到有人加到我 ...

  9. 第一次的博客-简单的Markdown语法

    第一次开通博客 从网上寻找了许多写博客的方法 我觉得对于我来说还是使用 Markdowm 比较容易一些 用我的第一篇博客来记一下一些比较简单常用的Markdown语法 本文参考来源Markdown语法 ...

随机推荐

  1. 为什么我的 FastAdmin 慢?

    为什么我的 FastAdmin 慢? 排查流程 询问 demo.fastadmin.net 是否慢,官方 demo 安装了 80% 的插件. 开发时一般都是打开 debug 配置,上线要把 debug ...

  2. [转]HTTP 协议中的 Transfer-Encoding

    本文作为我的博客「HTTP 相关」专题新的一篇,主要讨论 HTTP 协议中的 Transfer-Encoding.这个专题我会根据自己的理解,以尽量通俗的讲述,结合代码示例和实际场景来说明问题,欢迎大 ...

  3. (转)java.lang.RuntimeException: Missing type parameter

    java.lang.RuntimeException: Missing type parameter (2015-04-07 14:35:51)   分类: 技术 程序中用到了gson的new typ ...

  4. Python中if __name__ == 'main' 的作用和原理

    参考网址:http://mp.weixin.qq.com/s/kxxhOQ7KB_VMwWeUENX7OQ t1.py: print('Loving Python') def main(): prin ...

  5. 工具软件集合 Adobe AE PS Pr CC 2018 2019 破解教程

    来源https://mp.weixin.qq.com/s/zeq1sTmaPsKt7Bsok0Ldrg(若链接失效,请关注软件安装管家公众号) 相关链接 Office 2019破解教程 Adobe 2 ...

  6. cs231n神经网络 常用激活函数

    CS231n课程笔记翻译:神经网络笔记1(上) 一.常用激活函数 每个激活函数(或非线性函数)的输入都是一个数字,然后对其进行某种固定的数学操作.下面是在实践中可能遇到的几种激活函数: ——————— ...

  7. ndnarry元素处理

    元素计算函数 ceil(): 向上最接近的整数,参数是 number 或 array floor(): 向下最接近的整数,参数是 number 或 array rint(): 四舍五入,参数是 num ...

  8. zabbix监控MySQL部署实战

    1.部署zabbix监控. 1.1 建用户组和用户 groupadd zabbix useradd -d /home/zabbix -g zabbix -m zabbix passwd zabbix ...

  9. MySQL备份还原之一mydumper

    1)源码编译安装 1.下载 mydumper源码 2.解压 [mysql@localhost ~]$ tar -xvf mydumper-0.9.1.tar mydumper-0.9.1/CMakeL ...

  10. 从cocos2d-x-2.x到cocos2d-x-3.x: lua项目配置

    cocos2dx-x3.0的正式版出来也有一段时间了,现在最新的版本是到了3.2alpha,和2.x系列相比,能够找到的相关资料除了官网上的wiki,其他的也不见得多,遇到的一些和2.x的差异和问题在 ...