博客园 - Artech
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=664820
2024-03-19T02:23:02Z
Artech
https://www.cnblogs.com/artech/
feed.cnblogs.com
https://www.cnblogs.com/artech/p/18075402/dictionary_key_serialization
自定义Key类型的字典无法序列化的N种解决方案 - Artech
<img src="http://images.cnblogs.com/cnblogs_com/artech/158198/r_Dotnet.png" class="desc_img">当我们使用System.Text.Json.JsonSerializer对一个字典对象进行序列化的时候,默认情况下字典的Key不能是一个自定义的类型,本文介绍几种解决方案。
2024-03-19T00:33:00Z
2024-03-19T00:33:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="http://images.cnblogs.com/cnblogs_com/artech/158198/r_Dotnet.png" class="desc_img">当我们使用System.Text.Json.JsonSerializer对一个字典对象进行序列化的时候,默认情况下字典的Key不能是一个自定义的类型,本文介绍几种解决方案。 <a href="https://www.cnblogs.com/artech/p/18075402/dictionary_key_serialization" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18075406/delgate_as_route_handler
为什么ASP.NET Core的路由处理器可以使用一个任意类型的Delegate - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">毫不夸张地说,路由是ASP.NET Core最为核心的部分。路由的本质就是注册一系列终结点(Endpoint),每个终结点可以视为“路由模式”和“请求处理器”的组合,它们分别用来“选择”和“处理”请求。请求处理器通过RequestDelegate来表示,但是当我们在进行路由编程的时候,却可以使用任意类型的Delegate作为处理器器,这一切的背后是如何实现的呢?
2024-03-18T03:51:00Z
2024-03-18T03:51:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">毫不夸张地说,路由是ASP.NET Core最为核心的部分。路由的本质就是注册一系列终结点(Endpoint),每个终结点可以视为“路由模式”和“请求处理器”的组合,它们分别用来“选择”和“处理”请求。请求处理器通过RequestDelegate来表示,但是当我们在进行路由编程的时候,却可以使用任意类型的Delegate作为处理器器,这一切的背后是如何实现的呢? <a href="https://www.cnblogs.com/artech/p/18075406/delgate_as_route_handler" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18052365
深入解析ASP.NET Core MVC的模块化设计[下篇] - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">ASP.NET Core MVC的“模块化”设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载。《设计篇》介绍了这种为“飞行中的飞机加油”的方案的实现原理?本篇我们将演示将介绍“分散定义Controller”的N种实现方案。源代码从这里下载。
2024-03-06T00:56:00Z
2024-03-06T00:56:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">ASP.NET Core MVC的“模块化”设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载。《设计篇》介绍了这种为“飞行中的飞机加油”的方案的实现原理?本篇我们将演示将介绍“分散定义Controller”的N种实现方案。源代码从这里下载。 <a href="https://www.cnblogs.com/artech/p/18052365" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18052326/asp-net-core-mvc-moduling
深入解析ASP.NET Core MVC的模块化设计[上篇] - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">ASP.NET Core MVC的“模块化”设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载。这种为“飞行中的飞机加油”的方案是如何实现的呢?该系列的两篇文章将关注于这个主题,本篇着重介绍“模块化”的总体设计,下篇我们将演示将介绍“分散定义Controller”的N种实现方案。
2024-03-05T00:44:00Z
2024-03-05T00:44:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">ASP.NET Core MVC的“模块化”设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载。这种为“飞行中的飞机加油”的方案是如何实现的呢?该系列的两篇文章将关注于这个主题,本篇着重介绍“模块化”的总体设计,下篇我们将演示将介绍“分散定义Controller”的N种实现方案。 <a href="https://www.cnblogs.com/artech/p/18052326/asp-net-core-mvc-moduling" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18031074/mvc_app_model_4
ASP.NET Core MVC应用模型的构建[4]: Action的选择 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">ControllerModel类型的Actions属性包含一组描述有效Action方法的ActionModel对象。对于定义在Controller类型中的所有方法,究竟哪些方法才能成为有效的Action方法呢?所以在正式介绍ActionModel类型之前,我们先来聊聊Action方法的选择规则。
2024-02-29T01:56:00Z
2024-02-29T01:56:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">ControllerModel类型的Actions属性包含一组描述有效Action方法的ActionModel对象。对于定义在Controller类型中的所有方法,究竟哪些方法才能成为有效的Action方法呢?所以在正式介绍ActionModel类型之前,我们先来聊聊Action方法的选择规则。 <a href="https://www.cnblogs.com/artech/p/18031074/mvc_app_model_4" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18031075/mvc_app_model_3
ASP.NET Core MVC应用模型的构建[3]: Controller的收集 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">从编程的角度来看,一个MVC应用是由一系列Controller类型构建而成的,所以对于一个代表应用模型的ApplicationModel对象来说,它的核心就是Controllers属性返回的一组ControllerModel对象,每个ControllerModel对象是应用模型针对Controller类型的描述。
2024-02-28T01:37:00Z
2024-02-28T01:37:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">从编程的角度来看,一个MVC应用是由一系列Controller类型构建而成的,所以对于一个代表应用模型的ApplicationModel对象来说,它的核心就是Controllers属性返回的一组ControllerModel对象,每个ControllerModel对象是应用模型针对Controller类型的描述。 <a href="https://www.cnblogs.com/artech/p/18031075/mvc_app_model_3" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18031077/mvc_app_model_2
ASP.NET Core MVC应用模型的构建[2]: 定制应用模型 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">在对应用模型的基本构建方式具有大致的了解之后,我们来系统地认识一下描述应用模型的ApplicationModel类型。对于一个描述MVC应用模型的ApplicationModel对象来说,它承载的元数据绝大部分是由默认注册的DefaultApplicationModelProvider对象提供的,在接下来针对ApplicationModel及其相关类型(ControllerModel、ActionModel和ParameterModel等)的介绍中,我们还会着重介绍DefaultApplicationModelProvider对象采用怎样的方式提取并设置这些元数据。
2024-02-27T00:25:00Z
2024-02-27T00:25:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">在对应用模型的基本构建方式具有大致的了解之后,我们来系统地认识一下描述应用模型的ApplicationModel类型。对于一个描述MVC应用模型的ApplicationModel对象来说,它承载的元数据绝大部分是由默认注册的DefaultApplicationModelProvider对象提供的,在接下来针对ApplicationModel及其相关类型(ControllerModel、ActionModel和ParameterModel等)的介绍中,我们还会着重介绍DefaultApplicationModelProvider对象采用怎样的方式提取并设置这些元数据。 <a href="https://www.cnblogs.com/artech/p/18031077/mvc_app_model_2" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18031078/mvc_app_model_1
ASP.NET Core MVC应用模型的构建[1]: 应用的蓝图 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">我个人觉得这是ASP.NET Core MVC框架体系最核心的部分。原因很简单,MVC框架建立在ASP.NET Core路由终结点上,它最终的目的就是将每个Action方法映射为一个或者多个路由终结点,路由终结点根据附加在Action上的若干元数据构建而成。为了构建描述当前应用所有Action的元数据,MVC框架会提取出定义在当前应用范围内的所有Controller类型,并进一步构建出基于Controller的应用模型。应用模型不仅仅是构建Action元数据的基础,承载API的应用还可以利用它自动生成API开发文档,一些工具甚至可以利用应用模型自动生成消费API的客户端代码。
2024-02-26T00:14:00Z
2024-02-26T00:14:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">我个人觉得这是ASP.NET Core MVC框架体系最核心的部分。原因很简单,MVC框架建立在ASP.NET Core路由终结点上,它最终的目的就是将每个Action方法映射为一个或者多个路由终结点,路由终结点根据附加在Action上的若干元数据构建而成。为了构建描述当前应用所有Action的元数据,MVC框架会提取出定义在当前应用范围内的所有Controller类型,并进一步构建出基于Controller的应用模型。应用模型不仅仅是构建Action元数据的基础,承载API的应用还可以利用它自动生成API开发文档,一些工具甚至可以利用应用模型自动生成消费API的客户端代码。 <a href="https://www.cnblogs.com/artech/p/18031078/mvc_app_model_1" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18021662/streaming_messaging
基于HTTP2/3的流模式消息交换如何实现? - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">我想很多人已经体验过GRPC提供的三种流式消息交换模式,在.NET Core上构建的GRPC应用本质上是采用HTTP2/HTTP3协议的ASP.NET Core应用,我们当然也可以在一个普通的ASP.NET Core应用实现这些流模式。不仅如此,HttpClient也提供了响应的支持,这篇文章通过一个简单的实例提供了相应的实现
2024-02-20T00:13:00Z
2024-02-20T00:13:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240226002528_asp.net.core.png" class="desc_img">我想很多人已经体验过GRPC提供的三种流式消息交换模式,在.NET Core上构建的GRPC应用本质上是采用HTTP2/HTTP3协议的ASP.NET Core应用,我们当然也可以在一个普通的ASP.NET Core应用实现这些流模式。不仅如此,HttpClient也提供了响应的支持,这篇文章通过一个简单的实例提供了相应的实现 <a href="https://www.cnblogs.com/artech/p/18021662/streaming_messaging" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18019333/array_memory_sequence
编写高效的代码,你应该了解Array、Memory、ReadOnlySequence . . . - Artech
<img src="http://images.cnblogs.com/cnblogs_com/artech/158198/r_Dotnet.png" class="desc_img">针对“缓冲区”编程是一个非常注重“性能”的地方,我们应该尽可能地避免武断地创建字节数组来存储读取的内容,这样不但会导致大量的字节拷贝,临时创建的字节数组还会带来GC压力。要正确、高效地读写缓冲内容,我们应该对几个我们可能熟悉的类型具有更深的认识。
2024-02-19T00:07:00Z
2024-02-19T00:07:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="http://images.cnblogs.com/cnblogs_com/artech/158198/r_Dotnet.png" class="desc_img">针对“缓冲区”编程是一个非常注重“性能”的地方,我们应该尽可能地避免武断地创建字节数组来存储读取的内容,这样不但会导致大量的字节拷贝,临时创建的字节数组还会带来GC压力。要正确、高效地读写缓冲内容,我们应该对几个我们可能熟悉的类型具有更深的认识。 <a href="https://www.cnblogs.com/artech/p/18019333/array_memory_sequence" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18006091/wasm_memory
WebAssembly核心编程[4]: Memory - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">由于Memory存储的是单纯的二进制字节,所以原则上我们可以用来它作为媒介,在wasm模块和数组程序之间传递任何类型的数据。在JavaScript API中,Memory通过WebAssembly.Memory类型表示,我们一般将它内部的缓冲区映射相应类型的数组进行处理。WebAssembly也提供了相应的指令来提供针对Memory的读、写、扩容等操作
2024-02-05T01:42:00Z
2024-02-05T01:42:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">由于Memory存储的是单纯的二进制字节,所以原则上我们可以用来它作为媒介,在wasm模块和数组程序之间传递任何类型的数据。在JavaScript API中,Memory通过WebAssembly.Memory类型表示,我们一般将它内部的缓冲区映射相应类型的数组进行处理。WebAssembly也提供了相应的指令来提供针对Memory的读、写、扩容等操作 <a href="https://www.cnblogs.com/artech/p/18006091/wasm_memory" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/18001320/module_and_instance
WebAssembly核心编程[3]: Module 与 Instance - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">WebAssembly程序总是以模块来组织,模块是基本的部署、加载和编译单元。在JavaScript编程接口中,模块通过WebAssembly.Module类型表示。WebAssembly.Module通过加载的.wasm二进制文件创建而成,它承载了描述wasm模块的元数据,类似于描述程序集的Assembly对象。WebAssembly.Module自身是只读且无状态的,有状态的是根据它结合指定的导入对象创建的模块实例,后者通过WebAssembly.Instance表示。这两个类型提供了几个核心API,解析我们就通过它们来介绍WebAssembly的这两个核心对象。
2024-02-02T01:39:00Z
2024-02-02T01:39:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">WebAssembly程序总是以模块来组织,模块是基本的部署、加载和编译单元。在JavaScript编程接口中,模块通过WebAssembly.Module类型表示。WebAssembly.Module通过加载的.wasm二进制文件创建而成,它承载了描述wasm模块的元数据,类似于描述程序集的Assembly对象。WebAssembly.Module自身是只读且无状态的,有状态的是根据它结合指定的导入对象创建的模块实例,后者通过WebAssembly.Instance表示。这两个类型提供了几个核心API,解析我们就通过它们来介绍WebAssembly的这两个核心对象。 <a href="https://www.cnblogs.com/artech/p/18001320/module_and_instance" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/17999128/wasm_types
WebAssembly核心编程[2]:类型系统 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">对于绝大多数编程语言来说,类型都是编程的基础,WebAssembly自然也不例外。总的来说,WebAssembly涉及的类型不多,很好掌握,接下来我们就来介绍一下WebAssembly编程涉及到的几种类型。本篇内容参考WebAssembly Spec。
2024-02-01T00:33:00Z
2024-02-01T00:33:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">对于绝大多数编程语言来说,类型都是编程的基础,WebAssembly自然也不例外。总的来说,WebAssembly涉及的类型不多,很好掌握,接下来我们就来介绍一下WebAssembly编程涉及到的几种类型。本篇内容参考WebAssembly Spec。 <a href="https://www.cnblogs.com/artech/p/17999128/wasm_types" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/17994560/wasm_loading
WebAssembly核心编程[1]:wasm模块实例化的N种方式 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">当我们在一个Web应用中使用WebAssembly,最终的目的要么是执行wasm模块的入口程序(通过start指令指定的函数),要么是调用其导出的函数,这一切的前提需要创建一个通过WebAssembly.Instance对象表示的wasm模块实例(源代码)。
2024-01-31T00:37:00Z
2024-01-31T00:37:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">当我们在一个Web应用中使用WebAssembly,最终的目的要么是执行wasm模块的入口程序(通过start指令指定的函数),要么是调用其导出的函数,这一切的前提需要创建一个通过WebAssembly.Instance对象表示的wasm模块实例(源代码)。 <a href="https://www.cnblogs.com/artech/p/17994560/wasm_loading" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/17982720/hello_wasm_4
WebAssembly入门笔记[4]:利用Global传递全局变量 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">利用WebAssembly的导入导出功能可以灵活地实现宿主JavaScript程序与加载的单个wasm模块之间的交互,那么如何在宿主程序与多个wasm之间传递和共享数据呢?这就需要使用到Global这个重要的对象了。
2024-01-30T00:33:00Z
2024-01-30T00:33:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">利用WebAssembly的导入导出功能可以灵活地实现宿主JavaScript程序与加载的单个wasm模块之间的交互,那么如何在宿主程序与多个wasm之间传递和共享数据呢?这就需要使用到Global这个重要的对象了。 <a href="https://www.cnblogs.com/artech/p/17982720/hello_wasm_4" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/17989165/hello_wasm_3
WebAssembly入门笔记[3]:利用Table传递引用 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">在《WebAssembly入门笔记[2]》中,我们介绍了如何利用Memory在作为宿主的JavaScript应用和wasm模块之间传递数据,但是Memory面向单纯二进制字节的读写在使用起来还是不太方便,此时我们会更多地用到另一个重要的对象Table。Table利用用来存储一组指定类型的对象,说得准确一点是对象的引用,所以可以读取出来直接消费。
2024-01-29T00:35:00Z
2024-01-29T00:35:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">在《WebAssembly入门笔记[2]》中,我们介绍了如何利用Memory在作为宿主的JavaScript应用和wasm模块之间传递数据,但是Memory面向单纯二进制字节的读写在使用起来还是不太方便,此时我们会更多地用到另一个重要的对象Table。Table利用用来存储一组指定类型的对象,说得准确一点是对象的引用,所以可以读取出来直接消费。 <a href="https://www.cnblogs.com/artech/p/17989165/hello_wasm_3" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/17982715/hello_wasm_2
WebAssembly入门笔记[2]:利用Memory传递字节数据 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">利用灵活的“导入”和“导出”机制,WebAssembly与承载的JavaScript应用之间可以很便利地“互通有无”。《与JavaScript的交互》着重演示了如何利用函数的导入和导出实现功能的共享,接下来我们主要关注数据的传递或者共享。宗地来说,WebAssembly与宿主程序之间的数据传递主要有如下三种手段,本篇文章主要关注Memory。
2024-01-26T00:40:00Z
2024-01-26T00:40:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">利用灵活的“导入”和“导出”机制,WebAssembly与承载的JavaScript应用之间可以很便利地“互通有无”。《与JavaScript的交互》着重演示了如何利用函数的导入和导出实现功能的共享,接下来我们主要关注数据的传递或者共享。宗地来说,WebAssembly与宿主程序之间的数据传递主要有如下三种手段,本篇文章主要关注Memory。 <a href="https://www.cnblogs.com/artech/p/17982715/hello_wasm_2" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/17982714/hello_wasm_1
WebAssembly入门笔记[1]:与JavaScript的交互 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">前一阵子利用Balazor开发了一个NuGet站点,对WebAssembly进行了初步的了解,觉得挺有意思。在接下来的一系列文章中,我们将通过实例演示的方式介绍WebAssembly的一些基本概念和编程模式。
2024-01-25T00:27:00Z
2024-01-25T00:27:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/o_240131031114_webassembly.png" class="desc_img">前一阵子利用Balazor开发了一个NuGet站点,对WebAssembly进行了初步的了解,觉得挺有意思。在接下来的一系列文章中,我们将通过实例演示的方式介绍WebAssembly的一些基本概念和编程模式。 <a href="https://www.cnblogs.com/artech/p/17982714/hello_wasm_1" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/mvc-mini-framework.html
模拟ASP.NET Core MVC设计与实现 - Artech
<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/r_EnterLib.png" class="desc_img">前几天有人在我的《ASP.NET Core框架揭秘》读者群跟我留言说:“我最近在看ASP.NET Core MVC的源代码,发现整个系统太复杂,涉及的东西太多,完全找不到方向,你能不能按照《200行代码,7个对象——让你了解ASP.NET Core框架的本质》这篇文章思路剖析一下MVC框架”,今天我们就来试试看。
2023-11-08T00:31:00Z
2023-11-08T00:31:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="https://images.cnblogs.com/cnblogs_com/artech/158198/r_EnterLib.png" class="desc_img">前几天有人在我的《ASP.NET Core框架揭秘》读者群跟我留言说:“我最近在看ASP.NET Core MVC的源代码,发现整个系统太复杂,涉及的东西太多,完全找不到方向,你能不能按照《200行代码,7个对象——让你了解ASP.NET Core框架的本质》这篇文章思路剖析一下MVC框架”,今天我们就来试试看。 <a href="https://www.cnblogs.com/artech/p/mvc-mini-framework.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/artech/p/net-memory-layout.html
.NET的各种对象在内存中如何布局[博文汇总] - Artech
<img src="http://images.cnblogs.com/cnblogs_com/artech/158198/r_Dotnet.png" class="desc_img">在过去一段时间里,我陆陆续续写一些关于.NET对象类型布局的文章,其中包括值类型和引用类型的内存布局、字符串对象和数组的内存布局等,这里作一个简单的汇总。
2023-11-07T00:11:00Z
2023-11-07T00:11:00Z
Artech
https://www.cnblogs.com/artech/
【摘要】<img src="http://images.cnblogs.com/cnblogs_com/artech/158198/r_Dotnet.png" class="desc_img">在过去一段时间里,我陆陆续续写一些关于.NET对象类型布局的文章,其中包括值类型和引用类型的内存布局、字符串对象和数组的内存布局等,这里作一个简单的汇总。 <a href="https://www.cnblogs.com/artech/p/net-memory-layout.html" target="_blank">阅读全文</a>