• 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.

Introduzione

La lettura dei libri negli ultimi anni si è ridotta notevolmente. Le persone che hanno nel loro interesse leggere un buon libro sono sempre di meno, mentre aumenta notevolmente ogni giorno il numero di persone che si avvicina alla tecnologia, in una delle tante forme che oggi vediamo impiegate un po’ ovunque intorno a noi.

Questo spostamento popolare verso la tecnologia a buon mercato (o come la chiamo io tecnologia di massa) sta portando nelle case di tutti noi, oltre ai computer che ormai fanno parte dell’elenco degli elettrodomestici di uso quotidiano, anche una serie di gadget e strumenti di vario genere per ascoltare musica, vedere video, collegarsi ad internet ecc.

L’oggetto di cui voglio parlare oggi è ancora poco noto a queste persone, ma sono sicuro che nei prossimi anni diventerà di uso comune esattamente come oggi lo sono i vari iPod, lettori mp3 e palmari.

La necessità di leggere

Ogni persona, nel suo ambito di conoscenze o di esigenze, ha la necessità fisica di leggere. Chi fa un lavoro come il mio, nell’ambito dell’informatica, legge in continuazione riviste, libri o articoli su internet.

Chi studia, a scuola o all’università, ha bisogno di leggere per imparare. Chi viaggia per lavoro, legge per ammazzare il tempo. La casalinga che vuole defaticarsi dalle faccende quotidiane legge le riviste di gossip.

L’elenco sarebbe lungo e interminabile, ma immagino che questo basti a chiarire il concetto.

La necessità di scrivere

Le nuove generazioni (in cui forse erroneamente mi annovero anche io) hanno un bisogno aggiuntivo, che è quello di scrivere.

Non parlo solo di quelli che normalmente lo fanno per esigenze lavorative o professionali. Parlo di quelli che si scrive per il piacere di farlo.

Partiamo dagli scrittori. Loro scrivono i libri che noi leggiamo. Non hanno la necessità di farlo, neanche quelli che ne fanno il proprio lavoro. Almeno inizialmente lo fanno perché sentono il loro personale bisogno di scrivere.

Oggi ad essi si affiancano i cosiddetti blogger, cioè coloro che tengono uno o più diari su internet in cui scrivere delle proprie esperienze personali, dei propri interessi o di altro ancora. Anche loro sono scrittori.

Il peso della cultura

Leggere un buon libro a volte può risultare scomodo. Portarsi dietro un libro pesante può rappresentare un problema. Lo sanno bene, per esempio, gli appassionati di Ken Follett, i cui libri normalmente sono composti da molte pagine e spesso sono poco “trasportabili”.

Oppure i bambini di oggi, che sempre più spesso devono ricorrere ai genitori per portare zaini pesanti. Ai miei tempi si leggeva in due su un libro e si portavano quindi metà dei libri, ma anche qui qualcosa deve essere cambiato da allora.

La carta si sa, è leggera. Fino a che si tratta di un foglio. Ma più fogli sono pesanti. E chi, come me, ha la casa notevolmente invasa da libri, enciclopedie e riviste specializzate, lo sa bene, specialmente in caso di trasloco.

Un buon compromesso

Questo pesante ma necessario bisogno di cultura, unito all’utilizzo ormai sempre più crescente della tecnologia, hanno portato ad un nuovo Strumento (sì, con la “S” maiuscola).

Parliamo degli E-Book Reader. Questi dispositivi portatili, sono notevolmente recenti, in quanto sono stati introdotti sul mercato negli ultimi due anni. Da allora le persone che ne stanno decretando il successo commerciale sono sempre in costante aumento, man mano che andiamo avanti ci sono sempre più produttori che decidono di investire in questo nuovo mercato.

Si tratta in pratica di un lettore di libri elettronici, ovvero di libri non stampati su carta ma leggibili tramite uno dei vari formati che si sono diffusi in questi anni. I principali sono tre : l’Adobe PDF, Il Microsoft Lit, e L’OEBPS che è uno standard aperto di ultima promosso dai consorzi internazionali proprio per questa nuova esigenza di editoria elettronica. Ognuno di questi formati ha le proprie caratteristiche i propri vantaggi e limiti, ma non è questo lo scopo di questa discussione. L’importante è capire che un libro che normalmente è pesante e voluminoso, può essere contenuto in un file .pdf di pochi KB.

Le caratteristiche fondamentali

Normalmente, per i vari modelli di E-Book Reader in commercio, le dimensioni fisiche sono tipiche di un libro medio, e il peso è di qualche centinaio di grammi. Essi sono dotati di memoria, interna e/o esterna, tramite per esempio “SD Card” o altri supporti per la memorizzazione già noti e diffusissimi tramite le fotocamere digitali.

Su questi supporti possono essere ospitati moltissimi libri. Centinaia, anche migliaia, in base alla capacità del supporto, che oggi costano tra l’altro sempre meno.

Ma la caratteristica più interessante di questi dispositivi è lo schermo. Infatti lo schermo non è, come erroneamente potrebbe essere visto, un normale schermo lcd. Si tratta infatti di E-ink, ovvero di un tipo di schermo che permette una resa visiva molto simile a quella ottenibile con le stampe in carta.

Uno degli ostacoli più grandi infatti, potrebbe essere la scarsa leggibilità o la fatica nel leggere per lunghi periodi, articoli e scritti su schermi lcd, specialmente per chi non è abitualmente avvezzo all’uso quotidiano del computer. Con questa tecnologia, anch’essa di recente studio ed introduzione sul mercato, si ha invece la sensazione di avere, quasi completamente, a che fare con una stampa cartacea, con evidente vantaggio per la vista e la capacità di lettura. Sulla tecnologia E-ink varrà la pena approfondire, ma lo faremo solo in un successivo articolo.

Le caratteristiche aggiuntive

Molti di questi dispositivi vengono ormai venduti con un insieme di caratteristiche aggiuntive rispetto alla sola funzionalità di lettura di libri. Parecchi hanno anche la capacitò di connettersi via internet tramite una rete wi-fi disponibile, e tramite questa connessione navigare su internet per leggere le news dai siti internet dei quotidiani, o i blog degli amici.

Altri consentono di prendere appunti direttamente sul libro, simulando quindi il libro cartaceo (sottolineature, note a margine della pagina), oppure di partire da un foglio nuovo per prendere appunti come un bloc-notes.

I vantaggi

I vantaggi di un E-Book Reader sono considerevoli oltre che numerosi. E’ necessario perciò esprimerli con una lista dettagliata :

  • Ingombro: l’ingombro è quello di un “libro normale”
  • Peso: il peso è quello di un “libro normale”
  • Capacità: si possono trasportare tantissimi libri contemporaneamente
  • Leggibilità: non si affaticano gli occhi anche in condizioni di luce particolare
  • Disponibilità: sono moltissimi gli autori che passano alle stampe “digitali” affiancate a quelle cartacee per i loro libri, e sono disponibili sempre nuovi siti per la vendita dei libri digitali; inoltre esistono moltissimi siti che consentono il download legale e gratuito di testi, dai più antichi a recenti, e anche tanti autori famosi consentono di leggere i propri libri (quelli di qualche anno prima) gratuitamente tramite uno dei formati prima indicati
  • Risparmio: un libro venduto in formato elettronico costa sicuramente parecchio in meno rispetto al prezzo del libro cartaceo, ed è giusto così, in quanto gli editori risparmiano la carta, la stampa, la distribuzione, ecc. Inoltre come dicevo prima, alcuni libri venduti in libreria, sono gratuiti in formato elettronico, il che è un bel risparmio.
  • Rapidità: se vogliamo leggere un libro in genere dobbiamo andare presso una libreria, trovare il libro che ci interessa e poi comprarlo; a volte poi bisogna ordinarlo perché non è disponibile; comprandolo su internet lo si può scaricare subito e quindi cominciare a leggerlo in pochi minuti (spero non mi odino i proprietari di una libreria)
  • Ecologia: evidentemente la carta non stampata non ha bisogno di essere riciclata, quindi risolviamo il problema dell’ambiente già in partenza
  • Contenuti: normalmente sui file in formato elettronico è possibile fare delle ricerche, per parola, frase o altro, cosa che chiaramente su un libro cartaceo non è possibile fare (provate voi a cercare una particolare parola in un libro di 1000 pagine)

Gli svantaggi

Sono tutto sommato pochi gli svantaggi che possiamo avere nell’utilizzare un E-Book Reader invece di un libro classico. Chiaramente il costo del dispositivo che, in base al modello, varia nell’ordine comunque delle centinaia di euro.

Poi ovviamente c’è il discorso della delicatezza che ha un dispositivo del genere rispetto ad un libro normale: quest’ultimo quando cade ovviamente può essere ripreso senza problemi (a meno che non cada dritto in una pozzanghera, ma quella si chiama in un altro modo); se viceversa è un E-Book Reader a cadere, preparatevi a litigare con la madre (nel mio caso la moglie) per spiegare che la garanzia non copre l’urto da caduta, anche se si è speso un bel po’ di soldi per comprarlo; stesso discorso vale se distrattamente ci si siede sopra.

Le offerte in commercio

Attualmente in commercio ci sono circa cinque o sei modelli di altrettanti produttori, alcuni poco noti ai più altri invece molto famosi. Ognuno di questo ha caratteristiche più o meno simili, tranne alcuni (più costosi) che hanno caratteristiche particolari, uniche per la tipologia di dispositivo, almeno finora.

L’elenco che riporto di seguito non vuole essere esaustivo per quanto riguarda le caratteristiche (di cui lascio l’approfondimento al lettore interessato), ma solo un riassunto delle offerte più note sul mercato.

Partirei con il Kindle di Amazon, prodotto e venduto dal famoso libro di siti, tramite il quale è possibile comprare e scaricare, direttamente sul Kindle tramite connessione wi-fi ad internet, i libri elettronici acquistati (ovviamente sempre su Amazon).

Un altro è il Cybook che negli ultimi tempi sta riscuotendo molti consensi di mercato. Un altro ancora è il Sony Reader, molto elegante, venduto già con un centinaio di libri a bordo.

Finirei con il più famoso, l’ILIAD di iRex Technologies. Non so se sia temporalmente il primo ad essere stato introdotto sul mercato, ma di sicuro è il primo di cui si è parlato con grande interesse, visto che oltre alle caratteristiche di base ha buona parte delle caratteristiche aggiuntive. Di sicuro è anche però il più costoso.

Ne esistono diversi comunque, questi sono quelli di cui ho sentito maggiormente parlare, sui blog o sui siti. Consiglio a chi voglia approfondire o comprare un E-Book Reader, di approfondire la conoscenza dei modelli per poter scegliere quello che più ritiene adatto alle proprie esigenze.

Alcuni di questi sono acquistabili solo su internet, magari perché in Italia non vi sono distributori. L’acquisto via internet è ormai considerata una cosa quasi normale per la nostra epoca.

Gli scenari futuri

Chiaramente in un mondo che si evolve con la velocità con cui si sta evolvendo il nostro, dal punto di vista di quella che prima ho definito tecnologia di massa, possiamo dire che questo tipo di dispositivo, seppure non rappresenta una completa novità (in quanto derivante da concetti di mobilità come i palmari o i notebook) rappresenta una grossa novità. Io personalmente, la ritengo una vera rivoluzione.

Si pensi solo ad un mondo in cui il discorso ecologico venga compreso dalle persone, e si scelga di leggere libri elettronici piuttosto che quelli cartacei.

Oppure ai bambini che vanno a scuola non più con uno zaino pesantissimo ma con uno zainetto piccolo e poco ingombrante.

All’ingombro casalingo, viste anche le dimensioni sempre più ridotte (e in proporzione inversa sempre più costose) degli appartamenti in una grande metropoli, cosa da non sottovalutare per chi ha la il bisogno di leggere.

Si tenga infine presente che alcuni produttori, stanno progettando (o hanno già reso disponibile) la possibilità di essere programmati, quindi aprendo a tutti gli effetti nuovi scenari industriali per la realizzazione di applicazioni di diverso genere, da quelli per ambiti industriali a quelli per scopi ludici.

Inoltre i siti che distribuiscono libri e contenuti usufruibili da questo tipo di dispositivo, è in continua espansione. Per cui mi immagino un futuro in cui anche il quotidiano o la rivista di gossip sia disponibile senza uscire di casa. Un vantaggio sia per la casalinga stanca che non vuole uscire con la pioggia, sia per chi ha problemi di mobilità e non sa usare o non ha internet. Il limite è solo la nostra immaginazione.

Conclusioni

Io personalmente non ho un E-Book Reader. Per ora continuo a leggere su libri cartacei, visto anche che la mia unica lettura è rivolta a libri tecnici molto specifici del mio lavoro.

Ma sto seriamente valutando di comprarne uno nei prossimi mesi, magari come regalo di Natale.

Ho amici e colleghi che comunque me l’hanno mostrato, e me ne hanno decantato le lodi.

E sono confidente che il loro entusiasmo sia genuino, anche perché dopo l’acquisto iniziale, la paura di aver speso tanti soldi per un aggeggio inutile o comunque poco necessario, penso sia naturale, specialmente per chi non ha un budget consistente da spendere a cuor leggero.

Per cui faccio un appello ai produttori di “Gusci Salva Telecomando”. Preparatevi ad un nuovo mercato, quello cioè dei “Gusci Salva E-Book Reader”. Così io potrò spendere seicento euro circa per un ILIAD senza il pericolo di incorrere nelle ire di mia moglie.

Riferimenti

http://en.wikipedia.org/wiki/E-book_reader
http://it.wikipedia.org/wiki/EBook
http://e-boom.simplicissimus.it/
http://www.procionegobbo.it/blog/2008/01/12/iliad-una-minimini-recensione/

Un metodo rapido e veloce per esportare un semplice file Excel in un file CSV:

using _Excel = Microsoft.Office.Interop.Excel;

[DllImport("user32.dll")]

static extern int GetWindowThreadProcessId(int hWnd, out int lpdwProcessId);

/// <summary>

///

/// </summary>

/// <param name=”sInFile”>Il file .xls in input</param>

/// <param name=”sOutFile”>Il file .csv in output</param>

/// <remarks>

/// Le seguenti considerazioni sono relative a questo specifico esempio.

/// Il file .xls deve essere in formato 97/2003, no 2007.

/// Il file .csv non è “comma-separated”, ma è “semicolon-separated”, cioè vengono separati i valori con “;”

/// I filename devono essere in “absolute path” e non in “relative path”.

/// </remarks>

/// <returns>Ritorna true se l’esportazione riesce con successo, false altrimenti.</returns>

private bool ExportXlsToCsv(string sInFile, string sOutFile)

{

bool Result = File.Exists(sInFile); // verifica che il file .xls esista

if (Result)

{

_Excel.ApplicationClass excel = null; // l’istanza di Excel

int excelProcessId = 0; //id del processo creato per l’istanza

try

{

if (File.Exists(sOutFile)) // se il file di destinazione esiste…

{

File.Delete(sOutFile); // … lo elimina preventivamente

}

excel = new _Excel.ApplicationClass(); // istanzia Excel

GetWindowThreadProcessId(excel.Hwnd, out excelProcessId); // ricava l’id assegnato per il processo generato

excel.Visible = false; // evita che l’istanza dell’applicativo sia visibile all’utente

_Excel.Workbook workBook = excel.Workbooks.Open(sInFile, 0, true, 5, “”, “”, true, _Excel.XlPlatform.xlWindows, “\t”, false, false, 0, true, 1, 0); // apre il file .xls

workBook.SaveAs(sOutFile, _Excel.XlFileFormat.xlCSVMSDOS, Type.Missing, Type.Missing, Type.Missing, Type.Missing, _Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); // salva il file in formato .csv

excel.DisplayAlerts = false; // evita che venga richiesta la conferma di salvataggio alla chiusura di Excel (dato che è già salvato in .csv)

excel.Quit(); // chiude l’istanza di Excel

Result = true;

}

catch

{

Result = false;

}

finally

{

excel = null; // una volta chiusa l’istanza, questa assegnazione è comunque necessaria

if (excelProcessId != 0)

{

// se per qualche motivo non viene chiusa l’istanza Excel, facciamo una kill

int iMaxTimeoutMs = 3000; // i ms di attesa per aspettare che l’istanza venga chiusa correttamente

int iCheck = 250; // i ms per ogni controllo

while ( (iMaxTimeoutMs>0) && (Process.GetProcessById(excelProcessId) != null) )

{

Thread.Sleep(iCheck);

iMaxTimeoutMs -= iCheck;

}

Process excelProcess = Process.GetProcessById(excelProcessId);

if (excelProcess != null) // se ancora a questo punto l’istanza è attiva…

{

// (non dovrebbe servire, ma non si sa mai)

excelProcess.Kill(); // …la si butta giù di forza !

}

}

}

}

return Result;

}

  • 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).
:-)

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.

Immagino sia un baco…

Scenario : Windows Server 2008 Enterprise

Azione : Creare uno share di rete ad una utenza specifica, che ancora non esiste

Prerequisito : Loggato con una utenza del gruppo Administrators

Esecuzione :

1. Creazione Utenza

  • Start > Administrative Tools > Server Manager
  • dal Server Manager > Configuration > Local Users and Groups > Users
  • dal pannello Users > tasto destro > New User…
  • inserisco i dati :
    • User Name : Prova
    • Full Name : Utente di Prova
    • Description : Descrizione Utente di Prova
    • Password : pippobaudo.2008
    • tolgo il check a “User must change password at next logon”
    • premo il tasto “Create” e l’utente viene generato
    • di default l’utente appena creato appartiene al solo gruppo “Users”
    • chiudo la finestra aperta di creazione utente e la finestra di Server Manager

2. Attivazione Share

  • vado in “Computer” (le risorse del computer) > disco “C” > tasto destro > New > Folder > creo una nuova cartella “Prova”
  • una volta creata la cartella “Prova”, faccio tasto destro su di essa e dal menù scelgo “Share…”
  • si apre la cartella di File Sharing, in cui mi viene di default visualizzato l’utente Administrator come Owner
  • dalla combobox di utenze premo la freccia giù, e mi vengono elencate le utenze registrate
  • scelgo l’utenza “Utente di Prova” e premo il tasto “Add”
  • ECCO L’ERRORE : mi viene visualizzata una dialog di errore in cui il messaggio è “Unable to locate user Utente di Prova”

Soluzione :

  • Ritornare nella finestra del Server Manager (Start > Administrative Tools > Server Manager)
  • dal Server Manager > Configuration > Local Users and Groups > Users
  • tasto destro sull’utenza “Prova” > Properties
  • cancellare il contenuto del textbox “Full Name” (che contiene “Utente di Prova”) lasciando il campo vuoto, e quindi fare “OK”
  • a questo punto torno in “Computer” > disco “C” > tasto destro su “Prova”
  • si apre la cartella di File Sharing, e dalla combobox di utenze premo la freccia giù, e mi vengono elencate le utenze registrate
  • scelgo l’utenza che a questo punto si chiama “Prova” e premo il tasto “Add”
  • ORA L’UTENTE VIENE AGGIUNTO
  • posso anche scegliere il tipo di utenza nella voce Permission Level, tra Reader, Contributor o Co-Owner
  • premo il tasto “Share”
  • mi viene visualizzata la finestra “Network discovery and file sharing”, in cui devo scegliere la voce “Yes, turn on network discovery…” e a questo punto è tutto a posto.

Chi ne sa qualcosa in più è invitato ad aggiungere un commento in merito.

Scenario : Sql Server 2005 con un database appena creato tramite uno script

Problema : Non si riescono a creare Database Diagrams, in quanto il supporto per la funzionalità stessa non è presente e ad ogni tentativo viene visualizzata una dialog di errore con scritto il messaggio : “Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.”. Andando nelle proprietà del database, seguendo le indicazioni del messaggio non sembra risolversi il problema.
Soluzione : Eseguire il seguente script :

use [master]
EXEC sp_dbcmptlevel 'yourDB', '90';
go
ALTER AUTHORIZATION ON DATABASE::yourDB TO "yourLogin"
go
use [yourDB]
go
EXECUTE AS USER = N'dbo' REVERT
go