dicembre 2005 Blog Posts
Sono abbastanza solito adottare le naming guidelines nel codice che scrivo tutti i giorni (beh, non sempre tutti i giorni !|). Ciò nonostante a volte mi trovo in difficoltà nell'adottare uno standard.
Faccio un esempio: Prendiamo una WebForm oppure una WinForm e aggiungiamo una banalissima Label che rappresenta il nome. Come chiamaremmo la variabile (protetta by default) ?
protected Label FirstName;
protected Label LblFirstName;
protected Label StaticFirstName;
Che nome l'assegnereste ?
PS Dato che vi sono innumerevoli casi come questi (pensiamo a tutti i controlli Windows e Web) perchè non creaiamo una bella lista nel Wiki UGI ?
Per lungo tempo ho pensato a XAML come il dialetto XML utilizzato da WPF (Windows Presentation Foundation) per renderizzare controlli Windows in una form. Sono rimasto quindi sopreso di leggere in questo articolo che XAML è alla base anche per WF (Windows Workflow Foundation [notate la voluta eliminazione della prima W!]).
La domanda allora è, ma non esiste quindi uno schema XSD XAML univoco ? Penso sia ora di andare a guardare un pò di schemi e namespaces.
Non sono un sistemista ! Ma come sviluppatore mi capita spesso di dover effettuare alcune piccole operazioni da sistemista. Molte di queste operazioni risultano particolarmente utili se fatte con uno script (doppio click e via).
Purtroppo, notepad non aiuta molto in questo senso. Ecco che diventa molto utile uno strumento come SystemScripter (lo uso da poco ma è fenomenale). Sono 129 euro ma sono sicuro che ne spendo molto di più nel tempo dedicato a ricercare nell'MSDN i comandi :-)
Il tool a riga di comando svcutil.exe serve a generare la classe proxy dato l'endpoint (per ora solo HTTP) del servizio WCF.
Al momento presenta due piccole anomalie (devo ancora capire se sono bugs) nella generazione del file di configurazione. Nell'elemento system.serviceModel.client.endpoint lo strumento non genera l'attributo name (utile per leggere automaticamente la configurazione dal file .config) e definisce erroneamente il tipo del contratto.
Infatti, se l'interfaccia del contratto si chiama IGreetingsService lui scriverà
contract="IGreetingsService"
invece di
contract="HelloWorldClient.IGreetingsService, HelloWorldClient"
correggendo a mano il file tutto funzionerà :-)
Quest'oggi mi sono occupato dello sviluppo di un prototipo basato sulle WinForms. Credo di averlo fatto un'annetto fa..da allora solo ASP.NET e web services.
Il prototipo consiste in molte schede di parametrizzazione e per agevolare l'organizzazione del codice ho creato uno user control per ogni scheda. Per agevolare l'uso della memoria, invece, ho usato i puntatori deboli (WeakReference). In altre parole quando uso la form la creo in memoria, ma non la distruggo. In questo modo, quando la richiamerò l'avrò pronta all'uso. Ma dato che la memoria non è infinita e le schede sono tante, decido di usare una weak reference,...
L'ultima CTP di WCF (e tutto WinFX) durante la fase di setup non registra le estensioni di WCF. Suggerisco pertanto di eseguire sempre, dopi i 4 setup, il seguente comando:
xws_reg.exe /i
In questo modo tutti gli esempi ed il vostro codice potrà funzionare...
Interfaccia verbosa o interfaccia minimale ? Due approcci entrambi molto validi. Aggiungerei che si potrebbe pensare ad una interfaccia minimale ad uso interno mentre una verbosa ad uso esterno.
E' indubbio il valore dell'autore del libro "Programming ASP.NET 2.0 -- core reference". E' indubbio che i contenuti siano comunque molti (come dice Dino sono 800 pagine), ma sinceramente 70 eur sono troppi ! E' vero che su Amazon costa 33 dollari, praticamente la metà (comprese le spese di viaggio) che la versione italiana (sapete dove comprare i libri).
Morale:
1. Il ROI per imparare l'inglese è ottimo di questi tempi
2. L'editore non ha idea di come definire i prezzi all'estero (mi pare chiaro)
VSTO (Visual Studio Tools for Office) è uno strumento molto potente che permette di utilizzare con efficacia tutta la potenzialità di .NET dentro Office 2003 (Word, Excel, Outlook e InfoPath).
L'unica, ma forse più importante, limitazione che ravviso è dal punto della sicurezza. Riprendo quanto dichiarato nella documentazione: "To deploy and run an Office solution that uses managed code extensions, you must grant full trust to the assemblies in the security policy of each end user or computer. If the document is in a network location instead of on the user's computer, you must grant full trust to the document as...
Fino a poco tempo fa se mi veniva detta la parola CAPTCHA non avrei capito di cosa si trattasse. Eppure è una di quelle cose che stanno sotto il naso e non sappiamo neppure come si chiama.
CAPTCHA sta per Completely Automated Public Turing test to Tell Computers and Humans Apart ed è quel test che dobbiamo superare ogniqualvolta vogliamo postare un commento sui blogs UGI ;-)
Detto questo, mi sono spesso chiesto se fosse una tecnica efficace contro lo spam. Dai risultati direi di si, anche se la mia sensazione è in realtà un pò confusa. In che senso ?...
Il mondo mobile (PocketPC, SmartPhone, Handheld, ...) dal mio punto di vista in queste condizioni non può avere futuro !!
Mi spiego. Se arriva una nuova versione del sistema operativo, molto probabilmente questo sarà incompatibile con l'hardware che avete acquistato 1 anno fa. Risultato, se volete Windows Mobile 5.0 (con tutte le belle caratteristiche incluse) dovrete probabilmente spendere altri 300 euro (se va bene) per il dispositivo hardware.
E' inacettabile pensare che un cliente debba cambiare dispositivo ogni anno/anno e mezzo per poter sfruttare un nuovo sistema operativo con tutti i servizi che seguono.
Inoltre, molto spesso ogni device si comporta in...
Sin dalle prime versioni di Visual Studio Team System (parlo della beta 1) ho notato una grossa mancanza: un test type dedicato ai web services. Ho sempre pensato (sperato) che prima o poi l'avrebbero introdotto, ma ahimè siamo arrivati all'RTM e niente.
Quindi, la mia scelta è caduta sullo Unit testing. Perchè unit testing ? Semplice, la classe proxy (del web service) è una classe che può essere testata come un OM, al pari di qualsiasi class library.
Nota: E' importante ricordare che se volete il supporto dei wizard per la generazione automatica dello scheletro delle test classe e test methods dovete...