net 高级调试之八:代码审查及杂项命令-编程思维
一、简介 今天是《Net 高级调试》的第八篇文章。这篇文章设计的内容挺多的,比如:如何查看方法的汇编代码,如何获取方法的描述符,对象同步块的转储,对象方法表的转储,托管堆和垃圾回收器信息的转储,CLR 的版本,GC 模式,等等,内容挺多的。内容虽然挺多,但是这些都是高级调试的基础。虽然这些都是基础,如果这些掌握不好,以后的高级调试的道路,也不好走。当然了,第一次看视频或者看书,是很迷糊的,
morethink program
一、简介 今天是《Net 高级调试》的第六篇文章。记得我刚接触 Net 框架的时候,还是挺有信心的,对所谓的值类型和引用类型也能说出自己的见解,毕竟,自己一直在努力。当然这些见解都是书本上的,并没有做到眼见为实,所以总是有些东西说不清楚。今天,我们就好好的说说 C# 的类型,是从内存级别、从底层来说一下值类型、引用类型到底是什么,它们在内存中的形态,还有也说说数组的内存形态,如何内部布局
一、简介 今天是《Net 高级调试》的第四篇文章。到今天为止,也有三篇文章了,对 Windbg 也有初步的认识了,当然,一个工具流畅、熟练的使用,对于我们调试 Net 程序是至关重要的。在前几篇文章的基础上,我们这篇文章主要介绍一些和使用 Windbg 有关的命令和操作。就我个人而言,第一次接触这个东西,还是挺难的,以前从来没有用过 Windbg,用的最多的就是 Visual Studio
一、简介 今天是《Net 高级调试》的第三篇文章,压力还是不小的。上一篇文章,我们浅浅的谈了谈 CLR 和 Windows 加载器是如何加载 Net 程序集的,如何找到程序的入口点的,有了前面的基础,我们今天看一点更详细的东西。既然 Windows 操作系统已经加载了 CLR,初始化了应用程序域,加载了我们的 Net 程序,那我们就看看Net 类型在内存中的具体样子。这一篇文章还是有一点难
一、简介 今天是 Net 高级调试的第二篇文章,第一篇文章记录了自己学习 Net 高级调试的第一步,认识一些调试工具,有了工具的倚仗,我们开始仗剑走天涯了,开始Net 高级调试正式的征程了。我先说一下,我的文章,【调试测试】这部分一般分为两个部分,第一部分是要用到的所有测试代码样例,也为大家提供方便,我第一次做测试还是走了不少弯路的。第二部分,就是使用 Windbg 调试器调试代码的部分,
“7月20日 23:30 Visual Studio 2015正式版正式发布,作为微软新一代开发利器,在全地球乃至全宇宙乃至全太阳系中最强大 且没有之一的IDE(上述描述来自微博用户评论)跨平台支持成为Visual Studio最新DNA。在智能移动端App开发,支持无论是面向何种智能设备,无论是支持Native应用,还是基于HTML5的混合应用,都可以借助Visual Studio的编码、调试
今天的博文是学习CLR存储过程,一个简单的例子,学会怎样创建,编译,布署在SQL中。CLR能做一些T-SQL无法做的事情,很多情况之后,它比T-SQL快。打开VS2013,创建一个新专案,参考下面5个步骤: 如果你想写好的CLR存储过程布署在SQL2008上,上面标记2选择.NET Framework3.5。 创建一个新item:创建一个存储过程的类别: 点击标记12的铵钮之后,在VS中
昨天有学习《简单创建与布署CLR存储过程》http://www.cnblogs.com/insus/p/4371762.html,知道怎样创建以及布署至SQL中去。 下面这个范例是实现CLR存储过程附带参数: 可复制代码: SqlConnection connection = new SqlConnection("Context connection=true"); con
前面写了一篇《带参数的CLR存储过程》http://www.cnblogs.com/insus/p/4373605.html ,如果我们需要创建一个带OUTPUT返回值。实现它,可以先了解一下C#的OUT关键词 out (C# Reference) 打开刚才前面我们写好的SQL DataBase project,添加一个方法: 可复制代码: public static void GetFr
这段时间学习SQL Server CLR编程,但是SQL CLR编程,里面所使用的数据类型为CLE TYPE,它多少与 Db TYPE有些区别,在网上找到一个列表http://geekswithblogs.net/manjunath.k/archive/2013/09/11/sqldbtype-to-clr-type.aspx,转载于此,方便查阅。 SqlDbType CLR Type
这几天来,努力学习了CLR的存储过程,创建与部署。从普通的存储过程,带参数,以及Output返回值等。Insus.NET今天学习一个例子,怎样实现CLR Table-Valued函数。在数据库中,我们可以看到很多种函数类型,Table-falued function,Scalar-valued function 等等。 这篇练习的CLR中编写的函数就是table-valued functio
昨天有学习了返回表自定义函数《CLR Table-Valued函数》http://www.cnblogs.com/insus/p/4378354.html。今天学习另一个,实现返回标量(Scalar-valued) function。 这个标量函数获取分类全名。 SELECT [CategoryName] + '--' + [KindName] + '--' + [FruitName] F
温习一下这些天学习的CLR编程,存储过程,函数。 编写CLR的存储过程,运行起来的效率,果然比普通的SQL语句,存储过程或是函数均高。以后专案需求,或是执行效率较高的SQL,得写成CLR程序,再部署至SQL中去,这样可以解决问题。 可复制代码: [Microsoft.SqlServer.Server.SqlProcedure] public static void GetFrui
专案需要,需要在数据库中提供一个些数据,可让用户读取,但不能修改。或许你需要创建一个表,手动添加这些静态数据,这样的话,用户有可能直接打开数据库修改。也许你会创建一个table-valued 函数并加密。解决方案很多,下面Insus.NET使用Clr存储过程来实现,把数据直接设置于CLR程序中。当部署于SQL时,如果用户没有拿到dll,也许一时无法修改,仅能只读了。创建一个CLR存储过程:可复制
前两天Insus.NET实现一个功能《在数据库中提供只读数据》http://www.cnblogs.com/insus/p/4384411.html ,在数据库中为程序提供静态数据。它是在Clr存储过程实现。现想使用另外一种方式来解决。如果提供这些静态数需要与其它数据结合Join等,这样象前面的存储过程,有些不太好操作。那我们可以把它实现在table-valued function。创建一个mo
在CLR编写一个插入娄据的触发器。 这个触发器是当对表插入数据时,即时把刚才插入的数据显示出来: 可复制代码: public static void tri_RetrieveJustInsertedData() { SqlCommand command; SqlTriggerContext triggContext = SqlContext.T
[CLR]委托 Delegate 回调函数 非托管程序回调函数 在非托管c/c++中非成员函数值是一个内存地址,这个地址不携带任何信息比如函数的参数 返回值。参数类型。 托管程序回调函数-委托 委托就是c#内的回调函数,它是类型安全的 能定义类的地方都能定义委托。 包装器 委托对象是方法的一个包装器(wrapper),当一个方法绑定一个委托时,允许引用类型的协变性(方法能返回冲委托类型派生的一个
1,在数据库中,部署httpget和httppost CLR函数:《MS SQL SERVER操作API的GET和POST CLR》https://www.cnblogs.com/insus/p/15665449.html 2,在数据库,创建2张表,存储企业钉钉的一些静态数据: 以上2张表的数据,除了Access_Token和Acquisition_Time是动态获取之外,其它均是静态数据,需