大二上半学期因为选修课的原因,答应帮老师完善学院的选课系统。在这之前没有做过一个可以成为“项目”的项目,本着挑战自己的原则和可以不上选修课的福利,断断续续用了一学期的时间来完善这个选课系统。

  接受这个项目的时候,项目已经被一个学姐做的差不多了,基本框架模型都有了。值得一提的是,学姐是现学现做,用的是我软伟大的Asp.net WebForm,所见即所得!特别佩服学姐,在没有任何基础的前提下,能一步一步搭出一个基本框架。所以我的核心工作就是优化、添加一些细节功能和修改一些逻辑上的错误。我既然是接手,所以就在基础上继续缝缝补补,没有用什么三层,就是Code-behind,所有的代码都堆在后台cs中,哪儿有错改哪儿,那儿不够哪儿加。在临近期末的时候终于给老师提交了一个能用的版本。可是总觉着差点什么。所以就在寒假这几天,把整个项目用MVC重写了一遍,过程比较顺畅,哪儿不会查哪儿,历时三天,终于实现了大多数功能。(值得一提的是,学校里许多人做着一些小项目,用的大多是WinForm,WebForm,当然编程语言都是C#。希望.net的生态能越来越好,希望大家能从使用.net到爱上.net)

  重写的过程中,用到的技术有Asp.net MVC,EntityFramework,Sql,Html,jQuery,Ajax...

  说是用到的技术,实则都是用了各自的皮毛,唯一核心是MVC,之前大概学习过MVC,但基本是只了解MVC是个什么,核心的asp.net技术知道的还是不多;用EF主要是为了查询数据方便(最纠结的是是VS安装有问题,Migrations不能用);至于直接用SQL查询,关键还是对EF了解的太少,不会用EF操作已经存在的数据库;有因为是做网站,前端技术还是要用一些的,不过用来用去,最多的还是jQuery的选择器。

故事背景和技术背景谈完了,再谈谈这三天遇到的种种问题。。

1.jQuery(前端相关):这块个人接触其实不多,停留在知道有这么个东西,知道遇到不会的技术用什么关键字去百度。

2.MVC:对于MVC中的M应该有两种解读吧,一种是ViewModel,还有一种就是Model了.实际在用的时候,没有去纠结ViewModel还是Model,想着那个方便就用哪个了,不过铁的原则还是不变,

    ViewModel绝对不用到和View不相关的地方;

    其次布局页和分布页也是重点,个人理解,目的还是在于代码复用吧;

    由于用到Ajax,所以许多数据用Json格式传输,所以不得不提到一个JsonResult,我是这么用的。

JsonResult json=new JsonResult
{
Data=data,//data是要传输的对象
JsonRequestBehavior=JsonRequestBehavior.DenyGet;//允许通过Get方式请求数据
}

    最后return json;就可以。

3.Sql:关于Sql,用的是一个SqlHelper,挺好用的。

4.EF:个人使用ef只是停留在简单套路上,可是用的还不咋样,许多问题任然要靠百度。

   这儿有一点要提,之前一直不懂如何把MVC+EF项目部署到本地IIS上,后来发现发现,可以让EF直接操作SqlServer中的数据库,这样无论部署在哪儿都没问题了。

   让EF直接操作SqlServer中的数据库,终点是连接字符串要配置正确。

<connectionStrings>
<add name="ConStr"
connectionString="Data Source=CQ-PC;Initial Catalog=学生信息;User ID=demo;Password=123456" providerName="System.Data.SqlClient"></add>
</connectionStrings>

   然后再DbContext中指定连接字符串即可。例如:

 public class UserInfoContext:DbContext
{
public UserInfoContext() : base("ConStr")
{ }
public DbSet<UserInfo> User { get; set; }
}

   这儿指定的连接字符串是“ConStr”,这个一定要相同。

其实还有许多遇到的问题,有机会再写。

总之,这次这个项目的心得就是“我只是在重复做着数据库的CURD,我是一个菜鸟。”

[mvc]记一次“项目”的历程的更多相关文章

  1. Asp.net mvc web api 在项目中的实际应用

    Asp.net mvc web api 在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而web api在数据传输方面有多种实现方式,具体可根据实际情况而定! 1:数据传输前的加密,以下用到 ...

  2. Spring mvc创建的web项目,如何获知其web的项目名称,访问具体的链接地址?

    Spring mvc创建的web项目,如何获知其web的项目名称,访问具体的链接地址? 访问URL:  http://localhost:8090/firstapp/login 在eclipse集成的 ...

  3. Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码)

    Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码) 备注: 之前在Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合中 ...

  4. Asp.net MVC + EF + Spring.Net 项目实践3

    Asp.net MVC + EF + Spring.Net 项目实践 这一篇要整合Model层和Repository层,提供一个统一的操作entity的接口层,代码下载地址(博客园上传不了10M以上的 ...

  5. Asp.net MVC + EF + Spring.Net 项目实践(目录)

    用4篇博客来搭一个MVC的框架,可能对初学者会有一些帮助,大家共勉吧.我觉得对于中小型项目,这个框架可能还是有一定的用处的,希望能够帮助到一些人. Asp.net MVC + EF + Spring. ...

  6. 初始Spring MVC——练手小项目

    初始Spring MVC 前几天开始了我的spring学习之旅,由于之前使用过MVC模式来做项目,所以我先下手的是 Spring MVC,做个练手项目,非常简单 项目介绍: 用户输入信息 -> ...

  7. Spring MVC中获取当前项目的路径

    Spring MVC中获取当前项目的路径 在web.xml中加入以下内容 <!--获取项目路径--> <context-param> <param-name>web ...

  8. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  9. MVC Api 的跨项目路由

    现有Momoda.Api项目,由于团队所有人在此项目下开发,导致耦合度太高,现从此接口项目中拆分出多个子项目从而避免对Momda.Api的改动导致“爆炸” MVCApi的跨项目路由和MVC有解决方式有 ...

随机推荐

  1. bootstrap的datetimepicker.js的结束时间大于开始时间,当前日期之前的代码

    感觉不错的代码,贴出来,以后接着用 <link href="__ROOT__static/css/bootstrap-datetimepicker.min.css " rel ...

  2. jsp 学习 第1步 - 引入 jstl

    通过 eclipse 新建 动态web项目  默认是没有引入 jstl, 则无法JSP页面引入相关标记. <%@ taglib prefix="c" uri="ht ...

  3. js解决弹窗问题实现班级跳转DIV示例

    js解决弹窗问题实现班级跳转DIV 1.js代码如下: <%--实现班级跳转DIV--%>  <div id="displayClassDiv" style=&q ...

  4. Nginx 系统维护配置

    转自:http://blog.csdn.net/kkgbn/article/details/52153383 tomcat关闭后 请求返回502状态码 error_page /.html; locat ...

  5. 为什么nginx error_page遇到后端错误时不跳转?

    nginx不得不说的参数之 proxy_intercept_errors与fastcgi_intercept_errors 为什么我的error_page 配置没有生效,没有正常跳转?我也遇到过这个问 ...

  6. Spring-JDBC模板-事务

    Spring-JDBC模板-事务 1.事务概述 什么是事务 逻辑上的一组操作,组成这组操作的各个单元要么全部成功要么全部失败 事务的特点ACID 原子性:事务不可分割(事务要么成功,要么失败) 一致性 ...

  7. 前端开发之jQuery效果篇

    主要内容: 1.显示与隐藏效果 2.滑动效果 3.淡入与淡出效果 4.动画效果 5.弹出广告效果 一.显示与隐藏 显示与隐藏即 show() 和 hide() ,能够控制元素显示或隐藏. 实例: &l ...

  8. 创建和运行Java项目

    ---------siwuxie095                     首先在左侧的工程管理面板 Package Explorer 中,右键->New->Java Project ...

  9. php中++i 与 i++ 的区分详解

    在编程时我们常会使用到i++和++i,那两者之间有什么区别呢,本教程就为大家详细介绍一下. 1.++i 的用法(以 a=++i ,i=2 为例) 先将 i 值加 1 (也就是 i=i+1 ),然后赋给 ...

  10. VMTurbo采用红帽企业虚拟化软件

    VMTurbo公司正处于虚拟化的开始阶段,并将继续向虚拟世界迈进.该公司已宣布官方支持Red Hat 公司的Enterprise Virtualization 3.1.VMTurbo公司采用Red H ...