Leveraging SharePoint 2010 as a Development Platform to Rapidly

advertisement
SharePoint 2013 – Customization & Development
Jason Kaczor
jason@kaczor.ca
@jjkaczor
+1 (403) 827-7276
Configuration
Customization
Development
End-User / Browser
Productivity Tools
Composite
Branding
“App”
.NET
COM
Solves the needs of one
group/team/project?
Configuration
Customization
Interacts with
user-created
SharePoint data?
Configuration
Customization
Solves the needs of many
groups / teams / projects?
Customization
Development
Requires tightlycontrolled datamodel?
Customization
Development
Globally
re-usable?
Development
An “App” for SharePoint…
Executes “OUTSIDE” of SharePoint
Uses CLIENT APIs to talk to SharePoint (JS, REST, and .NET)
Is the future proof way to add new capabilities to SP2013+
Is available from Corporate Catalog and/or SP Store
Is easy to install by site owners or Tenant/Farm Admins
Why does the SP2013 App Model Exist?
When to use the new SP2013 App Model?
… your SharePoint solutions require or consume:
•
•
•
•
•
•
•
Enhanced, custom or full-screen user interfaces
App Parts
Workflows and Remote Event Receivers
External oData feeds
Custom Ribbon/Menu Actions
Custom Lists/Fields/Views/etc
Capabilities offered by your Web host of choice
When is NOT supported in the new App Model ?
Question: What should we “build” as .NET developers
within SharePoint ?
“Massively Engineered Solutions”?
… “Traditional” Development… (.NET or ‘Apps’)
Components & Services
… Site Owners, Designers & Business Analyst’s can use directly...
Components & Services facilitate “Composite & ‘App’ Solutions”
… “security” …
… “self-service”…
… “ownership”…
… “empowerment”…
… “governance”…
SharePoint
Development
‘Anti-Patterns’
AVOID the following SharePoint ‘Anti-Patterns’:
Synchronous
Code
SharePoint as
a “Database”
Direct Requests
to Remote
Resources
*
List <> External
Data
Synchronization
“In-process”
Execution of
Logic
Code-based
Workflows
What to Build?
&
When?
(How Frequently)
Composite / ‘App’ Solutions
Web Parts
(Configured &
Connected)
Site Mailbox
Incoming
Outgoing
E-mail
E-mail
List Forms
Web Services
(Consumption)
Sites
Pages
Lists, Libraries
& Views
Composite / ‘App’ Solutions
Excel
(Charts,
PivotTables,
Reports &
Dashboards)
Visio
Performance
Point
(Dashboards)
(Data-Connected
Diagrams)
Reports
(SQL RS)
InfoPath Forms
Access Apps
(No-code)
Word Automation
PowerPoint
Automation
Composite / ‘App’ Solutions
Business
Connectivity
Services
Terminology
Sets
Workflows
Site
Columns
Content
Types
Page
Layouts
Master
Pages
Composite / ‘App’ Solutions
XSLT
Custom client-site
Field Rendering
(JSLink)
JavaScript
CSS3
HTML5
Components (Declarative (CAML) Sandbox Solutions)
List
Instances
Content
Type
Bindings
Workflows
List
Templates
Content
Types
Site
Columns
Ribbon
Actions
Item
Menu
Actions
Site
Definitions
Views
Forms
Deployed
Resources
(Files)
Components (.NET)
Work
Management
Task Provider
Application
Pages
Navigation
Providers
BCS
Connection
Assemblies
Workflow
Actions /
Activities
PowerShell
Cmdlets
Console
Applications
Components (.NET)
Excel
User-Defined
Functions
Document
Converters
Timer Jobs
Authentication
Provider
Document ID
Visio Services
Data Provider
Provider
Feature
Receivers
NEVER
HTTP
Modules
“web.config”
Workflows
(Code)
Event
Receivers
User
Controls
iFilter
Web Parts
(COM)
Fields
CAML Views
(.NET)
XSLT
Extensions
Download