SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Università degli Studi di Trieste
              Dipartimento di Ingegneria e Architettura
        Corso di Laurea Triennale in Ingegneria dell'Informazione
                         Curriculum Informatica




     PROGETTO E IMPLEMENTAZIONE DI UN PROCESSO PER
      L'ASSEMBLAGGIO DI DOCUMENTI HTML IN AMBITO
              MICROSOFT SHAREPOINT 2010


Relatore:                                            Laureando:
Chiar.mo Prof. Maurizio FERMEGLIA                    Nicola FURLAN



                         Anno Accademico 2011-2012
Indice
1 INTRODUZIONE ..................................................................................................................... 1
   1.1 Obiettivo della Tesi ........................................................................................................... 1
   1.2 Stato dell’arte e Motivazioni .............................................................................................. 1
   1.3 Vincoli di progetto ............................................................................................................. 3
   1.4 Tecnologie software utilizzate ........................................................................................... 3
      1.4.1 Microsoft SharePoint 2010 ......................................................................................... 3
      1.4.2 Microsoft SharePoint Designer 2010 .......................................................................... 3
      1.4.3 Microsoft SQL Server 2008 ........................................................................................ 3
      1.4.4 SharePoint Central Administration ............................................................................. 4
      1.4.5 Microsoft Windows Server 2008 R2 ........................................................................... 4
   1.5 Definizione delle fasi di progetto ....................................................................................... 4
   1.6 Risultato della tesi ............................................................................................................ 5
2 Analisi ..................................................................................................................................... 5
   2.1 Database in MS Access.................................................................................................... 5
   2.2 Sito del Dipartimento di Ingegneria e Architettura ............................................................. 6
3 Progettazione .......................................................................................................................... 7
   3.1 Migrazione database da MS Access a MS SQL Server .................................................... 7
   3.2 Interfaccia di modifica dei dati........................................................................................... 7
   3.3 Interfaccia di visualizzazione dei dati ................................................................................ 8
4 Realizzazione.......................................................................................................................... 8
   4.1 Migrazione database da MS Access a MS SQL Server .................................................... 8
   4.2 Realizzazione della pagina di modifica documenti ...........................................................10
   4.3 Realizzazione della pagina di visualizzazione documenti ................................................12
5 Conclusioni ............................................................................................................................15
APPENDICE .............................................................................................................................16
   Macro VBA per esportazione Query ......................................................................................16
   SCRIPT getIDcode ................................................................................................................16
   .ASPX AND .ASPX.CS PAGES AND WEB.CONFIG.............................................................17
      Web.Config ........................................................................................................................17
      .aspx.cs file ........................................................................................................................17
      .aspx file ............................................................................................................................18
Bibliografia/Sitografia: ...............................................................................................................21
1 INTRODUZIONE
Questa tesi si prefigge lo scopo di sviluppare e realizzare il progetto e
l’implementazione di una procedura atta ad automatizzare l’inserimento e la
modifica di documenti HTML relativi alle attività di ricerca svolte all’interno del
Dipartimento di Ingegneria e Architettura dell’Università di Trieste.


1.1 Obiettivo della Tesi
L’obiettivo di questo lavoro consiste nella creazione di un procedimento volto
all’inserimento automatizzato dei documenti riguardanti le attività di ricerca
direttamente sul nuovo sito del Dipartimento, e alla modifica in loco degli stessi.


1.2 Stato dell’arte e Motivazioni
Prima di proseguire con l'esposizione del lavoro svolto, è utile analizzare lo stato
dell’arte relativo alla modifica dei documenti ed alla loro visualizzazione, per
meglio comprendere le motivazioni alla base dei procedimenti esposti in questo
elaborato.

Attualmente nel nuovo sito del Dipartimento di Ingegneria e Architettura è
presente una sezione raggiungibile dal menù “Ricerca” dove, organizzate secondo
i cinque Settori di ricerca, si suddividono le varie Attività di interesse. Ogni Attività
contiene documenti di Progetti di ricerca ad essa relativi; tali documenti sono
contenuti nel sito in formato PDF e pertanto difficilmente modificabili, obbligando
l'amministratore ad un prolungato lavoro manuale, sviluppato in varie fasi:
l’apertura del file DOC del progetto e la modifica dello stesso, la conversione in
PDF e il successivo upload del documento al posto del precedente.
Oltre alle difficoltà esposte precedentemente, bisogna anche considerare la
possibile azione di un utente non esperto in questo tipo di attività, già di per se
complesse, come il Professore interessato ad inserire o modificare proprie
pubblicazioni.




                                                                                       1
Per rendere questa procedura più rapida e meno dispersiva, si è proposto di
aggiungere una funzionalità al sito in costruzione per fare in modo che il
Professore che effettua l’accesso al sito possa subito aver accesso alla collezione
dei documenti di Progetti di ricerca di cui lui è autore, e sia abilitato alla modifica
per quei soli documenti.

Per quanto riguarda invece lo stato dell’arte relativo alla visualizzazione dei
documenti, selezionando direttamente Settore e Attività di ricerca si arriva ad una
lista dei documenti relativi alla sottoarea considerata; cliccando sul titolo del
documento, si può aprire direttamente il PDF nel browser.
Si vuole intervenire anche su questo procedimento poiché si vuole evitare di
dover operare con due tipi di documenti: file PDF salvati on-line nel sito, e file in
formato Word per la modifica in locale.
Per ottenere questo risultato verrà creata una pagina in linguaggio ASPX che
esegue una Query direttamente nel Database presente in SQL Server e genera
una pagina HTML opportunamente formattata che riproduce nel complesso i
contenuti presenti nel documento PDF.

                                                                                     2
1.3 Vincoli di progetto
I vincoli di progetto discendono direttamente dalle tecnologie utilizzate ed
associate al CMS (Content Management System) specifico impiegato nella
creazione del sito di Dipartimento, oltre alle specifiche riguardo l’utilizzo di XML e
HTML per la gestione dei documenti.
Scendendo più nel dettaglio, i vincoli sono i seguenti:
   ● utilizzo del CMS “Microsoft SharePoint 2010” per la gestione dei contenuti
      del sito
   ● utilizzo del DBMS “Microsoft SQL Server 2008”
   ● visualizzazione dei documenti inseriti e modificabili tramite pagine in HTML


1.4 Tecnologie software utilizzate
1.4.1 Microsoft SharePoint 2010
SharePoint è un Content Management System (CMS) che permette la creazione di
particolari siti web principalmente ad uso aziendale (Intranet) ma che possono
anche essere messi in rete e quindi disponibili e utilizzati come normali siti web.
Lo scopo del prodotto è condividere informazioni e/o documenti in diversi modi,
attraverso la creazione di liste, repository documentali, calendari sincronizzati con
Outlook e molto altro. SharePoint è completamente integrato con il pacchetto
Office e offre soluzioni come il "versionamento" dei documenti che essendo
salvati su server rendono possibile la collaborazione.

1.4.2 Microsoft SharePoint Designer 2010
Microsoft SharePoint Designer (SPD), è un editor HTML specializzato e un
software di web design gratuito utilizzato per creare o modificare siti realizzati
con Microsoft SharePoint, workflows e pagine web.

1.4.3 Microsoft SQL Server 2008
Microsoft SQL Server è un DataBase Management System Relazionale (rDBMS). Si
tratta di un prodotto software la cui funzione principale è quella di memorizzare e
recuperare i dati su richiesta di altre applicazioni software, sia quelli sullo stesso



                                                                                    3
computer che quelli in esecuzione su un altro computer attraverso una rete
(compreso Internet). I suoi query languages primari sono T-SQL e ANSI SQL.

1.4.4 SharePoint Central Administration
SharePoint Central Administration (la CA) è un’applicazione web che esiste
tipicamente su un singolo server della server farm. Una server farm è una serie di
server collocati in un ambiente unico in modo da poterne centralizzare la
gestione, la manutenzione e la sicurezza. Questa applicazione fornisce
un’interfaccia di gestione completa e centralizzata per il web e per applicazioni di
servizio nella farm SharePoint, includendo la gestione di account AD per il web e
per applicazioni di servizio.

1.4.5 Microsoft Windows Server 2008 R2
Windows Server 2008 R2 (noto anche come Windows Server 7), è il nome della
versione dedicata al settore server del sistema operativo Windows 7, sviluppato
da Microsoft, successore di Windows Server 2008.
E’ stato usato come ambiente di prova per la realizzazione del progetto.


1.5 Definizione delle fasi di progetto
Il lavoro è stato suddiviso nelle seguenti fasi:
   ● studio delle tecnologie atte alla gestione del sito
       ○ CMS SharePoint 2010, SharePoint Developer 2010
   ● studio delle tecnologie atte alla gestione del Database
       ○ SQL Server 2008
   ● analisi della situazione esistente nel sito del Dipartimento
   ● migrazione del Database di gestione dei documenti da Microsoft Access 2010
      a Microsoft SQL Server 2008 con relativa conversione di tabelle e viste
   ● conversione dei documenti da PDF a record di una tabella contenente i
      dettagli del documento inseriti in più campi
   ● studio e realizzazione di una pagina che dia la possibilità di modifica solo sui
      documenti di cui l’utente è proprietario
   ● analisi della gestione della modifica dei documenti direttamente da web
   ● analisi della gestione della visualizzazione dei documenti
                                                                                   4
1.6 Risultato della tesi
Il presente lavoro ha portato alla realizzazione di una pagina aggiuntiva dove
l’utente può gestire i documenti di cui è il proprietario, e ad un sistema per la
visualizzazione documenti controllato da una pagina creata ad hoc in linguaggio
ASPX.
La visualizzazione dei documenti tramite query su database e la gestione tramite
una richiesta di una pagina in ASPX, la quale genera una pagina HTML formattata
adeguatamente, hanno permesso l’abbandono di una gestione separata dei
documenti in favore di una gestione totalmente on-line degli stessi.
Il futuro prossimo di questo progetto riguarderà la gestione documenti con un
nuovo formato: XML.
L’intera collezione di documenti sarà presente nel sito SharePoint in formato XML,
formattato adeguatamente con XSLT per una visualizzazione più user-friendly.


2 Analisi
Oggetto dell’analisi sono stati i seguenti aspetti: la struttura del database in MS
Access e l’organizzazione del sito di Dipartimento. Entrambi sono stati realizzati
precedentemente, e non sono a cura del laureando.


2.1 Database in MS Access




                                                                                 5
Il database relativo alla gestione dei documenti è stato realizzato in MS Access, ed
è composto da cinque tabelle e quarantuno query.
Sono presenti cinque macrosettori: Energia e Ambiente, ICT, Bio-based Economy,
Process & Product Design, Decision Science; ogni settore contiene al suo interno
delle attività, che possono essere condivise da più settori, e per ogni attività sono
presenti alcuni documenti appartenenti a quell’ambito, relativi alle attività di
ricerca dei Professori e dei dottorandi all’interno del Dipartimento.
Ogni query salvata mostra i documenti relativi ad un’attività fissata, e vengono
presentati nome del documento e relativo autore.


2.2 Sito del Dipartimento di Ingegneria e Architettura
Il sito del Dipartimento è stato realizzato usando il CMS Microsoft SharePoint, e si
compone di una Home Page dove è possibile avere uno sguardo generale sulle
diverse aree di interesse e organizzazione del dipartimento. Oltre alla Home Page,
sono presenti varie sezioni:
     ● la sezione “Dipartimento” dove si trovano informazioni sulla storia del
        dipartimento e la sua posizione, oltre che alle informazioni sul suo
        personale;
     ● la sezione “Didattica”;
     ● la sezione “Link” con link utili alla vita in ateneo e a informazioni su master
        e congressi;
     ● la sezione “Servizi” con prenotazioni, materiale, accesso a posta elettronica
        e area download;
     ● la sezione “Ricerca”, che conduce ad un sottosito. Qui è possibile notare un
        menù diverso dai precedenti, organizzato con cinque link che portano
        ognuno ad un settore di ricerca. In ognuno di questi settori è possibile
        notare la presenza di una lista con la divisione in attività; il click su una di
        esse porta successivamente ad un’altra lista contenente un elenco dei
        documenti         legati        a         quella        specifica        attività.
        In questa lista è presente il nome e l’autore del documento. Da notare il
        fatto che il nome è in realtà un campo URL, il quale indirizza direttamente
        al documento PDF, caricato in una libreria apposita direttamente nel sito.

                                                                                        6
3 Progettazione
La progettazione si articola in varie fasi: una fase iniziale di migrazione del
database su MS SQL Server oltre all'inserimento di una tabella addizionale per il
salvataggio dei dettagli dei documenti PDF, una fase in cui viene analizzato il
procedimento per giungere ad un'interfaccia di modifica dei dati del singolo
documento, e una fase in cui si affronta il processo di visualizzazione dello stesso.


3.1 Migrazione database da MS Access a MS SQL Server
Il database su cui poggia la gestione dei documenti è sostenuto da MS Access
2010. Utilizzando una procedura guidata presente nello stesso Access è possibile,
con poca fatica, importare il database in toto o in parte, all’interno di un Database
SQL Server già esistente, o eventualmente uno nuovo. Per quanto riguarda la
migrazione delle query, si è dovuto operare in maniera diversa attraverso l’uso di
una macro eseguita all’interno di Access, che restituisca la sintassi SQL per creare
le query stesse. In una fase successiva, per completare il trasferimento, si è
dovuto modificare lo script ottenuto per essere adattato alla sintassi di SQL Server
ed in seguito eseguito.


3.2 Interfaccia di modifica dei dati
Sharepoint offre numerose tipologie di gestione dei file e dei contenuti, una fra
queste, la gestione tramite “Liste” (o “List”) di dati salvati precedentemente in
formato tabellare, o che riferiscono a “tabelle linkate” da Microsoft Access.
L’obbiettivo è sfruttare le proprietà di queste liste integrate di gestione per
aggiungere un nuovo elemento e modificare un elemento già esistente, come da
specifiche di progetto. Sostituendo MS SQL Server a MS Access, non è più
possibile appoggiarsi su liste gestite internamente a SharePoint, ma si necessita
dell’uso di “Tipi dati esterni” (o “External Content Type”), basati sui Business
Connectivity Services, servizi che offrono interfacce per interagire con i business
data.




                                                                                   7
3.3 Interfaccia di visualizzazione dei dati
Per quanto riguarda la visualizzazione dei dati, essa verrà fatta in maniera diversa
dalla modifica degli stessi: i dati verranno così direttamente interrogati dal
database e mostrati sfruttando una pagina ASPX.


4 Realizzazione
4.1 Migrazione database da MS Access a MS SQL Server
MS Access mette a disposizione dell’utente una funzione particolare per la
migrazione del database sotto il menù
“Strumenti database” -> “Sposta Dati”.
Questa funzione esegue una procedura
guidata di migrazione, che richiede a
quale tipo di database legarsi per il
passaggio o se selezionarne uno nuovo, e a quale computer SQL Server effettuare
il collegamento.
Per quanto riguarda la migrazione delle query, si è scelto di procedere utilizzando
una macro già esistente trovata in Rete, riadattata (vedi Appendice).
La funzione scorre tutte le macro presenti, e per ognuna di esse, ne stampa il
nome e la sintassi SQL che la genera. Aggiungendo opportunamente la prima riga
con “CREATE VIEW name_view AS” invece di lasciare solamente il nome, e
aggiungendo la dicitura “GO” sotto la sintassi SQL della query, si produce un lungo
listato di sintassi SQL eseguibile a livello del nuovo database in SQL Server, la
quale produrrà tutte le viste presenti nel vecchio database Access.
Va notata la cura particolare riservata all’assegnazione dei nomi di tabella, vista e
campi, che segue delle regole non scritte.

Per i nomi di Tabella e di Colonna:
- Pascal Case (si distingue dal CamelCase per la restrizione che la prima lettera
dev’essere maiuscola)
- Alfanumerico
- Evitare underscore
- No Prefisso
                                                                                   8
- Usare la forma singolare (es: Utente, non Utenti)
Inoltre, per evitare problemi di incompatibilità, si è preferito eliminare gli spazi
bianchi all’interno dei nomi di tabella (anche se gestibili richiamando il nome
completo di tabella dentro parentesi quadre) e lettere accentate nei nomi di
tabella e di campo.

Oltre alle tabelle già esistenti, è stata creata un’altra tabella per inserire le
informazioni presenti nei singoli file PDF: ogni voce del documento sarà ora
contenuta in un campo della tabella, cosicché ogni documento corrisponderà da
ora in poi ad un singolo record. Oltre a tutti i campi presenti nel documento è
stato introdotto un campo aggiuntivo, “SchedaID”, che viene usato come chiave
primaria della tabella, e serve per identificare univocamente il documento
all’interno della collezione. Questa tabella tblDettagliSchede è collegata con la
tabella tblSchede da una relationship 1-1 che ha come chiave primaria e chiave
esterna SchedaID.
Di seguito, il diagramma del Database.




                                                                                  9
4.2 Realizzazione della pagina di modifica documenti
Per caricare una tabella appartenente ad un Database in SQL Server, è necessario
caricarla non più come lista, ma come “Tipo di contenuto esterno” (“External
Content Type”), dalla lista degli
“Oggetti del Sito” (“Site Objects”).
A quel punto, viene richiesto un nome
per il nuovo contenuto creato, e un
Sistema esterno, che ricerca una
sorgente dati esterna e definisce le operazioni volute sulle tabelle selezionate. Le
operazioni possibili sono Create, Read (Read Item e Read List), Update, Delete.
N.B. Su “Edit Connection Properties”, alla voce “Authentication Mode:” selezionare “BDC Identity”.




                                                                                                     10
I cambiamenti effettuati sul nuovo tipo di
contenuto esterno verranno salvati nel
“Business Data Connectivity Metadata Store”
(componente integrato di SharePoint).
Ora, fissate le operazioni consentite, è possibile
creare una nuova lista esterna cliccando il tasto
relativo; essa si aggiungerà all’elenco delle liste
già esistenti.

Per poter filtrare i documenti in base all’utente, è necessario creare un filtro e si
procede come segue: andando in “Operation Design View”, creare una nuova
operazione di “Read List”, aggiungendo stavolta un filtro in base al campo
AutoreID. Questo filtro può essere impostato nelle proprietà della vista, così da
avere la possibilità di associare un valore al campo AutoreID.
Per rendere dinamico questo filtro in base all’utente che effettua il login nel sito,
si inserisce uno script javascript in esecuzione nella pagina, che ritorna come
valore proprio il nome di login dell’utente. Lo script è stato modificato ed adattato
alla situazione a cura del laureando.

Verranno osservati in seguito solo alcuni tratti dello script; il codice completo si
trova nell’Appendice.
Nel seguente script vengono usate funzioni di jQuery, per cui dev’essere
importato lo script

        $(document).ready(
               function() {
                        ExecuteOrDelayUntilScriptLoaded(
                                AddItem( function(){ alert(currentUser); } )
                                , "sp.js");
               });


Viene eseguita la funzione AddItem solamente quando la pagina è stata caricata.
La funzione AddItem tenta di eseguire una query

context.executeQueryAsync(     Function.createDelegate(this, this.onSuccess),
                               Function.createDelegate(this, this.onFailureMethod)   );

                                                                                          11
Se la query ha successo, salva nella variabile currentUser lo username dell’utente

function onSuccess(sender, args) {
         currentUser = this.user.get_loginName();
}


Questo verrà usato come parametro del filtro in base all’utente, usato nella
visualizzazione dei documenti che è possibile modificare.
Cliccando su ogni elemento, è possibile modificarlo, se si è il proprietario del file,
ed è possibile creare un nuovo documento.




4.3 Realizzazione della pagina di visualizzazione documenti
Ora verrà spiegato come creare una pagina ASPX per visualizzare dinamicamente
il documento selezionato in base all'identificativo del documento.

                                                                                   12
Si apra Visual Studio, e si crei una Solution di tipo Web Application.
Dalla Toolbox, selezionare e trascinare nel codice l'oggetto della categoria "Data",
"SqlDataSource".
Cambiando la modalità di visualizzazione da Source a Design, è possibile
intervenire sulle proprietà dell'oggetto, e soprattutto sulla scelta della sorgente
dati.




A questo punto parte del codice nella pagina .aspx e nel file Web.config è già stato
creato automaticamente: la stringa di connessione al Database è già stata settata,
ed esiste già un oggetto SqlDataSource che, se sono stati configurati in maniera
corretta i parametri inseriti durante la configurazione dell'oggetto fatta
precedentemente, porteranno alla creazione automatica di un parametro di
selezione, o più nello specifico, di un QueryStringParameter.


                                                                                 13
Il QueryStringParameter è un oggetto molto interessante, poichè è proprio esso
che ricopre il ruolo fondamentale del passaggio parametri direttamente nell'URL
della richiesta.
Esso ha degli attributi, quali Name, il quale valore è mappato come variabile nella
query fatta dall'oggetto SqlDataSource per prelevare il documento. Un altro
attributo importante è QueryStringField, il quale valore sarà l'attributo che verrà
definito nell'URL.
Es. http://localhost:1950/WebForm1.aspx?fileID=1
In questo caso, si può notare che fileID è il valore di QueryStringField.

Nel file .aspx manca solo la creazione delle label per la visualizzazione dei campi
del documento, e le label per le intestazioni di riga. L'intera struttura è gestita con
una tabella.
Le Label vengono tutte definite con il tag <asp:Label> e sono presenti i seguenti
attributi:
- ID: fornisce un nome di oggetto che potrà poi essere richiamato nel file .aspx.cs
- runat="server"
- Text: il valore di questo attributo sarà il testo visualizzato all'interno della label

Nel file .aspx.cs dovranno essere inserite alcune righe di codice all'interno della
funzione protected void Page_Load(object sender, EventArgs e).
Le righe da inserire sono le seguenti:

DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);


che crea un oggetto DataView, che contiene il risultato della query effettuata

lbldescrizioneAttivitaVALUE.Text = dv.Table.Rows[0][4].ToString();


indica che il testo da visualizzare della label lbldescrizioneAttivitaVALUE è il testo
generato dal 5° valore presente nell'array interno dell'oggetto DataView.
Facendo questa associazione per ogni label a cui dobbiamo associare la
visualizzazione di un campo della query.



                                                                                     14
Dopo aver compilato, il risultato sarà il seguente:




5 Conclusioni
L’obiettivo di creare in locale una pagina per la visualizzazione e una pagina per la
gestione, intesa come modifica e inserimento, dei documenti relativi alle attività
di ricerca svolte dai professori e dai dottorandi del dipartimento è stato raggiunto.
Durante il lavoro di tesi è stata svolta la costruzione in locale, tramite il CMS
SharePoint e il software SharePoint Designer, della pagina di gestione dei
documenti nonché la costruzione in toto di una pagina .aspx e una .aspx.cs per la
gestione della query e la visualizzazione del documento tramite CSS.
Oltre a questo, è stato effettuato un lavoro sul database Access per permettere la
migrazione dello stesso come premessa dei lavori precedentemente discussi.

Il lavoro è attualmente accessibile in locale, e lo sviluppo nel prossimo futuro sarà
il porting on-line del progetto sul CMS SharePoint direttamente sul sito del
Dipartimento.
La prossima mossa sarà l’integrazione di questo sistema con la gestione e
l’archiviazione dei documenti con XML e della loro visualizzazione tramite XSLT.


                                                                                  15
APPENDICE
Macro VBA per esportazione Query
Option Compare Database

Public Sub IterateQueryDefsCollection()
         Dim dbMain As DAO.Database
         Dim qdf As DAO.QueryDef
         Dim qdfTemp As DAO.QueryDef

          Set dbMain = CurrentDb

          For Each qdf In dbMain.QueryDefs
                   Debug.Print qdf.Name 'Prints name of query
                   Set qdfTemp = dbMain.QueryDefs(qdf.Name)
                   Debug.Print qdfTemp.SQL 'Prints SQL Syntax of query
          Next
End Sub



SCRIPT getIDcode
<script type="text/ecmascript">
  $(document).ready(
                  function() {
                           ExecuteOrDelayUntilScriptLoaded(
                                   AddItem(
                                                    function(){
                                                             alert(currentUser);
                                                    })
                                   , "sp.js");
                  });

  function AddItem(callback) {
         var context = SP.ClientContext.get_current();
         user = context.get_web().get_currentUser();
         context.load(this.user);
         context.executeQueryAsync(Function.createDelegate(this, this.onSuccess), Function.createDelegate(this,
this.onFailureMethod));
  }

  function onSuccess(sender, args) {
         currentUser = this.user.get_loginName();
         $('.prova').html(currentUser);
         //alert(' Name:' + this.user.get_title() + 'n Login:' + this.user.get_loginName());
  }

                                                                                                             16
function onFailureMethod(sender, args) {
         alert('request failed ' + args.get_message() + 'n' + args.get_stackTrace());
  }
</script>



.ASPX AND .ASPX.CS PAGES AND WEB.CONFIG
Web.Config
<?xml version="1.0"?>

<!--
 For more information on how to configure your ASP.NET application, please visit
 http://go.microsoft.com/fwlink/?LinkId=169433
 -->

<configuration>
 <connectionStrings>
        <add name="DBRicercaDipartimentoConnectionString" connectionString="Data
Source=localhostSQLEXPRESS;Initial Catalog=DBRicercaDipartimento;Integrated Security=True"
        providerName="System.Data.SqlClient" />
 </connectionStrings>
 <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
        </system.web>
</configuration>


.aspx.cs file
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
       public partial class WebForm1 : System.Web.UI.Page
       {
       protected void Page_Load(object sender, EventArgs e)
       {
       DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);


                                                                                              17
lblSchedaIDVALUE.Text = dv.Table.Rows[0][0].ToString();
        lblnomeAttivitaRicercaVALUE.Text = dv.Table.Rows[0][1].ToString();
        lblsintesiVALUE.Text = dv.Table.Rows[0][2].ToString();
        lblsettoriApplicativiVALUE.Text = dv.Table.Rows[0][3].ToString();
        lbldescrizioneAttivitaVALUE.Text = dv.Table.Rows[0][4].ToString();
        lblannoInizioAttivitaVALUE.Text = dv.Table.Rows[0][5].ToString();
        lblgruppoDiRicercaVALUE.Text = dv.Table.Rows[0][6].ToString();
        lblstudentiDottoratoCoinvoltiVALUE.Text = dv.Table.Rows[0][7].ToString();
        lblprogettiDiRicercaAttiviNelVALUE.Text = dv.Table.Rows[0][8].ToString();
        lblannoPRAVALUE.Text = dv.Table.Rows[0][9].ToString();
        lblattivitaPrevistaPerIlVALUE.Text = dv.Table.Rows[0][10].ToString();
        lblannoAPVALUE.Text = dv.Table.Rows[0][11].ToString();
        lblpubblicazioniIntervalloVALUE.Text = dv.Table.Rows[0][12].ToString();
        lblannoInizioPIVALUE.Text = dv.Table.Rows[0][13].ToString();
        lblannoFinePIVALUE.Text = dv.Table.Rows[0][14].ToString();
        }
        }
}


.aspx file
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"
Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
         <title></title>
         <style>
         .scheda td {
         padding: 3px 5px;
         }
         </style>
</head>
<body>
         <form id="form1" runat="server">
         <div>
         <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$
ConnectionStrings:DBRicercaDipartimentoConnectionString %>" SelectCommand="SELECT * FROM
[tblDettagliSchede] WHERE ([SchedaID] = @SchedaID)">
         <SelectParameters>
                  <asp:QueryStringParameter DefaultValue="1" QueryStringField="fileID" Name="SchedaID"
Type="Int32" />
         </SelectParameters>

                                                                                                         18
</asp:SqlDataSource>

          <table border="1" class="scheda">
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lblSchedaID" runat="server"
Text="SchedaID"></asp:Label></td>
                     <td><asp:Label ID="lblSchedaIDVALUE" runat="server" Text=""></asp:Label></td>
          </tr>
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lblnomeAttivitaRicerca" runat="server" Text="Nome
dell’attivita' di ricerca"></asp:Label></td>
                     <td><asp:Label ID="lblnomeAttivitaRicercaVALUE" runat="server" Text=""></asp:Label></td>
          </tr>
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lblsintesi" runat="server"
Text="Sintesi"></asp:Label></td>
                     <td><asp:Label ID="lblsintesiVALUE" runat="server" Text=""></asp:Label></td>
          </tr>
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lblsettoriApplicativi" runat="server" Text="Settori
Applicativi"></asp:Label></td>
                     <td><asp:Label ID="lblsettoriApplicativiVALUE" runat="server" Text=""></asp:Label></td>
          </tr>
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lbldescrizioneAttivita" runat="server" Text="Descrizione
Attivita'"></asp:Label></td>
                     <td><asp:Label ID="lbldescrizioneAttivitaVALUE" runat="server" Text=""></asp:Label></td>
          </tr>
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lblannoInizioAttivita" runat="server" Text="Anno Inizio
Attivita'"></asp:Label></td>
                     <td><asp:Label ID="lblannoInizioAttivitaVALUE" runat="server" Text=""></asp:Label></td>
          </tr>
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lblgruppoDiRicerca" runat="server" Text="Gruppo Di
Ricerca"></asp:Label></td>
                     <td><asp:Label ID="lblgruppoDiRicercaVALUE" runat="server" Text=""></asp:Label></td>
          </tr>
          <tr>
                     <td bgcolor="#9acd32"><asp:Label ID="lblstudentiDottoratoCoinvolti" runat="server"
Text="Studenti Dottorato Coinvolti"></asp:Label></td>
                     <td><asp:Label ID="lblstudentiDottoratoCoinvoltiVALUE" runat="server"
Text=""></asp:Label></td>
          </tr>
          <tr>


                                                                                                                19
<td bgcolor="#9acd32"><asp:Label ID="lblprogettiDiRicercaAttiviNel" runat="server"
Text="Progetti Di Ricerca Attivi Nel"></asp:Label> <asp:Label ID="lblannoPRAVALUE" runat="server"
Text=""></asp:Label></td>
                   <td><asp:Label ID="lblprogettiDiRicercaAttiviNelVALUE" runat="server"
Text=""></asp:Label></td>
         </tr>
         <tr>
                   <td bgcolor="#9acd32"><asp:Label ID="lblattivitaPrevistaPerIl" runat="server" Text="Attivita'
Prevista Per Il"></asp:Label> <asp:Label ID="lblannoAPVALUE" runat="server" Text=""></asp:Label></td>
                   <td><asp:Label ID="lblattivitaPrevistaPerIlVALUE" runat="server" Text=""></asp:Label></td>
         </tr>
         <tr>
                   <td bgcolor="#9acd32"><asp:Label ID="lblpubblicazioniIntervallo" runat="server"
Text="Pubblicazioni Intervallo"></asp:Label> <asp:Label ID="lblannoInizioPIVALUE" runat="server"
Text=""></asp:Label> - <asp:Label ID="lblannoFinePIVALUE" runat="server" Text=""></asp:Label></td>
                   <td><asp:Label ID="lblpubblicazioniIntervalloVALUE" runat="server" Text=""></asp:Label></td>
         </tr>
         </table>
         </div>
         </form>
</body>
</html>




                                                                                                              20
Bibliografia/Sitografia:
1. Riguardo SharePoint
     ○ SharePoint
        ■ http://pluralsight.com/training/courses/TableOfContents?courseName=sp2010-
           foundation-fundamentals&highlight=
        ■ http://pluralsight.com/training/Courses/TableOfContents/sp2010-development
        ■ http://sharepoint-tutorial.net/post/2011/02/10/sharepoint-tutorial-for-
           beginners.aspx
        ■ http://www.sharepointhosting.com/video_tutorials.html
2. Riguardo al lavoro sulla pagina di gestione e modifica dei documenti
     ○ Business Connectivity Services in SharePoint Server 2010
        ■ http://technet.microsoft.com/en-us/sharepoint/ee518675.aspx
     ○ How to create an External Content Type in SharePoint Designer 2010 using
       Business Connectivity Services(BCS) and fix issues that arise on the way
        ■ http://underthehood.ironworks.com/2010/07/how-to-create-an-external-content-
           type-in-sharepoint-designer-2010-using-business-connectivity-servi.html
     ○ Business Data Catalog Authentication
        ■ http://lightningtools.com/bdc-authentication-vs-authorization/
3. Riguardo al lavoro sulla pagina di visualizzazione dei documenti
     ○ Querying Data with the SqlDataSource Control (C#)
        ■ http://www.asp.net/web-forms/tutorials/data-access/accessing-the-database-
           directly-from-an-aspnet-page/querying-data-with-the-sqldatasource-control-cs




                                                                                          21

Contenu connexe

En vedette

IAB Brasil - Agenda Mobile Mídia 2009
IAB Brasil - Agenda Mobile Mídia 2009IAB Brasil - Agenda Mobile Mídia 2009
IAB Brasil - Agenda Mobile Mídia 2009Renato Virgili
 
Kabari news edisi oktober 09 (siapa sih dr ikrar)
Kabari news edisi oktober 09 (siapa sih dr ikrar)Kabari news edisi oktober 09 (siapa sih dr ikrar)
Kabari news edisi oktober 09 (siapa sih dr ikrar)Taruna Ikrar
 
Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3
Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3
Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3caioturtle
 
Proyecto TIC en un centro educativo
Proyecto TIC en un centro educativoProyecto TIC en un centro educativo
Proyecto TIC en un centro educativotecnorachel
 
тестове завдання
тестове завданнятестове завдання
тестове завданняOlga19744
 
UN AUTO UNA MUJER
UN AUTO UNA MUJERUN AUTO UNA MUJER
UN AUTO UNA MUJERyerotex
 
Maribel Oyanedel Lemus
Maribel Oyanedel LemusMaribel Oyanedel Lemus
Maribel Oyanedel Lemustrikkmar
 
Membuat tabel pada dokumen
Membuat tabel pada dokumenMembuat tabel pada dokumen
Membuat tabel pada dokumendwibawa
 
Dislexia 1
Dislexia 1Dislexia 1
Dislexia 1flufy
 
Material Didatico Para Ead Joao Jose Saraiva Da Fonseca
Material Didatico Para Ead Joao Jose Saraiva Da FonsecaMaterial Didatico Para Ead Joao Jose Saraiva Da Fonseca
Material Didatico Para Ead Joao Jose Saraiva Da Fonsecajoao jose saraiva da fonseca
 
teks syarahan kebersihan lambang keimanan
teks syarahan kebersihan lambang keimananteks syarahan kebersihan lambang keimanan
teks syarahan kebersihan lambang keimananshafikah zakaria
 
Luat gia (so 11.2012.qh13 ngay 20.6.2012)
Luat gia (so 11.2012.qh13 ngay 20.6.2012)Luat gia (so 11.2012.qh13 ngay 20.6.2012)
Luat gia (so 11.2012.qh13 ngay 20.6.2012)Thẩm Định Giá Ivc
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility modelsUmberto Griffo
 
телеконференция
телеконференциятелеконференция
телеконференцияAdelya11
 
Estada a can miqueló
Estada a can miquelóEstada a can miqueló
Estada a can miquelómbrun
 

En vedette (20)

IAB Brasil - Agenda Mobile Mídia 2009
IAB Brasil - Agenda Mobile Mídia 2009IAB Brasil - Agenda Mobile Mídia 2009
IAB Brasil - Agenda Mobile Mídia 2009
 
Manual Nova Ortografia
Manual Nova OrtografiaManual Nova Ortografia
Manual Nova Ortografia
 
Roteiro Audio Video Joao Jose Saraiva Da Fonseca
Roteiro Audio Video Joao Jose Saraiva Da FonsecaRoteiro Audio Video Joao Jose Saraiva Da Fonseca
Roteiro Audio Video Joao Jose Saraiva Da Fonseca
 
Kabari news edisi oktober 09 (siapa sih dr ikrar)
Kabari news edisi oktober 09 (siapa sih dr ikrar)Kabari news edisi oktober 09 (siapa sih dr ikrar)
Kabari news edisi oktober 09 (siapa sih dr ikrar)
 
Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3
Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3
Guida al computer - Lezione 88 - Reti cablate e wireless Parte 3
 
1
11
1
 
Proyecto TIC en un centro educativo
Proyecto TIC en un centro educativoProyecto TIC en un centro educativo
Proyecto TIC en un centro educativo
 
тестове завдання
тестове завданнятестове завдання
тестове завдання
 
UN AUTO UNA MUJER
UN AUTO UNA MUJERUN AUTO UNA MUJER
UN AUTO UNA MUJER
 
Maribel Oyanedel Lemus
Maribel Oyanedel LemusMaribel Oyanedel Lemus
Maribel Oyanedel Lemus
 
Membuat tabel pada dokumen
Membuat tabel pada dokumenMembuat tabel pada dokumen
Membuat tabel pada dokumen
 
Histerectomia supracervical laparoscopicaa
Histerectomia supracervical laparoscopicaaHisterectomia supracervical laparoscopicaa
Histerectomia supracervical laparoscopicaa
 
Dislexia 1
Dislexia 1Dislexia 1
Dislexia 1
 
Material Didatico Para Ead Joao Jose Saraiva Da Fonseca
Material Didatico Para Ead Joao Jose Saraiva Da FonsecaMaterial Didatico Para Ead Joao Jose Saraiva Da Fonseca
Material Didatico Para Ead Joao Jose Saraiva Da Fonseca
 
teks syarahan kebersihan lambang keimanan
teks syarahan kebersihan lambang keimananteks syarahan kebersihan lambang keimanan
teks syarahan kebersihan lambang keimanan
 
Luat gia (so 11.2012.qh13 ngay 20.6.2012)
Luat gia (so 11.2012.qh13 ngay 20.6.2012)Luat gia (so 11.2012.qh13 ngay 20.6.2012)
Luat gia (so 11.2012.qh13 ngay 20.6.2012)
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility models
 
Pp diare
Pp diarePp diare
Pp diare
 
телеконференция
телеконференциятелеконференция
телеконференция
 
Estada a can miqueló
Estada a can miquelóEstada a can miqueló
Estada a can miqueló
 

Similaire à Progetto e implementazione di un processo per l'assemblaggio di documenti html in ambito microsoft share point 2010

Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...diegohusu
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...daniel_zotti
 
Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...
Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...
Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...snoopalexia
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
REALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALI
REALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALIREALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALI
REALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALIStefano Cenizzi
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...
Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...
Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...Anna Stramaglia
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Matteo Miotto
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...artemedea
 
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
 
SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...
SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...
SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...guest12aaa586
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointSviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointDenis Tomada
 
Corso su SharePoint 2013 Base
Corso su SharePoint 2013 BaseCorso su SharePoint 2013 Base
Corso su SharePoint 2013 BaseDev4Side S.r.l.
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...LucaGre
 
Corso sharepoint D1
Corso sharepoint D1Corso sharepoint D1
Corso sharepoint D1Decatec
 
Progettazione e sviluppo di un applicativo web e della sua base di dati per l...
Progettazione e sviluppo di un applicativo web e della sua base di dati per l...Progettazione e sviluppo di un applicativo web e della sua base di dati per l...
Progettazione e sviluppo di un applicativo web e della sua base di dati per l...dudinestefano
 
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...ciakana
 

Similaire à Progetto e implementazione di un processo per l'assemblaggio di documenti html in ambito microsoft share point 2010 (20)

Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
 
Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...
Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...
Studioerealizzazionedisoluzioniperlavorocollaborativobasatesulmotorediworkflo...
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Tesi_Adamou
Tesi_AdamouTesi_Adamou
Tesi_Adamou
 
Tesi_Adamou
Tesi_AdamouTesi_Adamou
Tesi_Adamou
 
REALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALI
REALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALIREALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALI
REALIZZAZIONE DI UNA WEB PART PER L'ACCESSO A MOTORI DI BASI DI DATI RELAZIONALI
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...
Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...
Progettazione e sviluppo del modulo di gestione e analisi dei biosegnali all'...
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
 
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...
 
SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...
SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...
SVILUPPO DI UNA APPLICAZIONE PER L’ACQUISIZIONE DI DATI DA SUPPORTO CARTACEO:...
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointSviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
 
Corso su SharePoint 2013 Base
Corso su SharePoint 2013 BaseCorso su SharePoint 2013 Base
Corso su SharePoint 2013 Base
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
 
Corso sharepoint D1
Corso sharepoint D1Corso sharepoint D1
Corso sharepoint D1
 
Progettazione e sviluppo di un applicativo web e della sua base di dati per l...
Progettazione e sviluppo di un applicativo web e della sua base di dati per l...Progettazione e sviluppo di un applicativo web e della sua base di dati per l...
Progettazione e sviluppo di un applicativo web e della sua base di dati per l...
 
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...
Progettazione e realizzazione di un nodo di elaborazione per il rilevamento d...
 
Project Management
Project Management Project Management
Project Management
 

Dernier

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 

Dernier (9)

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 

Progetto e implementazione di un processo per l'assemblaggio di documenti html in ambito microsoft share point 2010

  • 1. Università degli Studi di Trieste Dipartimento di Ingegneria e Architettura Corso di Laurea Triennale in Ingegneria dell'Informazione Curriculum Informatica PROGETTO E IMPLEMENTAZIONE DI UN PROCESSO PER L'ASSEMBLAGGIO DI DOCUMENTI HTML IN AMBITO MICROSOFT SHAREPOINT 2010 Relatore: Laureando: Chiar.mo Prof. Maurizio FERMEGLIA Nicola FURLAN Anno Accademico 2011-2012
  • 2. Indice 1 INTRODUZIONE ..................................................................................................................... 1 1.1 Obiettivo della Tesi ........................................................................................................... 1 1.2 Stato dell’arte e Motivazioni .............................................................................................. 1 1.3 Vincoli di progetto ............................................................................................................. 3 1.4 Tecnologie software utilizzate ........................................................................................... 3 1.4.1 Microsoft SharePoint 2010 ......................................................................................... 3 1.4.2 Microsoft SharePoint Designer 2010 .......................................................................... 3 1.4.3 Microsoft SQL Server 2008 ........................................................................................ 3 1.4.4 SharePoint Central Administration ............................................................................. 4 1.4.5 Microsoft Windows Server 2008 R2 ........................................................................... 4 1.5 Definizione delle fasi di progetto ....................................................................................... 4 1.6 Risultato della tesi ............................................................................................................ 5 2 Analisi ..................................................................................................................................... 5 2.1 Database in MS Access.................................................................................................... 5 2.2 Sito del Dipartimento di Ingegneria e Architettura ............................................................. 6 3 Progettazione .......................................................................................................................... 7 3.1 Migrazione database da MS Access a MS SQL Server .................................................... 7 3.2 Interfaccia di modifica dei dati........................................................................................... 7 3.3 Interfaccia di visualizzazione dei dati ................................................................................ 8 4 Realizzazione.......................................................................................................................... 8 4.1 Migrazione database da MS Access a MS SQL Server .................................................... 8 4.2 Realizzazione della pagina di modifica documenti ...........................................................10 4.3 Realizzazione della pagina di visualizzazione documenti ................................................12 5 Conclusioni ............................................................................................................................15 APPENDICE .............................................................................................................................16 Macro VBA per esportazione Query ......................................................................................16 SCRIPT getIDcode ................................................................................................................16 .ASPX AND .ASPX.CS PAGES AND WEB.CONFIG.............................................................17 Web.Config ........................................................................................................................17 .aspx.cs file ........................................................................................................................17 .aspx file ............................................................................................................................18
  • 4. 1 INTRODUZIONE Questa tesi si prefigge lo scopo di sviluppare e realizzare il progetto e l’implementazione di una procedura atta ad automatizzare l’inserimento e la modifica di documenti HTML relativi alle attività di ricerca svolte all’interno del Dipartimento di Ingegneria e Architettura dell’Università di Trieste. 1.1 Obiettivo della Tesi L’obiettivo di questo lavoro consiste nella creazione di un procedimento volto all’inserimento automatizzato dei documenti riguardanti le attività di ricerca direttamente sul nuovo sito del Dipartimento, e alla modifica in loco degli stessi. 1.2 Stato dell’arte e Motivazioni Prima di proseguire con l'esposizione del lavoro svolto, è utile analizzare lo stato dell’arte relativo alla modifica dei documenti ed alla loro visualizzazione, per meglio comprendere le motivazioni alla base dei procedimenti esposti in questo elaborato. Attualmente nel nuovo sito del Dipartimento di Ingegneria e Architettura è presente una sezione raggiungibile dal menù “Ricerca” dove, organizzate secondo i cinque Settori di ricerca, si suddividono le varie Attività di interesse. Ogni Attività contiene documenti di Progetti di ricerca ad essa relativi; tali documenti sono contenuti nel sito in formato PDF e pertanto difficilmente modificabili, obbligando l'amministratore ad un prolungato lavoro manuale, sviluppato in varie fasi: l’apertura del file DOC del progetto e la modifica dello stesso, la conversione in PDF e il successivo upload del documento al posto del precedente. Oltre alle difficoltà esposte precedentemente, bisogna anche considerare la possibile azione di un utente non esperto in questo tipo di attività, già di per se complesse, come il Professore interessato ad inserire o modificare proprie pubblicazioni. 1
  • 5. Per rendere questa procedura più rapida e meno dispersiva, si è proposto di aggiungere una funzionalità al sito in costruzione per fare in modo che il Professore che effettua l’accesso al sito possa subito aver accesso alla collezione dei documenti di Progetti di ricerca di cui lui è autore, e sia abilitato alla modifica per quei soli documenti. Per quanto riguarda invece lo stato dell’arte relativo alla visualizzazione dei documenti, selezionando direttamente Settore e Attività di ricerca si arriva ad una lista dei documenti relativi alla sottoarea considerata; cliccando sul titolo del documento, si può aprire direttamente il PDF nel browser. Si vuole intervenire anche su questo procedimento poiché si vuole evitare di dover operare con due tipi di documenti: file PDF salvati on-line nel sito, e file in formato Word per la modifica in locale. Per ottenere questo risultato verrà creata una pagina in linguaggio ASPX che esegue una Query direttamente nel Database presente in SQL Server e genera una pagina HTML opportunamente formattata che riproduce nel complesso i contenuti presenti nel documento PDF. 2
  • 6. 1.3 Vincoli di progetto I vincoli di progetto discendono direttamente dalle tecnologie utilizzate ed associate al CMS (Content Management System) specifico impiegato nella creazione del sito di Dipartimento, oltre alle specifiche riguardo l’utilizzo di XML e HTML per la gestione dei documenti. Scendendo più nel dettaglio, i vincoli sono i seguenti: ● utilizzo del CMS “Microsoft SharePoint 2010” per la gestione dei contenuti del sito ● utilizzo del DBMS “Microsoft SQL Server 2008” ● visualizzazione dei documenti inseriti e modificabili tramite pagine in HTML 1.4 Tecnologie software utilizzate 1.4.1 Microsoft SharePoint 2010 SharePoint è un Content Management System (CMS) che permette la creazione di particolari siti web principalmente ad uso aziendale (Intranet) ma che possono anche essere messi in rete e quindi disponibili e utilizzati come normali siti web. Lo scopo del prodotto è condividere informazioni e/o documenti in diversi modi, attraverso la creazione di liste, repository documentali, calendari sincronizzati con Outlook e molto altro. SharePoint è completamente integrato con il pacchetto Office e offre soluzioni come il "versionamento" dei documenti che essendo salvati su server rendono possibile la collaborazione. 1.4.2 Microsoft SharePoint Designer 2010 Microsoft SharePoint Designer (SPD), è un editor HTML specializzato e un software di web design gratuito utilizzato per creare o modificare siti realizzati con Microsoft SharePoint, workflows e pagine web. 1.4.3 Microsoft SQL Server 2008 Microsoft SQL Server è un DataBase Management System Relazionale (rDBMS). Si tratta di un prodotto software la cui funzione principale è quella di memorizzare e recuperare i dati su richiesta di altre applicazioni software, sia quelli sullo stesso 3
  • 7. computer che quelli in esecuzione su un altro computer attraverso una rete (compreso Internet). I suoi query languages primari sono T-SQL e ANSI SQL. 1.4.4 SharePoint Central Administration SharePoint Central Administration (la CA) è un’applicazione web che esiste tipicamente su un singolo server della server farm. Una server farm è una serie di server collocati in un ambiente unico in modo da poterne centralizzare la gestione, la manutenzione e la sicurezza. Questa applicazione fornisce un’interfaccia di gestione completa e centralizzata per il web e per applicazioni di servizio nella farm SharePoint, includendo la gestione di account AD per il web e per applicazioni di servizio. 1.4.5 Microsoft Windows Server 2008 R2 Windows Server 2008 R2 (noto anche come Windows Server 7), è il nome della versione dedicata al settore server del sistema operativo Windows 7, sviluppato da Microsoft, successore di Windows Server 2008. E’ stato usato come ambiente di prova per la realizzazione del progetto. 1.5 Definizione delle fasi di progetto Il lavoro è stato suddiviso nelle seguenti fasi: ● studio delle tecnologie atte alla gestione del sito ○ CMS SharePoint 2010, SharePoint Developer 2010 ● studio delle tecnologie atte alla gestione del Database ○ SQL Server 2008 ● analisi della situazione esistente nel sito del Dipartimento ● migrazione del Database di gestione dei documenti da Microsoft Access 2010 a Microsoft SQL Server 2008 con relativa conversione di tabelle e viste ● conversione dei documenti da PDF a record di una tabella contenente i dettagli del documento inseriti in più campi ● studio e realizzazione di una pagina che dia la possibilità di modifica solo sui documenti di cui l’utente è proprietario ● analisi della gestione della modifica dei documenti direttamente da web ● analisi della gestione della visualizzazione dei documenti 4
  • 8. 1.6 Risultato della tesi Il presente lavoro ha portato alla realizzazione di una pagina aggiuntiva dove l’utente può gestire i documenti di cui è il proprietario, e ad un sistema per la visualizzazione documenti controllato da una pagina creata ad hoc in linguaggio ASPX. La visualizzazione dei documenti tramite query su database e la gestione tramite una richiesta di una pagina in ASPX, la quale genera una pagina HTML formattata adeguatamente, hanno permesso l’abbandono di una gestione separata dei documenti in favore di una gestione totalmente on-line degli stessi. Il futuro prossimo di questo progetto riguarderà la gestione documenti con un nuovo formato: XML. L’intera collezione di documenti sarà presente nel sito SharePoint in formato XML, formattato adeguatamente con XSLT per una visualizzazione più user-friendly. 2 Analisi Oggetto dell’analisi sono stati i seguenti aspetti: la struttura del database in MS Access e l’organizzazione del sito di Dipartimento. Entrambi sono stati realizzati precedentemente, e non sono a cura del laureando. 2.1 Database in MS Access 5
  • 9. Il database relativo alla gestione dei documenti è stato realizzato in MS Access, ed è composto da cinque tabelle e quarantuno query. Sono presenti cinque macrosettori: Energia e Ambiente, ICT, Bio-based Economy, Process & Product Design, Decision Science; ogni settore contiene al suo interno delle attività, che possono essere condivise da più settori, e per ogni attività sono presenti alcuni documenti appartenenti a quell’ambito, relativi alle attività di ricerca dei Professori e dei dottorandi all’interno del Dipartimento. Ogni query salvata mostra i documenti relativi ad un’attività fissata, e vengono presentati nome del documento e relativo autore. 2.2 Sito del Dipartimento di Ingegneria e Architettura Il sito del Dipartimento è stato realizzato usando il CMS Microsoft SharePoint, e si compone di una Home Page dove è possibile avere uno sguardo generale sulle diverse aree di interesse e organizzazione del dipartimento. Oltre alla Home Page, sono presenti varie sezioni: ● la sezione “Dipartimento” dove si trovano informazioni sulla storia del dipartimento e la sua posizione, oltre che alle informazioni sul suo personale; ● la sezione “Didattica”; ● la sezione “Link” con link utili alla vita in ateneo e a informazioni su master e congressi; ● la sezione “Servizi” con prenotazioni, materiale, accesso a posta elettronica e area download; ● la sezione “Ricerca”, che conduce ad un sottosito. Qui è possibile notare un menù diverso dai precedenti, organizzato con cinque link che portano ognuno ad un settore di ricerca. In ognuno di questi settori è possibile notare la presenza di una lista con la divisione in attività; il click su una di esse porta successivamente ad un’altra lista contenente un elenco dei documenti legati a quella specifica attività. In questa lista è presente il nome e l’autore del documento. Da notare il fatto che il nome è in realtà un campo URL, il quale indirizza direttamente al documento PDF, caricato in una libreria apposita direttamente nel sito. 6
  • 10. 3 Progettazione La progettazione si articola in varie fasi: una fase iniziale di migrazione del database su MS SQL Server oltre all'inserimento di una tabella addizionale per il salvataggio dei dettagli dei documenti PDF, una fase in cui viene analizzato il procedimento per giungere ad un'interfaccia di modifica dei dati del singolo documento, e una fase in cui si affronta il processo di visualizzazione dello stesso. 3.1 Migrazione database da MS Access a MS SQL Server Il database su cui poggia la gestione dei documenti è sostenuto da MS Access 2010. Utilizzando una procedura guidata presente nello stesso Access è possibile, con poca fatica, importare il database in toto o in parte, all’interno di un Database SQL Server già esistente, o eventualmente uno nuovo. Per quanto riguarda la migrazione delle query, si è dovuto operare in maniera diversa attraverso l’uso di una macro eseguita all’interno di Access, che restituisca la sintassi SQL per creare le query stesse. In una fase successiva, per completare il trasferimento, si è dovuto modificare lo script ottenuto per essere adattato alla sintassi di SQL Server ed in seguito eseguito. 3.2 Interfaccia di modifica dei dati Sharepoint offre numerose tipologie di gestione dei file e dei contenuti, una fra queste, la gestione tramite “Liste” (o “List”) di dati salvati precedentemente in formato tabellare, o che riferiscono a “tabelle linkate” da Microsoft Access. L’obbiettivo è sfruttare le proprietà di queste liste integrate di gestione per aggiungere un nuovo elemento e modificare un elemento già esistente, come da specifiche di progetto. Sostituendo MS SQL Server a MS Access, non è più possibile appoggiarsi su liste gestite internamente a SharePoint, ma si necessita dell’uso di “Tipi dati esterni” (o “External Content Type”), basati sui Business Connectivity Services, servizi che offrono interfacce per interagire con i business data. 7
  • 11. 3.3 Interfaccia di visualizzazione dei dati Per quanto riguarda la visualizzazione dei dati, essa verrà fatta in maniera diversa dalla modifica degli stessi: i dati verranno così direttamente interrogati dal database e mostrati sfruttando una pagina ASPX. 4 Realizzazione 4.1 Migrazione database da MS Access a MS SQL Server MS Access mette a disposizione dell’utente una funzione particolare per la migrazione del database sotto il menù “Strumenti database” -> “Sposta Dati”. Questa funzione esegue una procedura guidata di migrazione, che richiede a quale tipo di database legarsi per il passaggio o se selezionarne uno nuovo, e a quale computer SQL Server effettuare il collegamento. Per quanto riguarda la migrazione delle query, si è scelto di procedere utilizzando una macro già esistente trovata in Rete, riadattata (vedi Appendice). La funzione scorre tutte le macro presenti, e per ognuna di esse, ne stampa il nome e la sintassi SQL che la genera. Aggiungendo opportunamente la prima riga con “CREATE VIEW name_view AS” invece di lasciare solamente il nome, e aggiungendo la dicitura “GO” sotto la sintassi SQL della query, si produce un lungo listato di sintassi SQL eseguibile a livello del nuovo database in SQL Server, la quale produrrà tutte le viste presenti nel vecchio database Access. Va notata la cura particolare riservata all’assegnazione dei nomi di tabella, vista e campi, che segue delle regole non scritte. Per i nomi di Tabella e di Colonna: - Pascal Case (si distingue dal CamelCase per la restrizione che la prima lettera dev’essere maiuscola) - Alfanumerico - Evitare underscore - No Prefisso 8
  • 12. - Usare la forma singolare (es: Utente, non Utenti) Inoltre, per evitare problemi di incompatibilità, si è preferito eliminare gli spazi bianchi all’interno dei nomi di tabella (anche se gestibili richiamando il nome completo di tabella dentro parentesi quadre) e lettere accentate nei nomi di tabella e di campo. Oltre alle tabelle già esistenti, è stata creata un’altra tabella per inserire le informazioni presenti nei singoli file PDF: ogni voce del documento sarà ora contenuta in un campo della tabella, cosicché ogni documento corrisponderà da ora in poi ad un singolo record. Oltre a tutti i campi presenti nel documento è stato introdotto un campo aggiuntivo, “SchedaID”, che viene usato come chiave primaria della tabella, e serve per identificare univocamente il documento all’interno della collezione. Questa tabella tblDettagliSchede è collegata con la tabella tblSchede da una relationship 1-1 che ha come chiave primaria e chiave esterna SchedaID. Di seguito, il diagramma del Database. 9
  • 13. 4.2 Realizzazione della pagina di modifica documenti Per caricare una tabella appartenente ad un Database in SQL Server, è necessario caricarla non più come lista, ma come “Tipo di contenuto esterno” (“External Content Type”), dalla lista degli “Oggetti del Sito” (“Site Objects”). A quel punto, viene richiesto un nome per il nuovo contenuto creato, e un Sistema esterno, che ricerca una sorgente dati esterna e definisce le operazioni volute sulle tabelle selezionate. Le operazioni possibili sono Create, Read (Read Item e Read List), Update, Delete. N.B. Su “Edit Connection Properties”, alla voce “Authentication Mode:” selezionare “BDC Identity”. 10
  • 14. I cambiamenti effettuati sul nuovo tipo di contenuto esterno verranno salvati nel “Business Data Connectivity Metadata Store” (componente integrato di SharePoint). Ora, fissate le operazioni consentite, è possibile creare una nuova lista esterna cliccando il tasto relativo; essa si aggiungerà all’elenco delle liste già esistenti. Per poter filtrare i documenti in base all’utente, è necessario creare un filtro e si procede come segue: andando in “Operation Design View”, creare una nuova operazione di “Read List”, aggiungendo stavolta un filtro in base al campo AutoreID. Questo filtro può essere impostato nelle proprietà della vista, così da avere la possibilità di associare un valore al campo AutoreID. Per rendere dinamico questo filtro in base all’utente che effettua il login nel sito, si inserisce uno script javascript in esecuzione nella pagina, che ritorna come valore proprio il nome di login dell’utente. Lo script è stato modificato ed adattato alla situazione a cura del laureando. Verranno osservati in seguito solo alcuni tratti dello script; il codice completo si trova nell’Appendice. Nel seguente script vengono usate funzioni di jQuery, per cui dev’essere importato lo script $(document).ready( function() { ExecuteOrDelayUntilScriptLoaded( AddItem( function(){ alert(currentUser); } ) , "sp.js"); }); Viene eseguita la funzione AddItem solamente quando la pagina è stata caricata. La funzione AddItem tenta di eseguire una query context.executeQueryAsync( Function.createDelegate(this, this.onSuccess), Function.createDelegate(this, this.onFailureMethod) ); 11
  • 15. Se la query ha successo, salva nella variabile currentUser lo username dell’utente function onSuccess(sender, args) { currentUser = this.user.get_loginName(); } Questo verrà usato come parametro del filtro in base all’utente, usato nella visualizzazione dei documenti che è possibile modificare. Cliccando su ogni elemento, è possibile modificarlo, se si è il proprietario del file, ed è possibile creare un nuovo documento. 4.3 Realizzazione della pagina di visualizzazione documenti Ora verrà spiegato come creare una pagina ASPX per visualizzare dinamicamente il documento selezionato in base all'identificativo del documento. 12
  • 16. Si apra Visual Studio, e si crei una Solution di tipo Web Application. Dalla Toolbox, selezionare e trascinare nel codice l'oggetto della categoria "Data", "SqlDataSource". Cambiando la modalità di visualizzazione da Source a Design, è possibile intervenire sulle proprietà dell'oggetto, e soprattutto sulla scelta della sorgente dati. A questo punto parte del codice nella pagina .aspx e nel file Web.config è già stato creato automaticamente: la stringa di connessione al Database è già stata settata, ed esiste già un oggetto SqlDataSource che, se sono stati configurati in maniera corretta i parametri inseriti durante la configurazione dell'oggetto fatta precedentemente, porteranno alla creazione automatica di un parametro di selezione, o più nello specifico, di un QueryStringParameter. 13
  • 17. Il QueryStringParameter è un oggetto molto interessante, poichè è proprio esso che ricopre il ruolo fondamentale del passaggio parametri direttamente nell'URL della richiesta. Esso ha degli attributi, quali Name, il quale valore è mappato come variabile nella query fatta dall'oggetto SqlDataSource per prelevare il documento. Un altro attributo importante è QueryStringField, il quale valore sarà l'attributo che verrà definito nell'URL. Es. http://localhost:1950/WebForm1.aspx?fileID=1 In questo caso, si può notare che fileID è il valore di QueryStringField. Nel file .aspx manca solo la creazione delle label per la visualizzazione dei campi del documento, e le label per le intestazioni di riga. L'intera struttura è gestita con una tabella. Le Label vengono tutte definite con il tag <asp:Label> e sono presenti i seguenti attributi: - ID: fornisce un nome di oggetto che potrà poi essere richiamato nel file .aspx.cs - runat="server" - Text: il valore di questo attributo sarà il testo visualizzato all'interno della label Nel file .aspx.cs dovranno essere inserite alcune righe di codice all'interno della funzione protected void Page_Load(object sender, EventArgs e). Le righe da inserire sono le seguenti: DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); che crea un oggetto DataView, che contiene il risultato della query effettuata lbldescrizioneAttivitaVALUE.Text = dv.Table.Rows[0][4].ToString(); indica che il testo da visualizzare della label lbldescrizioneAttivitaVALUE è il testo generato dal 5° valore presente nell'array interno dell'oggetto DataView. Facendo questa associazione per ogni label a cui dobbiamo associare la visualizzazione di un campo della query. 14
  • 18. Dopo aver compilato, il risultato sarà il seguente: 5 Conclusioni L’obiettivo di creare in locale una pagina per la visualizzazione e una pagina per la gestione, intesa come modifica e inserimento, dei documenti relativi alle attività di ricerca svolte dai professori e dai dottorandi del dipartimento è stato raggiunto. Durante il lavoro di tesi è stata svolta la costruzione in locale, tramite il CMS SharePoint e il software SharePoint Designer, della pagina di gestione dei documenti nonché la costruzione in toto di una pagina .aspx e una .aspx.cs per la gestione della query e la visualizzazione del documento tramite CSS. Oltre a questo, è stato effettuato un lavoro sul database Access per permettere la migrazione dello stesso come premessa dei lavori precedentemente discussi. Il lavoro è attualmente accessibile in locale, e lo sviluppo nel prossimo futuro sarà il porting on-line del progetto sul CMS SharePoint direttamente sul sito del Dipartimento. La prossima mossa sarà l’integrazione di questo sistema con la gestione e l’archiviazione dei documenti con XML e della loro visualizzazione tramite XSLT. 15
  • 19. APPENDICE Macro VBA per esportazione Query Option Compare Database Public Sub IterateQueryDefsCollection() Dim dbMain As DAO.Database Dim qdf As DAO.QueryDef Dim qdfTemp As DAO.QueryDef Set dbMain = CurrentDb For Each qdf In dbMain.QueryDefs Debug.Print qdf.Name 'Prints name of query Set qdfTemp = dbMain.QueryDefs(qdf.Name) Debug.Print qdfTemp.SQL 'Prints SQL Syntax of query Next End Sub SCRIPT getIDcode <script type="text/ecmascript"> $(document).ready( function() { ExecuteOrDelayUntilScriptLoaded( AddItem( function(){ alert(currentUser); }) , "sp.js"); }); function AddItem(callback) { var context = SP.ClientContext.get_current(); user = context.get_web().get_currentUser(); context.load(this.user); context.executeQueryAsync(Function.createDelegate(this, this.onSuccess), Function.createDelegate(this, this.onFailureMethod)); } function onSuccess(sender, args) { currentUser = this.user.get_loginName(); $('.prova').html(currentUser); //alert(' Name:' + this.user.get_title() + 'n Login:' + this.user.get_loginName()); } 16
  • 20. function onFailureMethod(sender, args) { alert('request failed ' + args.get_message() + 'n' + args.get_stackTrace()); } </script> .ASPX AND .ASPX.CS PAGES AND WEB.CONFIG Web.Config <?xml version="1.0"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <connectionStrings> <add name="DBRicercaDipartimentoConnectionString" connectionString="Data Source=localhostSQLEXPRESS;Initial Catalog=DBRicercaDipartimento;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> </configuration> .aspx.cs file using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); 17
  • 21. lblSchedaIDVALUE.Text = dv.Table.Rows[0][0].ToString(); lblnomeAttivitaRicercaVALUE.Text = dv.Table.Rows[0][1].ToString(); lblsintesiVALUE.Text = dv.Table.Rows[0][2].ToString(); lblsettoriApplicativiVALUE.Text = dv.Table.Rows[0][3].ToString(); lbldescrizioneAttivitaVALUE.Text = dv.Table.Rows[0][4].ToString(); lblannoInizioAttivitaVALUE.Text = dv.Table.Rows[0][5].ToString(); lblgruppoDiRicercaVALUE.Text = dv.Table.Rows[0][6].ToString(); lblstudentiDottoratoCoinvoltiVALUE.Text = dv.Table.Rows[0][7].ToString(); lblprogettiDiRicercaAttiviNelVALUE.Text = dv.Table.Rows[0][8].ToString(); lblannoPRAVALUE.Text = dv.Table.Rows[0][9].ToString(); lblattivitaPrevistaPerIlVALUE.Text = dv.Table.Rows[0][10].ToString(); lblannoAPVALUE.Text = dv.Table.Rows[0][11].ToString(); lblpubblicazioniIntervalloVALUE.Text = dv.Table.Rows[0][12].ToString(); lblannoInizioPIVALUE.Text = dv.Table.Rows[0][13].ToString(); lblannoFinePIVALUE.Text = dv.Table.Rows[0][14].ToString(); } } } .aspx file <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> <style> .scheda td { padding: 3px 5px; } </style> </head> <body> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DBRicercaDipartimentoConnectionString %>" SelectCommand="SELECT * FROM [tblDettagliSchede] WHERE ([SchedaID] = @SchedaID)"> <SelectParameters> <asp:QueryStringParameter DefaultValue="1" QueryStringField="fileID" Name="SchedaID" Type="Int32" /> </SelectParameters> 18
  • 22. </asp:SqlDataSource> <table border="1" class="scheda"> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblSchedaID" runat="server" Text="SchedaID"></asp:Label></td> <td><asp:Label ID="lblSchedaIDVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblnomeAttivitaRicerca" runat="server" Text="Nome dell’attivita' di ricerca"></asp:Label></td> <td><asp:Label ID="lblnomeAttivitaRicercaVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblsintesi" runat="server" Text="Sintesi"></asp:Label></td> <td><asp:Label ID="lblsintesiVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblsettoriApplicativi" runat="server" Text="Settori Applicativi"></asp:Label></td> <td><asp:Label ID="lblsettoriApplicativiVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lbldescrizioneAttivita" runat="server" Text="Descrizione Attivita'"></asp:Label></td> <td><asp:Label ID="lbldescrizioneAttivitaVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblannoInizioAttivita" runat="server" Text="Anno Inizio Attivita'"></asp:Label></td> <td><asp:Label ID="lblannoInizioAttivitaVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblgruppoDiRicerca" runat="server" Text="Gruppo Di Ricerca"></asp:Label></td> <td><asp:Label ID="lblgruppoDiRicercaVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblstudentiDottoratoCoinvolti" runat="server" Text="Studenti Dottorato Coinvolti"></asp:Label></td> <td><asp:Label ID="lblstudentiDottoratoCoinvoltiVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> 19
  • 23. <td bgcolor="#9acd32"><asp:Label ID="lblprogettiDiRicercaAttiviNel" runat="server" Text="Progetti Di Ricerca Attivi Nel"></asp:Label> <asp:Label ID="lblannoPRAVALUE" runat="server" Text=""></asp:Label></td> <td><asp:Label ID="lblprogettiDiRicercaAttiviNelVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblattivitaPrevistaPerIl" runat="server" Text="Attivita' Prevista Per Il"></asp:Label> <asp:Label ID="lblannoAPVALUE" runat="server" Text=""></asp:Label></td> <td><asp:Label ID="lblattivitaPrevistaPerIlVALUE" runat="server" Text=""></asp:Label></td> </tr> <tr> <td bgcolor="#9acd32"><asp:Label ID="lblpubblicazioniIntervallo" runat="server" Text="Pubblicazioni Intervallo"></asp:Label> <asp:Label ID="lblannoInizioPIVALUE" runat="server" Text=""></asp:Label> - <asp:Label ID="lblannoFinePIVALUE" runat="server" Text=""></asp:Label></td> <td><asp:Label ID="lblpubblicazioniIntervalloVALUE" runat="server" Text=""></asp:Label></td> </tr> </table> </div> </form> </body> </html> 20
  • 24. Bibliografia/Sitografia: 1. Riguardo SharePoint ○ SharePoint ■ http://pluralsight.com/training/courses/TableOfContents?courseName=sp2010- foundation-fundamentals&highlight= ■ http://pluralsight.com/training/Courses/TableOfContents/sp2010-development ■ http://sharepoint-tutorial.net/post/2011/02/10/sharepoint-tutorial-for- beginners.aspx ■ http://www.sharepointhosting.com/video_tutorials.html 2. Riguardo al lavoro sulla pagina di gestione e modifica dei documenti ○ Business Connectivity Services in SharePoint Server 2010 ■ http://technet.microsoft.com/en-us/sharepoint/ee518675.aspx ○ How to create an External Content Type in SharePoint Designer 2010 using Business Connectivity Services(BCS) and fix issues that arise on the way ■ http://underthehood.ironworks.com/2010/07/how-to-create-an-external-content- type-in-sharepoint-designer-2010-using-business-connectivity-servi.html ○ Business Data Catalog Authentication ■ http://lightningtools.com/bdc-authentication-vs-authorization/ 3. Riguardo al lavoro sulla pagina di visualizzazione dei documenti ○ Querying Data with the SqlDataSource Control (C#) ■ http://www.asp.net/web-forms/tutorials/data-access/accessing-the-database- directly-from-an-aspnet-page/querying-data-with-the-sqldatasource-control-cs 21