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

silverlight5中文教程
(图片来源网络,侵删)

尽管如此,学习 Silverlight 仍然有其价值,主要体现在:

  1. 维护旧项目:许多企业内部系统、政府项目或特定行业的应用(如银行、医疗、在线教育等)可能仍在使用 Silverlight 构建,学习它是为了维护和升级这些遗留系统。
  2. 学习技术原理:Silverlight 的架构(XAML、MVVM、数据绑定、依赖属性等)与后来的 WPF (Windows Presentation Foundation) 和 UWP (Universal Windows Platform) 有很多共通之处,学习 Silverlight 是理解这些现代桌面应用开发技术的一个很好的入门途径。
  3. 个人兴趣:对于一些开发者来说,它可能代表了一段技术记忆或一种有趣的开发体验。

第一部分:核心概念与入门

什么是 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 之前,你需要安装以下软件:

silverlight5中文教程
(图片来源网络,侵删)
  1. Visual Studio

    • 推荐版本:Visual Studio 2010Visual Studio 2012,这两个版本对 Silverlight 5 提供了最完整和原生的支持。
    • 如果你只有更新的版本(如 VS 2025/2025/2025/2025/2025),也可以通过安装 "Silverlight 5 SDK" 来获得支持,但体验可能不如原生版本流畅。
  2. Silverlight 5 SDK

    • 你需要从微软官方渠道下载并安装 Silverlight 5 Developer Runtime 和 SDK,这包含了开发 Silverlight 应用所需的所有工具、文档和库。
    • 下载链接:你可以在微软档案库中找到它,搜索 "Silverlight 5 SDK"。
  3. Expression Blend (可选但推荐)

    这是一个专业的 UI 设计工具,用于创建和设计 XAML 界面,对于复杂的动画和样式设计,Blend 远比 Visual Studio 方便,同样,VS 2010/2012 版本附带的 Blend 是最佳选择。

    silverlight5中文教程
    (图片来源网络,侵删)

第二部分:核心学习路径与知识点

以下是一个从入门到进阶的学习路线图,并附上中文资源链接。

基础入门

目标:创建你的第一个 Silverlight 应用,理解基本结构和控件。

  • 创建 Silverlight 项目:在 Visual Studio 中新建项目,选择 "Silverlight 应用程序"。
  • 认识项目结构
    • App.xamlApp.xaml.cs:应用程序的入口点,用于处理全局启动、关闭等事件。
    • MainPage.xamlMainPage.xaml.cs:应用的主界面。
  • XAML 基础
    • 理解 XAML 的语法,如标签、属性、附加属性等。
    • 学习布局容器:Grid(网格)、StackPanel(堆叠面板)、Canvas(画布)、DockPanel(停靠面板),这是构建界面的基础。
  • 基本控件
    • ButtonTextBlockTextBoxCheckBoxRadioButtonComboBoxListBox 等常用控件的用法和事件处理(如 Click 事件)。
  • C# 后端逻辑
    • .cs 文件中为控件添加事件处理程序,实现简单的交互逻辑。

中文资源

核心进阶

目标:掌握 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 访问数据库的主流方式。
    • 也可以使用 HttpWebRequestWebClient 直接调用 Web API 或 WCF 服务。
  • 图形与动画
    • 使用 Storyboard 创建关键帧动画,使 UI 元动起来。
    • 使用 Shape(如 Ellipse, Rectangle)和 Path 绘制自定义图形。
  • 本地存储
    • 使用 IsolatedStorage 在客户端本地保存少量数据,实现类似 Cookie 的离线存储功能。

中文资源

  • 博客园专家系列:在博客园搜索“Silverlight 高级特性”、“Silverlight 依赖属性”等关键词,可以找到很多由经验丰富的开发者撰写的深度文章。
  • GitHub 开源项目:在 GitHub 上搜索 "Silverlight Sample"、"Silverlight MVVM Framework",可以找到很多示例代码和开源框架(如 Caliburn.Micro 的旧版本),通过阅读代码是学习高级特性的最佳方式。

第三部分:综合项目实战

理论学完后,通过一个完整的项目来巩固所学知识。

项目建议:一个简单的“任务管理器”或“博客阅读器”

  1. 功能
    • 显示一个任务/博客文章列表。
    • 可以添加新任务/文章。
    • 可以编辑现有任务/文章。
    • 可以删除任务/文章。
    • 数据可以保存在内存中或使用 WCF RIA Services 模拟与服务器交互。
  2. 技术栈应用
    • View:使用 DataGridItemsControl 绑定任务列表。
    • ViewModel:创建一个 TaskViewModel,包含任务列表和添加、删除、编辑的命令。
    • Model:创建一个 Task 类,包含 Id, Title, Content, IsCompleted 等属性,并实现 INotifyPropertyChanged
    • 样式:为“已完成”的任务应用不同的样式。
    • 验证:在添加任务时,确保标题不为空。

第四部分:重要提醒与替代技术

再次强调不要将 Silverlight 用于任何新的、面向未来的项目。

如果你需要开发新的桌面应用或富客户端应用,请考虑以下现代替代方案:

  1. WPF (Windows Presentation Foundation)

    • 定位:Windows 桌面应用程序。
    • 特点:与 Silverlight 极其相似,使用 XAML 和 C#,功能强大,生态成熟,如果你会 Silverlight,学习 WPF 会非常快。这是最直接的继承者。
  2. MAUI (.NET Multi-platform App UI)

    • 定位:跨平台移动和桌面应用(Windows, macOS, iOS, Android)。
    • 特点:.NET 的新一代 UI 框架,是 Xamarin 的演进版,使用 C# 和 XAML,可以一次编写,多平台运行。
  3. Blazor

    • 定位:Web 应用。
    • 特点:使用 C# 和 Razor 语法在浏览器中构建交互式 UI,它通过 WebAssembly 在客户端运行,提供了接近原生应用的性能,是目前 Web 开发的前沿技术。
  4. Avalonia UI

    • 定位:跨平台桌面应用。
    • 特点:一个受 WPF 启发的、开源的 .NET UI 框架,支持 Windows, macOS, Linux, iOS 和 Android,如果你喜欢 WPF 的理念但又想跨平台,Avalonia 是一个绝佳选择。

学习 Silverlight 5 是一条通往更现代 .NET 技术栈(如 WPF, MAUI)的绝佳路径,它的核心思想——XAML、数据绑定、MVVM——至今仍然非常重要。

希望这份详细的中文教程指南能帮助你顺利开启 Silverlight 5 的学习之旅!祝你学习愉快!