MOSS for Developers - 第 5 部分:开发人员的 Silverlight 和 Web 部件
从开发人员的角度概述了带有 Silverlight 和 Web 部件的 SharePoint。此内容是 www.myrampup.com 上 MOSS 内容的第 5 部分。
引言
Microsoft Silverlight 是 .NET Framework 的跨浏览器、跨平台实现,用于构建和交付下一代媒体体验以及丰富的交互式应用程序 (RIA) 到 Web。Silverlight 统一了服务器、Web 和桌面的功能,统一了托管代码和动态语言的功能,统一了声明式和传统编程的功能,以及 Windows Presentation Foundation (WPF) 的强大功能。
Silverlight 使您能够创建具有以下功能的尖端应用程序
- 它是一种跨浏览器、跨平台技术。它在所有流行的 Web 浏览器中运行,包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari,并在 Microsoft Windows 和 Apple Mac OS X 上运行。
- 无论在哪里运行,它都能提供一致的体验。
- 它由一个非常小的下载支持,可在几秒钟内安装。
- 它可以流式传输视频和音频。它可以将视频质量从移动设备扩展到桌面浏览器,再到 720p HDTV 视频模式。
- 它包含引人注目的图形,用户可以直接在浏览器中操作——拖动、旋转、缩放。
- 它可以读取数据并更新显示,但不会通过刷新整个页面来中断用户。
Web 开发人员和图形设计师可以通过多种方式创建基于 Silverlight 的应用程序。您可以使用 Silverlight 标记创建媒体和图形,并使用动态语言和托管代码对其进行操作。Silverlight 还允许您使用专业质量的工具,如用于编码的 Visual Studio 和用于布局和图形设计的 Microsoft Expression Blend。
Silverlight 将多种技术组合到一个开发平台中,使您能够根据需要选择合适的工具和合适的编程语言。Silverlight 为您提供以下功能
- WPF 和 XAML。Silverlight 包含 Windows Presentation Foundation (WPF) 技术,它极大地扩展了浏览器中的元素以创建 UI。WPF 允许您创建沉浸式图形、动画、媒体和其他丰富的客户端功能,将基于浏览器的 UI 扩展到仅使用 HTML 可用的范围之外。可扩展应用程序标记语言 (XAML) 提供了一种声明性标记语法来创建 WPF 元素。有关详细信息,请参阅使用 Silverlight 创建用户界面。
- JavaScript 扩展。Silverlight 提供了通用浏览器脚本语言的扩展,这些扩展提供了对浏览器 UI 的强大控制,包括使用 WPF 元素的能力。有关详细信息,请参阅Silverlight 1.0 - 使用 JavaScript 进行开发。
- 跨浏览器、跨平台支持。Silverlight 在所有流行的浏览器(在任何平台上)上运行方式相同。您可以设计和开发您的应用程序,而无需担心您的用户使用哪个浏览器或平台。有关详细信息,请参阅创建和部署 Silverlight 应用程序。
- 与现有应用程序集成。Silverlight 与您现有的 JavaScript 和 ASP.NET AJAX 代码无缝集成,以补充您已经创建的功能。有关详细信息,请参阅将 Silverlight 与 ASP.NET Web 页面集成。
- 访问 .NET Framework 编程模型和相关工具。您可以使用动态语言(如托管 JScript 和 IronPython)以及 C# 和 Visual Basic 等语言创建基于 Silverlight 的应用程序。您可以使用 Visual Studio 等开发工具创建基于 Silverlight 的应用程序。有关详细信息,请参阅Silverlight 中的公共语言运行时和基类库和Silverlight 2 中的动态语言。
- LINQ。Silverlight 包含语言集成查询 (LINQ),它使您能够使用直观的本机语法和 .NET Framework 语言中的强类型对象来编程数据访问。有关详细信息,请参阅 Silverlight 中的解析 XML 数据。
- 如果您已经使用 ASP.NET,您可以将 Silverlight 与您熟悉的 ASP.NET 的服务器和客户端功能集成。您可以在 ASP.NET 中创建基于服务器的资源,并使用 ASP.NET 的 AJAX 功能与基于服务器的资源进行交互,而不会中断用户。
- 有关更多详细信息,请参阅Silverlight 架构。
基于 Silverlight 的应用程序在浏览器中运行。Silverlight 确保您可以在所有现代浏览器中运行您的应用程序,而无需创建特定于浏览器的代码。
要运行基于 Silverlight 的应用程序,用户需要在其浏览器中安装一个小型插件。该插件是免费的。如果用户尚未安装该插件,系统会自动提示他们安装。下载和安装只需几秒钟,除了安装权限外,无需用户进行任何交互。
您可以使用您已有的技能和您已熟悉的工具创建基于 Silverlight 的应用程序。您可以使用 Silverlight 创建同时使用 HTML 和 WPF 元素的网页。与 HTML 类似,XAML 允许您使用声明性语法为您的基于 Web 的应用程序创建 UI,不同之处在于 XAML 提供了更强大的元素。
使用 Visual Studio
您可以使用 Visual Studio 2008 创建基于 Silverlight 的应用程序。(Visual Studio 2008 的 Silverlight 支持作为 IDE 的插件提供。)Visual Studio 为 Silverlight 提供了与创建 .NET Framework 应用程序相同的工具,例如强大的编辑器、项目管理、调试等。
使用 Visual Studio 2008 创建基于 Silverlight 的应用程序
使用 Expression Blend
设计师可以利用 Microsoft Expression Blend 的端到端功能来设计、构建和交付基于 Silverlight 的应用程序。Expression Blend 拥有创建图形和媒体资产、设计交互性以及制作体验所需的所有功能。Expression Blend 可以生成 XAML 输出,这意味着使用 Visual Studio 的程序员和使用 Expression Blend 的设计师可以共享相同的文件。
使用 Microsoft Expression Blend 创建基于 Silverlight 的应用程序
入门资源
以下列表中的某些资源提供了有关 Silverlight 两个版本的信息;其他资源则特定于 1.0 或 2。请注意,不带版本号的术语“Silverlight”适用于两个版本。
- Silverlight 入门:介绍了使用 Silverlight 2 开发应用程序。
- Silverlight 架构:概述了 Silverlight 的架构。
- Silverlight 1.0 - 使用 JavaScript 进行开发:提供了使用 Silverlight 1.0 进行开发的信息,Silverlight 1.0 支持 XAML 标记语言和 JavaScript 用于创建应用程序。本节中包含的大部分概念性材料(动画、图形、XAML 等)对 Silverlight 2 开发人员也很有用。
- Silverlight 2 Beta 2 - 使用 .NET Framework 进行开发:提供了使用 Silverlight 2 进行开发的信息,Silverlight 2 包含 .NET Framework 功能。
- Silverlight 技术文章:提供了有关 Silverlight 的其他 MSDN 文章。
创建 Silverlight Web 部件简介
本文介绍了如何在 ASP.NET 中创建一个非常简单的 Microsoft Silverlight Web 部件,该部件托管一个画布 (XAML),该画布可以将事件映射到 ECMAScript (JScript, JavaScript)。我们使用 Microsoft Visual Studio 2005 开发 Silverlight Web 部件。Silverlight Web 部件仅在客户端使用 Microsoft Silverlight,并且基于 Microsoft Silverlight 1.0 运行时。然后,您可以在 Microsoft Office SharePoint Server 2007 和 Windows SharePoint Services 3.0 中使用 Silverlight Web 部件来显示画布 (XAML)。
必备组件
- 要成功创建和使用 Silverlight Web 部件,您必须了解以下内容:Microsoft Silverlight、XAML、ECMAScript(JScript 或 JavaScript 代码)和 ASP.NET 控件开发。
- 为了能够测试解决方案,您必须在客户端计算机上安装最新版本的 Silverlight 插件。
要查看本文中引用的 Page.xaml.js 文件和 Default_html.js 文件,请参阅完整的 Page.xaml.js 文件和 Default_html.js 文件。
创建 Silverlight Web 部件
我们任务的第一部分是在 Visual Studio 2005 中创建一个解决方案,然后创建 Silverlight Web 部件。
创建 Silverlight Web 部件
- 在 Microsoft Visual Studio 2005 中,打开一个 Visual C# 类库项目。
- 删除 Class1.cs。
- 将基本的 SilverlightWebpart.cs 添加到项目中。
- 在项目引用中,添加对 System.Web 的引用。
- 添加私有属性,用于设置 .js 文件和 .xaml 文件的路径。您可以添加属性来自定义 Silverlight Web 部件以满足您的特定需求。
- 在 Web 部件中注册以下三个 EcmaScript (JScript, JavaScript) 文件;这些文件是任何标准 Silverlight 项目或控件的一部分
- silverlight.js 一个标准文件,用于检测客户端计算机上是否安装了 Silverlight 客户端插件。如果未安装,该文件会显示一个图标,指示可以从何处安装插件。
- Default_html.js 与 createsilverlight.js 相同;此文件包含我们需要用代码清单 7 中所示的代码修改的 createSilverlight 函数。
- Page.xaml.js 包含事件侦听器。
- 添加在您的 Web 部件中生成 HTML <div> 标签的代码,其中将创建 Silverlight 对象(有关详细信息,请参阅创建自定义 Web 部件)。
- 创建一个 Default_html.js 文件并将以下代码复制到其中以修改 createSilverlight 函数。
在 Office SharePoint Server 2007 上部署 Silverlight Web 部件
您可以使用以下步骤在运行 Office SharePoint Server 2007 的服务器上部署 Silverlight Web 部件。
- 确保客户端计算机上安装了最新版本的 Silverlight 插件。如果未安装插件,当第一次加载带有 Web 部件的页面时,它会显示一个链接,指示从何处下载和安装插件。(这将自动发生,无需代码。)
-
将 SomeName.dll(在我们的示例中为 SilverlightWebPart.dll)复制到您的 SharePoint 应用程序的 _app_bin 目录中;例如,C:\Inetpub\wwwroot\wss\VirtualDirectories\80\_app_bin。 .dll 文件也可以签名并复制到全局程序集缓存。
- 将文件 default_html.js、Page.xaml、Page.xaml.js 和 SilverLight.js 复制到 SharePoint Web 应用程序的顶级站点(根)中(例如,C:\Inetpub\wwwroot\wss\VirtualDirectories\80\_app_bin)。我们也可以将这些文件复制到其他位置。将 Silverlight Web 部件属性 JSPath 更改为您复制 .js 文件的路径。
- 添加一个 <SafeControl/>
元素到 web.config 文件的以下条目中,其中包含对 SilverLight 程序集、命名空间的引用,并将其标记为安全。 - 对于强命名程序集,version、culture 和 publickeytoken 属性将添加到 SafeControl 元素中。
- 从站点集管理页面转到 Web 部件库。单击新建,选择 BasicSilverLightWebPart,然后单击填充库。
- 转到任何示例 SharePoint 站点,并将 Silverlight Web 部件添加到页面。修改自定义属性,例如 Silverlight 控件的高度和宽度。
- 确保在 Silverlight Web 部件的自定义属性中提供 Page.xaml 文件的完整路径(例如,/Page.xaml)。
- 保存或发布页面。