2011年12月30日

Castle.DynamicProxy的使用

Castle是针对.NET平台下的一个非常优秀的开源项目,从数据访问框架 ORM到依赖注入容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。

    其中的Castle.DynamicProxy可以实现动态代理的功能 

posted @ 2011-12-30 19:12 王者归来 阅读(64) 评论(0) 编辑

业务逻辑工具包 BLToolkit

Business Logic Toolkit 提供了一组常用的组件用于简化 .NET 应用的开发。BLToolkit提供了源代码,所以对其进行扩展和自定义。BLToolkit采用C#开发,兼容 .NET Frameworks 3.5 and 4.0, Silverlight 4, 和Mono。

主要功能包括:

数据库:

对象处理:

运行期代码生成:

官方网站:http://www.bltoolkit.net/Home.ashx

posted @ 2011-12-30 19:03 王者归来 阅读(84) 评论(0) 编辑

2011年11月24日

Qizmt:MySpace的开源MapReduce框架

MapReduce是由Google提出并实现的编程模型,可利用大量机器所组成的集群处理或生成海量数据集。此外,由Yahoo!公司资助的Hadoop项目则是MapReduce的开源实现,在Facebook等大型应用中得到了广泛使用。而现在,MySpace也将其MapReduce框架Qizmt开源了,可用于在大规模Windows集群上开发或运行分布式计算程序。

MySpace Qizmt可用于各种分布式计算场景,例如:

  • 数据挖掘
  • 数据分析
  • 媒体处理
  • 内容索引

Qizmt的主要功能有:

  • 使用C#快速开发MapReduce任务。
  • 简单的“自己动手(Do-It-Yourself)”安装程序
  • 内置集成开发环境/调试器
    • 自动将堆分配标为红色
    • MapReduce任务的快速开发提供自动完成功能
    • 在目标集群中对MapReduce任务进行单步调试
  • 可在集群中的任意机器上:
    • 编辑任务
    • 调试任务
    • 执行任务
    • 管理任务
  • MapReduce任务提供“差值交换(Delta-only exchange)”选项
  • 可配置的数据冗余或机器级别的故障转移
  • 可轻易为集群增加机器以提高处理能力
  • 集群程序集缓存(Cluster Assembly Cache),用于将.NET dll释放为MapReduce任务
  • 三种任务类型:
    • MapReduce - 用于对大规模数据进行基于集合的处理
    • 远程 - 用于不适合MapReduce模型的问题
    • 本地:- 用于组织一系列MapReduce和远程任务
  • 执行MapReduce过程中的三种数据交换方式
    • 排序 - 在集群中对键/值对进行排序
    • 分组 - 不将键/值对进行排序,而将它们发送到同一个归并器(reducer)中
    • 散列排序 - 排序随机数据的超快方式

MySpace Qizmt项目现已发布于Google Code,支持装有.NET 3.5 SP1的Windows 2003 Server,Windows 2008 Server及Windows Vista操作系统。

posted @ 2011-11-24 10:22 王者归来 阅读(43) 评论(0) 编辑

2009年8月11日

SQLite移植到了.NET

Noah Hart将SQLite3移植到了C#上。虽然此次移植版本比原始版本要慢,但是此项目可以让.NET托管项目在不使用任何P/Invoke和不安全代码的情况下使用SQLite。

C#-SQLite被寄放在Google Code上,是从SQLite 3.6.16到C#的完全移植,代码版权使用MIT License。C#-SQLite通过了超过3万个测试用例,只有9个没有通过。编译好的二进制exe文件只有528KB,和原始版本的506KB差不多。性能方面要比原始的C版本差一些,但是Hart说他还没有对代码做任何性能优化,而且他认为目前的性能还可以接受。所有的数据单位都是行/秒:

Test C#-SQLite SQLite
Insert 300K 1300K
Select 1500K 8450K
Update 60K 300K
Delete 250K 700K

Cory Nelson解释了为什么移植SQLite要比其它方式更好:避免P/Invoke带来的“速度超慢和无法移植”问题。而且C代码“充斥着goto语句,会使优化变得十分困难”。

很多产品-如Adobe AIR-都包含和使用了SQLite。或许C#-SQLite最能发挥的地方是Silverlight项目,Tim Anderson指出

可以在微软Silverlight中作为本地数据库使用,保存在isolated storage中。

……Silverlight不允许P/Invoke和不安全代码,由于原始版本的SQLite中使用了大量的指针,即使只有很少的P/Invoke,不安全的代码却一定有很多。

虽然Silverlight是实现在.NET Framework上的,却不包含System.Data命名空间,但包含了System.Linq。

C#-SQLite并不是SQLite的官方版本,Hart也与SQLite.org没有任何关系。SQLite的创造者和商标所有人Richard Hipp,在一开始并不同意将“SQLite”包含在项目名中,但是后来同意使用C#-SQLite。

除了这个项目,还有其它一些托管数据库,比如:Perstdb4oSilverlight DatabaseSystem.Data.SQLite

查看英文原文:SQLite Has Been Ported to .NET

posted @ 2009-08-11 17:05 王者归来 阅读(275) 评论(0) 编辑

2009年8月4日

SharpZipLib for SilverLight 0.85.5

SharpZipLib 是一个使用C#编写的免费的Zip操作类库,可以利用它对 ZIP 等多种格式进行压缩与解压,是目前为止.net平台上最好的Zip压缩/解压缩库。

SharpZipLib官方并没有正式推出SilverLight版,网上一直流传着几个第三方修改过的SilverLight版,但是版本较早,一直都没有更新,最近因项目需要,我在最新版0.85.5的基础上建立了一个SilverLight版的SharpZipLib(删除了Tar部分).



posted @ 2009-08-04 18:44 王者归来 阅读(429) 评论(4) 编辑

2009年4月26日

浅谈 Google Skia 图形处理引擎

摘要: 转载自:http://blog.linux.org.tw/~jserv/archives/002095.html 2008 年九月,Google 宣布以改良过的 WebKit 为核心的网络浏览器 Chrome,揭露了众多新特征,比方说崭新的 [V8] JavaScript (ECMAscript) 执行引擎,或许因为太亮眼,掩蔽了所使用另一个开放原始码项目 [skia], 后者是个 2D 向量图形...阅读全文

posted @ 2009-04-26 11:44 王者归来 阅读(4027) 评论(5) 编辑

2008年10月30日

Google的矢量图形引擎skia开源了.

摘要: 喜欢矢量图形开发的朋友有福了.借着Chrome的东风,Google在2005收购的开源图形引擎Skia终于开源了.Skia大约有8万行左右的代码,该代码是基于Apache 2.0许可证释放的.支持多种平台,并且是google最近开源的手机操作系统Android 的基础代码.具说不弱于开源的图形引擎Cairo,并且接口相当简单.最近Google终于将Skia当做一个独立的开源项目在Google Co...阅读全文

posted @ 2008-10-30 16:53 王者归来 阅读(6513) 评论(7) 编辑

2008年8月1日

Google Tray - 谷歌客户端 0.2.2

摘要: Google自已的浏览器Chrome出来了,可以实现类似这个软件的功能,所以现在决定暂停该软件的更新。    看了小众软件上面的Google Calendar Tray介绍,觉得比较好用,但是只能显示日历显得有点单薄,并且一个小软件需要安装几十M的.net framework,所以我用delphi参照这个软件写了一个,同时支持集成Google的gmail、日历、阅读器...阅读全文

posted @ 2008-08-01 11:47 王者归来 阅读(4185) 评论(22) 编辑