Tag Archives: Silverlight

[Job]Silverlight Web Developer

Requirements:

  • Smart, passionate, loves start up and could work under pressure in a fast-paced team environment
  • Major in Computer science or related
  • Excellent C# and/or Java and/or C coding/debugging skills
  • Strong team player, good work ethics and critical in quality.
  • Good in Communication
  • Experience with mobile platform (Windows Mobile, Android, Symbian, J2ME and/or iPhone) will be a plus
  • Experience on SMS, MMS, GPS, and other mobile/phone applications will be a plus
  • Experience on Silverlight development will be a plus

Working Location :Suzhou, Jiangsu
Contact: MSN: mdong{at}live.cn
Company Environment:




Silverlight安装体验优化(1)

Campaign Management基于Silverlight程序。我们要求merchant的电脑需装有Silverlight插件,提醒merchant为什么要安装Silverlight,并表明我们信赖Silverlight,且能移除安装及使用Silverlight的阻碍。
第一次浏览时会出现的两种情况
1. 安装体验(Installation Experience)——当merchant未安装Silverlight插件浏览时,将会看到的安装提示界面。
2. 预定体验(Default Experience)——当merchant已经安装Silverlight插件浏览时,将会看到的loading界面。
设计目标
1.传达该页面的价值,只要安装Silverlight就能够获得。
2.提供明确的要求,请merchant安装Silverlight。
3.消除阻碍merchant完成安装的疑虑。
4.个性化安装提示界面,符合商业需求。
5.优化程序loading速度,并充分利用loading的时间,提供随机tips帮助merchant使用Campaign Management。
6.防止误关闭以及加入其它帮助信息。
原型设计


参考文档 MSDN

Silverlight 3 OOB (2)

Silverlight 3 OOB (1)
前文对原理做了简要分析,该篇将针对做部分应用。
总述
在Silverlight 3正式版发布之前,开启该功能,需要修改Properties文件夹下的AppManifest.xml文件。
代码如下:










Saving your Silverlight offline.




可设置的OutOfBrowerSettings属性。

ShortName – 程序在桌面或开始菜单中的显示名称。
Title – 程序运行时标题栏的现实内容。
Blurb – 程序的备注内容。

当F5运行该程序时,可以看到下面的菜单:

选择第二项。选择添加到开始菜单或者同时安装到桌面,默认选择开始菜单:

移除离线程序也很简单。右键单击运行中的离线程序,选择第二项:
silverlight-oob-3
在Silverlight离线程序中同样可以自定义桌面图标,开始菜单图标等。需要创建四个不同尺寸的PNG文件,16X16、32X32、64X64、128X128。把它们添加到项目中并指定路径,设置图标文件的Build Action的属性为Content。


Images/sl16.png
Images/sl32.png
Images/sl64.png
Images/sl128.png


现在就可以得到自定义图标了。
完整的AppManifest.xml文件。










Saving your silverlight offline


Images/sl16.png
Images/sl32.png
Images/sl48.png
Images/sl128.png




Silverlight 3 的OOB并不支持对窗体的修改。
在Silverlight 3 以及 Expression Studio 3 (Expression Blend 3)正式发布时,这个OOB设置方式进行了简化。无需设置Appmanifest.xml,你可以在Properties看到OutOfBrowserSettings.xml文件。




A short description of the application.





在Expression Blend 3中,选择Project->Silverlight Projects Options->Enable Application Outside Browser。

Demo
联系人管理器(由微软提供)

Silverlight 3 OOB (1)

名词解释
OOB (Out of Browser): Silverlight 3新特性之一。在浏览器中运行的Web应用界面与传统桌面软件比起来总是死板,不够灵活的。因此,人们就产生了需求,想在浏览器之外运行web应用。Adobe的Air可以实现这个功能,而Google的解决方案是Chrome里的shortcuts。给Web应用建立了shortcuts之后,就可以按照人们习惯的方式启动这个应用,而界面也很传统软件非常接近了。微软的解决方案则是Mesh,或者最新的Silverlight OOB功能。
原理简析
分离程序
当用户第一次浏览应用程序可能是在浏览器的某个位置。当你的程序支持out-of-browser(OOB)体验时,用户可以通过引起事件分离程序。接着会出现下面的情况:
detach
该动作捕获浏览器(例子中虚拟地址 http://foo.com/mysloob.xap)并创建一个OOB程序。

  • 程序(XAP)需要再一次通过浏览器请求数据。
  • 当XAP下载时,在低信任区域中取得本地存储的元数据,包括XAP的原始URI元数据以及重要的ETag信息(本质上是时间戳)。

首次运行OOB
如果我们关闭程序并再次在桌面上运行程序:
launch1
在这种情况下程序会检查它的元数据XAP的原始URI并进行一次请求。对比HTTP的响应数据(代码以及Etag)。如果程序没有更新,程序会正常运行。事实上,程序的检查请求基本上会是这样:

GET /silverlight/oob/ClientBin/OutOfBrowser.xap HTTP/1.1
If-Modified-Since: Thu, 19 Mar 2009 03:52:35 GMT
User-Agent: Silverlight
Host: timheuer.com
X-P2P-PeerDist: Version=1.0
Accept-Encoding: peerdist
HTTP/1.1 304 Not Modified
Last-Modified: Thu, 19 Mar 2009 03:52:15 GMT
Accept-Ranges: bytes
ETag: “f2e3a81746a8c91:445”
X-Powered-By: ASP.NET
Date: Thu, 19 Mar 2009 03:55:18 GMT

需要注意的是HTTP 304 Not Modified的响应。没有更新信息发送时我们可以看到没有传递信息。程序不会发生变化。在API层,作用于改变DetachedUpdatesAvailable状态的Application.Current.ExecutionState没有被触发。
用户从桌面运行,程序升级
现在我们更新程序并上传到服务器。用户下一次运行程序时,同样的请求出现:
launch2
再一次,请求发送元数据信息。不过这次,有更新了。过程也是加倍的。连同响应发送了新时间戳/ETag,请求同样包括了更新程序。请求会是这样的:

GET /silverlight/oob/ClientBin/OutOfBrowser.xap HTTP/1.1
If-Modified-Since: Thu, 19 Mar 2009 03:52:35 GMT
User-Agent: Silverlight
Host: timheuer.com
X-P2P-PeerDist: Version=1.0
Accept-Encoding: peerdist
HTTP/1.1 200 OK
Content-Length: 15557
Content-Type: application/x-silverlight-app
Last-Modified: Thu, 19 Mar 2009 03:56:29 GMT
Accept-Ranges: bytes
ETag: “ce39d0ae46a8c91:445”
X-Powered-By: ASP.NET
Date: Thu, 19 Mar 2009 03:56:45 GMT 17:

“data”之上的部分事实上是更新XAP的数据(注意Content-Length与Content-Type headers)。

  • Application.Current.ExecutionState改变为DetachedUpdatesAvailable 状态。
  • 本地存储的XAP更新了数据。

当前还没有选项可以拒绝更新数据。如果程序已更新,用户就会获得它们。这是开发团队考虑到不同使用环境的设定。同样的,不能强制用户关闭程序或者阻止程序继续使用。在某种意义上,你或许可以通过更新程序使下次运行时屏蔽UI。再次运行程序(从本地机器)会进行数据更新,更新请求会跟首次相近:

GET /silverlight/oob/ClientBin/OutOfBrowser.xap HTTP/1.1
If-Modified-Since: Thu, 19 Mar 2009 03:56:49 GMT
User-Agent: Silverlight
Host: timheuer.com
X-P2P-PeerDist: Version=1.0
Accept-Encoding: peerdist
HTTP/1.1 304 Not Modified
Last-Modified: Thu, 19 Mar 2009 03:56:29 GMT
Accept-Ranges: bytes
ETag: “ce39d0ae46a8c91:445”
X-Powered-By: ASP.NET
Date: Thu, 19 Mar 2009 03:57:12 GMT

上述是Silverlight 3 OOB的基本原理。当程序被分离,与app相关元数据被存储。每一次运行时检查一次元数据,确认升级是否可用。如果程序离线,也不会阻止程序运行。这与部署.NET Framework的ClickOnce观念类似。
延伸阅读
微软 Google云计算基础技术的比较
silverlight 3 offline update framework

在Expression Blend 3中快速创建图像笔刷

之前在Blend中创建一个图像笔刷需要很多步骤。Blend3中对此进行了改进。
复制一个图像到剪贴板
粘贴图像到Resource Dictionary
打开Blend 3 并选择 Resource标签,选择可定义图像笔刷的资源区域。右键点击App.xaml文件并选择粘贴Paste。
clipblend-paste-resource
增加下列xaml代码到App.xaml文件中Application.Resources部分



Mdongs Space SL Demo


Demo测试
采用Silverlight 1.0版本创建。IE7测试通过。
以下为首页截图。

Silverlight SEO 白皮书

原文档来自Silverlight.net官方。这里做一下简单的翻译,水平有限,言语不免晦涩,不足之处请指正。
概要
这份文档描述了一些Silverlight程序的搜索引擎优化(SEO)技巧。这些技巧是用来帮助开发人员使得Silverlight内容能够在搜索引擎的结果页被发现,并为没有激活Silverlight的用户提供合意的体验。
这份文档将包括以下的章节:
*介绍
*搜索引擎工作原理
*开发Silverlight程序的方法
*Silverlight程序的SEO技巧
*总结
介绍
搜索引擎能够直接识别HTML内容。与此同时,搜索引擎先天的不识别Silverlight内容。这一点与搜索引擎不支持其它的一些通过HTML呈现的对象类似,如脚本、css、媒体文件以及ActiveX控件。为了使Silverlight内容能够被搜索引擎收录,你可以使用搜索引擎已经支持的方法,如将孤立的Silverlight岛与跟内容相关的HTML metadata相结合。
SEO的目的是增加页面在搜索引擎的主要结果页(图中被红色矩形标出的部分)的显示机会,而不是在广告或者赞助商的页面。
Read More …

Silverlight Tips(3)

在PowerPoint中插入Silverlight项目
在做幻灯片演示时用得到。
适用版本:PowerPoint XP/2003/2007。Silverlight 1.0/2.0。
思路:利用PowerPoint支持的WebBrowser控件,创建Silverlight的运行环境。
Demo下载[download id=”2″]

Private Sub CommandButton1_Click()
Dim varURL As Variant
varURL = “file:\\\C:\Documents%20and%20Settings\Administrator\桌面\SilverlightSite2\Default.html”
Slide1.WebBrowser1.Navigate varURL
End Sub
Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)
End Sub

Silverlight粒子系统
Demo演示
源码下载[download id=”3″]
XAML文字竖排
使用MatrixTransform对象。





最近在用SL做片头,慢慢来吧。

在Silverlight中整合HTML页面

Silverlight可以用作网站的应用开发。如果你希望Silverlight程序更像一个网站,并具有更强的扩展性,也许我们需要整合HTML页面。接下来的内容,将基于Silverlight 1.0做一些尝试,希望对您有所帮助。
先看演示(DEMO)
很酷吧。:D
原理。看图:
Silverlight原理结构
Silverlight程序是以控件的形式嵌入到HTML页面中的,这里是把将要整合的HTML页面利用iframe置于Silverlight控件之上,而不影响Silverlight控件的正常工作。
要点:
1.编辑按钮的xaml,定义MouseLeftButtonDown,使按下鼠标左键时,触发相应函数。
2.在该页面的js文件中,关联按钮。

function On_MouseLeftButtonDown(sender,args){
document.getElementById(‘iframe’).style.visibility = “visible”;
}
//开启HTML页面,将名为iframe的隐藏层的visibility属性改为visible显示
function Off_MouseLeftButtonDown(sender,args){
document.getElementById(‘iframe’).style.visibility = “hidden”;
}
//关闭HTML页面,将名为iframe的隐藏层的visibility属性改为hidden隐藏

3.该项目的html文件。