Moonlight Special


Published on

Slides for Mono meeting Tokyo Moonlight Special

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Moonlight Special

  1. 1. Mono meeting Moonlight Special
  2. 2. Silverlight
  3. 3. Silverlight 1.0 (beta) Silverlight 1.1 (alpha) XAML WPF Subset (ex. WPF/E) Internet Explorer / Firefox / Safari Windows Intel Mac PPC Mac Managed Code online / offline executable Shapes, Texts, Videos, Audio, Animation
  4. 4. Ok, these slides are not rich. Show me some rich stuff!
  5. 5. Technology Layers
  6. 6. Reduced CLR core libraries Xml(.Core) System mscorlib XmlReader XmlWriter XmlDocument, XPath, XSLT, Schema, Serialization Uri, collections, Debug, HttpWebRequest, Regex ≒ ECMA 335 minus security (くらい?) ComponentModel, Configuration no ADO.NET, no ASP.NET, no XML Web services Remoting, runtime serialization Linq <ul><li>System.Core.dll exists </li></ul><ul><li>Linq to XML will be supported </li></ul><ul><ul><li>no XPath / Schema in System.Xml.Core </li></ul></ul><ul><li>Linq to SQL / Linq to Entity ... </li></ul>
  7. 7. DLR on top of reduced CLR 動的言語共通基盤 IronPython 2.0 alpha MS-PL IronRuby (2007/07?) Dynamic Language Runtime VB.NET JScript C#
  8. 8. agclr / agcore WPF subset XAML parser DependencyObject DependencyProperty closed source Image, MediaElement, Polygon, Storyboard, Shapes
  9. 9. Browser Plugins <ul><li><object type=”appllication/ag-plugin” ... /> </li></ul><ul><ul><li>ActiveX control on IE </li></ul></ul><ul><ul><li>Mozilla nsplugin on Firefox </li></ul></ul><ul><ul><li>? on Safari </li></ul></ul><ul><ul><li>Opera (not supported yet) </li></ul></ul><ul><li>Developers just (indirectly) uses silverlight.js </li></ul><ul><li>features </li></ul><ul><ul><li>reads XAML and loads Canvas (or whatever) </li></ul></ul><ul><ul><li>CLR hosting (1.1 only) </li></ul></ul>
  10. 10. Moonlight ... is Silverlight for Linux
  11. 11. ReMix 07 in Paris Implementing Silverlight in 21 days ... let's see what happened there OSS版Silverlight「Moonlight」のベールが解かれる - 開発期間は3週間!,2000056023,20351226,00.htm 「Silverlight」のLinux版「Moonlight」がまもなく登場
  12. 12. Moonlight Layers
  13. 13. Code Modules <ul><li>moon </li></ul><ul><ul><li>the runtime </li></ul></ul><ul><ul><li>plugin </li></ul></ul><ul><ul><li>gtk+ hosting </li></ul></ul><ul><li>olive </li></ul><ul><ul><li>agclr : managed wrapper </li></ul></ul><ul><ul><li>hosting API </li></ul></ul><ul><ul><li>JScript compiler and runtime </li></ul></ul><ul><li>mono/mcs : (reduced) CLR </li></ul>installation: later usage: browser: use <object> in HTML gtk host: mopen [xxx.xaml]
  14. 14. Moon: the runtime Written in C++ (WPF hierarchy) C 関数のみ公開 (only for DllImport) <ul><li>Videos - ffmpeg (tentative) </li></ul><ul><li>Images – cairo </li></ul><ul><li>Texts - pango-cairo </li></ul><ul><li>Polygon - cairo -> AntiGrain? </li></ul><ul><li>Animation </li></ul>unmanaged XAML parser (object 生成を回避 ) unmanaged DependencyObject / DependencyProperty ( 無用なプロパティによるメモリ消費の回避 ) Downloader (XAML parser に必要 )
  15. 15. Moonlight plugin only mozilla/firefox for now. control rendering using Gtk Canvas Mono embedded API ( Downloader support script object access- ToDo Opera support – ToDo
  16. 16. Managed Code support <ul><li>DLR : just reuse IronPython 2.0 (alpha) </li></ul><ul><li>agclr, hosting API : mono implementation </li></ul><ul><ul><li>agclr -> mostly DO/DP wrappers </li></ul></ul><ul><ul><li>System.Silverlight (not done yet) </li></ul></ul><ul><ul><ul><li>Browser DOM access -> [DllImport(“moonplugin”)] </li></ul></ul></ul><ul><ul><ul><li>JSON serializer, HttpWebRequest, SoapHttpClientProtocol </li></ul></ul></ul><ul><li>core class library reduction (not done yet) </li></ul><ul><ul><li>NET_2_1 profile in mcs/class/* </li></ul></ul><ul><ul><li>hide and inject some members w/ Cecil </li></ul></ul>
  17. 17. Some issues Licensing moon currently uses ffmpeg: GPL moon wants AntiGrain 2.5 : GPL Name conflicts Mozilla people say no to Silverlight (No web standard )
  18. 18. Future Directions Gtk# Widgets (Desklets) Media Codecs (to replace ffmpeg) Moonlight Designer / MonoDevelop integration