implementing custom solution in sharepoint
DESCRIPTION
Implementing Custom Solution in Sharepoint . Implementing Custom Solution in Sharepoint . Gabriele Del Giovine Microsoft MVP for Office Sharepoint Server [email protected]. Agenda. Introduzione SharePoint Tools Scenari comuni Quando non usare SharePoint Q&A. - PowerPoint PPT PresentationTRANSCRIPT
Implementing Custom Solution in Sharepoint
Gabriele Del GiovineMicrosoft MVP for Office Sharepoint Server
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 ApplicationUser Interface
Web AppTier
Microsoft Office Sharepoint Server 2007 (MOSS)
Windows Sharepoint Services 3(WSS)
.Net Framework 3.0
Internet Information Server 6.0
DataBaseTier 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
Server
Site Collection
SP Web
List
List Item
SiteCollection
SP Web
List
List Item
List Item
List Item
List
SP Web
SPWebServer
SPSite
SPWeb
SPList
SPListItem
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
SharePoint
Personalization
Document Centric
CollaborationMultiple 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
SharePoint
Personalization
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
SharePoint
Personalization
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
SharePoint
Personalization
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
SharePoint
Personalization
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
SharePoint
Personalization
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
SharePoint
Personalization
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
SharePoint
Personalization
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
SharePoint
Personalization
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# 2005by 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