词法分析器的实现
摘要:开篇编译,简单的说,就是把源程序转换为可执行程序。从hello world 说程序运行机制里面简单的说明了程序运行的过程,以及一个程序是如何一步步变成可执行文件的。在这个过程中,编译器做了很多重要的工作。对底层该兴趣的我,自然的,也就迫切想搞清楚编译的内部实现,也就是编译的原理。这篇文章主要说的是编译器前端,词法分析器的原理,最后会给出一个词法分析器的简单实现。介绍编译简单的说,就是把源程序转化为另一种形式的程序,而其中关键的部分就是理解源程序所要表达的意思,才能转化为另一种源程序。可以用一个比喻来说明问题:人A和人B想要交谈,但是他们都不知道彼此的语言,这就需要一个翻译C,同时懂得A和B的语
阅读全文
工作进程回收机制
摘要:通过三篇文章的普及,相信大家对IIS应该有了一个基本的了解。那么从本篇文章开始,我们就开始进入IIS一些比较实际的话题:如何配置IIS,使得其性能尽可能的高。系列文章:构建高性能.NET应用之配置高可用IIS服务器-第一篇:IIS必须掌握的知识构建高性能.NET应用之配置高可用IIS服务器-第二篇 IIS请求处理模型构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(下)构建高性能.NET应用之配置高可用IIS服务器-第四篇 IIS常见问题之:工作进程回收机制(上) 我们在.
阅读全文
C#和C++实现强制结束进程的两种实现方式
摘要:强制结束进程的两种实现方式--C#和C++实现最近在做一个大型的项目,由于进程之间的关联出了一些问题,长话短说,就是我们不得不强制停止某些进程以保证系统正常的运行,在网上找了一下,没发现有这方面详细的介绍和写的比较全面的文章,于是按照MSDN的说明写了两种方法,希望对遇到类似问题的朋友有所帮助。首先,我们来看看C#的实现方式,由于C#对进程的封装比较好,所以我们只需要较少的语句就可以完成这个工作,值得强调的是参数有效性检测和名字比较,由于系统中可能运行很多意想不到的进程,所以在比较名字的时候一定要用等于而不是包含或者之比较开头和结尾,否则很可能杀错进程,相关代码如下。C# Code://Ret
阅读全文
如何用C#编写DCOM服务器
摘要:How to write a DCOM server in C# 如何用C#编写DCOM服务器先讲讲.net Remoting与DCOM的区别:.net Remoting 是在DCOM等基础上发展起来的一种技术,它的主要目的是实现跨平台、跨语言、穿透企业防火墙。DCOM是通过TCP/IP通道安全的进程间通信,而.NET remoting 不是。任何进程包括windows服务都能寄宿在DCOM服务器中。如果你已经十分清楚地知道了COM的话,可以参考下面的几点加深你对DCOM的了解。1) Your server process will expose a COM class factory tha
阅读全文
一周最新示例代码回顾 (4/9–4/15)
摘要:回顾上周微软一站式示例代码库最新发布的7篇示例代码:[Sample of Apr 15th] Customized DropDownList.SelectedValue in ASP.NET DropDownList control该示例演示如何自定义ASP.NET DropDownList控件的SelectedValue属性使其支持不在DropDownList 的value collection预设的值。[Sample of Apr 14th] Maintain ASP.NET TreeView State across post backs该ASP.NET示例演示如何在页面postback
阅读全文
C#中重写(override)和覆盖(new)的区别
摘要:重写用关键字 virtual 修饰的方法,叫虚方法。可以在子类中用override 声明同名的方法,这叫“重写”。相应的没有用virtual修饰的方法,我们叫它实方法。重写会改变父类方法的功能。看下面演示代码:#region重写publicclassC1{publicvirtualstringGetName(){return"徐明祥";}}publicclassC2:C1{publicoverridestringGetName(){return"xumingxiang";}}C1c1=newC1();Console.WriteLine(c1.GetNam
阅读全文
理解Prism中MVVM的Command与CommandParameter
摘要:理解Prism中MVVM的Command与CommandParameter内容摘要接上一讲(http://www.cnblogs.com/chenxizhang/archive/2012/04/13/2446415.html),这一讲中我使用Prism做了演示和比较。Prism不仅仅是一个MVVM框架,它还包含其他的模块。在MVVM这个层面,Prism有些特殊性(Command绑定有特殊语法),这也是我这一讲的主要内容。Prism的下载链接http://compositewpf.codeplex.com/视频地址http://www.tudou.com/programs/view/72Ag1k
阅读全文
深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
摘要:-C#初学者经常被问的几道辨析题,值类型与引用类型,装箱与拆箱,堆栈,这几个概念组合之间区别,看完此篇应该可以解惑。 俗话说,用思想编程的是文艺程序猿,用经验编程的是普通程序猿,用复制粘贴编程的是2B程序猿,开个玩笑^_^。 相信有过C#面试经历的人,对下面这句话一定不陌生: 值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈上,引用类型存储在托管堆上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱。 但仅仅背过这句话是不够的。 C#程序员不必手工管理内存,但要编写高效的代码,就仍需理解后台发生的事情。 在学校的时候老师们最常说的一句话是:概念不清。最简单的例子,我熟...
阅读全文
我的简易SQL查询分析器
摘要:原来一直搞ASP.NET,现在工作又主要搞WinFrom,真的很不习惯,一个控件那么多事件和属性,做什么都要不停地查MSDN今天工作没事情做,为了能熟悉一下Winform里的控件,自己就做点小小东西来熟悉一下。鄙人不才,不是很会写博客,今天深圳下好大的雨,都淋湿了,一回来就想和大家分享一下自己的成果,知识来自于网路,服务于网络,大家不要喷,谢谢!先是一个简单的输入服务和帐号信息的登录窗体,其实可以把服务换成CommBox控件绑定本地电脑的SQL服务,鄙人不才,没有弄出来,如果你知道怎么搞,给点意见:登录示例图如下:如果数据量大,获取每个数据库中表以及字段信息,会有点慢,所以TreeView每点
阅读全文
跟我一起制作数据采集-获取淘宝网店宝贝数据信息
摘要:创建项目并绘制界面打开Visual Studio并创建一个基于.net 4.5的WPF项目:GetTaoBaoItems之所以采用4.5是因为后面我们将要用到里面免费的新的异步编程特性.绘制如下主界面:下载网页我们知道要进行网络数据采集必不可少就要下载网页内容,因此我们首先需要构建一个下载网页内容的函数:注意using System.Net我们下载哪个网页了?我们可以通过类似网址查看一个店铺的所有宝贝:[淘宝店铺地址]/search.htm,如下图所示:如上图红圈所示,宝贝是分页显示的那么第二页的地址在哪里了?我们选择第二页:我们可以得知第k页的网址是:[淘宝店铺地址]/search.htm?
阅读全文
MVVM实践中的Command与CommandParameter的使用
摘要:内容摘要这一讲,我在原先一篇博客文章(http://www.cnblogs.com/chenxizhang/archive/2011/10/01/2197786.html)基础上,针对MVVM中Command的使用做了演示和讲解。灵活的数据绑定,和命令绑定,是MVVM的核心精神,善加这两个功能,将大大地简化我们的应用程序开发,提供更加合理的代码架构。可以这么说,如果你在做WPF,Silverlight或者相关的开发,你是必须要了解MVVM的。但是至于你使用具体哪一个框架,倒不是那么重要的,他们基本都很类似。视频地址http://www.tudou.com/programs/view/SZXSe
阅读全文
如何提高Linq查询的性能(上)
摘要:如何提高Linq查询的性能(上) 自从Linq提出了之后,让很多的开发人员一阵的狂喜,编写代码似乎比以前更别的方便了,特别是随着Linq2Sql等推出来之后,开发人员感到了似乎手中有了强大的武器。同时,Linq2Sql带来的问题不断的出现,特别实在性能上面,这是让很多的多性能有着高要求的应用要放弃Linq2Sql系列技术的原因,并且很多回到了以前的ADO.NET技术,追求完全的控制。系列文章:如何提高Linq查询的性能(上)如何提高Linq查询的性能(下) 这里和大家分享一些知识。我们本篇文章不对谈了Linq系列技术是否好,是否改用,而是告诉那些将会或者已经使用了Linq技术的朋友,如何来提升
阅读全文
如何提高Linq查询的性能
摘要:如何提高Linq查询的性能(上) 自从Linq提出了之后,让很多的开发人员一阵的狂喜,编写代码似乎比以前更别的方便了,特别是随着Linq2Sql等推出来之后,开发人员感到了似乎手中有了强大的武器。同时,Linq2Sql带来的问题不断的出现,特别实在性能上面,这是让很多的多性能有着高要求的应用要放弃Linq2Sql系列技术的原因,并且很多回到了以前的ADO.NET技术,追求完全的控制。系列文章:如何提高Linq查询的性能(上)如何提高Linq查询的性能(下) 这里和大家分享一些知识。我们本篇文章不对谈了Linq系列技术是否好,是否改用,而是告诉那些将会或者已经使用了Linq技术的朋友,如何来提升
阅读全文
C#中的多线程--持续更新系列
摘要:今年第一次旅行结束,虽然是第二次进去藏区,依旧有高原反应,嚓....不过整个旅途感受到前所未有的放松.更有精力面对接下来的工作和学习.进入今天的主题---C#中的多线程1、感受多线程因为文章追求是简单易懂,如果您和我一样,是C#初学者,那么在这一段中,请跟着例子,写一次,每个例子都有分析,并且这里的例子是会把多线程涉及的很多问题先引入出来,在后面的阶段,再深入分析~C#是支持多线程滴(貌似是废话.)~一个线程有它独立的执行路径,能够与其他的线程“同时”运行,一个C#程式起始于一个单线程,这个线程是被CLR和操作系统自动创建滴。~啰嗦了这么多了,还是用一段简单的代码加以说明第一个多线程程式程序.
阅读全文
.NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(进阶篇)
摘要:.NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(进阶篇) 通过上一篇文章一些截图,相信朋友们已经基本知道了Profiler的使用方法,现在,如何程序中的方法很多,例如2000个,那么通过上面的方法来查看就相当的痛苦了。怎么办呢?一个比较不错的方法就是将信息导出成为报表的信息,然后在excel中进行分析。操作方法如下:一旦上面的按钮点击之后,所有的调用树就会被显示出来,还没有将信息保存为csv格式,如下:保存为了csv之后,我们通过excel打开,就可以进行分析了,如下: 除了采用上面的方法使用Profiler之外,我们还可以在代码中使用Profiler的功能。如果我们知道了哪些
阅读全文
.NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇)
摘要:.NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇) 在.NET应用中一个常常影响性能的因素就是代码消耗了过多的内存。很多的开发人员在编写代码的过程中常常不会关注性能,从而使得应用程序中到处存在性能瓶颈。很多的时候,开发人员关注的总是代码的执行时间的长短,而把真正的性能问题丢掉了一边。在本篇文章中,我们将会找出代码中的哪些功能消耗了多少内存。本篇文章比较简单,我们会主要详细的介绍CLR Profiler这个工具。系列文章:.NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(进阶篇本篇议题如下:基础篇:详解介绍Profiler的使用进阶篇:调用Profiler的A
阅读全文
自己动手重新实现LINQ to Objects: 12 - DefaultIfEmpty
摘要:本文翻译自Jon Skeet的系列博文“Edulinq”。本篇原文地址:http://msmvps.com/blogs/jon_skeet/archive/2010/12/29/reimplementing-linq-to-objects-part-12-defaultifempty.aspx上次实现First/Last的时候写了大量的代码,相比起来,今天要讲的DefaultIfEmpty就轻松多了。DefaultIfEmpty是什么?这个操作符虽然简单,但是还是有两个重载:publicstaticIEnumerable<TSource> DefaultIfEmpty<TSo
阅读全文
文件读取,保存操作
摘要:大体需求:读取指定文件->进行相关处理->新建文件并保存内容【用户选择后缀名“.mlc”文件后再把得到的".flc"文件保存到相关路径下】解决方案:1、根据用户选择的‘.mlc’文件先上传到服务器端; 2、从服务器端取出该文件用文件流进行读取操作; 3、经过处理的文件以‘.flc’后缀保存到服务器端 ; 4、最后弹出下载框供用户下载保存。第二种解决方案是使用ActiveX,之前的一篇《BS实现文件夹上传下载_终结篇》可以参考下。前台代码:1 <div>2 <input type="hidden" id="hdFil
阅读全文
一周最新示例代码回顾 (4/2–4/8)
摘要:一周最新示例代码回顾 (4/2–4/8)2012-04-09 09:41 by Jialiang, 69 visits,收藏,编辑回顾上周微软一站式示例代码库最新发布的7篇示例代码:[Sample of Apr 8th] Set IIS Web Virtual Directory Properties该示例演示如何通过代码设置IIS中Web Virtual Directory的属性[Sample of Apr 7th] Define and Access Shared Resources in WPF Class Library该示例演示如何将WPF共享资源定义在一个类库中,并从WPF项目访问
阅读全文
自己动手重新实现LINQ to Objects: 11 - First,Last,Single以及它们带有OrDefault的重载
摘要:自己动手重新实现LINQ to Objects: 11 - First,Last,Single以及它们带有OrDefault的重载2012-04-09 12:54 by 崔鹏飞, 772 visits,收藏,编辑本文翻译自JonSkeet的系列博文“Edulinq”。本篇原文地址:http://msmvps.com/blogs/jon_skeet/archive/2010/12/29/reimplementing-linq-to-objects-part-11-first-single-last-and-the-ordefault-versions.aspx今天我实现了六个操作符,每个操作符都
阅读全文