多数情况下, NHibernate 提供的 HQL、 Linq 以及条件查询足够用了, 但是在某些情况下, 需要使用 SqlQuery, 使用 SqlQuery 可以查询标量(简单类型), 查询单表实体类, 关联表查询。 查询标量(简单类型) var db = this.ObjectContainer.Resolve<NorthwindContext>(); var sqlQuery = db.Session.CreateSQLQuery("select count(0) as c from categories"); sqlQuery.AddScalar("c", N... 阅读全文

INotifyPropertyChanged 接口是 WPF/Silverlight 开发中非常重要的接口, 它构成了 ViewModel 的基础, 数据绑定基本上都需要这个接口。 所以, 对它的实现也显得非常重要, 下面接贴出我知道的几种实现方式, 希望能起到抛砖引玉的作用。 一般的实现方式 这是一种再普通不过的实现方式, 代码如下: public class NotifyPropertyChanged : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; ... 阅读全文

堆与栈(Heap and Stack) 堆相对比较容易理解, 就是计算机剩余的内存, 可以通过 malloc 函数访问获取堆内存。 每次调用 malloc , 操作系统使用内部函数为你注册分配一块内存, 并返回指向它的指针。 当你使用完之后, 要用 free 函数将它返回给操作系统以便其它程序可以使用。 如果没有这么做的话, 将会导致你的程序出现内存泄漏。 栈是一个特殊的内存区域, 存储函数创建的本地变量。 它的工作原理是每个函数的参数被压入堆栈,并在函数内使用。 这是真正的栈道数据结构, 后进先出。 对于本地变量也是相同的。 栈的好处是简单, 当函数退出时, C 编译器将这些变量... 阅读全文

多数情况下 NHibernate 使用配置文件进行配置, 但是我们也可以使用代码进行配置, 步骤如下: 1、 创建一个 Configuration using Nhibernate.cfg; var config = new Configuration() .SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider") .SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver") ... 阅读全文

Android 系统上添加虚拟内存已经不是什么新鲜事了, 很多手机都支持, 通常都是将虚拟内存添加到 SD 卡上, 不过由于 SD 卡的的读写速度有速度限制, 再加上如果不是用高速的 SD 卡的话, 将虚拟内存添加到 SD 卡上的效果就不是很明显了, 其实还有一个地方可以添加虚拟内存, 那就是 /data 目录。 为什么把虚拟内存添加到 /data 目录呢, 原因如下: 1、 /data 目录有足够的的剩余空间容纳虚拟内存 几乎所有的 Android 手机都支持 App2SD 或者 App2Ext , 将应用安装到 SD 卡之后, /data 目录剩余的空间比较大, 是足以容纳下虚... 阅读全文

Android 4.0 系统定义了一系列的高效导航方式 (Effective Navigation), 主要包括标签、下拉列表、以及向上和返回等, 本文介绍如何用 Mono for Android 实现这些的导航方式。 准备 Android 4.0 ICS 项目 新建 Android ICS 项目 打开 MonoDevelop , 新建一个 Mono for Android 项目, 并在项目的属性页将 Target Framework 设置为 Android 4.0.3 (Ice Cream Sandwich) , 如下图所示: 添加 Mono.Android.Support... 阅读全文

Windows 8 的窗口界面已经不再有半透明的 Aero 效果, 但是窗口的边框还是那么宽,在这个流行窄边框的时代, 显得是那么的格格不入, 本文介绍通过修改注册表调整 Windows 8 的窗口宽度。 先看看 Windows 8 默认的边框, 很宽的, 和 Windows 7 的一样宽, 但是没有 Areo 效果, 总觉得有点儿难看, 如下图: 按下快捷键 Win + R , 输入 regedit , 打开注册表编辑器, 找到 HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics, 如下图所示: 需要修改这两个键 B... 阅读全文

在 Windows 系统上一直使用 ImDisk 创建内存盘作为缓存, 将系统临时目录、 浏览器缓存等设置到内存盘, 这样做的好处是很明显的: 1、 内存盘不用定时清理, 系统重启就自动清空 2、 读写内存的速度是非常快的, 程序运行速度也会加快很多 现在转到 Mac OS X 平台, 当然也要使用内存盘了, 在 OS X 系统上, 创建和使用内存盘比较容易的, 而且不需要借助第三方软件, 只是设置稍微繁琐一些, 在 OS X 系统上创建和使用内存盘的步骤如下: 1、 打开 AppleScript Editor(找不到的可以直接用 Spotlight 搜索); 2、 输入下面的脚... 阅读全文

介绍 Mono for Android 平台下 ListActivity 的使用, 以及如何进行自定义 ListActivity 的 Adapter。 使用 ListActivity 最简单的方式 ListActivity 是 android 开发中很常用的布局组件, 通常用于显示可以滚动的列表项。 以 ArrayAdapter<T> 为例, 最简单的使用方法如下: 1、 新建一个 Activity , 名称为 MyListActivity , 并修改其基类为 Android.App.ListActivity, 代码如下: [Activity (Label = "My... 阅读全文

我没有时间 评论 2012-11-15

你是否有过想干点儿什么的想法?去开发一个项目?想实现一个目标? 如果是像 Malcolm Gladwell 和 Peter Norvig 告诉我们的,精通一个事情需要花去数千小时、数年的时间,你的梦想和雄心很容易就会熄灭。 当终点线看起来如此远时,你是如何让自己摆脱惰性、开始行动的? 我想写一本书,但我没有时间把这么多的工作做完。 但你有把书的内容大纲列出来的时间吧?今天你有写出 500 字的时间吧?本周给五位可能对你的书感兴趣的博客主发邮件,让他们点评你的书,这能做到吧? Nathan Barry,爱达荷州一个普通的人,有妻子和孩子,挤时间写出了他百万字的书。 ... 阅读全文

Android 系统用栈的形式管理 Activity , 当新的 Activity 被创建是, 会被放置到栈顶, 这个 Activity 会进入到运行状态, 而前一个 Activity 则会被压入栈, 直到新的 Activity 退出, 否则不会出现在前台。 单个 Activity 的生命周期状态以及生命周期方法 根据 Android 文档, 每一个 Activity 都有四个状态, 它们分别是: 当 Activity 位于屏幕的最前面(栈顶),称之为 运行(活动)状态: ; 当 Activity 失去焦点, 但是依旧可见, 比如被非全屏的对话框遮住部分, 称之为 暂停状... 阅读全文

Mono for Android 初体验, 学习怎么使用 Mono for Anrdoid 创建 android 应用, 如何使用 Intent 启动 Activity , 如何在 Activity 之间传递参数。 准备开发环境 下载并安装 Mono for Android 在 OSX 系统下准备 Mono for Android 开发环境时比较容易的, 只要去 Xamarin 下载一个在线安装程序, 安装程序会自动下载并安装所有的文件, 甚至包括 JDK、 Android SDK 等, 没什么好说的, 一句话, 很简单。 配置 Android 模拟器 启动 MonoDevel... 阅读全文