您的位置:首页 > 其它

WPF,Silverlight与XAML读书笔记第十四 - 独立存储&部署

2011-11-17 12:39 281 查看

说明:本系列基本上是《WPF揭秘》的读书笔记。在结构安排与文章内容上参照《WPF揭秘》的编排,对内容进行了总结并加入一些个人理解。



对于WPF应用程序,独立存储不像在Silverlight与Windows Phone 7中那么重要(对于这两者独立存储可能是唯一存储应用程序数据的方式),如果权限允许,WPF可以将数据保存在本地磁盘,局域网共享目录等地方。但是独立存储仍然是存储WPF程序数据一种很有吸引力的方式,这种方式适用于所有托管代码的运行环境。

独立存储是针对用户进行的,其将所需存储的数据存储于当前用户Documents目录下一个隐藏的文件夹中。独立存储主要进行两种操作,很明显一个是读取,另一个是写入,且两个操作分别应该在程序初始化与程序退出时进行。独立存储的操作由位于System.IO.IsolatedStorage命名空间的IsolatedStorageFile与IsolatedStorageFileStream来支持。


提示:

结合Visual Studio,WPF还可以使用一种同样存在于WinForm程序中的自定义信息存储方式,即Settings。Settings是将设置数据存储于应用程序配置文件中(一般为App.config),同时支持强类型访问。


对于WPF,Silverlight与Windows Phone 7,独立存储的使用方式基本一致,下面是示例代码(为了演示读取与写入该在什么时候进行,代码中含有调用独立存储技术的代码所处的事件处理函数(斜线表示),但注意不能保证3种框架中都有相应类型的事件方法,以下代码主要演示独立存储的使用!):

将数据写入独立存储:

protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);

IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly();
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream("myFile", FileMode.Create, f))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine(obj as string);
}
}

由独立存储加载数据:

protected override void OnInitialized(EventArgs e)
{
base.OnInitialized(e);

IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly();
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream("myFile", FileMode.OpenOrCreate, f))
using (StreamReader reader = new StreamReader(stream))
{
string line = reader.ReadLine();
while (line != null)
{
//Processing...
}
}
}


部署

对于WPF这种Windows客户端程序,有两种常见的部署方式。使用范围最广的一种是Windows Installer,通过Visual Studio的安装与部署类型的项目模版就可以建立Windows Installer安装项目。而且Windows Installer可以用于不限于WPF这类托管应用程序。另一种是随.Net Framework 2.0引入的最初主要用于WinForm的安装方式是ClickOnce部署(提示:也可用于有部分非托管代码的程序的部署,但非托管代码中如COM需不用注册),这种方式非常灵活,有点类似Web应用程序的发布。

这两种方式各自相对于另一个优势如下,Windows Installer较ClickOnce的优势:

支持自定义安装界面,显示EULA给用户。

对安装的文件进行控制。

在安装过程中,支持在自定义动做中添加自定义代码。

可以将程序集安装到GAC中

支持注册COM组件及文件关联

支持机器级安装(程序对于所有用户都可见)

支持通过光盘等媒介安装

ClickOnce相较Windows Installer具有的优势:

内建支持自动更新以及回滚操作。

提供两种安装模式:一种是通过Url来安装,类似Web一样的体验,安装完毕后程序运行,安装程序关闭,但不会在系统留下信息(安装程序会被浏览器缓存)。另一种类似Windows Installer安装,完毕后会在系统中生成快捷方式,在控制面板中添加卸载信息等。

ClickOnce安装的文件会被分开存放,不会影响其它程序,但也不能自定义注册(如文件关联等)。

安装过程中没有自定义代码,可以干净的卸载。

结合.NET代码访问安全(CAS),使用户可以运行不完全受信的程序。

本文完

参考:

《WPF揭秘》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐