410 likes | 562 Views
Implementing Custom Solution in Sharepoint . Implementing Custom Solution in Sharepoint . Gabriele Del Giovine Microsoft MVP for Office Sharepoint Server gdelgiovine@delgiovine.it. Agenda. Introduzione SharePoint Tools Scenari comuni Quando non usare SharePoint Q&A.
E N D
Implementing Custom Solution in Sharepoint Implementing Custom Solution in Sharepoint • Gabriele Del GiovineMicrosoft MVP for Office Sharepoint Server • gdelgiovine@delgiovine.it
Agenda Introduzione SharePoint Tools Scenaricomuni Quando non usare SharePoint Q&A Implementing Custom Solution in Sharepoint
PremessaNon 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 esigenzespecifiche Usaredati “Line of Business” in SharePoint Crearemeccanismidiintegrazionestrettafrasistemidifferenti Chi puòsviluppare? Differentilivellidi “sviluppo”: Administrators - Configuration Super (Duper?) Power Users – Customizzazione No-Code Developers – Sviluppo (Code e No-Code) Implementing Custom Solution in Sharepoint
Introduzione Perchèparlaredisviluppoa deglisviluppatori? Perchè è l’unicacosachecapiscono, forse…. Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Introduzione Perchèparlaredisviluppoa dei non-sviluppatori? Saperecosa è possibile fare Trovarenuoviusidellatecnologiadisponibile Trovaregliusisbagliati! MoltedelledecisioninelleOrganizzazioni non sonopresedapersonecheconoscono le tecnologiespecifiche. Implementing Custom Solution in Sharepoint
Cosapossousare 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 Biaggiparlandodellamotodi Valentino Rossi: “..is much better!” Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Core Technologies Interfaccia utente di Sharepoint Funzionidipersonalizzazionedelleviste, Edit Page, connessionifra Web Part e Web Part Pages sonosicuramenteglistrumentipiùsemplici per la customizzazione . Molto limitatanellalogica e difficilmente “trasportabile” nelcasosiusinooggetti come Content-Type, Site Columns, Look-up Applicazioni Office Customizzazionerelativamentesemplice , Power User friendly Limitata in termini logicaapplicativa e funzionalità extra-Sharepoint. Problemidi deployment e“robustezza” Esempi: InfoPath, Excel, SharePoint Designer HTML/XML/XSLT/Javascript Possonodar vita a customizzazioni molto potenti, senzarichiederescritturadicodice(se consideriamo XSLT un no code) Occorreconoscere PERFETTAMENTE glistrumentiusati Esempi: Master Pages, Content Query Web Part, Search Results .NET “Extremely powerful”, mette a disposizione un veroarsenaledistrumenti e funzionalità Un developer Sharepointcompleto DEVE conoscere BENE, MOLTO BENE .NET e la suainfrastruttura IT Esempi: Web Parts, Workflows, Events Handlers, Receivers, Jobs Implementing Custom Solution in Sharepoint Difficoltà
Iniziare a svilupparesu SharePoint:I Trepilastridellasaggezza….. Comprenderel’ambienteSharepoint Sapere come interagire con SharePoint Conoscerecapacità e limitidi SharePoint’s Implementing Custom Solution in Sharepoint
SharePoint E’ un mix diapplicazioni .NET “A really big, slightly scary, extremely complicated mix of .NET and ASP.NET applications” Le conoscenzedellosviluppo “tradizionale” .NET/ASP.NET sonoancoravalide, ma occorrecomplementarle con quellepropriediSharepoint, Windows Workflow Foundation e con unaconoscenzadi base dell’infrastrutturalegata ad IIS edalleapplicazioni Web. Implementing Custom Solution in Sharepoint
Implementing Custom Solution in Sharepoint User Interface Web Browser Office Application Microsoft Office Sharepoint Server 2007 (MOSS) Windows Sharepoint Services 3(WSS) Web App Tier .Net Framework 3.0 Internet Information Server 6.0 Configuration Admin. Content Content Shared Services Search DataBase Tier
(Programatically) Come “arrivarci” e come lavorare con SharePoint 3 Metodiprincipalidiaccesso (APIs) SharePoint Object Model SharePoint Web Services Remote Procedure Calls (RPC) Implementing Custom Solution in Sharepoint
SharePoint Object Model AccessoCompleto (quasi) Puòaccedere al 99% dellecosechecompongonoSharepoint (tuttotrannecheilmotoredi storage SQLServer) Semplicedausare E’ ilmetodopiùsemplicerispettoaglialtri. Il paradigma è intuitivo (SPSite, SPWeb, SPList…..) Più usato Supporto: Newsgroups, libri, presentationi… E’ ilmetodousato per costruire le applicazioni Non supportaRemoting (dolore…) Implementing Custom Solution in Sharepoint
Implementing Custom Solution in Sharepoint Microsoft.SharePoint.Administration
SharePoint Web Services Metodostandardizzatodiaccessodaremoto Indipendentedallinguaggio e dall’OS Non supportatutte le operationi Lievidifferenzefra WSS 2.0/SPS2003 e WSS 3.0/MOSS2007 Richiede XML parsing in quantitàindustriale Implementing Custom Solution in Sharepoint
Remote Procedure Calls Metodopiùpotente e condensato per la contribuzionedidocumenti Molto “pericoloso” Usatoda Office 2003/2007 per l’integrazione con SharePoint Difficiledausare Non molto documentato (ma con eccezioni…) Implementing Custom Solution in Sharepoint
SharePoint come Piattaformadisviluppo Orachesappiamo un pocodipiùsul ”cosa”, passiamo al “come”? Cosadevosapere per capire “se e come” ilmioprogettopuòessererealizzato con Sharepoint? Implementing Custom Solution in Sharepoint
Key SharePoint Development Platform Scenarios Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Personalization Generale SharePoint conoscel’utente, trannequelloanonimo Crea un contesto per l’utente Security first, tutto è reso in funzionediquestorequisito Resa in funzione del ruolodell’utente Il profiloutentefornisce le informazioni sui ruolidell’utenteneiconfronti del sito MySites Personal Location per l’utente Customizzazione del look and feel I contentutidivaloresononelcontestodell’utente L’ubiquitaria Web Part Era l’attivitàdisviluppopiùcomune in V2 (forsel’unica), in V3 rimaneimportante ma non l’unica . Supportail ‘targeting’ to groups of users (in MOSS) Memorizzazionedellepreferenzesemplice: per tutti o per singoloutente Mix and Match con le Web Part Connections No UI Editor for developers out of the Box: SmartPart(per giocare) o ASCX development Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint Demo – Using WebParts
Document Centric Generale E’ relativaaiDocumenti (Document Library) Finalizzata ad arrichire (Capturing Data) ildocumento con metadati (interni o esterni a documento) Capturing Data Office Suite Uploads (files and Document Information Panel) InfoPath Forms (Forms Services) – permettecodice .NET Integratanativamente in Office 2003/2007 Creazionedi Custom Fields, Content Types, Site Columns Documenti come Business Objects Policies: Routing e Gestione del Ciclodi Vita (Expiration) Event Handlers: gestionedieventiedimpostazionidei metadata, permissions edesecuzionedilogicaapplicativa External Applications: Interfacce con idocumentipresenti in SharePoint Implementing Custom Solution in Sharepoint
Implementing Custom Solution in Sharepoint Demo – Document Centric http://www.sharepointmn.com
Collaboration Generale Piùpersonehannonecessitàdilavoraresuglistessi files Il Versioning e l’integrazione con le applicazioni (Office) rendono la cosa “semplice” Il Routing deidocumentidiventailcompitopiùpesante Workflow Quello “Out of the Box” offredellelogichelimitate e pochepossibilitàdimodificadeidati. SharePoint Designer Workflows – Configuration e Custom Activities – Solo sequenziale, non portabilesu web application diverse, pocopotente Visual Studio Workflows WFW – Tutta la potenza of .NET e dell’Object Model. Un delirioper lo sviluppatore AltreOpzioni Mobile Views – Permetteuna forma dicollaborationeusando device mobili (HTML minimale) Extranet ASP Forms Authentication e providers diautenticazionediversida Windows AD. SharePoint Designer UI ASP Master Page Content Pages Direct Page Editing Implementing Custom Solution in Sharepoint
Implementing Custom Solution in Sharepoint Demo – Collaboration http://www.sharepointmn.com
Accesso a dati LOB (sisi, proprio I gestionali….) Generale I dativengonodafonti diverse e disparate. Il problema è chenessuno ha la pazienzadiaccedereallesingolefonti per consultarli. Serve quindi un “qualcosa” per visualizzarli/usarli Glistrumenti come Dashboard/Analytics Tools spessolavorano con fontidatisingole. Customization Business Data Catalog – XML Configuration SQL Stored Procedures e/o Web Services possonoessereusati per scenariavanzati 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 (moltissimivenditori e moltissimomateriale Open Source) Sviluppo Web Parts + .NET per accedere a dati “inaccessibili” o per funzioniavanzatedi UI o semplicemente per aggiornarli SQL Server Reporting Services (rigorosamenteversione 2008) PerformancePoint/Business Scorecard Manager Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint Demo – LOB Data
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 Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Search Generale Trovareidatipuòessere un compitodifficile! Customization/Configuration Search Center – XSLT Configuration (tutto è XSLT) Datiricercabili : Extra file shares, databases through BDC, Internet, Motoridiricercapubblici, quelloche 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 Usodi ASP.NET per simulare BDC Pages nel ‘crawl’ di un database IFilter – estrazionedella parte “human readable” diformati files (PDF, DWG, TIFF ecc) Custom Security Trimmer – ACL per oggettiesterni a Sharepoint Implementing Custom Solution in Sharepoint
Implementing Custom Solution in Sharepoint Demo – Search http://www.sharepointmn.com
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 Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Administrator’s Development Non cisiamodimenticatigli “Administrators” (aka Sistemisti o IT Pro) STSADM Nuovefunzionipossonoessereaggiunte(stsadm –o myaction) CodePlex contiene diverse decine di estensioni a STSADM PowerShell Tool generico per Amministratori Accessocompletoall’Object Model diSharepoint Custom applications e webpartspossonoesseredistribuitenella Central Admin Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint Demo – Administrator Tools http://www.sharepointmn.com
“Wow, sembratuttomeraviglioso” “Scommettoche lo sviluppo è rapidissimo!” Non esattamente I progetti V3 sono molto piùcomplessidiun’applicazione .NET normale Complessitadellefunzionalità core (Web part, Content Type, Workflow, Event Handler, deploy, debug etc) Numerodi server coinvolti in un progetto SharePoint 2007 miglioral’esperienzadi Deployment Solutions Features Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Quando NON dovreiusare SharePoint? Vincolidi 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 alteprestazioni Anzi, Sharepoint non è un database, tecnicamente parlando Non poteteusarlo come base per costruire un ERP Quando non è necessarioriscriverel’applicazione Si puòospitareunaapplicazione ASP.NET (e pure ASP) dentroSharepoint(in tuttiisensi) 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 Implementing Custom Solution in Sharepoint http://www.sharepointmn.com
Implementing Custom Solution in Sharepoint http://www.codeplex.com
Implementing Custom Solution in Sharepoint Testiconsigliati: 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 Systemby David Mann (APRESS) Professional SharePoint 2007 Development by [quasi tuttigli MVP diSharepoint] (WROX)
Implementing Custom Solution in Sharepoint Grazie a tutti per la pazienza!