搭建web框架手册(一)
昨天听完永康对EASYUI的介绍后终于明白了优秀的UI框架就是第一生产力,过去自己一直沉浸在后端代码中,完全忽视了前端的生产力交互,总觉得界面漂亮就是生产力,其实大错特错,真正的具有高效生产力的界面其实是像EASYUI那样不是很漂亮但是各种下拉表格,一个屏幕多级的操作才是高效的生产。高效的生产是对用户的环境有要求,并非像网页那样中看不中用。人类有着悠久的略比淘汰良币的历史,大部分的人都不愿学习新东西,习惯按照习惯的操作来生活,所以对于什么是好的真的没有一个真理。用户习惯的,高效的就是好的。可以快速响应实现客户的各种需求的就是优秀的,对于客户来讲,最少的步骤,最简单的界面和完整的操作功能就是生产力。其他的即便再漂亮,如果满足不了用户生产力的需要,管理软件也是没有用的。
今天着手搭建一套自己公司将来使用的框架。
该框架的特点:
开源:该框架大量使用开源的组件来构建,本身也完全开源;
先进:使用ASP.NET MVC及相关的组件最新版本,最新特性;
该框架的要求是:
组件式:基于Autofac的Ioc,开发人员根据需求组合各种组件进行项目开发;
安全:用户、角色、功能、验证、授权模块,实现原子级别操作的安全性;
UI:系统需要自带EASYUI支持后台快速开发,Bootstrap支持响应式,knockout 实现MVVM
日志:基于NLog和日志管理模块,声明式记录每个操作的成功或失败,后台进行业务日志审计和系统日志查看。
数据层:基于Entity Framework Code First实现ORM,快速实现增删改查等操作。
业务层:使用先进的DDD领域驱动开发建立领域模型,使用充血模型,有效地组织和重用业务逻辑
框架层次:
IE、Chrome、微信、QQ(最高层的用户界面)
EasyUI,Bootstrap,knockout
Seeing Web(基于ASP.NET MVC的框架)
Seeing Domain
Seeing Repositories
Seeing Data
Entity Framework
Seeing Core
Nlog,Autofac(最底层的支撑)
开始搭建
首先创建一个空白的工程Seeing.Framework
接下来添加一个基于.net framework 4.5.1版本的C#类库 Seeing.Core
打开nuget,连续安装nlog和autofac和autofac.configuration
接下来添加一个基于MVC5的ASP.NET MVC工程。
打开nuget,连续安装nlog和nlog.config,autofac和autofac.configuration。
安装完成后配置nlog将日志输出到${basedir}/logs/${shortdate}.log输出文件
配置完成后增加autofac的配置,我使用json方式来配置。配置的时候才发现其实自己并不熟悉autofac,于是花了一天时间把autofac官网文档读了一遍。写了几个测试的demo后渐渐的熟悉了起来。
接下来在Seeing.Core工程中注入HttpModule,根据经验我创建了一个IAppHttpModule,然后继承IHttpModule实现了一个加载器,该加载器会在系统每次请求的时候加载所有通过autofac注入的模块。
今天就实现了这些。
搭建web框架手册(一)的更多相关文章
- 一次框架性能的比较,引起了我对搭建web框架的兴趣
背景 一次无意的访问,点击到了一个专门做PHP性能测试的网站,看这里PHP Benchmarks. 在里面发现了框架性能测试的结果,发现Laravel的框架性能尽然是最低的.瞬间受到了一万点的暴击,谁 ...
- 用Python手把手教你搭建一个web框架-flask微框架!
在之前的文章当中,小编已经教过大家怎么搭建一个Django框架,今天我们来探索另外的一种框架的搭建,这个框架就是web框架-flask微框架啦!首先我们带着以下的几个问题来阅读本文: 1.flask是 ...
- python笔记-19 javascript补充、web框架、django基础
一.JavaScript的补充 1 正则表达式 1.1 test的使用 test 测试是否符合条件 返回true or false 1.2 exec的使用 exec 从字符串中截取匹配的字符 1.3 ...
- 【原】Go语言及Web框架Beego环境无脑搭建
本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位windows系统安装使用 下载地址: https: ...
- 第三篇 基于.net搭建热插拔式web框架(重造Controller)
由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并且http上下文不支持跨域,所以我们要重造一个contro ...
- 第二篇 基于.net搭建热插拔式web框架(沙箱的构建)
上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章很多人看了以后,都表示不解,觉得不知道我到底 ...
- 基于.net搭建热插拔式web框架(实现原理)
第一节:我们为什么需要一个热插拔式的web框架? 模块之间独立开发 假设我们要做一个后台管理系统,其中包括“用户活跃度”.“产品管理”."账单管理"等模块.每个模块中有自己的业务特 ...
- net搭建热插拔式web框架
net搭建热插拔式web框架(重造Controller) 由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并 ...
- net搭建热插拔式web框架(沙箱的构建)
net搭建热插拔式web框架(沙箱的构建) 上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章 ...
随机推荐
- 【转译】加入ZigBee联盟,共画物联网的未来
Zigbee联盟是物联网全球革命的领导者,创造了随心控制的时代.Zigbee简化了无线产品的整合.加快了市场化,同时让那些希望引入高能效的无线控制的厂商,降低了成本和风险.我们的联盟成员在开放的全球环 ...
- Linux下安装Hadoop完全分布式(Ubuntu12.10)
Hadoop的安装非常简单,可以在官网上下载到最近的几个版本,最好使用稳定版.本例在3台机器集群安装.hadoop版本如下: 工具/原料 hadoop-0.20.2.tar.gz Ubuntu12.1 ...
- Git 相关总结
Git 优秀在线教程 廖雪峰-史上最浅显易懂的Git教程!
- Tomcat数据源(DataSource)简介
JDBC2.0提供了javax.sql.DataSource接口,它负责建立与数据库的连接,在应用程序中访问数据库时不必编写连接数据库的代码,可以直接从数据源获得数据库连接 1.数据库和连接池 在Da ...
- dubbo连接zookeeper注册中心因为断网导致线程无限等待问题【转】
最近维护的系统切换了网络环境,由联通换成了电信网络,因为某些过滤规则导致系统连不上zookeeper服务器(应用系统机器在深圳,网络为电信线路,zookeeper服务器在北京,网络为联通线路),因为我 ...
- RMI(远程接口调用)
1. RMI的原理: RMI系统结构,在客户端和服务器端都有几层结构. 方法调用从客户对象经占位程序(Stub).远程引用层(Remote Reference Layer)和传输层(Transport ...
- Stimulsoft入门视频
.NET框架下最全面的报表解决方案,支持多种报表导出格式,拥有简单且强大的报表引擎.本系列教程适合Stimulsoft Reports上手入门. 001 Stimulsoft Reports. ...
- Lucene的分析资料【转】
Lucene 源码剖析 1 目录 2 Lucene是什么 2.1.1 强大特性 2.1.2 API组成- 2.1.3 Hello World! 2.1.4 Lucene roadmap 3 索引文件结 ...
- iOS之在写一个iOS应用之前必须做的7件事(附相关资源)
本文由CocoaChina--不再犹豫(tao200610704@126.com)翻译 作者:@NIkant Vohra 原文:7 Things you must absolutely do befo ...
- Android Weekly Notes Issue #228
Android Weekly Issue #228 October 23rd, 2016 Android Weekly Issue #228 本期内容包括: Android 7.1的App Short ...