implementing custom solution in sharepoint

41
Implementing Custom Solution in Sharepoint Gabriele Del Giovine Microsoft MVP for Office Sharepoint Server [email protected] Implementing Custom Solution in Sharepoint

Upload: vilina

Post on 24-Feb-2016

97 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Implementing Custom Solution in Sharepoint

Implementing Custom Solution in Sharepoint

Gabriele Del GiovineMicrosoft MVP for Office Sharepoint Server

[email protected]

Implementing Custom Solution in Sharepoint

Page 2: Implementing Custom Solution in Sharepoint

Agenda Introduzione SharePoint Tools Scenari comuni Quando non usare SharePoint Q&A

Implementing Custom Solution in Sharepoint

Page 3: 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

Page 4: 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

Page 5: 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

Page 6: 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

Page 7: 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

Page 8: 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

Page 9: 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

Page 10: 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

Page 11: 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

Page 12: 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

Page 13: 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

Page 14: 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

Page 15: 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

Page 16: 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

Page 17: 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

Page 18: 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

Page 19: 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

Page 20: Implementing Custom Solution in Sharepoint

Demo – Using WebParts

Implementing Custom Solution in Sharepoint

Page 21: 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

Page 22: Implementing Custom Solution in Sharepoint

Demo – Document Centric

http://www.sharepointmn.com

Implementing Custom Solution in Sharepoint

Page 23: 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

Page 24: Implementing Custom Solution in Sharepoint

Demo – Collaboration

http://www.sharepointmn.com

Implementing Custom Solution in Sharepoint

Page 25: 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

Page 26: Implementing Custom Solution in Sharepoint

Demo – LOB Data

Implementing Custom Solution in Sharepoint

Page 27: Implementing Custom Solution in Sharepoint

•CRM•AS/400•Deep Internal Links

Page 28: Implementing Custom Solution in Sharepoint

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

Page 29: 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

Page 30: Implementing Custom Solution in Sharepoint

Demo – Search

http://www.sharepointmn.com

Implementing Custom Solution in Sharepoint

Page 31: Implementing Custom Solution in Sharepoint

Implementing Custom Solution in Sharepoint

Page 32: 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

Page 33: 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

Page 34: Implementing Custom Solution in Sharepoint

Demo – Administrator Tools

http://www.sharepointmn.com

Implementing Custom Solution in Sharepoint

Page 35: 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

Page 36: 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

Page 37: 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

Page 38: Implementing Custom Solution in Sharepoint

http://www.codeplex.com

Implementing Custom Solution in Sharepoint

Page 40: Implementing Custom Solution in Sharepoint

Q & A

Implementing Custom Solution in Sharepoint

Page 41: Implementing Custom Solution in Sharepoint

Grazie a tutti per la pazienza!

Implementing Custom Solution in Sharepoint