一起谈.NET技术,从原理来看Silverlight 4的架构

简介:   简介  在前文谈到要从多个方面来了解:Silverlight的原理,处理周期,部署,安全性,伸缩性,分布式计算能力,容错能力,等等等等。这篇从原理的角度来看Silverlight 4架构相关的一些事情。

  简介

  在前文<<初识Silverlight 4及其架构>>谈到要从多个方面来了解:Silverlight的原理,处理周期,部署,安全性,伸缩性,分布式计算能力,容错能力,等等等等。这篇从原理的角度来看Silverlight 4架构相关的一些事情。

  浏览器的插件

  前文已经介绍过,整个Silverlight平台中包括一个安装器。这个安装器负责将浏览器插件安装上,并在客户浏览器那里搭建起运行Silverlight程序的基础环境。初次浏览Silverlight内容的客户必须先安装一个浏览器插件。安装了插件之后,插件安装程序向IE, Firefox等浏览器注入了插件。我们可以在浏览器中的扩展管理中看到,如图1和图2:

图1

图2

  同时我们可以看到文件夹C:\Program Files\Microsoft Silverlight\4.0.50826.0建立了。其中的文件有:

 
 
驱动器 C 中的卷没有标签。
卷的序列号是 A474
- 0C97

C:\Program Files\Microsoft Silverlight\
4.0 . 50826.0 的目录

2010 / 09 / 26 11 : 10 < DIR > .
2010 / 09 / 26 11 : 10 < DIR > ..
2010 / 08 / 26 00 : 59 5 , 961 , 544 agcore.dll
2010 / 08 / 26 00 : 59 15 , 688 agcp.exe
2010 / 09 / 26 11 : 09 < DIR > ar
2010 / 09 / 26 11 : 09 < DIR > bg
2010 / 09 / 26 11 : 09 < DIR > ca
2010 / 08 / 26 02 : 48 3 , 518 , 464 coreclr.dll
2010 / 08 / 26 00 : 59 73 , 552 coregen.exe
2010 / 09 / 26 11 : 09 < DIR > cs
2010 / 09 / 26 11 : 09 < DIR > da
2010 / 09 / 26 11 : 08 < DIR > de
2010 / 09 / 26 11 : 09 < DIR > el
2010 / 09 / 26 11 : 08 < DIR > es
2010 / 09 / 26 11 : 09 < DIR > et
2010 / 09 / 26 11 : 09 < DIR > eu
2010 / 09 / 26 11 : 09 < DIR > fi
2010 / 09 / 26 11 : 08 < DIR > fr
2010 / 09 / 26 11 : 09 < DIR > he
2010 / 09 / 26 11 : 09 < DIR > hr
2010 / 09 / 26 11 : 09 < DIR > hu
2010 / 09 / 26 11 : 09 < DIR > id
2010 / 09 / 26 11 : 08 < DIR > it
2010 / 09 / 26 11 : 08 < DIR > ja
2010 / 09 / 26 11 : 08 < DIR > ko
2010 / 09 / 26 11 : 09 < DIR > lt
2010 / 09 / 26 11 : 09 < DIR > lv
2010 / 08 / 26 02 : 48 253 , 952 Microsoft.VisualBasic.dll
2010 / 09 / 26 11 : 09 < DIR > ms
2010 / 08 / 26 02 : 48 1 , 589 , 248 mscorlib.dll
2010 / 09 / 26 11 : 09 6 , 187 , 008 mscorlib.ni.dll
2010 / 08 / 26 02 : 48 4 , 096 mscorrc.dll
2010 / 09 / 26 11 : 09 < DIR > nl
2010 / 09 / 26 11 : 09 < DIR > no
2010 / 08 / 26 00 : 59 1 , 023 , 816 npctrl.dll
2010 / 08 / 26 02 : 48 760 , 832 npctrlui.dll
2010 / 09 / 26 11 : 09 < DIR > pl
2010 / 09 / 26 11 : 09 < DIR > pt
2010 / 09 / 26 11 : 09 < DIR > pt - BR
2010 / 09 / 26 11 : 09 < DIR > ro
2010 / 09 / 26 11 : 08 < DIR > ru
2010 / 08 / 26 00 : 59 350 , 064 Silverlight.Configuration.exe
2010 / 08 / 26 02 : 48 747 , 520 Silverlight.ConfigurationUI.dll
2010 / 09 / 26 11 : 09 < DIR > sk
2010 / 09 / 26 11 : 09 < DIR > sl
2010 / 08 / 26 00 : 59 426 , 848 SLMSPRBootstrap.dll
2008 / 07 / 10 13 : 32 5 , 587 slr.dll.managed_manifest
2010 / 09 / 26 11 : 09 < DIR > sr - Cyrl - CS
2010 / 09 / 26 11 : 09 < DIR > sr - Latn - CS
2010 / 09 / 26 11 : 09 < DIR > sv
2010 / 08 / 26 02 : 48 536 , 576 System.Core.dll
2010 / 09 / 26 11 : 09 2 , 365 , 440 System.Core.ni.dll
2010 / 08 / 26 02 : 48 233 , 472 system.dll
2010 / 08 / 26 02 : 48 225 , 280 System.Net.dll
2010 / 09 / 26 11 : 09 652 , 288 System.Net.ni.dll
2010 / 09 / 26 11 : 09 665 , 088 System.ni.dll
2010 / 08 / 26 02 : 48 413 , 696 System.Runtime.Serialization.dll
2010 / 09 / 26 11 : 10 1 , 186 , 816 System.Runtime.Serialization.ni.dll
2010 / 08 / 26 02 : 48 520 , 192 System.ServiceModel.dll
2010 / 09 / 26 11 : 10 1 , 598 , 976 System.ServiceModel.ni.dll
2010 / 08 / 26 02 : 48 73 , 728 System.ServiceModel.Web.dll
2010 / 09 / 26 11 : 10 138 , 240 System.ServiceModel.Web.ni.dll
2010 / 08 / 26 02 : 48 143 , 360 System.Windows.Browser.dll
2010 / 09 / 26 11 : 10 374 , 272 System.Windows.Browser.ni.dll
2010 / 08 / 26 02 : 48 1 , 470 , 464 System.Windows.dll
2010 / 09 / 26 11 : 10 4 , 473 , 856 System.Windows.ni.dll
2010 / 08 / 26 02 : 48 319 , 488 System.Xml.dll
2010 / 09 / 26 11 : 10 844 , 288 System.Xml.ni.dll
2010 / 09 / 26 11 : 09 < DIR > th
2010 / 09 / 26 11 : 09 < DIR > tr
2010 / 09 / 26 11 : 09 < DIR > uk
2010 / 09 / 26 11 : 09 < DIR > vi
2010 / 09 / 26 11 : 08 < DIR > zh - Hans
2010 / 09 / 26 11 : 09 < DIR > zh - Hant
32 个文件 37 , 153 , 739 字节
42 个目录 39 , 298 , 207 , 744 可用字节

  那么,在浏览器中的插件是怎么注册上去的呢? 让我们来看看注册表。

  IE的插件:

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{32C73088-76AE-40F7-AC40-81F62CB2C1DA}
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{DFEAF541-F3E1-4c24-ACAC-99C30715084A}
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{DFEAF541-F3E1-4c24-ACAC-99C30715084A}\InprocServer32

  其键值是: c:\Program Files\Microsoft Silverlight\4.0.50826.0\npctrl.dll

  Firefox的插件:

  HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@Microsoft.com/NpCtrl,version=1.0

  Path=c:\Program Files\Microsoft Silverlight\4.0.50826.0\npctrl.dll

  ProgId: AgControl.AgControl.4.0

  增加的MIME类型:

  MIME: application/x-silverlight

  MIME: application/x-silverlight-2

  Silverlight如何工作?

  Silverlight是以宿主浏览器为基础环境的。npctrl.dll作为插件直接与宿主浏览器接口。npctrl.dll本身是个ActiveX控件,可以供我们调用。npctrl.dll会调用agcore.dll来处理一些非托管的API, 也会调用coreclr.dll来创建一个CLR。我们编写的Silverlight应用程序是运行在coreclr.dll创建的CLR当中的。这个图可以很好地帮你理解:

图3

  注:

  npctrl.dll:Silverlight plug-in

  agcore.dll and coreclr.dll:Core services

  CLR execution engine 和相关的AppDomain都是由coreclr.dll搭建的。我们的Silverlight程序运行在其中。

  Silverlight Runtime

  有一些文章提到了Silverlight Runtime这个术语。指的就是在用户机器上安装的用来运行Silverlight程序的环境。这篇文章提到的内容都是关于Silverlight runtime的。我们可以再多看看C:\Program Files\Microsoft Silverlight\4.0.50826.0目录下的文件。比如BCL所在的mscorlib.dll,注意到其大小没有,它比通常的Desktop安装,即普通的.net framework安装的mscorlib.dll小了不少。还有System.Windows.dll也是。我们可以查看一下其中的类型。其类型与普通的.net framework的System.Windows.dll差别挺大。

  结束语

  到目前为止,我们只看到了一点点MSDN上没有讲的东西。还有很多东西有待我们去发掘。

目录
相关文章
|
20天前
|
存储 缓存 运维
微信读书十周年,后台架构的技术演进和实践总结
微信读书经过了多年的发展,赢得了良好的用户口碑,后台系统的服务质量直接影响着用户的体验。团队多年来始终保持着“小而美”的基因,快速试错与迭代成为常态。后台团队在日常业务开发的同时,需要主动寻求更多架构上的突破,提升后台服务的可用性、扩展性,以不断适应业务与团队的变化。
40 0
|
1月前
|
运维 监控 Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。文章介绍了 ACK One+ACS 的弹性架构如何解决了春招的燃眉之急,让智联招聘的技术团队能够聚焦创新业务开发,欢迎关注。
|
1月前
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
1月前
|
数据采集 存储 算法
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
76 2
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
|
2月前
|
存储 人工智能 自然语言处理
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
本文深入探讨了混合专家(MoE)架构在大型语言模型中的应用与技术原理。MoE通过稀疏激活机制,在保持模型高效性的同时实现参数规模的大幅扩展,已成为LLM发展的关键趋势。文章分析了MoE的核心组件,包括专家网络与路由机制,并对比了密集与稀疏MoE的特点。同时,详细介绍了Mixtral、Grok、DBRX和DeepSeek等代表性模型的技术特点及创新。MoE不仅解决了传统模型扩展成本高昂的问题,还展现出专业化与适应性强的优势,未来有望推动AI工具更广泛的应用。
201 4
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
|
2月前
|
机器学习/深度学习 人工智能 算法
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
该研究系统梳理了大型多模态推理模型(LMRMs)的技术发展,从早期模块化架构到统一的语言中心框架,提出原生LMRMs(N-LMRMs)的前沿概念。论文划分三个技术演进阶段及一个前瞻性范式,深入探讨关键挑战与评估基准,为构建复杂动态环境中的稳健AI系统提供理论框架。未来方向聚焦全模态泛化、深度推理与智能体行为,推动跨模态融合与自主交互能力的发展。
156 13
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
|
2月前
|
人工智能 负载均衡 API
长连接网关技术专题(十二):大模型时代多模型AI网关的架构设计与实现
随着 AI 技术快速发展,业务对 AI 能力的渴求日益增长。当 AI 服务面对处理大规模请求和高并发流量时,AI 网关从中扮演着至关重要的角色。AI 服务通常涉及大量的计算任务和设备资源占用,此时需要一个 AI 网关负责协调这些请求来确保系统的稳定性与高效性。因此,与传统微服务架构类似,我们将相关 API 管理的功能(如流量控制、用户鉴权、配额计费、负载均衡、API 路由等)集中放置在 AI 网关层,可以降低系统整体复杂度并提升可维护性。 本文要分享的是B站在大模型时代基于多模型AI的网关架构设计和实践总结,希望能带给你启发。
140 4
|
2月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
429 61
|
2月前
|
人工智能 缓存 自然语言处理
Bolt DIY架构揭秘:从模型初始化到响应生成的技术之旅
在使用Bolt DIY或类似的AI对话应用时,你是否曾好奇过从输入提示词到获得回答的整个过程是如何运作的?当你点击发送按钮那一刻,背后究竟发生了什么?本文将揭开这一过程的神秘面纱,深入浅出地解析AI对话系统的核心技术架构。
90 5
|
3月前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。

热门文章

最新文章