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!

Quasi un anno che non scrivo un post su questo blog. Questo vuol dire tanto.

Tanto, tantissimo lavoro (da scoppiare) dentro e sopratutto fuori dal l’azienda, ma poco anzi pochissimo da dire di nuovo sul blog.

Ora ho intenzione di ripartire. Ora si che ho un motivo valido per ricominciare a scrivere. Ora ho il Surface SDK da studiare.

E’ più o meno dal periodo dell’ultimo post che sto cercando qualcosa di più creativo e innovativo con cui stimolare i miei neuroni. Questo per me potrebbe essere sicuramente Microsoft Surface.

In azienda non se ne parlava affatto di comprare un qualcosa di cui non si sa il ROI, fosse anche una cifra (tutto sommato) irrisoria come una decina di migliaia di dollari (per una azienda eh, sia chiaro, per me sono quattrini :-) ). Anzi in realtà prima l’azienda non esisteva più.

Ma adesso le cose sono (o almeno sembrano) cambiate. L’azienda ha cambiato pelle (e proprietà), pare voglia investire e per giunta su qualcosa di innovativo. E allora cosa ritorna a solleticarmi ? Si, sempre lui.

Poi, ironia della sorte, scopro che i Partners MS ora hanno a disposizione l’SDK di Surface tanto cercato, tanto richiesto, tanto elemosinato, ma mai trovato  neanche sul mulo. Ero disperato e rassegnato, ora sono rigenerato.

Non so se sarà un bagno di sangue, non so se sarà croce o delizia, ma di sicuro una cosa è certa. Sarà uno spasso.

Stay tuned, il blog riparte da qui.

  • Ente Certificatore : Microsoft
  • Nome Esame : 070-529 Microsoft .NET Framework 2.0 – Distributed Application Development
  • Costo : 140€
  • Modalità esame : presso un centro Prometric, 40 domande, 125 minuti, domande a risposta singola e multipla
  • Score minimo : 700 su 1000, ogni domanda ha un peso diverso
  • Certificazione conseguita : si (795/1000) -
    Microsoft Certified Technology Specialist – .NET Framework 2.0 Distributed Applications Development
  • Livello di difficoltà (1-5) : 4.5
  • Utilità tecnica (1-5) : 3.5
  • Preparazione : 2 mesi circa


Non l’avevo detto nel mio ultimo post, ma avevo in coda ancora un esame… beh questo l’ho passato benino, niente di clamoroso, ma va bene così, basta averlo preso.
Qui lo studio è stato parecchio ma soprattutto sono risultate importanti le mie esperienze in passato… diciamo le mie esperienze più “remote”… infatti l’esame va molto di lungo sui webservice, come configurazione più che come sviluppo stavolta, e ancora di più sul remoting di .net 2.0, ormai soppiantato dal WCF delle versioni successive (e da me ancora non approfondito, ma ora rimedio)…
Mi sono state utili un paio di esperienze sul lavoro, e più di tutti l’aver ideato, progettato e realizzato un sistema di grid computing per l’elaborazione parallela di informazioni in ambito biometrico (riconoscimento facciale)… anche se l’esperienza era ormai vecchia del 2005, e nonostante un pò di ruggine mentale, ci sono state domande in cui mi venivano in mente quasi le righe di codice scritte, quindi una buona dose di esperienza ha sopperito ad alcune lacune e al poco tempo degli ultimi mesi.
Comunque sia, questo è stato l’esame più tosto in assoluto, tra quelli che finora ho sostenuto per le certificazioni Microsoft.
A questo punto magari vi chiederete (o anche no) : ce ne saranno altri di esami in coda ? mah…
  • Ente Certificatore : Microsoft
  • Nome Esame : 070-528 Microsoft .NET Framework 2.0 – Web-Based Client Development
  • Costo : 140€
  • Modalità esame : presso un centro Prometric, 45 domande, 150 minuti, domande a risposta singola e multipla, possono esserci anche domande che richiedono drag&drop
  • Score minimo : 700 su 1000, ogni domanda ha un peso diverso
  • Certificazione conseguita : si (841/1000) -
    Microsoft Certified Technology Specialist – .NET Framework 2.0 Web Applications
  • Livello di difficoltà (1-5) : 4
  • Utilità tecnica (1-5) :4
  • Preparazione : da 1 a 2 mesi


Ieri ho messo un’altra figurina nel mio album. Di questa ne sono abbastanza fiero perchè è costata molto sacrificio. Dopo l’ultima certificazione ho avuto veramente giornate (direi anche mesi) di lavoro intense, anche fuori sede per intere settimane, dove la sera prima delle 21 non si andava neanche a cena. E la mattina alle 6 in albergo ero già sotto la doccia per continuare a studiare qualche ora prima di andare al lavoro. Ferie non ne ho fatte praticamente, a parte qualche giorno al mare nella settimana cruciale di Ferragosto (per portare il bambino più che altro), per cui posso dire che questa me la sono veramente sudata! Ma anche in questo caso, nonostante il tanto studio, ho incrociato domande su temi mai visti (nel senso mai utilizzati sul lavoro). Non so come ho risposto su quelle specifiche domande. Posso solo dire però, a questo punto dopo tre esami Microsoft, che l’esame in sè non potrà mai essere veramente completo, visto che il numero di classi, di argomenti e tematiche sul framework .NET è veramente incredibile. Non credo si possa, onestamente, essere sicuri di essere consapevoli di tutto quello che il framework offre. Neanche chi prende il massimo dei voti credo possa affermarlo…
Comunque sia, ancora un passo avanti è stato fatto. Vediamo questa strada dove conduce…
  • Ente Certificatore : Microsoft
  • Nome Esame : 070-526 Microsoft .NET Framework 2.0 – Windows-Based Client Development
  • Costo : 140€
  • Modalità esame : presso un centro Prometric, 41 domande, 125 minuti, domande a risposta singola e multipla, possono esserci anche domande che richiedono drag&drop
  • Score minimo : 700 su 1000, ogni domanda ha un peso diverso
  • Certificazione conseguita : si (840/1000) -
    Microsoft Certified Technology Specialist – .NET Framework 2.0 Windows Applications
  • Livello di difficoltà (1-5) : 4
  • Utilità tecnica (1-5) :4
  • Preparazione : da 1 a 2 mesi


Qualche giorno fa ho conseguito la mia prima vera certificazione Microsoft, ma ne parlo solo ora perchè il tempo ultimamente scarseggia notevolmente.
L’esame è stato veramente tosto, io onestamente non ero molto preparato (nel senso che non ho studiato tantissimo, a causa del famoso tempo che scarseggia).
Nonostante questo però sono riuscito a prendere un buon voto, considerando che alcune domande su classi mai viste, usate o studiate, le ho risposte riflettendo e cercando di dare una risposta in base alla mia esperienza. E’ chiaro che in questo caso mi ha fatto comodo avere molta pratica sul campo.
Ho poco da dire onestamente, sono arrivato stanco a questo esame, e la tensione è stata tremenda, perchè stavolta pensavo di sbagliarlo. Meglio così, vuol dire che qualche neurone nel cervello ancora mi funziona.
Quindi continuo dopo il mio primo esame questa strada delle certificazioni. Sperando mi servano, specialmente quando comincerò a mettere il naso… in Europa…
Si, perchè ormai penso di essermi stancato abbastanza di questa quotidiana tortura dell’essere, del vivere e soprattutto del lavorare in Italia.  Ma di questo ne riparleremo quando sarà definito tutto.
  • Ente Certificatore : Microsoft
  • Nome Esame : 070-536 Microsoft .NET Framework 2.0 – Application Development Foundation
  • Costo : 140€
  • Modalità esame : presso un centro Prometric, 40 domande, 2h15′, domande a risposta singola e multipla, possono esserci anche domande che richiedono drag&drop
  • Score minimo : 700 su 1000, ogni domanda ha un peso diverso
  • Certificazione conseguita : si (858/1000)
  • Livello di difficoltà (1-5) : 4
  • Utilità tecnica (1-5) :4
  • Annotazioni : è l’esame di base per ogni tipologia di certificazione MCTS per .NET; questo vuol dire che da solo non costituisce certificazione specifica MCTS.
  • Preparazione : da 2 a 4 mesi


Oggi ho fatto il mio primo esame per certificazioni Microsoft, e qui vorrei fornire un contributo utile ad altri che vogliano fare questa scelta.
Innanzitutto devo dirvi che l’esame è stato più duro del previsto, e nonostante il discreto voto, da me inatteso, ho sudato un pò in diverse occasioni.
L’esame è adatto a coloro che lavorano con .NET da qualche anno, e che quindi hanno esperienza pratica sul campo. Questo lo dico in quanto può capitare, come è capitato a me, di dover rispondere per intuizione, non avendo mai visto le classi utilizzate in quella domanda. Ma visto che nel framework c’è una “logica”, alcune di queste domande, credo di averle risposte comunque correttamente.
Viceversa mi è capitato un certo imbarazzo nel non ricordare bene il funzionamento di alcune classi che ho usato parecchio ma da diversi anni non mi sono capitate sottomano.
Come dicevo prima l’esame tratta di diversi argomenti, tutti elencati qui, e in pratica è l’esame “di base” per le certificazioni MCTS (win, web, distribuited) per lo sviluppo .NET.
In quanto tale, si tratta di domande attinenti con le classi del framework, e in particolare della versione 2.0.
Ci sono diversi argomenti di rilievo, elencati nel link detto prima, e per quanto mi riguarda mi sono capitati diversi argomenti : serializzazione, sicurezza, configurazione, streaming, cifratura…
Avendo studiato sul libro consigliato da Microsoft, posso dire che almeno tre domande (o quattro?) erano tra quelle presenti nel programma di test sul cd allegato al libro, e quando dico questo intendo dire che le domande erano esattamente uguali !
Erano domande che credo avrei saputo comunque rispondere di mio, ma vederle davanti agli occhi, dopo aver fatto test a valanga, dà quell’attimo di sollievo che ha comunque il suo valore nella tensione dell’esame…
Il consiglio che voglio dare però è questo : non studiate i test a memoria, non ha senso.
Questa certificazione ha senso per chi fa questo lavoro, e per farlo bisogna sapere come funziona il framework.
Ok, alcune domande le ho sbagliate (e non so quali, non me l’hanno dette), ma il risultato è andato oltre le mie aspettative, quindi vuol dire che lo studio mi ha ripagato. E con studio intendo studio, non memorizzazione.
Con questo sono sette anni che lavoro con .NET, sin dal 2002, e di progetti ne ho fatti (e ne farò) tanti.
Nonostante questo alcune classi non le avevo mai viste nè sentite. Questo perchè facendo sempre le cose di corsa (come accade in Italia, nel nostro settore) a volte non si ha il tempo necessario per approfondire alcuni argomenti, ebbene questa è l’occasione giusta !
E visto che ho scoperto alcune classi e/o tecniche di .NET che non conoscevo prima, posso dire con soddisfazione che studiare per questi esami dà un doppio risultato : dopo l’ovvio vantaggio che può derivare dalla certificazione (per appunto “certificare” la propria professionalità), vi è un ulteriore vantaggio che è la conoscenza aggiuntiva, che mi porterà di sicuro a fare meglio il mio lavoro nelle prossime occasioni in cui dovrò progettare una soluzione con .NET.
Inoltre, questo di oggi lo considero solo l’inizio. Da qui voglio andare avanti finchè riesco, sempre nell’ottica di questo doppio beneficio che consegue dalle certificazioni (e non solo quelle di Microsoft).

MCP me too!

7/04/2008

Da oggi sono anche io un MCP”.
Ho superato con 858/1000 l’esame 70-536 di Microsoft (TS Microsoft .NET 2.0 – Application Development Foundation).

Sono molto contento, mi sento bene ora. Nell’ultima settimana ero diventato come una trottola, ed ero estremamente nervoso.
Devo dire comunque che nonostante il buon punteggio (in cui non onestamente non speravo), l’esame è stato veramente stressante, e le due ore e un quarto (mi pare…) sono passate in un lampo per rispondere a 40 domande, alcune onestamente abbastanza difficili…

Ora mi aspetta il 70-526 per prendere la prima certificazione (formata appunto da due esami).
Ma di questo ne parleremo in un altro post (spero).
:-)

Alcune volte è necessario inserire in una listbox delle righe (negli items) che vanno oltre la larghezza della listbox stessa.

Il controllo in sè non ha le proprietà, ma neanche le responsabilità, per decidere come e quando tagliare le righe inserite.

Ovviamente questo è un esempio e va preso così com’è. Modificatelo poi per il vostro caso specifico.

- innanzitutto la proprietà DrawMode della listbox va posta a OwnerDrawFixed;
- quindi si deve definire un gestore per l’evento DrawItem della stessa listbox, come di seguito indicato :

private void ListBoxcheckuser_DrawItem(object sender, DrawItemEventArgs e)
{
ListBox myListbox = (ListBox)sender;
// disegna il background e definisco il brush
e.DrawBackground();
Brush myBrush = Brushes.Black;
// la stringa da mostrare nella riga
string sTextToDisplay =
myListbox.Items[e.Index].ToString();
// stabilisco la larghezza massima di ogni riga, in caratteri
int iLength = 50;
// se la lunghezza della stringa supera quella visibile, la taglio e
// faccio l'insert delle righe a seguire
if (sTextToDisplay.Length > iLength)
{
// ottengo il primo blocco (per la riga corrente)
string sFirstBlock = sTextToDisplay.Substring(0, iLength - 1);
// e quindi il secondo blocco (il rimanente della riga)
string sSecondBlock = sTextToDisplay.Remove(0, iLength - 1);
// assegno il primo blocco alla riga corrente (che ora
è stata modificata)
myListbox.Items[e.Index] = sFirstBlock; //
questa riga è fondamentale;
// inserisco la nuova riga all'indice successivo
// questo farà scattare nuovamente questo evento, per
la riga in questione
myListbox.Items.Insert(e.Index + 1, sSecondBlock);
// riporto il valore da stampare (disegnare)
sTextToDisplay = sFirstBlock;
}
// disegno il testo per la riga corrente (o quello che ne rimane)
e.Graphics.DrawString(sTextToDisplay, e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
// assegno il focus al rectangle se necessario
e.DrawFocusRectangle();
}

questo ti consente di determinare una lunghezza massima in caratteri del testo che viene inserito nella textbox;
l’unico svantaggio è che non è dinamico in base al font; a questo si può rimediare ragionando in termini di pixel, vedendo di volta in volta la larghezza della stringa da scrivere rispetto alla larghezza della listbox, tramite il metodo :

// ottengo il primo blocco (per la riga corrente)
int iPixel = TextRenderer.MeasureText(myString, myFont).Width;

ma è un’alternativa ancor più faticosa della prima, e poco gestibile (per il fatto che il DrawItem viene rilanciato ad ogni visualizzazione/refresh del controllo/della pagina)…

Pensavo che queste seghe mentali soluzioni geniali fossero solo un ricordo dell’epoca di Delphi

L’opportunità che avevo già descritto in questo post è stata prolungata fino al 30/06/2008.
Pare la richiesta sia stata considerevole. Stavolta non me la lascio scappare.

Se cercate le specifiche del C# 3.0 e non riuscite a scaricarle da MSDN, vi comunico che il link segnalato un pò in giro per i vari siti (anche della stessa MS) è sbagliato.

Quello corretto è questo.

Per quanto riguarda la mia assenza dal blog, ultimamente ho fatto dei gran botti sono stato molto molto molto impegnato per lavoro, spero di recuperare a breve.

riferimenti : link