Scott Guthrie谈Silverlight(一)

threekingdoms.txt中文三国演义下载及实现人物出场统计 threekingdoms.txt全文下载:https://python123.io/resources/pye/threekingdoms.txt CalThreeKingdomsV1.py: #CalThreeKingdomsV1.py import jieba txt = open("threekingdoms.txt", "r", encoding = "utf-8").read() words = jieba.lcut(txt) counts = {} for word in words: 阅读详情
 

Scott Guthrie谈Silverlight(一)

译者:程化

 

 

 

Scott Guthrie:微软.NET研发部门的公司副总裁,负责Visual Studio开发工具,以及用微软.NET框架创建客户端和Web程序相关技术的研发。虽然身为高层管理人员,然而,Scott Guthrie保持了对技术细节相当的把握能力,只要看过他的博客,相信你对这点就会深有体会。

 

 

Charles:好的,我们又回到了Visual Studio世界。你是谁?这里都在发生什么事?

 

Guthrie:没问题。我的名字是Scott Guthrie,微软研发部总经理。基本说来,我管理着若干团队,他们创造了CLR、.NET Compact Framework、ASP.NET、Windows Presentation Foundation、Windows Forms、IIS、Commerce Server、Silverlight,以及开发Web 和Client的Visual Studio工具。

 

Charles:不可思议。啊,我们刚刚采访过你的老板,Soma,在Channel 9上谈了Orcas,恭喜你的工具发布了Beta 1版。

 

Guthrie:本周要出三个大东西。Orcas Beta 1,这已经发布到Web上了。和Windows Longhorn一起工作的IIS 7,明天,周三,应该就在Web上了,也许是你看到这个视频的前一周。Silverlight也要发布了,那应该是下周,也就是看到这个视频的那周。最近几周真是头疼。

 

Charles:让我们谈点关于Silverlight的东西,比如,我们退回一步,给我讲讲什么是Silverlight,怎么样?

 

Guthrie:没问题。Silverlight基本上提供了一个跨平台,跨浏览器的插件。它可以在Mac和Windows上工作。它可以在IE、Firefox、Safari上工作,将来还可以在Opera上工作。基本上,它使你能够创建在浏览器中运行的,比现在丰富得多的用户体验。你可以加入媒体,这意味着非常丰富的视频和音频支持;你可以流化视频,在视频上添加非常炫的效果,从而用非常非常丰富的方式在你的站点上把视频融合进来。它提供了非常丰富的矢量图形系统,这样你就可以做出很炫的图形,构建出用HTML无法实现的那种用户界面。它被设计为在一个Web页面中工作,所以很显然,你也能够使用HTML。我们将在MIX上宣布的一件重大事情是,我们将发布和Silverlight协同工作的.NET框架版本。你可以针对各种体验编程,不管是HTML、媒体还是矢量图形;不管是在客户端还是跨平台的方式。你可以使用任何托管语言,你可以用C#、VB,你可以用Python、JavaScript,你还可以用Ruby。

 

Charles:好的。回到问题上。首先,我想问的问题是,这需要一个大大的下载包,对吗?大家也会问,.NET框架怎么能够在Mac上运行?

 

Guthrie:好的,Silverlight有很多特性,如果你加上所有的图形特性,所有的媒体特性,所有的运行时特性,所有的语言特性,这是一个相当大的特性集。从.NET框架的角度来看,我们把LINQ包括了进来,我们还有网络协议栈,有线程模型,我们有基础类库,我们有许多特性。我们设计整体体验的方式是,把包含所有这些特性的下载包压缩到4M大小。随着经验增加,我们可能重新划分各部分,因此核心可能还会更小些。但是,我们下周发布的,包含了所有这些特性的Alpha版本,估计大小是4M,它被设计为花20秒或更少的时间就可以安装到系统上。基本上你有一个网页,点击一个链接,下载下来,这中间没有用户授权文件之类的东西,从开始到结束,都是非常用户友好的安装,基本上从开始下载到安装到系统中,我们希望花20到30秒,然后就可以用了。

 

Charles:这太让人吃惊了。从Windows的角度来看,我现在可以从某种程度上马上联想到你们如何裁剪基本类库来达到要求,也许用的是微型CLR,也许不是?

 

Guthrie:我们并没有使用微型CLR,实际上,不管是Mac还是Windows版本的Silverlight,其正式下载都不要求在你的系统上安装有.NET框架。它也不要求在你的系统上安装有某种媒体播放器。下载包中有在vanilla操作系统(译者注:Apple的操作系统)上运行所需要的一切,不用额外安装任何东西。

 

Charles:太令人惊讶了。

 

Guthrie:是的,我们做了许多工作。但是,我想要指出的另一件事是,我们随Silverlight一起发布的CLR版本是基于当前人们在使用的完整桌面版CLR。

 

Charles:哪个版本?Orcas?

 

Guthrie:啊,基本上是,你可以认为它来自Orcas源代码分支。基本上那是你运行Visual Studio,运行Blend,运行ASP.NET同样的浏览器,同样的类型系统,同样的即时编译器,垃圾收集器也是在Windows上发布的客户端版本,它给了你非常、非常、非常棒的性能。一般说来,我认为性能有多好依赖于你使用的测量基准,但是可以说在某些情况下,它的性能比JavaScript要高300到1000倍。听起来很夸张?但这是因为我们可以运行非常高效的代码,你知道,比起同类竞争性插件产品来说,要快10到15倍。所以,这是个非常快的执行引擎。而且,你有可用的、丰富的.NET编程环境。性能是一回事,然而,有丰富的特性也很重要,你可以用LINQ加入数据,你可以用WPF把数据绑定到界面控件上,你可以加入媒体,你可以在所有这些东西上应用向量变换,所有这些都在浏览器中,在沙盒环境下,这非常强大。

 

Charles:这简直不可思议地强大。

 

Guthrie:是的,我们非常兴奋,能够创建它和发行它,感觉非常好。

 

Charles:真酷,再次,我们回顾一下刚谈的东西,作为一个.NET开发人员,我可以用自己喜欢的.NET语言,写出非常有趣的编译后Web程序,使用Web UI,这叫做Silverlight。这简直不可思议,我认为这太非凡了,我想问的是,你们是怎么做到的?我是说,你是怎么让CLR和相关的技术可以运行在不同平台之上的,当然,CLR一开始就被设计为平台无关。那么,让我们谈谈这事,IL、别的什么?你们怎样做的?

 

Guthrie:好的。.NET框架中二进制代码的工作方式就是控制IL文件格式和引入的语义。CLR一直就被设计为基本上CPU中立、平台中立,所以,从核心架构的角度来看,我们做了很多工作。从运行时的角度来看,我们也做了很多工作,大约从.NET 2.0版本开始,我们就引入了一个类似于平台抽象层,作为框架的一部分,我们称之为平行层。在核心引擎中,任何时候我们需要进行OS操作时,我们都通过这个平台抽象层进行。这给了我们用不同层替换平行层的能力,基本上我们让顶层代码总是可以运转。我们架构CLR的基础,以及我们的目的,就是能够从单一源代码出发,产生出针对不同平台的二进制文件版本。包括针对不同版本的Windows,我们也可以使用同样的平台抽象层方法。所以,我们在这儿做了很多工作,给了我们很大的灵活性。这也意味着我们加进去的所有益处,CLR拥有的性能收益,甚至是为多核运行、多CPU运行所作的考虑,为客户端应用创建的超级高效的垃圾收集,所有这些好处,在Silverlight中都可以自动获得,这极大地有助于性能,极大地丰富了某些特性集。

 

Charles:有趣。你提到了架构,这就使事情深入了。那儿有一张白板。请你画给我们看看,画画Silverlight从架构上来看是怎样的,比如,你刚刚提到的东西至少已经有个轮廓了,CLR的架构,我们习惯在底层使用CLR和基础类库,但是,这里用的东西更紧凑些。我对了解这些东西很有兴趣,比如,这里的CLR和桌面系统的CLR不是一回事,对吗?

 

Guthrie:对,二进制文件不是一个,和桌面版本的二进制文件不同,但是,它们来自同一个代码树分支。我们确实有条件处理,在核心代码树上,我们可以为Silverlight的CLR,为完整桌面版本的CLR进行构造。是的,我们确实从Silverlight的CLR中排除了一些特性,比如,我们没有统一的角色,因为对跨平台应用和浏览器来说,这没有意义。我们也没有.NET 2.0中的服务器垃圾收集器,这是专门为服务器场景进行了优化的垃圾收集器,针对ASP.NET这样的东西,我们不需要发布它,因为在这里,只需要在浏览器中运行。而且,对于程序加载语义,也就是如何加载代码的机制,我们重写了相当一部分,我们没有Fusion,没有全局程序集缓存,所以,这里当然存在一些变化,但是,从类型系统的角度来看,从即时编译器的角度来看,以及从垃圾收集器的角度来看,基本上都来源于同样的代码树路径。在表层,基本上我们有裁剪过的完整版本.NET框架类库。你没有现在CLR拥有的15000到20000个类或API,有的是它的一个子集,经过针对构造基于浏览器程序进行特别裁剪的子集。但是,我们有集合、IO,以及线程,以及正则表达式引擎,以及XML协议栈,网络协议栈,我们也有同样的命名空间,同样的核心类型或类,它们都和现在你构造一个客户端应用程序所使用的相同。但是,我们在Silverlight包中没有一些东西,例如,NT服务器的API,或者那些对于在沙盒环境下运行的浏览器明显没有意义的东西。当你从UI的角度来看时,有基础的WPF的子集,UI框架,同样意义下的Canvas、XMAL、元素概念。这些概念都一样,命名空间也相同。我们的目标是:如果你针对这些子集编程,你构造出的代码将不光能够在Silverlight中运行,也能在完整的WPF应用中运行。在Silverlight中,我们努力要保证的一件大事就是:真正最大化你的技能集合。你了解现在的.NET,很好,你已经了解了要将自己的应用以非常丰富的方式运行在浏览器中是多么的容易,不需要学习一大堆新API。同样,一旦你学会了使用Silverlight的API,你就知道自己也可以将这些知识应用到完整的.NET框架应用程序上。所以,我认为从现有的.NET开发人员的角度来看,收获是巨大的,因为这意味着你可以在客户端运行.NET代码,在Web服务器上运行.NET代码,在数据库中运行.NET代码,在独立的WPF客户端运行.NET代码,你可以在所有这四个不同的层次使用相同的语言,相同的工具集。一旦你学会了如何使用泛型,泛型集合,了解了如何使用LINQ,或者知道如何使用线程,诸如此类,你可以把这些知识用到任何地方。

 

Charles:那么,插一句,在Silverlight中,你们确实支持Systme.threading?

 

Guthrie:我们确实有System.threading命名空间。这里有些小的裁剪,我们不支持完整的线程能力,比如,不支持创建线程。让我们回头看看,当前构造浏览器程序时有一类很棘手的事情,这类挑战是如何处理向服务器发出的回调,如何避免此时阻塞UI。如果你用的是JavaScript编程,一个挑战就是,你的代码运行于其上的线程就是浏览器用来绘制屏幕的线程。因此,如果你在JavaScript中写了一个无限循环,或者在JavaScript中使用了某种需要很长时间进行计算的东西,你的浏览器UI就不会被刷新。你的UI看起来就非常迟钝,这就给了浏览者一个暗示,表示你可能写了一个无限循环。当试图写负担沉重的Ajax应用时,这是个很大的挑战,因为你总是要回到服务器上取得更多数据,你知道,如果你对这种操作应对不当,它就会真的造成性能问题。我们在Silverlight中提供的一种能力是——在后台完成任务。这使用了你可能现在就已经了解的threading命名空间。它提供的能力让你可以这样说:喔,当数据返回时调用这些东西,获取一个可用线程,在上面进行操作。实际上,当需要进行绘制时,我们会发送一个完成信息,并且(手机响了起来……),对不起。

 

Charles:没关系,你也有个人生活,现在已经快7点钟了,我们还在让你接受Channel 9的采访。

 

Guthrie:这类场景,这类更加高级的场景,这类通向更加丰富的编程环境的场景,就包含在Silverlight中。从.NET的角度来看,这绝对不是微型CLR,绝对不只是有那么10个类看起来像是.NET,这就是.NET,并且给了你巨大的能力。

 

Charles:非常酷,太棒了。这点让人印象非常深刻。你可以获得像客户端已经安装了的CLR同样强大的能力,反过来说,在没有安装CLR的客户端上也能运行Silverlight。

 

Guthrie:是的,从我们的角度来看这是一个关键点,我们努力提供一种无摩擦的.NET部署,并且,让你可以使用HTML,使用丰富的图形,使用媒体,真正创建出某种目前无法做出的次世代体验。

 

Charles:让我来问这个问题,假设我在Windows上安装了Silverlight,出于某种原因,我们不去探讨具体原因,我之前没有安装.NET框架。然后我试图运行一个朋友给我的,要求.NET 2.0框架的应用程序。现在,我的问题实际上是:这些二进制程序都运行在怎样的沙盒中?典型说来,是CLR的程序装载器在起作用,Silverlight的装载器会找到它们吗?

 

Guthrie:沙盒是同一个,除非你启动Silverlight应用,否则和Silverlight一起发布的CLR不会被牵扯进来。这是个要非常小心处理的问题,我们想要避免偶然安装的东西与系统中其他东西发生冲突的任何机会。实际上,如果你需要,你甚至可以在同一个进程中既装入完整的.NET框架CLR,也装入Silverlight,这些代码会和平共处。

 

Charles:喔,这是重要的一点。

 

Guthrie:是的,你可以这样做,这和目前的情况不同。当前情况下,如果你把.NET 1.1和.NET 2.0装入同一个进程空间的话,会出问题。你绝对可以把Silverlight装入.NET 1.1或2.0存在于其中的进程。这是个很大的架构优势,它们不会冲突,不会造成任何问题。

 
rk3568 rk628桥片hdmi转lvds RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。 阅读详情

相关推荐

Hi3516CV610开发板ISP调优实战——从在线调试到参数固化部署全流程

本文详细介绍了Hi3516CV610开发板ISP参数从在线调试到固化部署的全流程。针对调试参数重启丢失的痛点,重点解析了如何从PQTools安全导出参数、进行格式转换与适配,并通过烧录工具或系统更新两种路径将参数永久固化至Flash。最后提供了双重验证与常见问题排查方法,确保调优效果在产品中稳定生效。

weixin_29169505的博客 425

Scott Guthrie谈Silverlight(一)

 译者:程化   Scott Guthrie:微软.NET研发部门的公司副总裁,负责Visual Studio开发工具,以及用微软.NET框架创建客户端和Web程序相关技术的研发。虽然身为高层管理人员,然而,Scott Guthrie保持了对技术细节相当的把握能力,只要看过他的博客,相信你对这点就会深有体会。  Charles:好的,我们又回到了Visual Stu

北京动点飞扬软件 743

Telegram Bot Api使用教程

其中token为你的机器人token,method为telegram给定的方法,在获取群组chat_id那一步就使用了telegram的其中一个方法(getUpdates),其他方法后面会介绍。telegram发送消息的方式类似与钉钉机器人,都是向一个api发送http请求,而且对于同一个APItelegram支持GET和POST两种请求方式.请求的api格式如下。通常来说我们都需要让机器人在一个群组里工作,所以首先我们需要将机器人添加到我们指定的群组,在群组里发送随意消息并@这个机器人,比如...

豫迷糊的码上生活 1万+

Scott Guthrie谈Silverlight(二)

Scott Guthrie谈Silverlight(二)译者:程化 Charles:你提到了WPF世界,你知道,WPF是对DirectX的抽象,这是为什么我们可以使用真3D的原因。很显然,Silverlight无法利用这个优势,因为DirectX无法在Mac上运行,对不对? Guthrie:对,是这样。 Charles:所以,Silverlight可以处理矢量图形,但这

3345

Delta机器人:运动学正反解分析

Delta机器人:运动学正反解分析 一、Delta机构简介 Delta机构是并联机构中的一种典型机构,起原始结构如图1所示。Delta机构由R.Clavel 博士在 1985年发明,是现在并联机器人中使用最多的一种,具备了并联机构所特有的优点,负载能力强、效率高、末端执行器精度高、运动惯性小,可以高速稳定运动等。因此在机器人领域获得了越来越广泛的应用。以实现高速、精准、高效的运动。           &n

花洛兮灬 3万+

WRF所需气象数据的下载方法

#数据下载是个大问题,巧妇难为无米之炊,没有数据就无法模拟啦,疫情期间国外服务器响应慢,打开网页慢都很正常啦~ WRF数据所需要的外部数据分为两种:静态地理数据,grib格式的气象数据(NAM、GFS、RUC、AGRMET等)。静态地理数据可以从WRF官网获得,比较简单,这里不做介绍。所以这篇日志重点介绍的是气象数据的获取。 提前说明,WRF官网不提供气象数据,但WRF官网提供各类气象数据的下载网址链接,所以我们下载一般还是从WRF官网开始。首先进入WRF官网,然后点击WRF ARW Uusres’ .

六出的博客 1万+

参加北京Scott Guthrie见面会的心得体会[附图]!

这次Scott Guthrie见面会议与Scott个人的介绍:http://blog.csdn.net/dotfun/archive/2008/01/14/2042985.aspx会议大概内容与心得体会:    这次会议的内容主要是介绍ASP.NET3.5与Silverlight2.0的新特性,整个会议都是Scott用英文在讲,并进行程序的演示,其中的ASP.NET3.5-MV

北京动点飞扬软件 1849

Linux下Catapro酶动力学预测工具保姆级安装指南(PyTorch+CUDA11.8适配版)

本文提供了Linux系统下Catapro酶动力学预测工具的详细安装指南,特别适配PyTorch+CUDA11.8环境。从环境准备、源码获取到虚拟环境创建、依赖包安装和模型配置,逐步指导用户完成安装流程,并包含常见问题排查和性能优化建议,帮助研究者快速部署这一高效酶动力学参数预测工具。

weixin_29278805的博客 211

Hanselminutes播客63-Silverlight上的Scott Guthrie和Jason Zander

Mysixty-third podcast is upand this one was a blast. I recorded this one at Mix just two days ago with Scott Guthrieand Jason Zander. Scott runs the teams that build IIS, ASP.NET, Atlas, CLR, Comp...

226

Camunda 7.x 系列【62】启动流程实例源码解析

为了更好的了解Camunda,接下来我们简单分析下启动流程实例相关源码

记录知识、锤炼自我 1171

基于NARX和NARX-LSTM的模型辨识与MPC控制系统调试与优化

本文针对两输入单输出非线性系统,提出基于NARX和NARX-LSTM的模型辨识与MPC控制优化方案。系统输入为固定量u1和可调量u2(8.5-140),输出目标为-0.58。现有模型存在辨识精度不足、历史输出依赖过重、预测偏差等问题。解决方案包括:数据差分处理改善非平稳性、调整延迟阶数优化模型结构、引入注意力机制替代手动加权、改进损失函数消除预测偏差。MPC控制器将结合优化模型,考虑控制变量步长约束(≥2),实现输出稳定控制。通过系统性的模型调试与控制算法优化,最终形成完整的非线性系统辨识与控制框架。

huanghm88的专栏 128

Silverlight最新动态和未来前景

2011年关于Silverlight的猜测众说不一,多数讨论都是关于Silverlight将被微软摒弃之说。一直以来,微软官方没有证实和发表任何相关公告和评论。上周,10月26日,微软副总裁Scott Guthrie接受访问,并与开发人员在线交流90分钟,其中不仅讨论了微软2011年下半年的最新产品发布,而且还讨论了不少Silverlight或者是说XAML开发人员关注的信息。

Kevin Fan 1399

ESP32S3接入讯飞在线语音识别教程及配套源代码

本文介绍了如何使用ESP32-S3开发板实现讯飞在线语音识别功能。首先,需要准备硬件设备,包括ESP32-S3开发板、麦克风模块、MicroSD卡模块和扬声器模块。接着,安装Arduino IDE并配置ESP32-S3开发环境,注册讯飞开放平台账号并获取API凭证。然后,通过I2S接口连接麦克风模块,并编写代码实现语音录制、Base64编码、API请求和识别结果处理。代码包括初始化WiFi、麦克风、系统时间,以及录制语音、发送请求、解析响应等功能。最后,通过按键触发录音,并将识别结果输出到串口。

2401_88800025的博客 746

从HTTPS到比特币:揭秘ASN.1 DER编码如何默默守护你的数字安全

本文深入解析ASN.1 DER编码在数字安全中的核心作用,从HTTPS证书到比特币交易,揭示其如何通过确定性编码和严格验证机制保障数据完整性。探讨DER与BER、CER的区别,并展示OpenSSL和比特币核心中的实际应用案例,帮助开发者理解这一关键安全技术。

weixin_30765577的博客 333

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

.NET之父Scott Guthrie做客微软北京.NET俱乐部

2008年1月9日,北京—微软北京.NET俱乐部有幸邀请到. NET之父 现任Silverlight微软开发部门总经理的Scott Guthrie出席1月13日在北京举行的聚会。届时他将与微软北京.NET俱乐部会员及广大.NET...

cuigu6163的博客 212

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ASP.NET之父Scott Guthrie,1月13日做客微软北京.NET俱乐部

ASP.NET之父Scott Guthrie做客微软北京.NET俱乐部                                                                     现场交流微软最新技术Silverlight和.NET开发     2008年1 月9日,北京—微软北京.NET俱乐部有幸邀请到ASP.NET之父 现任Microsoft 开发事业部的总...

weixin_34054866的博客 156

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

.NET之父Scott Guthrie突现京城

.NET之父Scott Guthrie做客微软北京.NET俱乐部,现场交流微软最新技术Silverlight和.NET开发 2008年1月9日,北京—微软北京.NET俱乐部有幸邀请到. NET之父 现任Silverlight微软开发部门总经理的Scott Guthrie出席1月13日在北京举行的聚会。届时他将与微软北京.NET俱乐部会员及广大.NET技术爱好者共聚一堂,面对面交流、探讨微软最新技术

马帅的专栏 2183

Silverlight学习优秀网站 推荐 我和未来有约会

首推: http://www.johnpapa.net/ John Papa is a Sr Technical Evangelist for Microsoft (formerly a Microsoft Silverlight MVP, INETA speak

Hurry的专栏 1548

Scott Guthrie 写的 Silverlight 教程索引

Scott Guthrie的《Silverlight 2初览》中的八篇教程的中文版:第一部分:使用Silverlight 2 和 VS 2008创建“Hello World”程序 第二部分:使用布局管理 (木野狐译) 第三部分:使用 Networking取回数据并填充DataGrid 第四部分:使用 Style 元素更好地封装观感 (木野狐译) 第五部分:用 ListBox 和 DataBindi...

weixin_34179968的博客 121

12月2日,微软副总裁Scott Guthrie为你讲述Silverlight的未来

2010年12月2日,微软公司副总裁Scott Guthrie及相关专家将在线为你讲述Silverlight的未来。 你将了解到下一版本的Silverlight,最新的相关开发技术,以及Silverlight开发的深入讲解。 免费在线注册:http://www.silverlight.net/news/events/firestarter/ ...

weixin_34130269的博客 149
上一篇: 乱谈SOA——IT世界观及方法论
下一篇: Scott Guthrie谈Silverlight(二)
hellothere
博客等级 码龄21年 176粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值