摘要:
Windows开发的内功和招式最近一个月笔者休了大约两周的假期,期间没有学习新的开发技术,也没有去游山玩水,而是对自己的知识结构和Windows开发本身进行了一个深入的思考,收获颇多,在这里希望和大家共同分享一下。如果把Windows开发比作练武,那么就一定有内功和招式,二者相依相存,没有内功的招式只能算是花架子,中看不中用。那么,什么算是内功呢?首先,我想说的是系统模型和知识,整天在windows上做开发,对windows的了解够么?可能很多人说,我是做.net开发的,了解那么多没用,.net都做好了。我同意,人各有志嘛,但是我想问个问题,.net写的大型客户端有时候会突然卡一下,你能告诉我
阅读全文
posted @ 2012-09-22 20:28
HackerVirus
阅读(127)
推荐(0)
摘要:
工欲善其事,必先利其器,上篇简单介绍了怎样使用Astyle进行代码格式化,使编写的代码具有一致的风格。今天简单介绍下怎样使用StyleCop对原代码进行审查,看编写的代码是否遵循设计规范、.Net约定和一些贯用法等。保证代码的一致性,可读性等等。在此之前,先简单介绍下FxCop(起初只是微软内部使用的工具),一个分析托管程序集,检测代码的总体正确性的工具,告诉用户哪些地方不符合设计规范。他使用的评估规则已经发展了多年,凝聚了顶尖.Net框架开发人员的知识和技术。但是FxCop是基于托管代码分析的,即编译后的程序集。今天我们介绍的StyleCop同样是用来检查代码是否符合设计规范的,它是基于原代
阅读全文
posted @ 2012-09-22 20:21
HackerVirus
阅读(305)
推荐(0)
摘要:
本实例将使用System.Media.SoundPlayer类播放声音,所以先准备PCM 波形文件的声音文件。在源程序的下载包里有提供。本实例选用ringin.wav 文件。一、添加声音资源使用Visual Studio新建一个WinForm项目,将窗体命名为MainForm。在“解决方案资源管理器”面板里,打开Properties文件夹,双击资源文件“Resources.resx”。在打开的页面点击“添加资源”右边的箭头后选择“添加现有文件...”。在弹出对话框中选择声音文件。这样就把声音资源文件添加到程序集了。二、播放声音文件接下来就是在窗体里播放刚才添加的声音文件了。首先在窗体类里,定义
阅读全文
posted @ 2012-09-21 23:07
HackerVirus
阅读(142)
推荐(0)
摘要:
编程不能死记硬背,要靠多实践操作 如今的网络越来越发达,分享一个文件是如此的简单。特别是有了电驴、迅雷这样的下载软件就更加如虎添翼了,想从网上下载一个几个G大小的文件,真是不费吹灰之力。好,废话太多了,直接进入咱们今天的主题吧。 要实现像迅雷一样的多线程下载,核心问题是要将多线程的概念以及怎么实现的问题弄清。 当然,本文技术含量很低,大牛请直接绕道。 多线程是相对单线程来说的,具体可以参考百度百科里的解释:http://baike.baidu.com/view/65706.htm 每个程序运行都有一个最基本的主线程,用于处理界面绘画,人机交互,后台处理等过程,因此如果是在单线程程序里操作打量耗
阅读全文
posted @ 2012-09-21 22:58
HackerVirus
阅读(187)
推荐(0)
摘要:
在前两篇文章中,我们了解到了ASP.NET Web Forms 4.5四个新特性:强类型数据控件和Bundling、针对HTML5的更新和Unobtrusive Validation。在介绍强类型控件的时候只是简单介绍了下它具有ItemType的属性,可以设置强类型值进行绑定,如果只是引入了这个属性,那么有点像语法糖,没什么实际意义。其实许多园友也发现了在ASP.NET Web Forms 4.5中引入了许多MVC的特性,而Model Binding则是更加像MVC的一个特性了。Model Binding如果用过ObjectDataSource控件,肯定对其SelectMethod有印象,在A
阅读全文
posted @ 2012-09-21 22:57
HackerVirus
阅读(109)
推荐(0)
摘要:
list 是 Python 中使用最频繁的数据类型, 标准库里面有丰富的函数可以使用。不过,如果把多维列表转换成一维列表(不知道这种需求多不多),还真不容易找到好用的函数,要知道Ruby、Mathematica、Groovy中可是有flatten的啊。如果列表是维度少的、规则的,还算好办例如:li=[[1,2],[3,4],[5,6]]print [j for i in li for j in i]#orfrom itertools import chainprint list(chain(*li))#ora=[[1,2],[3,4],[5,6]]t=[][t.extend(i) for i
阅读全文
posted @ 2012-09-21 17:55
HackerVirus
阅读(222)
推荐(0)
摘要:
此功能诸多代码来源于国外的网站和某些项目,地址为http://www.codeproject.com/Articles/30721/WPF-TreeListView-Control我只是站在别人的楼顶,顶着风,尿了一把。废话不多说,直接上效果图,一幕了然:接下来上的就是我这个代码的整体结构了。 TreeListViewModel是CodeProject里面的人写的,为项目框架核心。TreeListViewWpfApplication为TreeListView的主要实现,下面我主要介绍怎么实现(TreeListViewModel里面代码能力有限,目前为止也没看出个什么东西)先给大家介绍Mode.
阅读全文
posted @ 2012-09-21 15:48
HackerVirus
阅读(245)
推荐(1)
摘要:
最近写了一个关于 铁道部购票系统的若干文章铁道部新客票系统的设计(一)铁道部新客票系统的设计(二)铁道部新客票系统的设计(三)正好遇到一个博友,咨询了一个问题,这个问题正好可以作为分布式系统的数据一致性的简单例子,当然,这个只是比较简单的情况现在先抛出问题,假设有一个主数据中心在北京M,然后有成都A,上海B两个地方数据中心,现在的问题是,假设成都上海各自的数据中心有记录变更,需要先同步到主数据中心,主数据中心更新完成之后,在把最新的数据分发到上海,成都的地方数据中心A,地方数据中心更新数据,保持和主数据中心一致性(数据库结构完全一致)。数据更新的消息是通过一台中心的MQ进行转发。先把问题简单化
阅读全文
posted @ 2012-09-21 15:40
HackerVirus
阅读(165)
推荐(0)
摘要:
在 ASP.NET WebForms/MVC 中利用 HttpModule 添加全局站点统计(CNZZ、百度统计、Google Analytics等)脚本2012-09-21 13:38 by 自由的生活, 218 阅读,0评论,收藏,编辑在面向大众类型的网站应用中,我们常常需要知道网站的访问情况,特别是站长。就目前来说,有很多网站可以为你提供统计服务,比如:CNZZ、百度统计、Google Analytics等等,而你只需要在你的网站的每个页面的底部添加一些 Javascript 脚本就可以了,比如:<!-- 百度统计 --><script type="text/
阅读全文
posted @ 2012-09-21 14:59
HackerVirus
阅读(259)
推荐(1)
摘要:
对于用户定义表类型,它实际上并不能提高性能,会觉得它看起来高效的原因,是因为在程序中使用这个种类型的参数的时候,可以把 DataTable 做为参数直接传递给存储过程(看起来非常简洁) 但实际上去Trace其行为,会发现其实它相当于把 DataTable 的值包装成了 insert 语句,而不是真正的把数据做为块传给存储过程DBA这边的建议是:1.对于少量数据,我们建议拼成 xml ,存储过程里面做解析(附件有一个开发那边提供的测试,对于少量数据,不足1万条,xml解析的性能并不差)2.对于大量数据,我们建立使用SqlBulkInsert 来处理using System;using Syste
阅读全文
posted @ 2012-09-21 14:22
HackerVirus
阅读(172)
推荐(0)