读写ini文件
    
            
摘要:C# 使用文件流来读写ini文件背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便。然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI封装的help类,用起来倒也顺手。用的多了,觉得还可以使用文件流来操作,后来就发现了EasyConfig。 EasyConfig是一个纯C#的开源ini文件操作库,但是在使用上有诸多不便,只是个人感觉,于是个人将其改造了一下,是自己喜欢用的风格。资源下载 如果不清楚ini文件结构,请百度一下,这里贴一个示例文件。Ini文件示例[Video]#是否全屏Fullscreen = true#宽度Wi...
        
阅读全文
 
            
        
        
            
    颠覆你对方法调用的看法
    
            
摘要:颠覆你对方法调用的看法!注意:如果你是一个初学者,对实例方法,虚方法的调用还不太清楚,强烈建议你不要阅读本文,因为这里面的代码会让你完全崩溃掉。 如果你对实例方法,虚方法的运行机制已经了如指掌,并且,对方法和对象的内存布局也心中有数,那么本文可能会颠覆你以前对他们的认识。 阅读本文的最佳方式就是亲自演练一下,如果看完之后有疑惑,那么是正常的,但是稍加思考就会想明白。我说,string变量可以直接引用一个object对象!我说,派生类型的变量可以直接引用基类型的对象!你会说,老兄,别开玩笑了,派生类型怎么可以指向一个基类型的对象呢!我会让你见证一下奇迹,并在文章的结尾再给你一个更加不...
        
阅读全文
 
            
        
        
            
    通信服务器群集、跨服务器通信
    
            
摘要:通信服务器群集、跨服务器通信Demo(源码) 对于一些基于TCP Socket的大型C/S应用来说,能进行跨服务器通信可能是一个绕不开的功能性需求。出现这种需求的场景类似于下面描述的这种情况。 假设,我们一台TCP应用服务器能同时承载10000人同时在线,而同时在线用户数量通常为5万多,那可想而知,我们需要部署6台TCP应用服务器来分担这些负载。再假设,我们的应用中,任意的两个客户端都有可能需要互发消息(比如,传送文件),这时问题就来了 -- 因为要互发消息的这两个客户端连接的可能是不同的服务器。 如何解决了?这就需要引入群集平台的概念。群集平台中有一个应用群集管理服务器ACMS可以将所...
        
阅读全文
 
            
        
        
            
    IL代码
    
            
摘要:读懂IL代码就这么简单 (一)一前言 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉厉。然后开始接触IL,了解了一段时后才发现原来读懂IL代码并不难。进入正题1.1 什么是IL IL是.NET框架中中间语言(Intermediate Language)的缩写。使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermediate Language)的代码(来源百度) 1.2 为什么要了解..
        
阅读全文
 
            
        
        
            
    Controller的激活
    
            
摘要:Controller的激活概述 在此系列开篇的时候介绍了MVC的生命周期, 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理。对于MVC来说,请求是先 经过路由系统,然后由一个MvcHandler来处理的,当请求到来时,执行此MvcHandler的ProcessRequest方法(因为已将 MvcHandler类的此方法注册到HttpApplication的事件中,所以事件的执行就触发了此方法)。详细请看之前介绍MVC生命周期的两篇博客。 下面我们就以MVC声明周期为主线,来分析下MVC源码public class Mv..
        
阅读全文
 
            
        
        
            
    CLR的组成和运转
    
            
摘要:CLR的组成和运转clr基本 CLR(Common Language Runtime)是一个可由多种编程语言使用的“运行时”。(例如:c#,c++/cli,vb,f#,ironpython,ironruby,il...) CLR的核心功能内存管理、程序集加载、安全性、异常处理、线程同步、泛型、尾调用指令和基本的公共语言基础结构 (CLI) 类型系统等。 托管模块是一个标准的32位microsoft windows可移值执行体pe32文件(64位系统为pe32+),他们需要clr才能执行。 托管的程序集总是利用windows的数据执行保护和地址空间布局随机化,这2个功能旨在增强整个系统的...
        
阅读全文
 
            
        
        
            
    再谈使用Emit把Datatable转换为对象集合(List<T>)
    
            
摘要:再谈使用Emit把Datatable转换为对象集合(List)一、前因和存在的问题 前面我写了一篇《使用Emit把Datatable转换为对象集合(List)》的博文,其实起源于我自己编写的一个orm工具(见前面几篇博文有介绍),里面已有用emit把datareader转换为List的实现方法,但是需要增加一个把DataTable转换为List的方法,在网上搜索了一些代码,经过改造,加入缓存设计,整理了一下代码结构,简单测试没有问题后就发了《使用Emit把Datatable转换为对象集合(List)》一文,但是不久以后我拿这些代码和我以前写的实现datareader的转换差异较大,于是仔细对.
        
阅读全文
 
            
        
        
            
    使用WCF扩展记录服务调用时间
    
            
摘要:随笔- 64 文章- 0 评论- 549真实世界:使用WCF扩展记录服务调用时间WCF 可扩展性WCF 提供了许多扩展点供开发人员自定义运行时行为。 WCF 在 Channel Layer 之上还提供了一个高级运行时,主要是针对应用程序开发人员。在 WCF 文档中,它常被称为服务模型层(Service Model Layer)。该高级运行时主要由一个称作 Dispatcher(在 ServiceHost 的 Context 中)的组件和一个称作 Proxy(在客户端的 Context 中)的组件组成。(图片引自 MSDN Magazine:Extending WCF with Custom B
        
阅读全文
 
            
        
        
            
    泡泡屏保
    
            
摘要:一个仿windows泡泡屏保的实现Posted on2013-10-13 14:08HAL9000阅读(522) 评论(5)编辑收藏一个仿windows泡泡屏保的实现有天看到有人在百度知道上问windows 泡泡屏保该怎么用C#做,一时有趣,就做了一个出来,对于其中几个要点总结如下:一,屏保程序的制作要求屏保程序的扩展名是.scr, 但其实还是一个exe文件,只要把编译好的exe文件扩展名改为.scr,就变成了一个屏保了。但做为屏保程序,也对之有一定的要求如下:1.应该是一个全屏的、无边框的程序。2.退出机制应该符合屏保的操作习惯,如动鼠标就退等。(我在这个例子里是用esc做退出。)3.支持以
        
阅读全文
 
            
        
        
            
    OA小助手
    
            
摘要:基于 WPF + Modern UI 的 公司OA小助手 开发总结前言:距离上一篇博客,整整一个月的时间了。人不能懒下来,必须有个阶段性的总结,算是对我这个阶段的一个反思。人只有在总结的过程中才会发现自己的不足。公司每天都要在OA系统上上班点击签到,下班点击签退,每天都要写工作日志。有的时候头脑不清醒或者忙过头了(别说你们没有过),就会忘记签到或者签退,有时候甚至忘记写工作日志。这会直接导致扣人工啊有木有,所以我才有了这个想法。首先声明,开发这个东西并不是博主对工作不认真不负责任,也并不是偷懒。相反,第一,可以避免因工作过忙忘记签到扣工资;第二,在开发的过程中你学到的东西是快速的,有趣的,让自
        
阅读全文
 
            
        
        
            
    windows下使用C#获取特定进程网络流量
    
            
摘要:windows下使用C#获取特定进程网络流量 最近老板接了一个中船重工的项目,需要做一个有关海军软件系统的组件评估项目,项目中有一个子项目需要获取特定进程的各种系统参数,项目使用.NET平台。在获取特定进程各种系统参数时,其它诸如进程ID,进程名,进程私有工作集,进程工作集,进程IO吞吐量,进程CPU占用率等都可以直接使用.NET中的相关API直接获取,例如使用PerformanceCounter对象可以获取进程私有工作集、进程工作集、进程IO吞吐量等,但是对于特定进程的网络上行流量和下行流量却没有办法直接使用.NET中API获取,网上也找了很多资料,了解到只能通过对特定进程使用的端口号进行抓
        
阅读全文
 
            
        
        
            
    C# list distinct操作
    
            
摘要:使用代理实现对C# list distinct操作范型在c#编程中经常使用,而经常用list 去存放实体集,因此会设计到对list的各种操作,比较常见的有对list进行排序,查找,比较,去重复。而一般的如果要对list去重复如果使用linq distinct方式,会遇到一些坑爹的问题,发现结果集中还是存在重复数据,原因是使用这种方法是对对象的引用去重复,并不满足我们的需求。因此本文通过c#代理的方式实现对list distinct操作。先介绍一下对list去重复传统的方法,代码如下:List reportList=GetReportList();for (int i = 0; i (T x, 
        
阅读全文
 
            
        
        
            
    视图
    
            
摘要:《asp.net mvc3 高级编程》第三章 视图一、视图的作用视图的职责是向用户提供界面。从ASP.NET MVC3开始,视图数据也可以通过ViewBag属性访问。例如:ViewBag.Message就等于ViewData["Message"]。下面来快速浏览一个视图的例子。如下代码片段所示:@{ Layout = null;} Sample @ViewBag.Message 1 @{ 2 Layout = null; 3 } 4 5 6 7 8 9 Sample10 11 12 13 @ViewBa...
        
阅读全文
 
            
        
        
            
    网站部署到Windows Azure Website上
    
            
摘要:使用CSDN Code将网站部署到Windows Azure Website上在云计算时代,开发和部署应该是完全统一和集成的。在海外,开发者可以用github来管理他们的代码,并且直接部署到Windows Azure上。随着Windows Azure在国内的发布,我们发现,其实在国内也可以使用csdn code平台,将代码管理和发布,完全统一起来。在这篇文章里,我们会教您如何用CSDN Code,管理您的代码,并直接在Windows Azure的Website上进行发布。1,在CSDN Code上创建项目首先,我们需要在http://code.csdn.net上注册一个账户。登录进去以后,可以
        
阅读全文
 
            
        
        
            
    初试KONCKOUT+WEBAPI简单实现增删改查
    
            
摘要:初试KONCKOUT+WEBAPI简单实现增删改查前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作。Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。任何时候如果你的UI需要自动更新(比如:更新依赖于用户的行为或者外部数据源的改变),KO能够很简单的帮你实现并且很容易维护。其作用简单来说就是声明所需的数据作为一个JavaScript 模型对象(model object),然后将DOM 元素或者模板(template.
        
阅读全文
 
            
        
        
            
    Winform开发框架主界面设计展示
    
            
摘要:Winform开发框架主界面设计做了好多年Winform的程序的开发,主窗口的界面设计一般都要求做的更好一些,可以根据不同的系统功能模块进行归类整合,能使客户迅速寻找到相关功能的同时,也能感觉到整体性的美观大方,因此主窗口的界面设计总是会精益求精,力求做到更好用、更美观,这样才能吸引客户使用。目前的主体界面设计,可以使用很多控件进行美化,这样能使得开发者能够迅速开发好美观的界面,也可以使得界面总体性有一个统一、规范的基准。一般推荐使用DevExpress或者DotNetbar这两款界面控件套件,他们都能设计出类似Office的Ribbon界面,这种界面整体感觉会比较好一些。1、标准的DevEx
        
阅读全文
 
            
        
        
            
    第一个应用程序
    
            
摘要:菜鸟学Windows Phone 8开发——创建第一个应用程序本系列文章来源MSDN的面向完全新手的 Windows Phone 8 开发主要是想通过翻译本系列文章来巩固下基础知识顺带学习下英语和练习下自己的毅力(因为打算每天翻译一篇,但是发现翻译这篇花费了好多时间,所以可能后面可能会两天翻译一篇,希望多与大家交流)原文地址:http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-3-Writing-your-First-Windows-Phone-8-App源代码:http
        
阅读全文
 
            
        
        
            
    C# BackgroundWorker组件学习
    
            
摘要:C# BackgroundWorker组件学习C# BackgroundWorker组件学习 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能. BackgroundWorker类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题(MSDN)。 若要在后台执行耗时的操作,请创建一个Backgro
        
阅读全文
 
            
        
        
            
    小菜的SharePoint Tips
    
            
摘要:07. 设计模式应用案例(下)前文用C#代码实现了Facade模式、Adapter模式、Strategy模式、Bridge模式和Abstract Factory模式解决实际业务需求。本文将继续以C#代码为例,实现我在前面介绍的11个模式中剩下的6个模式:Decorator模式、Observer模式、Template Method模式、Singleton模式、Factory Method模式和Prototype模式。按照实现方法的不同,该11个模式可分成三类:创建型模式(Abstract Factory, Singleton, Factory Method, Prototype)、结构型模式(A
        
阅读全文
 
            
        
        
            
    可复用的批量文件修改工具
    
            
摘要:使用工厂模式写一个可复用的批量文件修改工具前段日子忙活站点Theme的更改,到发布的时候有个问题难住了我,我要修改四十多个Theme的配置文件,这些配置问价也不在一处,整理出来打包很麻烦,而且本地环境和生产环境里面很多配置都不相同,不能通过简单把全文件粘贴过去这种方式替换生产环境的配置文件,只能去修改,后来频繁的修改Theme,终于意思到要写个工具了,之前也有一些修改文件的工具,但都是各行其是,痛定思痛决定写一个可复用的批量文件修改工具,当然本文的重点并不在于怎么查找修改文件,而在于怎么复用。最开始变成的时候提说过设计模式,急不可耐的读了一番,说实话几乎没有收获,不明白为什么要用设计模式,工作
        
阅读全文