09.30-10.00 Uhr Einleitung
10.00-11.45 Uhr SharePoint 2010 Entwicklung 11.45-12.45 Uhr Mittagspause
12.45-14.30 Uhr Application Lifecycle Management mit VS 2010
14.30-15.00 Uhr Pause
15.00-16.30 Uhr MOSS Development Prozess auf Basis von SPALM
16.30-17.00 Uhr Diskussion und Zusammenfassung
Agenda
• Pages and User Interface
• Data Search and Retrieval
• Dealing with External Data
• Visual Studio 2010 SharePoint Integration
• Solution Deployment
Pages and User Interface
• Teamsites as Wiki Pages
• New WebParts as ASCX + Visual WebPart
• New elements
− Ribbon
− Dialog Framework
• New technologies
− AJAX
− Silverlight 3.0
Ribbon and Dialog Framework• Client Site Custom Actions in Ribbon
• Context Sensitive Ribbon
Ribbon and Dialog FrameworkReplaceable SharePoint OOB forms
Open as Web Page or as Dialog
Silverlight 3 and SharePoint 2010New UI Option
• Media Player Web Part
• Organization Browser
• List and Site Creation
• Office Web Applications
• Silverlight Web Part− Simple way to upload
− Silverlight CLR compatible
• Client Object Model− Call SharePoint API’s
• REST APIs− Simplifies List data access
• Support for remotely hosted Silverlight applications− Delegated authentication/application principals
Developer Dashboard
stsadm -o setproperty -pn developer-dashboard -pv ondemand
Farm Site List Data External Lists
Client-side
Server-side
Strongly-typed
Weakly-typed lists
Strongly-typed lists
Weakly-typed lists
Client OM
REST APIs
New in 2010
Improved
Strongly-typed access to List Data on Server
• Entity based programming on the server
− SPMetal Code Generation Utility
− LINQ Queries
− Strong Types
• Translates LINQ queries into CAML queries
• Can be used in
− Web Parts, Event Receivers, Sandboxed code
Sample: Original LINQ query
from p in data.Projectswhere
p.Client.City == "Chicago"select new
{
Name = p.Title,
ClientName = p.Client.Title,
Budget = p.BudgetHours
};
Sample: Generated CAML Query
<Query>
<Where>
<And>
<BeginsWith>
<FieldRef Name="ContentTypeId" />
<ValueType="ContentTypeId">0x0100</Value>
</BeginsWith>
<Eq>
<FieldRef Name="ClientCity" />
<Value Type="Lookup">Chicago</Value>
</Eq>
</And>
</Where>
</Query>
<ViewFields>
<FieldRef Name="Title" />
<FieldRef Name="ClientTitle" />
<FieldRef Name="BudgetHours" />
</ViewFields>
<ProjectedFields>
<Field Name="ClientTitle" Type="Lookup"
List="Client" ShowField="Title" />
<Field Name="ClientCity" Type="Lookup"
List="Client" ShowField="City" />
</ProjectedFields>
<Joins>
<Join Type="LEFT" ListAlias="Client">
<!--List Name: Clients-->
<Eq>
<FieldRef Name="Client" RefType="ID" />
<FieldRef List="Client" Name="ID" />
</Eq>
</Join>
</Joins>
Sample: Original LINQ query
from tc in data.Timecardswhere
tc.Id == 4group tc by tc.WorkDate.Value.ToString("MM/yy") into tcs
select new
{
Month = tcs.Key,
Total = tcs.Sum(t => t.Hours)
};
Sample: Generated CAML Query
<Query>
<Where>
<And>
<BeginsWith>
<FieldRef Name="ContentTypeId" />
<ValueType="ContentTypeId">0x0100</Value>
</BeginsWith>
<Eq>
<FieldRef Name="ID" />
<Value Type="Counter">4</Value>
</Eq>
</And>
</Where>
</Query>
<ViewFields>
<FieldRef Name="StaffId" />
<FieldRef Name="WorkDate" />
<FieldRef Name="Hours" />
<FieldRef Name="Project" />
<FieldRef Name="ID" />
<FieldRef Name="owshiddenversion" />
<FieldRef Name="Title" />
</ViewFields>
<RowLimitPaged="TRUE">2147483647</RowLimit>
Unified Clients
• Unified object model across all clients
− JavaScript
− .NET CLR
− Silverlight CLR
• Subset of Server OM
− Webs, Lists, ListItems,
− Content Types, Fields
− etc.
Generally How It Works
Execute commands
in the batch:
Client.svcSequence of
commands:
context.ExecuteQuery();
command 1;
command 2;
command 3;
Send results back
command 1;
command 2;
command 3;
Process results
ServerClient Application
Client Object Model Sample .NET
ClientContext context =
new ClientContext http://server
Web site = context.Web;
context.Load(site);
context.ExecuteQuery();
site.Title = site.Title + " and Client OM";
site.Update();
context.ExecuteQuery();
Data Access TechnologiesDecision Matrix
Client OM Server OM REST LINQ
On SharePoint Server
On Remote Computer
Site / List Objects
Traverse Relationships
Calling Pattern (Direct)
Calling Pattern
(Callback)
Strongly-Typed
(Columns as Properties)
Dealing with External Data
• New Service Application: Business Connectivity Services
• Read/Write Access to WCF/SQL/OLEDB datasources
• Improved Tooling (SharePoint Designer, Visual Studio, Office Applications)
ConnectivityBusiness Connectivity Services
DB
Connector
WCF/WS
Connector
.NET
Assembly
Connector
Custom
Connector
External data
BCS Server Runtime
External Content Type (ECT)The building block• Superset of entity capabilities; describes:
− Structure of the external system (Fields, Methods, Connection)
− How this data behaves within SharePoint and Office
• Manage and reuse from a central location
• Added to the Business Data Connectivity service through:− SharePoint Designer
− Visual Studio 2010
− Import into the Business Data Connectivity service as part of a model
Workflow ImprovementsPopular and Successful Base in 2007
• Visual Studio 2010 Initiation and Association Forms
• New Workflow Design Surface in SPD
• Import SPD Workflows into Visual Studio
• Build SPD Actions in Visual Studio
• Visio 2010 Workflow Design
• Browser Based Visualization
• High Privilege Workflows
• Control Where Service Runs
• Site Workflows
• Reusable Declarative Workflows
• List Workflow Event Receivers
• Pluggable Workflow Services
• Performance and Scale
• Fully Customizable OOB Workflow
• Approval Designer
Development on Windows 7
• Either SharePoint Foundation or SharePoint Server
• Requires x64 OS
• Not Supported for Production
• Only for Stand Alone Installation
• Can be Disabled through Group Policy
• Just for Developers
• Requires Following Install Guide in SDK
Windows 7
Visual Studio 2010
Support for SharePoint Sandboxed Solutions
Import WSP from SharePoint Designer including Workflow
Build Workflow Steps for SharePoint Designer
Extensibility for Development of Additional SharePoint Artifacts
SharePoint Business Connectivity Services support
Web Part, BDC and Workflow designers
Package and Deploy SharePoint projects
Generate WSP for Production Deployment
View SharePoint site in Server Explorer
Team Foundation Server Integration
Broad SharePoint Support
Develop, Deploy and Debug
Web Part Designer
Project Types
Sandboxed Solutions
Essential Agility
Easy Deployment
Iterative Development
Access To Shared Servers
SharePoint Online
Essential Stability
Safe for Other Users
Limited API Access
Monitored Resources
Separate Process
Site Collection Limits
Sandboxed Solutions
• Bound to the Sitecollection
• Controlled by Site collection admins
• Are executed in an isolated environment(UserCode Service Application)
• User Coder Service Application can scale out tomultiple load balanced servers
• Monitored for resource abuse
• All SharePoint Designer Solutions are sandboxedby default
SharePoint Online
Upgrade and PackagingWSP as the SharePoint Installer
• WSS Solution Package (WSP)
• Visual Upgrade from version to version
• SharePoint UI Save To Template
• Better-defined Upgrade Semantics– Declarative upgrade mappings
– Upgrade callouts for features
• Application discovery in SharePoint Sites
• WSPs as unified developer format– Works in both site collections and on machine
Business Collaboration Applications
Portal for LOBApplication Data
Customized SharePoint Server 2010 Workloads
Visual Studio® 2010 SharePoint Tools
MSDN SharePoint SDK
Team Foundation Server
SharePoint Designer 2010
Microsoft Partner Program
MSDN® Forums
Patterns and Practices SharePoint GuidanceMicrosoft® Certification Exams
Composites
Widely Deployed Platform
Sandbox Solutions
Trained Administrators
Microsoft Official Curriculum
Search
Content
Communities
Sites
Insights
One WebPart Solutions
Run on Premises or Hosted
Run on SharePoint®Online
DEVELOPER TOOLS
COMMUNITY ECOSYSTEM
EXECUTION ENVIRONMENT
TARGET APPLICATION
TYPES
SHAREPOINT SERVER 2010 WORKLOADS
BUSINESS LOGICASP.NET Code Behind
WorkflowsEvent Receivers
ACCESS CONTROLSharePoint Sites
SharePoint Groups
InfoPath2010
©2009 Microsoft, Microsoft Dynamics, the Office logo, and Your potential. Our passion. are trademarks of the Microsoft group of companies. The information herein is for informational purposes only and
represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on
the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR
STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.