学习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之租房网站(九)-房源显示和搜索>完成了房源的显示.检索,然后是用户的预约看房,以及后台操作员对预约看房的跟单操作. 预约看房仅有将预约信息保存到对应表的操作,预约表有 ...
随机推荐
- oracle 用户权限相关
--查看数据库下的所有用户: select username from dba_users; --查看当前连接数据库的用户角色 SELECT * FROM USER_ROLE_PRIVS; -- 创建 ...
- 最大子数组问题/Maximum Subarray
问题描述: Find the contiguous subarray within an array (containing at least one number) which has the la ...
- 关于oracle的缓冲区机制与HDFS中的edit logs的某些关联性的思考
可能大家会问,oracle和HDFS属于不同场景的存储系统,它们之间为什么会有联系呢?确实,从技术本身来看,他们确实无关联,但利用“整体学习”的思想,跳出技术本身,可以发现Oracle的缓冲区和HDF ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(三):搭建开发环境
生成项目模板 登录Spring Initializr生成Spring Boot项目模板,保存到本地. 地址:https://start.spring.io/ 导入Maven项目 使用IDE导入生成的M ...
- xfsdump 备份文件系统
实战:xfs 文件系统的备份和恢复 一.xfs 简单介绍. XFS 提供了 xfsdump 和 xfsrestore 工具协助备份 XFS 文件系统中的数据.xfsdump 按 inode顺序备 ...
- layer插件学习——询问框
本文是自己整理的关于layer插件的询问框样式结果 一.准备工作 下载jQuery插件和layer插件,并引入插件(注意:jQuery插件必须在layer插件之前引用) 百度云资源链接: jQuery ...
- 并发编程——ConcurrentHashMap#helpTransfer() 分析
前言 ConcurrentHashMap 鬼斧神工,并发添加元素时,如果 map 正在扩容,其他线程甚至于还会帮助扩容,也就是多线程扩容.就这一点,就可以写一篇文章好好讲讲.今天一起来看看. 源码分析 ...
- 解决MVC应用程序数据重复加载问题
先来看看这个动画: 这是使用jQuery来实现数据加载,每点击一次,数据就加载一次.这源程序与实现来自<MVC应用程序JsonResult()的练习>http://www.cnblogs. ...
- [日常] Go语言圣经-错误,函数值习题
Go语言圣经-错误 1.panic异常.panic是来自被调函数的信号,表示发生了某个已知的bug 2.任何进行I/O操作的函数都会面临出现错误的可能 3.错误是软件包API和应用程序用户界面的一个重 ...
- 推荐《Java编程思想》
最近看了(美)Bruce Eckel 著<Java编程思想>,还没有看完,但是极力推荐.尤其是学完一遍基础之后,再看很有感觉.之前学习基础的时候就买了这本书,那时候也真心看不下去,包括现在 ...