Template designed by BEST PRACTICE TO DEVELOP SOLUTION WITH OFFICE 365 Marco Rizzi marco.rizzi@avanade. com Giuliano De Luca giuliano.de.luca@avana de.com
Aug 12, 2015
Template designed by
BEST PRACTICE TO DEVELOP SOLUTION WITH OFFICE 365
Marco [email protected]
Giuliano De [email protected]
Avanade Confidential – Do Not Copy, Forward or Circulate – © Copyright Avanade Inc. All Rights Reserved.
Chi è Avanade Italy
2
Avanade, nata nel 2000 dalla joint venture tra Microsoft e Accenture, è il principale Technology Integrator a livello mondiale specializzato nello sviluppo e nell’implementazione di soluzioni su tecnologia Microsoft per le grandi aziende.
•Capacità imprenditoriale
•Soluzioni per qualsiasi settore
•Acceleratore di soluzioni trasversali
• Specializzati su piattaforma Microsoft
• Architetture e asset
•Risultati realizzati
• Piattaforme Enterprise
• Prodotti all’avanguardia
• Impegno per la ricerca e sviluppo
Avanade Confidential – Do Not Copy, Forward or Circulate – © Copyright Avanade Inc. All Rights Reserved.
We invest in Microsoft’s evolution
Market Forces
Microsoft’s Evolution
Mobility
Cloud
BusinessSolutions
Social
Big Data
Reshaping the end-user experience to accommodate work-on-the-go scenarios
Redefining flexible systems design and customer business models
Expanding product set into integrated suite of social collaboration tools
Grow portfolio of ERP andCRM solutions based on Microsoft Dynamics
Applying accessible tools and largescale processing to the“Big Data”/analytics challenge
Data & Analytics
Application Development
Customer Relationship Management
Enterprise Resource Planning
Technology Infrastructure
Collaboration
Mobility
UX
Avanade Service Line
Avanade Confidential – Do Not Copy, Forward or Circulate – © Copyright Avanade Inc. All Rights Reserved.
We invest in Microsoft’s evolution
Some cases:
Avanade Confidential – Do Not Copy, Forward or Circulate – © Copyright Avanade Inc. All Rights Reserved.
Avanade Italy: I nostri numeri
CAGLIARI
• Nata nel Settembre 2000 (tra i Paesi fondatori)
• 6 Uffici
• 700 dipendenti
• Fatturato 80 milioni di EuroROMA
15 anni di esperienza nella consulenza per il settore IT con focus sulla Collaboration, Enterprise Social, Portals
Speaker - Microsoft SharePoint Conference, WPC, SharePoint Saturday
Organizzatore SharePoint Saturday Italy
Riconoscimento Microsoft MVP 2014
Esperienza su SharePoint a partire dal prima beta nel 2001 (codename Tahoe)
15 certificazioni Microsoft su tecnologie ASP.net, SharePoint 2007, 2010, 2013 sia Dev che Infra
SharePoint Earlier Adapter dal 2009
Self employed – 7 anni
Microsoft Consulting Services – 3 anni
Avanade dal 2008 - Solution Architect Collaboration Service Line
Marco Rizzi
6
@marcorizzi
marcorizzi78
marcorizzi
11 anni di esperienza sulle tecnologie SharePoint e Microsoft .Net.
Ho una forte passione per la tecnologia e l'innovazione e sono sempre attento
all'evoluzione del mercato.
Sono un contibutor nella community attraverso il blog http://www.delucagiuliano.com,
su msdn e i vari social network twitter, linkedin, Facebook.
8 Certificazioni Microsoft su : HTLM5, CSS, Javascript; MCSD - SharePoint Application;
MCSA Office 365; MCSD Web Application;
Avanade dal 2013
Consultant Collaboration service line.
Giuliano De Luca
7
@giuleon
giuliano.deluca
delucagiuliano
Office 365: the opportunity
Modern App Development
Development guidelines
Demos, demos, demos
Agenda
Office
365
Skype for Business
Exchange online
Azure Active
Directory
SharePoint Online
Yammer
OneDrive for
Business
Office 365 services
11
Office 365 Unified API
TASK
S
manager
memberOf
FILE
S
MESSAGE
S
workingWith
Shared with me
directReports
createdBy
FILE
S
CONVERSATIO
NS
createdBy
workingWith
EVENTS
trendingAround
GROUPS
TASK
S
NOTE
SNOTE
S
public
modifiedBy
USERtrendingAroun
d
Developer 101http://dev.office.com
Create Office 365 tenantCreate Azure SubscriptionVisual Studio 2013Office 2013
“Will Farm Solutions be supported with SharePoint Server 2016?”
We will make investments primarily on the app model side also for on-premises to better align the development story: Write once and use it across cloud and on-premises
Yes.
“I saw a blog post on the Internet saying that the app model is dead”
It’s more alive than ever. We are committed to this model and the majority of our development investments are made on the app model for cloud AND on-premises
No it’s not
“Will you ever support farm solutions in Office 365?” Farm solutions are deployed cross
SharePoint farm and they’d impact multiple customers…
No.
What does “app model” or “add-ins” mean
Classic - Full trust solutions
• ISV solutions• Platform level customizations to on-premises
• Custom service applications
• Custom WCF services• SharePoint customizations, not customer specific customizations
Client Side Solutions
• Server side controls as JavaScript on page layouts and master pages
• Remote provisioning for elements
• Embracing un-ghosted model
• SP App dimension with provider hosted apps to provide new capabilities
• Customer specific customizations
Store apps
• App catalog based solution• Packaged reusable solutions built for specific functionality
• Not only for market place or store, but also as platform for customer specific customizations
SharePoint Add-Ins means all operations which are executed
outside of the server
“What does app model transformation mean?”
Rewrite your code to app model. There’s actually no migration or transformation, but you can reuse concepts and patterns…
Rewrite
“What does this mean in practice?”
Implement similar functional capabilities as with farm solutions, using alternative technical solutions
Recommendations for following componentsContent types and site columnsList DefinitionsField typesSite provisioningTimer jobs
Recommendations to avoid future maintenance and rework of your deployment
Recommendations for farm solutions
•What• Rather than using feature framework
elements in farm solution, it is recommended to provision site columns and content types using code
•Why• Objects are created directly to the database
(unghosted) without any dependencies on files in file system
•How• Use code called from feature receiver to
create needed elements
Content Type and site columns challenge
•What• You should avoid custom list templates for
your list instances
•Why• Custom list template has unique identifier
and it creates dependency on the list instances to the schema.xml file of the list template
•How• Consider using code to provisioning specific
instances or use custom schema option with instances• List events for newly created lists in sites
List definition challenge
•There’s unfortunately no easy ways to fix existing deployments which are using custom list definitions• We are working on more guidance on this side with details on
how to fix the existing sites
•Possible solutions1. Change to use Sandbox solution list definition2. Perform content migration to oob list
How to fix existing deployments?
Provisioning best pratices
•What• Do not use custom field types with you
farm solutions
•Why• Data stored in the database will have
dependency on the custom field type, which will cause challenges in migration scenarios
•How• Consider using only field controls for
presentation or use client side rendering for list editor overrides
Custom field type challenge
How to create the custom field with Jslink.
•What• You create sites using site definitions in
on-premises can be challenging
•Why• Site upgrades cross versions is natively
upgraded and you will need to own the template model by yourself
•How• Consider models where we start with out
of the box site provisioning, which is configured with business requirements
Site definition / web template challenge
“You do not brand Outlook or Word, why do you need to do branding on collaboration sites?”
Applying branding is absolutely supported and understandable for intranet portals, but what about collaboration sites? It is recommended to consider the cost versus gain
Good question…
Branding
Recommendations
Transform end user
experience, not code
Understand impact of farm
solutionMove gradually to app model
Avoid Farm & Sandbox solutions