Silverlight 项目结构解析

本文摘抄自 深蓝色右手 的 Silverlight MMORPG网页游戏开发课程[第一期] 序言 ,感觉对于 Silverlight 的初学者非常有用,于是摘抄于此,希望能对更多的人有用。为了省去大家理解上下文的时间,对其中一些文字做了些修改。

 

1、新建 Silverlight 项目

打开 Visual Studio 2010(以下简称 VS2010),依次点击:文件->新建->项目,找到 Silverlight 节点并选中,然后在右侧的模板中选择“Silverlight应用程序”,设置好相应的项目创建路径并为该项目取名后点确定(这里我为该项目取名叫 SilvApp);此时VS2010还会提示我们选择 Silverlight 网站类型,直接点击确定使用默认配置即可。

2、解析 Silverlight 项目结构

在“解决方案资源管理器”中可以看到我们刚才新建的“SilvApp解决方案”包含有两个子项目,分别为:SlivApp 和SlivApp.Web。SlivApp项目是Silverlight应用程序项目,默认包含两个文件:App和MainPage。App的作用是程序启动入口及全局资源配置管理,它继承自封装Silverlight 应用程序的Application ,其中App.xaml.cs文件记载着程序的启动、离开及错误处理:

        public App() {

            this.Startup += this.Application_Startup;

            this.Exit += this.Application_Exit;

            this.UnhandledException += this.Application_UnhandledException;

            InitializeComponent();

        }

App.xaml则主要用于编写界面全局样式等(同学们可以查阅下Application.Resources还有其他什么作用):

    <Application.Resources>

 

</Application.Resources>

MainPage是默认的程序主控件,在App.xaml.cs文件的启动事件中记录了整个项目是通过MainPage的实例来启动的:

        private void Application_Startup(object sender, StartupEventArgs e) {

            this.RootVisual = new MainPage();

   }

MainPage就好比网站中的Index或Default,它是Silverlight程序的入口处(MainPage其实就是一个用户控件,我们可以通过在SlivApp项目上点击右键->添加->新建项->Silverlight用户控件的方式创建一个一模一样的该对象)。

SlivApp项目是Silverlight应用程序项目,那么SlivApp.Web项目即是承载该应用程序的网站载体,SlivApp项目编译后生成的SlivApp.xap文件即保存于SlivApp.Web项目中的ClientBin文件夹下。SlivApp.Web是一个典型的ASP.NET网站,Web.config让我们倍感亲切。项目自动生成的模板中包含有Default.aspx、SilvAppTestPage.aspx、SilvAppTestPage.html这3个页面,其中Default.aspx是Code-Behind的ASP.NET网站页面,SilvAppTestPage.aspx为单独的ASP.NET页面,而SilvAppTestPage.html则是最简单的静态页面。不难看出微软想告诉开发者们:Silverlight作为网页插件,只需在页面代码(HTML)中通过<object>……</object>方式进行标记即可呈现而不论是动态的还是静态页面亦或是何种类型网页。大家可以根据自己项目的需要,在相应的页面文件上点击右键->“设置为起始页”即可。例如,我暂时不需要额外的动态功能,那么我可以选择通过静态页的方式去展示我的Silverlight应用,接下来我完全可以删除掉Default.aspx和SilvAppeTestPage.aspx,然后将SilvAppTestPage.html改名为Index.htm并设置其为起始页一样是OK的.

接下来打开Index.htm文件,首先把代码最下面那个 “(&)”符号删除掉(笔者注:在我所用的版本中好像没有"&"符号);接着找到<object>……</object>这段,其中表示Silverlight应用程序路径的关键代码就在其中:

<param name="source" value="ClientBin/Game.xap"/>

    另外我们还注意到这么一段Js脚本:<script type="text/javascript" src="Silverlight.js"></script>,路径指向Game.Web中的Silverlight.js文件,其实Silverlight.js不过就是通过javascript脚本动态操作页面DOM结构,在指定的DOM节点处生成HTML元素来调用Silverlight ActiveX plugin,或者在该位置生成提示安装Silverlight plugin的HTML元素。说白了就是在网页中解析Silverlight用的。

posted @ 2010-09-08 11:39  Me疯子_(~  阅读(163)  评论(0编辑  收藏  举报