Business Data Connectivity

Tags: SharePoint 2010, Business Data Connectivity, C#

Con questo articolo intendo mostrare quanto è semplice e cosa si può fare con SharePoint Business Data Connectivity.

Creeremo inizialmente un modello e successivamente si preleveranno i dati da un file di testo al fine di presentarli all'interno di una pagina di SharePoint 2010.

Iniziamo

Creare un nuovo progetto vuoto (BDCTest) e aggiungiamo un nuovo Item come in figura:

New Item - Business Data Connectivity

Dalla scheda "Solution Explorer" è possibile vedere la struttura della soluzione appena creata:

Solution Explorer

  • BdcPersons.bdcm definisce il data source, la connessione verso la sorgente dati (database, file xml ecc...) e il tipo di dati da restituire;
  • Entity1.cs rappresenta il tipo di dati da restituire;
  • Entity1Service.cs è la classe che contiene il codice per la connessione al data source.

Ho preferito dare dei nomi più appropriati ai vari elementi della solution:

Solution Explorer

Il passo successivo è definire il modello dei dati.

Supponiamo di avere i dati da elaborare in un file di testo così strutturato:
ID|Nome|Cognome|Professione|Età|Sesso|Città
1|Mario|Rossi|Impiegato|40|M|Roma
2|Giovanni|Bianchi|Dottore|45|M|Milano
3|Maria|Ferrari|Commessa|32|F|Bologna
4|Giovanna|De Carlo|Attore|75|M|Firenze

Modifichiamo il file Person.cs coerentemente con ciò che deve rappresentare:

 
    public partial class Person
    {
        public string ID { get; set; }
        public string Nome { get; set; }
        public string Cognome { get; set; }
        public string Professione { get; set; }
        public string Eta { get; set; }
        public string Sesso { get; set; }
        public string Citta { get; set; }
    }

Modifichiamo anche il file PersonService:

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace BDCTest.BdcPersons
{
    public class PersonService
    {
        public static Person ReadItem(string id)
        {
            foreach (Person person in GetAllPersons())
            {
                if (person.ID == id)
                {
                    return person;
                }
            } return null;
        }
 
        public static IEnumerable<Person> ReadList()
        {
            Person[] entityList = GetAllPersons().ToArray();
            return entityList;
        }
 
        public static List<Person> GetAllPersons()
        {
            List<Person> persons = new List<Person>();
            TextReader textReader = new StreamReader(@"C:\spTest\persons.txt");
            string row;
            while ((row = textReader.ReadLine()) != null)
            {
                Person person = new Person();
                string[] entityData = row.Split('|');
                person.ID = entityData[0];
                person.Nome = entityData[1];
                person.Cognome = entityData[2];
                person.Professione = entityData[3];
                person.Eta = entityData[4];
                person.Sesso = entityData[5];
                person.Citta = entityData[6];
                persons.Add(person);
            }
            textReader.Close();
            return persons;
        }
    }
}

 

BDC Explorer

Adesso dobbiamo modificare il modello eliminado le proprietà di default che Visual Studio 2010 ha inserito al momento della creazione del nuovo progetto
e inserire quelle del nostro modello.
Clicchiamo sulla scheda "BDC Explorer" e rinominiamo gli elementi come infigura:

 

Per inserire una proprietà è possibile cliccare col tasto destro su "Person" e successivamente su "Add Type Descriptor".

BDCM Explorer


NOTA: è necessario fare le stesse operazioni sia per "Read Item" che per "ReadList".
NOTA: per abilitare la ricerca di SharePoint è necessario aggiungere la custom property ShowInSearchUI.


 

BDC Explorer

 

Deploy e Test

Creaiamo una nuova lista come indicato di seguito:

Ops... non ho i permessi!
Possiamo impostarli dalla "Central Administration":

Adesso è possibile vedere il contenuto della lista...

Adesso possiamo aggiungere la lista alla nostra pagina:

 

NOTA: Qualora alcune colonne non venissero visualizzate è necessario modificare la vista.

 

Add a Comment