【kooboo分析】 关于配置数据连接
这个系统很值得学习其中的很多发光点,看了很久的代码,如果不写出来些东西,的确是对不起开发者的汗水。
当然,从这里起有些偏颇,先从点开始吧。 然后再从整体架构来说吧。
其中数据方面,作者考虑的的确是细腻,如果使用了配置文件,就按配置文件走,如果没有配置文件,就按默认配置文件走,如果默认配置文件也没有,就使用SQLExPress。
其实在项目中,这样做是没有太大必要的,但是,这是对于一个开源软件,对于很多懒得下载,附加数据的二次开发者来说,的确是方便的很。
下面上代码片段。
[DataContract]
public class SiteOnSQLServerSettings
{
[System.Xml.Serialization.XmlIgnoreAttribute]
private static SiteOnSQLServerSettings instance = null;
static SiteOnSQLServerSettings()
{
string settingFile = GetSettingFile();
if (File.Exists(settingFile))
{
instance = DataContractSerializationHelper.Deserialize<SiteOnSQLServerSettings>(settingFile);
}
else
{
instance = new SiteOnSQLServerSettings()
{
ConnectionString = "Server=.\\SQLExpress;Database=Kooboo_CMS; Trusted_Connection=Yes;"
};
Save(instance);
}
}
public static void Save(SiteOnSQLServerSettings instance)
{
string settingFile = GetSettingFile();
DataContractSerializationHelper.Serialize(instance, settingFile);
}
private static string GetSettingFile()
{
return Path.Combine(Kooboo.Settings.BinDirectory, "SiteOnSQLServerSettings.config");
}
public static SiteOnSQLServerSettings Instance
{
get
{
return instance;
}
set
{
instance = value;
Save(instance);
}
}
[DataMember]
public string ConnectionString { get; set; }
}