首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在一个强类型的世界中,为什么 ASP.NET MVC 对命名约定的脆弱依赖不被反对?

在一个强类型的世界中,ASP.NET MVC 对命名约定的脆弱依赖不被反对,这是因为强类型语言(如 C#)在编译时会对类型进行检查,从而避免了命名约定错误导致的问题。ASP.NET MVC 是一个基于 C# 的 Web 开发框架,它使用了强类型语言的特性,使得开发者在编写代码时能够更加安全地进行开发。

ASP.NET MVC 对命名约定的依赖主要体现在以下几个方面:

  1. 视图(View):ASP.NET MVC 使用了一种称为“约定优于配置”的设计模式,即在默认情况下,它会根据命名约定自动查找并加载视图。例如,如果控制器方法返回一个名为“Index”的视图,ASP.NET MVC 会自动查找名为“Index.cshtml”的视图文件。
  2. 控制器(Controller):ASP.NET MVC 的控制器负责处理 HTTP 请求并返回响应。控制器的命名约定是以“Controller”结尾,例如“HomeController”。这种命名约定有助于框架在运行时自动识别和路由请求。
  3. 模型(Model):ASP.NET MVC 的模型主要用于存储和处理数据。模型的命名约定通常是使用名词来表示,例如“User”或“Product”。这种命名约定有助于提高代码的可读性和可维护性。

尽管 ASP.NET MVC 对命名约定的依赖可能会导致一些问题,但由于强类型语言的特性,这些问题相对较少。此外,ASP.NET MVC 还提供了一些选项,如显式指定视图或控制器的名称,以便开发者可以在需要时覆盖默认的命名约定。

总之,ASP.NET MVC 对命名约定的脆弱依赖不被反对,是因为强类型语言的特性使得这种依赖相对安全,并且能够提高开发效率和代码质量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core MVC 概述

类型视图通常使用 ViewModel 类型,旨在包含要在该视图上显示数据。 控制器从模型创建并填充 ViewModel 实例。 备注 可通过多种方法使用 MVC 体系结构模式应用组织模型。...功能 ASP.NET Core MVC 包括以下功能: 路由 模型绑定 模型验证 依赖关系注入 筛选器 区域 Web API 可测试性 Razor 视图引擎 类型视图 标记帮助程序 视图组件 路由 ASP.NET...模型类型上指定验证逻辑作为非介入式注释添加到呈现视图,并使用 jQuery 验证浏览器强制执行。 依赖关系注入 ASP.NET Core 内置有依赖关系注入 (DI) 支持。...区域是应用程序内一个 MVC 结构。 MVC 项目中,模型、控制器和视图等逻辑组件保存在不同文件夹MVC 使用命名约定来创建这些组件之间关系。...类型视图 可以基于模型类型MVC Razor 视图。 控制器可以将类型模型传递给视图,使视图具备类型检查和 IntelliSense 支持。

6.4K20

ASP.NET MVC 4 - 测试驱动 ASP.NET MVC

因此,最好使用以下约定命名测试项目: [待测试项目的完整名称].Test.[测试类型]。这使您可以迅速准确地确定待测试项目所处层以及要执行测试类型。...您可能会认为将测试项目放置于特定于类型文件夹并且测试项目的名称包含测试类型是多余,但请记住,解决方案文件夹仅用于解决方案资源管理器,而不包含在项目文件命名空间中。...使用 StructureMap 配置依赖关系 ASP.NET MVC 实现 StructureMap 第一步是配置您依赖关系,以便 StructureMap 知道如何它们进行解析。...我跳转到如何在您代码中使用新 Resolver 类之前,我想要介绍一下为什么我编写了自己开发依赖关系解决程序,而不是创建实现随 ASP.NET MVC 3 引入 IDependencyResolver...包含 IDependencyResolver 功能是 ASP.NET MVC 很棒补充,并且促进正确软件行为方面取得了很大进步。

5.4K70
  • .NET Core 学习资料精选:入门

    MVC 和Web API 直接或间接继承同一个基类 ControllerBase,提供可使用API也一致化 b) 比如:旧ASP.NET时代,写全局filter需要针对MVC 和Web API 分别编写代码...ASP.NET Core 如何注入同一个接口多个实现 案例1:使用nlog时,想根据需要使用不同配置文件Nlog.config 写日志时,就可以使用文章中介绍 Factory 命名注入方案来实现...使用 AutoFac三种注入方式:按类型、按名称、按键 Asp.Net Core 2.0 之旅---AutoFacIOC容器使用教程 Asp.Net Core 2.0 之旅---AutoFac仓储泛型依赖注入...使用 Web API 分析器告警缺失约定 ASP.NET Core:MVC 与 Razor Pages ASP.NET Core SignalR 入门 ASP.NET Core MVC 静态文件目录配置与访问授权...、TempData、查询字符串、HttpContext.Items、缓存、依赖关系注入 ASP.NET Core 会话和应用状态 #、session ASP.NET Core 通用数据保护条例规则下使用

    3.8K20

    Asp.net mvc 知多少(二)

    该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大特点是以面试问答形式进行展开。通读此书,会帮助你ASP.NET MVC有更深层次理解。...Asp.net mvc ViewModel? Ans. ASP.NET MVC, ViewModel 是一个包含将在类型视图中展示字段类。...它是用来将数据从Controller传递到类型视图中。 ViewModel关键点: ViewModel 包含在视图中呈现字段。...Authentication Filter (认证过滤器)是ASP.NET MVC5引入,它先于authorization filter(授权过滤器)执行。它主要用来用户认证。...认证过滤器处理请求用户凭证并返回相应主体。ASP.NET MVC5之前,使用 authorization filter (授权过滤器)用户进行认证和授权。

    2.1K91

    跨平台开发体验: Windows

    介绍实例演示,我们将对上面创建ASP.NET Core作进一步改造,使之转变成一个MVC应用。...一、注册服务与中间件 ASP.NET Core框架内置了一个原生依赖注入框架,该框架利用一个依赖注入容器提供管道构建以及请求处理过程中所需服务,而这些服务需要在应用启动时候被预先注册。...对于一个MVC应用程序来说,我们可以将定义Controller类型Action方法视为一个终结点,那么路由映射最终体现在HTTP请求与目标Action方法映射上。...在前面演示实例,我们都是直接调用IWebHostBuilderConfigure扩展方法来注册所需中间件,但是大部分真实开发场景我们一般会将中间件以及依赖服务注册定义一个单独类型。...按照约定,我们通常会将这个类型命名为Startup,比如我们演示实例针对服务和中间件注册就可以放在如下定义这个Startup类

    2K30

    依赖注入:控制反转

    整个ASP.NET Core框架建立一个底层依赖注入框架之上,它使用依赖注入容器来提供所需服务对象。...我们通过一个具体实例来说明传统设计采用了IoC之后针对流程控制是如何实现反转。比如我们要设计一个针对WebMVC类库,不妨将其命名为MvcLib。...以熟悉ASP.NET MVC应用开发来说,我们只需要按照约定规则(比如约定目录结构和文件与类型命名方式等)定义相应Controller类型和View文件就可以了。...当ASP.NET MVC框架在处理请求过程,它会根据路由解析生成参数得到目标Controller类型,然后自动创建Controller对象并执行它。...如果目标Action方法需要呈现一个View,框架会根据预定义目录约定找到对应View文件(.cshtml文件),并它实施动态编译生成对应类型

    93841

    ASP.NET Core 6框架揭秘实例演示: 编程初体验

    RequestDelegate虽然是一个简单委托类型,但是它在ASP.NET Core框架体系地位非凡,我们现在先来它做一个简单介绍。...整个ASP.NET Core框架就建立依赖注入框架之上,依赖注入已经成为ASP.NET Core最基本编程方式 。我们接下来会演示依赖注入自定义中间件类型应用。...这里需要提前说明一下,本书提供所有的演示实例都以“App”命名,独立定义类型默认会定义约定“App”命名空间下。...由于类型中间件实例是由依赖注入容器需要时候实时提供,所以我们必须预先将它注册为服务。...按照ASP.NET Core约定,中间件类型需要定义成一个公共实例类型(静态类型无效),其构造函数可以注入任意依赖服务,但必须包含一个RequestDelegate类型参数,该参数表示由后续中间件构建管道

    1.4K20

    MVC 到使用 ASP.NET Core 6.0 Minimal API

    后来, ASP.NET Core ,用于构建网站和 API 单一框架,这些框架被统一到了 ASP.NET Core MVC 。... ASP.NET Core MVC 应用程序,控制器负责接受输入、执行或编排操作并返回响应。它是一个功能齐全框架,通过过滤器、内置模型绑定和验证、约定和基于声明行为等提供可扩展管道。...定义路由和处理程序 MVC MVC ,我们有两种[2]定义路由方法,一种是通过约定,一种是使用属性。 基于约定路由更常用于网站而不是 API,并包含在mvc模板。...MVC MVC ,您可以将 JSON 从请求正文绑定到 .NET 类型,方法是将其作为参数传递给您操作方法并使用[FromBody]属性其进行修饰: [HttpPost("/payments"... ASP.NET Core ,我们可以依靠现有的 HTTP 和路由基础结构来避免 URI 组件进行硬编码。要生成到已知路线链接,我们首先需要一种方法来识别它们。

    7.6K10

    七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    通过第一天学习之后,我们相信您已经MVC有一些基本了解。 本节所讲内容是在上节基础之上,因此需要确保您是否掌握了上一节内容。...本章目标是今天学习结束时利用最佳实践解决方案创建一个小型MVC项目,本节主要目标是了解MVC之间数据传递问题。我们会逐步深入讲解,并添加新功能,使项目越来越完善。 ?...设置类型视图是最佳解决方案。 是否能将View设置为多个Model使用类型? 不可以,实际项目中一个View想要显示多个Model时以点结束。该问题解决方法将在下一节讨论。...理解ASP.NET MVC View Model 实验5已经违反了MVC基本准则。根据MVC,V是View纯UI,不包含任何逻辑层。而我们实验5以下三点违反了MVC体系架构规则。 1....执行 关于实验7 是否可以制定类型View列表? 是的 为什么要新建EmployeeListViewModel单独类而不直接使用类型View列表?1.

    2.3K90

    ASP.NET Core应用7种依赖注入方式

    类型Configure方法中注入 依赖服务还可以直接注入用于注册中间件Configure方法。...由于ASP.NET Core创建中间件对象并利用它们构建整个请求处理管道时,所有的服务都已经注册完毕,所以任何一个注册服务都可以注入中间件类型构造函数。...Scoped服务只能注入中间件类型InvokeAsync方法,因为依赖服务是针对当前请求服务范围中提供,所以能够确保Scoped服务在当前请求处理结束之后被释放。...五、Controller类型构造函数中注入 一个ASP.NET Core MVC应用,我们可以定义Controller以构造函数注入方式注入所需服务。...= null); } } 七、视图中注入 ASP.NET Core MVC应用,我们还可以将服务注册到现View

    1.7K31

    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门

    二、ASP.NET Core MVC 视图引擎(Razor)简介 1、ASP.NET Core MVC 视图引擎(Razor)概述 MVC架构模式,视图引擎/模板引擎负责将控制器(Controller...控制器(Controller)再将渲染结果返回给请求客户端。 ASP.NET Core MVC框架,提供了视图引擎:Razor。 Razor提供了后缀为.cshtml视图模板。...这是因为按照 ASP.NET Core MVC框架约定,当我们控制器(Controller)返回一个视图(return View();)时,如果只指定了视图名称(ViewName),并没有指定视图完成路径...并在视图文件(.cshtml)通过 @model 语法指定对应类型,这样我们可以视图文件(.cshtml)中使用Model关键字来使用传输到视图类型实例。...类型参数示例 创建Person类 项目根目录创建Models文件夹并在文件创建Person.cs using System; namespace Ken.Tutorial.Web.Models

    2.2K50

    《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(

    ,这个类就是依赖注入容器,也可以称为控制反转容器,IOC 容器 ASP.NET Core ,所有被放入依赖注入容器类型或组件被称为服务 容器服务有两种类型:第一种是框架服务,它们是 ASP.NET...Core 框架组成部分;另一种是应用服务,所有由用户放到容器服务都属于这一类 ASP.NET Core 内置依赖注入容器,服务生命周期有如下3种类型: Singleton:容器会创建并共享服务单例...类 使待验证 Model 实现 IValidatableObject 接口 过滤器:与中间件很相似, ASP.NET Core MVC ,它们能够某些功能前后执行,由此形成一个管道 ASP.NET...,前者同步,后者异步,实现一个即可 startup 种注册过滤器会使它影响到应用每个 Action,如果要仅为一个或少数几个 Action 添加过滤器,就得使用特性,ASP.NET Core 为每一种类型过滤器都定义了相应特性...指定过滤器类型进行实例化,如果使用前者,需要在 Startup 类 ConfigureServices 方法中将该过滤器添加到容器

    1.2K10

    .NET Core多平台开发体验: Windows

    很多人都体现过Visual Studio针对命名空间自动补齐特性,当我们C#编辑窗口直接输入一个尚未导入命名空间类型名称时候,一旦我们将鼠标落在该类型上面的时候,Visual Studio会自动出现如下图所示...接下来我们该应用做进一步地改造,将它转变成一个ASP.NET Core MVC应用。...ASP.NET Core框架内置了一个原生依赖注入框架,后者利用一个DI容器提供管道构建以及进行HTTP请求处理过程中所需所有服务,而这些服务需要在应用启动时候被预先注册。...按照约定,我们通常会将这个类型命名为Startup,比如我们演示实例针对ASP.NET Core MVC服务注册和中间件注册就可以放在如下定义这个Startup类。...,所采用完全是一种“约定”,随着ASP.NET Core框架认识加深,我们会发现这种“约定优于配置”设计广泛地应用在整个框架之中。

    1.7K70

    ASP.NET Core MVC应用模型构建: 应用蓝图

    原因很简单,MVC框架建立ASP.NET Core路由终结点上,它最终目的就是将每个Action方法映射为一个或者多个路由终结点,路由终结点根据附加在Action上若干元数据构建而成。...这篇文章大概是两年之前写,可能一些技术细节最新版本ASP.NET Core MVC已经发生了改变,但总体设计依然如此。...包含多个ActionModel和PropertyModel对象,ActionModel和PropertyModel是定义Controller类型Action方法和属性描述。...图2 应用模型总体结构 三、IApplicationModelProvider 软件设计我们经常会遇到这样场景:我们需要构建一个由若干不同元素组成复合对象,不同组成元素具有不同构建方式,MVC...ASP.NET Core MVC应用模型构建[1]: 应用蓝图 ASP.NET Core MVC应用模型构建[2]: 应用模型 ASP.NET Core MVC应用模型构建[3]: Controller

    18210

    ASP.NET Core Startup类 Configure()方法 | ASP.NET Core 中间件详细说明

    Methods(拓展方法)--微软提供中间件 1, Startup 类 ASP.NET Core 应用使用 Startup 类,按照约定命名为 Startup 。...不清楚 Asp.Net Core 请求管道、中间件读者,这一部分内容可以参考 https://www.cnblogs.com/stulzq/p/7760648.html https://www.cnblogs.com...Core 内置很多中间件,用户可以直接使用,将在文章后面介绍 ---- 4,使用中间件 默认创建 Asp.Net Core Mvc 程序时,会生成如下模板(Asp.Net Core 2.1) 文章后面或详细列出所有中间件并加以说明...>) 将中间件委托添加到应用程序请求管道与自定义中间件,使用此方法。...您可以使用浏览器链接一次多个浏览器刷新Web应用程序,这对于跨浏览器测试很有用 UseIdentity(IApplicationBuilder) 此方法已过时,将在将来版本删除。

    3.6K20

    Rails框架流行在他设计理念

    不过在他地盘上开发,为什么要不按人家规则做呢,况且人家目录结构,命名规则以及URL到action映射都很合理很清晰,Mix上会发布asp.net mvc URL Routing上会有很大增强...Model,DB字段名对应Model字段名,表必须有叫做ID整形字段作为key等等很直觉约定。...3、Ajax,这年头,一个web框架肯定要支持ajax,asp.net mvc框架目前ajax支持方面很多人用jQuery做例子很多。...:微软也搞IOC,名叫Unity ,园子里有兄弟介绍了,可参看依赖注入容器Unity Application Block(1):快速入门。...SubSonic 本身是一个功能非常强大应用程序工具集;如与 ASP.NET MVC 配合使用,它将成为非常有用应用程序框架。总之,贯穿RoR设计理念,这点我们用.NET开发是很好借鉴。

    2K50

    asp.net mvc实战-学习笔记(1)

    “HellowWorld”示例 4 类型视图 5 路由基础 微软平台上开发web项目的时间越长你越能体会到如下痛苦 九十年代开发人员用服务器上可执行程序创建动态网站 这些程序(CGI在当时是一个非常普遍技术...服务器端页面时一种HTML代码和动态脚本混合模式 这相对来说是一个巨大进步 随后整个世界出现了大量服务端标记程序 早在2002年,asp.net就出现了。...命名空间中所有东西耦合过紧了 code-behind文件没有任何希望做单元测试 page_load事件中有几种树来打印 虽然早前asp,net版本存在一些缺点 但是asp.net和.net...asp.net应用程序 控制逻辑代码被封装在一个类里以减轻依赖性 视图就是只有HTML代码和controller提供对象页面, 回发事件生命周期不负存在 ViewState也不是必须本章...,我们将带您完成第一个asp.net mvc项目 完成这个项目后,您将为将来更进一步研究做好准备 本章 我们将建立一个asp.net mvc framework web应用程序 我们将梳理默认应用程序并解释每一部分

    51720

    ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    (1)处理流程   ASP.Net MVC,客户端所请求URL是被映射到相应Controller去,然后由Controller来处理业务逻辑,或许要从Model取数据,然后再由Controller...url,因此控制生成SEO友好URL将更加容易;      4.类型View实现、Razor视图、Model绑定机制、Model验证机制,更安全高效; 缺点: 学习成本高,结构复杂,未变化数据不必要频繁访问...4.2 控制器约定大于配置”   Controllers中新建一个控制器,取名为HomeController。默认Index这个Action中新建一个视图,默认名为Index即可。   ...查询数据时需要转换合适类型 ViewPage查询数据时不需要类型转换 有一些类型转换代码 可读性更好   (6)如何在程序中使用ViewData与ViewBag   ①Controller代码...所以,所有的请求都是要指定一个具体Action,Url格式是根据路由规则来定。那么,ASP.Net MVC路由规则默认又是什么,在哪里设置呢?

    2K30

    AOP框架Dora.Interception 3.0 : 编程体验

    ) 实例4(ASP.NET Core MVC + 拦截策略) 实例5(ASP.NET Core MVC + 策略脚本化) 一、演示场景 我们依然沿用“缓存”这个应用场景:我们创建一个缓存拦截器,并将其应用到某个方法上...拦截操作需要定义约定InvokeAsync方法,该方法返回类型为Task,并且包含一个InvocationContext类型参数。...正因为如此,当我们定义拦截器时候可以将依赖服务直接注入到构造函数。...接下来我们一个ASP.NET Core MVC应用中演示针对ISystemClock服务提供时间缓存。...由于不论是指定类型还是方法都是采用“类型方式,所以有效避免了出错可能性。 八、策略脚本化 如果希望不修改现有程序代码前提下自由修改拦截策略,我们可以将策略脚本化。

    47540
    领券