Silverlight项目开发全解析
立即解锁
发布时间: 2025-08-13 02:53:19 阅读量: 23 订阅数: 25 

### Silverlight项目开发全解析
#### 一、Silverlight项目模板概述
Silverlight开发提供了多种项目模板,每种模板都有其特定的用途和适用场景。以下是对常见模板的详细介绍:
1. **Silverlight Application**:这是Silverlight项目的基础模板,初始仅包含一个页面。在Silverlight 2时代,它是创建Silverlight应用程序的唯一模板,功能相对基础,类似空白画布。适用于创建小部件、游戏、横幅、广告和视频播放器等,当不需要复杂的初始项目架构时,该模板较为合适。不过,对于业务应用程序,Silverlight Navigation Application或Silverlight Business Application模板是更好的选择。创建此模板项目时,会弹出窗口让你创建对应的Web应用程序或网站来托管Silverlight项目,并选择目标Silverlight版本。虽然技术上可以将Silverlight应用程序创建为独立项目,但这样做意义不大,且功能会受限。
2. **Silverlight Navigation Application**:Silverlight 3引入了导航框架,该模板实现了此框架,为使用导航功能提供了良好的起点。当创建应用程序(而非小部件)时,此模板非常理想。
3. **Silverlight Business Application**:与Silverlight Navigation Application模板类似,但具有更多附加功能。它会自动创建Web应用程序项目,并通过WCF RIA Services将Silverlight项目与Web应用程序项目关联起来。包含登录/注册屏幕和一些内置的身份验证功能,所有字符串存储在资源文件中,便于应用程序本地化和支持多语言。若在“新建项目”对话框中未看到该模板,需确保在框架选择下拉菜单中选择了.NET Framework 4版本。
4. **Silverlight Class Library**:本质上与标准类库项目相同,但专为Silverlight项目设计,因为Silverlight使用自己版本的.NET Framework。适用于创建自定义控件库、可重用代码库或业务逻辑库等。由于库不能单独运行,所以不会询问是否创建Web项目来托管它。需要注意的是,Silverlight项目不能引用针对完整.NET Framework创建的程序集,但针对完整.NET Framework的项目可以引用Silverlight程序集。若要在两种项目类型之间共享类库程序集,最好创建Silverlight类库;也可以创建两个项目(每种类型一个)并链接文件,当需要为针对完整.NET Framework的类库添加Silverlight不支持的额外功能时,这种方法可能有用。
5. **WCF RIA Services Class Library**:默认情况下,WCF RIA Services是在Web项目中创建业务对象,然后在Silverlight项目中复制这些对象。但这种方式无法创建理想的独立“中间层”,而该模板可以解决这个问题。使用此模板会创建两个相互关联的独立项目(一个用于服务器,一个用于客户端),业务对象的自动复制在这两个项目之间进行,而非在Silverlight和Web项目之间,提供了更多灵活性和更好的解决方案结构。若未选择.NET Framework 4版本,该模板不会出现在项目模板中。
6. **Silverlight Unit Test Application**:随Silverlight Toolkit安装,用于使用Silverlight单元测试框架对Silverlight应用程序进行单元测试。
以下是各模板的特点对比表格:
| 模板名称 | 适用场景 | 主要特点 |
| --- | --- | --- |
| Silverlight Application | 小部件、游戏等简单应用 | 初始仅一个页面,功能基础 |
| Silverlight Navigation Application | 应用程序开发 | 实现导航框架 |
| Silverlight Business Application | 业务应用程序 | 含登录/注册、身份验证,支持多语言 |
| Silverlight Class Library | 自定义控件库等 | 专为Silverlight设计 |
| WCF RIA Services Class Library | 业务对象管理 | 创建独立中间层 |
| Silverlight Unit Test Application | 单元测试 | 用于测试Silverlight应用 |
#### 二、运行和探索默认Silverlight Business Application项目
使用Silverlight Business Application模板创建新项目后,不做任何修改直接编译并运行。该模板创建的基础应用程序包含主页、关于页面、登录窗口和注册窗口,若出现问题还会显示错误窗口。这是一个非常基础的应用程序,但为构建自己的应用程序提供了很好的起点,具备一些基本功能,可轻松修改和扩展。
1. **页面导航**:点击“关于”按钮,主页会从应用程序内容区域卸载,关于页面显示。点击“返回”按钮可返回之前查看的页面。页面导航时,浏览器标题栏的页面标题和地址栏的URL会相应改变。复制地址栏的URL,导航到其他页面后再粘贴该URL并回车,应用程序会返回之前的页面,这就是深度链接,是导航框架的一部分。
2. **登录和注册**:点击“登录”按钮,会弹出模态窗口让你输入登录凭据,窗口可在屏幕上移动,应用程序会添加深色半透明覆盖层,引导用户将注意力集中在该窗口上,并阻止鼠标点击底层页面的控件。在登录窗口点击“立即注册”按钮,会显示注册窗口,这是DataForm控件的应用示例,该控件在Silverlight中创建包含数据验证的数据输入表单非常有用。将鼠标光标放在密码框旁边的信息符号上,会出现工具提示,显示该字段应用的验证类型。尝试输入不符合规则的密码或无效的电子邮件地址,字段会验证输入的数据,若验证失败会通知你。输入不符合规则的密码,密码字段的标签会变红;输入无效的电子邮件地址,电子邮件字段的标签会变红,文本框会出现红色边框(右上角有红色三角形)。将鼠标放在红色三角形上或移动焦点到该字段,会出现工具提示,显示违反的验证规则。
3. **用户注册和数据库创建**:注册新用户时,应用程序会创建一个包含ASP.NET成员资格表、视图等的SQL Server数据库,并以用户实例的形式附加到数据库。数据库文件位于Web应用程序项目的App_Data文件夹中(可能需要点击“显示所有文件”才能看到)。在服务器创建用户时,会弹出带有动画的小窗口,这是BusyIndicator控件的示例,用于提示用户应用程序正在处理任务,需要等待完成。新用户创建成功后,应用程序的用户界面会隐藏“登录”按钮,显示“注销”按钮,并显示欢迎消息,显示已登录用户的友好名称。
以下是操作流程的mermaid流程图:
```mermaid
graph LR
A[启动应用] --> B[点击关于按钮]
B --> C[显示关于页面]
A --> D[点击登录按钮]
D --> E[弹出登录窗口]
E --> F[点击立即注册按钮]
F --> G[显示注册窗口]
G --> H[输入注册信息]
H --> I{信息验证}
I -- 通过 --> J[创建用户和数据库]
I -- 失败 --> K[提示验证错误]
J --> L[显示欢迎消息和注销按钮]
```
#### 三、Silverlight项目结构分析
1. **项目整体结构**:使用Silverlight Business Application模板创建的解决方案包含Silverlight项目和Web应用程序项目,Web项目是解决方案的启动项目。Web页面下载到客户端,客户端再下载并运行Silverlight应用程序。Silverlight项目与Web项目在解决方案中关联,编译后的应用程序默认存储在Web应用程序项目的ClientBin文件夹中,展开该文件夹(首次编译解决方案后)可找到Silverlight应用程序(XAP文件)。
2. **项目链接**
- **Silverlight与Web项目链接**
0
0
复制全文
相关推荐










