随笔分类 -  .NET Miscellaneous

摘要:本片继承前面几篇一贯的特点,浅谈胡侃。 1 .NET为什么要引入泛型? 说到.NET泛型,应该都不陌生,毕竟泛型是.NET 2.0中就推出的特性,各位博友应该都知道引入泛型的最主要目的是为了解决装箱、拆箱带来的性能损失,说的当然没有错,但是不够“太具体”,确切来讲泛型解决了原先无法避免的容器操作的装箱拆箱问题。 目的就说这么多吧,言简意赅,该说的说了,多说无益。 2.浅谈.NET泛型原理 有过C++编程经验的博友对C++中的模板,一定不陌生,泛型的语法和概念和C++中的模板极其类似,在C++中模板的目的是为了设计更加通用的类型,在.NET中也是这样,当然还有另外一个重要的作用,就... 阅读全文
posted @ 2012-09-03 20:32 DebugLZQ 阅读(10927) 评论(31) 推荐(6) 编辑
摘要:谈到装箱拆箱,DebugLZQ相信给位园子里的博友一定可以娓娓道来,大概的意思就是值类型和引用类型的相互转换呗---值类型到引用类型叫装箱,反之则叫拆箱。这当然没有问题,可是你只知道这么多,那么DebugLZQ建议你花点时间看看楼主这篇文章,继续前几篇博文的风格--浅谈杂侃。 1. .NET中的类型 为了说明装箱和拆箱,那首先必须先说类型。在.NET中,我们知道System.Object类型是所有内建类型的基类。注意这里说的是内建类型,程序员可以编写不继承子自System.Object的类型,这里不做过多的介绍(感兴趣的博友可以研究一下)。 所有.NET的类型都可以分为两类(有点不严... 阅读全文
posted @ 2012-09-02 20:45 DebugLZQ 阅读(8028) 评论(16) 推荐(6) 编辑
摘要:在.NET中,由于有了垃圾回收机制的支持,对象的析构和以前C++有了很大的不同,这就要求程序员在设计类型的时候,充分理解.NET的机制,明确怎样利用Dispose方法和Finalize方法来保证一个对象正确而高效地被析构。 我们知道,在.NET环境中,托管的资源都将由.NET的垃圾回收机制来释... 阅读全文
posted @ 2012-08-28 20:11 DebugLZQ 阅读(3659) 评论(16) 推荐(6) 编辑
摘要:在.NET众多的特性中,可以说反射式.NET框架最独特的一个特性,这一点在其他框架中没有对应的概念。反射在.NET中的地位也是非常重要的,正是存在元素据等信息,才构成了.NET系统运行的基础。 需要说明的是反射在实际开发中的运用,远远没有.NET框架自身对反射的应用多,某种程度上,理解反射的原理和机制,比能够使用反射更为重要,因为能够帮助程序员更透彻的理解.NET的机制和原理。。 在.NET框架中,反射提供了一种动态分析、创建和调用的机制。在.NET框架中,一个系统可以由多个程序集组成,一个程序集可以包含多个模块,而一个模块中会有很多类型,每个类型可以包含字段和方法,方法又可以包含输入... 阅读全文
posted @ 2012-08-25 16:23 DebugLZQ 阅读(4255) 评论(5) 推荐(4) 编辑
摘要:委托、事件、反射、特性等.NET中的高级特性,对这些特性的掌握和熟练运用,往往成为.NET程序员从入门到中级的评价标准。这篇文章DebugLZQ谈一下.NET中的委托特性在.NET框架中是如何实现的,如文章题目说说:浅谈.NET中委托的本质。 委托这一特性对于有过C++编程经验的程序员来说并不陌生,C++中的函数指针和委托确实非常相似,很多人喜欢吧.NET中的委托称为“安全的函数指针”。DebugLZQ这里不去争论这种说法正不正确,但委托确实实现了和函数指针非常相似的功能,那就是程序回调指定方法的机制。 1、委托的基本原理 在委托的内部,包含了一个指向某个方法的指针,在这一点上,委托... 阅读全文
posted @ 2012-08-23 20:03 DebugLZQ 阅读(11880) 评论(15) 推荐(10) 编辑
摘要:sina原文链接:http://tech.sina.com.cn/i/ec/2012-08-16/01167509023.shtml 看似有前景,但不赚钱。当移动互联网的“市梦率”被不断催高时,投资者和开发者开始警惕起来。 这个被TechCrunch撰稿人杰伊·贾米森称为Web 3.0的互联网概念,在经过去年的高度吹捧之后,目前正受到广泛的质疑。 这种质疑随着近来国内移动陌生社交应用陌陌获得高达1亿美元估值的B轮融资,而达到了高点。一名投资者认为,在巨头公司阴影下成长,且看不到营收模式的移动互联网公司,都能获得1亿美元估值的话,那说明这个行业离泡沫已经不远。 目前,移动互联网领域出. 阅读全文
posted @ 2012-08-16 08:57 DebugLZQ 阅读(367) 评论(0) 推荐(0) 编辑
摘要:今天在项目中遇到一个头疼的问题,Oracle数据库报告:ORA-00911错误。问题如下:但是我在PL/SQL Developer中执行明明没有问题!!! 问题出在哪里???纠结了我很久,后来发现:这个问题是SQL语句后面坑爹的分号“;”,把分号删掉问题就解决了~ 问题到这里就解决了,但是l... 阅读全文
posted @ 2012-08-14 10:48 DebugLZQ 阅读(1847) 评论(0) 推荐(0) 编辑
摘要:写这篇博文为了说明如何"托管"与'"非托管"互用问题。具体来讲包括:如何在托管代码中使用非托管代码、如何在托管代码中使用非托管dll、如何在非托管代码中使用托管dll以及托管代码。直接给出最直接的描述---代码。 1.托管代码中使用非托管代码给出个可行示例,简单的说明下下面这段代码的功能--“灰度化”图像。//托管代码调用非托管代码//DebugLZQ以前写的//unsafe{}中代码为非托管代码private void pointer_Click(object sender, EventArgs e) { if (curBitmap != nu 阅读全文
posted @ 2012-08-13 20:12 DebugLZQ 阅读(1770) 评论(7) 推荐(4) 编辑
摘要:ASP.NET是微软公司提供的编写动态网站的技术框架,其特点是基于.NET框架基础,所有的ASP.NET程序都可以使用针对.NET的语言编写。在微软的VS开发平台中,实现了拖放控件等便捷的功能,使得ASP.NET应用程序的开发效率得到了较大的提高,今年来ASP.NET逐渐成为网站开发的主流技术之一。 但是ASP.NET的本质到底是什么?为了回答这个问题,下面先介绍2个概念。1.NET 宿主 作为一个致力于运行在Windows操作系统之上的技术框架,.NET的实现充分体现了这一点。.NET小组实质上把CLR实现为一个标准的COM服务器组件,CLR具有标准的COM接口和接口GUID,在安装... 阅读全文
posted @ 2012-08-11 20:16 DebugLZQ 阅读(5153) 评论(21) 推荐(4) 编辑
摘要:最近发布的Mono for Android 4.2允许用户利用Xamarin设计界面创建美观简洁的用户界面。现在,我们可以通过拖拽操作在Visual Studio的XAML设计界面中任意处理UI元素。 最近发布的Mono for Android 4.2允许用户利用Xamarin设计界面创建美观简洁的用户界面(简称UI)。现在,我们可以通过拖拽操作在Visual Studio的XAML设计界面中任意处理UI元素。此外,MonoDevelop 3.0版本也已经面世,这是一款开源集成开发环境(简称IDE),能够运行于Linux、Mac OS X以及Windows系统当中。 为了达到客观的分析... 阅读全文
posted @ 2012-08-07 13:17 DebugLZQ 阅读(4351) 评论(2) 推荐(0) 编辑
摘要:.net中的计时问题可能每个人都会遇到,但是很少有人系统的总结,Baidu了下,无果,故写作本文。本文旨在总结.net中可用的各种计时方法,介绍的是DebugLZQ知道的几种.net中的定时、计时方法。并进行了我所知道的分析(重点)和简单使用,并不涉及更深层次的讨论。进入正题: 定时器是系统常用的... 阅读全文
posted @ 2012-08-05 10:55 DebugLZQ 阅读(11503) 评论(5) 推荐(3) 编辑
摘要:最近一个项目中用到,下面直接给出源码 //字符串转流 public static MemoryStream StringToStream(string s) { // convert string to stream ... 阅读全文
posted @ 2012-08-04 08:33 DebugLZQ 阅读(4327) 评论(1) 推荐(1) 编辑
摘要:1:socket VS remoting 使用socket无疑是效率最高的。但是,在复杂的接口环境下,socket的开发效率也是最低的。故在兼顾开发效率的情况下,可以使用remoting来代替socket开发。并且: 1、Tcp通道的Remoting速度非常快。 你可以通过端口查看工具,发现remoting比直接socket传输的内容,应该是属于同一个数量级的。我的另一个担心是,大客户端数量的情况下,remoting传输效率会不会很低,结果经过现场测试,同时对300个客户端进行数据通信,不存在信息丢失情况。 2、虽然是远程的,但是非常接近于本地调用对象。 也就是完全符合面向对象思想。 3、可以 阅读全文
posted @ 2012-08-03 15:19 DebugLZQ 阅读(2364) 评论(0) 推荐(0) 编辑
摘要:1. .NET Remoting .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以是在同一个进程中进行、一个系统的不同进程间进行、不同系统的进程间进行)。 更具体的说,Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。也就是说,使用.NET Remoting,一个程序域可以访问另外一个程序域中的对象,就好像这个对象位于自身内部,只不过,对这个远程对象的调用,其代码是在远程应用程序域中进行的,例如在本地应用程序域中调用远.. 阅读全文
posted @ 2012-07-30 12:18 DebugLZQ 阅读(13494) 评论(46) 推荐(21) 编辑
摘要:首先申明原文出自这里:http://www.mysqlops.com/2012/04/17/dba-alibaba.html(这篇文章很长,我花了半个小时读完),这是篇博客园.NET频道首页上面的头条。个人也很喜欢总结,总结是一个很好的习惯。总结对于技术是一种沉淀,对于个人则更多的是对社会复杂关系的种种感悟,人生阅历的积累。 去除主人翁的近大半篇幅的个人简述,截取的是作者给大家分享的震撼。如下: 在阿里最深刻的,还是职场之道给我的震撼。 在此,引用一位PUBER的发帖:A同学,遇到问题,召集会议写报告搞风险评估,凤凤火火,完事后到处汇报心得,各部门都知道了数据部的功劳。B同学,遇到问... 阅读全文
posted @ 2012-07-24 18:59 DebugLZQ 阅读(695) 评论(0) 推荐(0) 编辑
摘要:这篇博文写的是简单的行列转换的,以一个具体的例子来给出。 以前在论坛上有人问过相关的问题,上面的回答五光十色,有很多是可行的,当然更多的是自以为很高端,实际却不着边际的回答。下面进入正题。part1:列转行。需求:示例给出这么一张表:表定义如下:create table TEST_TB_GRA... 阅读全文
posted @ 2012-07-23 12:06 DebugLZQ 阅读(10225) 评论(4) 推荐(2) 编辑
摘要:就像剥去.NET语法糖衣的工具(Reflector等)很多一样,我们可以用来分析.NET程序性能的工具有很多,如前面一片博文DebugLZQ给大家介绍的vs自带的性能分析工具,除此之外常用的还有还有clr profiler、Windbg等。 vs自带的性能分析可以很快的找到瓶颈代码,而且支持多线程。 Windbg就不多说了,Windows平台下强大的用户态和内核态调试工具!虽然windbg也提供图形界面操作,但它最强大的地方还是有着强大的调试命令,用起来比较费劲。 这里主要要说的是CLR Profile了,他检测结果最为详细,不过由于检测托管堆分配和垃圾回收会影响应用程序的运行速度,... 阅读全文
posted @ 2012-07-12 13:16 DebugLZQ 阅读(4403) 评论(10) 推荐(3) 编辑
摘要:这篇博文给大家分享的是,如何使用VS自带的性能分析工具来分析我们编写的.NET程序,一边找出程序性能的瓶颈,改善代码的质量。在实际开发中,性能真的很重要,往往决定一个产品的生死~良好的用户体验的基础之一也是程序要有好的性能~下面以一个大家熟悉比较极端的例子,来说明编写代码时考虑性能的重要性。这里DebugLZQ用的是10.0版本的VS。示例程序代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace VS2010性能测试{ class Program ... 阅读全文
posted @ 2012-07-10 21:22 DebugLZQ 阅读(7462) 评论(11) 推荐(12) 编辑
摘要:前面DebugLZQ写了一篇博文,介绍的是如何使用Nunit编写.NET单元测试。但是使用NUnti进行单元测试有一个致命的弱点:无法调试。因为我们的测试本省也是代码,同样我们不能确定我们的代码是对的。这篇博文将以在VS2010下连接数据库并插入一个字段的方法编写单元测试为例,介绍如何使用Tes... 阅读全文
posted @ 2012-07-09 16:32 DebugLZQ 阅读(3202) 评论(11) 推荐(2) 编辑
摘要:[原文链接]最近偶然在QQ技术群里见到有人提起用C#开发Android,当时我感觉到很诧异:Android不是只能用Java开发吗?何时可以使用C#了?那个群友便告知我:mono。 百度一下吧!搜到了mono的官方网站:http://xamarin.com/(英文网站,看这个够头大的了)。根据我仅有的点英语知识,好得看懂了些: Mono是用C#和.Net在VS环境下开发多个平台手机应用程序。意思就是说通过Mono,可以开发多个平台的手机应用程序(即iOS和Android)。听起来好像不错,但它是商业程序,因此是要收费的。幸运的是,它有免费的应用版本,并且永不过期,唯一不足的是试用版本有限制,官 阅读全文
posted @ 2012-07-08 16:53 DebugLZQ 阅读(613) 评论(3) 推荐(0) 编辑