这儿的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之租房网站(一)-项目概况的更多相关文章

  1. 学习MVC之租房网站(二)-框架搭建及准备工作

    在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...

  2. 学习MVC之租房网站(三)-编写实体类并创建数据库

    在上一篇<学习MVC之租房网站(二)-框架搭建及准备工作>中,搭建好了项目框架,并配置了EF.Log4Net和进程外Session.接下来会编写Eneity类并采用CodeFirst的方式 ...

  3. 学习MVC之租房网站(四)-实现Service层并进行单元测试

    在上一篇<学习MVC之租房网站(三)-编写Eneity类并创建数据库>中,记录了编写Eneity类并采用CodeFirst的方式创建数据库的过程,接下来就到了Service层的实现了,并且 ...

  4. 学习MVC之租房网站(五)-权限、角色、用户管理

    在上一篇<学习MVC之租房网站(四)-实现Service层并进行单元测试>中,记录了实现Service层并进行单元测试的过程,接下来该到"正题"-MVC了,也就是UI层 ...

  5. 学习MVC之租房网站(十二)-缓存和静态页面

    在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...

  6. 学习MVC之租房网站(六)-用户登录和权限控制

    在上一篇<学习MVC之租房网站(五)-权限.角色.用户管理>完成了权限.角色.用户的增删改查,现在将基于前面完成的内容,进行后台用户登录和权限控制功能的开发. 一.用户登录 用户登录涉及到 ...

  7. 学习MVC之租房网站(七)-房源管理和配图上传

    在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增.编辑房源信息,供前台用户操作. 一 房源管理 ...

  8. 学习MVC之租房网站(八)- 前台注册和登录

    在上一篇<学习MVC之租房网站(七)-房源管理和配图上传>完成了在后台新增.编辑房源信息以及上传房源配图的功能.到此后台开发便告一段落了,开始实现前台的功能,也是从用户的登录.注册开始. ...

  9. 学习MVC之租房网站(九)-房源显示和搜索

    在上一篇<学习MVC之租房网站(八)- 前台注册和登录>完成了前台用户的注册.登录.重置密码等功能,然后要实现与业务相关的功能,包括房源的显示.检索等. 一 房源显示 房源显示内容较多,涉 ...

  10. 学习MVC之租房网站(十)-预约和跟单

    在上一篇<学习MVC之租房网站(九)-房源显示和搜索>完成了房源的显示.检索,然后是用户的预约看房,以及后台操作员对预约看房的跟单操作. 预约看房仅有将预约信息保存到对应表的操作,预约表有 ...

随机推荐

  1. C语言写了一个socket client端,适合windows和linux,用GCC编译运行通过

    ////////////////////////////////////////////////////////////////////////////////* gcc -Wall -o c1 c1 ...

  2. (转)WebSphere的web工程中怎么获取数据源

    原文:http://aguu125.iteye.com/blog/1694313 https://blog.csdn.net/bigtree_3721/article/details/44900325 ...

  3. 微信小程序交流群,欢迎加入,其中微信小程序开发群、Jenkins开发群是有问必答群

    微信小程序开发,请加群511389428,511389428 有问必答群:React开发,请加群523838207:523838207Jenkins开发,请加群155799363,155799363  ...

  4. Vue图片懒加载插件 - vue lazyload的简单使用

    Vue module for lazyloading images in your applications. Some of goals of this project worth noting i ...

  5. 全网最详细的Hadoop HA集群启动后,两个namenode都是active的解决办法(图文详解)

    不多说,直接上干货! 这个问题,跟 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 是大同小异. 欢迎大家,加入我的微信公众号:大数据躺过的坑  ...

  6. PHP多进程系列笔记(三)

    本节讲解几个多进程的实例. 多进程实例 Master-Worker结构 下面例子实现了简单的多进程管理: 支持设置最大子进程数 Master-Worker结构:Worker挂掉,Master进程会重新 ...

  7. Web Components实践开发Tab组件

    本文是对web components的一次实践,最终目的是做出一个tab组件,本文涉及Custom Elements(自定义元素).HTML Imports(HTML导入).HTML Template ...

  8. j2ee高级开发技术课程第十四周

    RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果.这个请求包括一个参数集和一个文本集,通常形成“cl ...

  9. Linux下Nginx访问web目录提示403Forbidden

    在Linux下http服务器nginx时,访问web目录提示403 Forbidden,首先需要了解nginx出现403错误是什么意思: 403 Forbidden表示你在请求一个资源文件但是ngin ...

  10. 第一次项目上Linux服务器(二:——安装jdk)

    本人采用的是rpm安装jdk1.8 1.下载jdk 去jdk下载页面找到要下载的jdk 本人下载的是jdk-8u161-linux-x64.rpm,百度云资源链接:链接:https://pan.bai ...