1. Template designed by
BEST PRACTICE TO DEVELOP
SOLUTION WITH OFFICE 365
Marco Rizzi
marco.rizzi@avanade.com
Giuliano De Luca
giuliano.de.luca@avanade.com
6. 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
7. 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
8. Office 365: the opportunity
Modern App Development
Development guidelines
Demos, demos, demos
Agenda
13. Office 365 Unified API
TASKS
manager
memberOf
FILES
MESSAGES
workingWith
Shared with me
directReports
createdBy
FILES
CONVERSATIONS
createdBy
workingWith
EVENTS
trendingAround
GROUPS
TASKS
NOTES
NOTES
public
modifiedBy
USER
trendingAround
19. App model with add-ins is the
future also for on-premises
20. “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.
21. “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
22. “Will you ever support farm
solutions in Office 365?”
Farm solutions are deployed cross
SharePoint farm and they’d impact
multiple customers…
No.
23. What if…We would use same
development model in
cloud and in on-premises?
24. 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
26. “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
27. “What does this mean in
practice?”
Implement similar functional
capabilities as with farm solutions,
using alternative technical solutions
28. Content types and site columns
List Definitions
Field types
Site provisioning
Timer jobs
Recommendations for farm solutions
29. ”I want to minimize challenges in
future updates with farm solutions”
31. •
• Rather than using feature framework elements in
farm solution, it is recommended to provision site
columns and content types using code
•
• Objects are created directly to the database
(unghosted) without any dependencies on files in
file system
•
• Use code called from feature receiver to create
needed elements
Content Type and site columns challenge
32. •
• You should avoid custom list templates for your
list instances
•
• Custom list template has unique identifier and it
creates dependency on the list instances to the
schema.xml file of the list template
•
• 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
33. •
• We are working on more guidance on this side with details on how to
fix the existing sites
•
1. Change to use Sandbox solution list definition
2. Perform content migration to oob list
How to fix existing deployments?
35. •
• Do not use custom field types with you farm
solutions
•
• Data stored in the database will have
dependency on the custom field type, which will
cause challenges in migration scenarios
•
• Consider using only field controls for
presentation or use client side rendering for list
editor overrides
Custom field type challenge
37. •
• You create sites using site definitions in on-
premises can be challenging
•
• Site upgrades cross versions is natively upgraded
and you will need to own the template model by
yourself
•
• Consider models where we start with out of the
box site provisioning, which is configured with
business requirements
Site definition / web template challenge
38. 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…
42. Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Grazie
Editor's Notes
Avanade è un’azienda nata nel 2000 dalla join venture tra microsoft ed Accenture ed è il principale Technology Integrator nello sviluppo di soluzioni basati su tecnologia Microsoft. Avanade è quindi un’azienda specializzata su tecnologie microsoft che eredita da microsoft ed accenture i punti di forza quali, ad esempio, lo sviluppo di soluzioni tramite l’utilizzo di prodotti all’avanguardia creando dei valori aggiunti sia per i clienti che per i propri dipendenti che hanno, così, la possibilità di conoscere nuove tecnologie.