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