![dlr 动态语言](https://i-blog.csdnimg.cn/blog_migrate/40b3e305dd7c6c859b87c5b8a6737b98.png)
dlr 动态语言
Updated: I got some feedback from some MSFTies and this is an updated ecosystem diagram. For reference, here's the original ecosystem diagram . This version is better, but still who knows, eh?更新:我从一些MSFTies得到了一些反馈,这是一个更新的生态系统图。 供参考,这是原始的生态系统图。 这个版本比较好,但是谁知道呢?
I'm over here at Mix. There were some big announcements at Mix07 this year. Many were expected, a few were not. I've been following WPF/E with interest for the better part of a year.
我在混合这里。 今年在Mix07上有一些重大公告。 期望很多,有些则没有。 一年的大部分时间里,我一直关注WPF / E。
Overheard: "There's a lot of college kids, lotta high school kids out there who expect more things to move." - CEO of MLB.com referring to the increased expectations young folks have while on the web.
听到的话: “那里有很多大学生,许多高中生希望有更多的发展。 ”-MLB.com的首席执行官指的是年轻人在网络上的期望越来越高。
I'm off in a corner here at some party trying to put it all into context. For a complete list of links, I'll suggest you head over to Sam Gentile's site.
我在某个聚会的一个角落里试图将所有内容都考虑在内。 有关链接的完整列表,建议您访问Sam Gentile的网站。
Most Awesome Marketing-Guy Quote of the Day: "This announcement opens up significant opportunities in both the 'lean-in' and 'lean-back' environments." - MLB Marketing Guy refererring to folks watching MLB.com at their desks, or on their couches.
今日最出色的营销专家行情: “此公告在“App.svelte”和“后仰”环境中都带来了巨大的商机。 ”-MLB营销专家推荐在办公桌前观看MLB.com的人们,或者在他们的沙发上。
Here's what was announced in the driest terms:
这是最干燥的说法:
Silverlight 1.0 Beta - Lightweight Browser plugin that can render XAML, play HD 720p Video with included VC-1 codecs and be accessed via JavaScript. Supports Windows and Mac OS X.
Silverlight 1.0 Beta-轻量级浏览器插件,可以呈现XAML,使用随附的VC-1编解码器播放高清720p视频并可以通过JavaScript进行访问。 支持Windows和Mac OSX。
Silverlight 1.1 Alpha - All of the above including a CLR 2.0 (Whidbey) compiled CLR and Type System along with select BCL (Base Class Library) classes from the .NET Framework 3.5 (Orcas) including DLINQ. Also included is a new dynamic language runtime (DLR) layer and support coming for Python, Ruby,
VBScriptVBx (Visual Basic "10") and JavaScript (ECMAScript). Compiled/JIT'ed JavaScript is at least 1000x faster than interpreted. Supports Windows and Mac OS X.Silverlight 1.1 Alpha-以上所有内容,包括CLR 2.0(Whidbey)编译的CLR和类型系统,以及来自.NET Framework 3.5(Orcas)的精选BCL(基类库)类,包括DLINQ。 还包括一个新的动态语言运行时(DLR)层,并支持Python,Ruby,
VBScriptVBx(Visual Basic“ 10”)和JavaScript(ECMAScript)。 编译/ JIT编写JavaScript比解释的至少快1000倍。 支持Windows和Mac OSX。Expression Studio - Design, asset management and interaction design application suite with XAML editing and Visual Studio integration, along with a Media Encoder.
Expression Studio- 具有XAML编辑和Visual Studio集成以及媒体编码器的设计,资产管理和交互设计应用程序套件。
Silverlight Streaming - More developer focused than YouTube, this service gives you 4GB of free storage and virtually unlimited streaming of video clips using Microsoft's content deployment network. Why? Because Silverlight looks bad if your web host sucks, and if Microsoft hosts your videos, you, Microsoft, and Silverlight all look good.
Silverlight流式传输-此服务比YouTube更加注重开发人员,该服务为您提供4GB的免费存储空间,并且使用Microsoft的内容部署网络几乎可以无限流式传输视频片段。 为什么? 因为如果您的虚拟主机托管,Silverlight看起来很糟糕,并且如果Microsoft托管您的视频,那么您,Microsoft和Silverlight都看起来不错。
Some good places to start learning are:
一些开始学习的好地方是:
http://www.silverlight.net - The Community Site
http://www.silverlight.net-社区站点
http://www.silverlight.net - The Community Site
Telerik's Silverlight Controls (Telerik sponsors my podcast, but the still rock)
Telerik的Silverlight Controls (Telerik赞助了我的播客,但仍然坚如磐石)
QuickStarts and Samples
Be sure to check out Jon Udell's Podcast with Jon Lam where they talk about the DLR (Dynamic Language Runtime).
确保与Jon Lam一起观看Jon Udell的Podcast ,他们在其中谈论DLR(动态语言运行时)。
- Also, once you've installed it, if you run Firefox, put "about:plugins" in the address bar, and note that Silverlight is installed as the "WPFE Plugin." 另外,安装完后,如果您运行Firefox,请在地址栏中输入“ about:plugins”,并注意Silverlight已作为“ WPFE插件”安装。
Now, what follows is just me talking. Not my company, just me and everything here is just my opinion and ruminations.
现在,接下来就是我在说什么。 不是我的公司,只有我,这里的一切只是我的见解和反省。
Everyone who saw the keynote has a different take on what they've seen, and what Silverlight means to them. While the Microsoft messaging was pretty spot-on, I think that some context couldn't hurt.
看到主题演讲的每个人对所看到的内容以及Silverlight对他们的含义都有不同的理解。 尽管Microsoft的消息传递非常准确,但我认为某些上下文不会受到损害。
Silverlight has Flash-like qualities, and Adobe was brilliant to counter the coming announcement with the Open Sourcing of Flex. All this means more choices for me, the developer.
Silverlight具有类似Flash的特质,Adobe出色地通过Flex的Open Sourcing来应对即将发布的公告。 所有这些对我(开发人员)意味着更多选择。
Overheard: "This is the biggest thing since God talked to Moses. Well, maybe not, but it's still up there."
窃听: “这是自上帝与摩西交谈以来最大的事情。恩,也许不是,但它仍然存在。 ”
While folks are justifiably stoked about the rich media and interaction benefits of Silverlight, and I don't mean to draw attention away from those good things, but I want to touch on the most game-changing aspects of this announcement while you all are watching 720p HD video over Silverlight and thinking this is a direct shot over the Flash bow.
尽管人们对Silverlight的丰富媒体和互动优势感到很高兴,但我并不是要把注意力从那些美好的事物上移开,但我想在大家都在看的情况下,谈谈本公告中最具游戏性的方面通过Silverlight进行720p高清视频,并认为这是Flash弓的直接镜头。
1.不应低估新的动态语言运行时的影响。 (1. The impact of the new Dynamic Language Runtime should not be underestimated. )
This new layer on the CLR adds a number of features around code generation and dynamic type systems that take the CLR's already decent support for dynamic languages to a considerably greater level. This DLR will enable support for Python, EcmaScript 3.0, Visual Basic "10" (VBx - VB as Dynamic Language), and Ruby. Initially this support will be enabled in Silverlight in the browser sandbox, but will no doubt move to the server side soon.
CLR上的这一新层为代码生成和动态类型系统增加了许多功能,这些功能使CLR对动态语言的本已不错的支持达到了更高的水平。 此DLR将支持Python,EcmaScript 3.0,Visual Basic“ 10”(动态语言为VBx-VB)和Ruby 。 最初,将在浏览器沙箱的Silverlight中启用此支持,但是毫无疑问,它将很快移至服务器端。
A cool side note; John's team added a subtle nod to the Ruby team in their demo. If you want to access a .NET library, like say, List.AddRange(), when you access it from Ruby it'll be list.add_range. Subtle, but an important (and classy) statement of respect for one of the things that Ruby programmers feel strongly about.
有趣的旁注; John的团队在他们的演示中向Ruby团队添加了一个微妙的点头。 如果您想访问.NET库(例如List.AddRange()),那么当您从Ruby访问它时,它将是list.add_range。 关于Ruby程序员强烈尊重的事物之一的微妙但重要(优雅)声明。
1a。 DLR,IronPython和IronRuby的代码将根据Microsoft许可许可证发布。 (1a. Code for the DLR, IronPython and IronRuby will be released under the Microsoft Permissive License.)
This is nothing but a good thing. I look forward to seeing what the folks who use Boo (another alternate .NET language) and the MonoRail and Castle Project guys come up with in to exploit these new dynamic services for their languages and environments.
这不过是一件好事。 我期待看到使用Boo(另一种替代.NET语言)的人们以及MonoRail和Castle Project的家伙提出来为他们的语言和环境开发这些新的动态服务的想法。
2.镇上有一个“新” CLR,它不仅用于动画。 (2. There's a "new" CLR in town, and it's for more than just animation. )
During the demo, ScottGu showed a Windows Developer connecting to a "CoreCLR Remote Debugging Service." The text "CoreCLR" appeared briefly in the Attach to Process Window in Visual Studio.
在演示过程中,ScottGu向Windows开发人员展示了连接到“ CoreCLR远程调试服务”的信息。 文本“ CoreCLR ”短暂出现在Visual Studio的“附加到进程”窗口中。
Check out this great diagram of the Silverlight 1.1 world, at right - click for the giant version.
右键单击此巨型图,查看这张Silverlight 1.1世界的伟大图表。
The CoreCLR term refers to the CLR that powers the Silverlight 1.1 Alpha. I like to think of this as a "reimagining" or refactoring of the current CLR. The Silverlight CLR isn't tiny, micro, or crippled. It's refactored, modularized, tightened, simpler with fewer dependencies. This new CLR design will likely power and influence future CLR versions. The diagram above is my own speculation, memory and from Googling around.
CoreCLR术语是指为Silverlight 1.1 Alpha供电的CLR。 我喜欢将其视为对当前CLR的“重新构想”或重构。 Silverlight CLR并非微小,微小或残缺。 它经过重构,模块化,严格,更简单,依赖更少。 这种新的CLR设计可能会增强和影响将来的CLR版本。 上图是我自己的推测,记忆和谷歌搜索。
Also, the CoreCLR in Silverlight can live in the same process space as the existing CLR. So if Internet Explorer has a .NET plugin or toolbar loaded, Silverlight keeps working fine.
而且,Silverlight中的CoreCLR可以与现有CLR驻留在相同的处理空间中。 因此,如果Internet Explorer加载了.NET插件或工具栏,Silverlight仍可以正常工作。
2a。 您可以在Silverlight中使用和重用现有的.NET程序集,甚至可以使用业务逻辑 (2a. You can use and re-use existing .NET assemblies, business logic even, in Silverlight )
The assembly format is the same - it's the same CLR - so things that you've previously used on the server-side and potentially (depending on the libraries in the BCL you used) reuse them on the browser-side and finally put all these Core2Duos to work doing more than just waiting for <angle brackets to show up> for rendering.
汇编格式是相同的-它是相同的CLR-因此,您先前在服务器端使用过的东西(并可能(取决于所用BCL中的库))可能在浏览器端重用它们,最后将所有这些东西Core2Duos所做的工作不仅仅是等待<尖括号显示>进行渲染。
2b。 它适用于Mac。 相同的二进制文件,没有交叉编译,只有IL,可以跨平台工作。 (2b. It works on a Mac. Same binaries, no cross compilation, just IL, working cross-platform.)
The Mac version of Silverlight is a Universal Binary and runs the same code and renders the XAML exactly the same on the Mac as it does on Windows. There's also, as mentioned before, support for debugging Silverlight client apps running on a Mac directly from within Visual Studio.
Mac版本的Silverlight是通用二进制文件,运行相同的代码,并且在Mac上呈现的XAML与在Windows上呈现的完全相同。 如前所述,还支持直接在Visual Studio中调试在Mac上运行的Silverlight客户端应用程序。
Overheard: "It's the new smart client. It's a chubby client. Everyone knows chubby girls are smarter."
听到: “这是新的聪明的客户。这是一个胖的客户。每个人都知道胖的女孩更聪明。 ”
One great prt of the demo was done entirely in TextMate on a Mac where ScottGu created a Silverlight XAML file and CodeBehind in IronRuby. There was no Visual Studio or C# to be seen. The potential for Silverlight to energize the LAMP stack and complete with mXml is great. Silverlight might be the only Microsoft technology in a solution. Everything can be served by any Web Server as long as the mime-types line up.
该演示的一个重要部分完全是在Mac上的TextMate中完成的,其中ScottGu创建了Silverlight XAML文件,并在IronRuby中创建了CodeBehind。 没有可视的Studio或C#。 Silverlight激发LAMP堆栈并带有mXml的潜力很大。 Silverlight可能是解决方案中唯一的Microsoft技术。 只要mime类型排队,任何内容都可以由任何Web服务器提供。
3.您的XAML可以广泛使用。 (3. Your XAML can be used all over. )
One thing to know about the XAML rendering that's happening on Silverlight is that it's a different XAML parser/renderer than the one included in WPF.
关于Silverlight上发生的XAML渲染,要了解的一件事是,它与WPF中包含的XAML解析器/渲染器不同。
If you're on Vista, try this cool test. Open up the Accessibility Magnifier and hover over any WPF app, like the New York Times Reader. Rather than little raster/bitmaps becoming large raster/bitmaps, you'll see beautiful scaled vectors. As long as what you're looking at is a XAML vector rendered on Vista with WPF, you can scale it forever.
如果您使用的是Vista,请尝试进行这项出色的测试。 打开“辅助功能放大镜”并将鼠标悬停在任何WPF应用程序上,例如“纽约时报阅读器”。 您会看到美丽的缩放矢量,而不是小小的栅格/位图变成大的栅格/位图。 只要您要查看的是在Windows Vista上使用WPF渲染的XAML向量,就可以永久缩放它。
I speculate - I haven't tried this yet - that if you put the Vista magnifier over a Silverlight XAML-created vector I suspect you'll get a scaled bitmap, not a smooth vector. This is because Silverlight will run on a bare-naked Windows XP (not even SP2) machine, and Silverlight's XAML renderer is painting via GDI. This is not a huge bummer, but it's a significant and very clear, visceral way to illustrate that there are two XAML renderers. Fortunately XAML is a clear spec, and both WPF and Silverlight (on both platforms)should both render identical XAML identically. It's not open to interpretation the way that HTML was/is.
我推测-我还没有尝试过-如果将Vista放大镜放在Silverlight XAML创建的矢量上,我怀疑会得到缩放的位图,而不是平滑的矢量。 这是因为Silverlight将在裸露的Windows XP(甚至不是SP2)计算机上运行,并且Silverlight的XAML渲染器正在通过GDI进行绘制。 这并不是一个大麻烦,但它是说明存在两个XAML渲染器的一种重要且非常清晰的内在方式。 幸运的是,XAML是一个明确的规范,并且WPF和Silverlight(在两个平台上)都应相同地呈现相同的XAML。 它不能解释HTML过去/现在的方式。
4.这是一个JavaScript / CLR类型桥 (4. It's a JavaScript/CLR Type bridge )
Silverlight can act, it seems, as a bridge between the world over in-browser Javascript and in-Silverlight CLR-code. Your CLR code can get ahold of the DOM and manipulate it just as your in-browser Javascript can reach into Silverlight and access properties and dispatch events.
Silverlight可以充当浏览器内Javascript和Silverlight CLR代码之间的桥梁。 您的CLR代码可以掌握DOM并对其进行操作,就像浏览器中的Javascript可以进入Silverlight并访问属性和调度事件一样。
Overheard: "This is the most significant launch since .NET 1.0 and I don't think 10% of the audience gets that."
窃听: “这是自.NET 1.0以来最重要的发布,我认为没有10%的受众了解这一点。 ”
I'm pretty stoked about this whole thing, and I'm going to dive into both Silverlight and Flex, along with other options like OpenLaszlo as there's many ways to create a Rich Internet Application these days. The addition of an integrated client-side CLR will allow for greater scalability in large systems where the server is called upon to do calculations that really belong on the (increasingly powerful) client-side.
我对整个事情感到非常兴奋,并且我将深入研究Silverlight和Flex以及OpenLaszlo之类的其他选项,因为如今有很多创建富Internet应用程序的方法。 集成的客户端CLR的添加将在大型系统中提供更大的可伸缩性,在大型系统中,服务器被要求进行真正属于(越来越强大)客户端的计算。
<disclaimer>I don't work for Microsoft, nor is any of the data on that diagram from NDA'ed sources. It's very likely wrong, so enjoy.</disclaimer>
<disclaimer>我不是为Microsoft工作的,该图上的任何数据也不来自NDA的来源。 这很可能是错误的,请尽情享受。</ disclaimer>
I may also have overheard myself saying all those quotes, but one can't be sure about these things. :)
我可能也听错了自己说所有这些报价的情况,但是人们对这些事情并不确定。 :)
翻译自: https://www.hanselman.com/blog/putting-mix-silverlight-the-coreclr-and-the-dlr-into-context
dlr 动态语言