programming

There are 65 entries for the tag programming

Il giorno in cui C# sarà un po’ più a sinistra

E non intendo politicamente, è chiaro. Alla mia taggata dell’altro giorno hanno ormai risposto a catena alcune persone, direttamente e non. Parlo di mio fratello, di Andrea, di Gianluca, di Lorenzo, di Vito, etc. etc. Ho notato una cosa, e non ci vuole chissà che cervello per arrivarci: quasi tutti abbiamo dichiarato che il nostro primo linguaggio di programmazione è stato il Basic, nelle varie varianti più vecchie e più recenti. Mi sto rendendo conto in queste settimane/mesi, che probabilmente in un futuro neanche tanto lontano potrei voler insegnare qualcosa di...

WPF Application Quality Guide v.0.2

Se siete sviluppatori WPF, non potete non dare un'occhiata a questo documento che fornisce una miriade di best practices su come sviluppare applicazione con Windows Presentation Foundation. Buona parte del documento è dedicato all'Automated Testing delle interfacce grafiche, dei media e delle animazioni 3D. Si parla di sicurezza, di globalizzazione e di localizzazione e molto altro ancora. Interessante. Fate riferimento a questo post su MSDN Blogs: da qui potete anche scaricare il documento in formato Word. Technorati Tags: wpf Programming guidance testing

Ditemi quali classi usate e vi dirò chi siete

Il .NET Framework è composto da un altissimo numero di classi. Vi siete mai chiesti quante ne conoscete e quante ne avete usate? Non sto dicendo nulla di nuovo se vi dico che questo numero dipende per la maggior parte dal tipo di lavoro che fate, dal tipo di clienti che avete e dall'ambito nel quale siete più o meno costretti a sviluppare i vostri applicativi. I numeri raccontati in questo post danno una visione di insieme. Grazie a Lorenzo che me l'ha trovato! I tipi definiti nel .NET Framework 1.0 erano ben 3.581; nella versione 2.0 erano il...

Un pizzico di Linq nel mio Technorati plug-in

La cosa più bella nello sviluppare piccole applicazioni opensource/freeware in autonomia è quella di poter cogliere l'occasione per studiare le nuove tecnologie, o i nuovi strumenti che i nuovi framework ci danno. Per esempio, ecco la schermata del mio WPF Technorati Plug-in for Windows Live Writer: Assumiamo che la ListBox a sinistra sia popolata con una semplice List<string>. Tale lista di stringhe viene ritornata dal web-service di Technorati, che ci restituisce per l'appunto i primi 100 tags utilizzati su un determinato blog. La nuova funzionalità che ho aggiunto permette all'utente di filtrare l'elenco dei tags...

Visual Studio Dark non sarebbe male se...

Anche io sono cascato nel "tranello" di Emanuele. Tranello nel senso buono, sia chiaro. Ho scaricato il file emadark.zip e ho provato ad applicarlo al mio Visual Studio 2008 per farlo diventare dark. Non è male, anche se bisogna farci l'abitudine. Sarà pur vero che lo sfondo nero aiuta la lettura, però secondo me c'è un problema di fondo. Switchare da un Dark Visual Studio a un qualsiasi altro software che adotta il bianco, è imho una mazzata per gli occhi. Mi capita praticamente sempre di lavorare con Visual Studio, ed avere in contemporanea aperti...

Le keywork namespace e using sono meravigliose!

Il .NET Framework è composto da una moltitudine di classi, tipi, interfacce, enum. Saremmo spaesati se non potessimo esprimere in alcun modo un concetto come: ok, adesso fammi lavorare solo con questa parte del framework. La keywork using ce lo permette. Dalle migliaia e migliaia di classi del framework, la using seleziona/filtra solo la parte che ci interessa: System, System.Data, System.Windows, System.Xml, System.Security e così via. Saremmo tutti più confusi se non esistesse la using, e tantomeno il suo amico namespace. Avremmo tutti gli oggetti in un unico grande calderone, tutte le classi mischiate assieme, senza alcuna suddivisione...

Unit Test sulle applicazioni WPF

Le applicazioni WPF sono normalissime applicazioni che, se ben progettate, possono essere unittestate come si fa con tutte le altre applicazioni. E' sufficiente mantenere una buona separazione tra oggetti business, strato di logica ed interfaccia grafica, e scrivere test adeguati automatizzati per misurare con efficacia la qualità della nostra applicazione. Non che la cosa sia semplice, è ovvio, altrimenti...cosa siamo qui a fare?? Se vi può interessare l'argomento, ecco un bell'articolo dal titolo Using MVC to Unit Test WPF Applications. Il titolo non lascia spazio a dubbi. 14 pagine stampate. Buona lettura! Link : http://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx...

La ComboBox è il controllo più intuitivo!

Per introdurvi bene a questo post è necessario una piccola introduzione. Da Aprile 2007 ad oggi ho lavorato ad un progetto che prevede, fra le altre cose, lo sviluppo di un'applicazione per PPC2003/WM5. Tale applicazione viene attualmente utilizzata da persone assolutamente non esperte nel settore, operai che utilizzano il palmare per raccogliere tutta una serie di informazioni durante il lavoro vero e proprio, e per configurare un dispositivo elettronico che tutti voi avete installato nelle vostre case e nei vostri uffici, e senza il quale non ricevereste la fornitura dell'energia elettrica. Non scendo in ulteriori dettagli. Sta di fatto che mi sono ritrovato...

Extension method con Visual Studio 2008

Gli extension method sono una delle novità puramente sintattiche del .NET Framework 3.5. Mi piace chiamarle sintatticamente perchè tecnicamente parlando è possibile ottenere lo stesso risultato con le vecchie versioni del framework. Facendola breve, utilizzando gli extension method è possibile "estendere" un tipo, dotandolo di uno o più metodi, senza creare nuovi tipi, senza la necessità di mettere mano a codice sorgente che magari non avete e - in fin dei conti - senza modificare il tipo originale. Maggiori dettagli su questa pagina di MSDN. Supponiamo di aver definito un tipo Holiday come segue: site:blog.vivendobyte.net marco eraser Con questa stringa di ricerca ricercate all'interno del mio blog tutti i post in cui compaiono le parole marco ed eraser. Google vi restituisce 4 collegamenti. Osservate i primi due. I primi due collegamenti puntano a due URL diversi, ma il titolo del post è lo stesso. Due post con lo stesso nome. Il primo è stato scritto...

Nomi di tabelle sui db: singolare o plurale?

Piccola polemica sul lavoro: voi come le chiamate le tabelle sui database? Usate nomi al singolare oppure al plurale? Preferite 'Anagrafica' oppure 'Anagrafiche' ? Preferite 'Post' oppure 'Posts' ? Ditemi la vostra! Io voto per il plurale! Technorati Tags: DATABASE Programming

Ripetere all'infinito un filmato con XAML

Sto preparando una Window con WPF e XAML per mettere in attesa l'utente quando il software sta facendo qualcosa di piuttosto lungo, che potrebbe annoiarlo. L'operazione prevede la connessione ad un Web services con WCF per scaricare delle informazioni: la durata può variare dai 4 secondi in su, in base ai soliti parametri...qualità della connessione, velocità, etc. etc. Ho trovato tra i miei CD una vecchia licenza di Corel R.A.V.E., un software di animazione vettoriale: l'ho installato ed in un'oretta ho creato una piccola animazione, partendo dal logo VivendoByte che vedete in alto a sinistra sulle pagine del mio...

Salvare in modo asincrono gli stati di un processo transazionale

Uao, che titolo altisonante che ho tirato fuori dal cilindro questo pomeriggio. Vi illustro lo scenario. Immaginatevi un piccola applicazione mobile (Pocket PC o Windows Mobile, non importa) composta essenzialmente da 5 form diverse: Form1, Form2, Form3, Form4 e, sorpresa, Form5. L'applicazione parte mostrando Form1. Su ciascuna form ci sono due pulsanti - Next e Previous - per poter navigare avanti ed indietro da una forma all'altra. Gli stati possibili all'interno dell'applicazione sono i seguenti, con le varie possibilità di navigazione... Partenza=Form1, Indietro=Form1, Avanti=Form2 Partenza=Form2, Indietro=Form1, Avanti=Form3 ...

Windows Live Writer non è *solo* quello che sembra

Avete mai dato un'occhiata alla directory C:\Program Files\Windows Live\Writer del vostro PC su cui avete installato Windows Live Writer? Tra i vari assembly contenuti in questa directory c'è quello chiamato WindowsLive.Writer.Api.dll, che è quello che dovete aggiungere alle references della vostra soluzione quando volete sviluppare un plug-in per WLW. Ma c'è di più, perchè anche gli altri assembly sono molto, molto utili, per esempio, per aggiungere funzionalità di blogging ad applicazioni di terze parti. Ad esempio, attraverso l'assembly WindowsLive.Writer.BlogClient.dll abbiamo a disposizione tutto un object model per accedere ad una miriade di funzionalità da far paura. Oggi pomeriggio mi...

Bloccare la connessione ad ActiveSync su un Pocket PC 2003

Lo so che quando si tratta di palmari non sono all'avanguardia, ma io lavoro su PPC2003 e di questi posso parlare. Esiste una chiave di registro che abilita o disabilita la connessione automatica ad ActiveSync. Di default, il valore di tale chiave è 1: ciò significa che quando infilate il palmare nel cradle parte la connessione al PC desktop via ActiveSync. Se modificate il valore di questa chiave e la settate a 0, la connessione non parte. Può essere rischioso, lo capirete bene, perchè se la mettete a 0 non avete più la possibilità di connettervi al PC, e quindi...

Intercettare l'evento PowerUp di un palmare

Probabilmente chi di voi sviluppa su Windows Mobile 5 o 6 può risolvere questo tipo di problema in modo diverso, magari con il meccanismo State and Notification Broker di cui ha parlato Mighell sull'ultimo numero di IoProgrammo. Ma con Pocket PC 2003 certe cose non sono possibili. Il mio problema era questo (parlo al passato perchè ormai l'ho risolto): la mattina, quando riaccendevo il palmare dopo averlo spento la sera prima, la mia applicazione era ancora aperta, ma Windows si metteva in primo piano, facendo di fatto scomparire l'applicazione. Nel caso in cui si voglia creare un'applicazione blindata, questo...

Modificare la skin di Subtext

Venerdì mattina mi ha venuta la voglia di modificare la skin del mio blog che state leggendo. Al contrario di Mighell, che se ho ben capito ha litigato più per il lato estetico, io mi sono sforzato di raggiungere un solo e semplice obiettivo, cioè integrare nella parte sinistra della pagina Web tutte le informazioni che mancavano. Ad esempio, sul mio vecchio blog UGIdotNET avevo l'elenco di tutte le categorie e l'elenco dei mesi/anni di attività del blog stesso. Queste informazioni fino a venerdì mancavano del tutto nello skin attuale. Così, dopo una breve chiaccherata con Simone per avere qualche...

Interfacce da utilizzare con WCF: consigli?

Senza scendere nei dettagli di WCF, è chiaro come client e server comunichino fra loro attraverso un'interfaccia. Supponiamo di aver definito un'interfaccia IFatturazione che espone i seguenti membri pubblici: [ServiceContract()] public interface IFatturazione { [OperationContract] int GetImportoFattura(string denominazione); [OperationContract] string GetXmlArticolo(string Codice); [OperationContract] ...

L'ultimo numero di IoProgrammo è un po' in palla

In questi giorni ho sfogliato e letto alcuni degli articoli di IoProgrammo. Vi vorrei anche parlare dell'articolo sulla programmazione managed del buon Mighell, ma non ho ancora avuto il tempo di leggerlo e pensarlo con calma. Una cosa però è certa: sull'ultimo numero ci sono due svarioni che lasciano a bocca aperta. A pagina 33 c'è un articolo su PHP 5.0 che illustra le nuove features sulla OOP, quindi ereditarietà degli oggetti, polimorfismo e così via. Il mio vecchio sito www.igordamiani.it, che adesso punta direttamente a www.vivendobyte.net era completamente sviluppato in PHP, e quindi ogni tanto mi fa piacere leggere qualcosa...

Deployare un servizio WCF con gli assembly

L'ultima volta vi ho fatto vedere quali accorgimenti bisogna attuare per deployare un servizio WCF su un hosting come WebHosting4Life. Il riassunto in breve è questo. Supponiamo di avere in hosting un url come il seguente: http://www.miosito/wcf La directory wcf deve essere impostata come .NET Application, su un application pool dedicato oppure condiviso con altre applicazioni. All'interno della directory wcf dobbiamo mettere il Service.svc ed il web.config che danno tutte le informazioni necessarie al .NET Framework per poter far partire il servizio WCF. Nel primo c'è il nome della classe che implementa il servizio,...

Bloccare il touchscreen di un Pocket PC

Il mio Dell Axim X51 ha una caratteristica interessante: sul lato sinistro ha uno switch che permette di bloccare a tutti gli effetti il touchscreen del palmare. Lo si sposta si locked e lo schermo viene disattivato: è comodo per evitare di premere accidentalmente qualche tasto sullo schermo, per esempio quando si sta ascoltando un mp3 o roba del genere. Basta riportare lo switch su unlocked affinchè lo schermo ritorni a funzionare normalmente. Quello switch - secondo me - non è hardware, ma non fa altro che fare un qualcosa via software. La mia domanda di...

WebHosting4Life permette di hostare servizi WCF

Ebbene sì, proprio io che con ASP.Net, web-services, IIS e compagnia bella non c'entro proprio nulla, ho passato il weekend a studiare WCF e a trovare un'applicazione pratica. Non è che non avevo nulla da fare, anzi: WCF mi serve per RapportinoMaker in modi che per adesso è troppo lungo spiegarvi, ma lo farò! La molla è stato il libro in allegato ad IoProgrammo, di cui ho già parlato qua. Venerdì ho fatto qualche viaggio in metropolitana di troppo, e ho avuto modo di leggere i primi capitoli di volata, e l'argomento mi ha appassionato. Ieri, sebbene fosse sabato, sono...

Volete saperne di più su WCF?

Se avete intenzione di utilizzare Windows Communication Foundation nel prossimo futuro e se non se sapete un'acca come me, vi consiglio di acquistare il nuovo numero di IoProgrammo, quello di Novembre, che ho visto in edicola stamattina: in allegato c'è un bel libro del nostro amico Fabio Cozzolino proprio su WCF. Fabio, lo ricordo, fa parte di DotNetSide, la community pugliese .NET che si dà sempre un bel daffare per divulgare le tecnologie .NET in lungo ed in largo, da WPF a WCF fino a WF. IoProgrammo con in allegato il libro di Fabio costa 9,90 Euro, una spesa modica...

Le metriche del prossimo Visual Studio 2008

Non è mia abitudine quella di andare a prendere post a caso sugli altri blog e di riproporli in qualche modo sul mio, ma questa volta devo farlo. Un paio d'ore fa un certo David M.Kean ha parlato delle nuove metriche che saranno disponibili nel prossimo Visual Studio 2008. Troppo interessanti, le riassumo qua: Class couplingDepth of InheritanceCyclomatic ComplexityLines of CodeMaintainability Index La "Class Coupling" sinceramente è una di quelle cose di cui non farei a meno. Vi dico solo che per cercare di riportarla in condizioni accettabili sto lavorando dalla settimana scorsa ad un bel po-po di codice che...

La parte più ostica di WPF è il layout

Spesso e forse troppe volte leggo i pro ed i contro tra il classico Windows Forms e WPF, due tecnologie che io personalmente ritengo simili fra loro, soprattutto perchè tutto sommato si occupano di risolvere lo stesso problema, cioè quello della creazione di interfacce smart client efficaci e belle da vedere. WPF è ovviamente più moderno, offre molte cose in più che permettono di raggiungere risultati molto diversi e molto più piacevoli da vedere: parlo di tecniche proprie di WPF come gli stili, i triggers, le animazioni ed i tantissimi effetti grafici che possiamo sfruttare nativamente all'interno delle nostre applicazioni....

Semplificare il codice creando un'interfaccia

Uno degli argomenti più interessanti che sto affrontando nel progetto su cui sto lavorando è la programmazione di un contatore elettronico attraverso un dispositivo Pocket PC. Con "contatore elettronico" intendo i contatori dell'energia elettrica, quelli che sono installati nelle nostre case e che misurano i consumi in modo tale che poi arrivi la brava bolletta da pagare. Il software che stiamo sviluppando permette ad un tecnico di andare in giro per la città con un palmare e di elaborare uno alla volta gli ordini che ha ricevuto la mattina in ufficio. Ciascun ordine - detto semplicemente - consiste fra le...

Analisi, sviluppo, modifiche, cambiamenti. Stravolgimenti.

Ci sono decine e decine di testi che trattano argomenti spinosi della programmazione di un buon software, che insegnano - o danno linee guide - su come un buon developer debba sviluppare e creare il software affinchè sia facilmente manutenibile, espandibile, adattabile ad esigenze future, etc. etc. Concetti importanti e ai quali non riusciamo più a fare a meno consentono di rendere indipendente un componente software da un altro. Parlo in prima persona: quando sviluppo un software (compreso quello su cui sto lavorando in questi mesi su PPC/WM) penso a come separare la UI dal DAL, oppure le logiche di...

Expression Blend 2 September Preview

Certo che vedere Commando su Rete 4 e intanto leggere blog e scaricare software, è proprio un bel piacere! :-) Ho appena scaricato la September Preview di Expression Blend, sebbene avessi già installato la versione precedente. Magari - mi son detto - posso installarlo in una directory diversa, così tengo due versioni in parallelo. Anche perchè una è la licenza MSDN, mentre l'altra è una trial, ed è destinata a scadere. Invece no: quando ho lanciato il setup di Blend 2, mi ha detto di disinstallare prima la versione vecchia e ovviamente l'installazione abortisce. Technorati Tags: programming WPF Expression

Grazie Petzold, è arrivato anche a me!

Dopo Corrado ed Andrea, anche io mi aggiungo alla lista di quelli che hanno ricevuto dal mitico Charles Petzold il suo ultimo libro "3D Programming for Windows", dedicato completamente alla programmazione grafica 3D con WPF. Insieme al libro, mi è arrivata la spedizione di MSDN ed il numero di ottobre di MSDN Magazine. Qui sotto ho riportato la dedica che lo stesso Charles ha messo a mano sui libri che ha voluto regalare ai blogger di WPF:   Ne farò tesoro, Charles, o almeno...lo spero! Technorati Tags: book programming WPF

Domain Model, NHibernate (con lazy load = true) e WPF

Prevedo la stesura di un post piuttosto lungo. Cominciamo dagli ingredienti: Un'entità sul nostro domain model (Artista) definita in un assembly (DomainModel) Un assembly (DataAccessLayer) con un po' di classi che, tramite NHibernate, si occupano di persistere le entità definite nell'assembly al punto (1) su database (SQL Server) Un altro assembly contenente un progetto WPF - dettagli più sotto Tutto questo per garantire la separazione delle componenti software di un progetto: domain-model, dal e UI. Almeno queste. Non voglio fare il saccente, ma credo che la difficoltà sia Alta, ed i tempi di preparazione lunghi. E penso anche che darò un sacco...

Usare un DateTimeConverter nei progetti WPF

Eventuali imprecisioni sono dovute all'ascolto, durante la stesura del post, di un concerto del Liga.Chiedo scusa: aiutatemi con i vostri commenti. :-) La classe DateTimeConverter è definita nel namespace System.ComponentModel nell'assembly System.dll. Il primo pensiero che ho avuto quando ho scoperto la presenza di questa classe - con questo nome - è stato: cavolo, posso metterla nelle risorse di una Window e sfruttarla nel meccanismo di data-binding tra un tipo DateTime ed un semplice controllo come la TextBox. Supponiamo di avere una Window semplice definita così: 1 <Window x:Class="StudyWPF.DataBindingWindow" 2 ...

StatusBar gestita con la proprietà .Tag dei controlli sulla Window

Questa volta vi rimando direttamente al post del mio (nostro) amico Corrado, che è stato così gentile e paziente da sopportarmi sul Messenger per aiutarmi a venire a capo del (piccolo) problema che avevo. :-) Supponiamo di avere una Window con un certo numero di controlli (TextBox in primo luogo, ma non solo). Supponiamo di avere anche una StatusBar, con cui vogliamo dare alcuni tip all'utente che sta usando l'applicazione stessa. L'obiettivo era quello di mostrare sulla StatusBar un tip diverso a seconda della TextBox che ha il focus in quel momento. Dopo aver litigato con XAML per mezza giornata e ieri sera,...

Siccome non lo so fare, lo faccio con XAML

Con WPF possiamo lavorare con molti strumenti diversi: Visual Studio 2005 (con l'opportuno supporto per il .NET Framework 3.0), Visual Studio 2008 (ancora in beta 2), la suite Expression, etc. etc. WPF è una tecnologia nuova, quindi è probabile che in futuro usciranno altri strumenti dedicati a sviluppatori e a grafici. Come ho letto da qualche parte, usciranno anche strumenti per grafici, e sarà la prima volta che il lavoro di un grafico sarà codice sorgente vero e proprio, e non un mero insieme di bytes che formano un'interfaccia grafica. Dal canto mio, sto rimbalzando usando un po' VS2005 ed un...

Petzold, allora lo regali davvero!

Non so se il nostro amico Charles Petzold (CP) regalerà davvero il suo ultimo libro 3D Programming for Windows: Three-Dimensional Graphics Programming for the Windows Presentation Foundation a tutti, ma a qualcuno - nella fattispecie un certo Jeff -  sicuramente sì. E come altre persone, anche Jeff ha criticato abbastanza il precedente libro WPF. Ed oltretutto, il libro è anche autografato. Insomma, Charles, aspetto il mio. Technorati Tags: programming WPF book

Come gestire gli access key con WPF (usability, Label, TextBox e dintorni)

Chi di voi ha lavorato con Visual Basic 6.0, o comunque con altri linguaggi di programmazione, sa che è possibile impostare - su una Label per esempio - un access key, ovvero impostare una lettera che premuta insieme al tasto ALT della tastiera dia il focus ad un controllo sulla stessa Windows Forms. Supponiamo di avere una Label la cui caption sia "Nome : " e supponiamo di voler fare in modo che, premendo ALT+N sulla tastiera, il focus finisca su una TextBox lì a fianco, cosicchè l'utente possa inputare il valore. In Visual Basic 6.0, questo si otteneva facendo precedere...

Visual Studio 2008 Beta 2 anche io

Durante il weekend, tra i mille impegni casalinghi, ho scaricato Visual Studio 2008 Beta 2. Nonostante le raccomandazioni di Lorenzo, che dicevano di usarlo e provarlo prima su una VM, l'ho voluto installare sul mio PC a casa, dove lo sviluppo non è così prioritario. Se qualcosa andava male, pazienza. Invece è tutto andato a meraviglia. Il tempo di installazione non si discosta moltissimo dal tempo di installazione di VS2005. Mi ha chiesto un riavvio del PC dopo l'installazione del nuovo .NET Framework 3.5, che è il primo passo obbligatorio da fare. Per il resto...tutto bene, anzi, mi aspettavo peggio....

Powerpoint e video dal TechEd

Non so cosa gli sia preso, ma ultimamente Lorenzo sta bloggando diverse cose interessanti. Non credo di averlo linkato così spesso come negli ultimi tempi. Deve essere il caldo. :-) A parte scherzi, Lorenzo ci avvisa che sono state messe on-line le slides e le registrazioni delle sessioni relative a Visual Studio Team System. La pagina diretta su MSDN è questa. E' veloce e comoda da sfogliare, perchè per il download non è richiesta la registrazione, basta vedere la sessione che ci interessa e decidere se voler vedere il file .ppt o il video. Oggi, causa scarso lavoro, do un'occhiata: quella sulle software...

Riflessioni a metà strada tra VSTS, TFS e SDL

dove:VSTS sta per Visual Studio Team SystemTFS sta per Team Foundation ServerSDL sta per Security Development Lifecycle Sto (quasi) finendo di leggere The Security Development Lifecycle, di Micheal Howard e Steve Lipner. Il giorno in cui lo acquistai, mi chiesi se faceva al caso mio. Qualcuno di UGI - via Messenger - mi fece la stessa domanda. Quel giorno lo acquistai perchè andai ad un evento Microsoft Technet, la sicurezza la faceva da padrone e Francesca Di Massimo durante la sua sessione mise particolare enfasi sull'argomento SDL, per cui mi sono fatto convincere ad acquistare il libro dal banchetto di Gorilla.it....

Come specificare Padding e Margin

Come specificare Padding e Margin nello XAML di WPFCi sono molte cose che non mi entrano in testa. Per quante volte mi vengano spiegate, o per quante volte possa leggerle, non mi entrano in testa. Una di queste è il modo con cui specificare il Padding ed il Margin dei controlli WPF. Il Padding rappresenta lo spazio interno tra il contenuto di un controllo ed i suoi bordi. Il Margin rappresenta lo spazio tra il bordo del controllo e quello che gli sta accanto. Ci sono diversi modi per specificare questo valore. Il modo più comune è quello di...

Un equilibro tra risorse locali e risorse globali

La maggior parte delle volte ho visto gli stili dei controlli WPF definiti all'interno della Window nella quale poi lo stile stesso viene utilizzato. Lo stile in questo caso può essere utilizzato solo in quella particolare Window nel quale abbiamo creato lo stile. Se lo stile ci serve in altre Window, siamo obbligati a fare un copia & incolla dello XAML dove ci serve, il che non è proprio il massimo. In WPF possiamo inserire una risorsa all'interno del file App.xaml, all'interno del tag <Application.Resources></Application.Resources>. In questo modo lo stile è globale per tutta l'applicazione. Se inserissimo una risorsa con...

Dettagli tecnici su un ContextMenu personalizzato

 Da quando Roberto tartassò il mio ContextMenu alla cena degli ultimi Community Days, ho dedicato la mia vita a creare e a sviluppare un ContextMenu degno di tal nome. Non che ci voglia tanto con WPF, sono io che sono imbastito con gli strumenti grafici. E comunque Roberto un pochino aveva ragione: il ContextMenu al quale faceva riferimento era veramente orribile, a partire dall'impaginazione dei vari controlli. Dicevo: ho cercato di impegnarmi. Facciamo un passo alla volta. Ho una normalissima Window che contiene una Grid con una normalissima TextBox. <Grid HorizontalAlignment="Stretch" VerticalAlignment="Top"> <TextBox Margin="6" VerticalAlignment="Stretch" ...

Un ContextMenu un po' più divertente

Ho lavoricchiato stasera ad un ContextMenu un pochino diverso da quello tradizionale, che visualizza un pallino colorato di fianco ad ogni voce e soprattutto contiene una StatusBar che cambia il suo contenuto in base alla voce del ContextMenu su cui ci troviamo con il mouse. Ho uploadato sul mio sito un piccolo zip che per adesso non rendo disponibile, così lo sistemo un po': se ho tempo (ma non credo) ne parlerò velocemente domani. Il succo sta nel fatto che la proprietà Header del MenuItem non è detto che debba contenere per forza solo del testo, anzi. Io ci ho...

Una utility per ripulire i recent files e i recent project

Ho scritto in 3 minuti netti un piccolo tool a linea di comando che ripulisce le seguenti chiavi di registro: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\ProjectMRUListHKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\FileMRUList che contengono rispettivamente i files recenti ed i progetti recenti gestiti da Visual Studio 2005. Odio avere quelle chiavi piene, perchè a volte faccio progetti di test dal nome assurdo o non significativo e non mi piace vederli nell'IDE di Visual Studio con il rischio di cliccarli per sbaglio. Il tool va semplicemente lanciato dalla linea di comando e gira per 2-3 secondi: spazza via il registro e vi formatta il disco fisso senza conferma, così siete più comodi. Ovviamente...

Risorse su WPF

Ho aggiunto tra i miei feed preferiti e che leggo tutti i giorni quello di un certo Jaime Rodriguez che sembra essere tosto sul fronte WPF. Mi è piaciuta la mini-serie di 3 post sul drag'n'drop con WPF, perchè è molto chiara e non è per nulla complessa, anzi. Sottoscrivetevi al suo blog qua. I tre post che parlano di drag'n' su WPF sono questi: Drag & Drop in WPF ... Explained end to end .. Drag & drop in WPF part2 ... Drag & Drop in WPF.. part 3 .. the results and code... Technorati Tags: WPF programming blog

Scambio di e-mail con Petzold

Ho scritto a Charles Petzold qualche volta in passato, parlando del suo libro e di WPF. Come ho avuto modo di dire in passato, non è che il suo Application + Markup mi abbia entusiasmato moltissimo. Ma Petzold sa come tenersi stretti i suoi lettori: a chiunque abbia un blog in cui si parli di Presentation Foundation, promettere di regalare una copia del suo prossimo libro 3D Programming for Windows, in uscita il prossimo 25 Luglio. Vabbè che su WPF ce ne saranno di migliori, ma come lui stesso ha detto a me: "My WPF 3D book is coming out in...

Windows SDK: wpfperf e l'irrimediabile crash

ll titolo fa anche (quasi) rima...non è proprio rima...come si dice? Assonanza? GiustoTorniamo a noi, perchè sono stanco. Questa sera ho voluto dare un'occhiata al Performance Profiling Tools for Windows Presentation Foundation incluso nel Windows SDK. Si tratta di uno strumento che serve a capire come l'engine di WF spende il suo tempo nelle varie fasi di rendering, layouting (!), gestione degli handler e così via. Causa ingenti impegni sul lavoro, ho solo letto velocemente qualche interessante articolo su MSDN e mi sono messo questa sera a sperimentarlo un pochino. Ho trovato inizialmente qualche difficoltà, perchè il tool tende a...

Security Lifecycle Development

Qualche notte fa facevo fatica a dormire...vuoi per il caldo, vuoi per chissà cosa...ho tirato fuori il mio Security Lifecycle Development e ho dato un bel botto in avanti alla sua lettura. Mi sono imbattuto - da buon ignorante - nell'acronimo STRIDE che mi ha fatto ridere almeno quanto la prima volta che ho sentito citare CRUD. STRIDE è un acronimo le cui iniziali stanno per Spoofing, Tampering, Repudiation, Information disclosure, Deniaf of service ed Elevation of privilege. Nel libro vengono solamente citate nei loro concetti essenziali, ma son convinto che si potrebbero scrivere centinaia e centinaia di pagine su...

Usare la ListView

Partiamo da questo screenshot: L'altra volta avevamo visto come gestire da codice l'orribile TextBox inserita nel menù, con il relativo Button per poter salvare l'immagine sul proprio disco fisso locale. Per maggiori informazioni leggete questo post. Questo ContextMenu dà accesso ad alcune altre funzionalità piuttosto divertenti, come quella per richiedere l'elenco dei tag associati ad una particolare fotografia. Il codice è molto semplice e compatto: private void TagsMenuClick(object sender, RoutedEventArgs args) { FlickrBrowserPhoto photo = lstPhotos.SelectedItem as FlickrBrowserPhoto; string id = photo.PhotoId; PhotoInfoTag[]...

Template per evidenziare il SelectedItem di una ListBox

Alla fine della sessione di Corrado agli ultimi Community Days sul data-binding di WPF, gli ho chiesto se fosse possibile cambiare (e se sì, come) il template che WPF utilizza per evidenziare l'Item corrente su una ListBox. Il template di default è il classico blu, come quello che si vede nello screenshot qui sotto: A volte potrebbe essere utile e carino definire un nostro template con cui far vedere all'utente quale degli elementi elencati nella ListBox è quello selezionato. Corrado mi parlò di una cosa...che adesso ovviamente non mi viene in mente... Ma ricordo anche che consigliò di sottoscrivere il...

WPF: gestire un ContextMenu con una TextBox interna

Guardate questo screenshot: E' lo screenshot di FlickrBrowser, il software in WPF che mi sto divertendo a creare nel tempo libero. Nella figura qui sopra, c'è l'elenco di 4 set fotografici: Microsoft Security Workshop VII, Giornata Azzurra 2007, AvioExpo 2007 e Nove Colli (Fiat 500) - 2007 - Fabio Edition. Il secondo set fotografico è selezionato: se ci facciamo sopra doppio-click, otteniamo la figura qui sotto: In pratica, una ListBox orizzontale che visualizza tutte le foto associate al set fotografico che abbiamo selezionato. Ho associato un ContextMenu ad ogni Image, che ovviamente appare cliccando col pulsante...

Classi statiche & generics: un comportamento da tener presente!

Date un'occhiata alla seguente classica statica: 1 public static class DataProvider<T> where T : new() 2 { 3 private static bool init; 4 5 static void initialize() 6 { 7 init = true; 8 } 9 10 public static void MakeSomeOperation() 11 { 12 if (!init) initialize(); 13 } 14 } Estratto...

Automatizzare Reporting Services con codice managed

Reporting Services di SQL Server 2005 non significa solo report esposti da IIS e quindi raggiungibili via browser, ma significa anche avere un componente lato client per fare esattamente la stessa cosa. E' quello che ho fatto nell'applicazione di fatturazione che ho reso pubblica molto, molto tempo fa. I report sono in formato RDLC ed usando la finestra di preview è possibile stampare sulla stampante di default, esportare in PDF e fare le solite cose fattibili con un'anteprima di stampa (zoom, regolare l'orientamento della pagine, decidere la stampante, settare il numero di copie, etc.). Ma non solo. L'architettura di Reporting...

Uploadare un documento ad una Document Library di Sharepoint

Il sito http://enjoy.vivendobyte.net/igordamiani.it.reborn è un sito Sharepoint 2007. All'interno di questo sito ho creato alcune liste, alcune pubbliche ed altre private. Tra queste ultime, ve ne è una in cui raccolgo rapportini e fatture che ovviamente devono rimanere privati. Ho voluto dare una marcia in più al mio RapportinoMaker, il software di cui ho parlato qua, per automizzare l'upload di documenti PDF (fatture) e documenti Excel (rapportini) su questa famigerata lista Sharepoint. Pensavo di dover lavorare con http e con NetworkCredentials, ma ho preso una strada diversa che voglio illustrare perchè può essere utile anche a voi. Come giustamente mi...

RapportinoMaker: WOW!

Sul mio blog di UGIdotNET avevo parlato una volta di come sfrutto una serie di tecnologie per mettere in piedi un sistema per permettermi di fare i rapportini di lavoro e le relative fatture con un software estremamente automizzato, che mi consente davvero di risparmiare un bel po' di tempo e di avere meno grattacapi alla fine di ogni mese. Siccome non ho trovato il link, rispiego tutto daccapo. Alla fine di ogni mese, devo preparare un rapportino di lavoro in Excel con l'elenco di tutte le giornate lavorative che ho fatto. L'elenco deve essere fatto giorno per giorno, bisogna indicare...

In WPF i controlli non devono avere per forza un nome

Il titolo del post è talmente significativo che potrei addirittura non scrivere nulla qua. Questa cosa dei controlli senza nome è una cosa a mio avviso comodissima, perchè non è detto che tutti i controlli che mettiamo su una Window o una Page abbiano davvero un significato dal punto di vista programmatico. Pensiamo alle classiche Windows Forms: credo che sia successo a tutti di mettere delle Label solo per dare un'etichetta a TextBox o ad altri controlli di input. Il designer ci mettere per default un nome come Label1, e poi dobbiamo essere noi a dare un nome più sensato. In certi...

Disponibile per il download: Flickr Browser

Ho messo on-line il progetto Flickr Browser di cui ho parlato qualche tempo fa sul mio blog. Le caratteristiche che mi sento di evidenziare in questo mio piccolissimo progetto sono le seguenti: possibilità di avere l'elenco dei set fotografici di un determinato utente possibilità di sfogliare tutte le foto appartenenti ad un certo set fotografico avere le informazioni EXIF di una certa foto possibilità di salvare su disco locale una certa foto In una versione futura, sulla quale sto lavorando, vorrebbe andare anche a scrivere su Flickr, nel senso di poter uploadare qualche foto in un qualche set fotografico già esistente....

Diversi stili nello scrivere e testare il codice

Negli ultimi 3 giorni ho incontrato 3 approcci diversi su come scrivere il codice C# e su come testarlo mentre l'applicazione è sotto sviluppo. Io sono uno di quelli che scrivono buona parte del codice a design-time, mentre non è in esecuzione e quando credono di aver implementato una certa feature mettono un breakpoint su una riga, eseguono l'applicazione e seguono il flusso del codice per vedere come va. Questo ovviamente quando mi ritrovo a scrivere codice che so essere insidioso, o del quale magari non sono del tutto sicuro. La cosa davvero comoda è che gli strumenti di programmazione di oggi, gli IDE insomma, ci...

La mia prossima lettura: The Security Development Lifecycle

Dopo un libro su WPF, finito qualche settimana fa, ecco un libro diverso, dove non si tratta di una particolare tecnologia, ma parla di security sotto diversi punti di vista: sviluppo, architettura, marketing, come vendere la sicurezza nei propri prodotti e così via. Sono ancora agli inizi, per adesso non so dirvi molto. Ho comprato il libro durante il workshop di TechNet, la settimana scorsa, al banchetto di orilla.it dopo la sessione di Francesca Di Massimo che mi ha colpito molto. Adesso, però, ho fame. Technorati Tags: security book programming

Che programmatore sono?

Ci sono cascato anche io. Ecco i risultati! Your programmer personality type is:DHTB You're a Doer.You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After all, time is money.You like coding at a High level.The world is made up of objects and components, you should create your programs in the same way.You work best in a Team.A good group is better than the sum of it's parts. The only thing better than a genius programmer is a cohesive...

[6] Il ritorno dello HockeyPlayer (data-binding con WPF)

Diamo una breve occhiata all'ultimo XAML che abbiamo scritto per ottenere una ListBox con associato un template, definito in uno UserControl separato. <ListBox Name="lstPlayers" ItemsSource="{Binding Source={StaticResource players}, Path=HockeyPlayer}"> <ListBox.ItemTemplate> <DataTemplate> <a:HockeyPlayerTemplate /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> A questa ListBox è stato associato, quindi, un solo template, HockeyPlayerTemplate, che fa in modo che a run-time la...

L'interfaccia di WPF è XAML, cioè XML...quindi serializzabile

Piccola riflessione della serata. L'interfaccia utente di un'applicazione WPF viene descritta da un file XML, nella fattispecie XAML. Cioè significa che è serializzabile. Ciò significa che, per esempio, possiamo in un qualsiasi momento fare una sorta di dump di una Windows - supponiamo - e salvare il tutto in un file XML su disco. Il dump contiene lo stato di tutta la Window: dalla Windows stessa a tutti i controlli che vi sono contenuti, con tutte le loro proprietà. Sarebbe interessante, per esempio, avere una Window ed intercettare eventuali eccezioni nate al suo interno. Quando viene scatenata un'eccezione, si fa...