IT技术博客

IT技术博客,精选各种精华文章供您阅读,是您学习各种IT技术的博客优选之地

.NET实现可交互的WINDOWS服务

这几天想做个文件监控服务,看了一下网上的关于WINDOWS服务的文章,数量都不少,都只讲了如何做一个最基本的服务,却没有讲述如何与用户进行交互。查看了MSDN,看一下关于服务的描述:    Windows 服务应用程序在不同于登录用户的交互区域的窗口区域中运行。窗口区域是包含剪贴板、一组全局原子和一组桌面对象的安全对象。由于 Windows 服务的区域不是交互区域,因此 Windows 服务应用程

编程习惯

文/Alexey Radul 译/程显峰   原文地址:http://web.mit.edu/~axch/www/programming_habits.html   近年来,我对编程艺术有很多体会。过后,我发现有些体会是错的;有些体会我遗忘了但又重新感受到;而另外有些则是必然会发现的。我还完善了一套项目管理的好习惯,这些习惯包括我自己的,或者小组的,抑或是更大的,公司内部的。一方面,这些习惯对软件

遗传算法介绍(内含实例)

现代生物遗传学中描述的生物进化理论:   遗传物质的主要载体是染色体(chromsome),染色体主要由DNA和蛋白质组成。其中DNA为最主要的遗传物质。 基因(gene)是有遗传效应的片断,它存储着遗传信息,可以准确地复制,也能发生突变,并可通过控制蛋白质的合成而控制生物的状态.生物自身通过对基因的复制(reproduction)和交叉(crossover,即基因分离,基因组合和基因连锁互换

构建可伸缩高性能的互联网应用

时间过得很快,来新公司已经两个月了,在这两个月的时间里,自己也感受颇深。下面就说说自己的一些理解。    一、应用无状态   俗话说,一个系统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在session中保存了大量与客户端的状态信息的话,那么当保存状态信息的server宕机的时候,我们怎么办?通常来说,我们都是通过集群来解决这个问题,而通常所说的集群,不

WPF 基础到企业应用系列3——WPF开发漫谈

1.开篇前言      首先很高兴这个系列能得到大家的关注和支持,基于对大家负责和对自己负责的态度,我会不断努力写好这个系列,分享自己的微薄技术和经验,希望在帮助别人的同时也不断提升自己。由于这篇文章稍多,所以读者花的时间长了一些,也希望大家能够见谅,这个系列以后会每周发三到四篇左右(主要是写一篇差不多要花几晚上,感觉思维比较发散),除了讲WPF技术本身之

谈谈我处理异常的一般方法

我们在编写程序的时候会遇到各种各样的意外情况,如除数为0,数组越界,非法转型,栈溢出等等。因而我们需要有一种机制来处理这些情况,异常处理就是其中的一种机制。当然,还有其他的机制,在MFC中,由于标准的不统一,就存在着各种错误报告方法,如有通过函数返回特殊值的方式,有通过执行某一语句后查询特殊语句获取错误的码的方式,等等。   在C#中,只有一种报告方式,即异常。这样可以让开发人员从大量的文档中解脱

.NET程序员必备参考图片

昨天我讲到对.NET Framework的一点理解,今天又有所收获,马上来和大家分享。大家平时大都是参考MSDN,其实这足够了,那么我今天要分享的是什么呢?大家平时用过多少namespace?或者说用过多少FCL?我本人喜欢更加直观的图片,所以找到了FCL的图片。哈哈,比较壮观!这是.NET Framework 3.5的FCL概念图,囊括了几乎所有FCL,我想可以做个桌面背景,或是打出来贴墙上,用

敏捷方法中测试人员的价值?

敏捷方法在软件开发中受到青睐,特别是在互联网应用服务系统的开发中,越来越多的公司采用敏捷方法,包括XP、Scrum、Lean、Crystal、FDD等。具体的敏捷方法在操作时有一些区别,但基本思想是一致的,如客户至上、拥抱变化、缩短迭代周期、自我组织等。在敏捷方法中,流程相对灵活,强调沟通,通过充分的沟通来及时解决问题,由于沟通充分,文档不是很重要,而且有可能不采用Word等独立的文件格式,而是采

如何通过Nicholas C. Zakas的面试

早就打算写这篇文章了,但时至今日才决定动笔。如果你投了简历,那么应该会在面试你的人名单里找到我的名字。你现在就有点紧张了,(好啦,别不好意思)面试总会让人感觉有点不舒服。作为面试官,我其实并不算难对付,但如果你想在我们谈话之后让我放你过关,你确实得做一些必要的准备。   回答问题。   我问你一个问题,你必须要回答它。我遇到应聘者在回答我问题时顾左右而言他的情况太多了。我知道你会有些紧张,说几句

C#中抽象类和接口的区别

      对于抽象类以及接口的概念,大家都容易把这两者搞混,其实我也一样,在听李建忠老师的设计模式时,他也老把抽象类说成接口,弄的我就更糊涂了,所以找了些网上的资料。      一、抽象类:      抽象类是特殊的类,只是不能被实例化;除此以外,

稍微谈一下 javascript 开发中的 MVC 模式

随着前台开发日益受到重视,客户端代码比重日益增加的今天,如何在javascript开发里应用MVC模式,这个问题似乎会一直被提到,所以偶在这里粗略的谈一下自己的看法吧。 MVC模式的基本理念,是通过把一个application封装成model, view和controller三个部分达到降低耦合,简化开发的目的。这么说很空洞,大家可以实际看个例子:    1<select

深入剖析引用参数Ref和Out

学过C/C++的人,对C#的关键字Ref和Out应该都很好理解。它们都提供了一种可以在被调用函数内修改传递的参数的值的方法。因为这一功能很类似C/C++的指针。对于没学过C/C++的,也应该可以明白这两个参数的作用。虽然Ref和Out都提供了修改参数值的方法,但它们还是有一点点小的区别。1、Ref在作为参数调用函数之前,变量一定要赋值,否则会得到一个常规编译错误:使用了未赋值的变量。2、在被调用函

.NET面试题(二)

1.面向对象的思想主要包括什么? 答:任何事物都可以理解为对象,其主要特征: 继承。封装。多态。特点:代码好维护,安全,隐藏信息   2.什么是ASP.net中的用户控件 答:扩展名为*.ascx,跟*.aspx在结构上相似,是指页面中  加载的功能块,只是用户控件不能单独作为页面运行,必须嵌入到*.aspx页面或其它用  户控件中使用 。   3.什么叫应

软件测试之Web测试经典总结

基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发、发布、实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大。而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机。并且,Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。

VSFTP+MySQL虚拟用户配置过程讲解

VSFTPD是一种在 UNIX/Linux中非常安全且快速的FTP服务器,目前已经被许多大型站点所采用。VSFTPD支持将用户名和口令保存在数据库文件或数据库服务器中。VSFTPD称这种形式的用户为虚拟用户。相对于FTP的本地(系统)用户来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获

C# Design Patterns (1) - Factory Method

Simple Factory Pattern (简单工厂模式) 特性: 把类的实例化工作,集中到一个「工厂类」去处理,亦即将 new instance 的工作,都交给一个「工厂」去处理,而不要分散写在各个类中。 客户端程序,与创建实例 (对象) 的工作必须隔离,亦即「解耦」,客户端程序只要专注于自己的业务逻辑。适用于客户端程序在开发过程中,尚无法预知要创建的具体类型。 产品具体的实现能和客户端隔

纠正国人对Linux的误解和错误认识

国人对Linux的误解和错误认识罗列如下:   1. Linux下的软件太少   回答:Linux 下的软件一点也不少。Windows还在娘肚子里的时候,Unix已经如日中天了。要知道微软公司开发的第一个操作系统是什么吗?是一个叫做Xenix的东西,是Unix的一个分支,后来才去搞DOS的。有人又问了,Unix不是Linux阿,要知道,Linux完全重新的实现了Unix,是一个完整的类Unix系

Silverlight中二维变换详解

Silverlight 为常见变换变换包括旋转 (RotateTransform)、缩放 (ScaleTransform)、扭曲 (SkewTransform) 和平移 (TranslateTransform)。       还有一个MatrixTransform 类可以创建 RotateTransform、ScaleTransform、SkewT

SharePoint 2010 技巧系列: 控制Ribbon菜单权限(SiteActions的例子)

上一篇写了一个关于快速开发Ribbon菜单的例子,这次我们共同探讨一下Ribbon菜单权限的控制. 如果你已经阅读了 “”, 我相信你已经能很快的开发一个Ribbon菜单,这时我们就需要去关注Ribbon菜单其它更深的东西,比如给Ribbon添加链接,Ribbon脚本,Ribbon权限控制等等. 当我们创建一个默认的SharePoint站点的时候,我们通过Site Acti

Direct2D教程(二)来看D2D世界中的Hello,World

引子 任何一门语言的第一个教程几乎都是Hello,world。我们也不例外,但是这里不是教大家打印Hello,world,而是编写一个简单的D2D绘制程序,让大家对Direct2D的程序结构及编程方法有一个基本的认识。下面我们来看如何一步一步绘制一个矩形。 基本概念 在开始之前,还是先介绍一些基本的概念,有助于大家理解程序,这些概念包括,Brush(画刷),Render target(渲染目标),