ExtJS4.1+MVC3+Spring.NET1.3+EF5 整合一:构建项目框架

22 篇文章 0 订阅
16 篇文章 0 订阅

修改说明:

(1).本文基于Spring.NET 1.3.2正式版,但该版本并不支持ASP.NET MVC4,目前仅有2.0支持,所以,把项目由MVC4改为MVC3,请理解。实际上,我是想使用MVC4的WEB API,这个有时间写一篇单独的文章,仅仅是在ExtJS与MVC通信的方式上不太一样而已,其他基本上一样。

(2).本来打算是以讲解主要功能为主,但自己也要用到这个项目,所以又加了几个功能。


1 项目开发环境

开发环境:Win7+VS2012

技术框架:ExtJS4.1+ASP.NET MVC3+Spring.NET1.3.2+Entity Framework5.0

数据库:SQLite

涉及到的其他技术或框架:log4net、AutoMapper

为了测试和共享方便,本文使用SQLite轻量级数据库,需要的话可以随时移植到其他关系型数据库中。

2 项目功能介绍

本人准备以开发一个中小型企业网站的主要功能来一步一步讲解,从数据持久化、业务逻辑处理,到用户展示各个环节,并解决每个环节中遇到的问题。

项目分为两大模块:前台(普通用户)、后台(管理员管理),在ASP.NET MVC中通过创建Area来实现多个模块的功能。

本文主要以开发后台演示,有时间的话我会完善前台模块的功能。

主要功能:

1) 网站以发布文章(新闻、资讯、留言等)为主,允许用户进行评论以及管理员回复;

2) 发布文章时允许上传视频、图片,并能自动扣取视频中的图片,对图片自动缩放、压缩处理;

3) 网站的另一个功能是人才招聘功能,并允许用户登记和管理员查询;

4) 后台管理时,不同的管理员具有不同的权限,以角色实现。

3 数据库结构


4 构建项目结构

先看下项目的整体结构:



此架构与传统三层相似,EF5是持久层,Dao是数据访问层,Service是服务层,Web则是表现层。简单描述如下(后文在用到的时候会详解):

EF5:使用微软最前的Entity Framework 5.0框架技术,其中会自动生成Model实体类;

IDao:数据访问层接口,仅允许服务层引用;

Dao:数据访问层接口实现,使用Spring.NET向Service层中注入;

IService:服务层接口,仅允许表现层引用;

Service:服务层接口实现,与Dao层相信,使用Spring.NET向Web层注入;

DTO:数据传递对象,用于在ExtJS与Action、Action与Service传递数据时使用。

Form:在Action中使用,类似于Model类,除了用于接受用户的请求参数以外,还封装了请求数据的有效性校验。

Utility:整个项目基础类,封装一些常用的类,在其他项目中使用时引用。

Web:表现层,这里就是ASP.NET MVC3项目。

解决方案及这8个项目创建好后,增加项目之间引用:

1) IDao引用EF5(使用其中的实体类);

2) Dao引用EF5(使用其中的实体类)和IDao(实现数据访问层接口);

3) IService引用EF5(使用其中的实体类)、IDao和DTO;

4) Service引用EF5(使用其中的实体类)、IDao、IService(实现服务层接口)和DTO;

5) DTO不引用任何项目,属于值对象;

6) Form引用IService,实现分页接口和数据校验功能;

6) Web层引用其他所有层(理论上只需要引用IService、DTO和Form,全部引用只是为了方便引入各个项目中的DLL)。

7) 对于其他工具的引用(如log4net、spring.net等用的时候再说)。


5 关于项目运行的一些问题

1) 项目访问地址,假设部署在本机中,其端口号是8001,访问地址应是:http://localhost:8001/Manage/Enter/Main.aspx

2) IIS配置的问题,应用程序池应选择.NET Framework 4.0,且是集成模式,如下图所示:


3) Sqlite问题,在配置Sqlite数据源时需要安装(只能安装X86的):

适用于vs2012:http://system.data.sqlite.org/downloads/1.0.85.0/sqlite-netFx45-setup-bundle-x86-2012-1.0.85.0.exe

适用于vs2013:http://system.data.sqlite.org/blobs/1.0.92.0/sqlite-netFx451-setup-bundle-x86-2013-1.0.92.0.exe

适用于vs2015:http://system.data.sqlite.org/downloads/1.0.105.2/sqlite-netFx46-setup-bundle-x86-2015-1.0.105.2.exe

本篇完,稍后下篇开始创建数据库及持久层。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值