01 2011 档案
摘要:http://www.cnblogs.com/tianzhiliang/archive/2010/08/31/1813629.htmlC#中异步和多线程的区别是什么呢?异步和多线程两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为异步和多线程是等同的概念。但是,异步和多线程还是有一些区别的。而这些区别造成了使用异步和多线程的时机的区别。 异步和多线程的区别之异步操作的本质 所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。熟悉电脑硬件的朋友肯定对DMA这个词不陌生,硬盘、光驱的技术规格中都有明确DMA的模式
阅读全文
摘要:发表于 2010-8-24 16:48 | 只看该作者http://hi.baidu.com/jtongfei/blo ... cc393aa125eb319a8d1知名 GUI lib 简评 (GTK+, Qt, wxWidgets,MFC) 之前因为把 MFC 痛骂了一顿,有网友在询问其它 GUI toolkit ,所以小弟分享一下个人对三大知名图形形接口 library 的简短评论,纯属个人主观意见,不是业界人士,所知有限,望先进前辈不吝指正或补充1.GTK+ GTK+ 主要用在 X Window 上,整个设计的架构和许多概念和 MFC 以及一般 Windows上的程序开发大异其趣,
阅读全文
摘要:Qt入门笔记----Windows版 收藏 很早就窥视Qt了,只是在偶的小白上安装了一个Mac版,对于里面的安装配置一概不知,之前在Mac下试编写了几个例子(以后再补充Mac版的一些注意事项)。Windows XP下的安装如下:1、去Trolltech官方网下载Qtfor Open Souce C++ development onWindows,地址如下:ftp://ftp.trolltech.no/qt/source/qt-win-opensource-src-4.4.3.zip;2、解压缩到目录D:\Qt\qt-win-opensource-src-4.4.3;3
阅读全文
摘要:Qt作为一个类库,一个跨平台的好东西,开发出来的东西没有平台限定,在一定程度上有很多的优势。于是乎,自己便有了很大的兴趣来学习一下Qt。 首先自己在www.csdn.con上下载了Qt的安装文件,好家伙,配置就是一个问题,总算没有难住本人,基本功还是扎实的。如果你还不会,就去谷歌一下吧。这类的技术文章很多,我在这里就不多说了,实在不行,你就下一个整个安装包。双击便可以搞定了。安装完成,便开始自己的学习之路。真别说,一个人对于新知识的渴望,那种渴望,实在是难以言表。首先看了看Demo,好家伙,不错,怎么能说是不错呢?那是相当不错,想象用Qt来开发界面,在想想MFC,愁人。记得有一天,一哥们在群里
阅读全文
摘要:串口(UART0)之UC/OS(二)------------------------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q--------------------------------------------------------
阅读全文
摘要:串口编程(UART0)之UC/OS(一)---------------------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q------------------------------------------------------------
阅读全文
摘要:UART0串口编程之在UC/OS—II中遭遇的危机一.潜在的危机1.在uc/os操作系统中设计串口编程时,由于ISR和多个任务并发执行,情况比较复杂。尤其是接收状态为被动状态时,只能靠串行口中断来接收数据。2.在进行串行通信时,双方遵循相同的通信协议。由于波特率不变,因此相邻两次串口中断的间隔时间基本固定。3.在以下两种情况时会使接收过程出现错误:Ø 第一种情况是系统关中断的最长时间大于相邻两次串行接收中断的间隔时间,这时将可能导致遗漏一次中断,造成数据丢失。² 实时操作系统内核的关中断的最长时间是已知的,通常很短,它不是问题关键。² 系统关中断的最长时间往往是由用户软件造成的,例如:我们编写
阅读全文
摘要:串口编程(UART0)之中断方式---------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time : 2011年1月23日星期日Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q----------------------------------------------
阅读全文
摘要:串口编程(UART0)---------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time : 2011年1月23日星期日Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q---------------------------------------------------
阅读全文
摘要:串口编程之前奏篇------------------------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q---------------------------------------------------------------------
阅读全文
摘要:【编者按】本文内容整理自CSDN创始人蒋涛1月22日在“踏上共享软件新掘金路”深圳站活动的演讲,蒋涛认为,在终端和技术大变革的背景下,IT产业已进入平台竞争阶段,对应用非常渴求,开发者正进入一个最好的创富时期。2010年,开发者迈进黄金十年开发者受到前所未有的追捧。除了各大公司都明显加大对技术人才的招聘外,大家能感受到最直接的现象是各种开发者大会密集的召开。以2010年末为例:10.19 手机支付与移动互联网峰会10.20 Android游戏高峰论坛10.21 中国移动开发者大会10.29 诺基亚中国开发伙伴峰会11.10 天翼空间能力开放高峰论11.12 联想乐phone开发大会11.16
阅读全文
摘要:演讲人/李德毅 整理/孟迎霞云计算产生的大背景李德毅,中国电子学会云计算专家委员会主任委员,中国工程院院士,指挥自动化和人工智能专家。云计算的产生,首先源于信息革命这50多年来计算设施的变迁:从60年代的大型机,到70年代的小型机,到80年代的个人电脑和局域网,再到90年代对人类生产和生活产生了深刻影响的桌面互联网,以及目前大家所高度关注的移动互联网、无处不在的网络,计算设施不断地由单机向网络。通信和网络的发展速度比以摩尔速度为代表的计算速度发展更快,这种变化是云计算能够生根发芽的土壤。其次,软件工程40年来也发生了很大变化:70年代,人们把程序设计中的流程图看得很重要,80年代开始面向对象,
阅读全文
摘要:C#泛型详解 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。读完本篇文章,你会对泛型有更深的了解。为什么要使用泛型为了了解这个问题,我们先看下面的代码,代码省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型:public class Stack { private int[] m_item; public int Po
阅读全文
摘要:书接上回,本文再来谈谈《Windows Phone 7设计和交互规范》中的剩余部分,包括文本、标点符号、触控、屏幕键盘、物理键盘、屏幕以及其他硬件。文本这份规范实在是太细致了,以至于它对Windows Phone 7应用的文本格式都做了详细的规定和建议,虽然许多内容并不是针对中文的,但了解一下也无妨。Windows Phone 7内建的Unicode字体支持东亚语言(中韩日),开发人员也可以在应用中内置字体。字体尺寸请勿小于15pt,否则难以阅读。应用中出现的文本应当使用自然语言,而不是机械的计算机语言。建议使用Windows Phone 7内置的文本样式,而不是硬编码自定义样式。如果开发英文
阅读全文
摘要:当iPhone和Android在市场上所向披靡的时候,搭载Windows Phone 7的手机也终于进入了市场。我打算写个WindowsPhone 7应用试一下,就随便翻了翻Windows Phone7的SDK,SDK写的很细致,上线也很及时,要是微软其他产品的SDK也能这样就好了。Windows Phone 7 SDK的许多章节都提示要先阅读《UI Design and Interaction Guide for Windows Phone 7 v2.0》,这份规范非常细致,内容并不只是针对用户体验的设计,开发人员也能从中了解Windows Phone 7的一些能力以及限制。在这几篇随笔中,
阅读全文
摘要:Report报表学习系列一 (开篇)最近公司要用到Report报表,为什么要用Report报表,原因很简单,客户要求用免费的。因此专门去学习了一下,看了园子里面很多大牛的随笔,谢园子里面无私的朋友,把自己的学习经验和大家分享,这里特别感谢“蜡人张”。好吧,就这么开始,我是第一次写随笔,因为还到明年才毕业,经验比较少,觉压力很大,写随笔也主要是学习而已,比较适合像我这样按步部就班的初学者。下面用的方法是用报表向导直接在界面上操作的。一 建数据库(比较懒的朋友可以直接复制下面的SQL)CREATE DATABASE RptDBGOUSE RptDBGOCREATE TABLE Class(Syst
阅读全文
摘要:http://www.docin.com/p-60834002.html
阅读全文
摘要:五一期间哪也没去,潜心研究了一下C#.以前写Win程序一直在用C+SDK,程序小而快,但写起来太麻烦,80%的时间都用在了UI上。MFC不对我的胃口,看过一眼就扔掉了。我最早接触的是VB,画图一样的编程和简洁明快的语法让我一直很怀念,MFC既没有VB的开发效率又没有SDK的运行效率,在这种情况下我宁可用SDK.反正我又不是IT专业的,不需要写太大的win程序。 经典VB在VB6之后断档,变成了VB.NET,当初觉得变化太大无法适应(主要是不能用API了)所以转向了VC.这次心血来潮学C#,看了一下简介就顿生“this isit”之感——我要的就是这个!作为编程语言家族中的晚辈,C#继承了前辈
阅读全文
摘要:http://www.microsoft.com/china/msdn/library/NetFramework/netcompactframework/WiFiAppNETCF2.mspx?mfr=trueopenNetCF社区:http://community.opennetcf.com/forums/openNetCF主页:http://www.opennetcf.com/类和方法的介绍:http://www.opennetcf.com/library/sdf/源码及库SDF下载:http://www.opennetcf.com/Default.aspx?tabid=651.4版以前都是
阅读全文
摘要:GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。本系列博文提供全面、完善的GeoServer部署解决方案,包括GeoServer环境搭建、地图数据处理、部署地图数据、发布地图服务等功能的详细介绍。文中内容来自本人工作中通过网络学习后总结而成,如有类同纯属巧合,同时欢迎广大网友前来交流。 系列目录导航: GeoServer地图开发解决方案(一):环境搭建篇 G
阅读全文
摘要:GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。本系列博文提供全面、完善的GeoServer部署解决方案,包括GeoServer环境搭建、地图数据处理、部署地图数据、发布地图服务等功能的详细介绍。文中内容来自本人工作中通过网络学习后总结而成,如有类同纯属巧合,同时欢迎广大网友前来交流。 系列目录导航: GeoServer地图开发解决方案(一):环境搭建篇 GeoSe
阅读全文
摘要:GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。本系列博文提供全面、完善的GeoServer部署解决方案,包括GeoServer环境搭建、地图数据处理、部署地图数据、发布地图服务等功能的详细介绍。文中内容来自本人工作中通过网络学习后总结而成,如有类同纯属巧合,同时欢迎广大网友前来交流。 系列目录导航: GeoServer地图开发解决方案(一):环境搭建篇 GeoSe
阅读全文
摘要:GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。本系列博文提供全面、完善的GeoServer部署解决方案,包括GeoServer环境搭建、地图数据处理、部署地图数据、发布地图服务等功能的详细介绍。文中内容来自本人工作中通过网络学习后总结而成,如有类同纯属巧合,同时欢迎广大网友前来交流。 系列目录导航: GeoServer地图开发解决方案(一):环境搭建篇 GeoSe
阅读全文
摘要:GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。本系列博文提供全面、完善的GeoServer部署解决方案,包括GeoServer环境搭建、地图数据处理、部署地图数据、发布地图服务等功能的详细介绍。文中内容来自本人工作中通过网络学习后总结而成,如有类同纯属巧合,同时欢迎广大网友前来交流。 系列目录导航: GeoServer地图开发解决方案(一):环境搭建篇 GeoSe
阅读全文
摘要:C#4.0新特性之(一)动态查找在大神Anders的领导下,C#这门语言也越来越快地朝着编程语言宇宙第一神器进化,C#4.0的新特征都是围绕“动态”(dynamic)的概念的,本文我们先来看看第一个新特性:动态查找(Dynamic Lookup)。1.初识dynamic动态查找允许动态(即在运行时)实现对某个对象的操作与对象类型的绑定,而不管这个对象是来自COM,IronPython,HTML DOM还是CLR的反射。你可以在程序中绕过编译器的类型检查,而把类型的匹配(lookup)丢给运行时去作。如果你需要对这样的对象进行操作,则会用到一个全新的类型:dynamicdynamic是一个和之前
阅读全文
摘要:Windows phone是基于Microsoft Windows CE内核嵌入式系统操作系统,为您提供与微软Windows操作系统相似的视窗界面与操作方式,同时带来与Windows操作系统同样强大的系统功能,并不断以众多创新特性与增强功能,全面革新您的移动装备,为您的移动商务及娱乐生活注入不同凡响的创新体验。 刷了Windows Mobile 6.5的朋友如果你苦于没有全面的学习资料,那么这篇涵盖入门到精通的教程将是你最好的选择。下面我们从入门级别开始讲解最新的WM6.5手机操作系统。本文资料来源是微软Windows Phone官方网页。 一、Windows Mobile 6.5 入门教程
阅读全文
摘要:GDI/GDI+ 是什么 GDI is the main graphics library for Windows applications today. It provides 2D graphics and text functionality, as well as limited imaging functionality. There is some level of acceleration support in graphics cards for GDI, but it is almost negligible nowadays (especially when compare
阅读全文
摘要:现在,Windows Presentation Foundation(WPF)这个名词已经不再新鲜,至少对很多关注前沿技术的开始人员而是这样的。Windows Vista已经正式发布,新的开发平台.NET Framework 3.0也开始逐步进入到人们的视野之中,并得到了更多的焦点。 作为下一代的图形系统,WPF所带来的新概念、新的技术也相当的庞大、复杂。现在,在.NET相关领域的开发中,用户界面主要由Windows Forms或者Web Forms实现。虽然Windows Forms已经出现了很多年,也提供了快速、高效的功能。但是,Windows Forms开发的UI界面相对比较单调,
阅读全文
摘要:导读:作者蒋金楠,网名Artech。解决方案架构与互联系统MVP,微软最有影响力开发者。在《谈谈C# 4.0新特性“缺省参数”的实现》中我们揭示了“缺省参数”的本质,现在我们接着来谈谈C#4.0中另一个重要的新特性:协变(Covariance)与逆变(Contravariance)。对于协变与逆变,大家肯定不会感到陌生,但是我相信有很多人不能很清晰地说出他们之间的区别。我希望通过这篇文章能够让读者更加深刻的认识协变与逆变。以下是文章内容:一、两个概念:强类型与弱类型为了后面叙述方便,我现在这里自定义两个概念:强类型和弱类型。在本篇文章中,强类型和弱类型指的是两个具有直接或者间接继承关系的两个类
阅读全文
摘要:有了前两篇后,我们在这里面建立一个测试项目。简单的设备管理器:)界面如下图:源码项目下载地址:http://download.csdn.net/source/352079。
阅读全文
摘要:通过上一篇“通过API实现C#对硬件的控制(一)” 我们掌握了我们所需要的相关API知识点。为此,我们现在来构建我们自己的外部调用类:Externs。由于有上一篇的详细说明,该处不再一一说明相关的函数知识点。下面是该类的代码:using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace Hardware...{ /**//// summary /// 下列所需函数可参考MSDN中与驱动程序相关的API函数 /// /summary
阅读全文
摘要:最近在做项目的过程中,涉及到对硬件启用及禁用的功能(在指定时间段内才能启用硬件)。因为C#自身对硬件的操作基本为零,为此,搜索了一下MSDN中与设备相关的API函数。还果然就有。下面一一列举出各函数的原型及相关的说明文档。并将其转为C#代码实现。函数一: RegisterDeviceNotification功能:注册设备或者设备类型,在指定的窗口返回相关的信息原型:HDEVNOTIFY WINAPI RegisterDeviceNotification( __in HANDLE hRecipient, __in LPVOID NotificationFilter, __in DWORD Fla
阅读全文
摘要:.net 框架程序可以通过静态 DLL 入口点的方式来访问本机代码库。DllImport 属性用于指定包含外部方法的实现的dll 位置。 DllImport 属性定义如下: namespace System.Runtime.InteropServices { [AttributeUsage(AttributeTargets.Method)] public class DllImportAttribute: System.Attribute { public DllImportAttribute(string dllName) {...} public CallingConvention
阅读全文
摘要:转自:http://hacker.cnblogs.com/archive/2004/08/12/32563.aspx1, PInvoke什么意思? Platform Invocation Services2, 干什么用? 导入外部函数?什么是外部函数,就是不属于.Net托管的函数。3,如何用?看下面的例子。用[DllImport(dllname)]来实现,但是首先要把System.Runtiime.InteropServices using进来。但是不using也行,就要敲全称,随你便了。[DllImport("user32.dll")]staticexternintMessageBoxA(i
阅读全文
摘要:前言在我们应用程序开发过程中,经常会遇到一些问题,需要使用多线程技术来加以解决。本文就是通过几个示例程序给大家讲解一下多线程相关的一些主要问题。执行长任务操作 许多种类的应用程序都需要长时间操作,比如:执行一个打印任务,请求一个 Web Service 调用等。用户在这种情况下一般会去转移做其他事情来等待任务的完成,同时还希望随时可以监控任务的执行进度。?/P 下面的代码片断示例了当长任务执行时用户界面是如何被更新的。// 显示进度条void ShowProgress( int totalStep, int currentStep ){_Progress.Maximum = totalS
阅读全文
摘要:编程入门文章:http://www.bianceng.cn/Programming/F_Sharp/index3.htm开源站:www.codeplex.com www.codeproject.com www.sourcecode.com www.OpenNetCf.com/orgMSDN网络广播首页:http://msdn.microsoft.com/zh-cn/dd796167.aspxGoogleEarth COM API:http://earth.google.com/comapi/GoogleMap:http://code.google.com/p/donetgooglemapsap
阅读全文
摘要:我们身在何处?前面写过的随笔主要关注的是F#与FP的基本概念,对UI涉及很少。我们知道,没有UI就没法与用户进行交互,所以写两篇随笔来了解一下这方面的内容。本文主要关注的是如何使用F#开发WinForm应用程序,后面还会介绍如何使用F#开发ASP.NET应用程序。不过说真的,我对WinForm开发了解不多,所以如果有不妥之处,欢迎您的指正。WinForm中的基础类型是System.Windows.Forms.Form类,通过它我们可以创建一个窗体,在窗体上我们可以根据需要进行绘制。绘制的时候我们可以选择使用.NET提供的API手工“画”出一些图形,比如像素着色、直线、圆等等,也可以使用.NET
阅读全文
摘要:单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常情况下,一个单元测试(用例)用于判断某个特定条件(或场景)下特定函数的行为。如果想对单元测试的好处有更多的了解,可以看一下单元测试实战。在.NET社区内,NUnit无疑是最经典的单元测试工具,要了解它的用法,建议看一下园子里的一篇很棒的文章NUnit详细使用方法。本文对此不再赘述。另外MbUnit作为后起之秀,也很值得一试。在F#中, LOP(Language-OrientedProgramming)是它的一个亮点,而FsUnit则是LOP的一个很好的实践。FsUnit使用F#开发,用它编写的测试用例会接
阅读全文
摘要:列表(List)是函数式编程(FP)的基础。事实上,FP的重要代表Lisp的名字即源自“ListProcessing”,它的发明者JohnMcCarthy于1960年发表的论文向我们展示了,在只给定几个简单的操作符和一个表示函数的记号的基础上,如何构造出一个完整的编程语言,他的主要思想之一是用一种简单的数据结构列表来表示代码和数据。链表(Linked list)是Lisp的主要数据结构之一,并且Lisp的源代码本身也由列表构成。F#中的列表类型表示为链表,它与C#中的数组、泛型ListT类型有着明显的不同。链表可以用下面的图表示:首先我们来看一下FP中列表的基本操作(其中的代码都由F#实现
阅读全文
摘要:前言是的,我们已经学习了如何在F#中使用各种范式(函数式、命令式、面向对象)进行编程。但是目前还仅限于在单个模块内编写,要知道,不管是采用哪种语言或者范式编程,如果项目规模大了,都不适合把所有代码放在单个模块内。在常规的.NET项目中(比如C#+ASP.NET),我们往往会选择使用Solution的概念作为整个(独立)问题域的解决方案,Solution以下则是Project、File。这些概念在物理上往往表现为程序集(类库或可执行程序)、类文件等,如果项目和文件数量较多,就该好好考虑如何在组织它们。下面从这三个层次上分别来讨论一下。Solution层次这里主要考虑的是Project之间的相互关
阅读全文
摘要:关于函数式编程(Functional programming,FP)函数式编程(FP)是一种编程范式,它计算机的计算过程视为函数运算,避免状态和数据的修改。与命令式编程相比,它更强调函数的运用。λ运算构建了函数式编程的基础。重要的函数式编程语言包括Lisp、Scheme、Erlang、Haskell、ML、OCaml等,微软则在2005年引入了F#。此外,包括C/C++/C#/Python/Javascript等很多语言也提供了对FP的部分支持。由此我们可以得出一个结论,随着现实问题复杂度的增加,单一的编程范式很难满足需要了。我们需要对FP有更多的了解,问题是学习哪种语言呢?作为一个.NET程
阅读全文
摘要:类的继承在前面(面向对象(中))介绍过的对象表达式中,已经涉及到了类的继承,我们可以覆盖类的成员实现,然后创建新类的实例。这一节里,我们来看看常规的继承机制,熟悉C#的开发人员会感到更亲切。F# Code - 类的继承#lighttype Base = class val state : int new() = { state = 0}endtype Sub = class inherit Base val otherState : int new() = { otherState = 1 }endlet myObj = new Sub()printfn "myObj.state =
阅读全文
摘要:对象表达式(Object Expressions)F#中的OOP语法很简洁,而对象表达式则正是这种简洁性的核心所在。通过对象表达式,我们可以创建抽象类或接口的轻量级实现,也可以对一个具体的类进行继承。换言之,可以在实现抽象类或接口,或者继承具体类的同时创建新类型的一个实例。下面来看如何对泛型接口IComparer’T应用对象表达式。F# Code#lightopen Systemopen System.Collections.Genericlet revStringComparer = { new IComparerstring with Compare(s1, s2
阅读全文
摘要:面向对象编程概述(OOP)面向对象编程是当今最流行的编程范式,看看TIOBE 2008年9月的编程语言排行榜就很清楚了:在这些主流语言中,除了C,都或多或少地提供对OOP的支持,而Java和C#更是纯粹的面向对象编程语言,C还有一个子集——Objective-C。值得一提的是Delphi的强势回归。下图则是各个编程范式的占有率:OOP编程范式是指使用“对象”及“对象”之间的交互来设计应用程序。OOP的基本概念包括类,对象,实例,方法,消息传递,继承,抽象,封装,多态和解耦(Decoupling)等。“一切皆是对象”这句话曾盛极一时,它也衍生出了像设计模式这样的重要理念。关于面向对象编程,需要很
阅读全文
摘要:控制流程(Control Flow)在函数式编程(中)一文中,我们初步了解了F#在函数式编程范式下的控制流程,即if, elif, then, else等组成的结构。在命令式编程范式下,F#提供了更多的控制流程支持,包括if,while和for。在命令式编程范式下的if结构与函数式编程下对应结构的主要差别在于,对于if分支,调用的函数为unit类型(即无返回值),而且并不要求必须使用else分支:F# Codeif System.DateTime.Now.DayOfWeek = System.DayOfWeek.Thursday then print_endline "Thursday pl
阅读全文
摘要:在本系列的第二部分(函数式编程上、中、下)中,我们了解了如何使用F#进行纯粹的函数式编程。但是在一些情况下,比如I/O,几乎不能避免改变状态,也就是说会带来sideeffect。F#并不强求你以无状态的方式编写程序,它提供了可修改(mutable)的标识符来解决这类问题,同时它还提供了其它的程序结构以支持命令式编程。现在就来对这些特性探个究竟。首先是unit类型,这种类型表示“没有值”。然后是F#如何处理可修改的值。最后来看看如何在F#中使用.NET类库,包括如何调用静态方法、创建对象并使用其成员、使用类的索引器和事件以及F#中的|操作符。unit类型没有参数和返回值的函数的类型为unit,
阅读全文
摘要:模式匹配(Pattern Matching)模式匹配允许你根据标识符值的不同进行不同的运算。有点像一连串的if...else结构,也像C++和C#中的switch,但是它更为强大和灵活。看下面Lucas序列的例子,Lucas序列定义跟Fibonacci序列一样,只不过起始值不同:Codelet rec luc x = match x with | x when x = 0 - failwith "value must be greater than zero" | 1 - 1 | 2 - 3 | x - luc(x - 1) + luc(x - 2)printfn "(lu
阅读全文
摘要:操作符(Operator)F#中,可把操作符看作一种函数调用的更为优雅的方式。操作符有两种:前缀(prefix)和中缀(infix),前者接受一个操作数(operand),出现在操作数之前;后者接受两个或多个操作数,出现在头两个操作数之间。F#提供了丰富的操作符集,可用于数字、布尔值、字符串和集合类型。这些操作符数量甚众,限于篇幅,在此不再一一详解。本文将着重介绍如何使用和定义操作符。类似于C#,F#的操作符也可以重载,也就是说,我们可以将不同的类型用于同一操作符,如“+”;但是与C#不同的是,各个操作数必须为相同的类型。F#的操作符重载规则与C#类似,因此任何BCL或者使用C#编写的.NET
阅读全文
摘要:函数式编程范式简介F#主要支持三种编程范式:函数式编程(Functional Programming,FP)、命令式编程(ImperativeProgramming)和面向对象(Object-Oriented,OO)的编程。回顾它们的历史,FP是最早的一种范式,第一种FP语言是IPL,产生于1955年,大约在Fortran一年之前。第二种FP语言是Lisp,产生于1958,早于Cobol一年。Fortan和Cobol都是命令式编程语言,它们在科学和商业领域的迅速成功使得命令式编程在30多年的时间里独领风骚。而产生于1970年代的面向对象编程则不断成熟,至今已是最流行的编程范式。有道是“江山代有
阅读全文
摘要:http://www.bianceng.cn/Programming/F_Sharp/index3.htm踏上新的旅途 每次旅途都会让人兴奋,都会带来愉快的体验。踏上新的地方,欣赏那些美景,感受那些与自己无关的人和事,身心会得到很大的放松。而回来以后,则会对自己习惯居住的地方产生新的感受,不知你有没有如此的体会呢?学习F#,也算是这样的旅途吧,毕竟其理念与一直接触的C/C#等很不一样。好奇心遇到未知的事物就会兴奋,就像要踏上新的旅途一样。那为什么叫探险之旅呢?知识是有时效的资产,咱们微软平台下的开发人员对此应当感受颇深。平台、语言、环境更新地很快,更新意味着旧有知识的贬值,随之带来的是程序员的
阅读全文
摘要:在上一篇教程《F#与函数式编程概述》中我们了解到F#和函数式编程的一些特点,更多关于F#语言和函数式编程的介绍可以参考51CTO之前对微软MVP赵颉老师的专访《TechED09视频专访:F#与函数式编程语言》。本节教程我们将学习到F#的一些基础原理,在开始之前,让我们先温习一下我们的Hello World代码:#lightSystem.Console.WriteLine(“Thisis one hello”)printfn “Thisis another hello”F#是函数式和面向对象的混合体。它有时候会看起来与C#或Visual Basic惊人的相似,但却又完全陌生。F#程序以一系列的表
阅读全文
摘要:F#是微软.NET开发平台的一门编程语言,其最大的特点是对函数式编程(FP,FunctionalProgramming)的引入;F#对面向对象(OOP)编程的支持也很出色,使用F#语言,开发人员可以自由选择函数式编程或面向对象编程来实现他们的项目。此外,F#还可以与.NET平台上C#、VB等其他编程语言紧密结合。CPU多核心化和云计算的背景下,函数式编程可以很好的解决多并发运算的问题(在处理并发问题方面,面向对象编程存在一定程度的固有缺陷,比如类和实例化过程中产生的一些副作用,详细请参考51CTO.com对另一门函数式编程语言Erlang的视频访谈《因并发而生 因云计算而热:Erlang专家访
阅读全文
摘要:一、简介 F#是一个基于.NET框架的多模式编程语言,Visual Studio 2010中对此语言提供了内置支持。F#支持函数式编程、面向对象编程和命令式编程。 以下各节描述的是在Visual F#的第一个正式版本中所提供的一些特征。作 为 Microsoft®.NET Framework 家族的新成员,F# 提供类型安全、性能以及类似脚本语言的工作能力,所有这些都是 .NET环境的一部分。此函数式语言由 Microsoft 研究院的 Don Syme 发明,作为 CLR 的 OCaml 语法兼容变体,但 F#已经迅速地从科研转为投入实际应用。随着函数式编程的概念通过 .NET 泛型和
阅读全文
摘要:缘起 当你看到这篇文章的标题时,你有什么感觉?是不是很想脱口而出:"到底搞什么飞机啊,我C#还没来得及用好,现在又搞个F#,还让不让人活啊?"《程序员修炼之道》曾经建议我们"learn at leastone new language every year",但Gustavo Duarte却对这种建议提出质疑,并宣称"learning new programming languages is often a waste oftime for professionalprogrammers"。面对这种争论,你可能会显示出某种理性:除非我有需要(学习新的语言),否则我认为够用就可以了。那么,你什么
阅读全文
摘要:巧用C#做中间语言 实现Java调用.net DLL时间:2010-08-11 06:16来源:未知作者:壹号编辑点击:3次本文将详细为大家介绍一个java调用.net DLL的方法,以实现特殊的客户的特殊要求:“在Java项目中必须使用其提供的用.net写的DLL加密机制!”环境与工具:◆.net framework 3.5 C#◆java jdk1.5, Tomcat 5.5◆jacob-1.15-M3实现例子:一、C# 制作Com组件新建一个Class 项目,取名TestCom代码using System; using System.Collections.Generic; using
阅读全文
摘要:在VS2010里已经集成了F#,F#本身是函数型的编程语言,在数学运算方面具备天生的优越性,下面说明如何在C#中调用F#,并简单的从纯语法的角度来比较一下性能。1. 建立一个F#库2. 在F#的原文件中添加一个Module(一定要添加哦,不然在C#中是无法调用的!),然后在这个Module中添加一个Swap函数。代码如下:module FSModulelet Swap(a,b)=(b,a)看习惯了C风格代码的程序员,再来看这段F#代码可能会感觉语法有怪异,但是真的挺简洁的。3. 建立一个C#的应用程序,并添加这个F#库的引用4. 在C#的应用程序里添加一个C风格版本的Swap方法,代码如下:p
阅读全文
摘要:题外话 : 明天世博会(World Expo 2010)就要开幕了,在上海工作了这几年,今天总算是切切实实享受了一把世博的好处 - “五一”比全国其它地区多放两天假,呵呵! 4月12日Visual Studio 2010全球发布,它强大的功能引来很多人的关注,特别是Team Foundation Server 2010 (TFS 2010)。TFS 2005和2008曾给人的印象是配置十分的复杂,而TFS 2010则着重解决了这个问题。也许很多人还是不信,耳听为虚,眼见为实,下面就是我在自己的IBM X60笔记本上实际安装、和采用Basic配置TFS2010的截图,给大家展示一下! 我的X60
阅读全文
摘要:今天微软刚刚宣布了收购 SourceGear公司的TeamPrise产品部门,并将从VS2010开始将TeamPrise Team Suite集成到Visual Studio产品系列中来。那么TeamPrise右是个啥呢?它其实上是一个支持Eclipse IDE软件开发环境,并能够运行在多个操作系统上 (包括:Unix、Linux和Mac)上的工具套件,通过它可以和微软的ALM工具- Team Foundation Server相集成,从而使Eclipse用户和Unix、Linux、Mac操作系统上的开发团队也能使用TFS的功能,包括:代码控制、缺陷管理、Build管理、过程控制等,下面两个链
阅读全文
摘要:实验室管理功能是Visual Studio 2010种非常酷的项功能,同时也是稍微复杂的,需要进行配置才能使用。这篇博客的内容结构乱了些,是配置过程中一些临时笔记,以后会逐步细化让它更有条理。 TFS实验室管理 (Team Lab Management) 中涉及到了很多概念,由于其依赖于虚拟化技术,特别是SCVMM来管理虚拟机,所以很多这方面的概念,例如:Host、Host Group、Library Share、Environment等, MSDN的帮助“Using a Virtual Lab for Your Application Lifecycle”详细介绍了这些概念。下面这张图展示了
阅读全文
摘要:马上就要过年了,现在周围都处在一种节日前的兴奋和喜气的的氛围,尤其是旁边的欧尚超市,超市入口处已被各种大红、大紫、大包的节日商品所占满,年味儿很足,很给力啊!最近正在读Alan Page、Ken Johnston、Bj Rollison合著的 -《How We Test Software At Microsoft》,经本人初步鉴定,这绝对是一本比较全面和系统介绍微软测试的好书,值得细细品味。并且还很新鲜,是2008年12月出版,书中的很多数据也是截止到2008年的。 在本书的第9章Managing Bugs and Test Cases(第171页)中,介绍了一个非常有趣并且是真实的微软Bug
阅读全文
摘要:今天是2011年的第一天,2010年就这样匆匆忙忙,紧紧张张地过去了。这一年里来来去去,变化最大的就是很多一起工作了多年的同事离开了,很多都去了"更给力”的地方,呵呵!公司里来来往往是很正常的,想想我最近一次换到“更给力”的地方,那都是5年前了。总之,现在的地方还是挺给力的,好好工作,争取2011年有更大的进步,呱唧呱唧! 测试用例设计的最基本要求:覆盖住所要测试的功能。这是再基本不过的要求了,但别看只是简单的一句话,要能够达到切实覆盖全面,需要对被测试产品功能的全面了解、明确测试范围(特别是要明确哪些是不需要测试的)、具备基本的测试技术(如:等价类划分等)等。那么满足了上述这条要求是不是设计
阅读全文
摘要:三天的Tech.Ed 中国 2010 已经结束,很高兴有这样一个机会认识新朋友,并能回北京去鸟巢、水立方看看!今年Tech.Ed给人留下印象最深的就是 ---云!各种各样的云,私有云、公有云、Azure、Cloud,云出没在会场的各个角落。看来为了不OUT,以后要好好“云里雾里”的学习一下!国家会议中心的确够大,五六千人的Tech.Ed估计也就用了它一半多的会议室吧,中午的伙食也还成,就是人太多,量不是很够。 在指导HOL动手实验室-使用Visual Studio 2010的微软测试管理器编写和执行手工测试用例-课程时,有些朋友在第二个动手实验练习- 使用Test Runner执行手动测试用例
阅读全文
摘要:前两天,一位朋友发消息问我:他在自己的程序(而非Visual Studio测试用例代码)中调用Coded UI Test(以下简称为CUIT)的函数去操作UI界面,可是返回的对象句柄总是空,继续使用则会抛出NullReferenceException异常。并且同样的代码在VS CUIT环境下是可以正确执行的,也不知道问题出在了哪里? 理论上讲,在VS集成环境中能够执行的测试代码,在一般的程序代码中也是可以执行的,这里问题的关键在于,是否在你自己的程序中配置好了CUIT测试执行的环境, 即CUIT回放执行引擎是否正确启动了。当使用VS的CUIT工程时,每个测试类都被标识了[CodedUITest
阅读全文
摘要:在本系列关于Visual Studio 2010测试功能介绍中,花了很多的篇幅介绍了其新功能Coded UI Test(以下简称CUIT),也欣喜地看到很多朋友对CUIT非常感兴趣。但是前一段时间,在一个邮件讨论组,有个朋友提出了这样一个问题:他的应用程序有上百个表单,用来显示和操作从数据源读取的不同信息,他希望能够用CUIT来实现对这个应用程序的自动化测试。听起来似乎是合情理的,但仔细推敲一下有点儿问题 : 这上百个表单都要用CUIT这样的基于UI的测试用例覆盖吗? 没有单元测试等非UI的测试用例吗?得到的回答是:是,没有!我......晕倒……上面这个小插曲反映了实际工程中对UI自动化的过
阅读全文
摘要:Visual Studio 2010 Feature Pack 2正式发布了,MSDN订阅用户可以在 http://msdn.microsoft.com/en-us/vstudio/ff655021.aspx下载到,FP2主要针对测绘功能增加了很多新功能,并且包含FP1的所有内容。有关FP2的视频介绍,可以在Mathew Aniyan的博客上找到。此外,FP2安装前会要求安装KB2403277(Pre-requisite for Microsoft Visual Studio 2010 Feature Pack 2),它针对VS2010进行了必要的更新,以使得FP2的新增加的功能正确工作。 最
阅读全文
摘要:很久没有更新的自己的博客了,业余时间一直在忙一个内部的Scrum任务板工具- eSticker。本来打算和VS Rangers合作把它做成一个发布到Codeplex上的工具, 但由于一些原因,最终计划还是取消了,昨天收到了通知。接下来可以多点时间花在Blog上了,呵呵!Patrick的博客上发布了一篇文章 VS ALM Library Updates on MSDN for October 2010, 介绍了MSDN ALM相关的最新更新,主要包括了:Visual Studio ALM所需要的软件、安装和升级Team Foundation Server、Team Foundation SDK、
阅读全文
摘要:最近团队的Nightly run被迁移到装有Windows Vista的Build Agent上执行,98+%的自动化用例执行通过率,还是蛮不错的!但是发现有几个之前(在装有Win7的Build Agent)一直通过的测试用例,突然失败了!今天同事Juan分析了一下这几个失败的用例,它们全部是基于Coded UI Test的,错误的场景让人有点匪夷所思,比如:ListBox.SelectedItems返回Null,之前在Win 7上运行都是很稳定的,经过一段调试还是一头雾水!后来仔细观察,发现在执行这些失败用例的时候,系统总有个提示(可不要小瞧这提示,因为没有它,打死我我也不知道要去装下面的补
阅读全文
摘要:上个月末应InfoQ编辑泰稳的约稿,为InfoQ的《构架师》7月版写了一篇介绍如何使用Visual Studio 2010来辅助敏捷测试,今天得知该电子杂志已经出来了,并且可以在InfoQ中文网站上免费下载。由于是为别人写的稿件,所以就在不在这里贴出文章了,给大家留一个下载链接 - http://www.infoq.com/cn/minibooks/architect-july-10,如果感兴趣可以下载来看看。现在,也可以通过下面的InfoQ连接直接阅读了,呵呵:应用Visual Studio 2010辅助敏捷测试(上)应用Visual Studio 2010辅助敏捷测试(下) 我看了一下的这
阅读全文
摘要:代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标。它也是对测试工作进行量化的重要指标之一,测试工作往往不如开发那样激动人心,一个重要原因之一就是测试难于量化,而代码覆盖率恰恰是解决着一问题的重要指标。 根据其覆盖内容的不同,又可以细分为:语句覆盖、判定覆盖、条件覆盖、路径覆盖以及循环覆盖等等,这里有一篇很好的博客《代码覆盖率浅谈》介绍了各种不同覆盖率的定义。有的理解起来还是蛮拗口的,但其实不难,用到了再看就成!在所有这些覆盖中语句覆盖(Statement coverage)是最简单的,但也是最常用的、最实际有效的覆盖率,Vi
阅读全文
摘要:题外话:2010/04/15第一次去广州,当然不是去参加广交会,呵呵!是由于Visual Studio 2010广州的发布活动。之前对广州的感觉是:治安情况让人堪忧!但两天的行程下来,让我大大的改变了自己的看法,广州的治安还是蛮好的!“那段治安不好的日子已是两三年前的事了”,出租车司机是这说的,我广州的朋友也都这样说,自我感觉也是如此,也许是我人高马大的原因,呵呵!下面是在广州火车东站拍摄的照片。 2010/04/12 - 04/16 Visual Studio 2010在北京、上海和广州进行了正式发布,本人也参加了这次发布活动,从中学习到了不少东东。关于测试方面的新功能,也有了些新体会,简单
阅读全文
摘要:作为一个测试人员报Bug最基本的工作就是要详细的记录下如何重现(reproduce)这个Bug,这也是衡量一个Bug质量的高低重要因素之一,因为不可稳定重现的Bug的是没有意义的,只会耽误开发人员和项目经理的时间。一两个这样的不可重现的Bug还是可以原谅的,但是如果经常有这样的事情发生,那就不免会引来抱怨和鄙视了。 好的Bug应该是有清晰和详细的重现步骤,以及期望的结果和实际得到结果。更进一步,如果需要的话还应该有,出现问题的产品版本编号、语言以及操作系统的版本。大多数情况下,用文字进行描述的就足以了可以得到4+分,但如果能配上一张问题现场截图的则可以得到5分,如果更为复杂的依赖于执行动作的B
阅读全文
摘要:三月份一直在忙一个Out-Of-Band的项目,所以没有太多的时间来更新博客的内容。今天总算是可以有些时间来研究一下Visual Studio 2010 和 Team Foundation Server 2010中有关虚拟实验室的内容。之前曾经用Beta 2 简单配置过着一个这样的环境,但并不系统只是随便玩了玩。接下来就是要真正建立一个这样的环境,用于产品的测试工作了。 MSDN上关于Lab配置和管理的资料有很多,初看时在链接见转来转去还是挺麻烦的,简单总结一下其实其总体轮廓和构架也并不复杂,都是被详细的文档给搞复杂了。Lab建立需要下面的内容:装有Hyper-V的Windows Server
阅读全文
摘要:发现一篇Brian Keller最近写的介绍Visual Studio 2010测试功能好的文章,放在本篇博客的开头与大家共享:《A different way of presenting the Visual Studio 2010 testing tools》 前几篇博客中关于Coded UI Test(以下简称为CUIT)的介绍啰啰嗦嗦地也写了不少了,但也是都是些概念性的东东,并触及到CUIT的核心Code,也就是如何用Code来真正实现对程序UI的的控制。从本篇博客开始,我就简单介绍一下如何使用代码来控制UI上元素。下图是我在前两天给同事所做的CUIT UI测试功能介绍中的一页PPT,
阅读全文
摘要:题外话:今天一早发现的CSDN博客上的图片又都回来了,算来图片审查已经进行了一月左右了,之间俺也牢骚和抱怨过多次,不过终于在春节回来了,多少是件让人高兴的事情! 最近看到的一些介绍Visual Studio 2010(以下简称VS2010)测试功能的文章中,经常出现类似下面这样的一张图。它的大概意思是说,VS 2010为具备不同编码(coding)能力的测试人员,提供了多种测试工具/功能。generalist和specialist分别代表了coding技术能力分类的测试人员的两个极端。需要注意:编码能力是衡量现代软件测试人员技术能力的重要指标之一,它并不是衡量的唯一标准,因为合格的测试人员还需
阅读全文
摘要:在上一篇博客《RnP与Coded UI自动化测试》中介绍了如何编写、录制和播放手工测试用例,以及如何由录制的内容生成Coded UI Test(CUIT)自动化测试用例。那里所使用的测试用例比较简单,仅测试了计算器的加法功能。而在实际的测试工作中,在测试步骤系统情况下,往往会有多组测试输入数据,需要判断每组输入的结果是否正确,这也就是所谓的数据驱动的测试(DDT,Data-Driven Test)。 Visual Studio 2010对手工测试用例的编写也支持DDT,每个测试步骤允许定义一个或多个参数(@Parameter),一组参数就构成了一个测试输入组,也被称为Iteration。然后只
阅读全文
摘要:题外话:昨天去上海浦东机场接闺女,一切还是蛮顺利的,公交机场7线直接从上海火车南站一站直达浦东机场,票价20元,算上乘坐地铁5号和1号线的6元,从我家到机场总共要26元,相对于打的士的220元,还是实惠很多的。在新的上海轨交图上,看到地铁2号线延伸到了浦东机场,只是现在这段还没有通车。机场7线是在地铁3号线的上海南站站2号出口附近,可是俺是乘坐1号线到上海南站的,需要经过换乘通道到3号线的上海南站站才能找到2号出口,稍费了些周折。Coded UI Test (CUIT)英文资料大全 - Content Index for Coded UI Test 如果有机会看一看Visual Studio
阅读全文
摘要:严格意义上讲,Gated Check-in(门控式签入,呵呵,这是我自己的翻译,英文名很好理解,但翻译起来真难啊!最近发现了Gated Check-in的官方翻译因该是 - 封闭签入,感觉挺别扭的没俺翻译的好,呵呵!)不应该算是测试的一部分,它是Team Foundation Server(以下简称为TFS)提供的一种代码check in(签入,这是最常见到的对check in的翻译,在本文中还是直接使用其英文,因为这是在平常开发中最常使用的称呼)的方式,即在代码check in之前,先将提交的代码更改与现有代码进行merge,然后对merge后的代码进行Build,如果Build成功则che
阅读全文
摘要:如同我在《VS 2010测试功能学习(五) - Gated Check-in》一文中所介绍的Gated Check-in功能一样,Rolling Build其实也是Team Foundation Server(以下简称为TFS)提供的对check-in代码进行编译和验证的方式,虽然并不和测试直接相关,但它却是保证产品质量和团队协同工作的重要功能。 Rolling Build,我把它翻译为“滚动生成”,即当TFS检测到在它所监控的范围内有任何新的代码变化被check in的时候,它就启动对最新的代码库(code base)进行Build验证。之所以称之为“滚动”,因为它是在一个Build验证操作
阅读全文
摘要:Test Impact Analysis是Visual Studio 2010测试部分新增加的一个功能,我也不知道该如何翻译其中文名,那就简单点儿,按字面翻译为“测试影响分析”,以下简称为TIA。那么啥是TIA呢?简单地说,就是根据产品代码变化自动分析出受影响的测试用例,它既适用于自动测试用例,也是适用于手动测试用例。注意:目前Test Impact Analysis只针对Managed Code。 那么这个功能有什么实用价值呢?对于我所在的开发团队而言,其价值可老大了。我们所开发的产品规模比较大、功能比较稀碎,并且是多人合作开发。为了保证产品的质量,我们为产品编写了大量的自动化测试用例 (
阅读全文
摘要:然是以介绍VS 2010 测试功能的专题,但随着学习的深入,有了一种越来越强的感受,那就是 :“如果主角儿只有一位的话,那么整个VS 2010工具的真正主角儿已不再是作为编码工具的VS IDE,而是ALM的核心TFS”。很多很多涉及到团队开发的功能都需要TFS(Team Foundation Server)的支持,这个专题中要学习的测试功能也不例外,如首篇《VS 2010 测试功能学习(一) 新老Logo》中,介绍过的MTM工具就仅是一个客户端而已。 那么TFS到底是干啥的呢?从字面上翻译就是: Team团队Foundation基础Server服务器,更更通顺些翻译就是"团队协作基础服务器",
阅读全文
摘要:微软在今天正式发布了Visual Studio 2010 Beta 2(内部开发代号 Dev10),同时也宣布了正式版本的发布日期为2010年3月22日,也就是春节后啊!MSDN订阅用户可以在今天开始下载Beta 2,其它用户则要到美国时间10/21号才能下载,也就是我们中国时间22号。我很高兴能够马上就用上Beta 2版本的Visual Studio 2010,与Beta 1相比变化还是不小的,先不说功能上有啥变化,仅Logo的变化就让人小吃了一惊。一改使用了十几年的“红绿蓝黄”,采用了全新的“紫蓝”Logo,乍一看还挺不适应的,毕竟用了VS十多年,对老Logo还是有感情的,呵呵! 老Log
阅读全文
摘要:在VS 2010测试功能介绍的首篇博客中,概要介绍了MTLM的工具。在接下来的学习过程中发现总有很多细小的问题和发现无处归类留作备忘,用这种Q&A的方式的蛮好的,不用写很多东西,随时有新的发现就随时写些东东,比较轻量级,挺好的!在这里列出一些VS 2010测试功能使用中遇到的问题:#如何启用Test Controller和Agent上的日志功能?答:请参见assemb的博客How to enable test controller logs?和 How to enabletest agent logs?#如何把实验环境快照连接到失败的测试用例结果上?答:请参见assemb的博客Link env
阅读全文
摘要:http://blog.csdn.net/quicknet今天下午去复旦大学参加了5ETesting组织的一个测试人员的交流活动,该活动主要是介绍了E测中国团队和他们现阶段的一个项目和产品。其中重点介绍了QTP项目,活动之前我对QTP是完全不了解,通过期间的介绍我才知道它是QuickTest Professional的缩写,是个自动化测试的框架。其实参加这个活动并不是想去了解某个具体的框架,是难得有个这样一个测试的人员的聚会,想借此结识一下更多从事测试工作的朋友,了解他们对测试的看法、体会和经验。 也是难得能从自己所从事的测试工作中闲暇下来,跳出自己的测试圈子,听听别人对实际工程中测试工作的感
阅读全文
摘要:题外话:现在最热门的话题莫过于创新,大大小小的会议,大家愿意谈谈如何创新。对于软件行业而言,创新不只是多采用些新技术,过程创新和活动创新更是重要的。什么叫过程创新,该怎么进行过程创新呢?俺也没有确切的答案,不过看看这段Paper Prototyping短片,或许能给你些灵感,呵呵! 同事Juan写了一篇介绍Visualization and Modeling Feature Pack《针对C/C++代码的工程间依赖关系的层验证 》的博客,发表在我们团队的CSDN博客上,推荐给大家! 今年4月发布的Visual Studio 2010 (以下简称VS2010)的旗舰版提供了多种构架工具,来帮助开
阅读全文
摘要:这是一个学些Visual Studio 2010建模工具的好资料,强烈推荐给大家 《VS Architecture Guide》。它是由微软的Rangers团队负责编写的,很实用!下面是一段从Willy博客截取的关于这个手册的介绍,英文比较简单我就不翻译了,呵呵!Practical guidance for Visual Studio 2010 Ultimate, focused on modeling tools. These release includes common usage scenarios, hands on labs and lessons learnt from the
阅读全文
摘要:在上一篇关于Visual Studio 2010建模功能的博客《Visual Studio 2010 建模学习(九) - 与TFS工作项进行集成》中,曾经介绍了UML模型与TFS工作项(Work Item)集成的功能,即由模型上的元素可以关联到TFS中工作项,例如:Usecase图上的一个用例可以与User Story工作项关联,用以标识这个用例是与哪个用户需求相关。这样在浏览UML图时候,就很容易找到与之相关联的工作项。 但在实际应用中,尤其是对那些大量使用工作项的团队而言,反向查找的功能也很重要,即由工作项直接查找到与之关联的模型元素。这项功能在Visual Studio 2010的正式版
阅读全文
摘要:题外话:今天是农历大年三十,给大家拜个早年先,祝大家虎年吉祥,万事如意!笔耕不辍,发完这篇短文就去看央视春节晚会了,呵呵!特别期待赵本山今年还能有新创意!!!! 《Visual Studio 2010 RC正式发布了》,大家陆陆续续都会从Beta 2升级到RC。虽然微软在一开始并没有规划RC版,但是为了能够更好的倾听用户对Beta 2的意见并加以改进,保证Visual Studio 2010为用户提供最满意的质量,MS还是决定要发布一个RC版。那么这就带来一个问题:我用Beta 2创建的模型工程能够在RC上使用吗? 回答:可以的。MS支持Beta 2的“Go Live”,我在《Visual
阅读全文
摘要:题外话:今天是大年初三,最鼓舞人的新闻莫过于申雪赵宏博夺得了温哥华冬奥会双人滑的冠军,18载奋斗终于问鼎奥运冠军,着实来的不易啊!坚持不一定能获得成功,但不坚持是一定不会有成功的!最让人悲伤的消息则是,八一男篮主力中锋莫科的爱人王凡去世的消息,同为篮球运动员,王凡1月24日在训练场上突发肺梗塞昏迷了23天,于年初二病逝。25岁年轻的生命,就这样走了,让人惋惜啊! 在博客《VS 2010 测试功能学习(三) 真正的主角儿》中曾经介绍过,Visual Studio 2010的核心实际上是后端的Team Foundation Server,它集成了众多ALM功能。VS 2010的开发、测试等都与TF
阅读全文
摘要:VS2010已经发布有些日子了,又有了很多很给力的关于建模的学习资料,这里再补充一下:Understanding Your Systems with Visual Studio 2010YouTube视频Visualization and Modeling in Visual Studio 2010 UltimateTechEd 2010 EuropeArchitecture Discovery with Visual Studio 2010 UltimateTechEd 2010 Europehttp://realworldsa.blogspot.com/2010/10/new-msdn-v
阅读全文
摘要:题外话:忙忙碌碌又一年就要过去,2009真是不平凡啊,金融危机、建国六十周年盛大的天安门阅兵、蹭蹭乱跳的房价、H1N1猪流感、艰苦而没有太大成果的哥本哈根气候会议等等。有喜有忧,有好有坏,不过不管怎样这些都将过去。来年继续“种瓜得瓜,种豆得豆”,辛勤的劳动总会有好的收获,呵呵!天天坐在办公室里面对着电脑和网络,对周围真实的事物观察和了解得少了很多。例如:黄浦江就在我家南边不到一站的地方,年初去看了一下在建的闵浦二桥,年尾这才有机会再去看一下,下面三张照片是这两次看大桥时所拍摄的,变化好大吧!搞IT的,编软件的,应该多出去走走,放松身体,更是要放松心情,身心都健康了才能干得更长久! 不好意思,今
阅读全文
摘要:题外话:今天是2009到10赛季CBA的首场揭幕战-上海吉玛斯vs浙江广厦,由于姚明是上海队的大老板并且出席这场比赛,所以比赛被炒得格外火爆,门票5个小时就全部卖出了。支持中国篮球,俺也从第二节开始坐在电视机前观看比赛,比赛还是很精彩的,一直到加时赛的最后一分钟才决出胜负,虽然上海憾负,但相对于上赛季的屡战屡败,这次进步还是十分明显的。比赛虽然很精彩,可转播实在让人无奈,屏幕上除了显示了双方比分,再没有其他任何信息,特别是没有每节的剩余时间和每次进攻的剩余时间信息,让人无语......汗!在此之前,下午去看了张艺谋的《三枪拍案惊奇》,整体感觉是:实在是没啥意思,论幽默还是要看冯小刚的!期待明年
阅读全文
摘要:题外话:前几天一直看到"Going Live"这个词,这年月概念太多了,加引号的东东也太多了(比加问号强,加问号多是“标题党”,呵呵!),搞得人晕头转向。最近在Jeff Beehler的博客上找到了比较权威的解释,仔细看了看简单概括一下就是:Visual Studio 2010 Beta 2质量很好,我们对它很有信心,大家可以开始用在实际的工程中了,呵呵!真正的高手是把复杂事物用简单方法描述和解决,把简单事物用更简单方法描述和解决。 前面三篇关于建模的文章分别介绍的《DGML》、《依赖图》和《构架浏览器》是Visual Studio 2010很大的一个亮点,它们是很好的工具帮助用户由代码生成模
阅读全文
摘要:最近两周一直比较忙,没有时间来继续更新自己的博客。今天(2009/12/10)是我参加微软2009 MVP北京活动的第二天,晚上我所要参加的单元都已经完成了,总算可以轻松下来好好写写博客了,呵呵!先说说这次的MVP活动吧,我还是第一次参加,活动的地点在顺义东方太阳城的东方嘉宾酒店,距离市区还是蛮远的,还好知春路的西格玛大厦前有班车,如果坐公共汽车则只有955,从头到为尾一共有30多站,那花的时间可是相当的长啊!这次的活动还挺有意思的,有机会接触微软各个产品领域的MVP。第一天晚上的星光Party是个亮点,现场气氛非常活跃!谁说俺们IT从业人员比较沉闷?其实是缺乏适当的氛围来激活和引导,我看大家
阅读全文
摘要:在Visual Studio 2010中,还提供了另外一个工具来辅助广大开发人员来理解已有的代码或者编译好的.Net Assembly,它就是构架浏览器(Architecture Explorer)。构架浏览器能够以Class View、Solution View和 File System的方式来浏览已有的系统。Class View和Solution View支持对Visual C#和Visual Basic.Net工程的浏览,而File System - Select Files...方式则可以用来浏览任何基于.Net的编译好的Assembly文件的内容,有点像是Reflection工具的
阅读全文
摘要:http://blog.csdn.net/quicknet DGML是Directed Graph Markup Language的缩写,中文应该翻译为“有向图标记语言”,我记得有向图应该是离散数学中的一个概念。 DGML是微软在Visual Studio 2010中开始引入的一种完全符合XML格式语言,它主要是用来描述循环(cyclical)和非循环(acyclic)的有向图。有向图是由一系列的由边(link/edge)进行互联的节点(node)组成。 DGML的语法还是非常简洁的,最简单的DGML文件只需要有DirectedGraph和Links这两个元素就可以了。在Visual Stud
阅读全文
摘要:Visual Studio 2010在架构和项目管理方面的功能增加让人眼前一亮,之前曾详细介绍过Visual Studio 2010新增的架构工具,包括通过可视化技术DGML提供直观的图表,依赖图,继承图和自定义图表的Visual Studio UML浏览器工具。今天,带您深入VS2010的UML功能,看看如何在Visual Studio 2010中进行UML建模。 在Visual Studio 2010中增加一个新的项目模板,叫做“建模项目”,通过这个模板,我们可以快速创建一系列UML图,目前可以创建UML 2.x 13个图中的5个,另外还可以创建层图和有向图(.dgml)。 图1:...
阅读全文
摘要:2010年07月04日 星期日 下午 10:23 犹豫了好久,最终还是决定开始这一章,因为我不清楚到底有没有必要写这样的一章,是应该在这里说明一些简单的调试方法,还是干脆直接让大家去看《Visual C++ 2005入门经典》的第10章,因为那里已经说出了我们几乎所有的常见调试方法。 另外一点就是这一章也许会是《Visual C++ 2010入门教程》系列的最后一章了,因为在入门的这方面,我已经找不到值得和大家分享的经验了,算是黔驴技穷了吧。回头看看这个系列,最初的目的就是为了解决一些初学者常见的问题,教会初学者如何使用VS2010这个工具,因为我也经历过那些阶段,我希望我能帮助那些“曾经的我
阅读全文
摘要:2010年07月03日 星期六 下午 12:53这一章跟大家分享一些与c++项目管理、VAX、SVN、VS快捷键等方面的东西。 有效的在项目中组织C++文件,分配各种文件的目录对以后的维护会有好处的,至少不会出现不知道什么东西在什么地方,特别是大的项目,这里用TextSearcher来做例子。 使用SVN来管理项目会让我们的工作更轻松,工作也会更简单容易。 掌握常用的快捷键和常用的VS功能让我们的工作更有效。 合理的组织文件体系 首先说在IDE中为我们的文件分类组织,如下图所示:我把不同功能的代码和文件放在不同的Filter下面,如何添加这样的Filter呢?这样就可以添加筛选器了,默认情况下
阅读全文
摘要:2010年06月27日 星期日 上午 11:21 这一章将帮助大家解释一些常见的错误、警告和问题,帮助大家去理解和解决一些常见问题,并了解它的根本原因。iostream.h与iostream下面的代码为什么在VC2010下面编译不过去?#include iostream.hint main(){cout"Hello World."endl;return 0;} 错误信息:fatal error C1083: 无法打开包括文件:“iostream.h”: No such file or directory 造成这个错误的原因在于历史原因,在过去C++98标准尚未订立的时候,C++
阅读全文
摘要:2010年06月25日 星期五 下午 07:38 这一回我自己都不知道应该写点什么好,或许今天的篇幅会比往常短很多。我说过,这不是C++的教程,因为我还没有那个能力来教大家C++,我能做的,是分享一些学习的经验,以及教新手如何使用VC2010这个工具去练习和实践其它C++教材上面的程序,如《C++Primer》等。 今天说的是我学习和使用C++这些年来对C++的一些理解,这样的日志其实是最难写的,因为众口难调,为什么这么说呢?同样的一段音乐不同的人去倾听都会有不同的感受,不同的心境去听也会有不同的感觉。记得当年我在听雅尼的《If I could tell you》听到的是无尽的伤感和无奈,而我
阅读全文
摘要:《Visual C++ 2010入门教程》系列二:安装、配置和首次使用VS20102010年06月15日 星期二 下午 05:57本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。 安装 Visual C++ 2010是属于Visual Studio 2010的一部分,这个在前一章中已经讲解过,实际上Visual C++ 2010也有更多的子版本,正如Windows7有旗舰版、家庭高级版、家庭初级版一样。在上一章的下载地址中有两个版本可以选择,我选择的时候旗舰版,这个功能最全面。 如果你下载完毕了,应该有一个ISO镜像文件,
阅读全文
摘要:2010年06月14日 星期一 下午 03:13 作者:董波 日期:2010.6.14http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/category/%A1%B6visual%20c%2B%2B%202010%C8%EB%C3%C5%BD%CC%B3%CC%A1%B7 写在前面 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编
阅读全文
摘要:译注:本文应用是VC6.0,对于其他版本向导可能与本文介绍的不同。原文地址:http://www.codeproject.com/atl/com_atl.aspBeginner's Tutorial: COM/ATL Simple Project作者: C. Lung.简介本教程的目的在于,给读者一个关于使用ATL创建一个COM服务的方法的初步印象,并且让读者在使用VC++或者VB编程的时候,学会调用这个服务。本教程仅仅是为了VC++程序员中的初学者设计,因此笔者不打算深入介绍COM的细节,也不打算增加您学习IDL之类的负担。笔者希望展示的是使用ATL创建一个“简单”COM“对象方法简单易用,
阅读全文
摘要:系统理解Win32 API和MFC(上) 作者: 温昱 作者主页: lcspace.diy.163.com Win32 API是微软的操作系统Windows提供给开发人员的编程接口,它决定了我们开发的Windows应用程序的能力。MFC是微软为开发人员提供的类库,在某种意义上是对Win32 API的封装。本文试图从全局角度对Win32 API和MFC进行理解──给出二者的概念模型。 本文使用UML描述概念模型。Win32 API本不是面向对象的,我用面向对象的观点去理解它,无非是想表达其全局。 本文参考了MSDN、相关书籍和网上的一些资料,在此一并感谢。 一、Win32 API的概念模型 Wi
阅读全文
摘要:摘自:http://www.lihuasoft.net/article/show.php?id=658.h,.cpp要同名!经常在CSDN以及其他之类的技术论坛上问关于C++ 头文件的问题。提出这些问题的往往就是那些刚学C++的新手。当初我是菜鸟的时候也问过类似的问题。 现在来看看下面两个include: #includeiostream// 这个就是1998年标准化以后的标准头文件 #includeiostream.h// 这个就是标准化以前的头文件 更本质上的区别就是iostream把标准C++库的组件放在一个名位std的namespace里面。而相对的iostream.h则将这些
阅读全文
摘要:ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用MFC,使用API函数编的程序。MFC、ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用。当然关于C++开发的库不止这3个,不过这3个是微软推荐。从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR.WIN32 winAPI MFC MFC类库 CLR .net库1. WIN32常规就是不用MFC,使用API函数编的程序。 2. MFC库有很多年的历史了,MFC是基于Windows API的简单封装。其核心
阅读全文
摘要:sprintf、swprintf分别是对单字节/双字节字符格式化的,wsprintf根据预定义指示符的不同可以对单字节/双字节字符格式化。wsprintf和swprintf比较,其实这两个函数对用用户来说是一样的,只不过前者是在 Winbase.h声明;后者是在stdio.h,stdlib.h文件中声明。 对于wsprintf, 在编译器编译过程中会检查你所定义的宏,然后将TCHAR.H文件中的以_tcs打头的函数转换成对应的str或wcs大头的函数。如果你要build一个使用UNICODE字符集的程序,则可以定义 _UNICODE宏。如果要build一个single-byte的程序则不需要定
阅读全文
摘要:移动通信网络优化技术的现状及其发展方向吴建军 赵月旺 2004/03/16关键词:移动通信 网络优化 智能优化 专家系统 数据挖掘 自动优化 摘 要:本文介绍了目前移动通信网络优化的现状和局限性,提出网络优化技术的新思路1 移动网络优化的意义 中国的两大移动通信运营商,中国移动和中国联通,所拥有的移动通信网络经过几年的网络投资建设,其网络规模已经达到世界上最大的移动通信网络,拥有了世界上最大数目的用户群,但是,网络的质量却远远没有跟上网络规模的发展。随着中国加入WTO以及运营商之间竞争的加剧,运营商特别是中国联通要想保证其现有的用户数量并发展新的用户,它们的工作重心必须从网络建设转向了网络
阅读全文
摘要:2009-03-29 12:07前言第三代移动通信技术不仅带来了丰富的业务类型,更高的速率,同时也带来了网络规划和优化的复杂性。如何评价和衡量网络性能是否达到了设计的要求,如何最佳的规划和优化一个网络,不仅需要技术,还必须有工具来辅助实现。路测是网络优化的重要手段,它对反映网络状况,体现网络性能指标起到直接的测量评估作用,并能指出网络问题所在。目前华为公司主要通过使用自主开发的路测系统和后台分析系统进行网络优化,已经取得了良好的应用。本篇首先介绍了网络优化中路测的作用,其次介绍了路测工具GENEX Probe的特点和应用实例。路测在网络优化中的作用1. 路测的内容和参数3G网络优化包含多个方面
阅读全文
摘要:1.GPRS GPRS技术作为GSM系统向第三代演进的过渡手段,正在被世界各国所关注,国内的运营商目前也正在进行各种试验工程,计划在今年内大规模使用。GPRS是对现有的GSM网络的改进,以便支持高速率的数据传输,满足终端用户对高速数据业务(如Internet)的需求。GPRS可向用户提供从9kb/s到大于171.2kb/s的接入速率,更为有效地利用无线资源,动态地向单个用户分配位于同一载频上的1-8个时隙,根据业务流量和运营者的选择,无线接口资源可在话音和数据业务之间共享,可支持非常灵活的上下行不对称的传输。这些特点的实现涉及到无线资源的分配算法,根据用户的要求和网络资源情况,合理分配无线资
阅读全文
摘要:2010-04-17 21:38:30 / 个人分类:网优 目前,市场上无线网络优化工具主要沿着两个大的趋势在发展。其一,是以ACTIX公司产品为领导的产品。该产品将网络优化工具定位为辅助网优工程师评估与分析网络问题的手段。路测及后分析产品、信令分析仪和OMC分析工具都属于这类。其二,以SCHEMA公司产品为代表的AFP自动频率优化产品。这类产品将自己定位为直接输出网优方案。了解基于MMR自动分频工具的同仁们应该知道这类产品的威力了吧。
阅读全文
摘要:3G网络优化既有与2G网络优化相同的一面,也有其特殊的方面,因此本文主要从2G出发来分析3G网络的优化,主要借鉴2G网络优化的经验来对3G的无线网络的优化进行分析。 -- 3G网络优化既有与2G网络优化相同的一面,也有其特殊的方面,因此本文主要从2G出发来分析3G网络的优化,主要借鉴2G网络优化的经验来对3G的无线网络的优化进行分析。 一、概论 由于移动通信系统受客观环境的影响较大,随着系统的不断扩容及外界环境的变化,往往会产生很多新的问题,导致服务质量达不到应有的水准。这样,巨大的投资没有得到充分的利用,同时也影响了系统运营部门的声誉。因此,如何调整和优化系统结构,提
阅读全文
摘要:未来20年移动通信的发展方向 一、网络优化的重点分析 目前,网络优化的工具比较多,针对不同的技术范畴,优化工程师采用不同的工具。现有的第三方优化工具有:路测数据分析软件、频率规划与优化软件、信令分析软件、话务统计数据处理软件、基于GIS的配置分析软件、话单分析、话务和信令负荷流向预测软件。尽管这些工具给网络优化工程师完成优化工作带来了很大的方便,但由于它们往往只针对网络优化过程中的某个(些)特定领域,得出的优化方案显然不是最佳的,合并这些工具的输出,并与OMC系统的输出进行联合分析,其工作量仍然是人海战术,属于粗放阶段。 网络优化是一个涉及全网或局部网络的、有固定生命周期的过程(简称优化周期)
阅读全文
摘要:谁说腾讯不创新?WEB2.QQ就是个挺强悍的反击。咋一看到时我不禁摸摸头,难道这就是传说中的QQOS?。电脑上国内普及的1M网速,首次加载2s,登录加载3s,大部分用户的体验应该都优于这个。3G体验也近似于这种水准。算上各种因素(带宽被占用等),就算以20K/S的网速来看,首次加载的时间10s,而登录加载15秒,这是GPRS能达到的顶级体验。或许,从门户站点的体验上来看,这并不是特别难以实现的事情;然而这是个应用,对比起许多应用程序的几秒乃至几十秒的启动速度而言,这种体验已经非常优秀。先看HTML标签,它有着如下class:。class="javascriptEnabledwinwin6_1f
阅读全文
摘要:说明:你希望自己用.net辛辛苦苦做出来的软件被人轻易破解吗?你希望自己花了大量人力物力用.net开发出来的产品被竞争对手轻易获取核心代码吗?这是一篇比较详尽地介绍如何保护自己的.net源代码的文章,如混淆、加密和强名称等,出于保护原作者的角度,所以本人没有掐头去尾作为自己个人的文章,正因为是全文转载,所以并不代表本人完全赞同作者的全部观点,也不代表本人本人提作者提到的软件做广告,这一点请大家注意,不要认为我为别人做广告而骂我,其实我根本不认识作者。一.前言大家好,我是康世杰,大家可以叫我Jason。我和大家一样,都是搞技术出身,也未当过讲师,所以口材有限,如果讲得不好之处,还希望大家多多海含
阅读全文
摘要:破解教程资源:http://www.pediy.com/default.htmhttp://www.ee44.net/read-htm-tid-1326.html调试工具(Debuggers)OllyDbg调试器OllyDbg v1.1一个新的动态追踪工具,将IDA与结合起来的思想,Ring 3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。强烈推荐!OllyICE.exe 是在cao_cong汉化第二版基础上修改的。OLLYDBG.EXE 英文修改版(是在forgot的OLLYDBG修改本上改的)THEMIDA.EXE 这个文件是Ivanov帮忙给加了themi
阅读全文
摘要:本文介绍的是软件加密狗破解的一般思路和方法,大家可能奇怪,昨天刚刚介绍完“软件加密锁产品评测”,怎么今天就介绍加密狗破解知识?其实做为软件开发者,研究好软件加密的确很重要,不过也很有必要多了解一些关于加密狗解密和破解的知识,加密和破解就像矛和盾一样,对于解密知识了解的越多,那么编写的加密代码就越好,要知道加密永远都比解密要容易的多,只有知己知彼,方能百战百胜。 硬件加密锁,俗程“加密狗”,对于加密狗的破解大致可以分为三种方法,一种是通过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和加密狗之间的通讯。 硬件克隆复制主要是针对国产芯片的
阅读全文
摘要:本文将介绍软件加密锁的一些编程技巧,以及软件开发者将如何编写安全可靠的代码,如何对付各种各样的加密狗破解,编写加密程序时应该尽量避免的一些问题等等。以下是全文。 一、加密狗加密的基本原理 开发商程序通过调用硬件加密狗的接口模块对硬件加密狗操作,硬件加密狗响应该操作并通过接口模块将相应数据返回给开发商的应用程序。开发商的应用程序可以对返回值进行判定并采取相应的动作。如果返回无效的响应,表明没有正确的狗,开发商可以将应用程序终止运行,或者让应用程序以错误的方式执行。简要示意如下: 二、常用的解密方法 1、反汇编后静态分析: W32Dasm、IDA Pro 2、用调试工具跟踪动态分析:So
阅读全文
摘要:一、准备需要的软件:Ildasm.exe:用来将dll,exe编译为IL文件ilasm.exe:用来将IL文件编译回来dll或exe这2个工具装好VS就有了(VS2005的可以处理2003的,反过来不行)文本处理工具:UltraEdit :http://www.crsky.com/soft/1469.htmlEmEditorPro:http://www.crsky.com/soft/4278.html根据不同情况需要使用上面不同的工具其他工具:Reflector.exe :http://www.pediy.com/tools/dotnet.htmxenocode FOX: http://www
阅读全文

浙公网安备 33010602011771号