sabato, novembre 18, 2006

Connection Pooling

Simpaticamente il nuovo ADO.NET oltre ad altre cose molto carine che ci permettono di astrarre dal .NET provider in uso, ci offre nuove vie per gestire i pool di connessioni (ClearAllPools e ClearPool ad esempio per pulire il connection pools per un dato provider, oppure il connection pool associato ad una specifica connection)
http://msdn2.microsoft.com/en-us/library/8xx3tyca.aspx

Interessante articolo di Codeproject.

How to quick Start: GotDotNet How To...

giovedì, settembre 14, 2006

Web Service Enhancements

Ecco una serie di link interessanti sui webservices e sulle alternative disponibili sul .NET Framework 1.1

P.S: se mai servisse un tool per lavorare con ste cose: MS WebDeveloper Express

C#: lavorare con le immagini

Ecco una serie di links che messi assieme possono aiutare a costruire un tool per gestire immagini e per elaborarle accedendo anche ai Tag EXIF.

giovedì, settembre 07, 2006

Una volta c'era NDoc, ma ora...

c'è SandCastle per costruire documentazione in ambiente .NET 2005:

venerdì, luglio 21, 2006

Guidance Explorer

Proprio stasera mi sono concesso un pò di tempo per dare un'occhiata al Guidance Explorer: dovrebbe essere una panacea contenente le linee guida (secondo standards Microsoft Patterns & Practices) per lo sviluppo architetturale delle proprie applicazioni.
Beh, francamente sono un pò deluso... in un progetto reale non lo vedo di facile uso... è vero che è innovativo rispetto a FxCop i cui suggerimenti sono a posteriori, ma non ne riesco a vedere la comodità.
Appena aperto, però, mi sono messo a leggere alcune guidance molto interessanti ed ho cominciato poi a perdermi nei meandri della documentazione rinfrescandomi le nozioni e imparando un paio di concetti nuovi. Ecco perchè secondo me è un ottimo learning tool ma l'obbiettivo di guidare la progettazione o lo sviluppo mi sembra ancora lontano. Il fatto di poter invece scrivere le proprie guidance direi che è molto importante e potrebbe eleggere questo tool ad essere usato all'interno di un ristretto Team per le proprie linee guida da seguire.
Voi che dite?

martedì, luglio 18, 2006

Disponibile la July CTP di WCF

Da poco è disponibile la CTP di luglio di .Net 3.0, che comprende WCF. In questo post Tom Archer spiega cosa è contenuto in questa CTP: se volete/dovete svilupparci sopra gli strumenti di integrazione per Visual Studio "Orcas" mancano da questa CTP. Quindi continuo a lavorare sulla June CTP, che per me era già abbastanza nuova e libera da bug bloccanti.

Stiamo lavorando a pieno regime su WCF (vorrei continuare a chiamarlo "Indigo" ma ci si deve abituare) ed i giorni di laboratorio con Clemens Vasters si stanno dimostrando sempre più utili. Rimane solo da sperare che Vista non ritardi troppo, tirandosi dietro .Net 3.0 a cui è legato.

giovedì, luglio 06, 2006

Mutex vs. GetProcessesByName

Vi siete mai accorti che se volete fare un'applicazione single-instance e decidete di usare GetProcessesByName potete imbattervi in qualche problemuccio (leggi: l'applicativo nun parte chiù)?!?
No?!? Bhè ve lo assicuro! Dato che se vi trovate qualche chiave "DisablePerformanceCounter" settata a 1 in giro per il vostro registry, oppure avete dei limiti sui diritti dell'utente e ACL varie...

Io preferisco i mutex e qui c'è un esempio che vi può essere utile:

Caricare Assembly a RunTime

Ho avuto modo di smazzularmi un pò con Assembly.Load e Assembly.LoadFrom...
...bhè ho avuto qualche problemino, ma alcuni interessanti links mi hanno aiutato a venirne fuori...
Ve li propongo, non si sa mai!

e ricordatevi di quell'area sconosciuta della CAG che si chiama Assembly Downlad Cache, molto utile in questo genere di RunTime Loading, che potete miracolosamente esplorare con "gacutil.exe /ldl" e ripulire con "gacutil.exe /cdl".

lunedì, giugno 26, 2006

WCF a Manchester con Clemens Vasters

Sto passando questi due giorni a Manchester, UK, per l'evento chiamato "WCF Deep Dive", in pratica si tratta di due giorni chiuso in un ufficio a discutere su come implementare Indigo (WCF) all'interno della tua applicazione con un membro del team di Indigo .
Questa mattina quando Craig McMurtry mi ha comunicato il nome della persona che mi avrebbe seguito ero sicuro di avere capito male. Quando il team member di Indigo è entrato in ufficio e si è presentato mi sono detto che probabilmente ci sono altre persone di origine tedesca con nome simile che lavorano nel team. Alla fine mi sono arreso e gli ho chiesto se era proprio il Clemens Vasters noto a tutti.
Ottenere dei consigli da una persona che fa parte del team di Indigo di così alto livello è qualcosa di unico che solo Microsoft sa fornire.
E poi oggi Clemens ha scritto in VB.Net visto che io lo preferisco...

martedì, aprile 04, 2006

Perchè si tende a procrastinare

Interessante spiegazione del comune comportamento per cui si tende a posticipare o rimandare un task...ad esempio: "Longhorn sarà basato su WinFS" poi "Longhorn, privo di WinFS, sarà rilasciato entro il primo quarto del 2006" ed infine "Windows Vista ha subito un lieve ritardo e sarà rilasciato i primi del 2007"...chissà quale sarà la prossima.

read more digg story


Powered by Qumana

giovedì, marzo 09, 2006

Origami unveiled

Oggi si inizia a parlare seriamente di Origami, il nuovo PC ultra mobile di Microsoft, annunciato ufficialmente oggi al CeBit di Hanover. Basato su Windows XP Tablet (quante volte avrei voluto comprarlo) ha moltissime funzionalità interessanti.
Ha connettività bluetooth e lettore di CF, combinandoli ti permette di fare delle foto (non con Origami, ovviamente), salvarle subito su pc on the road e geotaggarle con il gps...magnifico, lo comprerò solo per questo.
Con il wifi può diventare un telefono con Skype. Connesso alla rete casalinga puoi vedere le foto immagazzinate sul server di casa o su Flickr, puoi accedere al web dal divano (per chi non ha Media center) senza girare con un pesante e scomodo portatile.
Questi sono solo alcuni degli argomenti per cui Origami sarà il mio prossimo acquisto importante.

Il sito di presentazione di Origami
Il sito ufficiale di Origami, foto e descrizioni dettagliate.

Riporto queste notizie, ovviamente tramite Scooble.
Origami Revealed - First Take Analysis
Origami su Channel9

Non ho ancora capito quando sarà disponibile per il pubblico.

martedì, febbraio 28, 2006

Serializzazione e deserializzazione

Utile poter serializzare un oggetto e poterlo deserializzare in modo pseudo gratuito grazie al Framework.

Link sull'argomento:

lunedì, febbraio 13, 2006

How-To-Select an Object-Relational Mapping Tool for .NET

Tramite un post di Lorenzo Barbieri, voglio segnalare questa guida agli strumenti Object Relational Mapping per .Net.

Questi strumenti mi hanno sempre interessato e ciclicamente ne ho provati alcuni e mi sono interrogato sull'opportunità di utilizzarli nei miei prodotti.
Alcune volte mi ha bloccato il fatto che lo strumento "ideale" non supportava .Net 2.0 (ora supportato da molti di questi strumenti) o mancava di un editor visuale per comporre le query, come permette il designer dei dataset e typed tableadapters in ADO.Net.
La produttività è altrettanto importante, per me anche più importante, dell'astrarsi dall'uso diretto di una tecnologia di accesso ai dati.
Uno degli ultimi fattori che mi ha bloccato dal passare dalla valutazione all'uso reale è stato il supporto (o meglio l'assenza di supporto) alle transazioni distribuite, oggi facilmente utilizzabili con System.Transactions. Non so quali strumenti mancano di questa capacità.

venerdì, gennaio 20, 2006

Analisi comparativa di LINQ

A PDC si è parlato molto di LINQ, una tecnologia di accesso ai dati rivoluzionaria se riuscirà a vedere la luce, sorte che non è toccata ad altre tecnologie come ObjectSpaces da cui ha tratto, in parte, ispirazione.

In questo articolo su MSDN viene analizzata l'architettura di LINQ, confrontandola con le alternative presenti oggi, da ADO.Net a strumenti di generazione codice, ORM etc..

Bisognerebbe aggiungere che le alternative a LINQ sono già presenti da tempo, testate e maturate. Il mio parere, forse un po' superficiale, è che LINQ è superiore a qualsiasi alternativa esistente, anche se per favorire la produttività talvota scende a compromessi.

Fonte TheServerSide.Net

PS: Vorrei fare notare che questo è il 100mo post di questo blog!

giovedì, gennaio 19, 2006

Transazioni su Windows

Questa pagina raccoglie tutte le informazioni disponibili sui sistemi di gestione delle transazioni disponibili su piattaforma Windows, da COM+ a System.Transactions.
A più di un anno fa risale questo mio vecchio post su System.Transactions, una delle parti di .Net 2.0 che apprezzo di più.

fonte Mike Taulty

Disponibile la Beta 2 di WCF e WWF

Su MSDN è disponibile la CTP di Gennatio di WinFX che include WCF (noto come "Indigo") e WWF.
Di questi due componenti è disponibile la licenza GoLive, che quindi fa ben sperare nell'approssimarsi della versione definitiva (ovviamente tra diversi mesi).
Forse gli darò un'occhiata per vedere se posso iniziare ad usarli nei nostri Retail Web Services.

lunedì, gennaio 16, 2006

User group Veneto

Andrea Boschin ha ufficialmente annunciato la creazione di uno User group sul framework .Net per il Veneto.

Si tratta di una iniziativa molto importante ed utile per tutti coloro che operano sul territorio veneto e sono interessati alla diffusione del framework .Net. Sarà possibile adattare le attività del gruppo alle necessità e difficoltà della realtà veneta, sotto molti aspetti diversa da quella che gravita attorno a centri più importanti come Milano o Roma.

Io sono un attivo sostenitore di questa iniziativa e vi invito a partecipare alle attività dello User group.

giovedì, gennaio 12, 2006

ISO 8601, standard per le date

Per chi ha mai avuto o avrà l'esigenza di gestire le settimane dell'anno (da 1 a 52 o 53) e determinare l'appartenenza di una data X alla N settimana dell'anno, ecco alcune informazioni utili.

Lo standard ISO 8601 definisce le regole di rappresentazione delle date. Riguardo alle settimane, lo standard stabilisce che la prima settimana dell'anno (W01) è la settimana che contiene il primo giovedì dell'anno (4 giorni su 7, la maggioranza della settimana).

Questa istruzione in .Net restituisce il numero di settimana seguendo lo standard ISO 8601
System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(x, Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)

Come sempre Wikipedia è la fonte.

lunedì, dicembre 19, 2005

SOA e Indigo

Questo è un interessante articolo da FTPOnline introduttivo su Windows Communication Foundation's service orientation (SO) e Indigo, interessante.

venerdì, dicembre 16, 2005

Refactoring

Per tutti i non ReSharper addicted, vi giro un post di G. Cannalire:
"Come è noto, con Visual Studio 2005, i soli programmatori C# disporranno di funzionalità di refactoring integrate nell'IDE.Qualcuno deve aver pensato bene che anche ai programmatori VB potesse far comodo uno strumento del genere ed ecco che, da qualche giorno, Microsoft annuncia la disponibilità di un tool esterno e gratuito, denominato Refactor! for Visual Basic 2005 (...is a free plug-in from Developer Express Inc., in partnership with Microsoft...).
Ma perchè aspettare VB 2005?Essendo in possesso della "
.NET Subscription" di DevExpress, ho subito scaricato Refactor! PRO for Visual Studio .NET 2003 (disponibile da pochi giorni)Risultato:...quanto è bello il refactoring con strumenti di questo genere!!!Pensando a quanto codice VB6 dovrò ancora manutenere, mi chiedo se esista qualcosa del genere anche per Visual Studio 6.0.Quasi quasi, faccio una ricerca sulla Rete :)"

mercoledì, novembre 30, 2005

Going solo

Questo interessante post descrive come può essere la vita di un consulente indipendente. Per chi pensa di iniziare un percorso lavorativo in solitario...

venerdì, novembre 18, 2005

Sempre su Windows Forms

Non avevo mai notato, fino al precedente post di Davide, questi utili link su Windows Forms e sul DataGrid Control.
Sono sicuramente un ottimo punto di partenza, un must read!

Articoli correlati:

Per informazioni di background:

giovedì, novembre 17, 2005

FAQ Windows Forms 2.0

Sono state pubblicate delle interessanti FAQ sui controlli di base di Windows Forms in .net 2.0.
Quella sul controllo DataGridView è particolarmente dettagliata.

Le trovate qui, sul sito WindowsForms.Net.

La DataGridView è molto potente, forse ha più potenzialità delle griglie di terze parti come ComponentOne (che uso) e Infragistics (che non conosco). Ho seguito una sessione su questo controllo a PDC 2005 e mi ha colpito.
Per ora non siamo riusciti ad usarla perchè, nonostante sia possibile creare controlli personalizzati da inserire nelle celle con semplicità e grande controllo, questi controlli non sono visibili se non quando si entra in modalità edit nella cella (quando ci si entra). Di conseguenza, se con il controllo personalizzato si voleva gestire in forma + elaborata la visualizzazione delle informazioni, oltre a gestirne la modifica, si manca l'obiettivo.
Guarderò meglio la FAQ ma temo di non trovare novità in questo senso.

mercoledì, novembre 09, 2005

AJAX: è un mondo asincrono

AJAX.NET Professional
Vi ricordate Remote scripting? Quella era porcheria...
AJAX mi sembra molto più ben studiato e strutturato.
Devo ancora iniziare ad usarlo ma penso che inizierò a studiarlo a breve.
Che ne pensate?

Ancora sui Delegates

Interessanti articoli in proposito:

martedì, novembre 08, 2005

DataGrid & Combos Master and Detail

In questo blog si spiega come ottenere semplicemente una serie di controlli legati in maodo master-detail. Semplice, ma efficace.
Inoltre in questo articolo da MSDN trovate utili informazioni su come utilizzare e personalizzare i DataGrid

CommandBuilder si o no?

In questo interessante articolo si aiuta a capire meglio come funzionano i CommandBuilder e quando sia il caso di usarli o meno. Buona lettura!

Tools per Visual Studio

In questo sito SharpToolbox trovate tutti gli strumenti free e non che possono aiutarvi ad aumentare la vostra produttività con l'IDE di Visual Studio. Take a look!

Logging in .NET

Se avete bisogno di una library di logging concettualmente simile a log4net, progettata con semplicità e flessibilità, ecco da sourceforge.net NLog. Provatela e andate sul sicuro!

giovedì, ottobre 27, 2005

CodeXchange per VS2003

In breve , CodeXchange è un add-in per Visual Studio.NET e un'applicazione standalone che fornisce accesso integrato e istantaneo ad un repository online di codice .NET proto da usare.
Gratuito e utile... codeXchange

VS2003 Start Page

Ecco come personalizzare la StartPage di VS2003 da MSDN

lunedì, agosto 08, 2005

MONO

Il progetto mono sviluppato da Novel è un framework open source alternativo a quello .net di microsoft, esso è ancora in via di sviluppo ma già ad un buon livello.

venerdì, giugno 17, 2005

Value type vs reference type

Buon articolo sull'argomento da Developer Fusion

martedì, giugno 14, 2005

Le stringhe in .Net 2.0

In questo interessante articolo su MSDN sono descritte le best practices per l'uso delle stringhe in .Net 2.0 che, sotto certi aspetti, sono cambiate rispetto a .Net 1.x
Viene affrontato il "problema Turco": non si tratta degli sforzi diplomatici degli Alleati per coinvolgere la Turchia nella seconda guerra mondiale o di quelli dell'Asse per mantenerla neutrale.
Si tratta di una mancanza presente nella 1.x che viene esemplificato con l'uso della Culture "tr-TR".

venerdì, giugno 10, 2005

Davide goes to PDC 2005

Parteciperò con gioia alla prossima Professional Developer Conference 2005, che si terrà a Los Angeles dal 13 al 16 Settembre 2005.

Nel mio blog ho creato una categoria apposita in cui vi terrà aggiornati sull'evento.

giovedì, maggio 26, 2005

Indigo workshop

In questi giorni ho partecipato ad un workshop sulla tecnologia Indigo presso la sede Microsoft di Monaco, riservato alle aziende che fanno parte di un programma di adozione anticipata di questa tecnologia.

Difficile dire in poche parole cosa Indigo è (come direbbe Yoda): è un programming model che riunisce ed amplia le tecnologie di comunicazione tra processi esistenti in ambiente Windows. Coordina e sfrutta al meglio quanto oggi è esistente con grande attenzione alla interoperabilità con ambienti diversi.

Detto così non sembrerebbe una grande cosa, invece si tratta dell'iniziativa più innovativa e di maggiore valore assoluto portata avanti da Microsoft negli ultimi anni.

Oggi esistono DCOM, COM+, MSMQ, .Net Remoting, ASMX, WSE, etc.... In base allo scenario che si affronta le scelte tecnologiche e di conseguenza l'object model da usare cambia. Ci siamo abituati ma è pur sempre una limitazione.
Indigo propone un object model unificato, molto ricco ma estremamente semplice, che distingue tra i compiti dello sviluppatore e le possibilità dell'amministratore, che permette di affrontare ogni scenario e ne abilita di nuovi.

Indigo può comunicare tramite code, può inviare comunicazioni fire and forget, può stabilire comunicazioni bidirezionali tra client e server anche tramite http: apre due canali distinti e riceve le comunicazioni server to client in modo trasparente...semplice ed efficace. Può usare diversi protocolli di comunicazione. Può fare molto altro...

Questo post su MSDN spiega sicuramente meglio cosa è Indigo. Indigo è uno dei pilastri di Longhorn ed il suo futuro è legato a quello di Indigo. Indigo, come Avalon, sarà disponibile anche per XP e 2003.

Nel prossimo futuro immagino ci saranno molte più applicazioni "rich-client" di quante ce ne siano in giro oggi.

Il framework .Net, dalla prima versione alla prossima 2.0, facilita enormemente la produzione di "rich-client", rendendone agevole anche la distribuzione (con ClickOnce per esempio). Molte applicazioni che oggi vengono realizzate in ASP.Net facendo salti mortali per aumentarne l'usabilità (senza grandi speranze) potrebbero essere realizzate in Windows forms. Ma questo non basta per invertire la tendenza, per spostare l'attenzione dal browser al desktop.

Longhorn non esisterebbe se la volontà non fosse quella di realizzare, almeno per Windows, un mondo di applicazioni ricche non basate su browser o sistemi che interoperano tra di loro, anche attraverso Internet, in modo sicuro ed affidabile, grazie ad Indigo.

Questo scenario mi piace e trovo uno spirito genuinamente innovativo in tecnologie come Indigo, ciò che spero è che (Microsoft) non si faccia troppo male per raggiungere questo obiettivo.

Solo il tempo dirà inoltre se con Indigo Microsoft manterrà la volontà di garantire l'interoperabilità verso gli standard (come WS-*) e le altre piattaforme o cercherà di fuggire in avanti offrendo nuove ed attraenti funzionalità a cui lo sviluppatore non saprà dire di no.

lunedì, maggio 16, 2005

Licenze Open Source

Avete poco chiara l'idea di licenza Open Source?
Questo link potrebbe aiutarvi a capire qualcosa:
http://www.dotnethell.it/articles/LicenzeOpenSource.aspx

martedì, maggio 10, 2005

Microsoft Coding4fun

Microsoft ha rilasciato un interessante sito per chi programma per divertimento e per hobby: ma ci sono robine davvero interessamti: Coding4fun !

mercoledì, marzo 02, 2005

.NET Conditio sine qua non

Direi che da ora in poi non si dovrebbe sviluppare nulla in ambiente .NET se non partendo dall'Enterprise Library, un insieme di cosiddetti Application Blocks che faciliteranno la comprensione e la realizzazione di Applicativi a livello Enterprise segiuendo le famigerate "best practices for .NET applications".

venerdì, febbraio 18, 2005

C# Boxing/Unboxing: non è uno sport!

Conversioni implicite di tipi valore in tipi object e viceversa: ecco come capire il meccanismo di boxing-unboxing:

C# Classi e Strutture: conosciamo davvero le differenze?

La situazione è cambiata da C++ a C#, basti pensare che in C# le structs sono value types, mentre le classi sono reference types... vediamo come capire e gestire questi tipi in questo interessante articolo.

.NET String.Format()

Se vi capiterà di dover formattare delle stringhe in .NET, qui trovate un simpatico ripostiglio di informazioni ed esempi pratici e non: String Formatting in C#

venerdì, gennaio 21, 2005

Embedding e utilizzo di Risorse in C#

Qui trovate due utili link che spiegano come "embeddare" risorse in un assembly e come utilizzarle da C#. Il tutto è semplicissimo grazie alle Reflection:

venerdì, gennaio 14, 2005

L'invidia del Mac

Questa sarà l'offerta dell'AppleStore fra qualche anno?
Mi sono sempre divertito a deridere i Mac ma in fondo (molto in fondo) mi piacerebbe avere un bel iMac in salotto che fa 4 cose e non sbaglia mai.....o forse ciò che mi attrae è la visione semplicistica del mondo visto con lenti Apple?
Se il mondo ti sembra troppo complesso, troppo veloce, con tecnologie che cambiano in continuazione, con una feroce competizione su una piattaforma più o meno aperta, è bello pensare che esiste un'alternativa: un ambiente costituito da meno di 10 prodotti hw (tiro a indovinare) e un s.o., prodotti che durano anni e non fanno niente di eccezionale...ma che però sono bellissimi!
Poi smetto di sognare e continuo a vivere nel mondo reale. Credo che Matrix farebbe usare Mac agli umani schiavizzati, altri ambienti forse dimostrano che Matrix non esiste. Oppure che è sadica.
Ho preso il link da questo post.

lunedì, gennaio 10, 2005

Personalizzare il file App.exe.config

Se avete bisogno di attaccarvi ad un file di configurazione diverso dal solito app.exe.config per esempio quando si crea un plugins per un applicazione host di terze parti o quando si fa il deploying dell'applicativo su com+ si potrebbe preferire l'utilizzo di un config file diverso da quello di default, ossia da: appname.exe.config. (dllhost.exe.config)
E' semplice fare un redirect dell'AppSettingsReader a un config file diverso scrivendo:
AppDomain.CurrentDomain.SetData(“APP_CONFIG_FILE”,”c:\\pippo.config”);
Tutte le chiamate al System.ConfigurationSettings.AppSettings ora useranno il nuovo binding…
Nota: Si può fare il bind aun file di configurazione una sola volta nell'istanza dell'app domain, ossia il cambio di binding DEVE essere fatto una sola volta PRIMA di usare l'app.config per la prima volta.

DA LEGGERE:
  1. Unraveling the Mysteries of .NET 2.0 Configuration
  2. Decoding the Mysteries of .NET 2.0 Configuration
  3. Cracking the Mysteries of .NET 2.0 Configuration

AGGIORNAMENTO:

.NET in Samples: free e-Book

.NET in Samples presenta molte tecnologie sulla piattaforma .NET come: security, cryptography, WMI, networking, IO e altro. Ancora in versione 'draft', ma molto completo: a tra poco la versione definitiva che verterà anche sulle features di Whidbey (pdf o doc).

martedì, dicembre 21, 2004

PInvoke Add-on per VS2003

In questo link trovate un bell'add-on per semplificare le chiamate del codice "unmanaged" dal codice "managed" di .Net (altri riferimenti li trovate sul sito PInvoke.net)

giovedì, dicembre 02, 2004

Starbucks

Questo articolo su TheServerSide.Net analizza i processi di vendita dei coffe shop Starbucks, un esempio di quali vantaggi porta il disaccoppiamento e la comunicazione basata su messaggi.

http://www.theserverside.net/blogs/showblog.tss?id=TwoPhaseCommit

martedì, novembre 30, 2004

Intervista a Kevin Mitnick

Su Week.It un interessante intervista sul social engineering a Kevin Mitnick, l'hacker più famoso .. dopo David Lightman aka Matthew Broderick in War Games.

http://www.weekit.it/weekit/unico/art006004040286.jsp


mercoledì, novembre 10, 2004

Shiftare bit in VB

Ecco degli esempi di come shiftare bit in VB, dato che in questo linguaggio non ci sono operatori nativi che permettano di farlo...
  1. http://www.xbeat.net/vbspeed/c_ShiftRight.htm
  2. http://www.xbeat.net/vbspeed/

martedì, ottobre 26, 2004

Guida Pratica ad ADO.NET

Questo articolo è, IMHO, la miglior guida pratica da me finora trovata sull'utilizzo di alcuni oggetti di ADO.NET, quali i DataTables, DataSets e la DataGrid. Dateci un'occhiatina, ne vale la pena.
Su quest'altro articolo, trovate invece una rapida e semplice introduzione all'utilizzo di ADO.NET in modalità connessa al DBMS.

Vedi anche questa bella intro ad ADO: http://www.aspitalia.com/articoli/aspplus/adodotnet.aspx

Sappiamo tutti cos'è la GAC?

Siamo sicuri di avere le idee chiare su cosa sia, a cosa serva e come funzioni la Global Assembly Cache? Bhè questi links potrebbero rivelarsi un valido aiuto:

giovedì, ottobre 21, 2004

Code Injecting

Microsoft Research ha rilasciato gratuitamente le librerie per il C.I. nella versione 1.5 di Microsoft Detours: usabile su architetture X86, permette di reindirizzare chiamate a funzioni di eseguibili Win32, verso funzioni target costruite a runtime dall'utilizzatore.
Basate in parte sull'utilizzo delle DebugAPI, sono utili nelle operazioni di Code injecting e di API Hooking.
In pratica la chiamata a funzione di un processo qualsiasi viene dirottata verso le funzioni create dal programmatore per far eseguire al processo stesso del codice esterno.
MS Detour sostituisce le prime istruzioni della funzione target con un jump incondizionato alla funzione deviazione creata dall'utente.
Le istruzioni della funzione target vengono conservate in una terza funzione detta funzione trampolino.
La funzione trampolino conterrà le istruzioni rimosse dal processo originario e un richiamo al resto della funzione target.
In questo modo si "inietta" un codice arbitrario in un processo; il codice viene preparato direttamente in memoria usando un set di funzioni, le quali realizzano una sorta di micro-assembler e gestiscono la rilocazione.
Chiamando la giusta sequenza di funzioni si riesce dunque a creare runtime un programma in memoria, praticamente come scrivendolo direttamente in assembler.
Questo rende estremamente preciso il filtraggio.
Ad esempio le procedure in una DLL possono essere deviate durante l'esecuzione di una specifica applicazione, mentre le procedure originali non verranno deviate nell'esecuzione contemporanea di un processo parallelo.
Al contrario del re-linking delle DLL e delle redirezioni statiche, l'efficienza del funzionamento delle tecniche di filtraggio usate in questi strumenti è garantita a prescindere del metodo utilizzato da un'applicazione o da un system code per localizzare la funzione bersaglio.
Oltre alle funzionalità base di filtraggio Microsoft Detour include funzioni per modificare la tabella di importazione DLL di qualsiasi eseguibile, per attaccare segmenti dati arbitrari a eseguibili esistenti, per iniettare una DLL sia in processi nuovi che pre-esistenti.
Una volta iniettate all'interno di un processo, le DLL possono deviare ogni funzione Win32, sia presente nell'applicazione che nelle librerie di sistema.
Microsoft Detour è liberamente scaricabile anche se è richiesta una licenza per un utilizzo commerciale.
(tratto da Programmazione.it)

lunedì, ottobre 04, 2004

Comega, forse un giorno coderemo con lui...

Comega AKA Xen AKA X#, è un nuovo linguaggio di programmazione generato da Microsoft Research e sviluppato in collaborazionecon l'Università di Cambridge.
C'è dentro tutto il C# 2.0 (quello di Whidbey, che deve ancora arrivare) + una bel pò di features per manipolare gerarchie XML e record (cosiddetti "tuple") di database, in Comega troviamo integrato anche Poliphonic C# (asynchronous concurrency abstractions).
Programmeremo indifferentemente, come affermano i suoi creatori ,con "circles, triangles, and rectangles."
Il cerchio reppresenta l'OOP (object-oriented programming).
Il triangolo reppresenta i dati strutturati gerarchicamente, ossia, XML.
Il rettangolo reppresenta i dati relazionali, o i dati di una tabella di Database.
Il tutto, dicono, si integri perfino con Visual Studio 2003.

I buchi più pericolosi?

Sicuramente quelli che non dipendono da noi. Un ottimo esempio sono quelli introdotti dal .NET framework 1.1 SP1.
Uno di questi, cioè quello che interessa il metodo Select dell'oggetto DataTable, l'ho segnalato tra i primi a mamma MS, nell'attesa di un pò di stucco da parte loro (un pò di auto-celebrazione).

domenica, ottobre 03, 2004

23 Esempi C# da Microsoft

Ecco una serie di esempi (ben 23) di codice C# utilissimi per capire alcuni dei paradigmi di programmazione del Framework .NET di Microsoft. Non ne ho provato ancora nessuno, ma solo perchè non ne ho avuto tempo, aspetto commenti in proposito.

venerdì, settembre 24, 2004

Dispose, questo sconosciuto...

Ecco un interessante post sul come, quando e soprattutto perchè usare il metodo Dispose deglio oggetti .Net.

giovedì, settembre 23, 2004

SharpWebMail: la mail gestita da ASP.NET

SharpWebMail E' un ASP.NET webmail application scritta in C#. Usa un server POP3 o IMAP come mailstore e spedisce mails via SMTP. Si possono comporre messaggi HTML, ricercare nella propria inbox, leggere messaggi MIME complessi e altro ancora.
Compatibile con .NET e Mono.
P.S.: una chicca è che viene utilizzato l'HTML editor FCKeditor per comporre le mails.

Un'introduzione alla Reflection

Un articolo carino sull'introduzione a System.Reflection.
Namespace forse non proprio utilizzato proprio ogni giorno, ma molto utile, davvero...

Qui trovate del codice di esempio che utilizza Reflection molto carino: estrazione di WebMethod per WS da una dll normalissima via Reflection: http://www.codeproject.com/dotnet/ExtractMethodInfo.asp

SQLDoc: documentare DB SQL Server/MSDE

Una piccola utility a riga di comando utile per documentare il vostro DB (MS!).
Disponibile anche il codice sorgente.
Serve anche per capire XSLT a chi, come me non lo ha mai utilizzato...

martedì, settembre 21, 2004

Chi è senza peccato scagli la prima pietra...

Sono abbastanza restio a criticare o deridere gli errori di altri sviluppatori (a meno che non li conosca e li consideri dei "pari") visto che tutti commettiamo degli errori e, come diceva il mio Maestro, "un giorno, fra qualche anno, guarderai del codice scritto oggi e sicuramente ti chiederai come hai potuto scrivere qualcosa di talmente assurdo e stupido".

Però quando si tratta di consulenti strapagati di una azienda che incontra sempre le mie simpatie...

The Daily WTF è un blog che raccoglie le perle di saggezza che il nostro gruppo di esseri umani genera ogni giorno.

mercoledì, settembre 15, 2004

SOAP over UDP

ciao Amici,
guardate qua: finalmente le specifiche SOAP per comunicare via UDP. Si apre un mondo interessante!
SOAP over UDP
Baci

martedì, settembre 14, 2004

La perla nascosta di ADO.Net 2.0

Questo è il mio primo post nel blog del mio amico Marco...che onore!

In ADO.Net 2.0 ci sono numerosi miglioramenti, ma l'innovazione meno pubblicizzata è secondo me la più importante.

C'è un nuovo namespace chiamato System.Transactions che, per semplificare alla grande, porta all'interno del Framework la gestione delle transazioni distribuite via DTC.
Ad oggi da .Net si usa DTC direttamente (non oso pensarci) oppure attraverso COM+, fondamenta delle applicazioni distribuite, che nel framework occupa il namespace System.EnterpriseServices.

Chi ha usato COM+ via System.EnterpriseServices sa che non è una bella esperienza: tutte le assemblies devono avere strong name (e non è un problema) e si è costretti a inserirle nella GAC; se non ci sono altri buoni motivi che spingono a usare la GAC si perdono per nulla i vantaggi del deployment semplificato di .Net. Non è finita, c'è anche il tool regsvcs che registra l'assembly come package in COM+.

Tutte queste configurazioni ed operazioni aumentano i tempi di sviluppo e le probabilità di errore... Inoltre è un peccato rinunciare alle potenzialità di .Net per usare alcune delle capacità di COM+.

Nel framework 2.0 la gestione delle transazioni (distribuite via DTC o leggere "Lighweight") è totalmente managed, non esiste nessuna classe da ereditare, nessuna configurazione particolare, nessun tool da utilizzare.....un enorme passo avanti.

Questi link aiutano a capire meglio le potenzialità di System.Transactions...vedrete quanto poco serve per gestire le transazioni.
http://weblogs.asp.net/angelsb/archive/2004/07/06/174215.aspx
http://weblogs.asp.net/angelsb/archive/2004/07/07/175586.aspx
http://msmvps.com/williamryan/archive/2004/07/08/9759.aspx
http://weblogs.asp.net/angelsb/archive/2004/07/15/184297.aspx

I 10 Tools che tutti dovrebbero avere

Su MSDN Magazine è uscito un interessante articolo sui "Ten Must-Have Tools Every Developer Should Download Now". Visto che alcuni di questi tools li avevano segnalati su questo blog alcuni dei contributors, vuol dire che non siamo tanto scarsi nel consigliarli...
Mi piacerebbe che nei commenti di questo post segnalaste anche voi la vostra Top 10 personale (ovviamente so già che nella mia comparirà SourceEdit e in quella di Maxmost Ultraedit, ma c'est la vie...)

venerdì, settembre 10, 2004

ADO.NET e il metodo DeriveParameters

Esiste un metodo particolare che ci permette di scoprire a Runtime tutti i parametri di una determinata Stored Procedures. Il metodo è DeriveParameters.
Interessante anche l'utility SP/Invoke che trovate disponibile anche con i sorgenti presso ObjectNation, utile per wrappare e semplificare le chiamate alle Stored Procedures da C#, VB.Net e JScript.Net.


mercoledì, settembre 08, 2004

XP EnableVisualStyles

Basta aggiungere:
Application.EnableVisualStyles()
Application.DoEvents()
come consigliato qui.

Vedi anche:

lunedì, settembre 06, 2004

OpenFTP.NET

OpenFTP.net è una client library FTP open scritta in C# per .Net. Offre upload in modalità sia attiva che passiva e un infrastruttura base per tutto il resto...

OpenSMTP, OpenIMAP & OpenPOP for .NET

OpenSmtp.net è un componente open source SMTP scritto in C#. Non si basa sulle classi System.Web.Mail del .Net Framework e permette di usare SMTP servers diversi dal MS SMTP. ha anche un web service che permette di spedire email via HTTP.

OpenImap.net è una Class library/component scritta in C# per comunicare con IMAP Servers. Compila sia su Mono che sul .NET framework.

OpenPop3.net è una .NET Class library in C# per comunicare POP3 Servers (recuperare/cancellare messaggi e attachments). Suppora il decoding di files in Base64/QP encoding, inclusi attachemnts, formato MS-TNEF, e file MS mht. Compilea su Mono, DotGNU e sul .NET framework

giovedì, settembre 02, 2004

Segnalazione URL: Everest HE

Da vecchio utilizzatore del validissimo AIDA32, ora mi sono allineato allo stato dell'arte e uso il completissimo Everest HE: vi fornisce una completissima analisi del vostro PC sia HD che SW, non penso che in giro si trovi di meglio... provare per credere.

mercoledì, settembre 01, 2004

.NET Web.Mail

Penso che questo sia il più esauriente sito sulle tematiche riguardanti il namespace Web.Mail. Inizia con un introduzione e con degli esempi di programmazione. Termina con risoluzioni di difficili problemi e altre risorse.

SQLOps: Helper class per i DataSet

In questo blog trovate infos e brandelli di codice su SQLOps: una classe helper sull'utilizzo dei DataSet in maniera "smart" estendendo le features che offrono nativamente, tipo GROUP BY, DISTINCT , JOIN perfezionate, ecc...
Utile per trarre qualche idea...

lunedì, agosto 30, 2004

Sysinternals - Process Explorer

Ecco un'ottima alternativa al Task Manager :Sysinternals Freeware - Process Explorer. La cosa bella? Oltre a tante altre:
a) per gli sviluppatori .NET c'è un tab che mostra tutti i contatori di performance!
b) per chi sviluppa in multithread c'è la possibilità di terminare il singolo thread!

venerdì, agosto 27, 2004

VB.NET & C# escape chars

Se scrivete in VB.NET è scomodo scrivere così:
Dim text As String = ControlChars.Tab & "A string indeted by a tab" _
& ControlChars.CrLf & "A string on a separate line"


Vi piacerebbe magari poter scrivere come in C#:
string text = "\tA string indented by a tab\nA string on a separate line";

Bhè, potete sempre usare le Regular Expressions:
' Ovviamente dovete avere il seguente Imports statement
' Imports System.Text.RegularExpressions

Dim text As String = Regex.Unescape("\tA string indeted by a tab\nA string on a separat" _
& "e line")





Come avere successo con ADO.NET

Terzo articolo della serie ADO-Esposito interessante per ottenere le migliori performances da ADO.NET

.NET Managed Providers

Ancora un bell'articolo di Esposito su .NET Managed Providers

10 Comandamenti di ADO.NET

Interessante articolo di Dino Esposito da prendere come i "dieci comandamenti della programmazione per ADO.NET".

martedì, agosto 24, 2004

ieHTTPHeaders

Interessante tool che si integra in explorer per spiare i pachetti che transitano da client a server.
blunck.info

venerdì, agosto 20, 2004

Politica di versioning degli Assembly in .NET

Se avete bisogno di referenziare a runtime una versione particolare di un assembly dal vostro applicativo, anche piu' vecchio, aggiungete al vostro AppName.exe.config la seguente sezione (ovviamente sostituendo opportunamente Name, PKT, e version)



<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">


<dependentAssembly>
<assemblyIdentity name="calcR"
publicKeyToken="a1690a5ea44bab32"
culture=""/>


<bindingRedirect oldVersion="5.0.0.0"
newVersion="6.0.0.0"/>


</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>



Tratto da: GotDotNet

giovedì, agosto 19, 2004

.NET Tool: ILMerge

Date un'occhiata a questa utile utility (scusate la pseudo-ripetizione) direttamente dal sito "Microsoft Research". Permette di unificare più assemby in uno solo (es.: un .exe e una .dll in un singolo .exe) cosa che il VS.NET non fa (non ha infatti un vero e proprio linker). Mi domando: ma se lo hanno fatto loro, perchè non lo hanno messo dentro all IDE?

martedì, agosto 17, 2004

Segnalazione URL: Pinvoke

Ricordate il vecchio API Viewer?!? O il piu' completo e recente API-Guide?!?
Bhe', ora per semplificarci le chiamate API32 da C# e/o VB.NET ecco a voi: http://www.pinvoke.net/

Segnalazione URL: EXSLT.NET

Ottima classe per lavorare con XSLT e XPath in .NET
EXSLT.NET
Per vedere lo standard emergente: exslt.org

giovedì, agosto 12, 2004

Web Accessibility Toolbar

Utile strumento per analizzare le pagine HTML su internet: potete controllare/testare CSS, validare i documenti con W3C, analizzare i Metatags, le immagini, i livelli colore/contrasto, etc.
Lo trovate qui.

mercoledì, agosto 11, 2004

Free All-purpose Editor

Non me ne voglia Joacim Andersson, ma, nell'attesa di SourceEdit v 4.0, vi propongo di provare Smart Editor Pro, quello che si autodefinisce "the swiss army knife for developers". BTW, il futuro potrebbe riservarci una collaborazione tra Bob Drewry e Joacim Andersson...

lunedì, agosto 09, 2004

Rilevare cambiamenti con XML DataSets

Interessante lettura che spiega come i DataSets forniscano un potente meccanismo per memorizzare informazioni, anche tener traccia di tutti i cambiamenti effettuati. E' solo un problema di fare il cambiamento nella giusta maniera.

Microsoft Agent

Ecco qui spiegato come usare i simpatici Microsoft Agent per implementare un help piu' accattivante. Trovate un esempio di utilizzo anche sul mio sito, sempre che abbiate gli agent installati!

Codice .NET con XML Schema

In questo articolo trovate come generare codice in automatico in C# partendo da uno schema xsd, si parla di typed datasets e classi generate con l'xsd.exe tool.
Per infos in generale su DataSet e XML guardate qui.

Accedere a dati Web da codice

Questo articolo spiega come usare DHTML e il Document Object Model per accedere agli elementi del controllo Web Browser e automatizzare il recupero di dati.

venerdì, agosto 06, 2004

Segnalazione URL: Interessanti esempi per .NET

In questo sito trovate vari esempi di codice in ambito .NET utili per chiarirsi le idee sui vari aspetti di questa tecnologia

Filtri e Transizioni su IExplorer

In un ambiente non Eterogeneo, dove si è sicuri che il Browser sia IE 5.5 o sup., per decrementare notevolmente il peso in KB delle pagine, si possono creare effetti notevoli con i filtri e transizioni…
Filters and Transitions Interactive Demo

Segnalazione URL: RSS feed Aggregator per Outlook

Vi segnalo questo interessante tool per avere sempre in posta i vostri blogs/siti preferiti che supportano RSS. Il plugin è molto ben fatto ed è gratuito per uso personale.
IntraVnews

giovedì, agosto 05, 2004

SQL Server 2000 Workload Governor

A chi credeva che MSDE supportasse 'solo' 5 operazioni attive nello stesso istante dedico la lettura di questo interessante documento, 8, non 5, 8!

Web Services Tutorial

Qui invece trovate un PDF che illustra il mondo dei Web Services, dalla base (cosa sono e a cosa servono) fino ad addentrarsi nell'ambito XML e SOAP. Il tutto sviluppato e testato in ambiente Visual Basic .NET.

XML Tutto ed oltre

Qui trovate la versione PDF di questo libro: cos'è il linguaggio XML, come funziona e come viene utilizzato. Questo e-book illustra in modo dettagliato l'universo di tecnologie che ruota intorno a questa semplice sigla: editor, parser, validatori, applicazioni. E ancora, fogli stile, browser e codifiche diverse. (per approfondimenti vedete anche questo link)

mercoledì, agosto 04, 2004

Segnalazione URL: UML & dintorni

Poseidon for UML: Un ambiente per la modellazione UML (Unified Modeling Language) che consente di creare e gestire diagrammi UML rispettando lo standard 2.0. Sviluppato interamente in Java, è in grado di generare codice sorgente in questo linguaggio partendo dal progetto UML e di esportare i diagrammi sotto forma di immagini.

Segnalazione URL: Reflector.NET

Reflector.NET: Un visualizzatore di oggetti (class browser) in grado di decompilare eseguibili (.exe) e librerie (.dll) realizzate col .NET Framework. Attraverso un processo di reverse engineering è possibile ottenere il codice sorgente "nativo" con sintassi C# o Visual Basic. Consente la ricerca tra tipi, membri e riferimenti. Propone un IL disassembler, C# e VB decompiler. Dispone di visualizzatori per assembly e namespace, albero delle dipendenze, gerarchia dei tipi, file di risorse e guida MSDN. Infine, possiede un navigatore per la documentazione XML che si può generare automaticamente dagli assembly .NET sviluppati con C#. Completo di codice sorgente.

Segnalazione URL: JGrasp Editor

JGrasp: un free editor per Java, C, C++ e altro che oltre al semplice editing / debugging, permette una visualizzazione grafica che aiuta la comprensione della struttura del codice, inoltre supporta UML.

lunedì, luglio 26, 2004

Segnalazione URL: Microsoft Data Access Components (MDAC) Utility

Component Checker
Se incontrate problemi a livello di MDAC, prima di fare passi falsi usate questo utile tool per capire che versione e' installata sulla macchina su cui operate...
Altri riferimenti su Data Access & Storage Developer Center

Segnalazione URL: Connection Strings

Connessioni a DBMS? Vi ricordate a memoria tutte le connectionstrings per ogni diverso DB?
No?!? Allora date un'occhiata qui!

Segnalazione URL: Error Bank

Error Bank: A volte otteniamo errori dalle esecuzioni dei nostri programmi che sono davvero criptici.
Qui potrete consultare l'oracolo che potrebbe aiutarvi nella soluzione del problema...