昨天听完永康对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框架手册(一)的更多相关文章

  1. 一次框架性能的比较,引起了我对搭建web框架的兴趣

    背景 一次无意的访问,点击到了一个专门做PHP性能测试的网站,看这里PHP Benchmarks. 在里面发现了框架性能测试的结果,发现Laravel的框架性能尽然是最低的.瞬间受到了一万点的暴击,谁 ...

  2. 用Python手把手教你搭建一个web框架-flask微框架!

    在之前的文章当中,小编已经教过大家怎么搭建一个Django框架,今天我们来探索另外的一种框架的搭建,这个框架就是web框架-flask微框架啦!首先我们带着以下的几个问题来阅读本文: 1.flask是 ...

  3. python笔记-19 javascript补充、web框架、django基础

    一.JavaScript的补充 1 正则表达式 1.1 test的使用 test 测试是否符合条件 返回true or false 1.2 exec的使用 exec 从字符串中截取匹配的字符 1.3 ...

  4. 【原】Go语言及Web框架Beego环境无脑搭建

    本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位windows系统安装使用 下载地址: https: ...

  5. 第三篇 基于.net搭建热插拔式web框架(重造Controller)

    由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并且http上下文不支持跨域,所以我们要重造一个contro ...

  6. 第二篇 基于.net搭建热插拔式web框架(沙箱的构建)

    上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章很多人看了以后,都表示不解,觉得不知道我到底 ...

  7. 基于.net搭建热插拔式web框架(实现原理)

    第一节:我们为什么需要一个热插拔式的web框架? 模块之间独立开发 假设我们要做一个后台管理系统,其中包括“用户活跃度”.“产品管理”."账单管理"等模块.每个模块中有自己的业务特 ...

  8. net搭建热插拔式web框架

    net搭建热插拔式web框架(重造Controller) 由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并 ...

  9. net搭建热插拔式web框架(沙箱的构建)

    net搭建热插拔式web框架(沙箱的构建) 上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章 ...

随机推荐

  1. Java内部类final语义实现

    本文描述在java内部类中,经常会引用外部类的变量信息.但是这些变量信息是如何传递给内部类的,在表面上并没有相应的线索.本文从字节码层描述在内部类中是如何实现这些语义的. 本地临时变量 基本类型 fi ...

  2. wnmp环境搭建

    windows下配置nginx+php环境 刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是“引擎x”,一般引“擎代”表了性能,而“x”大多出现是表示“xtras(额外的效果) ...

  3. MySql 修改列的注释信息的方法

    1. 问题     已经有很多数据的按照业务逻辑分表的一系列表修改一个字段(类型,如-1:默认值,1:表示'人员id',2:表示'公司id')的注释2. 解决方法     1> 使用alter ...

  4. Struts 2 数据校验要用到的类和两种校验方式以及一些校验问题的解决

    通过继承ActionSupport类来完成Action开发,ActionSupport类不仅对Action接口进行简单实现, 同时增加了验证.本地化等支持 .真实开发中自定义Action都需要继承该类 ...

  5. react动画难写?试试react版transformjs

    简介 transformjs在非react领域用得风生水起,那么react技术栈的同学能用上吗?答案是可以的.junexie童鞋已经造了个react版本. 动画实现方式 传统 web 动画的两种方式: ...

  6. iOS角度与弧度转换

    在iOS中图片的旋转单位为弧度而不是角度,所以经常会在两者之间进行转换 弧度转角度 #define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / ...

  7. HotApp小程序统计,第一个专业的微信第三方小程序统计工具

    1.什么是HotApp小程序统计 HotApp小程序统计是第一个微信第三方小程序统计工具,就像做android 和 ios开发的人知道友盟统计一样,小程序也需要有个统计工具. 通过这个工具,可以知道小 ...

  8. Appfuse:第一张表维护

    1. 建立表userinfo 列名 描述 UserID 主键.自增 UserName 用户名 Pwd 密码 CreateDate 创建日期 2. 在src/main/resources目录下增加文件h ...

  9. linux php编译安装

    1.下载php安装包 http://cn2.php.net/get/php-5.5.36.tar.gz/from/this/mirror 默认情况下Nginx和PHP他俩之间是一点感觉没有的.Apac ...

  10. PostgreSql性能测试

    # PostgreSql性能测试 ## 1. 环境+ 版本:9.4.9+ 系统:OS X 10.11.5+ CPU:Core i5 2.7G+ 内存:16G+ 硬盘:256G SSD ## 2. 测试 ...