代码改变世界

【原】Silverlight内存泄漏原因、检测及解决(Memory Leak of Silverlight:Reason、Detection and Solving)

2013-03-10 17:29 by 拖鞋不脱, 1869 阅读, 收藏, 编辑
摘要: 在.Net 中,内存的管理和释放都由GC(Garbage Collection)管控,一般不需太多关注。但依然可能有内存泄漏(隐式内存泄漏)的情况出现,即一些早应结束它的生命周期的对象,直到程序结束才会被释放。具体到Silverlight中的表现,就是Silverlight所在浏览器进程占用的内存不断增长,直到崩溃或关闭浏览器。 In .Net world, GC manages the mem...阅读全文

【随】不好用的Ria Services

2012-04-09 10:58 by 拖鞋不脱, 2037 阅读, 收藏, 编辑
摘要: 最近研究Ria Services,之前抱有较高期望,现在比较失望。Ria Services似乎只是为发布Demo而提供的一套帮助快速开发的库,而不是一套完整的企业级的框架。它能很好的解决一些简单的增删改的问题,能应付小数据量下的Change Tracking,还提供了一套看似很丰富完备的Validation机制,那些教程、演示中都竭力展现了它快捷方便的一面,却有意无意的掩盖了其过于死板导致的各种缺点: 提交修改不接受参数 Ria Services里的所有增删改操作,最终都通过SubmitChange方法提交,但这么重要的方法却不支持参数传递。举一个例子:如果业务场景需要切换数据库,而服务端..阅读全文

【原】检测是否包含特定字符串的几种方法以及性能比较

2011-03-02 16:21 by 拖鞋不脱, 3324 阅读, 收藏, 编辑
摘要: 对于一串字符串"abfeuiowqjiqopeuwqiopewq",检测其中是否包含特定字符串"oweu",我常用的方法如下:if (row.IndexOf(pattern) > -1)以前从来没有想过这样有什么问题,但最近需要处理较大数据量的字符串,需要从各个方面考虑如何提高处理的效率,其中“检测是否包含特定字符串”也是重要的一环。几种方法在.Net 2.0之后,其实有更简洁的方法 row.Contains(pattern),直接返回布尔值。看起来这种方法更原生态一些,可能效率更高。此外,从正则表达式的角度来想,检测是否包含特定字符串其实是正则表阅读全文

【原】StreamInsight 浅入浅出(六)—— Debugger

2010-12-20 11:11 by 拖鞋不脱, 1423 阅读, 收藏, 编辑
摘要: 对于 StreamInsight 系统,由于对事件的处理查询都是异步进行的,输入输出很难进行时序上的对应监测,所以普通的基于代码的 Debug 和 Watch 显得不那么有意义。于是微软随 StreamInsight 系统提供了一个好用的图形化调试工具 StreamInsight Event Flow Debugger。 这一工具的主要特点在于: 图形化界面,足够直观。有点类似 SQL Server 的查询计划界面,将一个复杂的查询拆分成多个基本查询,并以列表形式展现每个查询中事件的状态与取值。 支持跟踪、回溯,可以查看一个事件的初始状态以及演变过程。 支持即时调试,也支持日志调试。日志调试能阅读全文

【原】StreamInsight 浅入浅出(五)—— LINQ 语法

2010-11-23 16:29 by 拖鞋不脱, 1923 阅读, 收藏, 编辑
摘要: 在上一篇文章中说过,在构建查询模板时,用的语言框架是 LINQ 语言框架,关于 LINQ 的基本概念,可以参看 MSDN http://msdn.microsoft.com/zh-cn/library/bb397926.aspx,总之就是采用了一种类似 SQL 的方便快捷的语法,用于对数据集进行查询、筛选等一系列操作的语言框架。 关键词 虽然 LINQ 语法总体上是类似的,但在不同的系统下,还...阅读全文

【原】StreamInsight 浅入浅出(四)—— 例子

2010-10-29 14:07 by 拖鞋不脱, 2159 阅读, 收藏, 编辑
摘要: 对于StreamInsight这种不是很线性的架构,最好还是直接拿出来一个例子,简单但完整的把流程走过一遍,更能看清所谓“流”、“事件”、“适配器”之类到底是什么东西,有什么关系。 官方例子下载地址:http://go.microsoft.com/fwlink/?LinkId=180356,这里就理一遍其中最简单的例子:TrafficJoinQuery 场景描述 这个例子的场景可以描述为:有...阅读全文

【原】StreamInsight 浅入浅出(三)—— 适配器

2010-09-08 13:56 by 拖鞋不脱, 1702 阅读, 收藏, 编辑
摘要: 适配器,顾名思义,就是将一种格式的数据转换成另一种格式符合操作需求的数据。在 StreamInsight 程序中,适配器起着举足轻重的作用,它们掌管着系统的入口和出口,控制着事件流的运动。没有适配器, StreamInsight 系统只是由查询模板支起来的空骨架,是适配器让整个系统运动起来的。 适配器的分类 适配器可以以多种方式分类: 1.以适配器功能分类: 输入适配器:将外部的数据转换成...阅读全文

【原】StreamInsight 浅入浅出(二)—— 流与事件

2010-09-06 14:52 by 拖鞋不脱, 2268 阅读, 收藏, 编辑
摘要: 传统数据库的基本单位是数据行,而在 StreamInsight 或者说 CEP 架构中,基本数据单位是事件(Event)。在传统数据库中,数据行集合成为数据表,而在 StreamInsight 中,相对应的集合就是流(Stream),所有的查询都是针对流的。其实流中的每个基本数据其实并不是一个完整的事件,只是包含了构成一个事件的基础信息,需要经过打包才能成为一个标准的事件。 流 在 Strea...阅读全文

【原】Silverlight 自定义控件模板管理

2010-08-24 23:40 by 拖鞋不脱, 2434 阅读, 收藏, 编辑
摘要: 在 Silverlight 里面建自定义控件(Templated Control),会在工程下生成一个Themes文件夹,并在其中包含一个generic.xaml 文件。这是一个 ResourceDictionary 文件,所有的自定义控件的默认样式(Default Style)都必须放在这里。 最原始的办法就是把所有样式都直接写在 generic.xaml 文件里,但如果自定义控件足够多,ge...阅读全文

【原】StreamInsight 浅入浅出(一)—— 基本概念

2010-08-23 20:01 by 拖鞋不脱, 3105 阅读, 收藏, 编辑
摘要: 最近才小小研究了下 StreamInsight 这一新鲜玩意儿,发现其中很多理念和之前接触的针对数据行的数据库操作有很大不同,鉴于相关资料实在不多,中文的更少(MSDN上的根本惨不忍读),摸索了半天也只能算是刚刚入门,写此系列文章和大家探讨。 简介 StreamInsight 是 SQL Server 2008 R2 中的新模块,它提供了复杂事件处理(CEP, Complex Event Pr...阅读全文

【原】小软件开发心得(二)——推广、测试

2010-07-25 19:07 by 拖鞋不脱, 2301 阅读, 收藏, 编辑
摘要: 正如上一篇文章最后所述,相比开发软件本身,推广软件技术含量似乎更高,而测试则是更耗体力的工作。 推广 让自己的软件被更多的人使用,这可能是很多开发者的心愿,而且这往往和经济利益什么的不搭界,纯粹是一种心理上的满足而已。 在做软件推广之前,一般都会启用一个对应的博客或者网站,所以推广软件其实等同于推广博客或者网站,所有SEO的经验也都适用。当然,正如SEO中常说的“内容为王”,这一切的基础是软...阅读全文

【原】小软件开发心得(一)——需求、开发

2010-07-24 13:20 by 拖鞋不脱, 5292 阅读, 收藏, 编辑
摘要: 前一阵做了一个小软件“豆瓣电台桌面版”,到现在已经基本告一段落。其实做这个小软件,一方面是研习研习自己最薄弱的Winform开发,顺便掌握了一点Windows API编程的基本知识,更主要的,是体验了一把独立开发软件的过程:从需求,到开发,到测试,到推广等等一系列的过程,倒是小有收获。 这是我第一次独立开发一个桌面小软件,身兼设计、开发、文档、测试、推广、客服数职,体会不可谓不深,但也不能说这些...阅读全文

【原】豆瓣电台桌面版插件开发——搜索插件

2010-06-10 21:30 by 拖鞋不脱, 1864 阅读, 收藏, 编辑
摘要: 豆瓣电台桌面版之所以在3.0之后采用了插件架构,一方面是为了练手,而更主要是为了方便。方便用户使用,方便我的开发和发布,更是要方便其他有需求的同学的扩展和二次开发。 观察豆瓣电台桌面版的插件管理界面,就可以发现事实上插件也分几种,目前包括“搜索插件”、“过滤插件”、“歌曲处理”、“历史记录”等几种插件。其中“搜索插件”最为简单,目前接口也比较完善,而且可能用户的需求差异也会比较大,所以先放出“搜...阅读全文

【原】豆瓣电台桌面版——Win7任务栏支持+托盘+快捷键+历史记录

2010-04-11 02:20 by 拖鞋不脱, 10398 阅读, 收藏, 编辑
摘要: 主要参考了豆瓣上icyflash的代码http://icyflash.codeplex.com/,整合了目前豆瓣上电台的独立程序的大部分功能。下载地址豆瓣电台桌面版下载地址配置要求提供了“Win7版”和“非Win7版”两个版本。Win7版需要.Net Framework 3.5(Win7已经自带了),非Win7需要.Net Framework 2.0...阅读全文

【原】Sql Server性能优化——Slide Window

2010-03-29 19:14 by 拖鞋不脱, 2739 阅读, 收藏, 编辑
摘要: 虽然对数据库进行分区本身就能提高查询的性能,结合压缩,也能减少每次查询的IO。但如果数据持续增长,过于久远的历史数据就成了一个包袱,它们从来不在查询结果中出现,却或多或少的影响着每次查询的时间,成了一个挥之不去的阴影。此外,由于一个分区表的分区是有上限的(在2005中这一上限是1000),我们也并不能在一张表上一直分区下去。所以在这种情况下,我们一般需要同时拥有两张表,一张保存了最近的数据,用来应...阅读全文

【原】Sql Server性能优化——Partition(管理分区)

2010-03-09 10:47 by 拖鞋不脱, 3291 阅读, 收藏, 编辑
摘要: 正如上一篇文章SqlServer性能优化——Partition(创建分区)中所述,分区并不是一个一劳永逸的操作,对一张表做好分区仅仅是开始,接下来可能需要频繁的变更分区,管理分区。 在企业管理器中,虽然有“管理分区”的菜单,里面的内容却可能与你的预想不同,这里并没有提供直接对分区进行操作的方法,所以一些普通的操作,比如“增加分区”、“删除分区”之类的操作就需要通过脚本实现了。 增加分区(Spl...阅读全文

【随】Silverlight请求服务的缓存文件问题

2010-03-06 17:23 by 拖鞋不脱, 1024 阅读, 收藏, 编辑
摘要: 问题描述 用Silverlight和WCF做上传图片,结果图片上传一半就报了错,然后屏幕右下角弹出“磁盘空间不足”的警告,发现C盘竟然只剩下十几兆的空间了。刷新一下页面,C盘空间又恢复了原来的大小(1G左右)。 问题原因 经过一番检查,发现Silverlight在调用Web服务的时候,每个请求都会在系统盘生成临时文件(在Win7下,位置是C:\Users\用户名\AppData\Local\...阅读全文

【原】Sql Server性能优化——Partition(创建分区)

2010-02-23 14:54 by 拖鞋不脱, 10561 阅读, 收藏, 编辑
摘要: 和压缩(Compression)相比,数据库分区(Partition)的操作更为复杂繁琐。而且与Compression一次操作,终身保持不同,分区是一项需要长期维护周期变更的操作。 分区的意义在于将大数据从物理上切割为几个相互独立的小部分,从而在查询时只取出其中一个或几个分区,减少影响的数据;另外对于置于不同文件组的分区,并行查询的性能也要高于对整个表的查询性能。 事实上,在SQL Serve...阅读全文

【原】Sql Server性能优化——Compression

2010-01-19 17:13 by 拖鞋不脱, 3618 阅读, 收藏, 编辑
摘要: 执行SQL查询时,主要的几个瓶颈在于:CPU运算速度、内存缓存区大小、磁盘IO速度。而对于大数据量数据的查询,其瓶颈则一般集中于磁盘IO,以及内存缓存。那么为了提高SQL查询的效率,一方面我们需要考虑尽量减少查询设计的数据条目数——建立索引,设立分区;另一方面,我们也可以考虑切实减少数据表物理大小,从而减少IO大小。 在SQL Server 2008中,最新提供了一项功能“压缩(Compress...阅读全文

【译】VS2010中C#的增强

2009-10-11 14:46 by 拖鞋不脱, 691 阅读, 收藏, 编辑
摘要: 原文:VB and C# enhancements in VS 2010   选择一种开发语言是程序员的个人选择,就像挑选一种冰激凌口味——有许多不错的选择,但你最喜欢的口味则是一个个人偏好的问题。 在Visual Studio 2010中,我们对两种最流行的语言:Visual Basic和C#做了一些加强,提供给程序员——无论他们偏好哪种语言——所有的工具,帮助他们去完成一个完美...阅读全文