2. Who is that guy? www.steria.se
Matthias Einig SharePoint developer since 2005
SharePoint Architect MCP MCSA, MCPD, MCITP MCTS
, ,
Steria AB
Stockholm, Sweden SCRUM Master and Product Owner
Contact: Main Focus:
@mattein • Solution Architecture,
mei@steria.se • Solution Development,
www.matthiaseinig.de • SharePoint ALM,
• Solution Quality Assurance
3. What’s in the box? www.steria.se
Cross-Site PerformancePoint Credit & Award
Blogs Publishing Standard Layout Notifications Services System
Mobile
Wikis Multi-lingual UI Office Integration Connectivity Visio Services Infopath Forms
Information
Standard Rights Content
Branding Management PowerPivot Workflows WebParts Organizer
Permission Metadata
Usage Analytics Search MySites Management Management Follow
Web Content Business Claims based
Management Excel Services Intelligence Microblogging One Click Sharing authentication
List/Library
Site Mailbox Templates Newsfeed SkyDrive Pro eDiscovery Word Automation
Business
Connectivity
Communities Auditing Services Site Templates Shredded Storage and much more…
4. Great, so why do I have to develop? www.steria.se
- Configuring/using the standard components
- Having different or more complex requirements
- Migrating legacy applications to SharePoint
- Changing Look & Feel
- Integrating into the corporate infrastructure
- Integrating external systems
- Automating business processes
SharePoint is just a big Toolbox
5. What can I do with it? www.steria.se
Types of Customization
Exploit standard functionality
Create/Change functionality
Integrate external functionality
28/01/2013 5
6. How? www.steria.se
SharePoint Server 2013 Developer Scenarios
Deployment Options Development Options Development Tools
On-Premise Farm Installation Farm-Trust Solution Web Browser
Office 365 &
SharePoint Online Sandbox Solution SharePoint Designer 2013
Hosted Installation SharePoint-Hosted App Visual Studio 2012
Provider-Hosted App Eclipse, LAMP, Etc.
Azure Auto-Hosted App
7. So what’s App? www.steria.se
Apps are a new very different way to extend SharePoint
Self Contained
More scenario-focused
Event Tracking
Ticket Management System
Robust
Built-in robust semantics for install, upgrade & uninstall
Apps are for End Users
Cloud & Web-Oriented
8. Why Apps??? www.steria.se
More stable/secure SharePoint environment
No custom code on server
Better maintainability/upgradeability
Consume Apps from the store
Customize SharePoint without going through IT
Quicker time to delivery
Develop packages instead of artefacts
Technology independent (.net, HTML, JS, PHP etc. )
Integrate external services better (i.e. Twitter)
9. Three Flavors of App-hosting www.steria.se
SharePoint-Hosted App SharePoint
Apps hosted in SharePoint in isolated web
• Reuse web elements SharePoint SharePoint
(lists, files, out-of-box web parts) Web App Web
• No server code allowed
Use one HTML, CSS, JavaScript
Cloud
Auto-Hosted App
• Only supported in Office 365 Windows
SharePoint
• Windows Azure + SQL Azure provisioned Azure
Web
invisibly Website
Provider-Hosted App
• “Bring your own server hosting infrastructure” SharePoint Self hosted
• Apps can use any technology (i.e. Java, PHP) Web Site
10. What Apps can do… www.steria.se
Shape Description Example
Immersive Full • Entire browser & UI Resource Tracking,
Page App • App that implements a Budgeting
new scenario
App Part • Surfaces as an iFrame Weather,
• Similar to a WebPart Stocks
Maps
Extension App • Extend Ribbon and item Display Document
menu actions Print to Print
• Similar in SP2010 Service Vendor
11. …and what not? www.steria.se
SharePoint apps do not “live” on the SharePoint server
Cannot run server-side code in SharePoint environment
Custom code executes in the client, cloud or on-premise
Cannot access SharePoint server-side object model
Cannot change SharePoint standard artefacts
(like site definitions, list definitions etc.) or other Apps
Cannot use some SharePoint components and services
Cannot provide administrative tasks for SharePoint
12. Where can I get them? www.steria.se
SharePoint Store
Similar to Windows Phone Marketplace or Apple App Store
Subject to submission process & approval
Corporate App Catalog
Apps developed internally
Apps acquired and approved for internal use
Custom Deployment Process
Developers can use remote / local SharePoint & Windows Azure
APIs to deploy apps with custom code
These APIs are restricted to the developer site for tooling scenarios
14. Cut the crapp, give me the facts? www.steria.se
Pros Cons
Limitations when modifying/using
No custom Code on the server SharePoint functionality
Support can get messy when access
Reduced ramp-up time to build apps to SharePoint Store is not restricted
Use hosting platform features Corporate data in the cloud
You get what you buy,
Buy instead of make no more no less
Re-finance the development costs by
reselling to internaly
15. So, what about SharePoint solutions? www.steria.se
Solutions run on the SharePoint farm
Code runs in the same processes as SharePoint
Not supported in SharePoint Online
(only sandboxed)
Deployment more complex, needs direct farm access
No marketplace
16. Who cares? www.steria.se
Hard to manage and maintain
Cause of most SharePoint outages / issues
Requires a big server touch
Less compromises
Richer interface integrated in SharePoint
Longer, more expensive projects
Almost no limitations in customization
Full access to all parts of a SharePoint farm
Development approach hasn’t changed to SP2010
17. Can’t be that hard, what has changed? www.steria.se
Sandboxed solutions deprecated (not recommended)
Farm solutions run by default in Full Trust
SharePoint 2010 and SharePoint 2013 are both
installed
Development works mostly like in SP2010
Only minor additions to Visual Studio 2012
19. The good the bad and the ugly… www.steria.se
Pros Cons
Code has full access to SharePoint Higher security risks if solution has
server-side object model bugs
Allows maximum amount of
customization Higher development costs
Risks can be controlled with good Higher complexity in deployment,
Application Lifecycle Management maintenance and operations
Established path to customization Skilled developers are rare
Not many changes to SP2010, old
solutions can be migrated
20. When do we use what? www.steria.se
Examples:
SharePoint Solution App for SharePoint
(*.wsp) (*.app)
Sandbox Workflow automating business Azure Auto- Product defect tracking
Solution process available to entire site Hosted App database
Custom site, list, & library
templates Provider- Event registration
Hosted App management
Farm Solution Major customizations which
affects the whole farm Help desk support
Implement custom branding & UX SharePoint-Hosted App Expense calculator
Custom administration tools Holiday request
21. So, left or right? Apps or Solutions? www.steria.se
“It depends”!
Prefer SharePoint App Model for building app scenarios:
Provides most flexibility in development technologies, capabilities &
infrastructure choices
Provides highest level of process, user & data isolation
Full-trust solutions ideal for:
Deep customizations of SharePoint, i.e.
Custom MasterPages, PageLayouts, Branding
Site/List Definitions, ContentTypes
Administration scenarios