上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 55 下一页
摘要: 在上一篇,我们讲解了System.dll,现在我们来看System.IO,要操作IO,就需要,确定储存媒介,打开,然后读取或者写入,那么在.Net中这三步是如何的呢?还是老规矩上图 1.打开:Directory和File,前者用来操作文件夹,后者操作文件,它们和FileSystemInfo的两个子类 的区别在于,他们是静态类,对文件或文件夹的操作是弱类型的。而FileSystemInfo的两个子类是实例类,它们是强类型的。2.储存媒介:抽象Stream基类,提供了对储存媒介的同步或异步的访问,他把数据流表示为原始的字节流,他的三个子类提供了, 基于文件的Filestream,基于内存的Meno 阅读全文
posted @ 2011-10-17 18:28 hanmos 阅读(268) 评论(0) 推荐(0)
摘要: 上一篇我们讲解了CIL,CTS,程序集等内容,并且留下了一个问题,就是.net如何跨平台,我们现在就来弄明白这个问题.由于篇幅有限,请大家参照第一篇的图. 按照流程图我们该讲解mscoree.dll了 由相关的.net进程来加载Mscoree.dll,对于相关进程我们在后面讲到Winform,ASP.NET时,将继续讲解. mscoree.dll:公共对象运行库执行引擎.由他来寻找所有要加载的dll的位置并且加载他们(必须包含mscorlib.dll 他是核心类库,包含大量的核心类型,System,system.io等).然后读取程序集中的元数据.所以mscoree.dll又被称为CLR的垫 阅读全文
posted @ 2011-10-17 18:27 hanmos 阅读(281) 评论(0) 推荐(0)
摘要: 众所周知,DotNet框架是非常庞大的,光项目创建时的种类就有WPF,WCF,WF这三种最新的技术,还有以前的Web,WinForm,Service,Mobile等等. 这么复杂和庞大的框架,用文字来描述是远远不够的,所以我准备写一系列图文并茂的文章,把我所知道的所有Net框架中的东西全部串联起来,希望可以给大家一个DotNet框架的知识图,本人能力有限,难免有理解错误和表达不清的地方,望大家谅解并指教. 好,我们现在就开始第一张图的学习,再所有的文章写完后,大家将会得到一个完整的框架图。 下面我会做出对这个图的解释,请大家对照图来一步一步的学习。 1.CTS 和 CLS : CTS:公共.. 阅读全文
posted @ 2011-10-17 18:26 hanmos 阅读(369) 评论(0) 推荐(0)
摘要: 第一部分:程序集(System.Reflection.Assembly) 1.获取Assembly对象 方法1:调用Assembly的以下4个静态方法Get...()之一:GetAssembly(Type t)GetCallingAssembly() ——返回调用当前方法的方法所在的程序集GetExecutingAssembly() ——返回当前执行代码所在的程序集GetEntryAssembly()——返回当前AppDomain中包含Main方法的程序集 方法2:调用Assembly的以下3个静态方法Load(...)之一:括号中的...表示有若干种重载 Load(...)LoadW... 阅读全文
posted @ 2011-10-17 18:19 hanmos 阅读(285) 评论(0) 推荐(0)
摘要: 这篇文章我们来学习System.Reflection,.net中反射的核心类.先来看图:前面的文章,我们说过.net的元数据可以完整地描述类型,那么通过System.Reflection,可以在运行时发现类型格式,我们来看一下元数据:源代码:classClass2{privateintx;privateinty;publicClass2(inta,intb){x=a;y=b;}publicintAdd(){returnx+y;}}元数据,请看代码注释TypeDef#2(02000003)//---------------------------------------------------- 阅读全文
posted @ 2011-10-17 18:17 hanmos 阅读(314) 评论(0) 推荐(0)
摘要: .net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。我大致的方法为 :强签名+混淆+加密。强签名 强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。强签名很简单为项目添加强名称方法:1.右键单击项目,打开属性窗口;2.在属性窗口里选择《签名》标签,选中为程序集签名的选项,在下拉列表里选择新建,如下图所示:3.打开新建签名窗口,输入签名的名称密码等内容,如下图所示:单击确定后,签名添加完成。为没有源码的D. 阅读全文
posted @ 2011-10-14 18:23 hanmos 阅读(1895) 评论(0) 推荐(0)
摘要: 为什么同样进一家公司,同样的环境,同样的培训,同样的上级,一些人在过了几年后发展的很好,而有些人就一直不得意。深而究之,都在于对工作的认知和职业 基本意识的不同。以下我就员工的工作意识和方法、思路做一个总结,我把他称作职业人的职业素养的“七项修炼”。 第一项修炼、问题意识 如何懂得问“为什么?”这是个问题。很多人在工作中不懂得问为什么,导致工作不改进,成长速度慢,每天做重复的工作,停步不前,固步自封。在写 自己的工作经历时,工作履历写了一大串,问问每项工作学到了什么,自己有什么特长,往往给我的回答都是几年的重复工作,漫无思绪,原地踏步。养成问“为什 么”的习惯是优秀职业人的杀手锏,他代表了.. 阅读全文
posted @ 2011-10-13 13:40 hanmos 阅读(367) 评论(0) 推荐(0)
摘要: 对于数组的访问,是应该使用for的方式的,因为这样性能更高。以下代码是恰当的。 Object[] objArray = ...; int objArrayLength = objArray.Length; for (int i = 0; i < objArrayLength; ++i) { // do something ... } String str = ...; int strLength = str.Length; for (int i = 0; i < strLength; ++i) { // do something ... } 对ArrayList这样的可使用下标进行 阅读全文
posted @ 2011-09-30 16:11 hanmos 阅读(1930) 评论(0) 推荐(0)
摘要: 好久没有写文章了,由于换工作了,所以一直没有时间来写博。今天抽个空练练手下~最近接触了下Thrift,网上也有很多文章对于Thrift做了说明: Thrift是一种可伸缩的跨语言服务框架,它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,工作效率和无缝地与C++,C#,Java,Python和PHP和Ruby结合。thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。 它的好处是什么?当然是它支持大多数时下流行的语言。通过Thrift命令自动生成相应的语言脚本。而进行一些性能对比中,它的好... 阅读全文
posted @ 2011-09-15 18:59 hanmos 阅读(4283) 评论(0) 推荐(1)
摘要: 合并列值表结构,数据如下:view plainidvalue-----------1aa1bb2aaa2bbb2ccc需要得到结果:id values------ -----------1 aa,bb2 aaa,bbb,ccc即:group by id, 求 value 的和(字符串相加)1. 旧的解决方法(在sql server 2000中只能用函数解决。)--1. 创建处理函数create table tb(id int, value varchar(10))insert into tb values(1, 'aa')insert into tb values(1,  阅读全文
posted @ 2011-09-15 13:46 hanmos 阅读(14881) 评论(0) 推荐(1)
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 55 下一页