背景
  我经常应用C#开发一些小的桌面程序,这些桌面程序往往有以下几个特点:
  程序比较小,开发周期很短。
  程序的数据量不大,多数情况下不超过1万行记录。
  对程序的性能要求不高。
  程序并发很少或者基本没有。
  尽量程序部署简单。
  因为C#程序很多情况下都是CURD,结合上面的需求,我一直考虑做一个简单的框架,以达到快速开发的目的。应用XML序列化(XmlSerializer)功能,我开发了一个简单符合上面要求的底层框架。
  框架思路
  我准备用XML文件作为数据存储,为了保证数据同步,同时在内存中存储一份数据,每次操作时,都是操作内存中的数据,操作完之后再同步到数据库中。
  另外,为了保证框架的易用性,我把底层实现写成了一个泛型类,所有操作类继承此泛型类。
  框架功能描述
  框架主要包括以下几个功能:
  应用XML文件作为数据库,不依赖其他数据库系统。
  对外提供基本的CURD功能。
  减少配置,做到0配置。
  数据会存储在运行目录下面的data目录下,数据文件可以由开发者指定,也可以采用默认数据文件。
  框架应用示例
  如何应用框架进行开发呢?我把框架打成了一个DLL文件,开发项目时,需要引用这个DLL。开发者每定义一个实体类,需要对应定义一个操作类,此操作类需要继承我的泛型操作类。
  注意:实体类需要有一个string类型的ID,我一般用GUID
  实体类示例代码:

 

namespace zDash
{
public class CodeEntity
{
public string Id { get; set; }
public string Key { get; set; }
public string Lang { get; set; }
public byte[] RealContent { get; set; }
}
}

 

  我把操作类写成了单例模式,操作类示例代码:

 

namespace zDash
{
public class CodeBll : Wisdombud.xmldb.BaseXmlBll<CodeEntity>
{
private static CodeBll inst = new CodeBll();
private CodeBll() { }
public static CodeBll getInst()
{
return inst;
}
}
}

 

  如何应用:
  CodeBll.getInst().Insert(entity);
  XML文件的内容