37
Enhancing SharePoint Experience with Client Side Technologies http://www.decatec.it Fabrizio Basilio, Decatec

Sharepoint 2010 JQuery

  • Upload
    decatec

  • View
    1.667

  • Download
    2

Embed Size (px)

DESCRIPTION

Sharepoint 2010 JQuery

Citation preview

Page 1: Sharepoint 2010  JQuery

Enhancing SharePoint Experience with Client

Side Technologies

http://www.decatec.it

Fabrizio Basilio, Decatec

Page 2: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 2

Agenda

Introduzione alle RIA (Rich Internet Application)

Sharepoint 2007 e jQuery

Sharepoint 2007 e Silverlight

Sharepoint 2010: Client Object Model

Page 3: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 3

Cosa sono le RIA?

Applicazioni web con caratteristiche e le funzionalità delle applicazioni desktop

Interattive, multimediali e veloci Aggiornamento e deploy immediato Accesso da qualsiasi pc in rete Qualità di navigazione:

Ricca Fluida Immediata Personalizzata

Page 4: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 4

Vantaggi delle RIA

Consistente incremento del business

Diffusione Assoluta

Semplicità di implementazione

Vantaggi di gestione

Page 5: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 5

RIA e Sharepoint

jQuery (http://www.jquery.com)

Silverlight (http://www.silverlight.net)

Page 6: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 6

Cosa è jQuery?

Framework basato su Javascript Riassume in poche righe script molto complessi Modifica radicalmente le modalità di sviluppo client-

site Cross – browser Chainability(concatenabilità)

$('div#content').addClass('current').html('bla bla bla').width(100);

Page 7: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 7

Integrare jQuery: Modalità

Copiare nella cartella Layouts Libreria Jquery

Rendere disponibile la libreria nelle pagine SharePoint

Aggiungendo Content Editor Web Part Aggiungendo reference nella MasterPage del

Sito SharePoint AdditionalPageHead Delegate Control

Page 8: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 8

How to work jQuery

Page 9: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 9

jQuery: Selettori

Selettori di base o selettori semplici $("a");

$("#blocco");

$("a.external");

Selettori gerarchici (padre->figlio) $("#blocco a");

$("#blocco");

$("a.external");

Selettori per attributo $("a[target='_blank']");

Page 10: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 10

jQuery: Caratteristiche

DOM Traversing

Manipolazione

CSS

Eventi

Effetti

AJAX

Page 11: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 11

jQuery: Esempi

Row Highlight al mouse over o statico

Ricerca in un calendario

RunTime Filter Data List Web Part

Page 12: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 12

jQuery: Conclusioni

Rapidità di esecuzione

Carico di lavoro prevalentemente del client

Accesso in get / set a tutti gli elementi di una pagina

Sfuttare un’unica libreria per l’intera piattaforma

Estendibilità

Supporto di una grossa community

Leggero (pesa solo 16 kb)

Page 13: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 13

jQuery: Conclusioni

Rapidità di esecuzione

Carico di lavoro prevalentemente del client

Accesso in get / set a tutti gli elementi di una pagina

Sfuttare un’unica libreria per l’intera piattaforma

Estendibilità

Supporto di una grossa community

Leggero (pesa solo 16 kb)

Page 14: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 14

Silverlight: Introduzione

Interazione complessa e dinamica con i dati nelle Dashboard (grafici, relazioni, ...)

Visualizzare elementi multimediali in SharePoint

Controlli di navigazione Off-load di lavoro per i client

Page 15: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 15

Silverlight: Introduzione

Cosa è Silverlight

• Piattaforma RIA• Rich Media Applications

Features • WPF-based UI framework • Rich Controls• Rich Networking Support

Sviluppo• Expression Blend Studio• Visual Studio 2008 SP1• Silverlight SDK

Page 16: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 16

Perchè Silverlight?

Dare un nuovo look rispetto al classico Sharepoint

Rappresentazione dei dati in formato grafico Facilità d‘uso Supporto Business Intelligence Colpo d‘occhio

Page 17: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 17

Silverlight e Sharepoint

Browser Backend System

Silverlight

• XAML + C#• XAML +

VB.NET

SharePoint

• Liste• Documenti • Contatti• Immagini

APIs

WebServices

Page 18: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 18

Silverlight e Sharepoint: Integrazione

Object Model•

SharePoint Object Model

Silverlight + WCF

Web Services ModelSharePoint

(APIs)Silverlight

Mixed ModeSharePoint Web Service +

Object Model

Silverlight + WCF

Page 19: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 19

Silverlight e Sharepoint: Integrazione

1 •Creare una applicazione IIS sullo stesso server•Usare la Page View Web Part

2 •Content Editor Web Part

3 •Creare una nuova web part per Silverlight

4 •Creare un server control e inserirlo nella Master Page o in una pagina ASPX.

Page 20: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 20

Silverlight: Hello World!

Silverlight 2.0 project in Visual Studio 2008

Create your user experience using XAML: IntelliSense®

Silverlight Controls in Toolbox

Preview in Designer

Microsoft Expression Blend for complex design

Code-behind class: Event-handler

Business logic

Asynchronous communication with server data

Page 21: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 21

Silverlight: Hello World!

<TextBlock x:Name="HelloWorldTextBlock" Canvas.Left="50" Canvas.Top="45" FontFamily="Trebuchet MS" FontWeight="Bold" FontSize="25" Text="Hello World" Foreground="#FF333333" MouseLeftButtonDown="HelloWorldTextBlock_MouseLeftButtonDown" />

private void HelloWorldTextBlock_MouseLeftButtonDown (object sender, MouseButtonEventArgs e){ HelloWorldTextBlock.Text = "I am clicked!";}

XAMLCODE BEHIND

Page 22: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 22

Silverlight: Esempio

Silverlight Browser

Page 23: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 23

Sharepoint 2010 vs Sharepoint 2007

Page 24: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 24

Sharepoint 2010 vs Sharepoint 2007

Page 25: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 25

Sharepoint 2010 vs Sharepoint 2007

Page 26: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 26

Sharepoint 2010: Client Object Model

Tree new client APIs .NET Managed Applications (using the .NET CLR) Silverlight Applications ECMAScript (JavaScript, JScript)

Client Type Assembly/File

Managed Client Microsoft.SharePoint.Client

Silverlight Microsoft.SharePoint.Client.Silverlight

ECMAScript SP.js

Page 27: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 27

Sharepoint 2010: Client Object Model

Requisiti .NET 3.5 Framework Microsoft.SharePoint.Client.dll Microsoft.SharePoint.Client.Runtime.dll 

Assemblies Location %ProgramFiles%\Common Files\Microsoft Shared\

web server extensions\14\ISAPI

Page 28: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 28

Client Object Model: Namespace

Client Server

Microsoft.SharePoint.Client.ClientContext Microsoft.SharePoint.SPContext

Microsoft.SharePoint.Client.Site Microsoft.SharePoint.SPSite

Microsoft.SharePoint.Client.Web Microsoft.SharePoint.SPWeb

Microsoft.SharePoint.Client.List Microsoft.SharePoint.SPList

Microsoft.SharePoint.Client.ListItem Microsoft.SharePoint.SPListItem

Microsoft.SharePoint.Client.Field Microsoft.SharePoint.SPField

Page 29: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 29

Client Object Model: How to work?

Page 30: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 30

Sharepoint 2010: Client Object Model

Requisiti .NET 3.5 Framework Microsoft.SharePoint.Client.dll Microsoft.SharePoint.Client.Runtime.dll 

Assemblies Location %ProgramFiles%\Common Files\Microsoft Shared\

web server extensions\14\ISAPI

Page 31: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 31

Client Object Model:First Code

static void Main()

    {

        ClientContext clientContext =

            new ClientContext("http://intranet.contoso.com");

        Web site = clientContext.Web;

        clientContext.Load(site);

        clientContext.ExecuteQuery();

        Console.WriteLine("Title: {0}", site.Title);

    }

Page 32: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 32

Client Object Model: Caratteristiche

Accesso a tutti i componenti Sharepoint Object Identity Trim Result Sets (Direttiva Include) Usare CAML LINQ per filtrare (Query Innestate) Asynchronous Processing

Page 33: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 33

Client Object Model: Code Snippet

Page 34: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 34

Client Object Model: ECMAScript

Aggiungere Referenza: <SharePoint:ScriptLink Name="SP.js" runat="server"

OnDemand="true" Localizable="false" />:

Aggiungere FormDigest <SharePoint:FormDigest runat="server" />

Page 35: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 35

Client Object Model: ECMAScript

Limitare i contenuti:

ctx.load(this.web,'Title','Id','Created');

Page 36: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 36

Client Object Model: ECMAScript Considerazioni

Aggiungere Referenza: <SharePoint:ScriptLink Name="SP.js" runat="server"

OnDemand="true" Localizable="false" />

Aggiungere FormDigest <SharePoint:FormDigest runat="server" />

Attendere il caricamento pagina ExecuteOrDelayUntilScriptLoaded(myjsfucntion, "sp.js");

Page 37: Sharepoint 2010  JQuery

Fabrizio Basilio, Decatec 37

GRAZIE!

Blog: http://blog.nicolesoftware.com Web: http://www.decatec.it Mail: [email protected] Skype: fabrizio.basilio