shackee 心得

做事要做细. Go for it

导航

Silverlight(WPF/E)技术概览

(本人为计算机专业大三本科生,才疏学浅,在此斗胆献艺,必有瑕疵之处,望前辈批评,指正)

从2月底接触微软的WPF/E Feb CTP以来,本人已经在此方面进行了将近3个月的开发,历经了WPF/E的正式命名(Silverlight),先后用 WPF/E Feb CTP,Silverlight 1.0 beta & 1.1 alpha版本开发。颇有心得。今天在此我先大概介绍一下Silverlight技术,算是一个技术概览吧

1.什么是Silverlight(WPF/E)?

Silverlight,正式版本发布之前的项目代号叫WPF/E,即Windows Presentation Foundation Everywhere。这里先介绍一下这个叫“Windows Presentation Foundation”(WPF)的东西。相信大部分业内人士应该见过Windows Vista操作系统的绚丽界面,为什么一个操作系统的界面以及其上的应用程序的界面能开发的那么COOL?因为这里用到了Windows Presentation Foundation这个技术,以C#为主的语言编写逻辑层代码,以一种叫“XAML”(eXtensible Applicaion Markup Language)的类似于XML的标签语言负责UI层构件。这里是一个XAML的代码:

 

<Rectangle Canvas.Top="0" Canvas.Left="0"  Height="76" Width="1000"  Fill="#FFFFFFFF"/>


 

WPF/E(Silverlight)是WPF的子集,它的UI层也由XAML完成,但没有WPF中的那么多的对象和方法。微软想让用户在IE浏览器里也能看到绚丽的界面,同时也为了对付FLASH!逻辑代码在WPF/E Feb CTP,Silverlight 1.0 beta中用JavaScripts来编写,不像Flash那样还要经过Action Scripts.在Silverlight 1.1 alpha中又加入了C#。一个WPF/E的程序是以类似插件的对象嵌在网页的HTML代码中,在网页生成时初始化对象,如下:

在WPF/E Feb CTP版本中:

 

<div id="wpfeControl1Host" >
            
<script type="text/javascript">
             
new agHost("wpfeControl1Host"// hostElementID (HTML element to put WPF/E control into)
                        "wpfeControl1",     // ID of the WPF/E ActiveX control we create
                        "1024px",              // Width
                        "768px",              // Height
                        "#000000",            // Background color
                        null,               // SourceElement (name of script tag containing xaml)
                        "plugin.xaml",      // Source file
                        "true",            // IsWindowless
                        "100",               // MaxFrameRate
                        null,              // OnError handler (method name -- no quotes)
                           0,                  // Minimum major version required
                           8,                  // Minimum minor version required
                           5                   // Minimum build required    
                       );

            
</script>
        
</div>

在Silverlight 1.0 beta & 1.1 alpha版本中:

<div id="wpfeControl1Host" >
<script type="text/javascript">
// Retrieve the div element you created in the previous step.
        var parentElement = document.getElementById("wpfeControl1Host");
        
        
// This function creates the Silverlight control.
        createMySilverlightControl();
        
function createMySilverlightControl()//初始化这个控件
{  
    Sys.Silverlight.createObject(
        
"../XamlTemplates/HomePage.xaml",                  // XAML 文件的路径.
        parentElement,                 
        
"wpfeControl1",         // Silverlight插件的ID
        {                               // 控件生成的属性设置 
            width:'1000',                // 设置宽度
                                        
            height:'
640',               // 设置高度
            inplaceInstallPrompt:false// Determines whether to display 
                                        // in-place install prompt if 
                                        // invalid version detected.
            background:'#FFFFFF',      // 设置背景颜色

            isWindowless:'
true',       // Determines whether to display control 
                                        // in Windowless mode.
            framerate:'24',             // MaxFrameRate property value.
            version:'0.9'               // Control version to use.
        }
,
        
{
            onError:
null,               // OnError property value -- 
                                        // event handler function name.
            onLoad:null                 // OnLoad property value -- 
                                        // event handler function name.
        }
,
        
null);                          // Context value -- event handler function name.
}

</script>
</div>



2.开发的准备(软件、SDK)?

浏览以及开发Silverlight需要:

Windows XP HomeEdition 或更新版本的操作系统,像Windows98,2000均不支持

开发平台 Microsoft Visual Studio 2005

官方网站、下载SDK: http://msdn2.microsoft.com/en-us/silverlight/default.aspx (英文)

 

3.开发帮助

a> 下载的SDK中的帮助文档:Silverlight.chm 和 WPFE.chm。一切以他们为主。

b>官方技术论坛:http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=318&SiteID=1 (英文)

c> 我眼中技术先行者的BLOG:

Mike Harsh:

http://blogs.msdn.com/mharsh/default.aspx

说明: 他的BLOG上最大的特点是有绚丽多彩的demo,还提供下载。

 

光荣的程序员老赵:

http://www.cnblogs.com/JeffreyZhao

说明:这是我在开发过程中见到的大陆研究的较多的,但大部分是翻译英文的帮助文档,但对英文能力稍逊的人来说是个捷径。

在此向这两位前辈致敬! 你们的博客让我受益匪浅!

 

d> 这里!我的博客!呵呵。我会定期放些技巧和心得.欢迎大家常来

 

最后还有,千万别等着书出来。

 

先就这些。

posted on 2007-05-18 11:40  程序员shackee  阅读(491)  评论(2)    收藏  举报