Sviluppo .NET
Tip di programmazione, add-on di terze parti, esempi pratici tratti dai casi reali su cui lavoro, data-binding con .NET 2.0, script MSBuild, WinFX
Mi sono dato alla creazione di un altro plugin per Windows Live Writer. Mi capita spesso di creare post il cui scopo è avere solo link a n immagini che vado preventivamente ad uploadare sul mio sito www.igordamiani.it. Per esempio, date un'occhiata al post relativo all'ultimo workshop. Quali sono le caratteristiche che saltano all'occhio?E' presto detto... C'è un breve commento all'inizio C'è un'immagine o una fotografia visibile direttamente nel post Ci sono una serie di n link, che puntano direttamente a n immagini JPG uploadate sul sito Come dicevo, mi capita spesso di scrivere post di questo tipo e...
Nel pot di prima, abbiamo visto come mostrare l'icona della clessidra sul display del palmare, nel caso in cui dobbiamo comunicare all'utente che l'applicazione sta facendo qualcosa che dura un po' di tempo. Nel codice abbiamo utilizzato una costante intera valorizzata a 32514, 0x7F02. Posso farlo?Quali altre icone abbiamo a disposizione?Che valori devo utilizzare per poterle visualizzare sullo schermo? La soluzione più rapida consiste nell'installarsi in locale sul proprio PC il Microsoft Platform Builder 5.0, per gli amici il Windows Mobile 5.0 Pocket PC SDK, che contiene tutte le informazioni necessarie allo sviluppo su mobile. Tale documentazione contiene anche info...
Se il software che state sviluppando per un dispositivo mobile compie un'operazione lunga, potete mostrare sullo schermo una clessidra - l'Hourglass dell'oggetto di questo post. Con Windows Mobile 5.0, questa clessidra in realtà è un piccolo cerchio centrato sullo schermo, diviso in 4 settori colorati (rosso/giallo/blu/verde). Ovviamente tale clessidra non è modale, perciò il vostro codice prosegue l'esecuzione fino a quando non siete voi a decidere che la clessidra non è più necessaria. Un'altra piccola precisazione: su palmari non avete il concetto di puntatore del mouse, perciò non potete fare quello che è possibile con il .NET Framework standard, ovvero...
Molti, molti mesi fa qualcuno di UGI mi aveva segnalato un problema sul mio plug-in in WPF per Windows Live Writer. Avevo realizzato un piccolo batch che copiava le immagini dalla directory di installazione alla directory dove poi il plug-in si aspettava di trovarle. Il fatto era che il batch le copiava in un posto, e poi il plug-in le cercava in un altro e quindi veniva sollevata un'exception: questo mi pare di ricordare che succedesse solo su un OS non localizzato in italiano, ma non ricordo bene 'sta cosa. L'amico di UGI che mi aveva segnalato la cosa non si...
Avrete capito dagli ultimi post che ho scritto che attualmente mi occupo dello sviluppo su dispositivi mobile, Pocket PC 2003 e Windows Mobile: questo vuol dire finalmente tanto .NET e C#, sfruttando il Compact Framework con tutti gli annessi e connessi. La cosa più affascinante è sentir parlare di classi astratte, di metodi factory e di tutti concetti che nell'azienda dove ero prima semplicemente mi sognavo. :-) Oggi ho cominciato ad ingranare sul serio. E' difficile inserirsi in un progetto già in fase di sviluppo, mi devo ritagliare il mio spazio, e soprattutto inserirmi nel team che definire vulcanico è...
Anche se fate fatica a trovare qualcosa per manipolare i files zip con il Compact Framework, sappiate che qualcosa c'è. Innanzitutto trovate le Xceed Zip for .NET CF, ma sono a pagamento, e costano la bellezza di 499,95 dollari. L'elenco delle caratteristiche è certamente interessante, ma se avete bisogno di qualcosa di più semplice (e gratuito) potete ricorrere alla libreria SharpZipLib. Essa è disponibile sotto la licenza GPL. L'ho provata in questi giorni per applicarla al progetto su cui sto lavorando. Siccome ho avuto qualche problemino, voglio segnalarlo anche a voi per evitare di perdere troppo tempo come è capitato...
Con WPF tutto deve (può?) essere scalabile. Basta usare le bitmap, quindi, perchè se ridimensioniamo una Window, l'immagine viene ingrandita a sua volta e potrebbe sgranare in modo spiacevole. L'ideale è quindi usare icone ed immagini vettoriali, che possano scalare in modo naturale. Il sito grafile.com mette a disposizione (a pagamento, e secondo me sono anche piuttosto cari) diverse collection di icone vettoriali, suddivise per argomenti (business, character, control, icon, database, documentation, file & folder, network...insomma, le solite cose). Dicevo...mi sembrano un po' cari, perchè far pagare 72 dollari un pacchetto con 56 icone mi sembra un po' esagerato. Il resto...
WPF è un framework dalle innumerevoli caratteristiche che possono lasciare - credo - disorientato il neofita. Al di là di tante squisitezza tecnologiche, la cosa che mi ha fatto fatto più perdere tempo è l' auto-layout, ovvero la capacità di WPF di dimensionare e di posizionare i controlli sulle Windows o sulle Page in modo completamente automatico, seguendo logiche che probabilmente sono più vicine alla creazione delle pagine Web. L'auto-layout permette innanzitutto di creare interfacce utente indipendenti dalla risoluzione. Scordatevi quindi di trascinare controlli dalla ToolBox sulla Window e di posizionarli dove e come volete voi. In realtà, potete farlo...
Uno dei controlli che Petzold non cita nel suo libro è il TabControl, al punto che pensavo che non fosse compreso tra i controlli nativi di WPF. Ieri, sfogliando MSDN a piacimento, ho raggiunto il namespace System.Windows.Controls e mi capita sottomano proprio la classe TabControl. Quando mi capita di vedere una classe che non sapevo esistesse, mi diverto sempre a guardare la Inheritance Hierarchy, perchè vedendo da cosa deriva una determinata classe si possono intuire caratteristiche o capacità ereditate da altri. In questo caso specifico, ho notato che TabControl eredita anche da ItemsControl, così come la ListBox, i menù, la StatusBar...
Da quando ho scoperto NHibernate, ormai più di un anno fa, ho sempre disegnato il mio domain-model in modo tale che far persistere le mie entità con questo framework fosse il più naturale possibile. Dal punto di vista pratico, ciò significa che tutte le entità del domain-model derivino tutte da una classe astratta Entity, che definisce una sola proprietà ID di tipo int. public abstract class Entity
{
public int ID
{
get { return _id; }
set { _id...
Full Sviluppo .NET Archive