C# 指针之美
    
            
摘要:将C#图像库的基础部分开源了(https://github.com/xiaotie/GebImage)。这个库比较简单,且离成熟还有一段距离,但它是一种新的开发模式的探索:以指针和非托管内存为主的C#程序开发。 我许多项目都是在这个库基础上的开发,实战证明了它的有效。从今天起,将断断续续(太忙了)的写一系列文章来介绍这种开发方法,介绍基于此的图像编程。本文便是第一篇。 以指针和非托管内存为主的C#程序开发,无论对.Net程序员来说,还是对传统的C/C++程序员来说,均属异类。然而这种方法在很多场景下是非常有效的,尤其是图像编程,所谓谈笑间,樯橹灰飞烟灭,不外如是。 既有C/C++的高性能,又.
        
阅读全文
摘要:前言 《CLR via C#》——作者Jeffrey Richter。本书是.NET 界的经典之作,集万千荣耀于一身。最近开始看这本书,有点相见恨晚的感觉。中文翻译版早就上市了,但是为了更加直接地领悟书中的深意,还是选择英文电子版 (环保,"免费")。学习的过程做点笔记与大家分享,我也建议大家看英文原版(这样能够更获取更直接的信息,而且英文书籍普遍讲的都非常细致,非常利于自学)。认识CLR一 个被多种编程语言使用的运行时。核心功能包括:内存管理,程序集加载,安全性,异常处理,以及线程同步。这些核心功能能够被所有以它作为目标平台的语言使 用,实际上,在运行时,CLR并不关心程
        
阅读全文
摘要:任何完美的应用程序和技术高明的程序员,都不可能是绝对不出差错的。与其追求完美无错的代码,还不如将程序中可能预知的异常在发布前进行很好的处理,可能是最有价值的。那么,C#是如何处理异常的呢?首先,我们从最普通的异常说起:使用try-catch-finally块捕获异常,基本格式如下: 1 try 2 { 3 //获取并使用资源,可能出现异常 4 } 5 catch(DivideByZeroException de) 6 { 7 } 8 catch(ArithmeticException ae) 9 {10 }11 catch(Exception e)12 {13 //捕获并处理异...
        
阅读全文
摘要:什么是umbracoUmbraco是一个开放源码的CMS内容管理系统,基于asp.net建立,使用mssql进行存储数据。 使用Umbraco ,设计师能创造出有效的XHTML标记模板和开发人员可以创建任何基于.Net的模块。主要特点包括:漂亮,友好的用户界面综合所见即所得编辑器支持编辑在Microsoft Word全部源代码可用(开放源代码)超级简单的模板引擎完全支持Web标准最近需要把一个asp的软件下载站点转移到asp.net,数据库最好用MSSQL。在网上Google一番以后决定试试umbraco,看着一大票的英文文档是在有些难受,还是先看看umbraco是什么样子的再研究文档。我的电
        
阅读全文
摘要:线程间通信 我们看下面的图图1 我们来看线程间通信的原理:线程(Thread B)和线程(Thread A)通信, 首先线程A 必须实现同步上下文对象(Synchronization Context), 线程B通过调用线程A的同步上下文对象来访问线程A,所有实现都是在同步上下文中完成的.线程B有两种方式来实现线程间的通信. 第一种:调用线程A的同步上下文对象,阻碍当前线程,执行红色箭头调用,直到黄色箭头返回(同步上下文执行完毕)才释放当前线程. (1->2->3->5) 第二种: 调用线程A的同步上下文对象(实际上是在开启一个新线程去执行,1->2->3->
        
阅读全文
摘要:很多时候,我们开发程序都需要使用到对象的XML序列化和反序列化,对象的XML序列化和反序列化,既可以使用XML对象(XmlDocument )进行操作,也可以使用XmlSerializer进行操作,两个各有优点,就操作性而已,我倾向于使用后者来操作XML。本文介绍三种方式操作XML,普通的XDocument的API操作,方便的XmlSerializer对象序列化及反序列化操作,加密XML对象序列化操作。1、普通的XML对象操作,利用XML对象(XmlDocument )。一个典型的利用XmlDocument对象操作XML的例子代码如下。 public static void RunSni...
        
阅读全文
摘要:1.缓存概述 •为什么使用缓存 – 应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能 • 缓存机制分类介绍 – 应用程序缓存 – 页输出缓存2.应用程序缓存的机制 • 应用程序缓存是由System.Web.Caching.Cache 类实现的,缓存实例(Cache 对象)是每个应用程序专 用的,并且每个应用只有一个,通过Page类或UserControl类的Cache 属性公开 • 缓存生存期依赖于应用程序的生存期,当重新启动应用程序后,将重新创建Cache对象,也就是说缓存数据将被清空3.如何将项添加到缓存中 ...
        
阅读全文
摘要:.NET中除了构造函数外,还有多种方式可以创建类型的实例。下面总结了几种常见的通过反射创建类型实例的方法。假设我们需要创建有这样一个类型的实例:public class Employee{ public String Name { get; set; } public Employee(String name) { Name = name; } public Employee () { } public void Say(String greeting) { Console.WriteLine(String.Fo...
        
阅读全文
摘要:目录一、什么是Windows 服务?二、创建Windows 服务与安装/卸载批处理。三、调试Windows 服务。正文一、什么是Windows 服务?答:Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。二、创建Windows 服务。打开:
        
阅读全文
摘要:Storm中使用一种叫做TimeCacheMap的数据结构,用于在内存中保存近期活跃的对象,它的实现非常地高效,而且可以自动删除过期不再活跃的对象。TimeCacheMap使用多个桶buckets来缩小锁的粒度,以此换取高并发读写性能。下面我们来看看TimeCacheMap内部是如何实现的。1.实现原理桶链表:链表中每个元素是一个HashMap,用于保存key,value格式的数据。 private LinkedList<HashMap<K, V>> _buckets;锁对象:用于对TimeCacheMap进行get/put等操作时上锁保证原子性。 private fi
        
阅读全文
摘要:微软更新了一站式示例代码浏览器,加入了对中文语言界面的支持,同时优化了对中文示例代码的搜索。3500个MSDN高质量示例代码尽在手边,方便中国开发人员搜索示例。此外,我们还在不断努力,以增加越来越多的中文示例。下载安装:http://aka.ms/samplebrowser(如你已安装前一版本的示例代码浏览器,只需重新打开。你会得到自动更新)如您对微软一站式示例代码浏览器有任何反馈,欢迎发邮件至onecode@microsoft.com。微软工程师会第一时间回复您的反馈,并不断改进示例代码浏览器以带给开发人员更好的示例代码搜索,浏览,下载,管理体验。一周最新示例代码回顾 (6/11 - 6/1
        
阅读全文
摘要:演示地址后台管理为注册用户权限 注册登录即可 屏蔽了修改/删除功能下载地址开发环境: Visual Studio 2010(MVC3) + SQL2005运行环境: .net framework 4.0 + SQL2005网站架构:MVC3+EF4.0+SQLSERVER2005+JSON+XML网站结构:权限:.net membership文章分类:category.js(json格式存储)文章内容:表 blog_article,blog_articledetail 以及 视图 blog_varticle配置信息:general.config部分截图:部分知识点:JsonJson的序列化以及
        
阅读全文
摘要:XDD(XDesigner.Development)是袁永福开发的用于辅助软件开发的工具类软件。是开源软件,其主页为:http://xdd.codeplex.com/。作者联系邮箱:yyf9989@hotmail.com;博客:http://www.cnblogs.com/xdesigner。目前XDD的功能有:1.能加载VS.NET2003/2005/2008/2010的C#/VB.NET的项目文件和解决方案文件;还有VB6.0的项目文件。2.能分析C#,C,VB,JS文件中的源代码行数,包括总行数、空白行数、注释行数、代码行数。3.能将整个工程中的文件干净的复制到指定的目录下,而不会复制垃
        
阅读全文
摘要:XAML实例教程系列 - 事件(Event)2012-06-18 10:36 by jv9, 551 阅读,2评论,收藏,编辑Events,中文称为事件,是Windows消息机制中重要概念之一,也是最常见的人机交互手段之一。XAML和其他开发语言类似,具有事件机能,帮助应用管理用户输入,执行不同的行为。根据用户不同的操作,执行不同的业务逻辑代码。例如,用户输入日期,点击按钮确认,移动鼠标等操作都可以使用事件进行管理。而在Windows 8和Silverlight应用开发中,事件常常被用于控制更改通知操作,例如,使用ListBox绑定一个依赖属性,当该属性值修改时,可以通过事件自动通知客户端,并
        
阅读全文
摘要:c# list排序的三种实现方式用了一段时间的gridview,对gridview实现的排序功能比较好奇,而且利用C#自带的排序方法只能对某一个字段进行排序,今天demo了一下,总结了三种对list排序的方法,并实现动态传递字段名对list进行排序。首先先介绍一下平时最常用的几种排序方法。第一种:实体类实现IComparable接口,而且必须实现CompareTo方法实体类定义如下:View Code1 class Info:IComparable 2 { 3 public int Id { get; set; } 4 public string Nam...
        
阅读全文
摘要:回顾上周微软一站式示例代码库最新发布的7篇示例代码:[Sample of June 17th] Extended WebBrowser control supporting tabs该示例演示如何扩展WebBrowser控件以支持网页tab功能。[Sample of June 16th] Sequence workflow in WF4该示例代码演示Windows Workflow 4中的Sequence Workflow。[Sample of June 15th] Use Open XML to manipulate images in Word该示例演示如何使用Open XML SDK 对
        
阅读全文
摘要:.NET 4 中 包含了新名称空间System.Threading.Task。它包含的类抽象出了线程的功能。使用Task类创建的任务是后台线程,所以在前台线程全部终止的时候,如果任务还没有全部执行万,就会被被动终止。启动任务 怎样启动一个任务?代码中我们首先要添加using System.Threading.Tasks;引用。我们可以使用TaskFactory类或Task类的构造函数和Start()方法。在启动任务时,会创建Task类的一个实例。首先我们看一段代码using System;using System.Text;using System.Threading.Tasks;using.
        
阅读全文
摘要:上一篇《用C#实现网络爬虫(一)》我们实现了网络通信的部分,接下来继续讨论爬虫的实现3. 保存页面文件这一部分可简单可复杂,如果只要简单地把HTML代码全部保存下来的话,直接存文件就行了。 1 private void SaveContents(string html, string url) 2 { 3 if (string.IsNullOrEmpty(html)) //判断html字符串是否有效 4 { 5 return; 6 } 7 string path = string.Format("{0}\\{1}.txt", _path, _in...
        
阅读全文
摘要:网络爬虫在信息检索与处理中有很大的作用,是收集网络信息的重要工具。接下来就介绍一下爬虫的简单实现。爬虫的工作流程如下爬虫自指定的URL地址开始下载网络资源,直到该地址和所有子地址的指定资源都下载完毕为止。下面开始逐步分析爬虫的实现。1. 待下载集合与已下载集合为了保存需要下载的URL,同时防止重复下载,我们需要分别用了两个集合来存放将要下载的URL和已经下载的URL。因为在保存URL的同时需要保存与URL相关的一些其他信息,如深度,所以这里我采用了Dictionary来存放这些URL。具体类型是Dictionary<string, int>其中string是Url字符串,int是该
        
阅读全文
摘要:本系列文章主要是我在工作中,遇到一些不能主观判断的问题,最后在电脑上去证明我的理解是否正确,这也是题目“将不确定变成确定”的由来。记得我在上大学时,老师说过一句话:“机器最能证明一切”,这句话现在看来,确实很经典。第一回 将不确定变成确定~类中的override第二回 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行第三回 将不确定变成确定~frameset页面不能正确加载第四回 将不确定变成确定~LINQ查询两种写法,性能没有影响,优化查询应该是“按需查询”第五回 将不确定变成确定~LINQ DBML模型可以对应多个数据库吗第六回 将不确定变为确定~程序是否真的Dis
        
阅读全文