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

MVC控制器应该在单独的DLL中吗?

MVC(Model-View-Controller)架构是一种软件设计模式,用于实现用户界面和数据模型之间的解耦。在这种模式中,控制器(Controller)是负责处理用户输入并更新模型(Model)和视图(View)的组件。关于MVC控制器是否应该放在单独的DLL中,这取决于您的项目需求和架构设计。

将MVC控制器放在单独的DLL中具有以下优势:

  1. 代码重用:将控制器放在单独的DLL中可以使其在多个项目中重用。
  2. 模块化:将控制器分离出来有助于实现项目的模块化,便于维护和扩展。
  3. 单元测试:将控制器与其他组件分离可以更容易地对其进行单元测试。
  4. 隐藏实现细节:将控制器放在单独的DLL中有助于隐藏实现细节,使其他组件不受其内部实现的影响。

然而,将MVC控制器放在单独的DLL中也有一些缺点,例如增加了项目的复杂性和部署的难度。

总之,是否将MVC控制器放在单独的DLL中取决于您的项目需求和架构设计。如果您认为将控制器分离出来有助于提高代码重用、模块化、可维护性和可测试性,那么将其放在单独的DLL中是一个好主意。但是,如果您的项目较小,或者您认为将控制器与其他组件集成在一起更简单,那么将其放在同一个DLL中也是可以的。

关于腾讯云相关产品和产品介绍链接地址,腾讯云提供了一系列云计算服务,包括虚拟机、容器、数据库、存储、网络、安全、大数据、人工智能等。以下是一些可能与MVC控制器相关的腾讯云产品:

  1. 虚拟机:腾讯云提供了一个可以创建和管理虚拟机的服务,可以用于部署和运行MVC应用程序。
  2. 容器:腾讯云支持Docker容器,可以用于部署和运行MVC应用程序。
  3. 数据库:腾讯云提供了多种数据库服务,包括关系型数据库和非关系型数据库,可以用于存储MVC应用程序的数据。
  4. 存储:腾讯云提供了一个可以用于存储MVC应用程序的数据的存储服务。
  5. 网络:腾讯云提供了一个可以用于连接MVC应用程序的网络服务。
  6. 安全:腾讯云提供了一系列安全服务,包括防火墙、SSL证书、数据加密等,可以用于保护MVC应用程序的安全。

以上是一些可能与MVC控制器相关的腾讯云产品,您可以根据您的项目需求选择适合的产品。

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

相关·内容

【小家Spring】Spring MVC控制器Handler四种实现方式:Controller、HttpRequestHandler、Servlet、@RequestMapping

如今Spring家族产品大行其道,基于MVCweb层面框架:Spring MVC几乎已经成为了现实开发标准 什么是Spring MVCMVC设计模式之前,很多应用程序问题在于处理业务数据对象和显示业务数据视图之间存在紧密耦合...Spring MVCHandler书写方式 作为新时代(Spring3.0以后)程序员,采用Spring MVC框架书写控制器是非常简单。...相关控制器,还有一个与Servlet相关控制器是ServletForwardingController。...比如:遥控器给灯可以发送命令:开灯 总结 在使用Spring MVC开发过程,Handler(就是Controller)是我们需要手动开发主要内容(其余都是Spring MVC自动去处理,...关于HttpRequestHandler前面文章是有重点讲述,具体参考: 【小家Spring】Spring MVC控制器Handler四种实现方式:Controller、HttpRequestHandler

4.7K10

聊聊iOS MVC、MVP、MVVM以及 VIPER等代码组织方式

但是现实我们View依然跟Model耦合,因为如果完全按照这个理想化MVC的话,View(cell)层设置都应该在 Controller,这样的话,Controller会更臃肿。...(3)现实MVC Cocoa MVC 鼓励你去写重控制器是因为 View 整个生命周期都需要它去管理, Controller 和 View 很难做到相互独立。...P层处理完了业务逻辑,如果要更改view显示,那么可以通过回调来实现,这样可以减轻耦合,同时可以单独测试P层业务逻辑。...Apple MVC 实际上是 MVP ?...在ios,MVVM编码可能会成这样 这个图解准确地描述了什么是 MVVM:一个 MVC 增强版, 我们正式连接了视图和控制器,并将表示逻辑从 Controller 移出放到一个新对象里, 即 View

4.1K21

Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC区域功能实现将多个MVC项目部署到一个站点

引子 本文将主要演示怎么将多个Asp.Net MVC项目部署到一个IIS站点中例子,主要使用是Asp.Net MVC提供区域功能。...是一个类库项目 3、补充:Asp.Net MVC控制器:Controller是可以放到站点任何DLL,它在搜索控制器时,会搜索站点下所有DLL,当类符合条件:不是静态类,类名以Controller...结尾,实现了Controller基类【其实最主要是IController接口】条件时它就会被识别为控制器。...所以我们可以把控制器放到任何其他项目中,只有将此控制器所在DLL拷贝到、主站点Bin目录或者对应DLL目录就可以了。当然也可以放在默认Web项目中Controller文件夹下。...然后我们注册区域路由就会在Global.asaxApplication_Start事件方法中去执行注册到主站点路由表

79910

分享一个基于Net Core 3.1开发模块化项目

框架如何去加载所写模块这是最核心问题之一,好在Asp.Net Core MVC为模块化提供了一个部件管理类 Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager...它支持从外部DLL程序集加载组件以及组件管理.不过要从外部组件去获取哪些是组件我们需要借助一个工厂类ApplicationPartFactory,这个类支持从外部程序集得到对应控制器信息,核心代码如下...,但是视图文件在项目生成时候是单独*.Views.dll文件,我们接下来介绍如何加载视图文件,同样还是用到了ApplicationPartManager类 mvcBuilder.PartManager.ApplicationParts.Add...这里我使用了自定义ModuleAssemblyLoadContext去加载程序集,这个类继承自AssemblyLoadContext(它支持卸载加载过程序集,但是部件添加到MVC时,好像不支持动态卸载会出现异常...好在MVC框架也提供了一个静态资源配置方法UseStaticFiles,我们在Configure方法启用静态资源组件时,可以自定义设置静态文件访问路径,设置代码如下 //设置每个模块约定静态文件目录

1.7K10

零基础ASP.NET Core MVC插件式开发

这里介绍一种使用ASP.NET Core MVC 技术开发Web后台系统,使用插件式方案。...创建一个ASP.NET Core MVC项目,项目结构如下图1,完全是脚手架自动创建好标准项目 ?...图4 增加这个具体原因等会看插件项目的说明 3、还有为了演示能否访问到插件,这里增加两个插件超链接,具体到业务,菜单肯定是数据库动态维护。...然后删除脚手架默认创建外层控制器和视图文件,因为主项目也有这样同名控制器路由,这些不删除,到时候注册到主项目,会出现重复路由错误。...插件项目增加各自Areas,新建控制器如图8,新建对应试图如图9。这里就添加几个模拟数据。 ? 图8 ?

1.1K30

Fastreport.net 如何在开发MVC应用程序时使用报表

当你使用MVC模板创建自己Web项目,会出现一个合理问题 - 如何在其中使用FastReport.Net Web报表? 在这篇文章,我会为你演示如何做到这一点。...由于在MVC体系结构,视图与逻辑分离,所以你将无法使用WebReport可视化组件。我将不得不使用控制器代码报表,然后将其转移到视图。例如,在这里我使用了一个标准MVC Web应用程序。...首先,我们将必要库连接到项目中: · FastReport.dll; · FastReport.Web.dll。 你可以在FastReport.Net应用程序文件夹中找到它们。...ViewBag是对象ViewData一个封装,用于将数据从控制器传输到视图。在这种情况下,我们会将报表传送到视图索引,本质上来讲就是主页。 我们转到演示: ?...也就是说,要在页面上显示报表,只需添加代码: @ ViewBag.WebReport.GetHtml() 相应控制器会发送一个报表给它。

1.6K40

ListView列表数据源——Adapter

Android 鼓励弱耦合和组件重用,Android MVC具体体现如下: 模型(model):是应用程序主题部分,所有的业务逻辑都应在该层(对数据库操作、对网络等操作都应该在model里面处理...在MVC模式其实控制器Activity主要是起到解耦作用,将View视图和Model模型分离,虽然Activity起到交互作用,但是一般在Activity中有很多关于视图UI显示代码,因此View视图和...Activity控制器并不是完全分离,也就是说一部分View视图和Contronller控制器Activity是绑定在一个类。...Android适配器负责为列表组件提供数据源,也负责将单独数据元素转换为显示在列表组件特定视图,如ListView适配器关系如下图所示。 ?...这里使用了Android系统自带视图资源,系统预定义视图资源主要有以下几种: android.R.layout.simple_list_item_1: 单独一行文本框。

2K100

唯一可行 iOS 架构

但是您应该知道,在原始 MVC , Controller 和 View 都具有图形表示。 总而言之,原始 MVC 应该看起来像这样: ? 这适用于iOS? 当然可以!...MVP MVP 是其中最奇怪一个。MVP 由 Mike Potel 于 1996 年推出,是对 MVC 修改。在有关 MVP 工作,Potel 建议无需将小部件划分为“视图”和“控制器”。...由于许多应用程序逻辑不属于模型或视图,因此通常会在控制器处理。这导致了一个称为 Massive View Controller 问题,在该问题中,视图控制器最终会做太多事情。...但是在 VIPER ,即使逻辑很小或非常具体,我们也总是创建 5 个类。问题确实有所不同,并且没有适合所有问题方案。我们应该根据此特定逻辑单独进行分解。...这个逻辑应该在 UIViewController ?如果存在很多复杂表示逻辑怎么办?除了复杂性之外,还存在测试问题。测试 UIViewController 类并不容易。

1.2K20

AutoFac - 将 autofac 应用于MVC多层项目

最近在做毕业设计,在开发采用了autofac来进行依赖注入,这里是对踩到一些坑解决方法,希望可以给同样不幸进入这些坑童鞋们提供一些解决思路。   ...:控制器 ?   ...在容器中注册配置模块   因为我们会把所有的接口与实现类映射放置于xml文件,将所有的模块注册在容器,通过对于官方方法封装,创建一个静态方法去自由选择加载需要接口与实现类,代码和配置文件如下...在控制器调用接口实例,我是采用重写 Controller 类 Inintalize 方法,实现接口注入,这样我们就可以在控制器调用接口里方法了,实现方法如下图所示。...Web项目,它所依赖dll全部位于网站根目录下面的bin文件夹,由于我们采用IOC加载接口实现层,Web层只引用接口,不引用接口实现层,所以autofac无法在项目中找到PSU.Domain这个dll

77940

在Unity3d如何使用MVC框架(Unity3D)

通常模型对象负责在数据库存取数据。 View(视图) 是应用程序处理数据显示部分。   通常视图是依据模型数据创建。 Controller(控制器) 是应用程序处理用户交互部分。   ...MVC开始是存在于桌面程序,M是指业务模型,V是指用户界面,C则是控制器,使用MVC目的是将M和V实现代码分离,从而使同一个程序可以使用不同表现形式。...MVC业务流程 MVC是设计模式 MVC是一种设计模式,但是却不在Gof总结过23种设计模式,所以确切说MVC不是一个设计模式,而是多种设计模式组合,而不仅仅只是一个设计模式。...组合模式类层次结构是树状, 而我们做Web时视图层是html页面,html结构不正是树状,这其实就是一个组合模式应用,只是浏览器厂商已经把界面相关工作帮我们做掉了,但它确确实实是我们应用MVC...总结一下,关于MVC各层之间关系所对应设计模式 View层,单独实现了组合模式 Model层和View层,实现了观察者模式 View层和Controller层,实现了策咯模式 MVC就是将这三个设计模式在一起用了

2K30

【Unity3D日常开发】Unity3d中使用MVC框架

通常模型对象负责在数据库存取数据。 View(视图) 是应用程序处理数据显示部分。   通常视图是依据模型数据创建。 Controller(控制器) 是应用程序处理用户交互部分。   ...MVC开始是存在于桌面程序,M是指业务模型,V是指用户界面,C则是控制器,使用MVC目的是将M和V实现代码分离,从而使同一个程序可以使用不同表现形式。...MVC业务流程 MVC是设计模式 MVC是一种设计模式,但是却不在Gof总结过23种设计模式,所以确切说MVC不是一个设计模式,而是多种设计模式组合,而不仅仅只是一个设计模式。...组合模式类层次结构是树状, 而我们做Web时视图层是html页面,html结构不正是树状,这其实就是一个组合模式应用,只是浏览器厂商已经把界面相关工作帮我们做掉了,但它确确实实是我们应用MVC...总结一下,关于MVC各层之间关系所对应设计模式 View层,单独实现了组合模式 Model层和View层,实现了观察者模式 View层和Controller层,实现了策咯模式 MVC就是将这三个设计模式在一起用了

2.1K10

SSM疑难杂症--持续更新

:获得ResourceLoader对象,可以获得classpath某个文件 ServletContextAware:在一个MVC应用可以获取ServletContext对象,可以读取context参数...ServletConfigAware:在一个MVC应用可以获取ServletConfig对象,可以读取config参数 总结: Bean容器读取配置文件并注册类信息 Bean容器反射创建Bean...一句话总结:请求发送到前端控制器,然后转移给映射器返回处理器和拦截器链,前端控制器通过控制器获取适配器,然后调用里面的hanlder方法执行控制器方法,控制器将json返回值返回到客户端,具体请看 SpringMVC...Mybatis Dao接口中参数不同可重载?...使用Mybatis提供接口,拦截语句后再改写语句 延迟加载原理 使用cglib动态代理,拦截方法,当发现调用属性为空时,会单独发送事先保存关联对象sql语句 动态代理要求 代理接口全限定类名与映射文件命名空间相同

45420

谈对象MVC多端

所以上面那一句流程,明显涉及对象有:商品、用户、购物车、订单,隐含对象有:页面控制器。...你可能会用黑白屏显示、也可能会用彩色屏显示、也可能会用语音播报,这种情况就不能把显示温度放在Temp.c里面,而是应该在业务C文件里把数据读出来运算处理,最后把数据传到对应显示设备C文件中去展示。...为什么要MVC和怎么MVC MVC即是模型-视图-控制器意思,但实践,我发现这种统一MVC说法并不能适应到程序编程各行各业。...对于到达何种复杂度就封装到Model,我经验不足暂无法下定论,因为现在为止我项目还没有使用“虚拟模型”,也就是说我把MVC三层把C 层拆分出了两层,而M层至今留空。至于为何这样做,稍后再分析。...那三大模块就写三份程序

72420

SSM框架原理,作用及使用方法

作用: SSM框架是spring MVC ,spring和mybatis框架整合,是标准MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层 使用spring...使用方法: 要完成一个功能: 先写实体类entity,定义对象属性,(可以参照数据库中表字段来设置,数据库设计应该在所有编码开始之前)。...Spring MVC拥有控制器,作用跟Struts类似,接收外部请求,解析参数传给服务层 Spring容器属于协调上下文,管理对象间依赖,提供事务机制 mybatis属于orm持久层框架,将业务实体...Spring配置文件里面进行,针对具体业务流程,会有不同控制器,我们具体设计过程可以将流程进行抽象归纳,设计出可以重复利用子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。...各层联系 DAO层,Service层这两个层次都可以单独开发,互相耦合度很低,完全可以独立进行,这样一种模式在开发大项目的过程尤其有优势 Controller,View层因为耦合度比较高,因而要结合在一起开发

1.5K60

Asp.Net MVC2.0 Url 路由入门

并简单介绍Asp.Net MVC2.0 Url路由技术使用。      Url路由是MVC很重要核心一部分。不过它是单独MVC项目,而且没有开源。...它作为微软一个独立项目抽取了出来,在Asp.Net MVC只是引用了这个dll。新建一个MVC Web项目,打开Global.asax。...Routing作为一个单独dll被我们项目引用。微软并没有对Routing进行开放源代码。所以:Asp.Net MVC是开源,但是Routing不是开源!...date=2009-1-1&id=201 这才是真正url! 现在开始讲Asp.Net MVC路由机制,首先要有个观念就是:Asp.Net MVCurl地址是表现web程序一个逻辑结构。...新建一个Asp.Net MVC Web项目。然后按F5直接可以运行。页面会自动跳转到http://localhost:端口号/Home/Index页面。玄机还是在Global.asax

82950

vs2012升级vs2017后一些坑

我是在将vs2012升级成2017时候遇到,然后把遇到这些都给复制到类库重新引用,或者将引用属性【复制本地】改为True ?...异常信息:项目引用system.web.mvc等失效.....重新安装系统并安装了vs2012后使旧项目引用 system.web.mvc等失效了,找不到文件 解决方法: 从其他地方拷贝到本机,重新添加引用 异常信息:服务器未安装framework4.5...,项目缺失引用问题 若服务器未安装framework4.5,项目缺失引用问题 解决方法: 安装对应framework 同第一个问题,将dll属性改为复制到本地即可 问题记录:vs2017...安装还原Nuget包后,packages文件夹不存在 正常来讲,本应该在解决方案目录下面的packages,但是木有,但是可以在C:\Users\Administrator\.nuget\packages

2.2K10

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

测试驱动 ASP.NET MVC Keith Burnell 下载代码示例 模型-视图-控制器 (MVC) 模式核心是将 UI 功能划分成三个组成部分。模型表示您领域数据和行为。...图 2 解决方案结构示例 我建议将您控制器放置于一个单独 Visual Studio 项目中。有关如何轻松实现此建议信息,请参见 bit.ly/K4mF2B 上博客文章。...通过将您控制器放置于单独项目中,您可以进一步将处于控制器逻辑与 UI 代码分离开来。结果就是您 Web 项目仅包含真正与 UI 相关代码。...但遗憾是,它驻留在 System.Web.MVC DLL ,而我不希望在应用程序体系结构非 Web 层具有对特定于 Web 技术引用。...使用 StructureMap 作为默认控制器工厂 ASP.NET MVC 提供了一个扩展点,使您能够添加在您应用程序实例化控制器方式自定义实现。

5.4K70
领券