一起谈.NET技术,初识Silverlight 4及其架构

简介:   简介   Silverlight 4是今年早些时候发布的。这项技术为我们带来了许多革新。它不仅是为用户带来了丰富的交互式的互联网和多媒体内容,还为我们提供了强大的轻量级的平台。我们可以在此平台上开发可移植的,跨平台的,基于网络的应用程序,并且可以从不同的源头集成服务和数据。

  简介
  Silverlight 4是今年早些时候发布的。这项技术为我们带来了许多革新。它不仅是为用户带来了丰富的交互式的互联网和多媒体内容,还为我们提供了强大的轻量级的平台。我们可以在此平台上开发可移植的,跨平台的,基于网络的应用程序,并且可以从不同的源头集成服务和数据。相比传统Web应用的界面,Silverlight应用的界面让人耳目一新。让人感觉像是Windows Form应用程序搬到了Web上。

  为什么需要Silverlight 4

  前面我们在开发Web应用的时候,碰到了许多技术上的难题,如平台兼容,不同的文件格式和通讯协议,同样的页面在不同浏览器上的表现,还有不同浏览器对Javascript的解释,经常为这些问题加班熬夜,我们没有少费脑筋来试图解决这些令人头痛的问题。有了Silverlight技术:

  • 我们就能克服现有技术平台的的不兼容性,不一致性。
  • 我们就有了能力在多平台多种浏览器上创建一致的用户体验,不管在哪里,应用程序在外观上和行为上都是统一的。
  • 我们就能利用熟悉的.net框架的类和功能将不同网络位置的数据和服务集成到一个应用程序中。
  • 我们就能为用户提供一个多媒体的,表现丰富的,操作性强的用户界面。
  • Silverlight 4为我们提供了更多的控件,更强大的功能,让我们可以开发出更强大的应用,更好地应对商务上的挑战。 

  Silverlight 4有哪些新东西? 

  •   几个实用的控件,如RichTextBox, ViewBox, WebBrowser, WebBrowserBrush等。
  •   浏览器外运行支持,浏览器外运行能象普通窗口的特性,如改变大小,置顶等。
  •   提升了信任的应用程序,允许信任的Silverlight程序可以自由读写用户文件和目录,全屏幕,调用Windows API等。
  •   更丰富的媒体,可以捕捉视屏信号和话筒语音。
  •   更强的打印功能
  •   更强更方便的UI界面,支持拖拽,支持剪贴板等等。
  •   更好的数据绑定和WCF数据服务
  •   WCF RIA 服务对多层应用支持更强。
  •   DLR的支持 

  Silverlight 4有哪些系统和浏览器支持?

  要构建有效的Silverlight 4应用,开发者有必要了解Silverlight 4的架构。

  Silverlight平台的部件

  Silverlight作为一个整体主要包括三个部分,如下表:

部件

说明

核心展现部件

负责呈现XAML所表现的UI元素,包括常用的控件,多媒体控件等,同时负责处理用户输入,事件等。

Silverlight中的.net框架

.net框架的子集。包括部件和库,其中有数据集成,可扩展的Windows控件,网络,基础类库,垃圾收集和CLR等。
有一部分Silverlight .net框架与应用程序一起部署。这些"Silverlight库"是一些程序集,不随Silverlight运行时一起发布,在Silverlight SDK中发布。开发者用到了这些Silverlight库,这些程序集就必须同应用程序一起打包。用户浏览的时候就下载到浏览器中。 这些与应用程序一起部署的的库包括新的一些UI控件,XLINQ, RSS/Atom, XML 序列化等, 和动态语言运行时(DLR).

客户端安装器和更新器

第一次浏览Silverlight应用程序,客户端的浏览器需要安装上浏览器插件,这个安装器兼更新器负责为客户端浏览器安装插件并始终保持客户端的浏览器插件最新。

  下图是MSDN官方的图,展示了Silverlight平台的部件,及一些相关部件和服务。

  核心展现部件Core presentation framework包括了XAML parser, UI Core, Inputs, DRM(digital rights management), Media, Deep Zoom等,多数是需直接与具体的操作系统API打交道的功能,所以这里没有CLR Execution Engine.

  • XAML parser负责解析XAML,能兼容不同规格的XAML
  • UI Core负责向量,bitmap,动画,文字的渲染
  • Inputs负责处理键盘,鼠标等设备的输入
  • DRM负责处理数字媒体的数字版权管理
  • Media负责处理多媒体的处理,支持不同的媒体格式和编码器
  • Deep zoom是用于高分辨率图片的放大和缩小
  • Layout负责UI元素的定位

  .net framework for Silverlight 是供应用程序使用的商业"库"。包括Data, WCF, WPF, BCL等。

  • BCL提供了.net平台上的基本类型, 集合collections,泛型Generics,加密等
  • WCF提供了应用程序处理WCF相关功能的一些类型, 用于处理SOAP, REST, RSS/ATOM等
  • Data提供了LINQ, LINQ to xml等
  • WPF提供了一些UI控件,将数据绑定到这些控件,布局,处理用户输入的一些功能。

  .net framework for Silverlight分布在若干个.net程序集中。有一部分的程序集(比如BCL)是随Silverlight 安装器在用户浏览器中安装,有一部分是在Silverlight SDK中,应用程序引用到了相关的程序集,才会随应用程序一起发布到服务器上,当有用户访问应用程序时,这些.net framework程序集才随应用程序的程序集一起下载到用户的浏览器中被CLR执行引擎(CLR Execution Engine)执行。

  CLR执行引擎(CLR Execution Engine)是这里面的核心,负责执行应用程序的.net 代码和.net framework的.net代码。CLR总是基于一个宿主。通常的宿主是一个浏览器,在浏览器外的场景时的宿主是一个操作系统进程。Silverlight 4对其CLR做了改进,Silverlight 4的CLR与桌面应用程序的CLR的差别进一步缩小。

  DLR提供了对动态语言的支持。目前支持JScript, Iron Python, Iron Ruby。这是Silverlight 4新提供的特性。

  Silverlight 4还有一些编程相关的特性:如独立存储(Isolated storage),后台线程,安全的文件管理,序列化,XAP打包,XML处理,HTML与托管代码的交互。

  • 隔离的存储提供一种安全的方式让Silverlight程序去访问浏览器本地的文件系统。
  • 后台工作者线程使异步,多线程在Silverlight上成为了可能。
  • 安全的文件管理提供一个安全的文件打开对话框,允许文件上传等。
  • 序列化使对象的序列化存储和恢复成为了可能。
  • XAP打包提供了Application类和工具来打XAP的包。.xap的包有应用程序和入口点,以便让用户浏览器插件来运行这个.xap包。应用程序的发布都是需要一个.xap包。
  • XML处理包含了处理Xml的功能。XmlReader类和XmlWriter类提供了最基本的XML处理功能,同时XLinq让开发者可以用c#或者VB.net就可以查询Xml中的数据。
  • HTML与托管代码的交互让开发者可以在托管代码中直接用HTML DOM就可以管理HTML页面里的UI元素,同时也可以写Javascript代码调用托管代码的功能,访问其中的方法,属性,激发其事件等。这个功能就为上图中的Javascript Engine和MS AJAX Library提供了可能。

  上图中的浏览器宿主(Browser Host)是用户浏览器插件提供的一个环境。它提供了运行一个Silverlight应用程序的基础环境,如Application服务,HTML DOM的集成,网络通信的基础,还有安装器。使用托管API的Silverlight应用程序都有一个继承Application类的类,有一个程序入口点,浏览器宿主(Browser Host)为应用程序建好了运行环境,然后才调用应用程序的入口。

  结束语

  以上是关于Silverlight 4的一些粗浅的认识。是任何一个Silverlight开发者想知道的内容。如果更深入些,就从多个方面来了解:它的原理,它的处理周期,它的部署,它的安全性,它的伸缩性,它的分布式计算能力,它的容错能力,等等等等。本人也是刚开始学,所知有限。有待进一步学习。等有了一点东西了再写。

  题外话:最重要的还是快速学习和分析能力。这个能力让你面对新技术时,有潜力迅速学习并掌握该技术。

目录
相关文章
|
7天前
|
运维 持续交付 API
从零构建微服务架构:一次深度技术探索之旅####
【10月更文挑战第28天】 本文记录了作者在从零开始构建微服务架构过程中的深刻技术感悟,通过实战案例详细剖析了微服务设计、开发、部署及运维中的关键要点与挑战。文章首先概述了微服务架构的核心理念及其对企业IT架构转型的重要性,随后深入探讨了服务拆分策略、API网关选型、服务间通信协议选择、容器化部署(Docker+Kubernetes)、以及持续集成/持续部署(CI/CD)流程的设计与优化。最后,分享了在高并发场景下的性能调优经验与故障排查心得,旨在为读者提供一套可借鉴的微服务架构实施路径。 ####
41 3
|
18天前
|
边缘计算 Cloud Native 安全
构建灵活高效的下一代应用架构 随着企业数字化转型的加速,云原生技术正逐渐成为构建现代化应用程序的关键支柱。
随着企业数字化转型加速,云原生技术逐渐成为构建现代化应用的关键。本文探讨了云原生的核心概念(如容器化、微服务、DevOps)、主要应用场景(如金融、电商、IoT)及未来发展趋势(如无服务器计算、边缘计算、多云架构),并分析了面临的挑战,如架构复杂性和安全问题。云原生技术为企业提供了更灵活、高效的应用架构,助力数字化转型。
42 4
|
15天前
|
Kubernetes Cloud Native 持续交付
云端新纪元:云原生技术重塑IT架构####
【10月更文挑战第20天】 本文深入探讨了云原生技术的兴起背景、核心理念、关键技术组件以及它如何引领现代IT架构迈向更高效、灵活与可扩展的新阶段。通过剖析Kubernetes、微服务、Docker等核心技术,本文揭示了云原生架构如何优化资源利用、加速应用开发与部署流程,并促进企业数字化转型的深度实践。 ####
|
2天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
3天前
|
存储 分布式计算 分布式数据库
风险数据集市整体架构及技术实现
【11月更文挑战第11天】在当今大数据时代,风险数据集市作为金融机构的核心基础设施之一,扮演着至关重要的角色。它不仅为银行、保险等金融机构提供了全面、准确的风险数据支持,还帮助这些机构实现了风险管理的精细化和智能化。本文将深入探讨一种基于大数据Lambda架构设计的风险数据集市整体架构,并详细介绍其底层实现原理及实现方式。
15 3
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
13天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
34 1
|
19天前
|
运维 Cloud Native 持续交付
云原生技术在现代IT架构中的深度应用与挑战####
【10月更文挑战第17天】 本文深入剖析了云原生技术的精髓,探讨其在现代IT架构转型中的核心作用与面临的挑战。云原生不仅是一种技术实现,更是企业数字化转型的重要推手,通过容器化、微服务、持续集成/持续部署(CI/CD)等关键要素,重塑软件开发、部署与运维模式。文章首先概述了云原生的基本原则与核心组件,随后分析了其如何促进企业敏捷性、可扩展性和资源利用率的提升,同时也指出了在安全性、复杂性管理及人才技能匹配等方面存在的挑战,并提出了相应的对策建议。 ####
56 6
|
21天前
|
Cloud Native API 持续交付
利用云原生技术优化微服务架构
【10月更文挑战第13天】云原生技术通过容器化、动态编排、服务网格和声明式API,优化了微服务架构的可伸缩性、可靠性和灵活性。本文介绍了云原生技术的核心概念、优势及实施步骤,探讨了其在自动扩展、CI/CD、服务发现和弹性设计等方面的应用,并提供了实战技巧。
|
18天前
|
运维 Kubernetes 开发者
构建高效后端服务:微服务架构与容器化技术的结合
【10月更文挑战第18天】 在数字化转型的浪潮中,企业对后端服务的要求日益提高,追求更高的效率、更强的可伸缩性和更易于维护的系统。本文将探讨微服务架构与容器化技术如何结合,以构建一个既灵活又高效的后端服务体系。通过分析当前后端服务面临的挑战,介绍微服务和容器化的基本概念,以及它们如何相互配合来优化后端服务的性能和管理。本文旨在为开发者提供一种实现后端服务现代化的方法,从而帮助企业在竞争激烈的市场中脱颖而出。
21 0
下一篇
无影云桌面