SharePoint and Collaboration

Download Report

Transcript SharePoint and Collaboration

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!