Silverlight Development in SharePointIn this session Neil will demonstrate how Silverlight has become an integral part of the SharePoint 2010 experience.
Download ReportTranscript Silverlight Development in SharePointIn this session Neil will demonstrate how Silverlight has become an integral part of the SharePoint 2010 experience.
Silverlight Development in SharePoint 2010 In this session Neil will demonstrate how Silverlight has become an integral part of the SharePoint 2010 experience. Then he will walk through current and future Silverlight Development techniques using Visual Studio, Expression Blend, Web Services and the new Client Object Model. About the Speaker • Company: Gig Werks • Neil Barkhina is an MCAD Certified professional with nearly 7 years of experience working with .NET technologies. He specializes in web development and SharePoint technologies and has worked on numerous projects including Leading Development on a SharePoint Intranet site for the largest real estate firm in New York. He has also worked in the video games industry doing 3D Game Development and Mobile Phone Applications. About Silverlight • Browser plug-in client • Supports – Windows, Mac, Linux – IE, Firefox, Safari • Supports rich media scenarios (video) • Subset of .net, subset of WPF • 100+ Controls OOB • Mobile Future: Windows Phone 7 • Third Party Moonlight project under development for GNU/Linux Silverlight 1 • Rich Media Scenarios (Videos) • Programming involved writing XAML and javascript “codebehind” Silverlight 2 • Version 2.0 released October 2008 • Write applications using managed code and .NET languages (C#, VB .NET) • Rich UI such as animation, vector graphics and audio-video playback • Deep Zoom Silverlight 3 • New controls: datagrid, treeview • AAC audio decoding, H.264 video, 1080p streaming • Perspective 3D • Bitmap API • Out-of-Browser Silverlight 4 • • • • • • • • Web cam and Mic support Printing Right mouse click support RichTextBox control Hosted Browser Support (html in silverlight) Multi-touch Support for Chrome Browser Deploy applications to “set-top boxes” Vs. Flash • Pros: – Flash is not a development environment – Easy transition for existing .NET developers – Easy transition for existing Flash developers, uses many of the same concepts: key frames, animations, gradients, transformations – Able to use Visual Studio – Future: Full hardware 3D support • Cons: – Market penetration still lagging, but gettings stronger. Currently at 60% of internet devices!! Development Methodology • Separation of Design and Code • Designers can work independently using the Expression Suite • XAML data can be indexed by search engines Development Methodology • XAML – Serialization of .net objects – Represents visual UI, separate from implementation – Designable in Expression Blend xaml code border.CornerRadius = new CornerRadius(2); LinearGradientBrush lgb = new LinearGradientBrush(); lgb.StartPoint = new Point(0.5, 0); lgb.EndPoint = new Point(0.5, 1); GradientStop gs = new GradientStop(); gs.Color = Color.FromArgb(0,255,255,255); gs.Offset = 0; lgb.GradientStops.Add(gs); gs = new GradientStop(); gs.Color = Color.FromArgb(0, 209, 209, 209); gs.Offset = 1; lgb.GradientStops.Add(gs); = <Border CornerRadius="2"> <Border.Background> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="#FFFFFF" Offset="0"/> <GradientStop Color="#D1D1D1" Offset="1"/> </LinearGradient> </Border.Background> </Border> lgb.Background = lgb; Themeable Controls Microsoft Expression • Blend is the main tool for XAML layout • Expression Design can be used for creating graphical assets. Like Photoshop Key Points • Silverlight uses a subset of the .NET framework. • Similar to WPF, XAML syntax, not as many controls • Can’t mix DLLs between .NET and silverlight • Runs in a isolated security sandbox • Can effect the DOM • All shapes defined as vectors, no loss of quality for scaling, transformations Limitations • Network calls must be made to the TLD from which it originated (same exact port) • Can make cross domain calls with a crossdomain.xml file • Can do sockets programming with a predefined set of ports 4502-4532 • All Server side calls must be made to a WCF or Web Service • All Server side calls must be invoked asynchronously • Subset of .net types – Missing: XmlDocument, ADO.NET Data, ArrayList – No DataTables, but you can use LINQ! Why Silverlight and SharePoint? Silverlight Presentation Client Integration SharePoint Security Logic Layer App Model Data Layer Development Prerequisites • • • • • Visual Studio 2008 SP1 Silverlight 3 tools for Visual Studio Blend 3 System.Web.Silverlight DLL in GAC ASP .NET AJAX Set up new project • Use new visual studio template for creating Silverlight projects • Design surface is read only (in Visual Studio 2008) • Use Blend for Layout SharePoint 2007 Integration (old) • You must have the xap MIME type registered, works in IIS 7 out of the box • Can also use zip/xap trick • All communication with server must be done using web services layer • I recommend web services instead of WCF • Watch out for HTTP/HTTPS SharePoint 2007 Integration (old) • Embed “Install Silverlight” image in solution • Use random string to prevent caching • Use the System.Web.Silverlight control to ease management of Silverlight TAG (requires ScriptManager on page) • Pass initial parameters using InitParams • Set up width/height and maxframerate Current Development • Visual Studio 2010 • integrated designer surface and toolbox support • Blend 4 beta • Visual Studio 2010 RC for Windows Phone development • You can manually upload XAP file to a simple document library • Build directly into the Clientbin folder of SharePoint • Write an application to upload XAP to SharePoint Hosting Silverlight in SharePoint 2010 • Script/markup on page • Silverlight ASP.NET control • Parts – Out-of-box Silverlight Web Part – Custom Web Part • Full-page (web part host page) Talking to SharePoint • Web Services – More coverage • Client Object Model – Site, nav, security services – Very flexible • REST – Easiest to use – For fixed list schema • Rendering Data to Page Web Services Advanced Operations SharePoint Server Operations Client OM Advanced List Operations Site Operations Security REST Working with list data, fixed schema REST • Read/update/delete of list data • Object-oriented, ATOM-based means • Standards-based, consistent with other data sources • Details: – In VS, Add Service Reference – http://yourserver/yoursite/_vti_bin/listdata.svc Client Object Model • Based on SharePoint server-side OM • Also for JavaScript and Managed Code • Two main concepts: – To read data from objects, you must ask for it – Reads and writes are sent in a asynchronous batch – Call backs must invoke the UI thread • All namespaces don’t have “SP” at the front • Details: – <SharePointRoot>\14\TEMPLATE\LAYOUTS\clientbin\ – Asynchronous Load model SOAP Web Services • Fixed functions exposed in the product, or build your own • More MOSS, WSS functionality covered • Not all services representable in SL WCF Client • Details: – See SDK for list of web services – Of course, also in 2007!