您的位置:软件 > 开发者网络 > 技术跟踪 > Windows编程 > 正文
Longhorn应用开发部署初探
[文章信息]
作者:winsome zhong编译
时间:2003-11-25
出处:MSDN
责任编辑:方舟
[文章导读]
本文将带领大家体验最新的Longhorn应用模型,并演示一些基本的例子
advertisement
热点推荐
· 天极网软件频道改版调查
· 10.28软件精选 找乐还是赌钱
· 中国游戏业——被人们忽视的黑暗
· Windows 2000密码破解不完全指南
· 解决XP SP2带来的网络故障(上)
[正文]

1 2 3 4  下一页

天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。


  从各方面来讲,微软的下一代视窗即代号为“Longhorn”的操作系统,都是Windows产品中一个非常重要的里程碑。“Longhorn”是首个用托管代码构建的操作系统,采用了微软最新的存储子系统“WinFS”,支持一种更为高级的自然搜索技术(Natural UI)以及最新的安全架构“Palladium”, 在Windows的历史上,我记得也就只有两个这样重要的里程碑,一个是Windows由16位向32位的迁移,另一个是.Net的诞生。当然,“Longhorn”这些令人兴奋的新特性同时也表明我们以往驾轻就熟的开发方式将发生重大的变化。其中最为重要的一个改变是 “Longhorn”使得应用程序可以一次编码,多场景部署。为实现该功能,基于“Longhorn”的应用是完全面向对象的,整个应用派生于一个核心对象Application,该对象提供了运行整个应用程序所需的所有核心功能。本文将带领大家体验最新的Longhorn应用模型,并演示一些基本的例子,其中当然包括经典的“Hello World!”。

  一、Longhorn应用模型

  Application对象是Longhorn应用模型的核心,通过它的属性、方法和事件,你可以像编写网页一样使用一种增强的html来编写传统的Windows窗体应用程序。Application是一个Longhorn应用程序的根对象。它提供了应用程序的基本功能,可用于一些低级的、不需要在窗体间导航和维护状态的程序 ,但更复杂的Longhorn应用程序要使用NavigationApplication对象,这是一个Application的子类 ,增加了对导航的支持。

  一个典型的Longhorn应用程序可以被看作一系列带有程序脚本的页面(叫做Page),并由Application对象控制程序的执行。Page使用一种新的标记语言来编写,这种标记语言的代号是“XAML ”(Extensible Application Markup Language)。通过XAML的元素标签你可以控制Page的布局,包括显示文本和图片,插入按钮、文本筐等交互式控件。一言概之,“XAML”是用来编写Longhorn应用程序UI界面Page的标记语言。当然,除了使用XAML,你也可以完全使用程序代码来编写应用程序。一般来说Longhorn程序会同时使用XAML和托管代码。你可以按自己的方式来组合它们。

  使用XAML和C#(或VB.NET),你可以构建各种类型的应用输出文件,传统的exe执行文件,DLL 库,或者Console应用程序。而且,如果你的应用程序足够简单的话,你也可以完全使用独立的XAML标签来编写它,这样在longhorn中就多了一种类型的程序。当独立的XAML文件没有引用别的后台类时,它可以直接在Longhorn Shell和浏览器中运行。其实Longhorn的可执行文件都是既可以运行在Windows中,也可以运行在浏览器中的,你无需对程序的代码做任何的修改,只要在编译的时候设置不同的项目属性就行了。

  对于Longhorn,可执行程序是今天Windows窗体程序的下一个版本。但从另一方面来说,XAML以及基于浏览器的应用程序也代表了应用程序做为web客户端的开发模式的一次革新。目前,Windows窗体客户端程序很少被发布到web上,因为如果你想把Windows窗体嵌入到浏览器网页中,你会受到诸多限制,还必须对代码做相应的修改。而在Longhorn中,通用的应用模型使你可以编写一个程序并通过web来部署。不过,这与我们传统的web应用(比如Asp.Net)有很大的区别,这是Longhorn专有的应用程序。

  当你编译一个应用时,代号为“Whidbey”的下一个版本的Visual Studio和.Net Framework(或者说它底层的MSBuild.exe工具),会生成一个.exe文件,一个程序文件清单(扩展名是.manifest)和一个部署文件清单(扩展名是.deploy).当你点击.exe文件,程序会如你所期望的那样运行于Windows中。但是如果把程序设置为在浏览器中运行,那点击.exe文件时IE会自动跳出来并在其中运行程序。还有一种可选的方式是把程序部署在远端服务器上,步骤如下,首先把.deploy文件拷贝到服务器的合适位置,可以是FTP或HTTP的相对路径下。然后把编译后的程序文件和.manifest拷到服务器上,程序文件、.manifest文件不一定要和.deploy文件放在一起。如果放在不同的地方,你可以编辑.deploy文件,使它指向.manifest文件。.manifest文件和.deploy文件都是xml文件。当用户通过浏览器访问部署文件,Longhorn会自动下载程序文件及.manifest文件并安装到用户电脑上,同时还创建一个指向.deploy文件的快捷方式。用户点击.deploy文件就可以执行程序。

  所有Longhorn的应用程序的通用结构都是这样的:XAML Page加上程序代码(内嵌或者使用Code Behind技术),根对象派生于Application。Application对象是程序的控制器,它的生命周期和程序的生命周期是一样的。通过Application对象,你可以处理高级事件、在Page间共享代码和状态等等。它同时也负责根据程序的逻辑让用户在Page间导航,用户在使用软件完成功能时会在Page间来回跳转,跳转时Longhorn一般会使用新的Page代替旧的,当然,你也可以选择弹出一个新的窗口来显示新Page。导航并不是每个程序必需的,简单的只有一个Page的程序就不需要了。

  刚刚提到XAML Page可以嵌入程序代码作为标签的补充。程序代码是必需的,比如处理一个由XAML元素产生的事件。程序代码既可以嵌到XAML文件中,也可以放在代码文件中。

  Longhorn的编程是基于托管代码的,不过目前只有几种兼容.Net的语言可以用于编写基于XAML的程序,包括C#、VB.NET和JScript.NET,到Longhorn发布时,其他兼容.NET的语言也将被包括进来,目前只能使用这三种语言是因为XAML文件的源码需要在运行期解析编译,因此编译器及相关的代码文档对象模型必须在之前就绪(注:如果你完全使用程序代码来编写程序,你可以使用任何.NET语言,但基于XAML的程序目前只能使用这三种而已)。如果XAML Page中嵌入了程序代码,那么你必须先编译才能运行它。而如果在XAML Page中没有程序代码,那么双击就可以显示它,就像Html文件一样。Longhorn不会执行未编译的程序代码,也不会在运行期编译它。

  那么,让我们来看看Longhorn版的“Hello World!”吧,这是个最简单的XAML的例子:

<Canvas
xmlns="http://schemas.microsoft.com/2003/xaml"
Background="LightCyan"
Width="100%" Height="100%">

<Image Source="lh.bmp" Canvas.Left="5" Canvas.Top="5" />
<Text Canvas.Left="90" Canvas.Top="20" FontSize="36">Hello, Longhorn!
</Text>
</Canvas>

  把这段代码保存在文本文件中并用.xaml作为扩展名,然后双击,用浏览器打开它,图一是你可以看到的结果。<Canvas>节点定义了程序的用户界面区域--画布。Background属性定义了画布的背景色,Width和Height指定了画布的大小,<Image>和<Text>元素定义了该Page的内容。这两个元素的Left和Top属性指定了它们相对于Page左上角的绝对位置。


图一、Simple XAML Page


1 2 3 4  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 百万像素手机大展台
  • K7终极配置 时尚游戏的追求
  • 天极游戏专访锦天科技总经理贾可
  • 10.28软件精选 找乐还是赌钱
  • 浩鑫:争夺电子竞技“F1”桂冠
  • 体验诺顿安全特警2005版的最新特色
  • NGC《生化危机4》神秘男子出现
  • VIA作客天极 最新Roadmap曝光
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索