Questions tagged «asp.net-mvc»

ASP.NET MVC框架是一个Microsoft Web应用程序框架,它实现了模型视图控制器(MVC)模式。

2
.NET MVC项目体系结构/分层
在为中型MVC Web应用程序规划体系结构时,如何实现这些层尽可能地分离和易于测试?(基本上遵循最佳实践)假设我首先使用代码作为数据访问权限。 我为定义“业务逻辑”的定义以及与数据层交互的方式感到困惑。以车辆销售应用程序为例,业务逻辑是否是执行诸如计算给定车辆的税阶,比较每加仑英里数统计信息之类的任务的类?至于业务实体(例如汽车,货车,摩托车),我会将它们与DataContext班级一起放在数据层中。 还有什么会构成与业务相对的应用程序逻辑-我正在猜测会话/用户输入验证之类的东西? 因此,例如,汽车管理员可能会返回一个操作/查看结果,其中列出了按类型和最佳mpg过滤的前十名汽车。假设我有一个ICarRepository“ carRepo”注入到我的控制器中(使用存储库模式/ DI),我从一个动作方法参数中过滤了我的汽车var cars = carRepo.getCarsByType("hatchback"); 因此,我已使用存储库将数据访问知识排除在控制器之外,现在使用域模型将业务逻辑排除在控制器之外-var result = new MpgCalculator(cars); -假设我需要计算器类,因为它需要执行其他逻辑以计算最佳燃油效率,而不仅仅是从数据库中加载/过滤实体。因此,现在我有了一个供呈现的视图数据集,该数据集使用存储库从数据访问层检索,并且使用特定于域的对象来处理和执行与数据相关的业务相关任务。 我在这里犯错吗?我们仍然需要使用存储库模式吗?或者我可以只对接口进行编码以解耦ORM和进行测试吗?关于这个主题,因为我的具体数据访问类dbcontext在数据层中,所以接口定义是否应该进入域/业务层,这意味着如果数据访问技术发生了变化,我的其他层是否会受到影响? 根据到目前为止的研究,我的结构如下所示: MVC Internet应用程序 ->标准Internet项目-这里的模型是ViewModels 域/业务层 ->特定于业务的类/模型,控制器可以使用这些类/模型来处理数据层中的域实体,然后再传递到相关视图 存储库抽象有必要吗?->我听到很多关于此的辩论,尤其是在使用ORM时 数据层 ->实体类(汽车,货车,摩托车),DbContext-具体数据访问技术层

3
实体框架实体-来自Web服务的一些数据-最佳体系结构?
当前,我们在多个Web应用程序中使用Entity Framework作为ORM,并且到目前为止,由于我们的所有数据都存储在单个数据库中,因此它非常适合我们。我们正在使用存储库模式,并具有使用它们的服务(域层),并将EF实体直接返回到ASP.NET MVC控制器。 但是,提出了使用第三方API(通过Web服务)的要求,这将为我们提供与数据库中与用户相关的额外信息。在我们的本地用户数据库中,我们将存储一个外部ID,我们可以将其提供给API以获取其他信息。有很多可用的信息,但是为了简单起见,其中之一与用户的公司有关(名称,经理,房间,职务,位置等)。此信息将在整个Web应用程序的各个位置使用-而不是在单个位置使用。 所以我的问题是,填充和访问此信息的最佳位置是哪里?由于它已在各个地方使用,因此无论我们在Web应用程序中使用的何处,都临时地获取它并不明智,因此从域层返回这些附加数据是有意义的。 我最初的想法只是创建一个包含EF实体(EFUser)的包装模型类,以及一个包含新信息的新'ApiUser'类-当我们获取用户时,我们获取EFUser,然后获取其他来自API的信息,并填充ApiUser对象。但是,虽然这对于获得单个用户来说是不错的选择,但在获得多个用户时却会失败。获取用户列表时,我们无法点击API。 我的第二个想法只是向EFUser实体添加一个单例方法,该实体返回ApiUser,并在需要时填充它。这解决了上述问题,因为我们仅在需要时才访问它。 或最终的想法是将数据的本地副本保留在我们的数据库中,并在用户登录时将其与API同步。这是最小的工作,因为这只是一个同步过程-而且我们没有点击的开销每当我们想要获取用户信息时,数据库和API。但是,这意味着将数据存储在两个位置,也意味着该数据对于已经一段时间没有登录的任何用户而言都是过时的。 是否有人对如何最好地处理这种情况有任何建议或建议?

4
在单元测试中,为什么要创建两次存储库?
前几天,我在阅读有关单元测试的内容时,看到了一些示例,人们在其中创建了一个存储库界面(即IExampleRepository),然后创建了真实的存储库(public class ExampleRepository : IExampleRepository)和一个用于单元测试的存储库(FakeExampleRepository : IExampleRepository)。 在中,IExampleRepository他们实现了与中相同的方法ExampleRepository,但是使用了不同的Linq查询。 确切的目的是什么?我认为对代码进行单元测试的一部分是确保一种方法正常工作吗?但是,当我使用两个完全不同的查询时,一个用于“真实”查询,另一个在测试中,该测试有多大意义?

1
如何在ASP.NET中构建良好的服务层?
我研究了一些问题,以及用于构建良好服务层的技术,但与此相关的一些问题我需要帮助。 首先,我需要一些信息。当前,我们有许多Web应用程序以蜘蛛网的方式相互通信(所有Web应用程序和数据库数据都以令人困惑的方式相互通信)。 我们希望对此进行更改,以便所有应用程序都经过一个服务层,在该服务层中,我们可以更多地使用缓存并封装通用功能等等。 我们希望该层也具有Web API,以便第三方客户端可以使用该服务中的信息。 我看到的问题是,如果我们使用MVC4 Web API构建服务层,则不需要使用webAPI在应用程序之间进行通信,这意味着我们必须构造URL并使用JSON / Xml。听起来不太有效。我假设有一个更好的方法将与实体和WCF一起在应用程序之间进行通信,但是我们可能会松开Web API的魔力? 因此,问题在于是否有一种方法可以将服务层既用作Web API(JSON / XML),又用作具有实体的后端服务层。如果我们被迫使用2个不同的服务层,我们可能不得不重复一些功能和其他不好的事情。 希望这个问题很清楚,请询问是否需要更多信息。

3
ASP.net 5和EF7中是否不再需要存储库?
我在github上向EF团队发布了一个问题。我得到了一个答复,说最好在这里提出这个问题,所以我将其复制并粘贴到此处作为链接,以便其他人可以在GitHub上看到一些答复。 问题:我正在做一些研究,有人指出DBContext类的第24行指出 DbContext是工作单元和存储库模式的组合。 这是否意味着我们不再需要将EF抽象到存储库,然后使用and Interface将其注入Controller中? Github上的原始帖子:https : //github.com/aspnet/EntityFramework/issues/4899 我问这个问题的原因是,我似乎进入了一个即时状态,即在存储库中添加了很多方法,例如GetById,GetByName,GetWithIncludesABC,GetWithIncludes123等。这似乎在困扰着我

3
ASP.Net中的三层体系结构和MVC(模型,视图控制器)之间的区别
我很想知道3层架构与ASP.Net中的MVC(模型,视图控制器)有何不同,因为在我看来,该架构适用。 在3层中,我们有User Services Layer,BusinessLayer而DataAccessLayer在另一方面Model,中View,和Controller。在我看来,这是相同的体系结构。 谁能解释这两种架构的真正区别是什么,每一层之间又有什么不同?

6
Razor或XSLT是否更适合我的项目?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我正处于系统设计的初期阶段,该系统实际上将分为两部分。一个部分是服务,另一部分是与服务的接口,该接口通过OData或XML之类的数据提供数据。该应用程序将基于MVC架构模式。对于视图,我们正在考虑在ASP.NET下使用XSLT或Razor。 XSLT或Razor将有助于分离关注点,其中原始XML或响应表示您的模型,XSLT或“ Razor视图”表示您的视图。在本示例中,我将省略控制器。最初的设计建议建议使用XSLT,但是我建议使用Razor作为更友好的视图引擎。 这些是我建议使用Razor(C#)的原因: 更易于使用和构建更复杂的页面。 可以轻松产生非* ML输出,例如csv,txt,fdf 不太冗长的模板 视图模型是强类型的,其中XSLT需要依赖约定,例如布尔值或日期值 标记更易于访问,例如nbsp,换行符标准化,服装值标准化,空白规则 内置的HTML帮助程序可以基于DTO属性生成JS验证代码 内置的HTML帮助程序可以生成操作的链接 对于剃须刀而言,XSLT的论点是: XSLT是一个标准,并且在将来仍会存在很多年。 很难不小心将逻辑移到视图中 对于非程序员更轻松(我不同意)。 在我们过去的一些项目中,它是成功的。 数据值默认为HTML编码 始终保持良好状态 因此,我正在寻找双方的观点,建议或做出类似选择的经验?
9 c#  asp.net-mvc  xslt  razor 

5
在开发之前对现代应用程序建模的标准是什么?
我正在处理我的第一个企业级应用程序,我希望我的团队在提取代码之前就对整个ASP.NET MVC C#应用程序进行建模。 更新:这并不是要对何时记录/建模应用程序进行哲学上的讨论。请仅提供有关“如何”文档/模型的答案。 事实是,我一直在这个部门中工作过,而且从未真正建模过应用程序。这样做的标准方法是什么?应该使用哪种类型的图表以及文档外观如何?链接到示例图和文档表示赞赏。 在搜索时,我可以在网上找到很多东西,但是我想看看是否存在关于如何执行此操作的现代共识。 提前致谢! 结束语 我不知道这是一个棘手的话题。谢谢所有能够抛弃明显争议并提供有用答案的人。至少可以说这是一个有趣的讨论:) 我发现的另一个有用链接是:https : //stackoverflow.com/questions/61487/do-you-use-uml-in-agile-development-practices/61519#61519
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.