certification
There are 171 entries for the tag
certification
Come ben sa chiunque abbia letto anche solo uno dei libri di certificazione Microsoft, i testi sono pieni di errori… Alcuni sono sviste, mentre altri sono molto gravi, come quello che ho appena riscontrato nel capitolo dedicato alla creazione di Custom Web Control. In esso, si parla dei metodi RenderBegin e RenderEndTag, per creare il codice HTML corrispondente rispettivamente al tag di apertura e a quello di chiusura del controllo. Nel libro si legge che: Note that the RenderEndTag is not required, because it is automatically called and will render an end tag based on...
Questa mattina ho ricevuto il Wallet Card di Microsoft, ordinato un paio di settimane orsono. Fa un certo effetto vedere la mia foto vicino alla scritta Microsoft Certified Professional Developer… Però è decisamente un bell'effetto… Tag di Technorati: Microsoft,Certification
Da qualche giorno ho cominciato lo studio per l’esame di certificazione 70-515: Web Applications Development with Microsoft .NET Framework 4. Altri impegni permettendo, vorrei riuscire a darlo entro la fine dell’anno. Tag di Technorati: Visual Studio 2010,Certification
Questa mattina ho sostenuto l’esame 70-511, TS: Windows Applications Development with Microsoft .NET Framework 4, superandolo con un punteggio di 925 su 1000! Il prossimo passo è l’esame 70-515, TS: Web Applications Development with Microsoft .NET Framework 4, per cui ho già ordinato il Self-Paced Training Kit… Ma prima di tutto, mi godrò un po’ di vacanze al mare… E se ne riparlerà a Settembre… Tag di Technorati: Certification,Visual Studio 2010
Il Self-Paced Training Kit per l’esame 70-511, Windows Applications Development with Microsoft .NET Framework 4, dedica una lezione al Drag and Drop, sia nelle applicazioni Windows Forms, sia in WPF. In entrambi i casi, si prende come esempio il Drag and Drop tra due controlli TextBox: nessun problema per le Windows Forms, dove tutto funziona come previsto; qualche inghippo, invece, si ha con WPF… In pratica, tutto il codice illustrato non funziona, perché WPF gestisce automaticamente il drag and drop tra due caselle di testo! Così, ad esempio, se proviamo a richiamare il metodo DragDrop.DoDragDrop nell’evento TextBox.PreviewMouseLeftButtonDown, il testo contenuto...
Dopo diverso tempo, ho finalmente deciso di riprendere la strada delle certificazioni Microsoft, che tante soddisfazioni mi hanno dato in passato. Ecco quindi che ho iniziato a studiare per l'esame 70-511: Windows Applications Development with Microsoft .NET Framework 4. Non so ancora quanto tempo ci impiegherò, visto che sono sempre sommerso dagli impegni, ma ormai ho cominciato e non mi voglio fermare! Tag di Technorati: Certification,Visual Studio 2010
Da qualche giorno sono disponibili gli esami di aggiornamento per passare dalla certificazione MCPD Enterprise Application Developer alla nuova MCPD Enterprise Application Developer 3.5. Il percorso comprende due esami distinti: Exam 70-568: Upgrade: Transition Your MCPD Enterprise Application Developer Skills to MCPD Enterprise Application Developer 3.5, Part 1 (English) Exam 70-569: Upgrade: Transition Your MCPD Enterprise Application Developer Skills to MCPD Enterprise Application Developer 3.5, Part 2 (English) Ultimamente sono un po' indietro con le certificazioni su SQL Server, ma sono quasi in dirittura d'arrivo per l'ultimo esame… Se lo supererò,...
Oggi, mentre stavo per creare una Custom Exception in .NET, mi sono ricordato una cosa che avevo studiato nell'esame di certificazione 70-536, ovvero che la classe System.ApplicationException non dovrebbe essere utilizzata. Ma perché? Qual è il motivo che ha spinto Microsoft stessa a sostenere questa cosa? La risposta si trova facilmente con una ricerca su Google: JEFFREY RICHTER: System.ApplicationException is a class that should not be part of the .NET Framework. The original idea was that classes derived from SystemException would indicate exceptions thrown from the CLR (or system) itself, whereas non-CLR exceptions would be derived...
Negli ultimi giorni sto iniziando a fare un po' di quiz in preparazione dell'esame 70-444, Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005. Come ormai mia abitudine, sto usando il CD allegato al Self-Paced Training Kit. Questa mattina mi sono trovato di fronte ad uno scenario non proprio "roseo": Un PC con SQL Server 2005 è attualmente vittima di un attacco di tipo denial of service. Il tecnico responsabile della gestione del firewall aziendale è rimasto coinvolto in un incidente automobilistico (non mortale)... I server dell'azienda sono localizzati a molte miglia...
Sono finalmente disponibili i primi aggiornamenti delle certificazioni su SQL Server, per passare da MCITP di SQL Server 2005 a MCITP di SQL Server 2008: Exam 70-453: Upgrade: Transition Your MCITP SQL Server 2005 DBA to MCITP SQL Server 2008 Exam 70-455: Upgrade: Transition Your MCITP SQL Server 2005 BI Developer to MCITP SQL Server 2008 BI Developer Purtroppo, causa impegni dirompenti, io sono un po’ indietro, mi manca ancora circa metà libro per dare l’ultimo esame che mi porterà, se lo supererò, a diventare Database Administrator di SQL Server 2005…...
Nel Self-Paced Training Kit per l'esame 70-444 si dice che con le Included Columns è possibile creare indici compositi, indicando i nomi di tutte le colonne che devono confluire nell'indice nelle parentesi che seguono il nome della tabella nel comando CREATE INDEX; inoltre, in un singolo indice composito si possono usare fino a 16 colonne, e la sua dimensione massima è di 900 byte. In realtà, le cose non stanno esattamente così. Le Included Columns permettono di aggiungere colonne all'indice i cui valori però sono inseriti solo a livello delle foglie, quindi non possono essere utilizzati per le condizioni...
Da qualche giorno sto studiando sul Self-Paced Training Kit per l'esame 70-444. Gli argomenti sono interessanti, dal momento che viene spiegato come diagnosticare e risolvere i diversi tipi di problemi che possono affliggere un'istanza di SQL Server 2005 (relativi a risorse, query mal progettate, indici, ecc.). La parte iniziale è un po' noiosa, perché fornisce una panoramica sulle diverse situazioni che possono verificarsi. Da pagina 100 in poi, però, le cose migliorano decisamente e si entra nel "vivo" degli argomenti. Tutto sommato, quindi, per adesso sono soddisfatto... Vedremo come va avanti... Technorati Tag: Certification
Da un padio di settimane sono disponibili nuove certificazioni MCTS per SQL Server 2008: 70-432: Microsoft SQL Server 2008, Implementation and Maintenance 70-448: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance Il Self-Paced Training Kit per il primo esame sarà disponibile a Gennaio 2009, mentre per il secondo bisogna attendere fino a Marzo. Technorati Tag: Certification
Lo scorso weekend ho ricevuto il Self-Paced Training Kit per l'esame 70-444, Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005, ovviamente ordinato su Amazon.com perché il risparmio è vergognoso. Visto che mi sembrava brutto cominciare lo studio di Sabato, ho rimandato fino ad oggi... Ma adesso si comincia davvero, con l'obiettivo di dare l'esame entro l'anno.
Technorati Tag: Certification
Originally posted at dotnettoscana.org
Questa mattina ho superato l'esame 70-443, Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005. Ora sono Database Administrator per metà... Mi prendo il resto della settimana di riposo, poi lunedì ordinerò il Self-Paced Training Kit per l'esame successivo, il 70-444, Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005: il mio obiettivo è completare la certificazione entro la fine dell'anno.
Technorati Tag: Certification
Microsoft richiede un aiuto agli sviluppatori che lavorano sulla piattaforma Windows Embedded Standard per decidere gli argomenti che faranno parte della nuova certificazione dedicata a questa piattaforma. Chi è interessato, può mandare una mail all'indirizzo mswepp@microsoft.com (a partire da Lunedì 15 settembre), con cui chiedere maggiori informazioni. Fonte: Olivier's WEBlog Technorati Tag: Certification
Nel Self-Paced Training Kit per l'esame 70-443, a distanza di 6 pagine, vengono fatte due affermazioni opposte relativamente ai Recovery Model che possono essere utilizzati con la Replica di un database. Prima si dice che i modelli Simple e Bulk-Logged non possono essere usati, ma successivamente si precisa che la Replica funziona con ogni Recovery Model. In casi come questi, il responso ufficiale è quello contenuto in MSDN, in particolare alla pagina Frequently Asked Questions for Replication Administrators: Replication functions properly using any of the recovery models: simple, bulk-logged, or full. Merge replication tracks change by...
Siete soddisfatti dei Welcome Kit che vi vengono inviati da Microsoft quando superate un esame di certificazione? Per esprimere il proprio parere, è possibile compilare un breve questionario on-line. Fonte: MSDN Blog Technorati Tag: Certification
Nuovi certificazioni in vista: questa volta tocca a Windows Embedded Standard, come annunciato in questo post. Technorati Tag: Certification
Questa volta le scoppiazzature del Self-Paced Training Kit per l'esame 70-443 sono senza ritegno... Quando, nel capitolo 12, si parla del partizionamento degli indici utilizzando le Included Columns, si fa riferimento ad argomenti che, stando a quanto scritto, sono trattati in dettaglio nelle lezioni 3 e 5. Effettivamente questo è vero... Peccato che le lezioni a cui si fa riferimento SIANO CONTENUTE nel Self-Paced Training Kit per l'esame 70-431!!! Technorati Tag: Certification
In un post di qualche giorno fa avevo sottolineato come molti degli argomenti trattati nel Self-Paced Training Kit per l'esame 70-443 sia copiati pari pari dal libro per l'esame 70-431. Purtroppo questo copia/incolla è stato fatto senza alcun criterio, tanto è vero che anche le parti errate del testo 70-431 sono state riportate senza alcuna modifica nell'altro libro: mi riferisco, in particolare, al capitolo 12, in cui, quando si parla dei tipi di dato carattere, compare lo stessa identica imprecisione relativa al numero di caratteri memorizzabili nei tipi nchar ed nvarchar, di cui avevo già parlato in precedenza. Technorati...
Parlando del Log Shipping, il Self-Paced Training Kit per l'esame 70-443 dedica solo DUE righe al Monitor Server, che invece ricopre un ruolo fondamentale nella progettazione di un sistema affidabile: esso, infatti, registra tutte le attività eseguite dal Log Shipping ed è in grado di inviare notifiche in caso di problemi, ad esempio se il backup del LOG sul server primario non viene effettuato per un certo periodo di tempo. Questo componente è opzionale, ma in sua assenza le storia dei task eseguiti dal Log Shipping è salvata unicamente sulle macchine che eseguono i job corrispondenti (quindi o sul server...
Da qualche tempo sto studiando per l'esame di certificazione 70-443, PRO: Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005. Molti degli argomenti trattati sono in comune con l'esame 70-431, TS: Microsoft SQL Server 2005 - Implementation and Maintenance. La cosa è normale, perché l'esame TS introduce le tecnologie che stanno alla base di SQL Server 2005, mentre l'altro illustra come si utilizzano tali strumenti per costruire un sistema in grado di rispondere alle esigenze richieste. Detto questo, ho notato che nel Self-Paced Training Kit per l'esame 70-443 ci sono spesso interi paragrafi copiati pari pari dal libro...
SQL Server 2005 mette a disposizione due comandi T-SQL che consentono di cifrare e decifrare una stringa utilizzando una chiave simmetrica: EncryptByPassPhrase e DecryptByPassPhrase. Essi utilizzano una passphrase per generare la chiave simmetrica che viene utilizzata per eseguire le vere e proprie operazioni, rispettivamente, di cifratura e decifratura del testo specificato. Technorati Tags: Certification, SQL Server, SQL
Su MSDN ho trovato un post che mi ha incuriosito: Why Doesn’t Microsoft Have Entry Level Developer Certifications? Effettivamente non ci avevo mai pensato, ma le certificazioni Microsoft sono indirizzate a persone con almeno 3 anni di esperienza. Nel post si dice che questa scelta è dovuta al fatto che, per certificare chi ha 1 o 2 anni di esperienza, gli esami dovrebbero trattare esclusivamente gli argomenti base della programmazione, che sono comuni a tutti i linguaggi, e non solo a .NET; d'altra parte, l'obettivo delle certificazioni è dimostrare la conoscenza delle specifiche tecnologie Microsoft, per tale motivo non possono...
Per valutare il tempo di esecuzione di un comando T-SQL, può essere utile l'istruzione SET STATISTICS TIME ON
Essa va digitato nella finestra della query subito prima del comando o della stored procedure da provare. Fatto questo, dopo l'esecuzione, spostandosi nella scheda Messages di SQL Server Management Studio si può osservare un riassunto dei tempi di parsing, compilazione ed esecuzione della query.
Technorati Tags: Certification, SQL Server, SQL
Il prossimo 30 luglio sono previste due sessioni, ciascuna della durata di un'ora, in cui si discuterà sulla nuova certificazione Microsoft Certified Master: July 30, 2008, at 7:30 A.M. Pacific Time July 30, 2008, at 5:00 P.M. Pacific Time Direi che, per noi italiani, il primo appuntamento è il più adatto (corrisponde alle 16.30 ). Technorati Tag: Certification
La settimana scorsa mi è arrivato Self-Paced Training Kit per l'esame 70-443, Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005. Oggi ho ufficialmente cominciato lo studio... Questa volta si tratta di un argomento abbastanza diverso da quelli che ho studiato finora, quindi penso che mi ci vorrà un pochino più di tempo, ma la cosa non mi spaventa Technorati Tag: Certification
Data l'importanza dell'annuncio (almeno per me ), segnalo qui sul muro il post di Lorenzo relativo alla nuova certificazione Microsoft Certified Master. Technorati Tag: Certification
Per quanti sono ancora in possesso di voucher rilasciati da Pearson VUE, entro il 31 luglio è possibile richiederne gratuitamente la sostituzione con voucher validi per Prometric. Per richiedere il cambio, è necessario contattare l'indirizzo mslvouch@microsoft.com, mentre in caso di problemi o domande è possibile rivolgersi a msledp@microsoft.com. Technorati Tag: Certification
Ho deciso quale sarà la mia prossima certificazione: sosterrò i due esami richiesti per diventare MCITP: Database Administrator. Ci ho pensato un po' su ed ho deciso che mi conviene percorrere questa strada, per acquisire competenze in un settore che finora ho toccato solo marginalmente... Naturalmente la mia intenzione è diventare anche Database Developer, ma facciamo una cosa per volta . Stasera comincio con l'ordinare il Self-Paced Training Kit per l'esame 70-443 su Amazon.com... Technorati Tag: Certification
Questa mattina ho superato l'esame 70-431, TS: Microsoft SQL Server 2005 – Implementation and Maintenance, ottenendo così la certificazione Microsoft Certified Technology Specialist: SQL Server 2005. Ora ho due alternative davanti: posso tentare la strada per diventare MCITP: Database Administrator oppure MCITP: Database Developer. In questo momento sono più propenso verso il Database Administrator... Voi cosa mi consigliate? Technorati Tag: Certification
Nell'ultima newsletter dedicata agli MCP si legge il seguente annuncio: In response to customer feedback, Microsoft has eliminated the requirement to recertify, or refresh, your MCITP or MCPD certification every three years. This is good news for you; there is no action required to maintain the certifications you hold today. D'ora in poi, le certificazioni relative ad una determinata tecnologia saranno valide finché Microsoft non abbandonerà il supporto mainstream del prodotto corrispondente. Technorati Tag: Certification
Il parametro WITH ENCRYPTION può essere utilizzato con funzioni, viste, stored procedure e trigger per fare in modo che il loro testo sia criptato, così che non possa essere decifrato da chi ha accesso al database. Per tale motivo, gli oggetti creati con questo parametro non vengono presi in considerazione durante il processo di replica del database che li contiene. Technorati Tags: Certification, SQL Server
In questa pagina è disponibile la lista degli esami necessari per aggiornare le certificazioni MCPD per Visual Studio 2005 alle analoghe su Visual Studio 2008. In particolare, per diventare MCPD: Windows Developer 3.5 e MCPD: ASP.NET Developer 3.5, possedendo già la vecchia certificazione corrispondente, è sufficiente un solo esame; invece, per ottenere il titolo MCPD: Enterprise Application Development 3.5 bisogna sostenerne due. In questo momento, però, le pagine con i dettagli sui singoli esami di aggiornamento non sono ancora disponibili. Technorati Tag: Certification
Se si disabilita un indice clustered, la tabella corrispondente diventa inaccessibile. La prima volta che ho letto questa nota nel Self-Paced Training Kit per l'esame 70-431, non ci ho fatto caso più di tanto. Ma poi, quando sono tornato a rileggere l'argomento per ripassarlo, ci ho pensato su... Quando c'è un indice clustered, i dati sono contenuti nelle foglie dell'indice stesso. Di conseguenza, se l'indice è disabilitato, non avendo più accesso alle sue foglie, diventa impossibile leggere i dati. Technorati Tag: Certification,SQL Server
Da lunedì scorso è disponibile una nuova certificazione, MCTS: Windows Embedded CE 6.0 Application Development. Maggiori informazioni sono disponibili qui. Technorati Tag: Certification
Nei giorni scorsi, diverse persone mi hanno contattato per chiedermi chiarimenti in merito alle nuove certificazioni per Visual Studio 2008 e del rapporto che esse hanno con la "generazione precedente". Come sempre, il fatto che si siano rivolti a me mi ha lusingato non poco . A loro ho consigliato di partire dalla lettura di questo post, che riassume in poche parole la situazione attuale. In particolare, si dice che l'esame 70-536, sul .NET Framework 2.0, continuerà ad essere la base anche per tutte le certificazioni su Visual Studio 2008: personalmente, questa mi sembra una scelta molto azzeccata, dal momento...
A pagina 452 del Self-Paced Training Kit per l'esame 70-431 si parla dei comandi ALTER INDEX REBUILD e ALTER INDEX REORGANIZE. Non vengono però menzionate (almeno non completamente) le differenze tra i due, differenze che sono ben riassunte in questo post; in particolare, uno dei particolari più importanti che non vengono menzionati è il seguente: During the index rebuild process, the statistics are also re-computed - same as when a new index gets created. Reorganize on the other hand does not update the statistics. Technorati Tags: Certification, SQL Server
La sintassi per creare lo snapshot di un database è la seguente: 1 CREATE DATABASE Snapshot_Name ON
2 ( NAME = logical_file_name,
3 FILENAME = 'os_file_name' )
4 AS SNAPSHOT OF source_database;
E' importante che il parametro logical_file_name (riga 2) coincida con il nome logico del file del database di cui sta creando lo snapshot, altrimenti si otterrà un messaggio di errore.
Technorati Tags: Certification, SQL Server
Il supporto al database mirroring in SQL Server 2005 include una funzionalità molto interessante, la cosiddetta Trasparent Client Redirection. Si tratta di una modalità di connessione al database che rende trasparente il passaggio all'utilizzo del mirror nel caso in cui il DB principale non sia disponibile. Non sono richieste modifiche al codice, è sufficiente aggiungere il nome dell'istanza di SQL Server 2005 contenente la copia nella stringa di connessione: Data Source=myServerAddress;Failover Partner=myMirrorServer;
Initial Catalog=myDataBase;Integrated Security=True;
Così facendo, se la...
Nel capitolo 12 del Self-Paced Training Kit per l'esame 70-431 si parla del comando DBCC CHECKDB, con cui è possibile eseguire vari test per verificare l'integrità di un database. Questo comando è in grado di provare a correggere gli eventuali errori rilevati. Per fare questo, è necessario specificare uno dei seguenti parametri: REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST e REPAIR_REBUILD. Nel testo essi non vengono spiegati, ma per fortuna in casi del genere viene in aiuto MSDN. In particolare, è bene tenere presente che il parametro REPAIR_FAST è presente solo per compatibilità con le vecchie versioni di SQL Server, ma in realtà esso non...
Tempo fa avevo pubblicato un post relativo agli indici clustered e all'ordinamento fisico dei dati in SQL Server; in quell'occasione, l'aiuto di Davide Mauri mi aveva permesso di comprendere l'argomento. Questa mattina, proseguendo lo studio per l'esame 70-431, sono giunto al capitolo 12, in cui si parla di manutenzione dei database: tra le altre cose, si menziona il fatto che non c'è corrispondenza tra ordinamento logico e ordinamento fisico delle pagine degli indici a causa del fenomeno della frammentazione esterna, che si può verificare in seguito alle operazioni di inserimento e modifica dei dati. Direi che con quest'ultima precisazione il...
Il capitolo 11 del Self-Paced Training Kit per l'esame 70-431 parla di backup e restore di database. Relativamente a quest'ultimo, viene presentato il comando RESTORE WITH STANDBY. La spiegazione di quest'ultimo argomento non è completa, poiché manca una precisazione: con l'opzione STANDBY si deve specificare il nome di un file che consente di annullare il ripristino. Technorati Tags: Certification, SQL Server
Nel mio studio dell'esame 70-431 sono arrivato al supporto a XML fornito da SQL Server 2005. Fino ad ora non avevo mai avuto occasione di approfondire questo argomento: sono rimasto piacevolmente sorpreso dalle possibilità offerte sia per la "conversione" da dati relazionali a XML, sia per il processo inverso. La sintassi da utilizzare all'inizio può sembrare un po' strana, ma dopo aver preso familiarità con essa non risulta assolutamente difficile da padroneggiare. Un buon punto di partenza per lo studio della tematica è rappresentato dall'articolo XML Support in Microsoft SQL Server 2005.
Technorati Tags: Certification, SQL Server
Quando, nel Self-Paced Training Kit per l'esame 70-431, si parla del comando ALTER PARTITION FUNCTION... SPLIT RANGE, non viene menzionata una cosa importante, ovvero che è necessario che il Partition scheme associato contenga un filegroup per la nuova partizione. Questo fatto viene accennato solo nella parte pratica del capitolo. In questa pagina di MSDN la cosa viene spiegata in dettaglio. In particolare, la nota importante è la seguente:
A filegroup must exist online and be marked by the partition scheme that uses the partition function as NEXT USED to hold the new partition. Filegroups are allocated to partitions in a CREATE PARTITION SCHEME...
Se si vuole ricercare un certo prefisso, bisogna ricordarsi di racchiudere l'espressione tra virgolette doppie. ad esempio: SELECT * FROM Users WHERE CONTAINS(Username, '"paol"*');
per trovare tutti gli utenti il cui nome contiene un prefisso "paol" (quindi, ad esempio, paolo e paolino). Se, invece, non si fossero usate le doppie virgolette, SQL Server avrebbe cercato solo gli utenti il cui username è esattamente paol*.
Technorati Tags: Certification, SQL Server
Per abilitare il Full-Text Indexing su un tabella di SQL Server 2005, essa deve avere un campo UNIQUE, su cui sarà costruito l'indice stesso. Una tipica scelta consiste nel definire UNIQUE il campo che contiene la chiave primaria della tabella. Maggiori informazioni sono disponibili su TechNet. Technorati Tags: Certification, SQL Server
Seguendo il consiglio di Davide, ho spostato la discussione relativa agli indici clustered di SQL Server 2005 su www.ugiss.org. E, ancora una volta, sempre il mitico Davide ha avuto la pazienza di rispondere a tutti i miei dubbi, aiutandomi a fare chiarezza sull'argomento. Chi fosse interessato può leggere la sua risposta facendo clic qui.
Technorati Tags: Certification, SQL Server
Qualche giorno fa sono stato contattato da una persona che mi chiedeva informazioni e chiarimenti riguardo le certificazioni Microsoft. Penso che la risposta che gli ho dato esprima bene il mio punto di vista sull'argomento, quindi la ripropongo qui nel mio blog:
Personalmente, da quando ho aggiunto l'elenco delle certificazioni conseguite nel mio curriculum vitae, le proposte di lavoro che ho ricevuto sono aumentate in maniera sensibile. Perché, in qualche modo, esse sono una dimostrazione provata e "tangibile" della conoscenza di una certa tecnologia, di un certo applicativo, ecc.; non a caso, in gran parte delle offerte di lavoro sulla piattaforma...
Al corso di Basi di Dati ho studiato che i record di una tabella con un indice clustered sono fisicamente ordinati sulla base del valore dell'indice stesso. A pagina 154 del Self-Paced Training Kit per l'esame 70-431, invece, si dice che l'ordinamento è solo logico, dal momento che mantere le pagine del database ordinate su disco richiederebbe un'attività troppo onerosa per il supporto di memorizzazione. Di diversa opinione è la domanda a pagina 160, che chiede quale tipo di indice ordina fisicamente i dati di una tabella e che ha come risposta giusta proprio gli indici clustered. Per cercare di fugare...
Per quanto io abbia promesso che mi sarei limitato con gli errata corrige dei testi Microsoft, ho appena trovato un errore nel Self-Paced Training Kit per l'esame 70-431 che merita di essere segnalato, data la sua gravità. A pagina 113 si dice che, quando si dichiara un tipo di dati char, varchar, nchar oppure nvarchar, il valore indicato tra parentesi rappresenta il numero di byte utilizzati: di conseguenza, nel caso dei tipi Unicode, il numero di caratteri effettivamente memorizzabili equivale alla metà del numero indicato, dato che in Unicode ogni carattere è rappresentato da due byte. In realtà non è così....
SQL Server 2005 consente di criptare/decriptare i campi di un record utilizzando chiavi simmetriche, asimmetriche e certificati digitali. Ad esempio, per creare una chiave simmetrica si deve usare la seguente istruzione:
CREATE SYMMETRIC KEY ChiaveSimmetrica WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'pippo';
A questo punto, è possibile utilizzare le funzioni EncryptByKey e DecryptByKey di SQL Server, rispettivamente, per criptare e decriptare i dati specificati. Perché la procedura sia corretta, tuttavia, è necessario aprire la chiave simmetrica prima di richiamare tali funzioni, altrimenti il loro risultato sarà sempre NULL. Detto in codice:
OPEN SYMMETRIC KEY ChiaveSimmetrica DECRYPTION BY PASSWORD = 'pippo'
INSERT INTO...
Da un paio di giorni ho cominciato a studiare per l'esame di certificazione 70-431, TS: Microsoft SQL Server 2005 – Implementation and Maintenance. Fino adesso ho utilizzato il DBMS solo come "strumento", imparando a lavorare con esso sul campo, ma a questo punto sento il bisogno di aumentare il mio know-how sull'argomento. Quindi, eccomi qua pronto a cominciare una nuova avventura
Technorati Tag: Certification
Ancora il quick-check a pagina 212 del Self-Paced Training Kit per l'esame 70-549...
La domanda 2 chiede quali modificatori possono essere utilizzati per specificare il tipo di ereditarietà supportato da una classe base. La risposta è completamente sbagliata. Innanzi tutto, si parla di NotOverridable/sealed e MustOverride/abstract. I modificatori C# sono corretti, mentre quelli che, secondo il testo, si possono applicare alla dichiarazione di una classe VB .NET, in realtà sono utilizzati per metodi e proprietà; nel caso di classi, invece, i modificatori corretti sono, rispettivamente, NotInheritable e MustInherit. Penso che l'errore sia dovuto al fatto che in C# si utilizzano sealed...
A pagina 332 del Self-Paced Training Kit per l'esame 70-549 si parla di Stress Testing, dicendo che esso può anche essere chiamato Load Testing. Tuttavia, a pagina 396, il Load Testing e lo Stress Testing sono presentati in maniera diversa. Il Load Testing, in realtà, dovrebbe corrispondere a quello che, a pagina 327, è stato identificato come Performance Testing. Technorati Tag: Certification
Ecco un errore del Self-Paced Training Kit per l'esame 70-549... Il quick-check a pagina 212 chiede, tra le altre cose, quali modificatori possono essere specificati su proprietà, metodi e classi per consentire l'overriding. Nella risposta sono correttamente elencati Overridable/virtual e Overrides/ovveride. Tuttavia, nel capitolo non si fa alcuna menzone di tali modificatori, e il quick-check dovrebbe essere un modo per verificare velocemente se gli argomenti trattati nella pagine precedenti sono stati compresi... Come si fa a comprendere qualcosa di cui non si parla?
Technorati Tag: Certification,.NET,Programming,C#,VB .NET
Come ho già avuto modo di dire, il Self-Paced Training Kit per l'esame 70-549 è fatto complessivamente abbastanza bene, soprattutto se paragonato agli altri libri Microsoft su cui ho studiato. Qualche imprecisione comunque c'è. Ad esempio, a pagina 261 si parla dei vantaggi/svantaggi dei servizi rispetto ai componenti. Più precisamente, si parla di Web service e Remoting. Nel testo, si dice che uno dei vantaggi derivanti dall'utilizzo dei Web service è il disaccoppiamento dall'implementazione effettiva del servizio: fino a che il relativo WDSL rimane lo stesso, il Web service può essere modificato senza che il client ne risenta. Da come...
Questo post cerca di fare un po' di chiarezza sugli esami da sostenere per aggiornare le certificazioni MCPD su .NET 2.0 alla versione 3.5. Chi ha già una certificazione MCPD Windows oppure Web deve sostenere un solo esame per il titolo corrispondente in .NET 3.5, mentre per l'aggiornamento della MCPD Enterprise Applications sono necessari due esami. Purtroppo, al momento Microsoft non è in grado di fornire un'indicazione su quando gli esami di upgrade saranno resi disponibili; attualmente, infatti, solo gli esami della serie Technology Specialist sono in procinto di essere rilasciati, mentre per gli altri è necessario attendere ancora. ...
Ora che il mio profilo sul sito Microsoft MCP è stato aggiornato, ho un nuovo logo da esibire:
Lo so, sono piccole cose, ma personalmente mi fanno sempre piacere
Technorati Tag: Certification
Il Self-Paced Training Kit per l'esame 70-549 è veramente ricco di verità universali... Dopo quella sulla richiesta di memoria delle applicazioni Microsoft, ne ho scovata un'altra relativa alla voglia che gli sviluppatori hanno di documentare il proprio codice:
Getting developers to document their code is just as easy as getting children to eat their vegetables when their dessert is sitting in front of them.
Credo proprio che scrivere la documentazione del codice sia la croce di ogni programmatore...
Technorati Tag: Certification
Questa mattina ho sostenuto l'esame di certificazione 70-549, Designing and Developing Enterprise Applications using .NET Framework, superandolo con un punteggio di 980 su 1000. Da qualche ora, quindi, sono ufficialmente un MCPD! Sono contento di aver raggiunto questo traguardo, che oltre ad essere professionale per me rappresenta anche il coronamento di una sfida personale. Adesso devo decidere quale sarà il mio prossimo obiettivo... Per il momento sto facendo un pensierino alle certificazioni su SQL Server, ma c'è ancora tempo per decidere Technorati tags: Certification
Come ho anticipato qualche tempo fa, in questo momento sto studiando per l'esame di certificazione 70-549, Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework, utilizzando il Self-Paced Training Kit di Microsoft. Ma questa volta, complice il fatto che il libro è molto più teorico rispetto ai precedenti, gli errori che ho scovato sono tutto sommato pochi, anzi, nel complesso il testo mi sembra ben fatto.
Ho però trovato una frase che ha il sentore di una verità universale, quindi la riporto qui perché tutti possano goderne:
Most Microsoft applications will continue to perform better as the amount of physical...
E' quanto viene annunciato in questo post, a cui rimando per maggiori dettagli. In sintesi, la decisione è dovuta al bassissimo numero di persone che scelgono questo linguaggio per sostenere gli esami di certificazione su .NET, confrontato con quello di chi utilizza, invece, C# oppure VB .NET (siamo nell'ordine di 3 esami in C++ contro diverse migliaia fatti negli altri linguaggi).
Technorati Tags: .NET, Certification
Anche Microsoft, naturalmente, ha pubblicato una lista degli errata corrige del suo Self-Paced Training Kit per l'esame 70-529: si tratta di un articolo della Knowledge Base disponibile qui. In questa pagina, tuttavia, sono riportati soltanto un paio di broken link e gli errori relativi ai "pasticci" con le immagini, che hanno didascalie sbagliate oppure non corrispondono agli argomenti trattati.
Che dire... La mia lista è molto più completa .
Technorati tag: Certification
La lista iniziava a diventare preoccupantemente lunga, quindi riassumo in un unico articolo tutti gli errata corrige e le imprecisioni del Self-Paced Training Kit per l'esame 70-529 che ancora non ho segnalato.
La spiegazione del routing con WSE, argomento della lezione 2 del capitolo 11, è molto lacunosa... Prima dice come si crea un router WSE andando ad estendere la classe HttpSoapRouter e aggiungendo un httpHandler per i file *.asmx, poi presenta la referral cache come oggetto obbligatorio per il routing. Sembra quasi che entrambe le cose siano necessarie. In realtà, il routing dei messaggi SOAP può essere...
In risposta alle pressanti richieste, l'iniziativa Second Shot for Free per gli esami di certificazione Microsft è stata estesa fino al 30 Giugno 2008. A questo indirizzo è disponibile una breve FAQ dedicata all'argomento. Technorati Tag: Certification
A grande richiesta (), ecco un errata corrige multi-errore... Naturalmente sempre relativo al Self-Paced Training Kit per l'esame 70-529:
A pagina 380 si dice che esistono 4 meccanismi per contrassegnare digitalmente un messaggio SOAP, tuttavia ne vengono elencati solo tre;
Nel primo esempio di codice a pagina 381, l'oggetto X509SecurityToken non viene istanziato prima del suo utilizzo;
A pagina 467, ancora una volta la didascalia non corrisponde all'immagine.
E gli errori del libro continuano... Nei prossimi giorni raccoglierò quelli che ancora mancano e li pubblicherò tutti insieme.
Technorati Tag: Certification
L'esercizio proposto da pagina 370 del Self-Paced Training Kit per l'esame 70-529 non si riferisce agli argomenti trattati nella lezione. In quest'ultima, infatti, si parla dell'attributo soapExstenionTypes, mentre l'esercizio è relativo alla creazione di un Web service che sfrutta WSE 3.0, attraverso l'estensione della classe WebServicesClientProtocol.
OK, forse questo non è un errore, ma a giudicare dal resto del libro, è più facile che lo sia piuttosto che si tratti di una cosa voluta
Technorati Tag: Certification
Sia a pagina 366 sia a pagina 364 del Self-Paced Training Kit per l'esame 70-529, tutte le didascalie non corrispondono alle immagini effettivamente mostrate nel libro.
Technorati Tag: Certification
Devo iniziare a pubblicare questi errata corrige più spesso, altrimenti rischio di non finire mai più ...
La risposta segnalata come corretta alla domanda 3 di pagina 364 nel Self-Paced Training Kit per l'esame 70-529 è quanto di più sbagliato si possa immaginare... Tralasciando i dettagli specifici, la risposta dice che, convertendo un tipo T verso una superclasse C, è comunque possibile accedere ai metodi di T, ma dopo la conversione essi restituiscono sempre il valore null
Mi rifiuto di esprimere ogni commento...
Technorati Tag: Certification
A pagina 357 del Self-Paced Training Kit per l'esame 70-529, le didascalie non corrispondono alle immagini.
Technorati Tag: Certification
La seconda domanda a pagina 335 del Self-Paced Training Kit per l'esame 70-529 dovrebbe essere posta nel capitolo precedente. Essa, infatti, chiede quali sono i benefici derivanti dall'uso dell'attributo OneWay, di cui si parla, appunto, nel capitolo precedente.
Technorati Tag: Certification
A pagina 307 del Self-Paced Training Kit per l'esame 70-529 si dice che, nel codice di esempio, rispetto alla versione mostrata in precedenza, è stata aggiunto l'import del namespace System.Runtime.Remoting.Messaging. In realtà, non c'è traccia di questa dichiarazione... Con il risultato che il codice non compila perché l'attributo OneWay è definito proprio in tale namespace.
Technorati Tags: Certification, .NET, Programming
A pagina 278 del Self-Paced Training Kit per l'esame 70-529 viene mostrato come annullare l'esecuzione asincrona di un WebMethod, ovvero come utilizzare il metodo HttpWebClientProtocol.CancelAsync. Tuttavia, manco a dirlo, il codice riportato è sbagliato (sia la versione VB .NET, sia quella C#): manca l'istruzione che invoca il metodo remoto!
Technorati Tag: Certification
A pagina 270 del Self-Paced Training Kit per l'esame 70-529 c'è un altro errore, probabilmente dovuto al copia/incolla. Dopo il riquadro Dissecting a Web reference, infatti, viene ripetuta una frase identica a quella che conclude il paragrafo precedente.
Technorati Tag: Certification
Come ho già accennato più volte, la trattazione del Remoting nel Self-Paced Training Kit per l'esame 70-529 è ben lungi dall'essere completa e, soprattutto, corretta... Ad esempio, nella lezione 3 del capitolo 5, "How To Access Remote Method", non dice da nessuna parte che il metodo Activator.GetObject funziona solo con oggetti well-known (ovvero Server-Activated). Infatti, provando ad utilizzarlo con oggetti Client-Activated, si ottiene una RemotingException accompagnata dal messaggio "Requested Service not found". In questo caso, si deve invece usare Activator.CreateInstance, come mostrato qui: http://msdn2.microsoft.com/en-us/library/0x5kd2ah.aspx.
Technorati Tags: .NET, Programming, Certification
Gli esempi di codice a pagina 144 del Self-Paced Training Kit per l'esame 70-529 sono sbagliati. In questa pagina, infatti, è mostrato l'utilizzo degli operatori GetType in VB .NET e typeof in C# come se essi accettassero, come secondo parametro, un'espressione nella forma Version=1.0.0.0, con cui si può specificare la versione dell'oggetto di cui recuperare il tipo, nel caso in cui ne siano disponibili più di una. In realtà, come si può leggere su MSDN, entrambi gli operatori accettano un solo argomento che raprresenta il tipo con cui si vuole lavorare.
Technorati Tags: Certification, .NET, Programming
Dopo la pausa natalizia, torna l'appuntamento con gli errori e le imprecisioni dei Self-Paced Training Kit di Microsoft. In questo post parliamo del capitolo 6 del Training Kit per l'esame 70-529, intitolato Debugging and Deploying Remote Applications. In esso, a proposito dello sviluppo di client che utilizzando il Remoting, si suggerisce di effettuare il deploy di interfacce, per non dover distribuire anche il codice dell'oggetto remoto al client. Nonostante questa raccomandazione, che viene ripetuta più volte, tutti gli esempi mostrati nel corso del capitolo utilizzano la parola chiave new per creare gli oggetti remoti, quindi presuppongono che il client disponga...
Join the Microsoft Certification team to find out what is new, and what you need to know, for your next step in developer certification. In this meeting, we will introduce our plans for Visual Studio 2008 training and certification, review the Visual Studio 2005 certifications, and have plenty of time to answer questions about your individual path or scenario. In questa pagina sono riportati i link per registrarsi all'evento, che si svolgerà Mercoledì 23 gennaio in due sessioni, la prima alle 16.30 e la seconda alle 2.00 di notte. Technorati tags: Certification
A questo indirizzo sono disponibili sono disponibili 3 corsi E-Learning gratutiti dedicati a SQL Server 2008: Clinic 6188: What's New in Microsoft SQL Server 2008 for Enterprise Data Platform Clinic 6189: What's New in Microsoft SQL Server 2008 for Business Intelligence Clinic 6190: What's New in Microsoft SQL Server 2008 for Database Technorati tags: SQL Server, Certification
Come avevo anticipato, la parta relativa al remoting nel Self-Paced Training Kit per l'esame 70-529 è piena di errori e imprecisioni. A pagina 204 è presentato un esempio di configurazione di un client, tramite file di configurazione, per l'utilizzo di un oggetto remoting di tipo Client-Activated. La sintassi mostrata, tuttavia, è sbagliata. Il tag <client>, infatti, deve contenere anche l'url da cui prelevare l'oggetto, come chiaramente spiegato qui: The <client> element must have a url attribute specified if there is an <activated> element specified, or an exception will be thrown.
Technorati tags: Certification, .NET, Programming
Alle pagine 182-183 del Self-Paced Training Kit per l'esame 70-529, il codice presentato per registrare un oggetto Client-Activated è sbagliato. In questo caso, infatti, si dice che il secondo parametro del metodo RemotingConfiguration.RegisterActivatedClientType comprende anche il nome dell'oggetto remoto (Person.rem). Tuttavia, nel caso di oggetti Client-Activated, si deve specificare solo l'URL, come mostrato su MSDN:
ChannelServices.RegisterChannel(new TcpChannel());
RemotingConfiguration.RegisterActivatedClientType(typeof(HelloServiceClass), "tcp://localhost:8082");
Come avrò modo di mostrare, purtroppo errori di questo tipo, legati al remoting, sono molto frequenti
Technorati tag: Certification
Negli ultimi tempi sono stato contattato da diverse persone che, leggendo con interesse i miei post sulle certificazioni Microsoft, hanno deciso di rivolgersi a me per consigli e suggerimenti su questa tematica. Non posso nascondere che la cosa mi fa molto piacere, sono davvero felice di poter usare la mia esperienza per aiutare gli altri
Technorati tags: Certification
Il capitolo 5 del Self-Paced Training Kit per l'esame 70-529 spiega come creare il client di un'applicazione che sfrutta il remoting. A pagina 174 si dice che, per utilizzare un canale TCP nel client, si deve istanziare un oggetto di tipo TcpServerChannel; analogamente, nella pagina successiva di dice che la classe IpcServerChannel serve per creare un canale IPC. In realtà, gli oggetti da utilizzare sono, rispettivamente, TcpClientChannel e IpcClientChannel. Per fortuna (almeno questa volta...), gli esempi di codice sono corretti. Technorati tags: Certification
Altro errore di codice nel Self-Paced Training Kit per l'esame 70-529. Omai sono sicuro che si tratti di discriminazione... In questo post avevo segnalato gli errori in in due listati C#, mentre il corrispondente in VB .NET era corretto. E la stessa cosa accede a pagina 95; nel codice C# viene fatto questo controllo:
if (Session["UserID"] != null)
Tuttavia, nel corpo dell'if si aggiunge alla Session un oggetto con chiave UserID , invece si recuperarlo. Un'occhiata alla versione VB .NET chiarisce ogni dubbio: prima di aggiungere l'oggetto alla sessione, bisogna verificare che Session["UserID"] sia uguale a null, e non diverso
Ma cosa vi ha fatto...
Gli esempi di codice C# alle pagine 61-62 del Selft-Paced Training Kit per l'esame 70-529 sono sbagliati. In particolare, a pagina 61 in alto la riga di codice
MyWebService wsHeader = new MyWebService.VendorHeader();
Dovrebbe essere
MyWebService.VendorHeader wsHeader = new MyWebService.VendorHeader();
Poi, a pagina 62, nel secondo esempio di codice C# mancano le parentesi quadre nella definizione della variabile unknownHeader, dal momento che si tratta di un array di oggetti di tipo SoapUnknownHeader.
E' interessante notare che, in entrambi i casi, il corrispondente esempio in VB .NET è corretto. Che si tratti di discriminazione?
Technorati Tags: Certification, Programming, .NET, CS
In attesa del rilascio della versione definitiva di SQL Server 2008, sono in corso di definizione le nuove certificazioni ad esso relative. In particolare, come si legge in questo post, a breve sono previsti i due nuovi esami 70-432 e 70-448 , della serie Technology Specialist, che saranno l'equivalente degli attuali 70-431 e 70-445 relativi a SQL Server 2005.
Technorati Tags: Certification, SQL Server
Questo non è propriamente un errata corrige, quanto piuttosto una spiegazione secondo me non ottimale. A pagina 137 del Self-Paced Training Kit per l'esame 70-529 si dice di utilizzare la scheda Browse della finestra di dialogo Add Reference per aggiungere il riferimento di una class library al progetto (punto 9). Sebbene la spiegazione sia giusta, dal momento che il riferimento in questione è relativo ad una class library che fa parte della stessa soluzione, è più corretto utilizzare la scheda Projects, in modo da inserire un riferimento che punta al progetto stesso: così facendo, eventuali modifiche alla class library saranno...
Il mio profilo sul sito Microsoft MCP è stato aggiornato con la trascrizione dell'ultimo esame, quindi adesso posso ufficialmente inserire la nuova certificazione nel mio blog: E tra qualche giorno dovrebbe arrivarmi il Self-Paced Training Kit per l'esame 70-549 Technorati Tag: Certification
A pagina 50 e seguenti del Self-Paced Training Kit per l'esame 70-529 si parla di come utilizzare le classi del namespace System.Xml.Serialization per modificare il modo in cui un oggetto viene serializzato in formato XML. Viene spiegato, ad esempio, come cambiare il nome di un campo. Per esemplificare i concetti si utilizza la seguente classe: public class Vendor
{
public int VendorID;
public string AccountNumber;
public string Name;
}
Nel testo vengono mostrati i passaggi necessari per fare in modo che il campo AccountNumber di un oggetto Vendor serializzato in XML venga automaticamente...
Alle pagine 96-98 del Self-Paced Training Kit per l'esame 70-529 si parla dei Cookie e della classe CookieContainer per gestire lo stato di un Web service. Ma questa parte del libro in pratica non spiega assolutamente niente del loro effettivo utilizzo... I dettagli su come funzionano sono contenuti in questo articolo della Knowledge Base: http://support.microsoft.com/kb/816637/en-us.
Technorati Tag: Certification, Programming, ASP .NET
Nonostante abbia dato l'annuncio ufficialmente solo pochi giorni fa, in realtà stavo studiando già da tempo: questa mattina ho dato e superato l'esame 70-529, Distributed Application Development. Ho così completato la triade degli esame della serie Technology Specialist per Visual Studio 2005. Il prossimo obiettivo è l'esame 70-549, Designing and Developing Enterprise Applications. Nel frattempo, continua la saga degli errata corrige dedicati all'esame 70-529 Technorati tags: Certification
Ultimamente Microsoft sta "coccolando" i suoi MCP ... Per tutti coloro che hanno sostenuto almeno un esame di certificazione sono in arrivo nuovi benefit, a cominciare dall'accesso ad una nuova e più ricca Knowledge Base:
MCPs now have access to the extensive partner-level Microsoft Product Support Knowledge Base, previously accessible only to Microsoft partners and Most Valuable Professionals (MVPs), including exclusive technical information not available to the general public. This deeper level of Knowledge Base access provides MCPs with an inside track on important technical issues that will make them more valuable to their peers and employers.
Per conoscere tutti i nuovi benefici che...
L'esempio di codice in alto a pagina 20 del Self-Paced Training Kit per l'esame 70-529 è sbagliato. In questo contesto, infatti, viene mostrato l'utilizzo della proprietà OneWay dell'attributo SoapDocumentMethodAttribute. Il metodo riportato, tuttavia, è una funzione che restituisce una stringa: nel caso in cui l'attributo OneWay sia impostato su true (come nell'esempio), il metodo corrispondente non deve restituire alcun valore, altrimenti si ottiene un errore a tempo di esecuzione (cosa assolutamente corretta, dal momento che con OneWay a true si dice al Web service di non spedire indietro alcuna risposta al client).
Technorati Tags: Certification, Programming, .NET, Web Services
Cominciamo bene... A pagina 39 del Self-Paced Training Kit per l'esame 70-529 si dice che la descrizione di un metodo di un Web Service deriva dalla proprietà Description dell'attributo WebMethod, come è stato impostato nella Lezione 1 del Capitolo 1; nella pagina successiva, inoltre, la didascalia dell'immagine dice che quello mostrato è l'output dell'esercizio realizzato nel Laboratorio 1 del Capitolo 1. In realtà, la lezione a cui ci si riferisce nel testo è la seconda e il Laboratorio in questione non è il primo, ma il secondo. Lo stesso errore si ripresenta nel seguito, in cui si parla di un...
Come anticipato ieri, non ho rispettato il proposito di aspettare il 2008 per la prossima certificazione. Già da un po' di giorni sto studiando per l'esame 70-529, Distributed Application Development. E, come da migliore tradizione, anche questa volta sto preparando la lista degli errata corrige che riscontro nella lettura del Selft-Paced Training Kit di Microsoft. Lista che, ahimè, pure in questo caso è molto lunga
Technorati Tag: Certification
Tra i numerosi argomenti trattati nel capitolo 4 del Self-Paced Training Kit per l'esame 70-528, c'è anche la validazione dei file XML (a partire da pagina 377). In quest contensto viene tralasciata una cosa molto importante, ovvero che per validare un documento XML si deve sottoscrivere l'evento XmlReaderSettings.ValidationEventHandler, con cui si possono gestire gli errori di validazione.
... E con questo post termina la lunga serie dei post dedicati all'esame di certificazione 70-528! Vi ricordate che avevo detto che non avrei preparato altri esami prima dell'anno nuvo? Ebbene... Mentivo (Continua...)
Technorati Tag: Certification
Grazie all'esame 70-528 ho avuto la possibilità di conoscere il controllo MultiView, che devo dire è estramamente utile, a fronte della sua semplicità di utilizzo. Nella sua implementazione ci sono però delle cose che non mi convincono. Innanzi tutto, l'oggetto sembra un normale contenitore di altri controlli, tuttavia in esso si possono aggiungere solo oggetti di tipo View, altrimenti si ottiene un errore. Era meglio che l'oggetto MultiView disponesse di una proprietà-collezione Views, con cui aggiungere le varie viste. In realtà, esso espone effettivamente una proprietà Views, non disponibile a tempo di progettazione, che consente di aggiungere oggetti di tipo Control. Tuttavia, se si aggiunge un...
Una domanda dei quiz di autovalutazione dell'esame 70-528 chiede quali sono vere tra le alternative proposte relative alla funzionalità Publish Web Site. Una delle opzioni è "Dopo la pubblicazione dell'applicazione, è possibile aggiornarla modificando i file direttamente sul Web Server". Questa opzione non è segnalata come valida; tuttavia se, nella finestra di dialogo Publish Web Site, si attiva la casella Allow this precompiled site to be updateable, è possibile modificare i sorgenti del sito dopo la pubblicazione: al primo accesso alle pagine dopo i cambiamenti, il sito sarà ricompilato per rendere subito effettive le nuove impostazioni.
Technorati tag: Certification
Una domanda dei quiz di autovalutazione dell'esame 70-528 chiede in quale locazione NON si può specificare un device filter per un'applicazione web mobile. La risposta segnalata come corretta dice "nel web.config"; tuttavia, come si legge chiaramente a pagina 738, in questo file viene scritta una sezione <Device Filters> quando si imposta la proprietà AppliedDeviceFilters di un qualsiasi controllo mobile.
Technorati tag: Certification
Ecco che anche per l'esame 70-528 comincia la serie degli Errata corrige "Special", ovvero gli errori presenti nei quiz del CD di autovalutazione...
Una domanda chiede come definire uno skin che non viene applicato automaticamente a tutti gli elementi di un certo tipo (ad esempio, a tutti i pulsanti). La risposta corretta è quella che definisce l'elemento utilizzando l'attributo SkinID, come è anche indicato nella spiegazione della risposta. Tuttavia, la risposta segnalata giusta è quella che non prevede l'uso dell'attributo SkinID.
Technorati tag: Certification
Ormai gli errori dovuti al Copia/Incolla non si contano più... A pagina 564 del Self-Paced Training Kit per l'esame 70-528 la descrizione del metodo Response.WriteFile è sbagliata e risulta la stessa del metodo Response.Redirect, descritto poche righe sopra.
Technorati tag: Certification
Nella terza lezione del capitolo 13 del Self-Paced Training Kit per l'esame 70-528 si parla della cache. A pagina 812 viene fatto un esempio che mostra come mantenere in cache una pagina ASP .NET per 15 minuti:
<%@ OutputCache Duration="15" VaryByParam="none" %>
In realtà, nel parametro Duration bisogna specificare il numero di secondi per i quali la cache è da considerarsi valida, non i minuti. Il codice corretto è, dunque:
<%@ OutputCache Duration="900" VaryByParam="none" %>
E' da notare che, in altre pagine del capitolo, si dice correttamente che Duration vuole un valore in secondi.
Technorati Tags: Certification, ASP .NET
La domanda a pagina 820 del Self-Paced Training Kit dell'esame 70-528 è sbagliata. Viene chiesto quale strumento può essere utilizzato per creare un performance counter. Tuttavia, le alternative di risposta sembrano non entrarci nulla... Infatti, leggendo le soluzioni in fondo al libro, si capisce che, invece del performance counter, la domanda sta chiedendo quando un oggetto in cache può essere invalidato.
Technorati Tag: Certification
Come promesso, ecco che torna una delle sezioni più amate del mio blog (non è vero, ma mi piaceva dirlo )
La risposta alla domanda 1 del Quick Check a pagina 809 del Self-Paced Training Kit per l'esame 70-528 è sbagliata: chiede come si fa ad invalidare automaticamente un oggetto della cache dopo un certo periodo di tempo, tuttavia la risposta dice di specificare una dipendenza per l'oggetto in cache. Questo non è necessario: per fare in modo che l'oggetto sia automaticamente eliminato, basta indicare un valore nei parametri AbsoluteExpiration o SlidingExpiration dei metodi Cache.Add oppure Cache.Insert.
Technorati Tag: Certification
Anche se è da un bel po' che non ne parlo, non ho ancora finito di presentare tutti gli errata corrige del Self-Paced Training Kit dell'esame 70-528. Rimanete sintonizzati su questo blog, perché presto tornerò con nuovi errori
Technorati Tags: Certification
A pagina 704 del Self-Paced Training Kit per l'esame 70-528 si dice che si può cambiare il tipo di protezione utilizzato dal sistema di autenticazione di ASP .NET settando l'attributo protection del tag <authentication>, come mostrato anche nell'esempio di codice seguente. In realtà, questo attributo fa parte del tag <forms>; tutti gli esempi successivi, per fortuna, sono corretti. Technorati tags: Certification, Programming, ASP .NET
Da qualche giorno, e fino al 14 Novembre, è possibile registrarsi per partecipare alla versione beta dell'esame di certificazione 71-544: Microsoft® Virtual Earth™ 6.0, Developing. Tutti i dettagli sull'annuncio sono contenuti in questo post. Technorati Tag: Certification
A pagina 633 del Self-Paced Training Kit dell'esame 70-528 si dice di definire un metodo Page_Init e GenerateModeList, dopodiché viene riportato il codice dell'evento Init, che registra un gestore per l'evento InitComplete chiamandolo proprio InitComplete. Tuttavia, nel seguito dell'esercizio si dice che, con questa dichiarazione, quando si verifica l'evento InitComplete viene richiamato il metodo GenerateModeList. Non è chiaramente così; perché questo avvenga, il codice dell'evento Page_Init deve essere così riscritto: protected void Page_Init(object sender, EventArgs e)
{
Page.InitComplete += new EventHandler(GenerateModeList);
}
Technorati tags: Certification, Programming, ASP .NET
We’re launching some very cool new benefits for Microsoft Certified Professionals community worldwide. These benefits are designed to help the MCP community get the recognition, respect, and rewards that all MCPs deserve for being Microsoft Certified Professionals. This is part of what we internally at Microsoft had code named MCP 2008. Today we’ve launched our new Phase 1 Benefits. MCP 2008 Phase 1 includes the following benefits below for all MCPs. As long as you have MCP ID you can login today with your windows login account at https://mcp.microsoft.com/mcp and begin accessing these benefits right away.
Sul blog dedicato agli MCP,...
Come era già successo per l'esame 70-526, non sono riuscito a segnalare tutti gli errori del Self-Paced Training Kit dell'esame 70-528 prima di sostenere l'esame. Mi trovo così di nuovo nella situazione di proseguire la saga degli errata corrige, ancora per qualche puntata. A pagina 593 si dice che, per creare pagine master annidate, la pagina figlia deve contenere un attributo "master" all'interno del tag <%@Master>. In realtà, l'attributo si deve chiamare MasterPageFile, come per le pagine di contenuto. Lo stesso errore è presente in una domanda contenuta nel CD di autovalutazione. Technorati Tag: Certification , ASP .NET...
Questa mattina ho superato l'esame 70-528, quindi ho ottenuto la certificazione MCTS nell'area Web Applications. Ora credo veramente che mi prenderò un periodo di pausa... Appuntamento all'anno prossimo per nuove certificazioni Technorati Tags: Certification
Il copia/incolla non ha risparmiato nemmeno il Self-Paced Training Kit dell'esame 70-528. A pagina 529 viene presentato un esercizio che mostra come utilizzare l'oggetto Session. Nel punto 3, però, si dice di effettuare il Lock dell'oggetto Application prima di aggiornare un valore in esso contenuto. Si tratta ovviamente di un errore, dovuto ad un copia/incolla del punto 6 dell'esercizio precedente. Più avanti, inoltre, si parla di HiddenField.Value; anche questo è un errore di copia: gli hidden field erano stati presentati nella lezione precedente, a proposito del mantenimento dello stato lato client. Technorati Tags: Certification, ASP .NET
A pagina 469 del Self-Paced Training Kit dell'esame 70-528 si dice che, per eseguire validazione lato client utilizzando un CustomValidator, è necessario impostare la proprietà ClientFunctionName del validatore sul nome della funzione JavaScript da eseguire. In realtà, la proprietà in questione si chiama ClientValidationFunction. Technorati Tags: Certification, Programming, ASP .NET
A pagina 355 del Self-Paced Training Kit per l'esame 70-528 si dice che nel seguito della lezione verranno trattate le funzionalità offerte dall'oggeto XmlDataDocument per l'accesso ai dati contenuti in un DataSet. In realtà, in tutto il capitolo di questo oggetto non si parla assolutamente... Technorati tags: Certification
Una domanda a pagina 345 del Self-Paced Training Kit per l'esame 70-528 chiede cosa si deve aggiungere alla stringa di connessione per consentire l'accesso asincrono ad una base di dati. La risposta corretta dice: "Asynchronous=true". In realtà, il parametro corretto è "Asynchronous Processing=True". Technorati Tags: Certification
A pagina 233 si parla dei valori dell'enumerazione LoadOption che viene utilizzata con il metodo DataRow.Load. I nomi dei possibili valori sono completamente sbagliati. I valori corretti, presi da MSDN, sono i seguenti: 1. OverwriteChanges: The incoming values for this row will be written to both the current value and the original value versions of the data for each column (sul libro è OverwriteRow). 2. PreserveChanges: The incoming values for this row will be written to the original value version of each column. The current version of the data in each column will not be changed (sul libro è...
L'argomento "accesso ai dati" è uno dei più colpiti dagli errata corrige anche nel Self-Paced Training Kit dell'esame 70-528: a pagina 233 si dice che il metodo DataRow.Load accetta come parametro un array di oggetti che deve corrispondere in numero e tipo di dati alle colonne del DataTable corrispondente. In realtà, questo metodo prende in input un oggetto che implementa l'interfaccia IDataReader. è il metodo LoadDataRow a cui si può passare un array di oggetti. Technorati tags: Certification, Programming, .NET
Altro errore... A pagina 160 del Self-Paced Training Kit dell'esame 70-528 si dice che, se in DataBoundControl si impostano sia le proprietà DataSource sia DataSourceID, quest'ultima ha la precedenza. In realtà, se si impostano entrambe, quando si arriva ad eseguie il metodo DataBind sull'oggetto si ottiene una InvalidOperationException che dice di rimuovere la definizione di una delle due proprietà. Technorati tags: Certification, Programming, ASP .NET
Era solo questione di tempo, prima di scoprire gli errori del Self-Paced Trainig Kit dell'esame 70-528... A pagina 105 si parla del controllo Image. In questa occasione si dice che la proprietà ImageUrl, contenente l'indirizzo dell'immagine da visualizzare, viene tradotta nell'attributo href del tag HTML img. In realtà non è così: la proprietà ImageUrl viene mappata sull'attributo src. Technorati Tags: Certification
Quando vengono presentati i Web Controls nel Self-Paced Training Kit dell'esame 70-528, si parla dei rischi del Cross Site Scripting. Per fare una prova, ho inserito in una TextBox il seguente contenuto: <script>altert("Ciao");</script>
Effettuando il post della pagina (attraverso la pressione di un pulsante), ho ottenuto il seguente messaggio di errore di ASP .NET:
A potentially dangerous Request.Form value was detected from the client (TextBox1="<script>altert("Ciao...").Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack....
A pagina 84 del Self-Paced Training Kit dell'esame 70-528 di parla dell'oggetto Button (System.Web.UI.WebControls.Button). In particolare, si dice che un pulsante può essere un tradizionale submit button (che è l'impostazione di default), oppure un pulsante di comando. Per creare un Button di quest'ultimo tipo, è necessario impostare le sue proprietà CommandName e CommandArgument. Tuttavia, nel testo manca un passaggio fondamentale: dopo aver settato questa proprietà, si deve gestire l'evento Command e usare le proprietà dell'oggetto CommandEventArgs per sapere qual è il comando da eseguire ed, eventualmente, gli argomenti ad esso associati. Ad esempio, supponiamo che nella pagina ASPX siano stati...
Da qualche giorno ho cominciato a studiare per l'esame 70-528, in modo da ottenere la certificazione MCTS anche nell'area Web Applications. Rimanendo coerente con quanto fatto finora, anche stavolta sto utilizzando il Self-Paced Training Kit di Microsoft. Dalla prima impressione mi sembra fatto abbastanza bene, sicuramente meglio di quello relativo all'esame 70-526... Technorati Tags: Certification
Gli esami di cerificazione Microsft sono numerosi... Per fortuna in questa pagina è disponibile la loro lista completa, divisa per numero, nome e tipo. Technorati Tags: Certification
Stento a crederci io stesso... Eppure questo è l'ultimo errata corrige dell'esame 70-526! O meglio, è l'ultimo errore che ho trovato io... Una domanda dei quiz chiede quale metodo si deve ridefinire, in un controllo che estende Button, per visualizzarlo con i bordi arrotondati. La risposta corretta dice che si deve ridefinire il metodo DrawToBitmap. In realtà, non bisogna effettuare l'override di questo metodo, quanto piuttosto richiamarlo all'interno del metodo OnPaint. E ora... Su quale altro esame mi accanirò? Restate sintonizzati su questo blog e lo scoprirete presto! Technorati Tags: Certification
Secondo quanto riportato in questa pagina, attualmente i Microsoft Certified Professionals nel mondo sono 2.152.049 (dato aggiornato all'11 settembre 2007). Allo stesso indirizzo si può trovare anche il numero di MCP per ogni certificazione. Technorati Tags: Certification
Ormai sembra una barzelletta, ma per fortuna gli errori sono quasi finiti... Una domanda del quiz di autovalutazione dell'esame 70-526 spiega che si vuole visualizzare una ProgressBar con cui informare l'utente sull'avanzamento di una certa operazione in backgruond. La domanda chiede qual è il modo migliore per realizzare questa funzionalità. La risposta segnalata come valida dice di creare all'interno di un Form un Timer che scatta ogni secondo; nel gestore dell'evento Tick si deve richiamare il metodo BackgruondWorker.ProgressChanged ed esaminare il valore di ritorno per aggiornare la barra. In questo risposta ci sono almeno due errori. Il primo è che...
Una domanda del Trainig Kit dell'esame 70-526 chiede cosa succede quando si invoca il metodo BackgroundWorker.CancelAsync. La risposta segnalata come corretta è quella secondo cui viene generato l'evento RunWorkerCompleted. In realtà non è così: il metodo CancelAsync imposta la proprietà CancellationPending del BackgroundWorker su true. Tale proprietà deve essere verificata nel gestore dell'evento DoWork; nel caso in cui valga true, si devono eseguire i passaggi necessari all'interruzione del task, quindi si vede impostare la proprietà DoWorkEventArgs.Cancel su true: solo a questo punto viene generato l'evento RunWorkerCompleted. Technorati tags: Certification, .NET
Come ci aveva segnalato Lorenzo, da ieri è possibile partecipare all'offerta Microsoft Second Chance di Prometric. In questo post sono contenute le istruzioni su come registrarsi per ottenere un vocher number che permette di avere la "seconda possibilità". L'offerta è valida per un periodo di tempo limitato, quindi se volete approfittarne questo è il momento giusto! Technorati tags: Certification
Ormai inizio a perdere il conto degli errori... Una domanda dei quiz di prova dell'esame 70-526 chiede quali sono i permessi di un'applicazione ClickOnce installata da CD-ROM. La risposta corretta è FullTrust, come viene chiarito anche nella spiegazione del quesito. Questa opzione, tuttavia, non figura tra le alternative disponibili Technorati Tags: Certification
Una domanda dei quiz di prova dell'esame 70-526 dice che la proprietà InstallerClass di una CustomAction deve valere true solo se essa è contenuta in una classe che deriva da ProjectInstaller. In realtà, deve essere uguale a true quando la classe deriva da Installer.
Technorati Tags: Certification, .NET
Altro giorno, altro errore... Questo è un errata corrige "tradizionale", ma l'ho notato solo dopo aver trovato un paio di domande nei quiz di prova dell'esame 70-526. Più precisamente, il Self-Paced Training Kit dice che le applicazioni ClickOnce eseguite da Internet o Intranet hanno sempre il permesso DefaultPrinting per stampare. In realtà non è così: le domande dei quiz, infatti, spiegano correttamente che le applicazioni eseguite dalla rete locale hanno il permesso DefaultPrinting, mentre quelle eseguite da Internet hanno solo il permesso SafePrinting. Technorati Tags: Certification, .NET
Pensavate che gli errori dei quiz dell'esame 70-526 fossero finiti, eh? E invece no... Purtroppo ne devo segnalare ancora diversi . In questo post mi occupo della domanda che chiede quale tipo di connessione ai dati abilita il pooling di default. La risposta corretta è SqlConnection, tuttavia anche gli altri tipi di connessione basati sui provider di .NET (OleDbConnection, OdbcConnection e OracleConnection) per impostazione predefinita effettuato il pooling delle connesioni. Technorati Tags: Certification
Finalmente il mio profilo sul sito riservato agli MCP è stato aggiornato, così ho potuto generare il logo che attesta l'ottenimento della mia prima certificazione:
Spero di poterlo presto arricchire con la certificazione nell'area Web Applications ...
Technorati Tags: Certification
A quanto pare sul BackgroundWorker ci sono più domande sbagliate che corrette. Una di esse chiede come si può controllare se si è verificato un errore nell'esecuzione del metodo in background. La seguente soluzione è segnalata come corretta (il codice è inserito nel gestore dell'evento RunWorkerCompleted): if (e.Error == null)
MessageBox.Show("Error");
Ma non è così. La proprietà Error viene impostata sull'eventuale eccezione che si verifica durante l'esecuzione del metodo in background, quindi per sapere se c'è stato un errore si deve controllare se essa è diversa da null:
if (e.Error != null)
MessageBox.Show("Error");
C'è un altra domanda relativa al...
Purtroppo gli errori dei quiz sono così numerosi che non sono riuscito a segnalarli tutti prima di dare l'esame . Questa volta il problema riguarda ClickOnce. Una domanda (a risposta multipla) chiede in che modo ClickOnce determina quali file scaricare per aggiornare il programma. Le opzioni segnalate come corrette sono: ClickOnce utilizza il date stamp dei file per sapere quali file sono stati aggiornati; ClickOnce scarica sempre tutti i file. Mi sembra un'incongruenza bella e buona... ClickOnce scarica tutti i file, o solo quelli più recenti? Technorati Tags: Certification Update 07/09/2007 10.35. L'amico Alessandro Scardova ha risposto...
Questa mattina ho superato l'esame 70-526 con il punteggio di 980 su 1000, quindi sono diventato Microsoft Certified Technolgy Specialist! Technorati Tags: Certification
Una domanda chiede come si elimina una colonna da un DataGridView. La soluzione dice che uno dei metodi validi è utilizzare il metodo DataGridView.Columns.Remove passandogli come argomento (in formato stringa) il nome dell'oggetto DataGridViewColumn da eliminare, ad esempio "dataGridViewTextBoxColumn1": in realtà, questa strada è errata: quando si passa una stringa al metodo Remove, essa deve corrispondere al nome della colonna (ovvero il valore dell'header). Quest'ultima opzione, anch'essa presente tra le alternative di risposta, è segnalata come errata... E la lista degli errori cresce ogni giorno di più Technorati Tags: Certification
Altro errore nei quiz dell'esame 70-526. Una domanda chiede quali tipi di file si possono utilizzare per assegnare l'icona ad un collegamento. E' una domanda a risposta multipla, in cui le opzioni corrette sono .EXE e .DLL: l'estensione .ICO è segnalata come errata, tuttavia nella spiegazione si dice chiaramente che .ICO è un'estensione valida (dunque in questo caso almeno la spiegazione è corretta). Technorati Tags: Certification
Purtroppo anche i quiz che accompagnano il Self-Paced Traning Kit dell'esame 70-526 contengono numerosi errori. Inizia così la saga degli errata corrige "Special"... Il primo errore riguarda una domanda che chiede quale provider utilizzare per connettersi ad un database di SQL Server 6. La risposta segnalata come corretta indica ODBC; in realtà (così come viene spiegato anche nel libro), si deve utilizzare l'oggetto OleDbConnection specificando il provider SQLOLEDB: Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;
User Id=myUsername;Password=myPassword;
Technorati Tags: Certification, .NET, Programming
L'ho scoperto per caso: se nella finestra delle Proprietà si visualizza la lista degli eventi supportati dal controllo RichTextBox, in essa non compaiono né DragEnter né DragDrop. Sembrerebbe quindi che questo oggetti non supporti il Drag&Drop. In realtà, questi eventi sono definiti anche per il RichTextBox, ma per qualche strana ragione non sono visualizzati in fase di progettazione, dunque possono essere impostati solo a runtime.
Technorati tags: Certification, .NET, Programming
Gli oggetti inseriti in un progetto di setup (output, chiavi di registro, custom action, ecc.) dispongono di una proprietà di nome Transitive. Essa, tuttavia, ha un significato completamente diverso da quello che il suo nome lascerebbe intuire. Come si legge in MSDN, infatti: Determines whether the installer will reevaluate the Condition property for a selected folder, file, registry key, or registry value when installing or reinstalling on a target computer. In altre parole, se la proprietà Transitive per un certo oggetto vale true, la relativa proprietà Condition sarà rivalutata ad ogni installazione o reinstallazione sul medesimo computer. In caso...
In realtà, più che una errata corrige questa è una imprecisione... Nel capitolo 15, dedicato al Deployment, si dice che utilizzando la variabile VersionNT nella proprietà Condition, disponibile per i vari oggetti di un Setup project, è possibile realizzare installazioni condizionali basate sulla versione del sistema operativo. Per come è presentata, sembra che con questa variabile si possa verificare la versione di ogni sistema operativo Microsoft. In realtà, essa è valida solo per i sistemi operativi della famiglia NT. Nel caso di Windows 98/ME, invece, si deve utilizzare Version9X (il cui valore è calcolato nello stesso modo di VersionNT, ovvero MajorVersion...
Il controllo DataGridView può essere associato ad un'origine dati seguendo diverse modalità. I seguenti passaggi producono lo stesso risultato risultato finale, ovvero quello di visualizzare i dati di un DataTable all'interno della griglia: Impostare la proprietà DataSource su un DataTable; Impostare la proprietà DataSource su un DataSet e la proprietà DataMember su una tabella contenuta nel DataSet; Impostare la proprietà DataSource su una DataView; Impostare la proprietà DataSource su una BindingSource. Technorati tags: Certification, .NET
A pagina 581 viene mostrato come accedere agli Application Settings. Nel testo si dice che in C# si deve usare l'oggetto Properties.Settings.Default, tuttavia nell'esempio di codice sottostante possiamo trovare un riferimento a Properties.Settings.DefaultSettings, che non esiste. A pagina 631-632 sono riportati esempi che mostrano come impostare un'icona per uno User Control. E ancora una volta si trova un errore dovuto al copia/incolla: nelle parti dedicate a C#, gli esempi che recuperano il tipo di un oggetto utilizzano GetType, che però è un metodo di Visual Basic .NET, non di C#: al suo posto, si deve ricorrere all'operatore typeof....
A pagina 544 si dice che, per impostare un form come figlio di un form MDI, è necessario impostare la sua proprietà MdiParent su true. In realtà, MdiParent non è di tipo booleano, ma contiene un riferimento al form padre. L'esempio di codice successivo, invece, è corretto. A pagina 545 viene presentato un esempio di codice che mostra come incollare nella TextBox attiva del form figlio corrente il contenuto degli Appunti. Sia il codice VB .NET sia quello C#, tuttavia, sono errati. Infatti, con riferimento alla versione C#, per recuperare la TextBox attiva si usa l'istruzione: TextBox...
A pagina 503-504 si parla dei permessi necessari per stampare da un'applicazione .NET in un contesto Partial Trust. In particolare, si dice che per verificare i permessi di stampa è necessario utilizzare l'attributo PrintingPermissionAttribute. Tuttavia, l'esempio di codice fornito: [PrintingPermission(SecurityAction.RequestMinimum,
Level=PrintingPermissionLevel.AllPrinting)]
E' sbagliato. Il valore SecurityAction.RequestMinimum, infatti, si può usare solo a livello di assembly e il corrispondente attributo deve essere preceduto dalla parola chiave assembly:. Provando ad inserire questa riga di codice sopra la dichiarazione di una classe, come nell'esempio fornito...
Nel capitolo 9 del Self-Paced Training Kit si parla, tra gli altri, dell'oggetto XmlReader. In particolare, a pagina 448 vengono presentati i metodi ReadInnerXml e ReadOuterXml. Nella seconda domanda della lezione, tali metodi si trasformano in proprietà, rispettivamente InnerXml e OuterXml, che però non esistono. Altri errori: a pagina 465-466 si dice che, per caricare un file XML in un XmlDocument, si può specificare, come argomento del metodo Load, uno Stream, il nome del file oppure oggetti di tipo TextWriter o XmlWriter. Tuttavia, trattandosi di operazioni di lettura, gli oggetti corretti sono TextReader e XmlReader. a pagina 466 si...
La mia opinione negativa sul Self-Paced Training Kit per l'esame 70-526 si fa ogni giorno più forte. Anche quando si parla degli oggetti DataView e DataRowView ci sono delle inesattezze. In particolare, a pagina 398, viene mostrato l'utilizzo del DataRowView: il codice riportato non mostra in che modo ottenere un oggetto di questo tipo a partire da un DataView, ma si limita ad utilizzare una variabile con nome DataRowView (quindi con lo stesso nome dell'oggetto che rappresenta, aumentando così la confusione). Inoltre, la sintassi dell'esempio C# è sbagliata, dal momento che vengono utilizzate le parentesi tonde, al posto di quelle quadre, per...
Per aggiungere un vinconlo di chiave esterna tra due DataTable, è possibile procedere in due modi: creare un oggetto di tipo ForeignKeyConstraint e aggiungerlo alla collezione Constraints della tabella, oppure utilizzare un overload del metodo DataTable.Constraints.Add, specificando direttamente tutti i parametri necessari. Nel primo caso, l'IntelliSense ci viene in aiuto suggerendo di specificare la parentColumn e la childColumn da mettere in relazione: questi nomi non hanno alcun riferimento alla terminlogia utilizzata nelle basi di dati, quindi ad un primo approccio non sembrano di molto aiuto. Al contrario, se si usa l'overload di DataTable.Constraints.Add, le colonne da mettere in relazione sono giustamente...
Questo non è propriamente un errore, quanto una imprecisione che si va ad aggiungere ad una lista, ahimé, già di per sé lunga... A pagina 373 si spiega come aggiungere righe ad un DataTable. In particolare, si dice che, nel caso di DataSet tipizzati, è necessario invocare il metodo NewRow del DataTable, quindi castare il DataRow così ottenuto verso il tipo specifico: NorthwindDataSet ds = new NorthwindDataSet();
NorthwindDataSet.CustomersRow row = (NorthwindDataSet.CustomersRow)ds.Customers.NewRow();
In realtà, se il DataSet è tipizzato, esso espone anche una serie di metodi che consentono di creare direttamente un DataRow con gli attributi corretti, senza necessità di eseguire cast....
Pare che nel Self-Paced Training Kit in preparazione all'esame 70-526 il copia/incolla sia stato veramente abusato. Pochi giorni fa ho segnalato i pasticci dovuti a questa tecnica nel capitolo 3, mentre oggi ho scoperto che il copia/incolla è responsabile anche delle imprecisioni di pagina 362, dove si fa confusione nelle spiegazioni dei valori consentiti per le proprietà MissingMappingAction e MissingSchemaAction del DataAdapter. Technorati tags: Certification
Se si imposta la proprietà PrimaryKey di un DataTable su una o più colonne, viene automaticamente aggiunto uno UniqueConstraint su tali colonne. Supponiamo che dt e col1 siano, rispettivamente, un DataTable e un DataColumn che fa parte della collezione Columns di dt; eseguendo il seguente codice: 1 dt.PrimaryKey = new DataColumn[] { col1 };
2 UniqueConstraint unique = new UniqueConstraint(col1);
3 dt.Constraints.Add(unique);
Si ottiene una DataException alla riga 3, perché il constraint è già stato implicitamente aggiunto quando è stata impostata la chiave primaria della tabella (riga 1). Se, invece, si cambia l'ordine di esecuzione, spostando in fondo la prima istruzione:
1 UniqueConstraint...
Il capitolo 6 del Self-Paced Training Kit relativo all'esame 70-526 si intitola Working with Data in a Connected Environment. Esso spiega come utilizzare gli oggetti Connection, Command, Parameter, DataReader e Transaction per accedere ad una base di dati ed eseguire un'interrogazione specificando i parametri necessari, eventualmente all'interno di transazioni, locali o distribuite. Gli argomenti trattati sono quindi di fondamentale importanza e costituiscono la base per comprendere tutto il sistema di accesso ai dati implementato da ADO .NET. Nonostante questo, il capitolo in questione mi è sembrato abbastanza lacunoso e mal organizzato. Innanzi tutto, non fa alcun cenno al fatto che tutti i provider...
A pagina 203 si parla dei metodi esposti dall'oggetto System.Data.Common.DbConnection. In tale occasione, gli eventi pubblici e protetti vengono mischiati nella stessa tabella, senza fare distinzione tra essi. Inoltre, l'evento InfoMessage non fa parte dell'oggetto DbConnection, ma solo delle classi specializzate, come ad esempio SqlConnection. Technorati tags: Certification
Il controllo LinkLabel non espone una proprietà che consente di recuperare diretamente il testo del link visualizzato al suo interno. Per ottenere tale informazione, è necessario utilizzare la proprietà LinkArea, la quale specifica la porzione di testo che deve apparire "linkata". Nel caso in cui il recupero del testo del link sia un'operazione frequente, può essere utile creare un controllo che estende LinkLabel e vi aggiunge la proprietà mancante: using System;
using System.ComponentModel;
namespace System.Windows.Forms
{
public class LinkLabelEx : LinkLabel
{
[Browsable(false)]
public...
Altro giorno, altri errori... Quando si parla dei controlli ListBox e ComboBox, a partire da pagina 96, si dice che, se il controllo non è associato ai dati, la proprietà SelectedValue restituisce il ToString dell'elemento selezionato. In realtà, quando non esiste un'associazione con una origine dati, la proprietà SelectedValue vale sempre null. Poi, a pagina 137 si dice che il metodo ShowBalloonTip del componente NotifyIcon prende come argomento il numero di secondi per cui visualizzare il fumetto. In realtà, il valore indicato rappresenta i millisecondi. Technorati tags: Certification
Alzi la mano chi non ha mai introdotto un errore in un programma a causa di un copia/incolla di codice, in cui poi ci si è dimenticato di cambiare una stringa, il nome di una variabile, ecc. Neanche il Self-Paced Trainining Kit è stato risparmiato. In questo caso, però, il copia/incolla non è relativo al codice, ma alla descrizione delle proprietà dell'oggetto ComboBox, di cui si parla a pagina 98. Le descrizioni delle proprietà SelectedIndex e SelectedItem fanno riferimento alla proprietà SelectionMode del controllo, che tuttavia non esiste. E' chiaro che queste descrizioni sono state copiate dal paragrafo precedente relativo al controllo ListBox, il...
Sto leggendo il Self-Paced Trainikig Kit da neanche un'ora e ho già trovato una sfliza di errori... E per ora mi sono fermato al Capitolo 1, speriamo che il seguito sia un po' più tranquillo: Pagina 15: si dice che, impostando la proprietà Visible di un Form a false in fase di progettazione, questo Form sarà invisibile all'avvio... Peccato che la proprietà Visible del Form non sia disponibile a design-time! Pagina 32: si dice che, nel controllo TableLayoutPanel, quando si imposta la proprietà SizeType di una colonna su un valore diverso da SizeType.Absolute, è possibile indicarne espressamente la larghezza...
Tra le numerosissime classi che ho studiato preparando l'esame 70-536, una mi sta tornando particolarmente utile in questi giorni: SecureString. Si tratta di un contenitore "sicuro" per dati sensibili, come password, numeri di carte di credito, ecc. Sicuro perché il contenuto di un oggetto SecureString è mantenuto in memoria criptato e viene decifrato solo quando si tenta di accedere al suo valore. Inoltre, esso implementa l'interfaccia IDisposable: quando si richiama il metodo Dispose, la zona di memoria che contiene la stringa viene sovrascritta più volte con una sequenza di zeri. In questo post sono disponibili maggiori dettagli sulla classe SecureString....
Questa mattina ho superato l'esame 70-536, Microsoft .NET Framework 2.0 - Application Development Foundation, con il punteggio di 982 su 1000! Colgo l'occasione per ringraziare Lorenzo e Igor, che hanno sopportato pazientemente () tutte le mie domande, e Raffaele, le cui risposte hanno chiariti i miei dubbi sulla CAS. Il prossimo esame che voglio preparare è il 70-526, Microsoft .NET Framework 2.0 - Windows-based Client Development, in modo da ottenere la certificazione MCTS: .NET Framework 2.0 Windows Applications. Ma prima credo che mi concederò una pausa, dopotutto siamo quasi ad Agosto ... Technorati Tags: Certification
Questa mi sarebbe sicuramente sfuggita se non mi fosse capitata una domanda nei quiz di autovalutazione. A pagina 747 del Training Kit si dice che la lunghezza della chiave utilizzata dall'algoritmo Triple DES è 156 bit, di cui solo 112 sono effettivamente utilizzati per la crittazione. In realtà, come si legge su MSDN e come viene spiegato nella risposta al quiz, l'algoritmo supporta chiavi di lunghezza 128 o 192 bit. Technorati Tags: Certification
Quando sul libro di preparazione all'esame trovo qualcosa che non mi torna, vado su MSDN per leggere la versione ufficiale. Questa volta però non è andata così... Nel testo si parla della classe SmtpPermissionAttribute, utilizzata per "lavorare" con i permessi relativi alle connessioni SMTP: a tal proposito, viene detto che uno dei valori consentiti per il suo attributo Connect è ConnectToUnrestrictedPort, con cui si indica che la connessione SMTP è possibile verso qualunque porta. In realtà, su MSDN, più precisamente su questa pagina, si dice che Connect può assumere solo i valori None e Connect. In realtà, è consentito utilizzare anche ConnectToUnrestrictedPort....
Questa non è un'errata corrige sul libro, bensì sul CD allegato, e in particolare sulle domande contenute nei quiz di preparazione all'esame. Utilizzando il Certification Mode, capita spesso di trovare soluzioni sbagliate. Ad esempio: Il seguente stralcio di codice: TextWriter tx = new StreamWriter(@"D:\Prova.txt");
tx.Write("Hello world");
tx.Close();
è presentato come una delle alternative per la scrittura di un file di testo... Andando a vedere la correzione, questa soluzione è segnalata come sbagliata, in realtà essa compila e viene eseguita correttamente, producendo il risultato atteso
Una domanda chiede come lanciare un thread in modo da minimizzare l'impatto sulle prestazioni delle altre applicazioni: tra le alternative,...
Per recuperare il proprietario di un file o di una directory è necessario utilizzare, rispettivamente, gli oggetti FileSecurity e DirectorySecurity. La seguente routine consente di recuperare il nome del proprietario del file specificato: private static string Owner(string fileName)
{
FileSecurity fs = File.GetAccessControl(fileName);
NTAccount acc = (NTAccount)fs.GetOwner(typeof(NTAccount));
return acc.Value;
}
Dopo aver ottenuto l'oggetto *Security corrispondente, viene creato un NTAccount che contiene il riferimento al proprietario del file.
Technorati Tags: Certification, .NET, Programming, CS
Ad una prima analisi, le classi generiche SortedList e SortedDictionary possono sembrare equivalenti, dal momento che entrambe consentono di memorizzare coppie chiave/valore ordinate per chiave. In realtà, esse presentano differenze significative per quanto riguarda sia la complessità delle operazion di inserimento e rimozione, sia l'occupazione di memoria. In questa pagina è disponibile una tabella comparativa che riassume tali differenze. Technorati Tags: Certification, .NET, Programming
La classe System.Reflection.Assembly offre due metodi statici che consentono di caricare un assembly: LoadFile e LoadFrom. Ad una prima analisi può sembrare che essi svolgano la stessa funzione, infatti la MSDN dice che LoadFile loads the contents of an assembly file, mentre LoadFrom loads an assembly. In realtà, questi metodi sono profondamente diversi. In questo post è possibile trovare una breve descrizione delle loro differenze di comportamento. Technorati Tags: Certification, .NET, Programming
Prosegue lo studio, e si scoprono nuovi errori . Ecco una lista delle new entry: Pagina 577: l'esempio dell'attributo DebuggerDisplay è sbagliato, manca un uguale tra CompanyCity e {_CompanyCity} (in tutti gli stralci di codice della pagina); Pagina 589: si fa riferimento a un oggetto di nome MyListener che è dichiarato da nessuna parte (né nella versione per VB .NET, né in quella per C#); nel sorgente allegato al libro, infatti, quella riga di codice non c'è; Pagina 601: vengono elencati 5 metodi della classe PerformanceCounterCategory; in tale occasione si dice che sono tutti statici, in realtà l'ultimo, ReadCategory,...
Utilizzando opportunamente l'attributo PrincipalPermissionAttribute si può consentire l'esecuzione di un metodo solo agli utenti autenticati, a quelli che fanno parte di uno determinato gruppo, oppure ad un utente specifico. Ad esempio, per fare in modo che un metodo possa essere eseguito solo dagli utenti che appartengono al gruppo Admistrators della macchina locale, basta scrivere: [PrincipalPermission(SecurityAction.Demand, Role=@"BUILTIN\Administrators")]
private static void AdministratorOnly()
Perché questo codice funzioni, è necessario configurare la principal policy corrente in modo che si appoggi alle funzioni di sicurezza di Windows. In pratica, prima dell'esecuzione del metodo AdministratorOnly bisogna eseguire questa riga di codice:
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
Senza di essa, arrivando ad eseguire il metodo...
Come avevo accennato in questo post, da qualche giorno sto preparando l'esame 70-536 utilizzando il Self-Paced Training Kit di Microsoft. Purtroppo ho notato la presenza di diversi errori nel libro; ho deciso di segnalarli qui nella speranza di essere utile a chi tenterà l'esame in futuro.
L'errata corrige di oggi riguarda il capitolo 5 lezione 3, in cui si parla di Custom Serialization. A pagina 305 vengono introdotti gli eventi con cui è possibile personalizzare la serializzazione utilizzando l'oggetto BinaryFormatter. In particolare, in fondo alla pagina si dice che, per eseguire una routine subito PRIMA della deserializzazione, è necessario decorare il...