首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OOP在ASP.NET MVC中的价值是什么?

OOP在ASP.NET MVC中的价值是什么?
EN

Software Engineering用户
提问于 2013-07-10 06:20:13
回答 4查看 6.1K关注 0票数 4

作为一名90年代的C++开发人员,在伟大的OOP战争中,我把OOP作为雇佣新的C#开发人员的基础。

然而,现在有很多框架,比如ASP.NET MVC,可以处理大部分OOP的繁重工作。没有对面向对象操作( OOP )有深入了解的程序员可以很容易地遵循这种模式,并且仍然能够完成他们的项目。对于我们应用程序开发人员来说,OOP可能没有以前那么引人注目,特别是在MVC这样的框架中。

我可以看到一些实例,其中OOP将非常方便,例如开发一个项目的工作流类型。或者那些有状态机要求的人。但实际上,大多数真正经过的项目(至少在这里对我们来说是如此)只是一些糟糕的功能。

下面是我招聘时的清单。把OOP作为第一项公平吗?

  1. OOP与设计
  2. 服务器端编程: C#、ASP.NET MVC和EF
  3. 客户端编程: JQuery、CSS、HTML等。
  4. 数据库设计
EN

回答 4

Software Engineering用户

回答已采纳

发布于 2013-07-10 08:01:28

当我在PHP中学习MVC时,我常常认为“OO只是类包装的函数”,特别是因为我已经习惯了一种过程式的编码风格。但是,我越来越多地研究了OOP背后的设计模式、适当的封装、解耦和一般理论。

我可以说,在MVC环境下理解OOP原则确实对应用程序的模型部分产生了影响。虽然控制器仍然差不多已经布置好了,您所需要做的就是用适当的代码填充操作方法,而视图只是带有一些代码的html,模型就是OO原理知识所显示的地方。当你有一个死一般的简单的CRUD应用程序时,它涉及到规划域类。然后添加一个ORM (如EF )来处理持久性,并添加一些存储库来与EF实现分离。然后实现一个工作单元,对每个请求执行持久性操作。然后,您将添加一个DI容器,比如Unity,以保持所有这些良好的解耦,主要是为了允许进行适当的测试。

“应用程序”本质上是领域模型,包含实体类、服务和存储库,如果这个部分做得正确,那么您在上面放置什么样的UI几乎没有什么区别,无论是提供页面的MVC应用程序,还是将JSON发送到移动应用程序或桌面应用程序的REST应用程序。设计良好的模型可以在不同的应用程序中重用。

此外,了解面向对象原则将使人们更容易理解MVC的工作原理,并帮助清除一些隐藏在幕后的“魔力”,并且在必要时可以更容易地切换语言(如果另一种语言也是面向对象的)。

总之,我会说是的,OOP和设计是必不可少的。

票数 3
EN

Software Engineering用户

发布于 2013-07-10 08:39:32

我还负责公司的技术面试。

很难告诉你什么是我的第一项目,因为我喜欢有广泛的技术知识的人。

但是,有一点是肯定的,即使我们使用的大多数实际框架都倾向于抽象OOP,开发人员至少应该了解和理解他们使用的是什么。

在我看来,面向对象仍然是认识和理解的一个重要部分。

我仍然为这么多人无法解释接口的有用性而感到惊讶!甚至连接口和抽象类之间的区别都是什么!

我们真的很喜欢清洁建筑,我们也是洋葱一号的粉丝。开发人员怎么能在不知道接口是什么的情况下编写应用程序核心呢?

了解如何使用EF,如何编写一些MVC或对JQuery有基本知识,是所有开发人员都能做到的。

了解OOP是什么,它有多有用,什么时候使用它很重要,这可能是普通开发人员和真正想要雇用的人之间的关键区别。

票数 1
EN

Software Engineering用户

发布于 2013-07-10 10:03:43

我希望C#开发人员能够很好地理解OOP。但是,我从您的列表中得到的印象是,您的开发人员将是一个通才,而不是C#专家。

如果您根据您的OOP知识选择您的开发人员,您可能有一个非常干净的控制器和模型;但是当需要时,他们可能无法编写优化的SQL查询,而且您的前端体系结构最终可能会变得一团糟。

也许你可以试着雇佣一些技能互补的人。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/204252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档