(转)第一次发博客-说说我的B/S开发框架(asp.net mvc + web api + easyui)
原文地址: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)的更多相关文章
- 第一次写博客,关于前端开发deMVC在js中的应用
对前端MVC MVC分别是model.view.controller的缩写,模型.视图.控制器.这些更加偏向于后台,在以前MVC是只属于后台的.当然随着技术的进步,前端的大牛们将后台的一些东西应用于前 ...
- 第一次写博客Poj1044
Date bugs Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3005 Accepted: 889 Descript ...
- Beta版本——第一次冲刺博客
我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...
- C蛮的全栈之路-node篇(二) 实战一:自动发博客
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...
- HDU 2064 菜鸡第一次写博客
果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚 ...
- Linux 桌面玩家指南:05. 发博客必备的图片处理和视频录制神器
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 关于如何使用Microsoft Word发博客
关于如何使用Microsoft Word发博客 PS:以Microsoft Word 2010为例作具体操作,实际上Microsoft Word 2007也可以完成该功能,略有差异,但是只能是20 ...
- vscode发博客插件更新v0.1.0(可能会相对好用点吧)
距离上一次编写这个vscode在博客园发博客的插件已经过去好久了,那个时候vscode插件的功能也没有那么强大,期间有人提出问题来,也有人提出建议来,我一直没有抽出时间来维护,深感抱歉,直到有人加到我 ...
- 第一次的博客-简单的Markdown语法
第一次开通博客 从网上寻找了许多写博客的方法 我觉得对于我来说还是使用 Markdowm 比较容易一些 用我的第一篇博客来记一下一些比较简单常用的Markdown语法 本文参考来源Markdown语法 ...
随机推荐
- Java文件压缩优化工具(ProGuard) 软件介绍 Soft content
ProGuard是一款免费的Java类文件的压缩.优化.混肴器.它可以帮你删除没用的类,字段,方法与属性,使字节码最大程度地优化,使用简短且无意义的名字来重命名类.字段和方法 .目前eclipse已经 ...
- Zabbix通过进程名监控进程状态配置详解
Zabbix通过进程名监控进程状态配置详解 有时候我们只能通过进程名监控一个进程是否停掉了,因为有的进程并没有对外提供端口号,以下记录了下详细步骤,通过这个示例会学到很多zabbix核心配置相关的东西 ...
- MySQL中创建用户与授权
参考地址:http://blog.csdn.net/gebitan505/article/details/51726649 一.创建用户(使用root用户登录进入mysql命令行) create us ...
- Java-Runoob:Java switch case
ylbtech-Java-Runoob:Java switch case 1.返回顶部 1. Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等 ...
- spring data mongodb 操作
xml配置(mongo集群方式): <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=& ...
- 1126 Eulerian Path
题意:若图是连通图,且所有结点的度均为偶数,则称为Eulerian:若有且仅有两个结点的度为奇数,则称为semi-Eulerian.现给出一个图,要我们判断其是否为Eulerian,semi-Eule ...
- 从javascript的循环问题来看待闭包本质
第一次接触这个问题还是在我刚开始学js的时候,当时就是一头雾水,时隔一年多了,突然又想起了这个问题,在这个春气盎然的周末,我就坐下来研究下并把结果和大家分享下: 先看代码:demo.html < ...
- minerd.exe 处理
:top TASKKILL /F /IM "minerd.exe" Goto top and then searching the file system for minerd.e ...
- ubuntu12上部署Django1.8.4+uwsgi+nginx超级详细流程配置到云服务器
环境: 系统:ubuntu12,系统自带默认有python2.7 框架:Django1.8.4,需要python2.7以上才能支持 前言: 用户浏览器发送http请求->nginx(静态文件 ...
- 配置Linux接收H3C路由器日志
(1)H3C Device上的配置 # 开启信息中心. <Sysname> system-view [Sysname] info-center enable # 配置发送日志信息到IP地 ...