走出“浏览器”的Web应用程序

走出“浏览器”的Web应用程序

         Silverlight 3.0 应用程序可以脱离浏览器而独立运行,这是一个很值得关注的改变。这意味着浏览器不再是 Web 应用程序客户端唯一的选择,同时,这也大大简化了 Silverlight 应用程序在手机等智能移动设备上的开发,提升了 Silverlight 应用程序的运行性能,并且可以充分利用客户端硬件所拥有的处理能力。
         本文介绍如何使用 VS2010 BETA2 来开发可独立于浏览器的 Silverlight 应用程序。

1 Silverlight应用程序独立运行

使用 Visual Studio 2010 ,可以很方便地将一个现有的 Silverlight 应用程序转换为独立运行。
         具体操作很简单,在 Visual Studio 2010 中打开 Silverlight 项目的属性页,在其 Silverlight 选项卡中选中“ Enable running application out of the browser ”选项,如下图所示:
 
 
 
点击右部的“ Out-of-Browser Settings… ”,可以设置更多的选项:
 
 
         可以看到,在这个对话窗口中可以设置图标,窗体大小等一些参数。最有趣的是左下角的两个参数:
 
l  Use GPU Acceleration: 使用本机显卡的硬件加速,当 Silverlight 应用程序使用了大量的动画时,选中此项可以提升运行速度。之所以可以做到这点,是由于 Silverlight 应用程序是在客户端直接执行的, Silverlight 运行时可以直接调用本地硬件所提供的计算能力。
 
l  Show install menu 当选中此项时,在浏览器中右击,会在右键菜单中多一项命令:
 
    XXX 安装到此计算机
 
执行此命令,将出现一个向导:
 
 
        
 
单击确定即可安装。
 
多懂一点:
 
       保存与执行下载的Silverlight应用程序文件
      
     默认情况下,下载的Silverlight程序文件放置于当前登录用户的个人数据文件夹下,请在安装Windows的驱动器上查找以下文件夹,就可以发现下载的Silverlight程序文件放在此文件夹的子文件夹(比如“40171400.localhost”)里。
 
\Users\ 登录用户名 \AppData\LocalLow\Microsoft\Silverlight\OutOfBrowser\ 40171400.localhost
 
       上面的数字是由Silverlight安装程序随机生成的,用于区分本机所安装的Silverlight应用程序。
       Silverlight 应用程序的执行是由一个名为sllauncher.exe的程序负责的,它将接收一个保存了Silverlight应用程序文件的文件夹名。
 
\Program Files\Microsoft Silverlight\sllauncher.exe 40171400.localhost
 
    有趣的是,安装到本地的 Silverlight 应用程序不会出现的控制面板“添加删除程序”的列表中,如果要删除程序,需要先运行它,然后右击,从弹出菜单中选择“删除此应用程序”命令。
   
    要删除 Silverlight 应用程序,需要完成两个步骤:
(1) 删除保存于用户文件夹中的程序文件
(2) 删除快捷方式。

2 编程控制Silverlight应用程序的安装过程

我们可以在 Silverlight 应用程序中使用代码来直接启动安装过程,这需要调用 Application 对象的 Install() 方法。
 
App.Current.Install();
 
上面代码中的 App.Current 引用当前的 Silverlight Application 对象实例。
 
注意:
       如果没有给Silverlight项目设定“Enable running application out of the browser”选项,直接调用Install()方法强制安装Silverlight应用程序到本地,则Silverlight插件将会引发一个ManagedRuntimeError,应用程序将会被强制结束。
另外,如果本Silverlight应用程序已经安装到本地了,再次调用Install()方法会引发一个InvalidOperationException异常。
 
应用程序可以通过检测一下 Aplication 对象的 InstallState 属性来避免二次安装。
 
if (App.Current.InstallState == InstallState.NotInstalled)
                App.Current.Install();
            else
                tbInfo.Text = " 本应用程序已经安装,谢谢使用! ";
 
       另外, Aplication 对象提供了一个 InstallStateChanged 事件用于跟踪安装状态的改变,可以编写代码响应此事件,通知用户安装完成:
 
// 在页面构造函数中挂接 InstallStateChanged 事件
App.Current.InstallStateChanged +=
new EventHandler(Current_InstallStateChanged);
 
以下是事件响应代码:
        
void Current_InstallStateChanged(object sender, EventArgs e)
{
     if (App.Current.InstallState == InstallState.Installed)
          tbInfo.Text = " 安装完成,您可以直接在桌面或开始菜单中运行此应用程序 ";
}
 
       另外, Aplication 对象还有一个 IsRunningOutOfBrowser 属性用于检测 Silverlight 应用程序是否运行于浏览器环境内。
       示例程序项目 OutOfBrowserSilverlightApplication 综合了上述编程技巧,展示了一个 Silverlight 应用程序的安装与卸载的基本方法。
 
 
 

你可能感兴趣的:(职场,休闲,Silverlight3)