Silverlight 是一项已经停止更新的微软技术,微软官方已于 2025 年 10 月 12 日停止了对 Silverlight 的支持,包括安全更新和修复,这意味着它不再适合用于任何新的商业项目。

尽管如此,学习 Silverlight 仍然有其价值,主要体现在:
- 维护旧项目:许多企业内部系统、政府项目或特定行业的应用(如银行、医疗、在线教育等)可能仍在使用 Silverlight 构建,学习它是为了维护和升级这些遗留系统。
- 学习技术原理:Silverlight 的架构(XAML、MVVM、数据绑定、依赖属性等)与后来的 WPF (Windows Presentation Foundation) 和 UWP (Universal Windows Platform) 有很多共通之处,学习 Silverlight 是理解这些现代桌面应用开发技术的一个很好的入门途径。
- 个人兴趣:对于一些开发者来说,它可能代表了一段技术记忆或一种有趣的开发体验。
第一部分:核心概念与入门
什么是 Silverlight?
Silverlight 是一个由微软开发的跨浏览器、跨平台的插件式应用程序框架,类似于 Adobe Flash,它主要用于在 Web 浏览器中提供丰富的、具有交互性的用户体验(RIAs - Rich Internet Applications)。
核心特点:
- XAML 界面设计:使用 eXtensible Application Markup Language (XAML) 来描述用户界面,实现了界面逻辑与业务逻辑的分离。
- 强大的媒体支持:内置对高清视频(H.264)、音频(AAC)和 DRM 的支持,曾是其在流媒体领域的巨大优势。
- .NET Framework 集成:开发者可以使用 C# 或 VB.NET 等熟悉的 .NET 语言编写后端逻辑。
- 丰富的控件库:提供了大量内置控件(如 Button, TextBox, DataGrid, Chart 等)。
- 深度集成工具:与 Visual Studio 和 Expression Blend 深度集成,提供了强大的设计和开发体验。
开发环境准备
在学习 Silverlight 5 之前,你需要安装以下软件:

-
Visual Studio:
- 推荐版本:Visual Studio 2010 或 Visual Studio 2012,这两个版本对 Silverlight 5 提供了最完整和原生的支持。
- 如果你只有更新的版本(如 VS 2025/2025/2025/2025/2025),也可以通过安装 "Silverlight 5 SDK" 来获得支持,但体验可能不如原生版本流畅。
-
Silverlight 5 SDK:
- 你需要从微软官方渠道下载并安装 Silverlight 5 Developer Runtime 和 SDK,这包含了开发 Silverlight 应用所需的所有工具、文档和库。
- 下载链接:你可以在微软档案库中找到它,搜索 "Silverlight 5 SDK"。
-
Expression Blend (可选但推荐):
这是一个专业的 UI 设计工具,用于创建和设计 XAML 界面,对于复杂的动画和样式设计,Blend 远比 Visual Studio 方便,同样,VS 2010/2012 版本附带的 Blend 是最佳选择。
(图片来源网络,侵删)
第二部分:核心学习路径与知识点
以下是一个从入门到进阶的学习路线图,并附上中文资源链接。
基础入门
目标:创建你的第一个 Silverlight 应用,理解基本结构和控件。
- 创建 Silverlight 项目:在 Visual Studio 中新建项目,选择 "Silverlight 应用程序"。
- 认识项目结构:
App.xaml和App.xaml.cs:应用程序的入口点,用于处理全局启动、关闭等事件。MainPage.xaml和MainPage.xaml.cs:应用的主界面。
- XAML 基础:
- 理解 XAML 的语法,如标签、属性、附加属性等。
- 学习布局容器:
Grid(网格)、StackPanel(堆叠面板)、Canvas(画布)、DockPanel(停靠面板),这是构建界面的基础。
- 基本控件:
Button、TextBlock、TextBox、CheckBox、RadioButton、ComboBox、ListBox等常用控件的用法和事件处理(如Click事件)。
- C# 后端逻辑:
- 在
.cs文件中为控件添加事件处理程序,实现简单的交互逻辑。
- 在
中文资源:
- W3Schools Silverlight 教程 (中文):https://www.w3school.com.cn/silverlight/index.asp
这是一个非常好的入门站点,内容简洁明了,适合快速上手。
- 博客园 - Silverlight 标签:https://www.cnblogs.com/cate/silverlight/
博客园是国内开发者聚集地,有大量关于 Silverlight 的原创文章、教程和经验分享,搜索“Silverlight 教程”可以找到很多系列文章。
核心进阶
目标:掌握 Silverlight 的核心技术,构建功能更丰富的应用。
- 数据绑定:
- 核心概念:将 UI 控件与数据源(如对象集合)自动连接起来,当数据变化时,UI 自动更新,反之亦然,这是 MVVM 模式的基础。
- 学习
Binding标记扩展:{Binding Path=PropertyName}。 - 数据源:
DataContext属性、ObservableCollection<T>(当集合内容变化时,UI 会自动更新)。
- 样式与模板:
- 样式:将一组属性(如颜色、字体、边距)打包起来,以便在多个控件上复用,实现 UI 的统一。
- 控件模板:完全重新定义一个控件的外观和结构,将一个按钮的外观改成一个圆形。
- 命令:
- 使用
ICommand接口和DelegateCommand/RelayCommand等实现,将 UI 事件(如按钮点击)与 ViewModel 中的方法解耦。
- 使用
- MVVM (Model-View-ViewModel) 模式:
- 核心思想:将应用程序分为三个部分:
- Model (模型):业务数据和逻辑。
- View (视图):XAML 定义的 UI。
- ViewModel (视图模型):View 的数据源和命令处理器,是 View 和 Model 之间的桥梁。
- 这是 Silverlight/WPF 开发的最佳实践,极大地提高了代码的可测试性和可维护性。
- 核心思想:将应用程序分为三个部分:
中文资源:
- MSDN 中文文档 (历史版):https://docs.microsoft.com/zh-cn/previous-versions/ms951266(v=vs.95)
虽然是旧版,但官方文档最权威,对每个类、属性和方法都有详细解释。
- CodeProject 中文翻译/文章:https://www.codeproject.com/
在 CodeProject 上搜索 "Silverlight MVVM"、"Silverlight Data Binding",可以找到大量高质量的英文文章,其中很多有中文社区翻译或讨论。
- 《深入浅出 Silverlight 5》:
有一些国内出版的 Silverlight 5 书籍,可以在淘宝、孔夫子旧书网等平台搜索,这些书籍通常系统性地讲解了所有知识点。
高级特性
目标:利用 Silverlight 5 的高级特性解决复杂问题。
- 依赖属性:
理解其工作原理,以及为什么普通属性无法支持数据绑定、样式、动画等 WPF/Silverlight 核心功能,学习如何创建自定义依赖属性。
- 路由事件:
事件可以沿着元素树向上或向下“冒泡”或“隧道”,这为处理复杂布局中的事件提供了灵活性。
- 数据验证:
- 使用
INotifyDataErrorInfo接口或Validation标记在数据绑定时进行验证,并在 UI 上显示错误信息。
- 使用
- 数据访问:
- 使用 WCF RIA Services 轻松实现客户端与服务器端的数据通信,是 Silverlight 访问数据库的主流方式。
- 也可以使用
HttpWebRequest或WebClient直接调用 Web API 或 WCF 服务。
- 图形与动画:
- 使用
Storyboard创建关键帧动画,使 UI 元动起来。 - 使用
Shape(如Ellipse,Rectangle)和Path绘制自定义图形。
- 使用
- 本地存储:
- 使用
IsolatedStorage在客户端本地保存少量数据,实现类似 Cookie 的离线存储功能。
- 使用
中文资源:
- 博客园专家系列:在博客园搜索“Silverlight 高级特性”、“Silverlight 依赖属性”等关键词,可以找到很多由经验丰富的开发者撰写的深度文章。
- GitHub 开源项目:在 GitHub 上搜索 "Silverlight Sample"、"Silverlight MVVM Framework",可以找到很多示例代码和开源框架(如 Caliburn.Micro 的旧版本),通过阅读代码是学习高级特性的最佳方式。
第三部分:综合项目实战
理论学完后,通过一个完整的项目来巩固所学知识。
项目建议:一个简单的“任务管理器”或“博客阅读器”
- 功能:
- 显示一个任务/博客文章列表。
- 可以添加新任务/文章。
- 可以编辑现有任务/文章。
- 可以删除任务/文章。
- 数据可以保存在内存中或使用 WCF RIA Services 模拟与服务器交互。
- 技术栈应用:
- View:使用
DataGrid或ItemsControl绑定任务列表。 - ViewModel:创建一个
TaskViewModel,包含任务列表和添加、删除、编辑的命令。 - Model:创建一个
Task类,包含Id,Title,Content,IsCompleted等属性,并实现INotifyPropertyChanged。 - 样式:为“已完成”的任务应用不同的样式。
- 验证:在添加任务时,确保标题不为空。
- View:使用
第四部分:重要提醒与替代技术
再次强调:不要将 Silverlight 用于任何新的、面向未来的项目。
如果你需要开发新的桌面应用或富客户端应用,请考虑以下现代替代方案:
-
WPF (Windows Presentation Foundation):
- 定位:Windows 桌面应用程序。
- 特点:与 Silverlight 极其相似,使用 XAML 和 C#,功能强大,生态成熟,如果你会 Silverlight,学习 WPF 会非常快。这是最直接的继承者。
-
MAUI (.NET Multi-platform App UI):
- 定位:跨平台移动和桌面应用(Windows, macOS, iOS, Android)。
- 特点:.NET 的新一代 UI 框架,是 Xamarin 的演进版,使用 C# 和 XAML,可以一次编写,多平台运行。
-
Blazor:
- 定位:Web 应用。
- 特点:使用 C# 和 Razor 语法在浏览器中构建交互式 UI,它通过 WebAssembly 在客户端运行,提供了接近原生应用的性能,是目前 Web 开发的前沿技术。
-
Avalonia UI:
- 定位:跨平台桌面应用。
- 特点:一个受 WPF 启发的、开源的 .NET UI 框架,支持 Windows, macOS, Linux, iOS 和 Android,如果你喜欢 WPF 的理念但又想跨平台,Avalonia 是一个绝佳选择。
学习 Silverlight 5 是一条通往更现代 .NET 技术栈(如 WPF, MAUI)的绝佳路径,它的核心思想——XAML、数据绑定、MVVM——至今仍然非常重要。
希望这份详细的中文教程指南能帮助你顺利开启 Silverlight 5 的学习之旅!祝你学习愉快!
