Advertisement

PHP And Silverlight - DevDays session

Developer Advocate
Jun. 2, 2009
Advertisement

More Related Content

Advertisement

More from Maarten Balliauw(20)

Advertisement

PHP And Silverlight - DevDays session

  1. PHP and Silverlight LEVEL 200 Maarten Balliauw & Kevin Dockx RealDolmen
  2. Who are we? Maarten Balliauw – RealDolmen Kevin Dockx – RealDolmen E-mail: E-mail: maarten.balliauw@realdolmen.com kevin.dockx@realdolmen.com Blog: Blog: http://blog.maartenballiauw.be http://kevindockx.blogspot.com Twitter: http://twitter.com/maartenballiauw June 1, 2009 PHP and Silverlight 2
  3. Agenda • What is Silverlight? • Why Silverlight? • Why Silverlight and PHP? • Building an application using both • More on Silverlight • Q&A June 1, 2009 PHP and Silverlight 3
  4. What is Silverlight? • Rich Applications are the future, today – Adobe Flex – Microsoft Silverlight • Silverlight – “A framework for providing rich applications to the browser” – “A cross-browser, cross-platform implementation of the .NET Framework for building and delivering the next generation of Rich Internet Applications for the web” June 1, 2009 PHP and Silverlight 4
  5. What is Silverlight? • 4-5 MB plugin – Download once, distributed through Windows Update – Also available on Linux (Moonlight) and Mac • Runs in browser, on the client – Internet Explorer – Firefox, Safari, Opera, Chrome • Subset of the full .NET Framework – Originated from Windows Presentation Foundation • Rich UI: XAML / .NET code: C# - VB.NET June 1, 2009 PHP and Silverlight 5
  6. Why Silverlight? • HTML / PHP / ASPX / AJAX – Best days are over… – Extending HTML (CSS 3, AJAX, …) – “like putting lipstick on a pig” • Silverlight – Stateful model – .NET Framework – UI Capabilities – Cross-platform June 1, 2009 PHP and Silverlight 6
  7. Why Silverlight and PHP? • Best of both worlds? • PHP – Rapid application programming – Ideal as back-end using JSON or SOAP – Re-use your existing PHP logic • Silverlight – Rapid user interface development – Create rich interfaces using a rich framework June 1, 2009 PHP and Silverlight 7
  8. Programming Silverlight • XAML – “an XML file that defines user interfaces” – Tool: Expression Blend (or Eclipse) • .NET – Rich framework offering endless possibilities – Tool: Microsoft Visual Studio (2008, .NET 3.5, SP1) (or Eclipse) • PHP – i.e. Zend Framework – Tool: Zend Studio (or Eclipse PDT)  Strong separation of UI design & logic June 1, 2009 PHP and Silverlight 8
  9. Getting started • Visual Studio 2008 SP1 • Silverlight Tools for VS2008 SP1 – VS2008 Updates – Project Templates – Runtime – SDK • Expression Blend 2.0 SP1 • Possibility: Eclipse4SL - http://www.eclipse4sl.org/ June 1, 2009 PHP and Silverlight 9
  10. • Under active development (ongoing) • Catching up Visual Studio 2008 Silverlight editing possibilities – But just like VS2008: still not the rich designer that Expression Blend is… • Currently Win & Mac • Next milestone: full SL debugging http://www.eclipse4sl.org June 1, 2009 PHP and Silverlight 10
  11. Why Eclipse4SL? • Allows Eclipse developers to build Eclipse Developer RIA with Silverlight • Allows Collaboration between – Web Designers Common Project – .NET Developers System Web – Eclipse Developers .NET Developer Designer (Java, PHP, ..) June 1, 2009 PHP and Silverlight 11
  12. Editing a Silverlight Solution DEMO June 1, 2009 PHP and Silverlight 12
  13. What about my data? • Silverlight does not include data namespaces (client tech)! • For most apps, this forces you to use a Service Oriented Architecture June 1, 2009 PHP and Silverlight 15
  14. Communicating (with data services) • Silverlight includes support for – WebClient, WebHttpRequest-classes – REST, JSON, SOAP, … – Windows Communication Foundation – … almost any kind of service can be accessed • Preferred way to communicate: through WCF – BasicHttpBinding June 1, 2009 PHP and Silverlight 16
  15. Zend Framework SOAP • Not 100% compatible WS-I Basic Profile 1.1  – http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html • WCF supports the ZF implementation • Silverlight doesn’t: subset of WCF • SOAP service should be possible with NuSOAP • Solution we used: JSON June 1, 2009 PHP and Silverlight 17
  16. Communicating with JSON-service • CrossDomain.xml / ClientAccessPolicy.xml – Tells SL it/who can access the service • Use WebClient • Add handler to completed event • Call service method (Async) June 1, 2009 PHP and Silverlight 18
  17. {Liquify} your brain BarTender - Communicating with service DEMO June 1, 2009 PHP and Silverlight 19
  18. BarTender - Communicating with service DEMO June 1, 2009 PHP and Silverlight 20
  19. Keywords when working with data • DataContext • DataBinding • INotifyPropertyChanged/CollectionChanged • ValueConverters June 1, 2009 PHP and Silverlight 21
  20. What else is there? • Localization • Isolated Storage June 1, 2009 PHP and Silverlight 30
  21. Resources: Silverlight Toolkit • Contains controls, components, utilities to use in SL apps (MS, source available) – AutoCompleteBox, different Panel controls, UpDown control, Treeview, Expander, … – Charting component – ImplicitStyleManager – Various themes included • http://www.codeplex.com/Silverlight June 1, 2009 PHP and Silverlight 31
  22. Resources: Blacklight • Contains components to use in SL apps, focussed on design (3rd party, source available) – Glass, DropShadow, InnerGlow, OuterGlow, Perspective Shadow, Radial Shadow Border – DragDrop Panel, Animated Layout Panel • http://www.codeplex.com/Blacklight June 1, 2009 PHP and Silverlight 32
  23. Resources • http://silverlight.net/ • http://codeplex.com/Silverlight • http://codeplex.com/Blacklight • http://silverlightdragdrop.codeplex.com June 1, 2009 PHP and Silverlight 33
  24. Questions and Answers June 1, 2009 PHP and Silverlight 34
  25. Next steps… • Since we are last today… • Go grab a beer! • Pay us a beer!  • Enjoy your day and weekend! June 1, 2009 PHP and Silverlight 35
  26. http://blog.maartenballiauw.be http://kevindockx.blogspot.com

Editor's Notes

  1. Intro: ieder stelt zichzelf voor 
  2. Talk: Kev
  3. Talk: begin, MaartenTalk: vanaf tweede bolleke: KevinRichapp: UI, look, feel, think out of the box of whatnormalappscan do, branding, user friendly, ups productivity
  4. Talk: KevMaarten: Q: What’sthis WPF thing?Kev A: It’s a graphicalsubsystem, part of the .NET 3.0 framework, whichuses XAML todeveloprich user interfaces. It’s the de factosuccessor of Windows Forms.Moonlight: 2.0 in betanow, includes 3.0 features
  5. Talk: Kev(grapje PHP )Beste tijd gehad: stateless model, steeds state doorgeven (viewstate) of werken met session. AJAX al beter, maar: te traag indien veelvuldig gebruikt wegens javascript. Al bij al: like putting lipstick on a pig. SL: stateful, gelijkaardig aan windows-programming; UI: XAML, quasi onbeperkt in UI design, mogelijkheden, transformatiesCompatibility: plugin voor IE, Firefox, Safari, Opera, Chrome, op Windows, Mac, Linux (Moonlight)
  6. Talk: Maarten(grapje Silverlight)  W2K8 server pricing 
  7. Talk: KevTalk: Maarten (PHP punt)Strong separation of UI design & logic
  8. Talk: Kev / Maarten
  9. Talk: Maarten
  10. Talk: Maarten
  11. Demo: MaartenCreate SL in VS, switch naar Eclipse (omgekeerd niet ideaal, want dan wordt er geen solution file aangemaakt) Open SL solutionusing Eclipse4SLQuickly show peoplearound Openen in Visual Studio (rechtsklik op SL-project, open in VS, maar )Kev neemt over, toont basiclayouting, VS2008, BlendSwitch to VS2008 and Blendfor the real stuffMaarten: Q: Can I host thison a PHP page?  even code laten zin in HTML waar je een SL appembed
  12. Talk: KevKev: usecreated demo solution, usehtml-pagefor host, tellthismight as wellbe a php-page
  13. Talk: KevKev: in newsolution, add a few borders, add a few buttons, style ‘emusingblend, animate the borders in.
  14. Talk:Kev
  15. Talk: KevTalk: Maarten legt WCF uit
  16. Talk: Maarten-SOAP must comply to the WS-I Basic Profile 1.1 standardfor SL-What is JSON?
  17. Talk: KevMaarten: Q: Why these files? (security, cross-domainaccess, … de dingen die je bij ajaxdevelopment ook tegenkomt – (bij ajax, ook geen cross domain calls))Kev: A: These files willdefinewhocanaccessyour service, and thusallow cross domain calls (crossdomain komt van flash)Kev: stress thatthis is just ONE WAY of communicatingwith services from SL
  18. DEMOMaarten:Creating a JSON service in PHP using Zend Framework /AddCrossDomain/ClientAccessPolicyKev:Consuming the service in SilverlightCall Service Method
  19. FF mensen de kans geven om hun dorst te lessen  (nvdr: NIET de zaal verlaten, WEL bestellen via onze site ;-))
  20. Begin:so, you’veseenitwork, now: what’sunder the cover? Diveinto the SL programming modelVolgende slides: tonen in code, belangrijke zaken overlopen, en dan terug naar de slidesTalk: Kev
  21. Talk: Kev
  22. Talk: Kev
  23. Talk: KevMaarten: Q: Thisbasicallymeansthatwhenever data changes, myapplicationwillautomaticallyknow?Kev: A: yup, SL controlsautomaticallyhandle the NotifyPropertyChangedeventwhenfired to update their UI ifneeded
  24. Talk: Kev
Advertisement