首先,讲一下,我在我第一家用的技术是EntityFrameWork+MVC+仓储(Reporisty)三合一的技术开发的。废话不多说,让我们快快进入正题,我先给大家展示一下整体的架构图设计,然后对架构中的每一层进行详细介绍,这也有利于大家去学习。
总体架构
在网上普遍介绍是:新建一个应用程序即包括MVC所有的东西。MVC MVC MVC 重要的事情说三遍!!! M代表model也就是大家所说的数据层 V 你猜? 对!就是View 视图层 用来给用户看的同样也是可操作的 C就是众所周知的Controller 控制台。
接下来,我来讲讲每层之间的关系
层与层之间的关系(依赖注入)
Core层 数据层就是Model
Data层 映射层就是Maping -->传说中的ORM
Service层 数据逻辑操作层 -->对数据的一系列CRUD操作
Webcore层 就是起到一个拦截信息的作用(filter)
Web层 就是应用层 其中包括了View和被遗忘了的Controller控制台。
对了 之前我说过这是层层依赖下去的。对!!!就是用到了依赖注入的技术(IOC)网上也有很多的例子,记得我有个同事是这么给我解释什么叫依赖注入。这是一个很。。。的故事。我也不知道怎么形容了,有点搞笑。就是有一个皇帝,皇帝不是每天都要临幸后宫的佳丽,想要谁就给谁翻绿牌,对今晚就她了。然后把她拉入容器,其他都不引申了。你要什么你就把他拉入容器,然后对他进行操作。
我 前前后后做过关于ASP.NET MVC和JAVA 的Spring MVC的网站,之后也在同学那得知一点关于java的JPA知识。在我看来,java web和asp.net mvc大都是一样的,不对是所有的开发就是把数据根据用户的需求去不断的筛选。我在做java mvc的时候唯一感到不同的是就是数据的操作上语言的不同和层次分的细致。在asp.net中,我们完全可以有理由去用控制台对model(美女就是数据)进行操作,但是controller的意思是什么?控制台 什么? 起到控制的作用。所以我们必须要引申出一个service层把数据拉入容器对数据进行操作。对了asp.net mvc 中运用EF的技术,所以我们势必也要讲一下LINQ语句,Linq又是用什么组成的呢?哦 对! 是用那个lemada表达式组成的。而在java web中 在service层之下,我们必需再次分出一层就是dao层,java web用的是hql对数据进行操作。怎么说呢 Linq和Hql其实就和Sql语句差不多,本人建议希望大家必需把sql语句这个基本学会!!!这个很重要。其他都是和它差不多的。
然后我对大家展示一下每层的内容,并解释一下他们的用途。
首先是core层,其中包括Model,customModel,ViewModel.Model就是最原始的数据。CustomModel就是自定义的model 为什么呢? 为什么要自定义 因为展示页面不一定是数据中的原始model所以我们要自定义model 就像当于构造一个对象去展示数据。而Viewmodel就是用来展示数据 里面可以自定义一些属性或者是一个关于CustomModel的结果集(List).
然后是Data层。这里面主要存放的是Mapping(映射)。映射又是什么?ORM? what? 就是关系映射,这里面都是一一对应每张数据表中的每个字段的属性的。这也就突出了关系这个关键词。大部分人都是用VS上的一个pugin(插件)利用codefirstj技术去根据数据生成model和mapping,本人感觉不实用。我这有个黑科技(codesimth)可以绑定数据库然后在电脑上的某个位置生成model文件和mapping文件。运用了模板,就好比我这有个骨架,只要把数据这些血肉和表情添加上去,这样一个人就出来了。
接着就是Service层,其中运用到了面向接口开发。定义IService和Service。IService中定义一系列的抽象的没有具体实现的方法就是Interface(接口)。然后Service继承之,完成具体的实现。这有什么好处呢?就像当于项目经理定义一个接口其中写好方法,但具体的实现是由我们一开始的程序猿去编写。就相当于任务的分工,项目经理分配任务,我们是具体的实现者。
WebCore就是FItler拦截信息用的。没什么多说的。
Web层就是应用层。里面也有model和view和Cintroller.但是我们已经把它们分离出来了。因此,层与层就是依赖的关系,我们打代码不是一直常常强调要解耦么!!!
View就是前端,View有两件事要做 一个是一开始 需要什么条件 要开条件 一个是结束 条件开完,服务器老板把东西返回来 View就是对数据进行展示。