前言: 经过前面几个部分学习,相信学过的同学已经能够掌握.NETEmit 这种中间语言,并能使得它来编写一些应用,以提高程序的性能。 随着IL指令篇的结束,本系列也已经接近尾声,在这接近结束的最后,会提供几个可供直接使用的示例,以供大伙分析或使用在项目中。 ORM 实现的三个通用阶段: 第一阶段: 在以往新手入门写ORM实现的时候,往往会借助代码生成器,来针对整个数据库,生成一个一个的基础增删改查。 用代码生成器提前生成针对性的方法,运行效率高,但开发效率有可维护性低。 第二阶段: 随着对程序进一步的理解,可能会进化的使用反射来替代代码生成器,可以简化掉大量的生成式代码。 ...

  bIaTPaOtIHWP   18小时前   11   0   0 .NET

前言: 今天补充一下 Taurus.MVC微服务教程,介绍一下微服务中针对RPC方面调整或新增的功能。 之前系列文章目录: Taurus.MVC微服务框架入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。 Taurus.MVC微服务框架入门开发教程:项目集成:2、客户端:ASP.NET Core(C)项目集成:应用中心。 Taurus.MVC微服务框架入门开发教程:项目集成:3、客户端:其它编程语言项目集成:Java集成应用中心。 Taurus.MVC微服务框架入门开发教程:项目集成:4、默认安全认证与自定义安全认证。 Taurus.MVC微服务框架...

  bIaTPaOtIHWP   5天前   14   0   0 .NET

前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。 参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 创建实例指令,其指令以New开头,用于在运行时动态生成并初始化对象。 方法调用指令,该指令以Call 开头,用于在运行时调用其它方法。 支条件指令,该指令通常以 Br、或B、C开头,用于在运行分支条件时跳转指令。 类型转换指令,该指令通常以 Cast、Conv开头或box结尾,用于在运行时对类型进行转换。 本篇介绍运算操作指令,介绍...

  bIaTPaOtIHWP   11天前   12   0   0 .NET

前言: 上次发布了:Taurus.MVC性能压力测试(ap压测和linux下wrk压测):.NETCore版本 今天计划准备压测一下.NET版本,来测试并记录一下Taurus.MVC 框架在.NET 版本的性能,以便后续持续优化改进。 为了方便对比,本文章的电脑环境和测试思路,尽量和上文保持一致,以便方便对比。 下面来看不同场景下的压测结果,以下测试结果会由两台电脑进行分别测试。 一、旧电脑环境: CPU:Intel(R)Core(TM)i5-9400CPU@2.90GHz 内核:6 逻辑处理器:6内存:16G 程序在.NET4编绎,以 Windows11为主...

  bIaTPaOtIHWP   14天前   28   0   0 .NET

.NET 部署 IIS 的简单步骤一: 下载dotnet-hosting-x.y.z-win.exe,下载地址:.NETDownloads(Linux,macOS,andWindows)(microsoft.com)   .NET 部署 IIS 的简单步骤二: 选择对应的版本,点击进入详细页,如8.0的版本: 版本最好和你的开发环境版本一致, 比如我的开发环境目前是8.0.3,前几天出了最新的版本,目前是8.0.4版本。 下载右边的Runtime 版本,找到对应的Windows 版本的Hos...

  bIaTPaOtIHWP   15天前   36   0   0 .NET

前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。 参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 创建实例指令,其指令以New开头,用于在运行时动态生成并初始化对象。 方法调用指令,该指令以Call 开头,用于在运行时调用其它方法。 本篇介绍分支条件指令,该指令通常以 Br、或B、C开头,用于在运行分支条件时跳转指令。 分支条件指令介绍: 分支条件指令是在.NETEmit编程中关键的控制流程工具,用于在IL代码中实现条件判断和控制转移。 ...

  bIaTPaOtIHWP   18天前   12   0   0 .NET

前言: 最近的Taurus.MVC版本,对性能这一块有了不少优化,因此准备进行一下压测,来测试并记录一下Taurus.MVC 框架的性能,以便后续持续优化改进。 今天先压测.NETCore 版本,后续有时间再压测一下.NET 版本。 下面来看不同场景下的压测结果,以下测试结果会由两台电脑进行分别测试。 一、旧电脑环境: CPU:Intel(R)Core(TM)i5-9400CPU@2.90GHz 内核:6 逻辑处理器:6内存:16G 程序在.NET8编绎,以Kestrel 为主机直接运行在Window环境: 1、测试Window11 下,...

  bIaTPaOtIHWP   20天前   24   0   0 .NET

前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。 参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 创建实例指令,其指令以New开头,用于在运行时动态生成并初始化对象。 本篇介绍方法调用指令,该指令以Call 开头,用于在运行时调用其它方法。 方法调用指令介绍: 在.NETEmit中,方法调用指令是一种关键的操作,它允许我们在运行时动态地调用各种方法。 这些指令提供了一种灵活的方式,可以在程序执行期间创建、修改和调用方法,从而实现了动态代码生成和操作...

  bIaTPaOtIHWP   22天前   24   0   0 .NET

前言: 上上篇介绍了 IL 指令的分类以及参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。 上一篇介绍参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 本篇将介绍创建实例指令,其指令以New开头,用于在运行时动态生成并初始化对象。 创建实例指令简介 在.NETEmit中,使用ILGenerator创建实例是一项重要的操作,它允许我们动态生成对象实例和数组实例的代码。 通过创建实例指令,我们可以在运行时动态生成并初始化对象,为程序提供更大的灵活性和可扩展性。 创建实例指令主要包括Newobj指令和Ne...

  bIaTPaOtIHWP   23天前   32   0   0 .NET

前言: 上一篇介绍了 IL 指令的分类以及参数加载指令,该加载指令以ld开头,将参数加载到栈中,以便于后续执行操作命令。 本篇开始介绍参数存储指令,其指令以st开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 参数存储指令介绍: 在IL中,除了参数存储指令starg和stloc之外,还有其他一些以"st"开头的指令,如stfld和stsfld,它们也用于存储值到特定位置。以下是所有的参数存储指令以及它们的用途: stargindex:将计算堆栈顶部的值存储到方法的参数中,参数索引由后续字节指定。 stlocindex:将计算堆栈顶部的值存储到方法的局部变量中,局部...

  bIaTPaOtIHWP   27天前   30   0   0 .NET

前言: 在上一篇中,我们介绍了ILGenerator辅助方法。 本篇,将详细介绍指令方法,并详细介绍指令的相关用法。 在接下来的教程,关于IL指令部分,会将指令分为以下几个分类进行讲解: 1、参数加载指令:ld开头的指令,单词为:loadargument 2、参数存储指令:st开头的指令,单词为:store 3、创建实例指令:new开头的指令。 4、方法调用指令:call开头的指令。 5、分支条件指令:br开头的指令,单词为break 6、类型转换指令:cast或conv开头的指令,单词为:convert 7、运算操作指令:add/sub/mul/div/rem,加减乘除取余。 ...

  bIaTPaOtIHWP   28天前   19   0   0 .NET

前言: 在动态生成代码的过程中,构建类型(Type)是至关重要的一步。 通过使用Emit中的TypeBuilder,我们可以定义和创建各种类型,包括类、结构体和接口。 本节将深入探讨如何使用TypeBuilder动态构建类型,并介绍其在实际应用中的重要性。 定义公用代码,生成程序集以供对照: 通过学习本系列之前的文章,我们可以轻松定义AssemblyBuilder程序集构建器,再通过程序集构建器,定义ModuleBuilder 模块构建器。 下面我们先通过定义公用代码来生成程序集,以便更好的通过反编绎,来观察对照我们生成的代码。 AssemblyNameassName=newAss...

  bIaTPaOtIHWP   2024年03月25日   57   0   0 .NET

前言: 在这一部分中,我们将深入讨论动态程序集中模块的概念以及如何构建和管理模块。 1、模块的概念: 模块是动态程序集中的基本单位,它类似于一个独立的代码单元,可以包含类型、方法、字段等成员。 在动态程序集中,模块扮演着组织代码和实现代码复用的关键角色。 它们允许开发人员将相关功能和数据组织在一起,并在需要时进行引用和重用。 一个程序集可以包含一个或多个模块,这种模块化的设计有助于提高代码的可维护性和可扩展性。 通俗的讲人话: 即在设计上:在运行时,一个程序集可以包含多个模块,每个模块允许用不同的语言编写,比如VB模块混合C模块。 在使用上:在编绎后,一个程序集只能包含一个模块。 下面来...

  bIaTPaOtIHWP   2024年03月22日   13   0   0 .NET

前言: 在本部分中,我们将深入探讨如何使用CEmit来创建动态程序集。 动态程序集是在运行时生成的,为我们提供了一种灵活、动态地构建和加载程序集的能力。 1.程序集的概念 程序集是.NET中的基本部署单位,它包含了可执行代码、资源、元数据等信息,是.NET应用程序的基本组成单元之一。 与静态程序集(即程序集持久化)不同,动态程序集是在运行时生成的,使得我们可以根据需要动态地构建和加载程序集。 动态程序集的重要性体现在多个方面,包括但不限于模块化、版本控制、代码复用等。 通过动态程序集,我们可以更好地管理和组织代码,实现更灵活的程序设计和开发。 2、Emit 构建程序集支持情况: ....

  bIaTPaOtIHWP   2024年03月21日   43   0   0 .NET

前言: 在CYQ.Data 版本更新的这么多年,中间过程的版本都在完善各种功能。 基于需要支持或兼容的代码越多,很多时候,常规思维,都把相关功能完成,就结束了。 实现过程中,无法避免的会用到大量的反射、锁等对性能有所影响的逻辑代码。 CYQ.Data 从V5.9 版本开始,开始大规模的优化调整代码,目前稳定在V5.9.2.7 版本,下面看一下更新记录 版本更新记录: 794:新增:FireBird数据库支持:增删改查与分页。(2023-12-18)【V5.9.0.0V5.9.0.2】 795:新增:DaMeng达梦数据库支持:增删改查与分页。(2023...

  bIaTPaOtIHWP   2024年03月18日   23   0   0 .NET

前言: 前几天,点开自己的博客,看了一下CYQ.DataV5系列 都有哪些文章, 发现了一篇2019年写的:CYQ.Data对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。 感觉文章中有些表述存有问题,不过不是重点。 重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的更新,有没有进步呢? 为了和之前的版本进行对比,好在当年有留下代码,就直接拿当年的代码来测试一下。 下面就来重新看一下新的测试结果: 测试环境: 本次测试为.NetWindown版本,下次再测试.NetCore Linux版本。 Win11&nbs...

  bIaTPaOtIHWP   2024年03月13日   14   0   0 .NET

KingbaseES人大金仓数据库介绍: KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库。KingbaseES是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通用数据库产品。 该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索等的承载数据库。 作为KingbaseES产品系列最新一代版本,KingbaseESV8在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进。 以下是一些关于KingbaseES数据库的特点和功能: 数据库引擎:KingbaseES是基...

  bIaTPaOtIHWP   2024年03月10日   23   0   0 .NET

DaMeng达梦数据库介绍: 达梦数据库(DMDB)是中国自主研发的关系型数据库管理系统,由达梦科技股份有限公司开发。 达梦数据库提供了企业级的数据库解决方案,广泛应用于金融、电信、政府、制造等行业领域。 达梦数据库具有以下特点和优势: 高性能:具备高性能的并发处理能力,能够支持大容量和高并发的数据访问需求。 高可靠性:采用了多种数据保护机制,包括事务管理、数据备份恢复等,保障数据安全和稳定性。 高可扩展性:支持集群部署和分布式架构,能够灵活扩展以满足不同规模的数据存储需求。 兼容性强:兼容SQL标准,支持PL/SQL存储过程和触发器,同时也提供了丰富的工具和接口。 自主创新:在安全、性能、...

  bIaTPaOtIHWP   2024年03月06日   12   0   0 .NET

分布式幂等性锁介绍: 分布式幂等性框架的作用是确保在分布式系统中的操作具有幂等性,即无论操作被重复执行多少次,最终的结果都是一致的。幂等性是指对同一操作的多次执行所产生的效果与仅执行一次的效果相同。 以下是分布式幂等性框架的主要作用: 避免重复操作:在分布式系统中,由于网络延迟、消息重发等原因,可能导致同一个操作被重复执行多次。分布式幂等性框架可以识别并区分重复的操作请求,确保重复的操作不会对系统状态产生额外影响。 保证系统数据一致性:通过确保操作的幂等性,分布式系统能够更好地保证数据的一致性。即使操作被重复执行,系统最终的状态也会保持一致,不会因为重复操作而导致数据异常或不一致。 提高系统...

  bIaTPaOtIHWP   2024年03月05日   31   0   0 .NET

本系列的目录大纲为: Taurus.MVCWebMVC入门开发教程1:框架下载环境配置与运行 Taurus.MVCWebMVC入门开发教程2:一个简单的页面呈现 Taurus.MVCWebMVC入门开发教程3:数据绑定Model Taurus.MVCWebMVC入门开发教程4:数据列表绑定List<Model> Taurus.MVCWebMVC入门开发教程5:表单提交与数据验证 Taurus.MVCWebMVC入门开发教程6:路由配置与路由映射 Taurus.MVCWebMVC入门开发教程7:部分视图和页面片段(结束篇) 前言: 在本篇Taurus.MVCWebMV...

  bIaTPaOtIHWP   2024年03月02日   45   0   0 .NET
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~