摘要: 本专题概要引言自定义任务窗体(Task Pane)自定义选项卡,即Ribbon自定义上下文菜单小结引言 在上一个专题中为大家介绍如何创建Excel的解决方案,相信大家通过从上面一个专题之后了解了Excel的对象模型,以及Office两种解决方案的,看完上一个专题之后,肯定很多朋友想为Excel自定义属于自己的UI界面,例如,有这样的一些疑问——是否可以使用VSTO来自定义选项卡呢? 是否可以自定义上下文菜单的呢?如果你也有这些疑问的话,相信通过本专题你将会得到答案的,下面就开始我们本专题的介绍。二、自定义任务窗体 在使用Word2010的时候我们可以通过左边的导航来看了解文档的结构,同时我.. 阅读全文
posted @ 2013-03-04 00:52 Learning hard 阅读(9617) 评论(8) 推荐(7) 编辑
摘要: 本专题概要引言创建VSTO项目Excel对象模型创建Excel外接程序创建Excel文档级自定义项小结一、引言 也许很多朋友都没有听说过VSTO这个东西的,本人之前也同样也不知道的,但是由于工作的原因接触了这方面,由于VSTO方面国内的资料比较少,本人刚开始学习的时候都是参考MSDN的,但是上面很多资料都是英文的,可能学习起来会比较慢点,所以本人把最近一段时间学习的内容记录下来,一来是作为一个巩固的学习笔记,二来希望这些博客可以帮助一些刚接触VSTO的朋友可以有所借鉴。 讲了这么多废话(指的上面一些过渡的话),到底VSTO到底是什么呢?这里我简单的概括下的——VSTO是微软推出一种对Off.. 阅读全文
posted @ 2013-02-24 17:32 Learning hard 阅读(12637) 评论(19) 推荐(8) 编辑
摘要: C#互操作系列文章:C#互操作性入门系列(一):C#中互操作性介绍C#互操作性入门系列(二):使用平台调用调用Win32 函数C#互操作性入门系列(三):平台调用中的数据封送处理C#互操作性入门系列(四):在C# 中调用COM组件本专题概要:引言如何在C#中调用COM组件——访问Office 互操作对象在C# 中调用COM组件的实现原理剖析错误处理小结一、引言 COM(Component Object Modele,组件对象模型)是微软以前推崇的一个开发技术,所以现在微软的很多产品都用到了COM组件,如Office,IE等。然而如果.NET 平台下的程序想访问COM组件的方式来实现某个功能怎. 阅读全文
posted @ 2013-01-27 01:04 Learning hard 阅读(28042) 评论(6) 推荐(15) 编辑
摘要: C#互操作系列文章:C#互操作性入门系列(一):C#中互操作性介绍C#互操作性入门系列(二):使用平台调用调用Win32 函数C#互操作性入门系列(三):平台调用中的数据封送处理C#互操作性入门系列(四):在C# 中调用COM组件本专题概要数据封送介绍封送Win32数据类型封送字符串的处理封送结构体的处理封送类的处理小结一、数据封送介绍看到这个专题时,大家的第一个疑问肯定是——什么是数据封送呢?(这系列专题中采用假设朋友的提问方式来解说概念,就是希望大家带着问题去学习本专题内容,以及大家在平时的学习过程中也可以采用这个方式,个人觉得这个方式可以使自己学习效率有所提高,即使这样在学习的过程可能会 阅读全文
posted @ 2013-01-23 11:03 Learning hard 阅读(8610) 评论(14) 推荐(14) 编辑
摘要: C#互操作系列文章:C#互操作性入门系列(一):C#中互操作性介绍C#互操作性入门系列(二):使用平台调用调用Win32 函数C#互操作性入门系列(三):平台调用中的数据封送处理C#互操作性入门系列(四):在C# 中调用COM组件本专题概要:引言如何使用平台调用Win32 函数——从实例开始当调用Win32函数出错时怎么办?——获得Win32函数的错误信息小结一、引言 上一专题对.NET 互操作性做了一个全面的概括,其中讲到.NET平台下实现互操作性有三种技术——平台调用,C++ Interop和COM Interop,今天在这个专题中将会大家介绍第一种技术,即平台调用。然而朋友们应该会有这. 阅读全文
posted @ 2013-01-21 10:23 Learning hard 阅读(9037) 评论(15) 推荐(18) 编辑
摘要: C#互操作系列文章:C#互操作性入门系列(一):C#中互操作性介绍C#互操作性入门系列(二):使用平台调用调用Win32 函数C#互操作性入门系列(三):平台调用中的数据封送处理C#互操作性入门系列(四):在C#中调用COM组件本专题概要:引言平台调用C++ Interop(互操作)COM Interop(互操作)一、引言 这个系列是在C#基础知识中遗留下来的一个系列的,因为在C# 4.0中的一个新特性就是对COM互操作改进,然而COM互操作性却是.NET平台下其中一种互操作技术,为了帮助大家更好的了解.NET平台下的互操作技术,所以才有了这个系列。然而有些朋友们可能会有这样的疑问——“为什. 阅读全文
posted @ 2013-01-14 10:45 Learning hard 阅读(13711) 评论(6) 推荐(32) 编辑
摘要: C#基础知识系列终于告了一个段落了, 本系列中主要和大家介绍了C#1.0到C# 4.0中一些重要的特性,刚开始写这个专题的初衷主要是我觉得掌握了C#这些基础知识之后,对于其他任何的一门语言都是差不多的,这样可以提高朋友们对其他语言的掌握,以及可以让大家更加迅速地掌握.NET的新特性, 并且相信这个系列对于找工作的朋友也是很有帮助的,因为很多公司面试都很看重基础知识是否扎实,是否对C#有一个全面的认识和理解,所以很多公司面试都会问到一些C#基础概念的问题,例如,经常面试会问:你是如何理解委托的,如何理解匿名函数等问题。然而这个系列中并没有介绍COM互操作性的内容以及.Net 4.5中的一些新.. 阅读全文
posted @ 2013-01-08 10:30 Learning hard 阅读(17818) 评论(53) 推荐(79) 编辑
摘要: 本专题概要:动态类型介绍为什么需要动态类型动态类型的使用动态类型背后的故事动态类型的约束实现动态行为总结引言: 终于迎来了我们C# 4中特性了,C# 4主要有两方面的改善——Com 互操作性的改进和动态类型的引入,然而COM互操作性这里就不详细介绍的,对于.Net 互操作性我将会在另外一个专题中详细和大家分享下我所了解到的知识,本专题就和大家分享C# 4中的动态类型,对于动态类型,我刚听到这个名词的时候会有这些疑问的——动态类型到底是什么的呢? 知道动态类型大概是个什么的时候,肯定又会有这样的疑问——C# 4中为什么要引入动态类型的?(肯定引入之后可以完成我们之前不能做的事情了,肯定是有好处. 阅读全文
posted @ 2013-01-07 02:23 Learning hard 阅读(12673) 评论(28) 推荐(50) 编辑
摘要: 本专题概要:Linq是什么使用Linq的好处在哪里Linq的实际操作例子——使用Linq遍历文件目录小结引言: 终于到了C# 3中最重要特性的介绍了,可以说之前所有介绍的特性都是为了Linq而做准备的,然而要想深入理解Linq并不是这个专题可以介绍完的,所以我打算这个专题将对Linq做一个简单的介绍,对于Linq的深入理解我将会后面单独作为一个系列要和大家分享下。一、Linq是什么?Linq也就是Language Integrated Query的缩写,即语言集成查询,是微软在.Net 3.5中提出的一项新技术, Linq主要包含4个组件——Linq to Objects、Linq to X. 阅读全文
posted @ 2012-12-24 00:20 Learning hard 阅读(12511) 评论(16) 推荐(20) 编辑
摘要: 引言: C# 3中所有特性的提出都是更好地为Linq服务的, 充分理解这些基础特性后。对于更深层次地去理解Linq的架构方面会更加简单,从而就可以自己去实现一个简单的ORM框架的,对于Linq的学习在下一个专题中将会简单和大家介绍下,这个专题还是先来介绍服务于Linq的基础特性——扩展方法一、扩展方法的介绍 我一般理解一个知识点喜欢拆分去理解,所以对于扩展方法的理解可以拆分为——首先它肯定是一个方法,然而方法又是对于一个类型而言的,所以扩展方法可以理解为现有的类型(现有类型可以为自定义的类型和.Net 类库中的类型)扩展(添加)应该附加到该类型中的方法。 在没有扩展方法之前,如果我们想为一.. 阅读全文
posted @ 2012-12-17 14:30 Learning hard 阅读(5217) 评论(13) 推荐(10) 编辑
摘要: 想弄懂Lambda表达式,相信看了本博客之后将不会觉得Lambda表达式难理解了 阅读全文
posted @ 2012-12-12 10:19 Learning hard 阅读(11463) 评论(25) 推荐(23) 编辑
摘要: 引言 经过前面专题的介绍,大家应该对C# 1和C# 2中的特性有了进一步的理解了吧,现在终于迎来我们期待已久的C# 3中特性,C# 中Lambda表达式和Linq的提出相当于彻底改变我们之前的编码风格了,刚开始接触它们,一些初学者肯定会觉得很难理解,但是我相信,只要多多研究下并且弄明白之后你肯定会爱上C# 3中的所有特性的,因为我自己就是这么过来的,在去年的这个时候,我看到Lambda表达式和Linq的时候觉得很难理解,而且觉得很奇怪的(因为之前都是用C# 3之前的特性去写代码的,虽然C# 3中的特性已经出来很久了,但是自己却写的很少,也没有怎么去研究,所以就觉得很奇怪,有一种感觉就是——怎. 阅读全文
posted @ 2012-12-11 01:20 Learning hard 阅读(6373) 评论(11) 推荐(16) 编辑
摘要: 引言: 在C# 1.0中我们经常使用foreach来遍历一个集合中的元素,然而一个类型要能够使用foreach关键字来对其进行遍历必须实现IEnumerable或IEnumerable<T>接口,(之所以来必须要实现IEnumerable这个接口,是因为foreach是迭代语句,要使用foreach必须要有一个迭代器才行的,然而IEnumerable接口中就有IEnumerator GetEnumerator()方法是返回迭代器的,所以实现了IEnumerable接口,就必须实现GetEnumerator()这个方法来返回迭代器,有了迭代器就自然就可以使用foreach语句了),然 阅读全文
posted @ 2012-12-02 23:16 Learning hard 阅读(11424) 评论(14) 推荐(14) 编辑
摘要: 引言: 感觉好久没有更新博客了的,真是对不住大家了。在这个专题中将介绍匿名方法,匿名方法看名字也能明白,当然就是没有名字的方法了(现实生活中也有很多这样的匿名过程,如匿名投票,匿名举报等等,相信微软在命名方面肯定是根据了生活中例子的),然而匿名方法的理解却不是仅仅是这一句话(这句话指的是没有名字的方法),它还有很多内容,下面就具体介绍下匿名方法有哪些内容一、匿名方法 之前一直认为匿名方法是在C# 3.0中提出的,之前之所以这么认为主要是因为知道C# 3.0中提出了匿名类型,所以看到匿名方法就很理所当然的认为也是在C# 3.0中提出来,然而经过系统的学习C#特性后才发现匿名方法在C# 2.0.. 阅读全文
posted @ 2012-12-01 22:25 Learning hard 阅读(7192) 评论(6) 推荐(16) 编辑
摘要: 引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚开始觉得可空类型使用过程中比较简单,觉得没有讲的必要,但是考虑到这个系列的完整性,决定还是唠叨下吧,希望对一些不熟悉的人有帮助)。一、为什么会有可空类型 如果朋友们看了我之前的分享,对于这一部分都不会陌生,因为我一般介绍C#特性经常会以这样的方式开头的, 因为每个特性都是有它出现的原因的(有一句佛语这是这么讲的:万事皆有因,有因必有果),首先来说说这个因的(果当然是新增加了可空类型这个新特性了.. 阅读全文
posted @ 2012-11-23 00:42 Learning hard 阅读(8043) 评论(24) 推荐(16) 编辑
摘要: 引言: 在C# 2.0中泛型并不支持可变性的(可变性指的就是协变性和逆变性),我们知道在面向对象的继承中就具有可变性,当方法声明返回类型为Stream,我们可以在实现中返回一个FileStream的类型,此时就存在一个隐式的转化——从FileStream类型(子类引用)——>Stream类型(父类引用),并且引用类型的数组也存在这种从子类引用——>父类引用的转化,例如string[] 可以转化为object[](即这样的代码是可以通过编译的:string[] strs =new string[3]; object[] objs =strs;),此时我们肯定会想是否泛型中的泛型参数也 阅读全文
posted @ 2012-11-12 09:16 Learning hard 阅读(7280) 评论(12) 推荐(16) 编辑
摘要: 引言: 本专题主要是承接上一个专题要继续介绍泛型的其他内容,这里就不多说了,就直接进入本专题的内容的。一、类型推断 在我们写泛型代码的时候经常有大量的"<"和">"符号,这样有时候代码一多,也难免会让开发者在阅读代码过程中会觉得有点晕的,此时我们觉得晕的时候肯定就会这样想:是不是能够省掉一些"<" 和">"符号的呢?你有这种需求了, 当然微软这位好人肯定也会帮你解决问题的,这样就有了我们这部分的内容——类型推断,意味着编译器会在调用一个泛型方法时自动判断要使用的类型,(这里要注意的是:类型推 阅读全文
posted @ 2012-11-08 17:25 Learning hard 阅读(6348) 评论(17) 推荐(16) 编辑
摘要: 引言: 在上一个专题中介绍了C#2.0 中引入泛型的原因以及有了泛型后所带来的好处,然而上一专题相当于是介绍了泛型的一些基本知识的,对于泛型的性能为什么会比非泛型的性能高却没有给出理由,所以在这个专题就中将会介绍原因和一些关于泛型的其他知识。一、泛型类型和类型参数 泛型类型和其他int,string一样都是一种类型,泛型类型有两种表现形式的:泛型类型(包括类、接口、委托和结构,但是没有泛型枚举的)和泛型方法。那什么样的类、接口、委托和方法才称作泛型类型的呢 ?我的理解是类、接口、委托、结构或方法中有类型参数就是泛型类型,这样就有类型参数的概念的。 类型参数 ——是一个真实类型的一个占位符(.. 阅读全文
posted @ 2012-11-08 01:29 Learning hard 阅读(6666) 评论(9) 推荐(13) 编辑
摘要: 因为WP8 SDK发布,很多WP8的开发者们也开始陆续安装WP8的SDK的,然而安装WP8的SDK有很多软件和硬件的要求,其中有一个就是——要求CPU支持二级地址转换(SLAT),如果CPU不支持二级地址转换的话,在电脑上就不能运行Windows Phone的模拟器来测试自己开发的程序了,对于二级地址的转换到底是什么意思,我在这里就不解释了,大家可以通过网上查下具体的含义,这里就介绍下如何知道自己的CPU支持二级地址转换的。通过微软发布的一个工具就可以检测自己的CPU是否支持二级地址转换的, 这个工具的名称叫——Coreinfo,大家可以从这个链接下载: http://technet.micr 阅读全文
posted @ 2012-11-04 10:39 Learning hard 阅读(23251) 评论(32) 推荐(8) 编辑
摘要: 引言:前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解,那就让我们一起进入本专题的学习的。一、泛型的是什么 泛型的英文解释为generic,当然我们查询这个单词时,更多的解释是通用的意思,然而有些人会认为明明是通用类型,怎么成泛型了的,其实这两者并不冲突的,泛型本来代表的就是通用类型,只是微软可能有一个比较官方的此来形容自己引入的特性而已,既然泛型是通用的, 那么泛型类型就是通用类型的,即泛型就是一中模子。 在生活中,我们经常会看到模子,像我们平常生. 阅读全文
posted @ 2012-11-03 21:54 Learning hard 阅读(6497) 评论(20) 推荐(17) 编辑
摘要: 引言:当我们在点击窗口中的Button控件VS会帮我们自动生成一些代码,我们只需要在Click方法中写一些自己的代码就可以实现触发Click事件后我们Click方法中代码就会执行,然而我一直有一个疑问的——既然上一专题中说事件是一个多播委托,然而自动生成的代码中只有事件的实例化,却没有看到事件的调用,那既然没有事件调用的代码,那封装的Click为什么会执行呢?一、点击按钮时触发Click事件背后发送的事情在引言中提出了我的提问的, 我相信有些朋友可能也会有这样的疑问的,然后事件肯定是调用了的, 只是不是我们代码中调用,而是Butoon控件的内部代码里面调用了事件,而导致委托封装的Click方法 阅读全文
posted @ 2012-10-29 07:37 Learning hard 阅读(12301) 评论(26) 推荐(29) 编辑
摘要: 引言:前面几个专题对委托进行了详细的介绍的,然后我们在编写代码过程中经常会听到“事件”这个概念的,尤其是写UI的时候,当我们点击一个按钮后VS就会自动帮我们生成一些后台的代码,然后我们就只需要在Click方法里面写代码就可以,所以可能有些刚接触C#的朋友就觉得这样很理所当然的,也没有去思考这是为什么的,为什么点击下事件就会触发我们在Click方法里面写的代码呢?事件到底扮演个什么样的角色呢?为了解除大家的这些疑惑,下面就详细介绍了事件,让一些初学者深入理解C#中的事件的概念。一、为什么C#中会有事件的? 前面专题中介绍了我理解的为什么需要委托的,所以这里我来分享下我理解的为什么C#中要引入事. 阅读全文
posted @ 2012-10-27 19:08 Learning hard 阅读(6920) 评论(8) 推荐(24) 编辑
摘要: 引言:上一专题介绍了下编译器是如何来翻译委托的,从中间语言的角度去看委托,希望可以帮助大家进一步的理解委托,然而之前的介绍都是委托只是封装一个方法,那委托能不能封装多个方法呢?因为生活中经常会听到,我代表大家的意见等这样的说话,既然委托也是一个代表,那他如果只能代表一个人,那他的魅力就不是很大了吧,所以我们就会委托能不能代表多个方法的? 答案是可以的,这就是本专题要讲的内容——委托链,委托链也是一个委托,只是因为它是把多个委托链在一起,所以我们就以委托链来这么称呼它的。一、到底什么是委托链我们平常实例化委托对象时都是绑定一个方法的, 前一个专题介绍的委托也是包装了一个方法的, 用前面的例子就是 阅读全文
posted @ 2012-10-27 10:41 Learning hard 阅读(7499) 评论(23) 推荐(26) 编辑
摘要: 引言:上一个专题已经和大家分享了我理解的——C#中为什么需要委托,专题中简单介绍了下委托是什么以及委托简单的应用的,在这个专题中将对委托做进一步的介绍的,本专题主要对委本质和委托链进行讨论。一、委托的本质 平时我们很容易使用委托——用C# delegate关键字定义委托,再用new操作符构造委托实例,然后通过调用委托实例来调用回调方法(就是用一个了委托对象的变量来代替方法名,这句话如果刚接触的人不好理解的话,这里给个例子:MyDelegatemydelegate =new Mydelegate(obj.mymethod),MyDelegate 是定义的一个委托,假设定义的是没有参数的,然后调. 阅读全文
posted @ 2012-10-25 00:46 Learning hard 阅读(11764) 评论(35) 推荐(50) 编辑
摘要: 引言:对于一些刚接触C# 不久的朋友可能会对C#中一些基本特性理解的不是很深,然而这些知识也是面试时面试官经常会问到的问题,所以我觉得有必要和一些接触C#不久的朋友分享下关于C#基础知识的文章,所以有了这个系列,希望通过这个系列让朋友对C#的基础知识理解能够更进一步。然而委托又是C#基础知识中比较重... 阅读全文
posted @ 2012-10-22 10:10 Learning hard 阅读(25356) 评论(57) 推荐(103) 编辑
摘要: C#网络编程系列文章索引1. 网络协议简介 介绍了网络分层: 网络层 数据链路层 网络层 传输层 应用层2. HTTP协议详解 介绍应用层的HTTP协议,是Asp.net开发人员必须掌握的协议 HTTP请求 HTTP响应3. 自定义Web服务器 介绍利用Socket自制一个Web服务器来响应浏览器发出的请求 实现一个简单的Web服务器4. 自定义Web浏览器 介绍利用WebBrowser控件实现自定义的Web浏览器 浏览器的组成 WebBrowser控件的介绍 制作一个Web浏览器5. TCP编程 介绍TCP的工作原理 TCP协议的工作过程 制作一个简单的通信程序6. UDP... 阅读全文
posted @ 2012-10-19 21:06 Learning hard 阅读(5362) 评论(18) 推荐(24) 编辑
摘要: 引言:休息一个国庆节后好久没有更新文章了,主要是刚开始休息完心态还没有调整过来的, 现在差不多进入状态了, 所以继续和大家分享下网络编程的知识,在本专题中将和大家分享如何自己实现一个简单的FTP服务器。在我们平时的上网过程中,一般都是使用FTP的客户端来对商家提供的服务器进行访问(上传、下载文件),例如我们经常用到微软的SkyDrive网盘,115网盘等,然而我们经常用到的都是网页版本的,网页版本和客户端版本的不同,网页版本的FTP客户端,它与服务器的交流是使用HTTP协议发出对服务器的请求的,而客户端版本采用的是FTP协议发出命令对服务器进行请求。然后我们接触到FTP服务器却很少的, 所以本 阅读全文
posted @ 2012-10-18 13:18 Learning hard 阅读(20626) 评论(47) 推荐(44) 编辑
摘要: 引言:在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信大家追MM都有自己的经验的,我感觉大部分的过程肯定是——第一步: 先通过工作关系或者朋友关系等认识MM(认识FTP协议,知道FTP协议的是什么) ; 第二步: 当然了解MM有兴趣爱好了(了解FTP协议有哪些命令和工作过程)第三步:如果对方是你的菜的话,那当然要采取追求的了(就好比用了解到的FTP协议来实现一个文件上传下载器)。不过追MM好像对我来说还是比较难的了, 所以还是言归正传了,还是好好的学习 阅读全文
posted @ 2012-10-18 10:17 Learning hard 阅读(8819) 评论(19) 推荐(13) 编辑
摘要: 引言:在我们的平常工作中,邮件的发送和接收应该是我们经常要使用到的功能的。因此知道电子邮件的应用程序的原理也是非常有必要的,在这一个专题中将介绍电子邮件应用程序的原理、电子邮件应用程序中涉及的协议和实现一个简答的电子邮件收发器程序。一、邮件应用程序基本知识1.1 电子邮件原理及相关协议 说到电子邮件的原理,其实和我们现实生活中寄邮件和寄包裹是一样的原理的。就让我们先回顾下现实生活中寄邮件的流程吧——首先,我们先写好信,信封上面写好收信人的地址,写信人的地址,然后把信放到寄信箱中,然后邮局的人会某个时候去这个信箱中的信取出来,然后邮局的人根据信封上写的收信人地址进行转发到当地的邮局,当地邮局然. 阅读全文
posted @ 2012-09-24 22:27 Learning hard 阅读(15019) 评论(75) 推荐(53) 编辑
摘要: 引言:前面专题中介绍了UDP、TCP和P2P编程,并且通过一些小的示例来让大家更好的理解它们的工作原理以及怎样.Net类库去实现它们的。为了让大家更好的理解我们平常中常见的软件QQ的工作原理,所以在本专题中将利用前面专题介绍的知识来实现一个类似QQ的聊天程序。一、即时通信系统在我们的生活中经常使用即时通信的软件,我们经常接触到的有:QQ、阿里旺旺、MSN等等。这些都是属于即时通信(Instant Messenger,IM)软件,IM是指所有能够即时发送和接收互联网消息的软件。在前面专题P2P编程中介绍过P2P系统分两种类型——单纯型P2P和混合型P2P(QQ就是属于混合型的应用),混合型P2P 阅读全文
posted @ 2012-09-23 14:25 Learning hard 阅读(23191) 评论(89) 推荐(79) 编辑
摘要: 这篇文章其实很早以前就想写的,但是因为其他的事情都耽搁了。然后最近看到一些朋友也有写这方面的内容的,正好今天也有空,所以想把我对博客园的想法和建议和大家分享下(我自认为是很好的)。首先,我加入博客园的时间也不久,大家可以看我资料就可以知道只有短短的5个月时间,相信大家加入博客园的朋友的目的都大同小异吧——通过和大家更好的交流来巩固自己的技术知识。在加入博客园之前感觉交流和讨论根本不能学到什么知识的, 然而在最近的几个月中通过发表博客,然后有些园子里面的朋友留言给我的,即使讨论不是很多,但是他们的留言可以让我知道其他的一些知识的,就拿我在园子里面发表的自定义Web浏览器的一遍文章来举例吧。其中就 阅读全文
posted @ 2012-09-14 18:26 Learning hard 阅读(4055) 评论(22) 推荐(12) 编辑
摘要: 引言:前面的介绍专题中有朋友向我留言说介绍下关于P2P相关的内容的,首先本人对于C#网络编程也不是什么大牛,因为能力的关系,也只能把自己的一些学习过程和自己的一些学习过程中的理解和大家分享下的,下面就进入正题——P2P(Peer to Peer)编程一、P2P的介绍首先,现在大家熟知的BT、电驴、迅雷、QQ、MSN和PPlive等都是基于P2P方式实现的软件,并且对等联网(Peer to Peer,P2P)将是互联网的发展方向,因此对于P2P技术的了解显得非常的重要,下面就来介绍下P2P架构:在P2P技术之前,我们所有的网络应用都采用C/S或者B/S架构来实现的,然而在之前C/S架构的应用程序 阅读全文
posted @ 2012-09-14 15:00 Learning hard 阅读(24569) 评论(88) 推荐(87) 编辑
摘要: 引言:因为工作的原因,这段时间一直在看VSTO的相关的内容的,因此希望通过这个系列来记录下我学习的过程和大家分享Office开发的相关知识,希望以后有朋友从事这方面的也希望通过本系列提供点帮助。本专题将简单介绍VSTO和VSTO中的一些基本概念进行介绍,下面就直接进入正题了。1. VSTO介绍首先介绍下VSTO的历史吧,之前都是用VBA来开发Office解决方案的,后来微软开发出了VSTO这个工具包来创建自定义的Office应用程序,使得开发Office应用程序更加简单,并且用VSTO来开发office应用程序可以使用Visual studio开发环境中的众多功能和CLR提供的内存管理,垃圾回 阅读全文
posted @ 2012-09-03 18:49 Learning hard 阅读(39722) 评论(15) 推荐(16) 编辑
摘要: 上次因为时间的关系,所以把上一个专题遗留下的一个问题在本专题中和大家分享下,本专题主要介绍下如何实现UDP广播的程序,下面就直接介绍实现过程和代码以及运行的结果。一、程序实现UDP广播程序的实现代码:using System;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Windows.Forms;namespace UDPBroadcast{ /// <summary> /// 在界面上,用户可以设置本地进程的IP地址和端口号,并将地址 阅读全文
posted @ 2012-09-03 15:00 Learning hard 阅读(10482) 评论(11) 推荐(20) 编辑
摘要: 引用:前一个专题简单介绍了TCP编程的一些知识,UDP与TCP地位相当的另一个传输层协议,它也是当下流行的很多主流网络应用(例如QQ、MSN和Skype等一些即时通信软件传输层都是应用UDP协议的)底层的传输基础,所以在本专题中就简单介绍下UDP的工作原理和UDP编程的只是,希望可以对刚接触网络编程的朋友起到入门的作用。一、UDP介绍UDP和TCP都是构建在IP层之上传输层的协议,但UDP是一种简单、面向数据报(Sock_Dgram)的无连接协议,提供的是不一定可靠的传输服务。然而TCP是一种面向连接、可靠的,面向字节流(Sock_Stream)的传输协议,对于“无连接”是指在正式通信前不必与 阅读全文
posted @ 2012-09-01 18:57 Learning hard 阅读(23715) 评论(11) 推荐(41) 编辑
摘要: 前言前面专题的例子都是基于应用层上的HTTP协议的介绍, 现在本专题来介绍下传输层协议——TCP协议,主要介绍下TCP协议的工作过程和基于TCP协议的一个简单的通信程序,下面就开始本专题的正文了。一、TCP的工作过程首先TCP是一种面向连接的,可靠的,基于字节流的传输层通信协议。TCP的工作过程可以分为三个阶段:一、连接的建立; 二、传输数据; 三、断开连接,下面就对这三个过程分别介绍下:1.1 连接的建立TCP的连接建立就像打电话一样, 我们打电话时,拨一个号码的号码并不是立即就可以接通的,期间会有一个“嘟 嘟”的呼叫过程, 这就好比是TCP协议的连接的建立阶段。当我们用TCP编写的程序,必 阅读全文
posted @ 2012-08-25 19:07 Learning hard 阅读(31186) 评论(21) 推荐(39) 编辑
摘要: 前言:前一个专题介绍了自定义的Web服务器,然而向Web服务器发出请求的正是本专题要介绍的Web浏览器,本专题通过简单自定义一个Web浏览器来简单介绍浏览器的工作原理,以及帮助一些初学者揭开浏览器这层神秘的面纱(以前总感觉这些应用感觉很深奥的,没想到自己也可以自定义一个浏览器出来),下面不啰嗦了,进入正题。一、Web浏览器的介绍Web浏览器是指可以显示Web服务器或者本地文件系统中的Html文件内容,并让用户与这些文件交互的一种软件,它是网络服务的客户端浏览程序,可向Web服务器发送请求,并对服务器返回的超文本信息和各种媒体、图片进行解释和显示。浏览器主要通过Http协议与服务器交互并获得网页 阅读全文
posted @ 2012-08-24 17:55 Learning hard 阅读(15651) 评论(26) 推荐(27) 编辑
摘要: 前言:经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到我们想要的网页,这个过程中浏览器只是一个客户端,浏览器(应用层应用程序)通过HTTP协议把用户请求发送到服务端, 服务器接受到发送来的HTTP请求,然后对请求进行处理和响应,最后把响应的内容发送给客户端(浏览器这里充当了用户代理的客户端),浏览器再对接受到的响应内容(一般是HTML文件)进行解释并且显示出来。这就是一次完整的用户请求/响应模型,本专题所讲述的是一个简单的Web服务器,其他一些大型的W 阅读全文
posted @ 2012-08-23 15:00 Learning hard 阅读(13019) 评论(22) 推荐(31) 编辑
摘要: 我们在用Asp.net技术开发Web应用程序后,当用户在浏览器输入一个网址时就是再向服务器发送一个HTTP请求,此时就使用了应用层的HTTP协议,在上一个专题我们简单介绍了网络协议的知识,主要是为了后面讲HTTP协议做一个铺垫的,只有对HTTP协议有一个清楚的认识,这样当我们用Asp.net技术开发Web应用程序时,我们可以多从网络协议的方面去思考我们的应用程序,而不是只是单单停留在对服务器控件的拖拉的使用,这样也可以帮助我们开发一个自己的自定义web服务器。在这里我想同时把我对Asp.net的本质的理解和大家分享下,如果有什么不对的地方,还请大家指出,首先,当我们设计一个算法的时候要明确输入 阅读全文
posted @ 2012-08-18 18:29 Learning hard 阅读(18227) 评论(20) 推荐(58) 编辑
摘要: 因为这段时间都在研究C#网络编程的一些知识, 所以在这里把我学习到的在这里和大家分享下的,这样既可以达到分享的目的也可以让大家监督我,如果有什么地方理解错了,还请大家不吝赐教的。很多人写网络编程这快都没有怎么讲网络中的协议,然而我觉得既然是网络编程肯定要介绍下网络编程中一些协议的,这样可以让更好的梳理网络编程的知识的,所以我在这系列中会用两个专题去讲协议,第一个专题简单介绍网络分层以及各层之间如何通信的只是,第二专题将会介绍下应用层协议——Http协议,了解这个不仅对网络编程有个理论基础,也可以帮助更好地理解Web(Asp.net)的开发。一、网络分层网络上的计算机之所以可以互相通信,是因为它 阅读全文
posted @ 2012-08-11 17:33 Learning hard 阅读(17622) 评论(35) 推荐(81) 编辑