更新时间:2025 08 26 12:32:51 作者 :庆美网 围观 : 44次
各位老铁们,大家好,今天由我来为大家分享asp.net教程下载—asp.net app,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
SignalR 使用新的Microsoft.AspNetCore.Http.Features.IHttpActivityFeature.Activity将http.long_running标记添加到请求活动。Azure Monitor Application Insights等APM 服务IHttpActivityFeature.Activity使用它来过滤 SignalR 请求以防止创建长时间运行的请求警报。
Razor 编译器现在基于C# 源代码生成器。源代码生成器在编译期间运行并检查正在编译的内容以生成与项目的其余部分一起编译的附加文件。使用源代码生成器可以简化 Razor 编译器并显着加快构建时间。
Razor 编译器之前使用了一个两步编译过程,该过程生成了一个单独的 Views 程序集,其中包含.cshtml在应用程序中定义的生成的视图和页面(文件)。生成的类型是公共的并且在AspNetCore命名空间下。
更新后的 Razor 编译器将视图和页面类型构建到主项目程序集中。这些类型现在默认生成为AspNetCoreGeneratedDocument命名空间中的内部密封。此更改提高了构建性能,支持单文件部署,并使这些类型能够参与热重载。
有关此更改的更多信息,请参阅GitHub 上的相关公告问题。
进行了许多更改以减少分配并提高整个堆栈的性能:
对于仅偶尔来回发送数据的长时间运行的 TLS 连接,我们在 .NET 6 中显着减少了 ASP.NET Core 应用程序的内存占用。这将有助于提高 WebSocket 服务器等场景的可扩展性。这是可能的,因为System.IO.Pipelines、SslStream和 Kestrel 的许多改进。以下部分详细介绍了有助于减少内存占用的一些改进:
对于建立的每个连接,在 Kestrel 中分配了两个管道:
通过将System.IO.Pipelines.Pipe的大小从 368 字节缩小到 264 字节(大约减少 28.2%),每个连接节省了 208 字节(每个管道 104 字节)。
SocketSender对象(即SocketAsyncEventArgs 的子类)在运行时约为 350 字节。SocketSender可以将它们池化,而不是为每个连接分配一个新对象。SocketSender对象可以被池化,因为发送通常非常快。池化减少了每个连接的开销。不是为每个连接分配 350 个字节,而是为每个连接分配 350 个字节IOQueue。分配是按队列完成的,以避免争用。我们的具有 5000 个空闲连接的 WebSocket 服务器从分配 ~1.75 MB(350 字节 * 5000)到为SocketSender对象分配 ~2.8 kb(350 字节 * 8)。
无缓冲读取是 ASP.NET Core 中采用的一种技术,用于避免在套接字上没有可用数据时从内存池中租用内存。在此更改之前,我们的具有 5000 个空闲连接的 WebSocket 服务器在不使用 TLS 的情况下需要约 200 MB,而在使用 TLS 的情况下需要约 800 MB。其中一些分配(每个连接 4k)来自 Kestrel,必须在等待SslStream上的读取完成时保留ArrayPool
在支持无缓冲读取的情况下SslStream,添加了一个选项来执行零字节读取StreamPipeReader,这是将 a 适配Stream为 a的内部类型PipeReader。在 Kestrel 中, aStreamPipeReader用于将底层证券调整SslStream为 a PipeReader。因此有必要在PipeReader.
甲PipeReader现在可以创建支持零字节读出在任何底层Stream支持零字节读语义(例如,。 SslStream,的NetworkStream使用以下API等):
.NET 命令行
为了减少堆的碎片,Kestrel 采用了一种技术,它分配 128 KB 的内存块作为其内存池的一部分。然后将这些板进一步划分为 4 KB 的块,供 Kestrel 内部使用。平板必须大于 85 KB 才能强制在大对象堆上进行分配,以尝试阻止 GC 重新定位该数组。然而,随着新一代 GC 的引入,固定对象堆(POH),在平板上分配块不再有意义。Kestrel 现在直接在 POH 上分配块,降低了管理内存池的复杂性。此更改应该更容易执行未来的改进,例如更容易缩小 Kestrel 使用的内存池。
IAsyncDisposable现在可用于控制器、Razor 页面和视图组件。在工厂和激活器的相关接口中添加了异步版本:
IAsyncDisposable 与以下人员一起工作时是有益的:
实现该接口时,使用DisposeAsync方法释放资源。
考虑一个创建和使用Utf8JsonWriter的控制器。Utf8JsonWriter是一个IAsyncDisposable资源:
C#
IAsyncDisposable必须实施DisposeAsync:
C#
Vcpkg是 C 和 C++ 库的跨平台命令行包管理器。我们最近添加了一个端口来vcpkg添加CMake对 SignalR C++ 客户端的本机支持。vcpkg也适用于 MSBuild。
当 vcpkg 包含在工具链文件中时,可以使用以下代码段将 SignalR 客户端添加到 CMake 项目中:
.NET 命令行
通过前面的代码片段,SignalR C++ 客户端#include无需任何额外配置即可在项目中使用和使用。有关使用 SignalR C++ 客户端的 C++ 应用程序的完整示例,请参阅halter73/SignalR-Client-Cpp-Sample存储库。
Blazor WebAssembly 应用可以使用为在 WebAssembly 上运行而构建的本机依赖项。有关详细信息,请参阅ASP.NET Core Blazor WebAssembly 本机依赖项。
Blazor WebAssembly 支持提前 (AOT) 编译,您可以在其中将 .NET 代码直接编译到 WebAssembly 中。AOT 编译以更大的应用程序大小为代价提高了运行时性能。重新链接 .NET WebAssembly 运行时会修剪未使用的运行时代码,从而提高下载速度。有关详细信息,请参阅提前 (AOT) 编译和运行时重新链接。
Blazor 支持在预呈现页面中保留状态,以便在应用程序完全加载时不需要重新创建状态。有关详细信息,请参阅预渲染和集成 ASP.NET Core Razor 组件。
错误边界提供了一种在 UI 级别处理异常的便捷方法。有关详细信息,请参阅处理 ASP.NET Core Blazor 应用程序中的错误。
的
Blazor 支持优化的字节数组 JS 互操作,可避免将字节数组编码和解码为 Base64。有关详细信息,请参阅以下资源:
改进了对使用查询字符串的支持。有关详细信息,请参阅ASP.NET Core Blazor 路由和导航。
绑定支持元素的多个选项选择。有关详细信息,请参阅以下资源:
Razor 组件可以修改页面的 HTML元素内容,包括设置页面的标题(
从 Web 框架(例如 Angular 或 React)的 Razor 组件生成特定于框架的 JavaScript 组件。有关详细信息,请参阅ASP.NET Core Razor 组件。
从 JavaScript 为现有 JavaScript 应用程序动态渲染 Razor 组件。有关详细信息,请参阅ASP.NET Core Razor 组件。
实验性支持可用于构建使用标准 HTML 接口的自定义元素。有关详细信息,请参阅ASP.NET Core Razor 组件。
祖先组件可以使用新[CascadingTypeParameter]属性按名称将类型参数级联到后代。有关详细信息,请参阅ASP.NET Core Blazor 模板化组件。
使用新的内置DynamicComponent组件按类型呈现组件。有关详细信息,请参阅动态呈现的 ASP.NET Core Razor 组件。
FocusOnNavigate从一个页面导航到另一个页面后,使用新组件将 UI 焦点设置为基于 CSS 选择器的元素。有关详细信息,请参阅ASP.NET Core Blazor 路由和导航。
Blazor 支持自定义事件参数,这使您能够使用自定义事件将任意数据传递给 .NET 事件处理程序。有关详细信息,请参阅ASP.NET Core Blazor 事件处理。
应用新[EditorRequired]属性以指定所需的组件参数。有关详细信息,请参阅ASP.NET Core Razor 组件。
为页面、视图和 Razor 组件配置 JavaScript 文件,作为在应用程序中组织脚本的便捷方式。有关详细信息,请参阅Blazor JavaScript 互操作性 (JS interop)。
JavaScript 初始化程序在加载 Blazor 应用之前和之后执行逻辑。有关详细信息,请参阅Blazor JavaScript 互操作性 (JS interop)。
Blazor 现在支持直接在 .NET 和 JavaScript 之间流式传输数据。有关详细信息,请参阅以下资源:
现在支持泛型类型参数。有关详细信息,请参阅ASP.NET Core Razor 组件。
使用部署布局在受限安全环境中启用 Blazor WebAssembly 应用下载。有关详细信息,请参阅ASP.NET Core Blazor WebAssembly 应用的部署布局。
.NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用程序。
笔记
.NET MAUI 框架处于预览阶段,在最终发布之前不应在生产应用程序中使用。
有关详细信息,请参阅以下资源:
除了前面部分中描述的 Blazor 功能之外,还提供了关于以下主题的新 Blazor 文章:
HTTP/3目前处于草案阶段,因此可能会发生变化。ASP.NET Core 中的 HTTP/3 支持尚未发布,它是 .NET 6 中包含的预览功能。
Kestrel 现在支持 HTTP/3。有关详细信息,请参阅将 HTTP/3 与 ASP.NET Core Kestrel Web 服务器一起使用和博客条目HTTP/3 support in .NET 6。
在此更改之前,为 Kestrel 启用详细日志记录非常昂贵,因为所有 Kestrel 共享Microsoft.AspNetCore.Server.Kestrel日志记录类别名称。Microsoft.AspNetCore.Server.Kestrel仍然可用,但以下新子类别允许对日志记录进行更多控制:
现有规则继续有效,但您现在可以更有选择性地启用哪些规则。例如,Debug为错误请求启用日志记录的可观察性开销大大降低,可以通过以下配置启用:
XML
日志过滤应用具有最长匹配类别前缀的规则。有关详细信息,请参阅如何应用过滤规则
当启用 verbosity 时,KestrelEventSource会发出一个包含 JSON 序列化的KestrelServerOptions的新事件EventLevel.LogAlways。在分析收集的跟踪信息时,此事件可以更轻松地推断服务器行为。以下 JSON 是事件有效负载的示例:
JSON
Kestrel 现在DiagnosticSource为在服务器层拒绝的 HTTP 请求发出一个新事件。在此更改之前,无法观察这些被拒绝的请求。新DiagnosticSource事件Microsoft.AspNetCore.Server.Kestrel.BadRequest包含一个IBadRequestExceptionFeature,可用于内省拒绝请求的原因。
C#
有关详细信息,请参阅Kestrel 中的日志记录和诊断。
新的SocketConnectionContextFactory使得从接受的套接字创建ConnectionContext成为可能。这使得构建基于套接字的自定义IConnectionListenerFactory成为可能,而不会丢失SocketConnection 中发生的所有性能工作和池化。
请参阅此自定义 IConnectionListenerFactory 示例,该示例显示了如何使用它SocketConnectionContextFactory。
所有新 dotnet Web 项目的默认启动配置文件是 Kestrel。启动 Kestrel 的速度明显更快,并且在开发应用程序时会带来更灵敏的体验。
IIS Express 仍可用作 Windows 身份验证或端口共享等方案的启动配置文件。
有关更多信息,请参阅本文档中为Kestrel 生成的模板端口。
.NET 3 到 .NET 5 使用IdentityServer4作为我们模板的一部分,以支持为 SPA 和 Blazor 应用程序发布 JWT 令牌。模板现在使用Duende 身份服务器。
如果您要扩展身份模型并更新现有项目,则需要将代码中的命名空间从IdentityServer4.IdentityServerto更新为Duende.IdentityServer并遵循其迁移说明。
Duende Identity Server 的许可模式已更改为互惠许可,在生产中用于商业用途时可能需要支付许可费。有关详细信息,请参阅Duende 许可证页面。
开发人员现在可以通过在HttpsConnectionAdapterOptions上指定ClientCertificateMode.DelayCertificate来选择使用延迟的客户端证书协商。这仅适用于 HTTP/1.1 连接,因为 HTTP/2 禁止延迟证书重新协商。此 API 的调用者必须在请求客户端证书之前缓冲请求正文:
C#
现在可以使用新的OnCheckSlidingExpiration自定义或抑制 Cookie 身份验证滑动到期。例如,此事件可由需要定期 ping 服务器而不影响身份验证会话的单页应用程序使用。
快速对正在运行的应用程序进行 UI 和代码更新,而不会丢失应用程序状态,从而使用Hot Reload获得更快、更高效的开发人员体验。有关详细信息,请参阅.NET 热重载进度更新和 Visual Studio 2022 亮点。
ASP.NET Core 项目模板已针对 Angular 和 React 进行了更新,以便为单页应用程序使用改进的模式,该模式更灵活,更接近现代前端 Web 开发的常见模式。
以前,Angular 和 React 的 ASP.NET Core 模板在开发过程中使用专门的中间件来启动前端框架的开发服务器,然后将来自 ASP.NET Core 的请求代理到开发服务器。启动前端开发服务器的逻辑特定于相应前端框架的命令行界面。使用这种模式支持额外的前端框架意味着向 ASP.NET Core 添加额外的逻辑。
.NET 6 中用于 Angular 和 React 的更新的 ASP.NET Core 模板颠覆了这种安排,并利用了大多数现代前端框架的开发服务器中的内置代理支持。启动 ASP.NET Core 应用程序时,前端开发服务器会像以前一样启动,但开发服务器配置为将请求代理到后端 ASP.NET Core 进程。设置代理的所有前端特定配置都是应用程序的一部分,而不是 ASP.NET Core。设置 ASP.NET Core 项目以与其他前端框架一起工作现在很简单:为所选框架设置前端开发服务器,以使用 Angular 和 React 中建立的模式代理到 ASP.NET Core 后端模板。
ASP.NET Core 应用程序的启动代码不再需要任何特定于单页应用程序的逻辑。在开发过程中启动前端开发服务器的逻辑是在运行时通过新的Microsoft.AspNetCore.SpaProxy包注入到应用程序中。回退路由是使用端点路由而不是特定于 SPA 的中间件来处理的。
遵循此模式的模板仍然可以在 Visual Studio 中作为单个项目运行或dotnet run从命令行使用。发布应用程序时,ClientApp文件夹中的前端代码会像以前一样构建并收集到主机 ASP.NET Core 应用程序的 Web 根目录中,并作为静态文件提供。模板中包含的脚本通过 ASP.NET Core 开发证书将前端开发服务器配置为使用 HTTPS。
HTTP/3目前处于草案阶段,因此可能会发生变化。ASP.NET Core 中的 HTTP/3 支持尚未发布,它是 .NET 6 中包含的预览功能。
请参阅.NET 6 中的博客条目HTTP/3 支持。
部分ASP.NET Core 6.0 源代码已应用可空性注释。
通过利用C# 8中的新Nullable 功能,ASP.NET Core 可以在处理引用类型时提供额外的编译时安全性。例如,防止null引用异常。选择使用可为空注释的项目可能会看到来自 ASP.NET Core API 的新构建时警告。
要启用可为空的引用类型,请将以下属性添加到项目文件中:
XML
有关详细信息,请参阅Nullable 引用类型。
添加了几个 .NET 编译器平台分析器,用于检查应用程序代码中是否存在中间件配置或顺序不正确、路由冲突等问题。有关详细信息,请参阅ASP.NET Core 应用程序中的代码分析。
网络应用模板:
在项目创建期间分配随机端口以供 Kestrel Web 服务器使用。当多个项目在同一台机器上运行时,随机端口有助于最大限度地减少端口冲突。
创建项目时,在生成的Properties/launchSettings.json文件中指定 5000-5300 之间的随机 HTTP 端口和 7000-7300 之间的随机 HTTPS 端口。可以在Properties/launchSettings.json文件中更改端口。如果未指定端口,Kestrel 默认使用 HTTP 5000 和 HTTPS 5001 端口。有关详细信息,请参阅为 ASP.NET Core Kestrel Web 服务器配置终结点。
对appsettings.json和进行了以下更改appsettings.Development.json:
差异
从 更改\”Microsoft\”: \”Warning\”为\”Microsoft.AspNetCore\”: \”Warning\”导致记录Microsoft命名空间中的所有信息消息,除了Microsoft.AspNetCore. 例如,Microsoft.EntityFrameworkCore现在记录在信息级别。
在开发环境中,默认添加了DeveloperExceptionPageMiddleware。不再需要将以下代码添加到 Web UI 应用程序:
C#
HttpSysServer现在支持解码所请求头Latin1通过设置编码UseLatin1RequestHeaders上属性HttpSysOptions到true:
C#
的ASP.NET核心模块(ANCM)增强诊断日志包括时间戳和PID过程发射日志。当多个 IIS 工作进程正在运行时,记录时间戳和 PID 可以更轻松地诊断 IIS 中重叠进程重新启动的问题。
生成的日志现在类似于下面显示的示例输出:
.NET 命令行
IIS 服务器以前仅缓冲 64 KiB 的未使用请求正文。64 KiB 缓冲导致读取被限制在该最大大小,这会影响大型传入主体(如上传)的性能。在 .NET 6 中,默认缓冲区大小从 64 KiB 更改为 1 MiB,这应该会提高大型上传的吞吐量。在我们的测试中,过去需要 9 秒的 700 MiB 上传现在只需要 2.5 秒。
较大缓冲区大小的缺点是当应用程序没有快速从请求正文中读取时,每个请求的内存消耗会增加。因此,除了更改默认缓冲区大小外,还可以配置缓冲区大小,允许应用程序根据工作负载配置缓冲区大小。
考虑一个带有可选参数的视图组件,如以下代码所示:
C#
使用 ASP.NET Core 6,可以调用标签助手,而无需为showSomething参数指定值:
razor
Angular 的 ASP.NET Core 6.0 模板现在使用Angular 12。
React 模板已更新为React 17。
注意:我们建议使用System.Text.Json输出格式化程序,除非Newtonsoft.Json出于兼容性原因需要序列化程序。该System.Text.Json串行器是完全async和有效运作的更大的有效载荷。
Newtonsoft.Json默认情况下,输出格式化程序在缓冲到磁盘之前会在内存中缓冲高达 32 KiB 的响应。这是为了避免执行同步 IO,这可能导致其他副作用,例如线程饥饿和应用程序死锁。但是,如果响应大于 32 KiB,则会发生大量磁盘 I/O。内存阈值现在可以通过MvcNewtonsoftJsonOptions.OutputFormatterMemoryBufferThreshold属性在缓冲到磁盘之前进行配置:
C#
有关更多信息,请参阅此 GitHub 拉取请求和NewtonsoftJsonOutputFormatterTest.cs文件。
添加了新的 API 以将Microsoft.Net.Http.Headers.HeaderNames上可用的所有常见标头公开为IHeaderDictionary上的属性,从而使 API 更易于使用。例如,以下代码中的内联中间件使用新的 API 获取和设置请求和响应标头:
C#
对于已实现的标头,get 和 set 访问器是通过直接转到字段并绕过查找来实现的。对于未实现的标头,访问器可以绕过针对已实现标头的初始查找并直接执行Dictionary
ASP.NET Core 现在支持来自控制器操作的异步流和来自 JSON 格式化程序的响应。IAsyncEnumerable从动作返回一个不再在响应内容被发送之前缓冲内存中的响应内容。在返回可以异步枚举的大型数据集时,不缓冲有助于减少内存使用。
请注意,Entity Framework Core 提供IAsyncEnumerable了查询数据库的实现。IAsyncEnumerable.NET 6 中对ASP.NET Core的改进支持可以使 EF Core 与 ASP.NET Core 一起使用更加高效。例如,以下代码在发送响应之前不再将产品数据缓冲到内存中:
C#
但是,在 EF Core 中使用延迟加载时,此新行为可能会由于在枚举数据时并发查询执行而导致错误。应用程序可以通过缓冲数据恢复到以前的行为:
C#
有关此行为更改的更多详细信息,请参阅相关公告。
HTTP 日志记录是一个新的内置中间件,它记录有关 HTTP 请求和 HTTP 响应的信息,包括标头和整个正文:
C#
/使用前面的代码导航到类似于以下输出的日志信息:
.NET 命令行
使用以下appsettings.development.json文件启用了前面的输出:
JSON
HTTP 日志记录提供以下日志:
要配置 HTTP 日志记录中间件,请指定HttpLoggingOptions:
C#
所述IConnectionSocketFeature请求功能提供访问与当前请求相关联的潜在的接受插槽中。它可以通过访问的FeatureCollection上HttpContext。
例如,以下应用程序在接受的套接字上设置LingerState属性:
C#
热重载可最大限度地减少代码更改后应用程序重新启动的次数。有关详细信息,请参阅.NET 对 ASP.NET Core 的热重载支持。
使用@typeparam指令在 Razor 中定义泛型类型参数时,现在可以使用标准 C# 语法指定泛型类型约束:
SignalR、MessagePack 和 Blazor Server 脚本现在明显更小,可实现更小的下载、更少的浏览器解析和编译 JavaScript 以及更快的启动。尺寸缩小:
较小的脚本是Ben Adams社区贡献的结果。有关减小大小的详细信息,请参阅Ben 的 GitHub 拉取请求。
Gabriel Lucaci 的社区贡献启用了与Microsoft.Extensions.Caching.StackExchangeRedis 的Redis 分析会话:
C#
有关更多信息,请参阅StackExchange.Redis 分析。
ASP.NET Core 模块中添加了一项实验性功能,以添加对影子复制应用程序程序集的支持。目前 .NET 在 Windows 上运行时会锁定应用程序二进制文件,因此无法在应用程序运行时替换二进制文件。虽然我们的建议仍然是使用应用程序脱机文件,但我们认识到在某些情况下(例如 FTP 部署)是不可能这样做的。
在这种情况下,通过自定义 ASP.NET Core 模块处理程序设置来启用卷影复制。在大多数情况下,ASP.NET Core 应用程序没有web.config您可以修改的签入源代码控制。在 ASP.NET Core 中,web.config通常由 SDK 生成。以下示例web.config可用于入门:
XML
IIS 中的卷影复制是一项实验性功能,不保证是 ASP.NET Core 的一部分。请在此 GitHub 问题中留下有关 IIS 影子复制的反馈。
之前我分享过一款基于ASP.NET MVC + Layui 的通用后台快速开发框架elight.mvc,受到了很多朋友的关注。今天我将给大家分享一款基于ASP.NET Core最新版+Bootstrap的通用后台快速开发框架YiShaAdmin,如今.NET Core技术如火如荼,怎么可以没有它。
之所以会介绍这款框架,主要是想对ASP.NET Core+ Bootstrap技术的后台开发框架做一个补充,或者有一些朋友会说,这样的框架很多才对啊,是的,这样的框架确实不少,但是缺乏佳作,能够真正完整的实现一个快速后台开发框架的作品不多。
而YiShaAdmin是基于ASP.NET Core+Bootstrap 的快速后台开发框架的代表作之一。发现这个框架也是一种巧合,因为我一直有关注java的一个开源项目若依,而这个项目也刚好是若依官方的一个子项目,可以说YiShaAdmin就是.NET版本的若依框架。
YiShaAdmin 已经为我们实现了用户管理、部门管理、菜单管理、角色权限设置、日志管理、新闻管理、定时任务等基础功能,非常适合网站管理后台、CMS、CRM、ERP、OA 这类的系统开发。目前框架支持Sql Server、MySql两种数据库。
.NET Core >= 3.1、Microsoft SQL Server 2012+、MySql 5.7+
源码结构说明:
YiShaAdmin是基于ASP.NET Core+Bootstrap 的快速后台开发框架不可多得的佳作,使用了很多良好的设计模式和开发理念,后台界面精美实用,非常适合做后台管理系统的开发。不过该框架有一个比较遗憾的地方是,没有使用依赖注入的技术,还是使用传统的方式构建服务对象。但总体上不影响框架快速开发的特性。
上面是我对YiShaAdmin项目做一个简单的介绍,想要了解更多,可以下载源码学习。如果你对项目源码感兴趣,请关注我,转发后私信回复“yisha”,源码发你。
嘿,亲爱的小伙伴们!你们有没有想过,女性的排卵期是什么时候呢?不要以为这只是一个科学名词,其实它关系着我们每个女生的生理周期和受孕能力。今天我就来给大家科普一下女性排卵期
如何查看系统CPU信息:如何查看内存用法:如何监视系统资源(CPU,内存,IO):如何查看系统运行时间:如何检查最后一个启动时间:如何查看当前用户历史记录使用的
女性的身体一直是一个神秘的领域,而在生活百科行业中,女性排卵期更是一个备受关注的话题。那么,什么是女性排卵期?它又有着怎样的重要性呢?如何计算女性的排卵期?又有哪些常用方法
女性排卵期日历表,怎样计算排卵期?随着现代生活节奏的加快,女性的生活压力也越来越大,而正确计算排卵期对于女性的身体健康和生育规划至关重要。但是什么是排卵期?为什么需要计算
嘿,亲爱的小姐姐们,今天我来给你们解密一个女生必备的知识——女性排卵期如何计算?重要的注意事项有哪些?是不是觉得这个问题听起来有点复杂,但其实只要掌握了正确的方法,就能轻松
嘿,亲爱的小伙伴们,今天我们要来聊聊一个关于女性健康的话题——“女性排卵期如何计算?方法和注意事项都在这里!”是不是好奇这个排卵期到底是什么?为什么需要计算?别担心,我们会用
用户评论
求推荐!最近想学习ASP.NET,看好多网站介绍都说这个教程挺好用的,可是这么多版本不知道哪个合适?
有8位网友表示赞同!
这教程的质量确实不错,很系统地讲解了ASP.NET应用开发,对于入门小白来说简直太棒啦!终于不用再眼巴巴望着那些收费培训班了!
有12位网友表示赞同!
虽然是免费下载,但教程内容真的有料~从基本概念到实战项目都涵盖了,我觉得这绝对是学习 ASP.NET 的最佳选择之一。
有14位网友表示赞同!
下载了好几个ASP.NET教程试用了一下,这个教程写的代码示例很清晰易懂 ,比其他教程要实用很多!
有11位网友表示赞同!
asp.net app的开发真的挺复杂的,想入门也需要花点时间学习。这个教程确实可以帮到你,希望大家都能学到真正的好东西!
有13位网友表示赞同!
最近一直在找ASP.NET教程,终于找到一家良心网站了!感谢分享!准备静下心来好好跟着这个教程学一 学。
有18位网友表示赞同!
这款教程的讲解非常深入,不仅介绍了 ASP.NET基础知识,还涵盖了常见的实用技巧,对于想深入学习 ASP.NET 的朋友来说很不错
有18位网友表示赞同!
学习 asp.net app 可以提升我的技术水平,但是这个教程的篇幅太长了,不知道能不能用更简洁的方式讲解?
有5位网友表示赞同!
下载体验了下,感觉这个教程虽然内容丰富,但对于初学者来说,入门难度有点高,需要有一定的编程基础才能理解。
有13位网友表示赞同!
学习asp.net app 确实可以开拓新的职业发展道路,希望有更多的人能够掌握ASP.NET技术!
有18位网友表示赞同!
这个教程讲的内容比较抽象,希望能结合更多实际项目的例子解释,让大家更容易理解 asp.net 的应用场景。
有9位网友表示赞同!
说实话,我下载了其他几个网站的asp.net教程,感觉那个教程都像是在讲一套听不懂的话。还是这款教程简单易懂,适合新手学习!
有9位网友表示赞同!
希望这个 ASP.NET 教程能够持续更新添加最新的知识点,让学习者能够紧跟时代的潮流。
有19位网友表示赞同!
这个教程的下载速度有点慢,感觉要等半天才能完全下载完成,建议改进一下下载机制!
有17位网友表示赞同!
在使用ASP.NET开发项目的时候遇到了一些问题,刚好看到了这篇分享,内容很实用,给我指明了方向!
有8位网友表示赞同!
学习 ASP.NET 是个好目标!这个教程可以作为你的入门指南,加油吧!
有11位网友表示赞同!
这个asp.net app的教程太棒了,我已经学会了一些基础知识,计划下一步开始跟着教程搭建自己的项目!
有8位网友表示赞同!
想成为一名ASP.NET开发工程师,这个教程必不可少!学习它可以掌握强大的技术技能,打开更多未来的机会!
有7位网友表示赞同!