学习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之租房网站(九)-房源显示和搜索>完成了房源的显示.检索,然后是用户的预约看房,以及后台操作员对预约看房的跟单操作. 预约看房仅有将预约信息保存到对应表的操作,预约表有 ...
随机推荐
- .NET跨平台实践:再谈用C#开发Linux守护进程 — 完整篇
Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展 ...
- Java 多线程学习笔记:生产者消费者问题
前言:最近在学习Java多线程,看到ImportNew网上有网友翻译的一篇文章<阻塞队列实现生产者消费者模式>.在文中,使用的是Java的concurrent包中的阻塞队列来实现.在看完后 ...
- Ubuntu安装Gogs服务
花了半天的时间把阿里云的centos 换成了ubuntu 14.04 lts ,原因是因为我想安装个gogs git服务,但是centos的glibc版本太低,折腾了半天没有成功. 迁移Ghost数据 ...
- Shell脚本 | 抓取log文件
在安卓应用的测试过程中,遇到 Crash 或者 ANR 后,想必大家都会通过 adb logcat 命令来抓取日志定位问题.如果直接使用 logcat 命令的话,默认抓取出的 log 文件包含安卓运行 ...
- Hadoop2源码分析-准备篇
1.概述 我们已经能够搭建一个高可用的Hadoop平台了,也熟悉并掌握了一个项目在Hadoop平台下的开发流程,基于Hadoop的一些套件我们也能够使用,并且能利用这些套件进行一些任务的开发.在Had ...
- 27-hadoop-hbase安装
hbase的安装分为单机模式和完全分布式 单机模式 单机模式的安装很简单, 需要注意hbase自己内置一个zookeeper, 如果使用单机模式, 那么该机器的zookeepr不可以启动 1, 添加j ...
- postgresql逻辑结构--表空间(四)
一.创建表空间 1. 语法:create tablespace tablespace_name [owner user_name] location 'directory' postgres=# cr ...
- HTTPS原理简述
角色: A,B,Server,Client,中间窃听者,数字证书签发机构(CA) 工具:对称加密算法,非对称加密算法,数字签名,数字证书 第一步,爱丽丝给出协议版本号.一个客户端生成的随机数(Cl ...
- Python常见问题
1. 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方 ...
- UVA 11582 Colossal Fibonacci Numbers!(循环节打表+幂取模)
题目链接:https://cn.vjudge.net/problem/UVA-11582 /* 问题 输入a,b,n(0<a,b<2^64(a and bwill not both be ...