c# - Asp.net core架构开发中我心目中的一些问题

标签 c# asp.net-core-2.1

我开始了一个使用 Asp.net core 2.1 的项目,并阅读了几篇有关该主题的文章。

Asp.Net Core 在新架构以及之前的架构中,同时使用 Razor 页面,因为在 Asp.Net 中还允许您将代码写入页面后面。

1- 我认为向项目注入(inject)依赖项的最佳位置是 Controller 类。我真的不明白在新架构中将代码写到页面后面是什么感觉。此外,如果我们着眼于优化使用,我们应该在页面后面添加重新依赖。什么是逻辑

2- 我在处理项目的时候,发现Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext类和类没有关系>Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext 类。如果我们要升级任何旧的 Asp.Net 项目,是否有与架构要求相关的文档以及原因和最佳实践(如上述 DI 的情况)

I don't have a problem with building the project, I'm just writing here to document this topic in order to better understand it and not to waste unnecessary effort.

最佳答案

请右键单击“区域”>“添加新的脚手架”项目我想如果你使用的是 VS 2017 pro+,你可能会得到一个你可以添加的预定义 RazorPages 列表,我可以说它们主要与登录、注册等身份操作相关,更改密码,...您可以在您的应用程序中以最少的努力获得它们。

对于我的情况,如果我不打算实现复杂的身份模型,或者如果我不想为我的应用程序成员提供 asp.net 身份以外的其他东西,那么 Razor Pages 是最快的方法,一般来说, RazorPages 与 Mvc ViewComponents 的对比(我个人不喜欢在应用程序范围内频繁使用它)(我认为 razor 页面正在使用 MVVM 模式)

长话短说,我相信 Razor 页面是在项目中做一些小功能甚至做小项目的最快和更有条理的方式,但想象一下你在一个大项目中有太多的 Action ,那么你将有大量难以维护的 Razor 页面。

我可以推荐使用 mvc 方法并根据需要使用 razor 页面,对于这两种情况,您仍然可以将类/接口(interface)注入(inject) Controller 构造函数或 Razor 页面构造函数,并且仍然使用内置的 asp.net 核心 DI(< em>services.AddScoped, services.AddTransient, services.AddSingleton)

这里是 Razor 页面的源代码,如果你有心情可以看看它;) https://github.com/aspnet/Mvc/tree/master/src/Microsoft.AspNetCore.Mvc.RazorPages

关于c# - Asp.net core架构开发中我心目中的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53590444/

相关文章:

javascript - Cookie 不随 CORS Web 请求一起发送

c# - 我怎样才能引用一个已经声明的对象

c# - 传递到 ViewDataDictionary 的模型项的类型为 'System.ValueTuple` 2

c# - asp.net core api模型中的datetimeoffset

cookies - 如何禁用 ".AspNet.Consent"cookie 的自动创建?

c# - ASP.NET Core 2.1 - IdentityUser 问题 - 无法为 'IdentityUser' 创建 DbSet 此类型不包含在上下文模型中

c# - C# 中的 SHA1 哈希是否会永远为给定字符串返回相同的值?

c# - 以编程方式将图像放入不活动的表单中?

c# - 如果用户定义函数的静态调用顺序违反了一些规则,让编译器提示

c# - 使用弹性数据库客户端库、EF 和 Identity 时找不到 DbContext