.NET Framework

There are 41 entries for the tag .NET Framework

Ok, son migrato ufficialmente a Subtext 2.0!

Introduzione  Sono circa due settimane che il mio blog gira con Subtext 2.0, la nuova ed ultima release del noto blog engine, che annovera fra i suoi creatori anche il buon Simone Chiaretta. Decido di dare oggi l’ufficialità di questa cosa, perchè la migrazione è stata sì indolore, ma un po’ preoccupante per alcuni sintomi. Parecchi di voi mi hanno detto via mail e via messenger che ogni tanto il mio blog si apriva senza skin. Urgh! Nella parte Admin del blog ogni tanto avevo una strana exception, che veniva tracciato...

Piccole istruzioni Linq per semplificare un po’ il codice

Supponiamo l’esistenza di una classe Player che tra le altre proprietà ne esponga una di tipo intero denominata Strength. Supponiamo l’esistenza di una classe Team che tra le altre proprietà ne esponga una di tipo List<Player> denominata AcquiredPlayers. Supponiamo l’esistenza di una classe Match che calcola l’incontro tra due Team diversi e ne calcola l’esito. Un match viene vinto dal Team che raggiunge il punteggio più alto. Tale punteggio è la somma dei valori della proprietà Strength dei giocatori appartenenti ad un Team (semplificando, chiaramente). Es: l’istanza team1 ha acquisito...

Usare in un DataTemplateSelector un ResourceDictionary definito in un file XAML

Ok, il titolo di questo post è più confuso che altro. Amen. Nei giorni scorsi ho creato una class library per .NET Framework 3.5, all’interno del quale ci sono Windows in XAML, ResourceDictionary, immagini e video. C’è anche una bella classe TagDataTemplateSelector, che eredita da DataTemplateSelector. Come ben sa chi sviluppa in WPF, una classe figlia di DataTemplateSelector ha un metodo pubblico SelectTemplate, che restituisce un DataTemplate piuttosto che un altro, in base alla logica che implementiamo nel metodo stesso. Questo serve ad esempio se avete una ListBox e volete applicare un template differente per ogni elemento: supponiamo...

Sharepoint: quali campi possiamo usare nel CAML ?

Una query CAML può far riferimento ad un gran numero di campi, sia per effettuare ordinamenti, sia per applicare filtri. Inizialmente pensavo che il nome di questi campi potesse essere trovato semplicemente sfogliando la document library da Internet Explorer. In realtà quello che si legge nelle ColumnHeaders navigando un website Sharepoint è il Display Name. Nelle query CAML bisogna far riferimento ai campi attraverso il loro Internal Name. Dove trovare questo famigerato Internal Name? Il buon Vincent Rothwell, MCTS di Sharepoint, ha redatto sul suo blog questa bella tabella HTML che elenca Display Name, Internal Name, Guid e Type...

Sharepoint: Ottenere l'ID di un file pubblicato in una document library

Attraverso CAML possiamo fare tutta una serie di query che vanno ad interrogare il contenuto di una document library. Per esempio, se volessimo aggiornare i metadati di un file pubblicato in una document library dobbiamo prima averne l'ID univoco. Questo lo abbiamo visto precedentemente, quando abbiamo ottenuto l'ID dell'ultimo file uploadato. Quale CAML dobbiamo scrivere per sapere l'ID di un qualsiasi file? E' molto semplice: <Where> <Eq> <FieldRef Name="FileLeafRef" /> <Value Type="Text">{0}</Value> ...

Ottenere l'ID univoco di un file in una document library di Sharepoint

Ho scritto il metodo seguente, che dato un nome di una lista di Sharepoint ed un nome di file pubblicato, restituisce il suo ID univoco. Questo ID può essere utile durante la chiamata ai web-services di Sharepoint. Vediamo insieme come funziona. 1 public void ReadFileID(string listName, string fileName) 2 { 3 string name; 4 Lists l = new Lists(); 5 l.Credentials = new NetworkCredential(this.Username, this.Password, this.Domain); 6 7 XmlDocument doc = new...

Upload di un file in una document library di WSS: ed i metadati?

Di per sè non è una cosa estremamente complicata. E' possibile accedere ad una document library di Sharepoint come se fosse un normale path di rete. Detto questo, potete per esempio uploadare un file locale su un server con una banalissima File.Copy - pratica che a me personalmente non piace perchè non è asincrona e soprattutto blocca il thread corrente fino a quando l'operazione non è completata (con successo o meno). Per l'upload ho preferito usare questo blocco di codice... public void UploadDocument(string localFilename, string remoteFilename) { ...

Evento Validating. Ok per Windows Forms. Ma per Windows Mobile?

Introduzione per chi non sa di cosa si sta parlando Facciamola breve. L'evento Validating è il metodo più vecchio per validare il contenuto di un controllo in un'applicazione Windows Forms. L'evento Validating si scatena un attimo prima che un determinato controllo perda il focus: nell'event handler implementate il controllo che volete, e se le cose non vanno come dovrebbero, impostate a true il valore della proprietà Cancel del parametro di tipo CancelEventArgs. Quindi, supponiamo: 1 private void textBox1_Validating(object sender, CancelEventArgs e) 2 { 3 if(string.IsNullOrEmpty(this.textBox1.Text)) 4...

WPF: accelerare un'animazione per arrivare velocemente alla fine

In un'applicazione WPF che sto programmando nel tempo libero ho creato un'animazione che parte automaticamente all'apertura della Window principale dell'applicazione stessa. Essa prepara l'interfaccia utente con un po' di "effetti speciali": il titolo dell'applicazione appare con un fade-in stessa cosa per il background, ma con un leggero ritardo rispetto al titolo altre scritte appaiono ruotando e spostandosi velocemente sullo schermo, posizionandosi vicino al titolo poi appare il menù principale, anch'esso con un fade-in il logo VivendoByte viene posizionato in basso a destra sullo schermo...

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

Linq to SQL: ottenere la tabella corretta dato il tipo dell'oggetto

Come requisito, leggetevi prima l'articolo su MSDN pubblicato dal nostro amico Giancarlo "Janky" Sudano su Linq to SQL. Se avete voglia e se volete partire rapidamente con questo ORM, potete dare un'occhiata all'ottimo tutorial del mio omonimo Igor: l'avevo letto quando era stato messo on-line, ma l'ho ripreso ieri quando ho voluto ripercorrere i passaggi sul mio piccolo progetto che io chiamo "campo di battaglia" per studiare le nuove tecnologie ed i nuovi framework ai quali sono interessato. Ieri sera ho mappato il mio domain-model su un database SQL Server 2005 Express Edition. Il domain-model contiene classi come Player,...

ASP.Net: alla fine è successo davvero!!!

Premessa: il post è volutamente ironico. Chiedo scusa a tutti (ma proprio a tutti) i miei amici di UGIdotNET: vi prego, siate clementi nei commenti! :-) Molto tempo fa dissi che prima che succedesse una cosa, ne sarebbero accadute delle altre. Sono stato smentito. Quella cosa è accaduta ieri mattina. Ieri ho programmato e ho messo on-line la mia prima pagina in ASP.Net. E ne ho persino due prove. La prima è lo screenshot di Visual Studio 2008: La seconda è la mia nuova home-page. Che emozione...l'estensione è .aspx. Chi l'avrebbe mai detto??? Sapevo che VS2008 potesse creare siti Web, sapevo che esisteva una...

MSDN Code Gallery

Da questo post del mio amico Alessandro Del Sole sono venuto a sapere che esiste un portale denominato MSDN Code Gallery, dove è possibile uploadare esempi di codice, piccoli progetti, prototipi che illustrano il funzionamento di una determinata tecnologia, video e così via. Non mi sembra che sia attivo da molto tempo, perchè i vari progetti sono stati tutti uploadati nel 2008, ed anche la loro quantità mi fa pensare che sia online da relativamente poco tempo. Alcuni di questi progetti vengono poi referenziati direttamente da MSDN, come nel caso di Visual Basic LINQ Video Series Samples. Le funzionalità...

WPF: Accedere agli elementi di una ListBox con la classe ItemCollection

Ad una ListBox generalmente possiamo fornire oggetti da visualizzare in due modi differenti: o utilizziamo il data-binding con la proprietà ItemsSource oppure accedendo alla proprietà Items, attraverso la quale possiamo aggiungere/rimuovere/ricercare oggetti. La proprietà Items è di tipo ItemCollection, una classe che espone un'interfaccia davvero semplice e potente al tempo stesso. Supponiamo di avere una Window con una ListBox popolata in questo modo. Se volessimo accedere agli oggetti contenuti nella ListBox possiamo scrivere in C# quanto segue: 1 ItemCollection photos = ListPhotosSelected.Items; 1 public void DownloadPhotos(string photosetId) 2 { 3 Stream stream; 4 FileStream saveFileStream; 5 Uri uri; 6 string filename; 7 8 Photo[] ps = conn.PhotosetsGetPhotos(photosetId); 9 10 ...

Debuggare i sorgenti del framework da VS2008

Ieri tutti quelli che hanno Visual Studio 2008 installato e funzionante - con la sola eccezione delle versioni Express - sono corsi a configurarlo per poter vedere come funziona il meccanismo che permette di vedere il codice sorgente del .NET Framework. Effettivamente, è la notizia del giorno. Come era stato annunciato da un po' di tempo, infatti, con VS2008 è possibile debuggare il framework e vedere il codice sorgente di tutte le classi comprese in determinati assembly e namespace. Vi rimando direttamente a questo post di un certo Shawn Burke che spiega nel dettaglio come e cosa impostare dentro...

Generare un file di risorsa (resx) da codice

Se avete bisogno di generare via codice un file di risorsa da poter includere in una soluzione, ecco il codice che potrebbe servirvi... static void Main(string[] args) { string filename = "D:\\registers.resx"; Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "value1"); dict.Add("key2", "value2"); dict.Add("key3", "value3"); dict.Add("key4", "value4"); IDictionaryEnumerator enumerator = dict.GetEnumerator(); ResXResourceWriter writer = new ResXResourceWriter(filename); do { ...

Disabilitare le notifiche sulla batteria su Pocket PC 2003

Se volete disabilitare i balloons che Pocket PC 2003 visualizza quando il livello di carica della batteria scende al di sotto di una certa soglia, potete farlo manualmente andando - se ricordo bene - sotto Start --> Impostazioni --> Alimentazione --> Avvisi. Qui ci sono due checkbox, disattive di default, che vi permettono di spegnere due notifiche: una riguarda il livello basso di carica (battery low) e l'altro il livello molto basso di carica (battery very low). Se dovete fare questa cosa su 100 palmari diversi, che andranno in produzione, può essere comodo inserire questa cosa nel vostro software,...

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: 1 <StackPanel Orientation="Vertical"> 2 ...

Subtext: due post con lo stesso titolo

Esercizio. Aprire il vostro browser preferito, raggiungete www.google.com e nella casella di ricerca inserite il testo seguente: 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...

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

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

VivendoByte Technorati Tags plug-in - powered by WCF

Ho apportato alcune divertenti modifiche al mio plug-in per Windows Live Writer per inserire i technorati tags da associare a ciascun post. Vi riporto un vecchio screenshot del plug-in, graficamente è rimasto lo stesso, per cui rende l'idea: Il mio plug-in utilizza una cache locale dei tags salvata in C:\Documents and Settings\<username>\Dati applicazioni\VivendoByte Technorati Tags. La cache in questione è un normalissimo file XML, che viene deserializzato/serializzato ogni volta, e che serve per popolare la ListBox che vedete nella parte sinistra della form che vedete qui sopra. Questo ha principalmente lo scopo di evitare di inserire...

News dal TechEd - software e blog

Chi di voi legge il Muro di UGIdotNET le saprà già, quindi potete saltare tranquillamente questo post. Visual Studio 2008 ed il .NET Framework 3.5 usciranno entro fine mese. Questa data di uscita è valida per tutti gli MSDN Subscriber (compreso me), mentre l'uscita al pubblico vera e propria è prevista per l'anno prossimo, a gennaio/febbraio. La seconda novità è che gli sviluppatori di Microsoft Italia hanno aperto un nuovo blog, MSDN Italia. Lo scopo è quello di fornire informazioni a tutti gli sviluppatori ed architetti del nostro piccolo mondo IT italiano. Non vi resta che sottoscriverlo. ...

Windows Vista User Experience Guidelines

Il buon amico Marco Minerva ci informa che Microsoft ha rilasciato la versione definitiva delle guidelines da seguire per sviluppare applicazioni sotto Windows Vista. Sicuramente interessante, perchè si parla di come sfruttare WPF per aderire a queste convenzioni, di come disegnare l'interfaccia utente, quali font utilizzare, etc. etc. Secondo me è utilissimo, almeno per me, nel senso che la maggior parte delle volte rimango bloccato su come disegnare un'interfaccia, ma non dal punto di vista tecnico, quando dal punto di vista estetico e funzionale. Anni fa lavoravo con un grafico che mi disegnava le interfacce, poi io le realizzavo fisicamente...

Un domain-model con WCF (oggetti DTO e dintorni)

Qualche giorno fa ho proposto sul mio blog l'implementazione di due interfacce diverse da utilizzare con WCF. La prima implementazione di IFatturazione espone due metodi che ritornano l'XML che rappresentano i tipi: [ServiceContract()] public interface IFatturazione { [OperationContract] string GetXmlArticolo(string Codice); [OperationContract] string GetXmlCliente(string Codice); } Il primo GetXmlArticolo...

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

RapportinoMaker cresce, e sfrutta WCF

Vi ho già parlato altre volte (forse troppe) del mio piccolo RapportinoMaker. Eppure, vi dirò, nella sua semplicità mi permette di esplorare, disegnare e sfruttare componenti che altrimenti non avrei mai visto. Vi faccio un piccolo riassunto perchè ci tengo. RapportinoMaker è un software che gira dalla console di Windows. Accetta al massimo due argomenti: il mese e l'anno di cui si vuole generare il rapportino. Quindi, per esempio, possiamo lanciarlo con una riga simile a questa: Dopo aver premuto Invio, RapportinoMaker apre il database di Outlook, preleva tutti gli appuntamenti del mese e dell'anno...

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

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

Microsoft diventa un po' più open-source!

Questa è una notizia da leggere con calma e da digerire per bene. Fate così: sedetevi, prendete una lattina della vostra bevanda preferita - io ho optato per un bel Estathè - chiudete gli occhi, fate un bel respiro e riapriteli. Leggete di seguito. La notizia è che con l'uscita di Visual Studio 2008 verrà rilasciato il codice sorgente del .NET Framework 3.5!!! Il titolo del post originale recita "Releasing the Source Code for the .NET Framework Libraries", e potete leggerlo qui. Ah, ferma: è scritto da un certo Scott Guthrie, che non è di certo l'ultimo arrivato. Non verrà...