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.
venerdì, giugno 10, 2005
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.
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
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 !
lunedì, marzo 07, 2005
Regular Expression
Avevamo in precedenza segnalato un utilissimo tool a riguardo (vedi Regulator nel blog), ma adesso forniamo un utile link ad un tutorial che infarina ottimamente sull'argomento:
altri links a riguardo:
- http://www.codeproject.com/useritems/RegexTutorial.asp
- http://www.regular-expressions.info/
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconregularexpressionslanguageelements.asp
- http://www.oreilly.com/catalog/regex2/
- http://www.oreilly.com/catalog/regex2/chapter/ch09.pdf
- http://search.cpan.org/dist/perl/pod/perlre.pod
- http://www.regexlib.com/
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.
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:
AGGIORNAMENTO:
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:
- Unraveling the Mysteries of .NET 2.0 Configuration
- Decoding the Mysteries of .NET 2.0 Configuration
- Cracking the Mysteries of .NET 2.0 Configuration
AGGIORNAMENTO:
.NET in Samples: free e-Book
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
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
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...
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
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)
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)
Iscriviti a:
Post (Atom)
