Developing Microsoft® SharePoint® Applications Using Windows Azureâ„¢ by Steve Fox

Developing Microsoft® SharePoint® Applications Using Windows Azure™ by Steve FoxThis book clearly explains the points of contact and possible integration between Microsoft® SharePoint® 2010 and Windows Azure™.

It begins with a series of introductory chapters, using products and technologies characteristics, to introduce reader to most interesting concepts for the purpose of the book.

Successive chapters are focused on techniques to allow data access and consuming, and other interesting methods to understand how to implement applications and web parts using both components.

The examples inside the book represent a good entry point on the route to this kind of integration, and are explained so well through code and screenshots that guides the developer on his steps to follow to accomplish the objectives.

If I should define a defect for this book, then it is its brevity. I think that a deep understanding of this kind of integration is not possibile with this number of pages. So this could be a starting point but will not be exhaustive to define himself an “expert”.

At the end, I think this is a good reference to have always on own desk, the target reader is in my humble opinion should be a developer focused on SharePoint 2010 (better if senior developer but not mandatory) and must have known basic concepts about Azure and its platform. Also a basic skill on WCF could be useful for correct understanding of some paragraphs and examples.

You can buy the book here.

Developing Microsoft® SharePoint® Applications Using Windows Azureâ„¢ by Steve Fox

Surface – Download e installazione SDK 1.0 SP1

In questo post vedremo insieme come procedere per il download dell’SDK di Surface e relativa installazione.

Download

Innanzitutto, l’SDK è disponibile solo alle aziende partner, per cui se siete dipendenti di una azienda partner, procedete con la associazione del vostro profilo all’azienda, oppure se avete una attività o una azienda in proprio valutate di diventare partner di Microsoft, se non lo siete già. Non conosco bene i dettagli, ma non mi pare abbia un costo. Comunque sia, consultate il sito dei partner per vedere il da farsi.

Una volta superato questo ostacolo, andate su questo nuovo sito, Surface QuickStart su cui troverete tutto quello che vi serve. Nella fattispecie, oltre all’SDK vi è altro materiale, come manuali, documentazione e video.

Una volta scaricato tutto l’occorrente possiamo andare con l’installazione

Installazione

Per utilizzare l’SDK di Surface, occorre rispettare una serie di requisiti.

Partiamo dai requisiti hardware:

  • La macchina ideale per lo sviluppo con questo SDK si basa su Vista (vedremo di seguito quali versioni) e in quanto tale, le caratteristiche fisiche della macchina non sono indicate in termini di ram, cpu ecc, ma sono indicate in termini di misurazione tramite Windows Experience Index
    (WEI) in base al quale viene “categorizzato” l’hardware sottostante; fatto sta che per far girare l’SDK di Surface è richiesto come minimo un livello di questo genere:
    • CPU: WEI 4.0 o superiore
    • RAM: WEI 4.0 o superiore
    • Scheda Grafica:
    • Monitor: Risoluzione minima richiesta 1280×960 (o 1440×900 su schermi “wide”) per far girare il Simulator

Vediamo ora i requisiti software:

  • l’unico sistema operativo supportato è Vista a 32 bit, e solo nelle versioni Business, Enterprise, Ultimate o Home Premium (personalmente l’ho installato su Windows Server 2008 Enterprise e pare funzionare bene ma se avete una delle versioni di Vista sopra indicate, installatelo là per sicurezza); il SP1 di Vista deve essere installato
  • come IDE va bene sia VS2008 che C# Express 2008 (il framework .NET 3.5 lo installa l’IDE)
  • installare anche XNA Framework Redistributable 2.0 (si può usare anche la XNA Game Studio Espress 3.0, ma se non vi serve va bene solo la parte “Redistributable”)
  • installare le Microsoft DirectX 9.0 End-User Rumtime (rel. 08/2007)
  • raccomandata anche l’installazione di Expression Blend 2 (per XAML)

A questo punto dovreste essere finalmente pronti per installare il Microsoft Surface SDK 1.0 SP1, Workstation Edition che avete scaricato dal sito dei Partner Microsoft.

Completata l’installazione potrete trovare nel vostro IDE (VS2008 o C# Express 2008) facendo New > Project dovreste trovare un nuovo gruppo di progetti :

  • Surface
    • v1.0
      • Surface Application (WPF)
      • Surface Application (XNA)

mentre nel menù Start dovreste trovare un nuovo gruppo di programmi:

  • Microsoft Surface SDK 1.0 SP1
    • Application XML files
      • si tratta di un command prompt con diritti elevati, pronto alla directory dove si trovano i files XML di Surface; i diritti elevati consentono l’editing senza problemi di autorizzazioni
    • Getting Help
      • un primo livello di help per il supporto e la documentazione estesa
    • Samples
      • apre la directory dove si trova un file .ZIP con diversi codici di esempio
    • Surface SDK Documentation
      • apre l’Help dell’SDK (al primo avvio indicizza e perde qualche minuto)
    • Tools
      • Identity Tag Printing Tool
        • consente la generazione degli Identity Tags (consultare l’SDK per maggiori informazioni)
      • Surface Simulator
        • è il vero “cuore” di questo SDK, è lo strumento che simula il codice scritto e ci supporta nel debug, prima di fare il test finale sul device fisico
      • Surface Stress
        • si tratta di un command prompt da cui possiamo testare le applicazioni Surface
      • Water Configuration
        • è il configuratore dello “screen saver” di Surface, l’applicazione Water, molto accattivante

Per adesso è tutto. Man mano che andremo avanti, cercherò di scrivere dei post specifici sulle varie parti di questo SDK, cercando di evidenziare pregi e difetti di questo SDK. Tenete presente che per ora non ho il device fisico, per cui le impressioni riguarderanno solo la parte “emulata” delle applicazioni Surface.

Buon lavoro!

Surface – Download e installazione SDK 1.0 SP1

Multicast Delegate con C#

Nella mia infinita, consapevole ignoranza, ho scoperto l’esistenza dei Multicast Delegate.
In pratica si traduce nella possibilità di sommare o sottrarre l’esecuzione di diversi metodi che siano conformi ad uno stesso delegate.
Questo comporta un’esecuzione in serie, secondo la somma (o la sottrazione) effettuata.
Mi spiego meglio con un esempio (liberamente tratto da questo esempio msdn):

namespace ConsoleApplication1
{

delegate int delegate1(string s);

class Class1
{

public static int Hello(string s)
{

Console.Write(“hello {0} “,s);

return
s.Length;

}

public
static int World(string s)
{

Console
.Write(” world {0} “, s);

return
s.Length;

}
public static int CarriageReturn(string s)
{
Console.WriteLine(” {0} “, s);
return s.Length;

}

public Class1()
{
delegate1 d1, d2, d3, d4;
d1 = Hello;

d2 = World;

d3 = CarriageReturn;

d4 = d1 + d2 + d3;
d4(“!”);
Console.ReadLine();
}
}
}

Questo comporta il seguente output :

hello ! world ! !

Quindi abbiamo eseguito i metodi nella sequenza identificata dalla somma. Come dicevo, si possono eseguire anche operazioni di sottrazione, corrispondenti alla fine ad una eliminazione dalla sequenza di esecuzione.
Quindi avremmo potuto scrivere (al posto della riga in rosso)

d4(“!”);

d4 -= d2;

d4(“!”);

e ottenere :

hello ! world ! !

hello ! !

Questo “sommatoria” si può eseguire come dicevo, solo se i metodi usati come addendi sono conformi ad uno stesso delegate. Lo stesso discorso non vale per un eventuale valore di
ritorno del metodo, che non corrisponde ad una “sommatoria dei valori di ritorno” dei metodi addendi.

In pratica se avessi scritto :

int i1 = d4(“!”);

Console.WriteLine(“Return : {0}”, i1);

d4 -= d2;

int i2 = d4(“!”);

Console.WriteLine(“Return : {0}”, i2);

avrei ottenuto come output :

hello ! world ! !

Return : 1

hello ! !

Return : 1

quindi è chiaro che il risultato è relativo solo all’ultimo metodo eseguito.

Questo si evidenzia ancora maggiormente se lanciamo un ILDASM sull’assembly, dove notiamo che i punti in cui eseguiamo il delegate d4, viene composto dalle chiamate in sequenza dei metodi che in quel momento lo compongono.

Il risultato di una sommatoria anche del valore di ritorno, si potrebbe comunque ottenere, se proprio necessario in uno scenario del genere, ricorrendo semplicemente (ad esempio) a delle variabili statiche con visibilità globale per la classe.

Multicast Delegate con C#