Basel · Baden Bern · Brugg · Lausanne Zurich Düsseldorf · Frankfurt/M. · Freiburg i. Br. Hamburg · Munich · Stuttgart · Vienna Entwicklung von SharePoint 2010 Anwendungen Simon Amrein Consultant Zürich,
© 2010 Speaker NameSimon Amrein CompanyTrivadis AG MSDN TechTalk - SharePoint 2010 für Entwickler2
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler3 Agenda Data are always part of the game. Visual Studio 2010 Support LINQ to SharePoint Client Object Model Business Connectivity Service
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler4 Better support for SharePoint development Support only for SharePoint 2010 (no extended SharePoint 2007 support) Easy way to Debug Feature/Solution F5 – Deployment Visual Studio 2010
© 2010 Templates Event Receivers Web Parts incl Visual WebPart (no more SmartParts) Workflows Content Type List / Site Definition BCS Model Empty Projext MSDN TechTalk - SharePoint 2010 für Entwickler5
© 2010 SharePoint 2010 Project Templates All Projects built using standard structure Common Project Properties Project File Project Folder Assembly Deployment Target Sandboxed Solution Site URL Startup Item MSDN TechTalk - SharePoint 2010 für Entwickler6
© 2010 SharePoint 2010 Project Structure Standard Project Nodes Properties References Features Package SharePoint Project Items (optionally added by dev using SharePoint 2010 Developer Tools) MSDN TechTalk - SharePoint 2010 für Entwickler7
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler8 Add-in for Server Explorer window Easy way to examine site artifacts Quick way to launch browser into site SharePoint Explorer extensibility Developers can write add-ins to populate nodes and provide contextual menu commands Local machines only Server Explorer
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler9 Configure Feature with VS Support Define Scope (Farm, Site, Web, WebApplication) Feature Designer
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler10 Define features and additional files for WSP-Package Edit Manifest manually if required The way to build your WSP File – No WSPBuilder needed anymore Package Explorer
© 2010 Deployment F5 deployment on testsystem STSADM / Powershell … but Solution Installer is still a good opportunity… MSDN TechTalk - SharePoint 2010 für Entwickler11
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler12 Demo Data are always part of the game. Visual Studio 2010
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler13 Agenda Data are always part of the game. Visual Studio 2010 Support LINQ to SharePoint Client Object Model Business Connectivity Service
© 2010 SQL Query string cs =“Data Source=localhost;…..“; using (SqlConnection c = new SqlConnection(cs)) { c.Open(); SqlCommand cmd = c.CreateCommand(cs); cmd.CommandType = CommandType.Text; cmd.CommandText = “SELECT * FROM…..”; SqlDataReader r = cmd.ExecuteReader(); …. string cs =“Data Source=localhost;…..“; using (SqlConnection c = new SqlConnection(cs)) { c.Open(); SqlCommand cmd = c.CreateCommand(cs); cmd.CommandType = CommandType.Text; cmd.CommandText = “SELECT * FROM…..”; SqlDataReader r = cmd.ExecuteReader(); ….
© 2010 XML Query XmlTextReader r = new XmlTextReader(“c:\data.xml”); While(r.Read()) { XmlNodeType nt = r.NodeType; switch(nt) { case XmlNodeType.Element: …. case XmlNodeType.Attribute: …. XmlTextReader r = new XmlTextReader(“c:\data.xml”); While(r.Read()) { XmlNodeType nt = r.NodeType; switch(nt) { case XmlNodeType.Element: …. case XmlNodeType.Attribute: ….
© Style CAML Query
© 2010 What is LINQ? Language Integrated Query Simplified, object-oriented way to query Bridges OOP and relational data Compile-time checked queries Provides IntelliSense inside Visual Studio Unified syntax for querying any data source MSDN TechTalk - SharePoint 2010 für Entwickler17
© 2010 LINQ to SharePoint No CAML Required Entity classes form Business Layer Strongly-typed queries, compile-time check Intellisense helps query construction Microsoft.SharePoint.Linq.dll Encapsulates the SharePoint object model queries based on the created entity classes MSDN TechTalk - SharePoint 2010 für Entwickler18
© 2010 Using LINQ to SharePoint Create Entity Classes Create DataContext Writer Queries MSDN TechTalk - SharePoint 2010 für Entwickler19
© 2010 Creating Entity Classes Generated from spmetal utility spmetal /web: /code:Projects.cs Create classes and add them to project MSDN TechTalk - SharePoint 2010 für Entwickler20
© 2010 DataContext Object DataContext class allows access to list data MSDN TechTalk - SharePoint 2010 für Entwickler21
© 2010 Modifying List Data Changes to entity objects are tracked by Linq provider Changes submitted SubmitChanges() method is called MSDN TechTalk - SharePoint 2010 für Entwickler22
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler23 Demo Data are always part of the game. LINQ to SharePoint
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler24 Agenda Data are always part of the game. Visual Studio 2010 Support LINQ to SharePoint Client Object Model Business Connectivity Service
© 2010 Why Client Object Model? More SharePoint Web services is a major request Client Object Model provides complete API instead of more services Provides an abstraction layer to return results as recognizable SharePoint objects Consistent developer experience across platforms (.NET, ECMAScript, Silverlight) MSDN TechTalk - SharePoint 2010 für Entwickler25
© 2010 Supported Areas Site Collections and Sites Lists, List Items, Views, and List Schemas Files and Folders Web, List, and List Item Property Bags Web Parts Security Content Types Site Templates and Site Collection Operations MSDN TechTalk - SharePoint 2010 für Entwickler26
© 2010 Equivalent Objects Member names mostly the same from server to client (e. g., SPWeb.QuickLaunchEnabled = Web.QuickLaunchEnabled) MSDN TechTalk - SharePoint 2010 für Entwickler27
© 2010 Using the Client Object Model MSDN TechTalk - SharePoint 2010 für Entwickler28
© 2010.NET Client OM ClientContext clientContext = new ClientContext(" //Load method clientContext.Load(clientContext.Web); clientContext.Load(clientContext.Web.Lists); //LoadQuery method var q1 = from list in context.Web.Lists where list.Title != null select list; var r1 = context.LoadQuery(q1); ClientContext clientContext = new ClientContext(" //Load method clientContext.Load(clientContext.Web); clientContext.Load(clientContext.Web.Lists); //LoadQuery method var q1 = from list in context.Web.Lists where list.Title != null select list; var r1 = context.LoadQuery(q1);
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler30 Demo Data are always part of the game..net Client Object Model
© 2010 Silverlight Client OM Silverlight Development Enabled by Client OM Can use Silverlight in separate ASPX page or in Web Part Can utilize Client OM in Silverlight to create SharePoint apps MSDN TechTalk - SharePoint 2010 für Entwickler31
© 2010 Creating Silverlight Web Parts A Web Part can be a host for Silverlight SharePoint ships with Silverlight web part The web part can contain custom properties that are sent to Silverlight via the InitParameters property The XAP file can be deployed to LAYOUTS and loaded at run time The Silverlight application can then make use of the Client OM. MSDN TechTalk - SharePoint 2010 für Entwickler32
© 2010 Silverlight Client OM MSDN TechTalk - SharePoint 2010 für Entwickler33
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler34 Demo Data are always part of the game. Silverlight WebPart
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler35 Agenda Data are always part of the game. Visual Studio 2010 Support LINQ to SharePoint Client Object Model Business Connectivity Service
© 2010 Business Connectivity Services Provide connectivity support to the following types of external systems: Databases Web/WCF services Microsoft.NET Framework connectivity assemblies Custom data sources Read and Write Provides rich cache, offline work features and supports cache-based operations. Batch and Bulk Operation Support MSDN TechTalk - SharePoint 2010 für Entwickler36
© 2010 BCS Architecture CustomSQL External Data WCF Cache Business Connectivity Services Client Runtime SharePoint Server 2010 Business Connectivity Services Secure Store Service (SSS) Search, Workflow, Web Parts External Content Types (ECT) Server Runtime SharePoint Site VSTO Package VSTO Package External List External List Office Client Office Integration External Business Parts Custom Code.NET Connector MSDN TechTalk - SharePoint 2010 für Entwickler37
© 2010 Solution Types, Personas and Tools Power User / No code RAD Dev OOB UX on thin and rich clients (Outlook and Groove) based on External Lists Custom Forms in SharePoint and Groove Connect to existing back-end integration services or simple databases Simple BDC Models (few ECTs, simple associations) Transparent packaging (managed by BCS) Advanced Advanced Dev Custom Code Custom UX and data integration on thin and rich clients (apps that support VSTO add-ins) Through Office, SharePoint and BCS Object Models Custom back-end connectivity through.Net objects Complex BDC models (many ECTs, complex associations) Explicit packaging (managed by dev) SharePoint Designer Simple MSDN TechTalk - SharePoint 2010 für Entwickler38
© 2010 Development Approaches SharePoint Server (Prod / Dev) IT Admin Import & Configure WSP/BDC SI/IT Devs “Live” connection SharePoint Designer No code, discover and configure existing back-end integration end-points Connect to (existing) WCF, ADO.Net and.Net Objects Simultaneously author thin and rich client UX for External List and InfoPath Forms Pro Dev Produce WSP/ClickOnce Package w/BDC Model WSP/ ClickOnce Package Create custom back- end integration logic using.Net code Author thin and rich client UX (independently) as SharePoint and VSTO customization projects MSDN TechTalk - SharePoint 2010 für Entwickler39
© 2010 SharePoint Designer Connecting to an external datasource – Just a few clicks to go… MSDN TechTalk - SharePoint 2010 für Entwickler40
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler41 Agenda Data are always part of the game. External List – SharePoint Designer
© 2010 Visual Studio 2010 Support The tool for creating “.NET Connectors” MSDN TechTalk - SharePoint 2010 für Entwickler42
© 2010 MSDN TechTalk - SharePoint 2010 für Entwickler43 Agenda Data are always part of the game. External List – Visual Studio
© 2010 Courses / Events Microsoft Ignite Training SharePoint 2010 for developers (4Tg) in Zürich in Basel SharePoint 2010 – Was ist neu für Administratoren und IT Professionals (5Tg) in München in Zürich MSDN TechTalk - SharePoint 2010 für Entwickler44
Basel · Baden Bern · Brugg · Lausanne Zurich Düsseldorf · Frankfurt/M. · Freiburg i. Br. Hamburg · Munich · Stuttgart · Vienna Thank you! ?