SlideShare une entreprise Scribd logo
1  sur  41
Implementing Custom Solution in
Sharepoint
Gabriele Del Giovine
Microsoft MVP for Office Sharepoint Server
gdelgiovine@delgiovine.it
Implementing Custom Solution in Sharepoint
Agenda
 Introduzione
 SharePoint Tools
 Scenari comuni
 Quando non usare SharePoint
 Q&A
Implementing Custom Solution in Sharepoint
Premessa
Non c’è codice! 
Parliamo di massimi sistemi!
(beh, forse alla fine un poco di codice....)
Implementing Custom Solution in Sharepoint
Introduzione
 Perchè sviluppare?
 Servono nuove funzionalità
 Adattare le funzionalità esistenti ad esigenze specifiche
 Usare dati “Line of Business” in SharePoint
 Creare meccanismi di integrazione stretta fra sistemi
differenti
 Chi può sviluppare?
 Differenti livelli di “sviluppo”:
 Administrators - Configuration
 Super (Duper?) Power Users – Customizzazione No-Code
 Developers – Sviluppo (Code e No-Code)
Implementing Custom Solution in Sharepoint
Introduzione
 Perchè parlare di sviluppo a degli sviluppatori?
 Perchè è l’unica cosa che capiscono, forse…. 
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
Introduzione
 Perchè parlare di sviluppo a dei non-sviluppatori?
 Sapere cosa è possibile fare
 Trovare nuovi usi della tecnologia disponibile
 Trovare gli usi sbagliati!
 Molte delle decisioni nelle Organizzazioni non sono
prese da persone che conoscono le tecnologie
specifiche.
Implementing Custom Solution in Sharepoint
Cosa posso usare per sviluppare?
Core Toolset
 Sharepoint End-User Web Interface (il browser)
 Office Suite
 SharePoint Designer
 InfoPath
 Excel
 Visual Studio
 Minimo VS2005 + VsWSS 1.1
 VS2008 + VsWSS 1.2 (Framework 3.5 - Sharepoint SP1)
 come diceva Max Biaggi parlando della moto di Valentino Rossi: “..is much
better!”
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
Core Technologies
 Interfaccia utente di Sharepoint
 Funzioni di personalizzazione delle viste, Edit Page, connessioni fra Web Part e Web Part Pages sono
sicuramente gli strumenti più semplici per la customizzazione .
 Molto limitata nella logica e difficilmente “trasportabile” nel caso si usino oggetti come Content-Type,
Site Columns, Look-up
 Applicazioni Office
 Customizzazione relativamente semplice , Power User friendly
 Limitata in termini logica applicativa e funzionalità extra-Sharepoint. Problemi di deployment e
“robustezza”
 Esempi: InfoPath, Excel, SharePoint Designer
 HTML/XML/XSLT/Javascript
 Possono dar vita a customizzazioni molto potenti, senza richiedere scrittura di codice
(se consideriamo XSLT un no code)
 Occorre conoscere PERFETTAMENTE gli strumenti usati
 Esempi: Master Pages, Content Query Web Part, Search Results
 .NET
 “Extremely powerful”, mette a disposizione un vero arsenale di strumenti e funzionalità
 Un developer Sharepoint completo DEVE conoscere BENE, MOLTO BENE .NET e la sua infrastruttura IT
 Esempi: Web Parts, Workflows, Events Handlers, Receivers, Jobs
Difficoltà
Implementing Custom Solution in Sharepoint
Iniziare a sviluppare su SharePoint:
I Tre pilastri della saggezza…..
 Comprendere l’ambiente Sharepoint
 Sapere come interagire con SharePoint
 Conoscere capacità e limiti di SharePoint’s
Implementing Custom Solution in Sharepoint
SharePoint E’ un mix di applicazioni .NET
 “A really big, slightly scary, extremely complicated mix
of .NET and ASP.NET applications”
 Le conoscenze dello sviluppo “tradizionale” .NET/ASP.NET sono
ancora valide, ma occorre complementarle con quelle proprie di
Sharepoint , Windows Workflow Foundation e con una
conoscenza di base dell’infrastruttura legata ad IIS ed alle
applicazioni Web.
Implementing Custom Solution in Sharepoint
Web Browser Office Application
User
Interface
Web App
Tier
Microsoft Office Sharepoint Server 2007 (MOSS)
Windows Sharepoint Services 3(WSS)
.Net Framework 3.0
Internet Information Server 6.0
DataBase
Tier
Configuration
Admin.
Content
Content
Shared
Services
Search
Implementing Custom Solution in Sharepoint
(Programatically)
Come “arrivarci” e come lavorare con SharePoint
 3 Metodi principali di accesso (APIs)
 SharePoint Object Model
 SharePoint Web Services
 Remote Procedure Calls (RPC)
Implementing Custom Solution in Sharepoint
SharePoint Object Model
 Accesso Completo (quasi)
 Può accedere al 99% delle cose che compongono Sharepoint
(tutto tranne che il motore di storage SQLServer)
 Semplice da usare
 E’ il metodo più semplice rispetto agli altri.
 Il paradigma è intuitivo (SPSite, SPWeb, SPList…..)
 Più usato
 Supporto: Newsgroups, libri, presentationi…
 E’ il metodo usato per costruire le applicazioni
 Non supporta Remoting (dolore…)
Implementing Custom Solution in Sharepoint
SPListItem
SPList
SPWeb
SPSite
SPWebServer Server
Site Collection
SP Web
List
List Item
SiteCollection
SP Web
List
List Item List Item List Item
List
SP Web
Microsoft.SharePoint.Administration
Implementing Custom Solution in Sharepoint
SharePoint Web Services
 Metodo standardizzato di accesso da remoto
 Indipendente dal linguaggio e dall’OS
 Non supporta tutte le operationi
 Lievi differenze fra WSS 2.0/SPS2003 e WSS 3.0/MOSS2007
 Richiede XML parsing in quantità industriale
Implementing Custom Solution in Sharepoint
Remote Procedure Calls
 Metodo più potente e condensato per la
contribuzione di documenti
 Molto “pericoloso”
 Usato da Office 2003/2007 per l’integrazione
con SharePoint
 Difficile da usare
 Non molto documentato (ma con eccezioni…)
Implementing Custom Solution in Sharepoint
SharePoint come Piattaforma di sviluppo
 Ora che sappiamo un poco di più sul
”cosa”, passiamo al “come”?
 Cosa devo sapere per capire “se e come” il
mio progetto può essere realizzato con
Sharepoint?
Implementing Custom Solution in Sharepoint
Key SharePoint Development Platform Scenarios
http://www.sharepointmn.com
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Personalization
 Generale
 SharePoint conosce l’utente, tranne quello anonimo
 Crea un contesto per l’utente
 Security first, tutto è reso in funzione di questo requisito
 Resa in funzione del ruolo dell’utente
 Il profilo utente fornisce le informazioni sui ruoli dell’utente nei confronti del sito
 MySites
 Personal Location per l’utente
 Customizzazione del look and feel
 I contentuti di valore sono nel contesto dell’utente
 L’ubiquitaria Web Part
 Era l’attività di sviluppo più comune in V2 (forse l’unica), in V3 rimane importante ma non
l’unica .
 Supporta il ‘targeting’ to groups of users (in MOSS)
 Memorizzazione delle preferenze semplice: per tutti o per singolo utente
 Mix and Match con le Web Part Connections
 No UI Editor for developers out of the Box: SmartPart (per giocare) o ASCX development
http://www.sharepointmn.com
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Demo – Using WebParts
Implementing Custom Solution in Sharepoint
Document Centric
 Generale
 E’ relativa ai Documenti (Document Library)
 Finalizzata ad arrichire (Capturing Data) il documento con metadati (interni o esterni a
documento)
 Capturing Data
 Office Suite Uploads (files and Document Information Panel)
 InfoPath Forms (Forms Services) – permette codice .NET
 Integrata nativamente in Office 2003/2007
 Creazione di Custom Fields, Content Types, Site Columns
 Documenti come Business Objects
 Policies: Routing e Gestione del Ciclo di Vita (Expiration)
 Event Handlers: gestione di eventi ed impostazioni dei metadata, permissions ed
esecuzione di logica applicativa
 External Applications: Interfacce con i documenti presenti in SharePoint
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Demo – Document Centric
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
Collaboration
 Generale
 Più persone hanno necessità di lavorare sugli stessi files
 Il Versioning e l’integrazione con le applicazioni (Office) rendono la cosa “semplice”
 Il Routing dei documenti diventa il compito più pesante
 Workflow
 Quello “Out of the Box” offre delle logiche limitate e poche possibilità di modifica dei dati.
 SharePoint Designer Workflows – Configuration e Custom Activities –
 Solo sequenziale, non portabile su web application diverse, poco potente
 Visual Studio Workflows WFW – Tutta la potenza of .NET e dell’Object Model.
 Un delirio per lo sviluppatore
 Altre Opzioni
 Mobile Views – Permette una forma di collaboratione usando device mobili (HTML minimale)
 Extranet
 ASP Forms Authentication e providers di autenticazione diversi da Windows AD.
 SharePoint Designer UI
 ASP Master Page
 Content Pages
 Direct Page Editing
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Demo – Collaboration
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
Accesso a dati LOB (si si, proprio I gestionali….)
 Generale
 I dati vengono da fonti diverse e disparate.
 Il problema è che nessuno ha la pazienza di accedere alle singole fonti per consultarli.
 Serve quindi un “qualcosa” per visualizzarli/usarli
 Gli strumenti come Dashboard/Analytics Tools spesso lavorano con fonti dati singole.
 Customization
 Business Data Catalog – XML Configuration
 SQL Stored Procedures e/o Web Services possono essere usati per scenari avanzati
 DataViews Web Part di SharePoint Designer
 Potente ma difficilmente replicabile o “vendibile” come prodotto
 Excel Services – Spreadsheets and limited logic available for consumption
 Costo non indifferente e funzionalità limitate
 3rd Party WebParts (moltissimi venditori e moltissimo materiale Open Source)
 Sviluppo
 Web Parts + .NET per accedere a dati “inaccessibili” o per funzioni avanzate di UI o
semplicemente per aggiornarli
 SQL Server Reporting Services (rigorosamente versione 2008)
 PerformancePoint/Business Scorecard Manager
http://www.sharepointmn.com
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Demo – LOB Data
Implementing Custom Solution in Sharepoint
•CRM
•AS/400
•Deep Internal
Links
LOB Systems – What’d I See?
 Dashboard
 Many different sources of information
 Many different backends
 Many different frontends
 BDC
 BDC itself is XML configurable
 Configurable Pages for Database Records
http://www.sharepointmn.com
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Search
 Generale
 Trovare i dati può essere un compito difficile!
 Customization/Configuration
 Search Center – XSLT Configuration (tutto è XSLT)
 Dati ricercabili : Extra file shares, databases through BDC, Internet, Motori di ricerca
pubblici, quello che vi pare se vi scrivete un handler….
 Indexing Enhancements – Best Bets, Thesaurus, Word Stemming
 Microsoft Search Server 2008
 3rd Party
 Sviluppo
 Object Model e Web Services
 Uso di ASP.NET per simulare BDC Pages nel ‘crawl’ di un database
 IFilter – estrazione della parte “human readable” di formati files (PDF, DWG, TIFF ecc)
 Custom Security Trimmer – ACL per oggetti esterni a Sharepoint
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Demo – Search
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
Implementing Custom Solution in Sharepoint
Search – What’d I see?
 SearchCenter
 Search Tab – Configuration
 Search Results – XSLT Customization
 Search Application
 .NET Application
 Object Model or Web Services
 Can perform SharePoint searches and retrieve resulting data
http://www.sharepointmn.com
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
Administrator’s Development
Non ci siamo dimenticati gli “Administrators” (aka Sistemisti o IT Pro)
STSADM
 Nuove funzioni possono essere aggiunte(stsadm –o myaction)
 CodePlex contiene diverse decine di estensioni a STSADM
PowerShell
 Tool generico per Amministratori
 Accesso completo all’Object Model di Sharepoint
Custom applications e webparts possono essere distribuite nella Central Admin
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
Demo – Administrator Tools
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
“Wow, sembra tutto meraviglioso”
“Scommetto che lo sviluppo è rapidissimo!”
 Non esattamente 
 I progetti V3 sono molto più complessi di un’applicazione
.NET normale
 Complessita delle funzionalità core (Web part, Content Type, Workflow,
Event Handler, deploy, debug etc)
 Numero di server coinvolti in un progetto
SharePoint 2007 migliora l’esperienza di Deployment
 Solutions
 Features
http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint
Quando NON dovrei usare SharePoint?
 Vincoli di Scaling/Sizing
 Non è lo storage ideale per disegni CAD enormi o films (ma funziona…)
 External Storage API ci mette una pezza ma non è ancora una soluzione matura
 Non è geograficamente distribuito (il problema è demandato in toto a
SQLServer. Quando SQLServer sarà geograficamente distribuito lo sarà anche
Sharepoint)
 SharePoint NON è un database ad alte prestazioni
 Anzi, Sharepoint non è un database, tecnicamente parlando 
 Non potete usarlo come base per costruire un ERP
 Quando non è necessario riscrivere l’applicazione
 Si può ospitare una applicazione ASP.NET (e pure ASP) dentro
Sharepoint (in tutti i sensi)
Implementing Custom Solution in Sharepoint
Review
 SharePoint Toolset
 SharePoint as a Development Platform
 Common Scenarios
 Personalization
 Document Centric
 Collaboration
 Multiple LOB Systems
 Search
 Administrators
 When not to use SharePoint
http://www.sharepointmn.com
SharePointPersonalization
Document
Centric
Collaboration
Multiple LOB
Systems
Search
Implementing Custom Solution in Sharepoint
http://www.codeplex.com
Implementing Custom Solution in Sharepoint
Testi consigliati:
Implementing Custom Solution in Sharepoint
Inside Windows SharePoint Services v3
by Ted Pattison & Dan Larson (MSPRESS)
Microsoft SharePoint: Building Office 2007 Solutions in C# 2005
by Scot Hillier (APRESS)
Inside Microsoft Office SharePoint Server 2007
by Patrick Tisseghem (MSPRESS)
Workflow in the 2007 Microsoft Office System
by David Mann (APRESS)
Professional SharePoint 2007 Development
by [quasi tutti gli MVP di Sharepoint] (WROX)
Q & A
Implementing Custom Solution in Sharepoint
Grazie a tutti per la pazienza!
Implementing Custom Solution in Sharepoint

Contenu connexe

Similaire à Silverlight in Action

Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)DotNetMarche
 
La scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAFLa scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAFPlone for Research and University
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...it Consult
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applicationsmarcocasario
 
Panorama necto, la business intelligence collaborativa mr v02
Panorama necto, la business intelligence collaborativa mr v02Panorama necto, la business intelligence collaborativa mr v02
Panorama necto, la business intelligence collaborativa mr v02Mauro Ruffino
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & AnalyticsDavide Mauri
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!Stefano Fago
 
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...Alex Ronci
 
CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...
CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...
CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...walk2talk srl
 
Giornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPressGiornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPressMarco Milesi
 
NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)Claudio Rubbiani
 
Progetto e implementazione di un processo per l'assemblaggio di documenti htm...
Progetto e implementazione di un processo per l'assemblaggio di documenti htm...Progetto e implementazione di un processo per l'assemblaggio di documenti htm...
Progetto e implementazione di un processo per l'assemblaggio di documenti htm...Nicola Furlan
 
Drupal
DrupalDrupal
DrupalNaLUG
 

Similaire à Silverlight in Action (20)

Rp Kbox2008
Rp Kbox2008Rp Kbox2008
Rp Kbox2008
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)
 
La scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAFLa scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAF
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applications
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Panorama necto, la business intelligence collaborativa mr v02
Panorama necto, la business intelligence collaborativa mr v02Panorama necto, la business intelligence collaborativa mr v02
Panorama necto, la business intelligence collaborativa mr v02
 
DDive - QuickR utilizzarlo ovunque
DDive - QuickR utilizzarlo ovunqueDDive - QuickR utilizzarlo ovunque
DDive - QuickR utilizzarlo ovunque
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
 
Slides marcosabatini
Slides marcosabatiniSlides marcosabatini
Slides marcosabatini
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!
 
Quickr8 Evoluzione Di Quick Place
Quickr8 Evoluzione Di Quick PlaceQuickr8 Evoluzione Di Quick Place
Quickr8 Evoluzione Di Quick Place
 
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
 
CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...
CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...
CCI2018 - Sei un Power User? Crea rapidamente Enterprise Mobile Apps con Powe...
 
S354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.xS354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.x
 
Giornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPressGiornata aperta sul web 2017 - Workshop WordPress
Giornata aperta sul web 2017 - Workshop WordPress
 
NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)
 
Progetto e implementazione di un processo per l'assemblaggio di documenti htm...
Progetto e implementazione di un processo per l'assemblaggio di documenti htm...Progetto e implementazione di un processo per l'assemblaggio di documenti htm...
Progetto e implementazione di un processo per l'assemblaggio di documenti htm...
 
Drupal
DrupalDrupal
Drupal
 

Plus de DotNetMarche

Creare una community dal basso ed arrivare ad un'azienda milionaria - Emanue...
Creare una community dal basso ed arrivare ad un'azienda milionaria  - Emanue...Creare una community dal basso ed arrivare ad un'azienda milionaria  - Emanue...
Creare una community dal basso ed arrivare ad un'azienda milionaria - Emanue...DotNetMarche
 
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...DotNetMarche
 
UI Composition - Prism
UI Composition - PrismUI Composition - Prism
UI Composition - PrismDotNetMarche
 
Model-View-ViewModel
Model-View-ViewModelModel-View-ViewModel
Model-View-ViewModelDotNetMarche
 
Refactoring ASP.NET and beyond
Refactoring ASP.NET and beyondRefactoring ASP.NET and beyond
Refactoring ASP.NET and beyondDotNetMarche
 
Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)DotNetMarche
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
Soluzioni Microsoft per l'e-Learning
Soluzioni Microsoft per l'e-LearningSoluzioni Microsoft per l'e-Learning
Soluzioni Microsoft per l'e-LearningDotNetMarche
 
Installing and Administering MOSS
Installing and Administering MOSSInstalling and Administering MOSS
Installing and Administering MOSSDotNetMarche
 
Microsoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical OverviewMicrosoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical OverviewDotNetMarche
 
[Hands on] testing asp.net mvc
[Hands on] testing asp.net mvc[Hands on] testing asp.net mvc
[Hands on] testing asp.net mvcDotNetMarche
 
Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC FrameworkDotNetMarche
 
Introduzione al Testing
Introduzione al TestingIntroduzione al Testing
Introduzione al TestingDotNetMarche
 
Introduzione a CardSpace
Introduzione a CardSpaceIntroduzione a CardSpace
Introduzione a CardSpaceDotNetMarche
 
Introduzione a Workflow Foundation
Introduzione a Workflow FoundationIntroduzione a Workflow Foundation
Introduzione a Workflow FoundationDotNetMarche
 

Plus de DotNetMarche (20)

Creare una community dal basso ed arrivare ad un'azienda milionaria - Emanue...
Creare una community dal basso ed arrivare ad un'azienda milionaria  - Emanue...Creare una community dal basso ed arrivare ad un'azienda milionaria  - Emanue...
Creare una community dal basso ed arrivare ad un'azienda milionaria - Emanue...
 
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...
 
WPF 4 fun
WPF 4 funWPF 4 fun
WPF 4 fun
 
UI Composition - Prism
UI Composition - PrismUI Composition - Prism
UI Composition - Prism
 
UI Composition
UI CompositionUI Composition
UI Composition
 
Model-View-ViewModel
Model-View-ViewModelModel-View-ViewModel
Model-View-ViewModel
 
WPF basics
WPF basicsWPF basics
WPF basics
 
Refactoring ASP.NET and beyond
Refactoring ASP.NET and beyondRefactoring ASP.NET and beyond
Refactoring ASP.NET and beyond
 
Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)
 
jQuery Loves You
jQuery Loves YoujQuery Loves You
jQuery Loves You
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
Open XML & MOSS
Open XML & MOSSOpen XML & MOSS
Open XML & MOSS
 
Soluzioni Microsoft per l'e-Learning
Soluzioni Microsoft per l'e-LearningSoluzioni Microsoft per l'e-Learning
Soluzioni Microsoft per l'e-Learning
 
Installing and Administering MOSS
Installing and Administering MOSSInstalling and Administering MOSS
Installing and Administering MOSS
 
Microsoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical OverviewMicrosoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical Overview
 
[Hands on] testing asp.net mvc
[Hands on] testing asp.net mvc[Hands on] testing asp.net mvc
[Hands on] testing asp.net mvc
 
Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC Framework
 
Introduzione al Testing
Introduzione al TestingIntroduzione al Testing
Introduzione al Testing
 
Introduzione a CardSpace
Introduzione a CardSpaceIntroduzione a CardSpace
Introduzione a CardSpace
 
Introduzione a Workflow Foundation
Introduzione a Workflow FoundationIntroduzione a Workflow Foundation
Introduzione a Workflow Foundation
 

Silverlight in Action

  • 1. Implementing Custom Solution in Sharepoint Gabriele Del Giovine Microsoft MVP for Office Sharepoint Server gdelgiovine@delgiovine.it Implementing Custom Solution in Sharepoint
  • 2. Agenda  Introduzione  SharePoint Tools  Scenari comuni  Quando non usare SharePoint  Q&A Implementing Custom Solution in Sharepoint
  • 3. Premessa Non c’è codice!  Parliamo di massimi sistemi! (beh, forse alla fine un poco di codice....) Implementing Custom Solution in Sharepoint
  • 4. Introduzione  Perchè sviluppare?  Servono nuove funzionalità  Adattare le funzionalità esistenti ad esigenze specifiche  Usare dati “Line of Business” in SharePoint  Creare meccanismi di integrazione stretta fra sistemi differenti  Chi può sviluppare?  Differenti livelli di “sviluppo”:  Administrators - Configuration  Super (Duper?) Power Users – Customizzazione No-Code  Developers – Sviluppo (Code e No-Code) Implementing Custom Solution in Sharepoint
  • 5. Introduzione  Perchè parlare di sviluppo a degli sviluppatori?  Perchè è l’unica cosa che capiscono, forse….  http://www.sharepointmn.com Implementing Custom Solution in Sharepoint
  • 6. Introduzione  Perchè parlare di sviluppo a dei non-sviluppatori?  Sapere cosa è possibile fare  Trovare nuovi usi della tecnologia disponibile  Trovare gli usi sbagliati!  Molte delle decisioni nelle Organizzazioni non sono prese da persone che conoscono le tecnologie specifiche. Implementing Custom Solution in Sharepoint
  • 7. Cosa posso usare per sviluppare? Core Toolset  Sharepoint End-User Web Interface (il browser)  Office Suite  SharePoint Designer  InfoPath  Excel  Visual Studio  Minimo VS2005 + VsWSS 1.1  VS2008 + VsWSS 1.2 (Framework 3.5 - Sharepoint SP1)  come diceva Max Biaggi parlando della moto di Valentino Rossi: “..is much better!” http://www.sharepointmn.com Implementing Custom Solution in Sharepoint
  • 8. Core Technologies  Interfaccia utente di Sharepoint  Funzioni di personalizzazione delle viste, Edit Page, connessioni fra Web Part e Web Part Pages sono sicuramente gli strumenti più semplici per la customizzazione .  Molto limitata nella logica e difficilmente “trasportabile” nel caso si usino oggetti come Content-Type, Site Columns, Look-up  Applicazioni Office  Customizzazione relativamente semplice , Power User friendly  Limitata in termini logica applicativa e funzionalità extra-Sharepoint. Problemi di deployment e “robustezza”  Esempi: InfoPath, Excel, SharePoint Designer  HTML/XML/XSLT/Javascript  Possono dar vita a customizzazioni molto potenti, senza richiedere scrittura di codice (se consideriamo XSLT un no code)  Occorre conoscere PERFETTAMENTE gli strumenti usati  Esempi: Master Pages, Content Query Web Part, Search Results  .NET  “Extremely powerful”, mette a disposizione un vero arsenale di strumenti e funzionalità  Un developer Sharepoint completo DEVE conoscere BENE, MOLTO BENE .NET e la sua infrastruttura IT  Esempi: Web Parts, Workflows, Events Handlers, Receivers, Jobs Difficoltà Implementing Custom Solution in Sharepoint
  • 9. Iniziare a sviluppare su SharePoint: I Tre pilastri della saggezza…..  Comprendere l’ambiente Sharepoint  Sapere come interagire con SharePoint  Conoscere capacità e limiti di SharePoint’s Implementing Custom Solution in Sharepoint
  • 10. SharePoint E’ un mix di applicazioni .NET  “A really big, slightly scary, extremely complicated mix of .NET and ASP.NET applications”  Le conoscenze dello sviluppo “tradizionale” .NET/ASP.NET sono ancora valide, ma occorre complementarle con quelle proprie di Sharepoint , Windows Workflow Foundation e con una conoscenza di base dell’infrastruttura legata ad IIS ed alle applicazioni Web. Implementing Custom Solution in Sharepoint
  • 11. Web Browser Office Application User Interface Web App Tier Microsoft Office Sharepoint Server 2007 (MOSS) Windows Sharepoint Services 3(WSS) .Net Framework 3.0 Internet Information Server 6.0 DataBase Tier Configuration Admin. Content Content Shared Services Search Implementing Custom Solution in Sharepoint
  • 12. (Programatically) Come “arrivarci” e come lavorare con SharePoint  3 Metodi principali di accesso (APIs)  SharePoint Object Model  SharePoint Web Services  Remote Procedure Calls (RPC) Implementing Custom Solution in Sharepoint
  • 13. SharePoint Object Model  Accesso Completo (quasi)  Può accedere al 99% delle cose che compongono Sharepoint (tutto tranne che il motore di storage SQLServer)  Semplice da usare  E’ il metodo più semplice rispetto agli altri.  Il paradigma è intuitivo (SPSite, SPWeb, SPList…..)  Più usato  Supporto: Newsgroups, libri, presentationi…  E’ il metodo usato per costruire le applicazioni  Non supporta Remoting (dolore…) Implementing Custom Solution in Sharepoint
  • 14. SPListItem SPList SPWeb SPSite SPWebServer Server Site Collection SP Web List List Item SiteCollection SP Web List List Item List Item List Item List SP Web Microsoft.SharePoint.Administration Implementing Custom Solution in Sharepoint
  • 15. SharePoint Web Services  Metodo standardizzato di accesso da remoto  Indipendente dal linguaggio e dall’OS  Non supporta tutte le operationi  Lievi differenze fra WSS 2.0/SPS2003 e WSS 3.0/MOSS2007  Richiede XML parsing in quantità industriale Implementing Custom Solution in Sharepoint
  • 16. Remote Procedure Calls  Metodo più potente e condensato per la contribuzione di documenti  Molto “pericoloso”  Usato da Office 2003/2007 per l’integrazione con SharePoint  Difficile da usare  Non molto documentato (ma con eccezioni…) Implementing Custom Solution in Sharepoint
  • 17. SharePoint come Piattaforma di sviluppo  Ora che sappiamo un poco di più sul ”cosa”, passiamo al “come”?  Cosa devo sapere per capire “se e come” il mio progetto può essere realizzato con Sharepoint? Implementing Custom Solution in Sharepoint
  • 18. Key SharePoint Development Platform Scenarios http://www.sharepointmn.com SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 19. Personalization  Generale  SharePoint conosce l’utente, tranne quello anonimo  Crea un contesto per l’utente  Security first, tutto è reso in funzione di questo requisito  Resa in funzione del ruolo dell’utente  Il profilo utente fornisce le informazioni sui ruoli dell’utente nei confronti del sito  MySites  Personal Location per l’utente  Customizzazione del look and feel  I contentuti di valore sono nel contesto dell’utente  L’ubiquitaria Web Part  Era l’attività di sviluppo più comune in V2 (forse l’unica), in V3 rimane importante ma non l’unica .  Supporta il ‘targeting’ to groups of users (in MOSS)  Memorizzazione delle preferenze semplice: per tutti o per singolo utente  Mix and Match con le Web Part Connections  No UI Editor for developers out of the Box: SmartPart (per giocare) o ASCX development http://www.sharepointmn.com SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 20. Demo – Using WebParts Implementing Custom Solution in Sharepoint
  • 21. Document Centric  Generale  E’ relativa ai Documenti (Document Library)  Finalizzata ad arrichire (Capturing Data) il documento con metadati (interni o esterni a documento)  Capturing Data  Office Suite Uploads (files and Document Information Panel)  InfoPath Forms (Forms Services) – permette codice .NET  Integrata nativamente in Office 2003/2007  Creazione di Custom Fields, Content Types, Site Columns  Documenti come Business Objects  Policies: Routing e Gestione del Ciclo di Vita (Expiration)  Event Handlers: gestione di eventi ed impostazioni dei metadata, permissions ed esecuzione di logica applicativa  External Applications: Interfacce con i documenti presenti in SharePoint SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 22. Demo – Document Centric http://www.sharepointmn.com Implementing Custom Solution in Sharepoint
  • 23. Collaboration  Generale  Più persone hanno necessità di lavorare sugli stessi files  Il Versioning e l’integrazione con le applicazioni (Office) rendono la cosa “semplice”  Il Routing dei documenti diventa il compito più pesante  Workflow  Quello “Out of the Box” offre delle logiche limitate e poche possibilità di modifica dei dati.  SharePoint Designer Workflows – Configuration e Custom Activities –  Solo sequenziale, non portabile su web application diverse, poco potente  Visual Studio Workflows WFW – Tutta la potenza of .NET e dell’Object Model.  Un delirio per lo sviluppatore  Altre Opzioni  Mobile Views – Permette una forma di collaboratione usando device mobili (HTML minimale)  Extranet  ASP Forms Authentication e providers di autenticazione diversi da Windows AD.  SharePoint Designer UI  ASP Master Page  Content Pages  Direct Page Editing SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 25. Accesso a dati LOB (si si, proprio I gestionali….)  Generale  I dati vengono da fonti diverse e disparate.  Il problema è che nessuno ha la pazienza di accedere alle singole fonti per consultarli.  Serve quindi un “qualcosa” per visualizzarli/usarli  Gli strumenti come Dashboard/Analytics Tools spesso lavorano con fonti dati singole.  Customization  Business Data Catalog – XML Configuration  SQL Stored Procedures e/o Web Services possono essere usati per scenari avanzati  DataViews Web Part di SharePoint Designer  Potente ma difficilmente replicabile o “vendibile” come prodotto  Excel Services – Spreadsheets and limited logic available for consumption  Costo non indifferente e funzionalità limitate  3rd Party WebParts (moltissimi venditori e moltissimo materiale Open Source)  Sviluppo  Web Parts + .NET per accedere a dati “inaccessibili” o per funzioni avanzate di UI o semplicemente per aggiornarli  SQL Server Reporting Services (rigorosamente versione 2008)  PerformancePoint/Business Scorecard Manager http://www.sharepointmn.com SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 26. Demo – LOB Data Implementing Custom Solution in Sharepoint
  • 28. LOB Systems – What’d I See?  Dashboard  Many different sources of information  Many different backends  Many different frontends  BDC  BDC itself is XML configurable  Configurable Pages for Database Records http://www.sharepointmn.com SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 29. Search  Generale  Trovare i dati può essere un compito difficile!  Customization/Configuration  Search Center – XSLT Configuration (tutto è XSLT)  Dati ricercabili : Extra file shares, databases through BDC, Internet, Motori di ricerca pubblici, quello che vi pare se vi scrivete un handler….  Indexing Enhancements – Best Bets, Thesaurus, Word Stemming  Microsoft Search Server 2008  3rd Party  Sviluppo  Object Model e Web Services  Uso di ASP.NET per simulare BDC Pages nel ‘crawl’ di un database  IFilter – estrazione della parte “human readable” di formati files (PDF, DWG, TIFF ecc)  Custom Security Trimmer – ACL per oggetti esterni a Sharepoint SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 32. Search – What’d I see?  SearchCenter  Search Tab – Configuration  Search Results – XSLT Customization  Search Application  .NET Application  Object Model or Web Services  Can perform SharePoint searches and retrieve resulting data http://www.sharepointmn.com SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 33. Administrator’s Development Non ci siamo dimenticati gli “Administrators” (aka Sistemisti o IT Pro) STSADM  Nuove funzioni possono essere aggiunte(stsadm –o myaction)  CodePlex contiene diverse decine di estensioni a STSADM PowerShell  Tool generico per Amministratori  Accesso completo all’Object Model di Sharepoint Custom applications e webparts possono essere distribuite nella Central Admin http://www.sharepointmn.com Implementing Custom Solution in Sharepoint
  • 34. Demo – Administrator Tools http://www.sharepointmn.com Implementing Custom Solution in Sharepoint
  • 35. “Wow, sembra tutto meraviglioso” “Scommetto che lo sviluppo è rapidissimo!”  Non esattamente   I progetti V3 sono molto più complessi di un’applicazione .NET normale  Complessita delle funzionalità core (Web part, Content Type, Workflow, Event Handler, deploy, debug etc)  Numero di server coinvolti in un progetto SharePoint 2007 migliora l’esperienza di Deployment  Solutions  Features http://www.sharepointmn.com Implementing Custom Solution in Sharepoint
  • 36. Quando NON dovrei usare SharePoint?  Vincoli di Scaling/Sizing  Non è lo storage ideale per disegni CAD enormi o films (ma funziona…)  External Storage API ci mette una pezza ma non è ancora una soluzione matura  Non è geograficamente distribuito (il problema è demandato in toto a SQLServer. Quando SQLServer sarà geograficamente distribuito lo sarà anche Sharepoint)  SharePoint NON è un database ad alte prestazioni  Anzi, Sharepoint non è un database, tecnicamente parlando   Non potete usarlo come base per costruire un ERP  Quando non è necessario riscrivere l’applicazione  Si può ospitare una applicazione ASP.NET (e pure ASP) dentro Sharepoint (in tutti i sensi) Implementing Custom Solution in Sharepoint
  • 37. Review  SharePoint Toolset  SharePoint as a Development Platform  Common Scenarios  Personalization  Document Centric  Collaboration  Multiple LOB Systems  Search  Administrators  When not to use SharePoint http://www.sharepointmn.com SharePointPersonalization Document Centric Collaboration Multiple LOB Systems Search Implementing Custom Solution in Sharepoint
  • 39. Testi consigliati: Implementing Custom Solution in Sharepoint Inside Windows SharePoint Services v3 by Ted Pattison & Dan Larson (MSPRESS) Microsoft SharePoint: Building Office 2007 Solutions in C# 2005 by Scot Hillier (APRESS) Inside Microsoft Office SharePoint Server 2007 by Patrick Tisseghem (MSPRESS) Workflow in the 2007 Microsoft Office System by David Mann (APRESS) Professional SharePoint 2007 Development by [quasi tutti gli MVP di Sharepoint] (WROX)
  • 40. Q & A Implementing Custom Solution in Sharepoint
  • 41. Grazie a tutti per la pazienza! Implementing Custom Solution in Sharepoint

Notes de l'éditeur

  1. Develop – Extending beyond the simple customizations.
  2. It’s a big platform Bad uses: ‘Do this in SharePoint’ when it doesn’t fit
  3. It’s a big platform Bad uses: ‘Do this in SharePoint’ when it doesn’t fit
  4. I’m glad you asked - There isn’t just one answer - Pick the right tool for the job
  5. Just like any ASP .net app you would write…except…
  6. Hey! What happened to my wheel?
  7. Note - System Dropdown knows who I am - Display Product List - Filter via URL (Class) - Content Editor Web Part - Context Site Example
  8. Note - Power of the Custom Field - External Program interfacing with SP c: empSharePointFormAppSPCodeCamp.exe
  9. Note - Custom SharePoint Designer Action - Custom Conditions: “If bike is in stock, then” - Mobile is next slide
  10. Traditional ASP.net Mobile Development - twist of templates, like a layout page
  11. Note - BDC Filtering Demo - - Note XSLT - BDC Item Lookup - Dashboard Demo
  12. Note - BDC Filtering Demo - Dashboard Demo
  13. Note - BDC Filtering Demo - Dashboard Demo