java的MVC与C#

Views:

@{

Layout = "~/Views/Shared/_Layout.cshtml";

}

@{

ViewBag.Title = "Index";

}

<h1>Index</h1>

<p>This is first view</p>

<div>@ViewBag.controller</div>

<div>@ViewBag.action</div>

Controllers:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace MVCMovie.Controllers

{

public class HollerWorldController : Controller

{

// GET: HollerWorld

public string Index()

{

return "看这里";

}

public string Welcome(string name,int numTimes=1)

{

return HttpUtility.HtmlEncode("Hello"+name+",numTimes="+numTimes);// 使用上面的代码HttpUtility.HtmlEncode以防止恶意输入

}

public string Hello(string name ,int ID)

{

return HttpUtility.HtmlEncode("Hello "+name+"ID is" +ID);

}

//        1.控制器中跳转:

//Redirect(url) 直接跳转到URl

//比如 action 里 return Redirect("http://www.baidu.com") 直接跳转到baidu.

//RedirectToAction("action",new{id=6,name=helloK

//    }) 跳转到本control的另外一个action 可以带参数.

//2.页面跳转:

//Html.Actionlink("详细","action",new{id=6,name=helloK

//}) 跳转到control的另外一个action.

public ActionResult GotoFirstView(string controller, string action)

{

return RedirectToAction("FirstView",new {  controller, action });//重定向跳转FirstView action

}

public ActionResult FirstView(string controller,string action )

{

//通过参数传递数值到view

ViewBag.controller = controller;

ViewBag.action = action;

//页面跳转

return View("~/Views/HollerWorld/Index.cshtml");

}

}

}

Routeconfig:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.Web.Routing;

namespace MVCMovie

{

public class RouteConfig

{

public static void RegisterRoutes(RouteCollection routes)

{

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

//routes.MapRoute(

//    name: "Default",

//    url: "{controller}/{action}/{id}",

//    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

//);

routes.MapRoute("Hello", "{controller}/{action}/{id}", new { controller = "HollerWorld", action = "Welcome", id = UrlParameter.Optional });//自定义路由

//routes.MapRoute("newRoute","HelloWorld/First{action}", new { controller = "HollerWorld" });

}

}

}

Models:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Data.Entity;

namespace MVCMovie.Models

{

public class Movie

{

public int ID { get; set; }

public string Title { get; set; }

public DateTime ReleaseDate { get; set; }

public string Genre { get; set; }

public decimal Price { get; set; }

}

//继承EF里的一个类,可以理解为一个数据库对象的实例,在 EF 中,无需手动的拼接 SQL 语句对数据库进行增删改查,而是通过 DbContext 来进行相应操作。

public class MovieDBContext : DbContext

{

public DbSet<Movie> Movies { get; set; }

}

}

Web.config:

<!--<connectionStrings>

<add name="MovieDBContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient" />

</connectionStrings>-->

asp.net是一种用来快速创建动态Web网站的技术,不是语言,它使用C#(或者vb.net)为开发语言。C#是一种面向对象编程语言;net只是一个框架,.net中所有的编程语言,比如c# vb.net等编写的程序必须在.net framework框架下运行。

三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合"的思想。
  1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
  2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
  3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
注:(内聚:一个模块内各个元素彼此结合的紧密程度;耦合:一个软件结构内不同模块之间互连程度的度量)

三层结构不是.NET的专利,也不是专门用在数据库上的技术。它是一种更加普适的架构设计理念。

一、mvc原理 
  mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。 
1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型 与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性 
2、视图(view) 用户与之交互的界面、在web中视图一般由jsp,html组成 
3、控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的做用

二、MVC的优点 
1、可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。 
2、视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。 
3、模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。 
4、潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。

三、MVC的不足之处 
1、增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 
2、视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。 
3、视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。 
4、目前,一般高级的界面工具或构造器不支持模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成MVC使用的困难。

分类: MVC

实际上不管是mvc中的m,还是“三层架构”中的model,都不是从数据库表出发的,都是从前端需求出发的。只不过这两种做法针对的场景也不同。前者局限在理清前端界面程序开发思路上,后者局限在理清整个系统网络服务的开发思路上。可以组合,也可以仅仅使用一种。三层中的m,本来就可以用到mvc中。但是它显然不等于mvc中的那个m。而 mvc 中的 m 按说应该比三层中的 m 更多、更丰富(后者可以当然可以被前者所继承)。三层中的m 按说应该比数据库表的数量还多很多、还丰富很多。

如果你发现一个项目的m 很少,甚至跟数据库表的数量接近,那么你遇到了一个“不管如何分层,都从数据库增删改查为思维出发点”的团队的产品。

将使用名为.NET Framework 数据访问技术Entity Framework来定义和使用这些模型的类。 实体框架 (通常称为 EF) 支持开发模式称为Code First

原文地址:https://www.cnblogs.com/zhangsonglin/p/10436550.html

时间: 2024-08-29 21:53:40

java的MVC与C#的相关文章

Java的MVC模式简介

Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范, 一.MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个

Java中MVC模式

MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新. 模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用.最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 Cold

支持Java Spring MVC

Java Spring MVC能很方便在后台返回JSON数据,所以与MiniUI进行数据交互非常简单. 1)后台处理: 在MVC控制器中,可以通过方法参数接收数据,也可以通过Request接收更复杂的数据对象: 然后将任何服务端对象JSON序列化后返回. 比如一个典型的表格分页加载后台处理代码: @RequestMapping(value = "GetGridData", method = RequestMethod.POST) @ResponseBody public String

java基于MVC的简单博客系统

原文:java基于MVC的简单博客系统 源代码下载地址:http://www.zuidaima.com/share/1550463595760640.htm 采用技术:jsp+servlie+javaBean+mysql+ajax

Java Spring MVC分层设计(转)

原文:https://blog.csdn.net/chris_mao/article/details/48694243 第一次尝试着用Java做Web开发,使用了Java Spring框架,顺便说一句,如果使用Spring开发,建议使用STS(Spring Tool Suite) IDE,它很好的集成了Spring.Maven等框架,使用起来特别方便,尤其是第一次使用Spring框架进行开发,它极大的方便了开发人员,通过快捷菜单及可很简单的配置好Spring开发环境,自动下载.更新Maven依赖

Java Spring MVC项目搭建(一)——Spring MVC框架集成

1.Java JDK及Tomcat安装 我这里安装的是JDK 1.8 及 Tomcat 8,安装步骤详见:http://www.cnblogs.com/eczhou/p/6285248.html 2.下载Eclipse并安装 我这里安装的是Java EE neon 64位版本. 3.建立Spring MVC项目 3.1.打开安装好的eclipse ,选择File->new->other.在弹出的框内选择Web->Dynamic Web Project , 选择Next. 3.2.给项目起

Java spring mvc多数据源配置

1.首先配置两个数据库 <bean id="dataSourceA"         class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <proper

Java中MVC详解以及优缺点总结

 概念:  MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务数据.逻辑.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 最典型的MVC就是Jsp + Servlet + JavaBean的模式 MVC开始是存在于桌面程

java spring mvc 全注解

本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工作; 废话不多说了上干货,其实我也没怎么理解不过简单的运行了一个spring mvc 全注解项目,也不能说是全注解,因为保留了web.xml和spring-serlvet.xml文件,(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配置文件就切换某些环境.其实不是,零配置文件只是修

自建一个Java Spring MVC项目

用IDEA Intellij,本来创建的是SpringMVC项目,但是下载的时候,太慢了.所以还是用的Maven项目. 选择Maven 项目->Archetype->Web application. 本来需要增加参数-DarchetypeCatalog=internal, 但是发现也不用了,应该是已经下载了. 首先将webapp->WEBINF->web.xml,改一下: <?xml version="1.0" encoding="UTF-8&q