开源项目中的一个 Silverlight 导航框架, 源代码已经发布到 GitHub, 地址为 https://github.com/beginor/AssemblyNavigation 特点 按需加载 Silverlight 组件 与 SL 内置实现了真正意义的按需加载, 主程序可以非常小, 最小不超过 200 KB, 只有当点击链接之后, 才会去服务端下载 对应的组件, 每个组件文件只会下载一次。 如果要下载的组件引用了其它第三方的组件, 也会自动下载第三方组件, 下载第这些 时会自动过滤掉重复的组件。 几乎零配置 使用这个导航框架几乎不需要在客户端或服务端做任何配置, 整... 阅读全文

在 .Net 开发中, 使用 Task 、 Task<T> 进行异步编程是非常方便的, 但是在处理 Task 产生的异常时, 需要注意一个问题, 比如下面的代码: static Task<int> TestAsync(int a, int b) { var tcs = new TaskCompletionSource<int>(); Task.Factory.StartNew(() => { if (a + b < 0) { tcs.TrySetException(new InvalidOperationException(... 阅读全文

.Net 传统异步编程概述 .NET Framework 提供以下两种执行 I/O 绑定和计算绑定异步操作的标准模式: 异步编程模型 (APM),在该模型中异步操作由一对 Begin/End 方法(如 FileStream.BeginRead 和 Stream.EndRead)表示。 基于事件的异步模式 (EAP),在该模式中异步操作由名为“操作名称Async”和“操作名称Completed”的方法/事件对(例如 WebClient.DownloadStringAsync 和 WebClient.DownloadStringCompleted)表示。 (EAP 是在 .NE... 阅读全文

原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳 森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你在本文中看到自己的身影。 从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。 我会持续更新这些经验,我可能还会有更多的感想,但就我这20年来看,我想下面这个列表中基本不需要增添额外的东西了。下面... 阅读全文

NHibernate 支持两种级别的缓存, 即一级缓存以及二级缓存。 一级缓存 一级缓存就是 ISession 缓存, 在 ISession 的生命周期内可用, 多个 ISession 之间不能共享缓存的对象, 通过 ISessionFactory 创建的 ISession 默认支持一级缓存, 不需要特殊的配置。 在 NHibernate 的参考文档中, 对 ISession 的描述如下: A single-threaded, short-lived object representing a conversation between the application and... 阅读全文

我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。 在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本知识。以下是我希望自己能在学校就学到的10件事。 0. 我们总是错的 开发人员有着相当大的自我意识,包含了一些其他的非技术性缺陷,这也正是为什么我们很难发现我们做错了什么。我看到过很多无休止的设计讨论,开发人员不断地发表自己的想法……呵呵!猜猜怎样……我们都错了,唯一的区别就是我们犯错的离谱程度不同。 理解... 阅读全文

很多公司为了节省预算而选择外包IT相关的工作。这看起来不错,因为你打一个电话就有人过来帮你解决IT问题,而不用雇佣一帮人坐在那里等待问题,也不用担心福利,员工管理等问题。但外包也往往带来很多问题,这里列出了七条。 1. 真实的开销 在你选择外包IT任务的时候,有很多开销你可能没有考虑到。例如,当你预约外包公司的时候,他们会把外派人员的交通时间也算上。更糟糕的是外包公司派来的人无法解决你的问题,需要先学习的时候,你是付钱还是不付钱呢?你当然愿意让你自己的员工学习,但是外包的人员学完就走了,你是不是很不爽? 2. 及时性 当你有一个紧急任务要处理的时候,你必须等外包公司派人过来。首先... 阅读全文

.Net Reflector 的免费版本即将过期, 新版本开始收费, 现在运行 .Net Reflector 将会提示: 不过,已经出现了几款免费的替代产品可以使用, 虽然不及 .Net Reflector 成熟, 但是已经可以使用了, 它们是: dotPeek JetBrains 公司出品, 与 ReSharper 师出同门。 ILSpy iCSharpCode 团队出品, 这个团队开发了著名的 C# IDE SharpDevelop 。 JustDecompile Telerik 公司出品, 相信很多人都知道该公司的 Rad 系列控件。 MonoDevelo... 阅读全文

使用 MonoTouch 做 iOS 开发, 由于 MonoDevelop 和 VS 2010 相比, 功能差的太多, 通常会相应的建立两个项目, 一个是 MonoDevelop 项目, 在 OSX 下使用, 一个是 VS 项目, 在 Windows 下使用, 在 Windows 系统下进行编码, 之后再在 OSX 下进行调试。 不过, 默认的 VS 项目在添加 MonoTouch 项目的 CS 源文件之后, 经常编译出错, 而且如果安装了 Resharper 之类的插件之话, 也会得到一大堆错误信息, 令人感觉非常恶心。 经过一番研究发现是因为 VS 不能引用 MonoTouch 的几... 阅读全文

准备工作如下 申请 GitHub 账户并准备代码库 安装 Jekyll 安装 Ruby 如果用的是 Windows 系统, 需要先安装 Ruby , 需要下载 1.9.3 版本的 Ruby , 并且还要安装 DevKit 。 如果是 Linux 或者 MAC 系统的话, 系统一般会自带 Ruby , 就不需要再安装 Ruby 了。 安装 Jekyll 引擎 打开一个命令行窗口, 输入下面的命令可以安装 Jekyll : gem update system gem install jekyll 如果提示有什么不兼容或者提示缺少什么库, 根据提示安装即可。 ... 阅读全文

本博客基于 Tabler CSS 框架, 采用 Jekyll 模板引擎, 使用 Markdown 语法编写。

博客源代码及文章内容采用 AS-IS 协议发布,转载时请 AS-IS 。