working in progress: SharePoint 2010, Visual Studio 2010, ASP.NET, WPF, Scrum, Patterns, TDD, Refactorin To Pattern

1003/10 0

Solution con Custom List con un campo in lookup

Ipotiziamo d’avere la necessità di creare una solution che contenga una Custom List modificata a puntino.
Questa custom list, che chiameremo Modelli, ha una colonna di lookup a un’altra custom list, di tipo Contacts e la chiameremo Aziende.

lookup

Per prima cosa creo un Empty Project delle estensioni di VSeWSS e aggiungo un nuovo item di tipo Content Type:

contenttype

All’interno del content type avremo qualcosa del tipo:

<?xml version="1.0" encoding="utf-8"?>
<Elements Id="e7362b74-2a74-434a-9276-6c921b005ed8" xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0x01002f1ff08345b743cbb1166c60a29d3d84"
               Name="Nuovo Modello"
               Group="Miei Content Type"
               Description="Mio Content Type per nuovi modelli"
               Version="1">
    <FieldRefs>
      <FieldRef ID="{27e536a2-8cf5-4372-93bd-1f897e648154}" Name="ModelloCTField" />
    </FieldRefs>
  </ContentType>
  <Field ID="{27e536a2-8cf5-4372-93bd-1f897e648154}"
         Type="Lookup"
         Name="ModelloCTField"
         List="Lists/Aziende"
         DisplayName="ModelloCT Field"
         StaticName="ModelloCTField"
         Hidden="FALSE"
         Required="TRUE"
         Sealed="FALSE"
         ShowField="Company"/>
</Elements>

Adesso aggiungiamo un nuovo item e selezioniamo una List Definition (fate riferimento all’immagine di sopra).
E modifichiamo lo schema.xml nella seguente maniera (per praticità inserisco solamente le righe per usare il content type):

Sotto la voce ContentTypes inseriamo solamente i content type che ci servono:

    <ContentTypes>
      <ContentTypeRef ID="0x01002f1ff08345b743cbb1166c60a29d3d84" />
    </ContentTypes>

Fate molta attenzione all’ID. Come si può notare è l’ID del content type, specificato nell’xml del content type stesso; ovvero guardate il codice di prima :)

Altra modifica da fare allo schema.xml è la seguente:

    <Fields>
      <Field ID="{27e536a2-8cf5-4372-93bd-1f897e648154}"
             DisplayName="Aziende"
             List="Lists/Aziende"
             Name="Aziende"
             Type="Lookup"
             Required="TRUE"
             ShowField="Company"/>
    </Fields>

Come si può vedere altro non è che il copia e incolla della specifica del content type, ma con qualche opzione in meno :)

 

0x710e76cc, 0x2e4b, 0x49f6, 0xad, 0x3b, 0xc2, 0x6b, 0x65, 0xba, 0xe8, 0x91

[top]

0803/10 0

.NET Campus 2010

Ragazzi ci vediamo al .NET Campus a Roma il 13:

http://www.dotnetcampus.it/

 

0x44bd23e9, 0x7022, 0x43dd, 0xb1, 0x69, 0x8f, 0xdc, 0xc3, 0x45, 0x13, 0xae

[top]

0303/10 0

123people … stranezze

E’ strano cercare, per gioco: Lorenzo Barbieri

e trovare una foto di Ivan Fioravanti

lorenzo123peopleivan

 

doh!

[top]

2602/10 0

SharePoint Automation: Automating SharePoint 2007 Configurations via STSADM and PowerShell.

Durante lo sviluppo dell’attuale progetto che sto seguendo, ho avuto la necessità di dover lavorare tantissimo con i file di configurazione di MOSS 2007.
Purtroppo i risultati che si ottengo non sono sempre quelli desiderati e, personalmente, trovo sempre utile analizzare gli schema realizzati da SharePoint tenendo sempre le msdn a lato.

Ottenere i file di configurazione di SharePoint non è sempre banale; probabilmente dovrete svilupparvi qualcosa in casa.
Per fortuna sir Gary Lapointe viene in nostro aiuto con tool che amplia le opzioni di STSADM:

http://stsadm.blogspot.com/

Così se oggi dovete ottenere l’xml del Content Type appena deploiato dovrete solamente digitare:

stsadm -o gl-exportcontenttypes -url "http://intranet" -outputfile c:\contentTypes.xml -group "Custom Content Types" -includelistbindings –includefielddefinitions

Figo no!? :D

[top]

2202/10 0

MVP su ASP.NET pensieri sparsi 1

Quando si sviluppa un'applicazione web, capita spesso di dover fare dei controlli sui dati inseriti dall'utente e quelli presenti nel db.

Capire dove questi controlli vanno inseriti non è sempre molto chiaro.
Esempio, ipotizziamo d'avere un elenco di dati in UI che l'utente può modificare/aggiungere e ipotizziamo che un campo di questi record deve essere univoco.

E' senza dubbio che non possiamo lasciare all'utente l'onere di gestire questa situazione.
A mio avviso, in un'applicazione web con un buon pattern mvp, una prima validazione dei dati deve esser fatta client-side con i dati presenti sullo schermo dell'utente.

Ritornando all'esempio di prima, all'inserimento di un nuovo dato, possiamo controllare se il dato è del tipo che attendiamo e se è già presente nella nostra griglia.
Come fare è semplice, basta far riferimento ad una libreria come jquery, e l'80% del lavoro è fatto.

Una volta fatto questo tipo di controllo possiamo controllare anche lato server, nella presenter, se i dati inseriti sono coerenti.
Ed anche quì abbiamo una libreria che viene in aiuto come il validation application block di Microsoft.

bau

[top]

1902/10 0

MySql cambiare la password di root e fare il restore del db

Spero che voi non abbiate mai la "fortuna" di lavorare con MySQL.

Se dovesse capitarmi e dovreste perdere la password di root, seguite i seguenti passi:

http://www.franzone.com/2008/04/01/how-can-i-recover-my-lost-mysql-root-password/

Dopo potrete fare il restore del db in questa maniera:

http://www.howtogeek.com/howto/mysql/restore-mysql-database-from-a-backup-file/

ciaps

[top]