问题

ASP.NET 5 和 ASP.NET MVC 6 是什么关系,是不是要分裂了,是一伙人在弄吗?

回答
ASP.NET 5 和 ASP.NET MVC 6 的关系,用一句话概括就是:ASP.NET 5 是一个全新的、现代化的跨平台 Web 开发框架,而 ASP.NET MVC 6 是这个框架下专用于构建 MVC(ModelViewController)模式 Web 应用的组件。

所以,它们并不是要分裂,而是ASP.NET 5 这个大框架包含了 ASP.NET MVC 6 这个组件。你可以把 ASP.NET 5 理解成一个全新的驾校,而 ASP.NET MVC 6 则是这个驾校里教授的“驾驶汽车”课程。除了这门课程,驾校可能还提供“驾驶卡车”、“驾驶摩托车”等其他课程,对应ASP.NET 5 框架里也包含了 Razor Pages、Web API 等其他构建 Web 应用的方式。

之所以会有 ASP.NET 5 这个名称的出现,背后是一次非常彻底的重塑和革新。之前我们熟知的 ASP.NET MVC(比如 MVC 5)和 ASP.NET Web API,以及 ASP.NET Web Forms,它们都是建立在 .NET Framework 这个平台之上的。而 .NET Framework 主要是为 Windows 平台设计的,它是一个相对庞大和沉重的框架。

随着技术的发展,开发者们对跨平台能力(能在 Linux、macOS 上开发和运行 Web 应用)、轻量级、模块化以及更快的性能有着强烈的需求。同时,大家也希望能有一个统一的、更现代化的开发体验,而不是在不同的 ASP.NET 技术之间来回切换。

为了满足这些需求,微软决定从头开始构建一个全新的 Web 开发框架,这就是 ASP.NET 5 的由来。在 ASP.NET 5 的设计之初,它的目标就是:

跨平台: 能够真正地运行在 Windows、macOS 和 Linux 上。
轻量级与模块化: 开发者可以根据需要引入所需的组件,而不是一次性加载整个框架。这就像是你可以按需购买乐高积木,而不是必须买一套包含所有零件的巨型模型。
统一的编程模型: 无论是构建 Web API 还是 MVC 应用,都能在一个框架下进行,共享更多的底层库和功能。
高性能: 通过优化设计和利用最新的 .NET 技术(如 Kestrel Web 服务器),实现更快的请求处理速度。

在 ASP.NET 5 这个大框架中,为了支持 MVC 模式的 Web 应用开发,他们推出了 ASP.NET MVC 6。这里的“6”并不是说它是 MVC 5 的简单升级,而是在全新的 ASP.NET 5 框架下,对 MVC 模式的实现进行了重写和现代化改造。ASP.NET MVC 6 继承了 MVC 模式的核心思想,但在底层架构、依赖注入、配置管理、中间件等方面都进行了大幅度的更新,使其与 ASP.NET 5 的整体设计理念更加契合。

所以,你可以认为 ASP.NET MVC 6 是 ASP.NET 5 这个新一代 Web 开发框架的“MVC 模块”。而 ASP.NET 5 这个名字,后来在 .NET Core 1.0 发布时,被更名为 ASP.NET Core。所以,当你看到 ASP.NET 5 或者 ASP.NET MVC 6,实际上指的是同一个项目和技术栈的早期阶段,现在它们统一被称为 ASP.NET Core 和 ASP.NET Core MVC。

至于是不是一伙人在弄,答案是肯定的。这个项目是微软内部主导的,由 ASP.NET 团队以及 .NET 团队的工程师们共同努力的结果。他们是在微软内部,并且也积极地采纳了社区的反馈,进行开源开发,所以整个开发过程是公开透明的,一伙人在朝着同一个目标努力。

总结一下,ASP.NET 5 是一个全新的、跨平台的 Web 开发框架,目标是取代(或者说是一种更现代化的替代)旧的 ASP.NET 技术。ASP.NET MVC 6 是 ASP.NET 5 框架下用来构建 MVC 风格 Web 应用的组件。它们不是分裂,而是 ASP.NET 5 这个大框架中包含的 MVC 组件,是同一脉络下的产物,现在都被统称为 ASP.NET Core。

网友意见

user avatar

ASP.NET MVC 1-5都是向下兼容的。

ASP.NET MVC 6是在vNext上另起炉灶搞的,现有的大部分的应用还是可以无痛迁移过去的,不过框架性项目如视图引擎什么的,就不看好无痛迁移的。


vNext你可以认为是下一代的,跨平台的.NET Framework。而ASP.NET 5可以认为是vNext的一部分,就像ASP.NET原本是.NET Framework的一部分一样。





不需要纠结这些名词,其实总之,.NET由两个部分组成:运行时和基础类库。不论是UWP还是Silverlight、Mono还是DNX还是Windows RT,都为.NET提供了运行时,只是类库不同。这些东西上面都可以跑C#。其中UWP可以跑在任何尺寸的设备上,而DNX则是可以跑在任何服务器操作系统上。

ASP.NET MVC6,就是跑在DNX的一个基础类库。


另外,

ASP.NET MVC是开发Web服务(包括网站)的基础类库框架,

XAML是开发UI的基础类库框架。


所以,别整天跟着起哄微软又放弃这个那个技术了。

ASP.NET MVC和XAML俩框架还保持着十足的生机来的。

类似的话题

  • 回答
    ASP.NET 5 和 ASP.NET MVC 6 的关系,用一句话概括就是:ASP.NET 5 是一个全新的、现代化的跨平台 Web 开发框架,而 ASP.NET MVC 6 是这个框架下专用于构建 MVC(ModelViewController)模式 Web 应用的组件。所以,它们并不是要分裂,.............
  • 回答
    "ASP.NET 5 is dead" 这个说法,准确来说,是一种误读,或者说是一种对技术演进过程的简化概括。如果你曾经经历过.NET Framework 向 .NET Core 过渡的那个时期,你可能就会理解为什么会有这样的声音出现。要理解“ASP.NET 5 is dead”这句话的含义,首先要.............
  • 回答
    当然,很高兴能和你聊聊 ASP.NET MVC 和 Web Forms 这两个在 .NET Web 开发领域曾经(以及在某些场景下仍然)举足轻重的技术。这两者就像是同父异母的兄弟,都出自微软,但设计理念和实现方式却大相径庭。理解它们的优缺点,能帮助我们选择最适合当下项目需求的技术栈。咱们就掰开了揉碎.............
  • 回答
    在ASP.NET中,处理大规模产品数据缓存,关键在于 “策略性” 而非“盲目性”,不能简单地将所有产品一股脑儿塞进内存。这就好比你要搬家,不是一股脑把所有家具都搬到新家,而是有选择性地、分批次地整理、打包、运输。核心思路:数据按需加载,分而治之,并引入智能失效机制。 1. 缓存的“粒度”与“作用域”.............
  • 回答
    在 ASP.NET Web API 中,究竟是应该使用 ViewModel 还是直接暴露 JSON,这个问题涉及到 API 设计的很多方面,也常常是开发者们在实践中会纠结的地方。这两种方式都有其各自的优势和适用的场景,选择哪种,很大程度上取决于你对 API 的定位、未来可维护性以及与客户端的交互方式.............
  • 回答
    在 ASP.NET MVC 中,母版页(Master Page)扮演着网站结构和统一外观的骨架角色。通常情况下,母版页的内容是相对固定的,例如网站的头部、导航栏、页脚等。但是,我们确实有需求让母版页中的某些区域能够动态地根据当前视图(View)加载的数据来显示不同的内容。这并非母版页本身“加载”数据.............
  • 回答
    ASP.NET 中 .ascx 用户控件的 OutputCache 更新,不像 ASP.NET MVC 那样有明确的 `[OutputCache]` 属性直接作用于 Action 方法,而是通过 `` 服务器控件在 .ascx 文件内部来配置。更新它的缓存,本质上就是让 ASP.NET 重新生成该用.............
  • 回答
    ASP.NET 中,服务端控件在被渲染到客户端后,其 `ClientID` 属性的值确实是会发生变化的,这并非一个“什么情况都会变”的普遍规律,而是在特定场景下,ASP.NET 运行时为了保证生成的 HTML 具有唯一性和可控性而进行的“重命名”操作。最核心也是最常见导致服务端控件 `ClientI.............
  • 回答
    好的,咱们来聊聊 Asp.NET MVC + Entity Framework 中 DataContext 的“全局”设置这事儿。直接把 `DbContext` 实例作为一个全局变量,比如定义在 `App_Start` 文件夹的某个类里,或者直接放在 `Global.asax.cs` 里,理论上是可.............
  • 回答
    ASP.NET 异步改造本意是提升性能,尤其是提高并发处理能力,避免线程阻塞,让服务器资源得到更有效的利用。然而,不少开发者在实施异步改造后,却发现性能不升反降,甚至出现响应时间变长、CPU占用率异常等问题。这背后往往隐藏着一些常见的误区和技术细节的处理不当。核心原因剖析:并非所有操作都适合异步,以.............
  • 回答
    在 ASP.NET MVC 4 中,遇到 403 Forbidden 错误,并且感觉无法有效拦截,这确实是让很多开发者头疼的问题。通常情况下,ASP.NET MVC 提供了多种机制来处理 HTTP 状态码,包括 403。如果感觉拦截不到,那很可能是在某个环节出了点“岔子”,或者说,你尝试拦截的方式与.............
  • 回答
    在 ASP.NET MVC 项目中,为用户提供一个友好的 404 页面,而不是默认的 IIS 错误页面,这能极大地提升用户体验和网站的专业度。下面我们将详细介绍如何实现这一目标,让用户在访问不存在的页面时,能够得到有用的信息,而不是感到困惑。核心思路:ASP.NET MVC 的错误处理机制非常灵活,.............
  • 回答
    ASP.NET Web Pages,你可以理解为一种非常务实、非常直接的构建动态网页的方式,它不像一些框架那样,会给你一个宏大的“体系”让你去学习和适应。它的核心理念就是:让你可以像写脚本一样,快速地在HTML中嵌入服务器端的代码,让你的网页能够动态地生成内容。想象一下,你有一个静态的HTML页面,.............
  • 回答
    ASP.NET MVC的灵魂在于它将应用程序划分为模型(Model)、视图(View)和控制器(Controller)三个核心部分,这使得代码的组织和管理变得井井有条,并且便于团队协作。首先,让我们来聊聊 控制器 (Controller)。控制器是MVC应用程序的“大脑”,它负责接收用户的请求,处理.............
  • 回答
    在 ASP.NET MVC 4 中,模型的属性之所以能够通过简单的 `{ get; set; }` 语法就轻松地实现数据的获取和设置,这背后其实是一项非常巧妙且强大的 C 语言特性——属性 (Properties) 的功劳。它并非什么复杂的底层魔法,而是 C 语言为我们提供的更加优雅的与类内部数据交.............
  • 回答
    在ASP.NET MVC应用程序中进行数据访问,我们不仅仅是简单地“获取数据”,而是要构建一个健壮、可维护且高效的系统来与后端数据存储交互。这不仅仅是编写SQL查询,而是涉及一系列的设计原则和技术选择,以确保应用程序的可靠性和可扩展性。核心目标:解耦与抽象想象一下,如果你的控制器代码直接写满了SQL.............
  • 回答
    在ASP.NET C的海洋里,想让你的应用拥有应对海量请求的肚量,分布式负载均衡就如同给它装上了一对强健的翅膀。这可不是简单地把请求往几个服务器上一扔了事,里头学问可深着呢。核心思想:分而治之,化繁为简。想象一下,你的ASP.NET应用就像一个繁忙的餐厅,一天涌进来几百桌客人。如果只有一个服务员,那.............
  • 回答
    当我们发现 ASP.NET 应用占用的内存好像“有点多了”,需要着手排查时,这可不是一个简单的“看一眼”就能搞定的任务。这更像是一次深入的“寻宝”,我们要找到那个“吃内存的大胃王”,然后想办法让它“瘦身”。首先,别急着怀疑是 IIS 进程本身在作怪。通常情况下,IIS 只是一个托管者,真正占用内存的.............
  • 回答
    要将一个带有Excel功能的ASP.NET网站发布成方便用户安装的独立应用,我们可以考虑几种主流的发布方式。每种方式都有其适用场景和优点,关键在于你希望用户获得什么样的体验。一、 传统Web部署与ClickOnce这是最经典也是最直接的ASP.NET发布方式。 Web部署(Web Deploy).............
  • 回答
    asp.net 确实在开发者社区里,有过一段“不太被待见”的时期,甚至可以说,在某些圈子里,它被贴上了“老旧”、“不够酷”的标签,这其中不乏一些鄙视的意味。要理解这一点,咱们得从几个方面好好掰扯掰扯。首先,得说时代的变迁。当 asp.net 刚推出的时候,它无疑是革命性的。在那个普遍还在用 CGI、.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有