学习MVC之租房网站(一)-项目概况
这儿的MVC是ASP.NET MVC,只用过C#一种语言,后面就直接称呼为MVC了。
一年多没接触MVC后,现在想用MVC做个网站,觉得特别吃力,以前学的仅仅是皮毛,所以闲置了一年后,MVC知识就重新归零了。
这几周学习MVC的过程中,博客园葡萄城的MVC汇总资源给了我很大的帮助(http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html),尤其是“ASP.NET MVC 音乐商店”系列教程,学完音乐商店后,对Model-View-Controller有了基本的了解。但遗憾的是,关于EF Code First模式的使用,文章作者使用了DB Migration,还提供了一个非常庞大复杂的seed文件,用来初始化数据库,随后全程就与数据库没什么事了,这让人在项目完成后,对数据库部分仍然摸不着头脑;还有就是关于用户登录和权限控制,作者使用了微软提供的网站配置工具,就是下面这个

所以,关于权限控制也是一处让人困惑的地方。最要命的是,VS2017发布后,第一时间安装了,但却发现新版本取消了网站配置工具,而代之以“功能更加强大的”Authentication,下面就是了

试用后发现仍然是一头雾水,怪只怪自己不会搞权限控制呗,但不管是网站配置工具还是Authentication,这两货都绝对不会再用了。
为了继续学习MVC,开始了租房网站的实践。
网站介绍和具体功能
网站按惯例分为前台、后台两部分,前台供用户查找待出租房子的信息、预约看房;后台供管理员发布、管理房源信息,进行用户统一管理、权限控制等操作
网站仍会使用EF与Code First,但不会执行DB Migration,关于数据库的修改都要手动执行(这算什么Code First)。
关于权限控制,会使用高大上的RBAC权限控制方式,哈哈,Role-Based-Access-Control,基于角色的权限控制,说白了就是我们平时使用广泛的权限-角色-用户体系了
还将实现日志系统,对后台用户的登录、修改操作以及整个网站的未处理异常进行记录
项目结构
项目整体结构如下:

公用类库提供一些前后台通用的方法,比如生成验证码、计算MD5等。
项目分层
MVC只针对UI层,从UI到数据库仍要分层,但考虑到项目很小,如果用三层架构,BLL层发挥不了什么作用,这次就让这个悲催的二传手先歇着了。省略BLL后,只有UI层和Service层了,如下:

但在Controller和Service直接增加了IService接口,这样做除了显得高大上,最重要的原因是为了学习IOC。DTO用于在Service和Controller之间传递数据。

好了,这是记录租房网站的第一篇文章,也是开通这个公众号后的第一篇文章。
受Yummy影响,也申请了公众号。之前的博客园已经荒废,现在敲了区区几百字后发现,写点什么东西的感觉真棒,以后但愿能坚持足够长的时间
博客园:http://www.cnblogs.com/zhixin9001/
CSDN:http://blog.csdn.net/zhixin9001
学习MVC之租房网站(一)-项目概况的更多相关文章
- 学习MVC之租房网站(二)-框架搭建及准备工作
在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...
- 学习MVC之租房网站(三)-编写实体类并创建数据库
在上一篇<学习MVC之租房网站(二)-框架搭建及准备工作>中,搭建好了项目框架,并配置了EF.Log4Net和进程外Session.接下来会编写Eneity类并采用CodeFirst的方式 ...
- 学习MVC之租房网站(四)-实现Service层并进行单元测试
在上一篇<学习MVC之租房网站(三)-编写Eneity类并创建数据库>中,记录了编写Eneity类并采用CodeFirst的方式创建数据库的过程,接下来就到了Service层的实现了,并且 ...
- 学习MVC之租房网站(五)-权限、角色、用户管理
在上一篇<学习MVC之租房网站(四)-实现Service层并进行单元测试>中,记录了实现Service层并进行单元测试的过程,接下来该到"正题"-MVC了,也就是UI层 ...
- 学习MVC之租房网站(十二)-缓存和静态页面
在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...
- 学习MVC之租房网站(六)-用户登录和权限控制
在上一篇<学习MVC之租房网站(五)-权限.角色.用户管理>完成了权限.角色.用户的增删改查,现在将基于前面完成的内容,进行后台用户登录和权限控制功能的开发. 一.用户登录 用户登录涉及到 ...
- 学习MVC之租房网站(七)-房源管理和配图上传
在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增.编辑房源信息,供前台用户操作. 一 房源管理 ...
- 学习MVC之租房网站(八)- 前台注册和登录
在上一篇<学习MVC之租房网站(七)-房源管理和配图上传>完成了在后台新增.编辑房源信息以及上传房源配图的功能.到此后台开发便告一段落了,开始实现前台的功能,也是从用户的登录.注册开始. ...
- 学习MVC之租房网站(九)-房源显示和搜索
在上一篇<学习MVC之租房网站(八)- 前台注册和登录>完成了前台用户的注册.登录.重置密码等功能,然后要实现与业务相关的功能,包括房源的显示.检索等. 一 房源显示 房源显示内容较多,涉 ...
- 学习MVC之租房网站(十)-预约和跟单
在上一篇<学习MVC之租房网站(九)-房源显示和搜索>完成了房源的显示.检索,然后是用户的预约看房,以及后台操作员对预约看房的跟单操作. 预约看房仅有将预约信息保存到对应表的操作,预约表有 ...
随机推荐
- PHP:WampServer下如何安装多个版本的PHP、mysql、apache
作为Web开发人员,在机器上安装不同版本的php,apache和mysql有时是很有必要的. 今天,我在调试一套PHP程序的时候,该程序中使用的某些函数在低版本中无法使用,所以只能在搞个高版本的php ...
- 字符、字符串和文本的处理之String类型
.Net Framework中处理字符和字符串的主要有以下这么几个类: (1).System.Char类 一基础字符串处理类 (2).System.String类 一处理不可变的字符串(一经创建,字符 ...
- android的电话监听
android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...
- ActiveMQ新的Master/Slave存储共享机制Replicated LevelDB Store
ActiveMQ新的Master/Slave存储共享机制Replicated LevelDB Store 使用ZooKeeper协调选择一个node作为master.被选择的master broker ...
- SpringBoot + docker + neo4j
下拉镜像 docker pull neo4j 启动镜像 docker run -d -p 7473:7473 -p 7687:7687 -p 7474:7474 neo4j 打开浏览器:http:// ...
- Android在代码中获取应用签名
平时都是用AS敲命令获取签名信息...还没有在代码中获取过签名~ 也算是老编程了,没做过这个稍微有点尴尬...本着有好轮子就用的原则,网上找了几篇博客,这块内容已经很完善了,我也没什么可以优化的... ...
- 全网最详细的Sublime Text 3的安装Package Control插件管理包(图文详解)
不多说,直接上干货! 全网最详细的Windows里下载与安装Sublime Text *(图文详解) 全网最详细的Sublime Text 3的激活(图文详解) 全网最详细的Sublime Text ...
- C#基础篇三流程控制1
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01R ...
- vue传参页面刷新数据丢失问题
在做vue的时候,经常会遇到组件之间数据的传递问题,通过params或者query传参,但是,当页面刷新的时候,数据会丢失,找不到数据.今天经过总结,解决了这个问题.通过了一下几种情况进行传值: 通过 ...
- 《Netty权威指南》(一)走进 Java NIO
目录 1.1 I/O 基础入门 1.1.1 Linux 网络 I/O 模型 1.1.2 I/O 多路复用技术 2. Java 的 I/O 演进 1.1 I/O 基础入门 Java1.4 之前的早期 ...