Paolo Pialorsi

SOA, Workflow Foundation (WF), Windows Communication Foundation (WCF) e le Architetture Distribuite

News

dicembre 2004 - Posts

Buon 2005 e i miei propositi !!!!

Da oggi per qualche giorno (penso fino alla Befana) avrei intenzione di staccare il cervello :-) ammesso che sia mai stato realmente connesso ... :-D
Stasera cena da amici, domani sonno da coma profondo fino alla mattina del 2 gennaio. Il 2 gennaio risponderò alle circa 40 email che ho in coda (sorry ma nell'ultimo periodo sono stato davvero molto preso). Vi assicuro che il 2 risponderò a tutti coloro i quali non hanno ancora avuto risposta, anche se ho cercato di non farmi mai attendere più di una 15na di giorni.

Infine, visto che l'ha fatto Marco :-), metto anche io i miei buoni propositi per il 2005:

  • Fare una DevCon OneDay coi fiocchi qui a Brescia!
  • Dedicarmi nei primi mesi dell'anno a qualche progetto rilassante, per riposarmi un po', perchè sono molto stanco
  • Scrivere un nuovo libro .... ho già delle idee ma si vedrà
  • Spingere al massimo su SOA e Smart Client
  • Approfondire SQL Server 2005
  • Andare in ferie come si deve!
  • Andare in piscina o in palestra (senno mi rottamano...)

C'è un'altra cosa che nel 2005 inevitabilmente succederà .... ma preferisco non dirla esplicitamente, perchè mi fa paura :-), dico solo che cambierò casa e che chi vive con me in questa casa ... rimarrà dov'è .... si capisce a cosa mi riferisco?! Sob!!! :-)

Sarà un bel 2005! Ne sono certo .... Auguro a tutti un nuovo anno ricco di soddisfazioni e di codice bello da scrivere e da vedere!

Bridge the gap!

Posted: dic 31 2004, 11.50 by paolo
Filed under:
La sicurezza e l'innovazione tecnologica!

Ieri sera ho avuto modo di leggere una specifica per eseguire delle transazioni con carta di credito (e-commerce) di un nuovo sistema di pagamento che sta nascendo. Inutile dire che le realtà che si occupano di queste specifiche di solito sono banche o comunque istituti di credito. Negli ambienti bancari, su molti aspetti e fronti, noto una spinta all'innovazione tecnologica nonostante il peso e la dimensione delle realtà. Sul fronte del commercio elettronico vedo le stesse cose da almeno 6 anni! Ebbene mi trovo un documento che:

  1. Basa la sua sicurezza sulla riservatezza del documento che descrive la specifica (ZIP protetto con password)
  2. Utilizza campi <input type="hidden"> per contenere e passare le informazioni dall'esercente al server di pagamento
  3. Supporta solo, dico solo!, ASP 3.0, JSP e PHP. E ASP.NET?!!!!

Alla luce di questi fatti dico: è ora di darsi una svecchiata! :-)

Adunata alle armi: alla prima banca/istituto di credito che vuole implementare un sistema di pagamento con carta di credito, per soluzioni di commercio elettronico, basato su Web Services ASP.NET, WSE2 , WS-Security (specifica OASIS) e WS-SecureConversation  offro due giornate di consulenza gratuite, nella seconda metà di gennaio, ovviamente esclusi i costi di trasferta (vabbé che è Natale ... ma ... :-) ....).

Vedete di non deludermi! Per approfondire il discorso contatti privati via email (paolo@devleap.com).

IBM ETTK 2.2
A  Brescia il 13 dicembre è S. Lucia, che porta i doni ai bimbi. Il giorno di S. Lucia IBM ci ha regalato ETTK 2.2.
Qtek 8080 + TomTom

Non me ne frega nulla di fare pubblicità al sito di cui sto per parlare :-) ... ma mi sembra un bundle interessante, nel senso che è già tutto pronto senza alcun tipo di sbattimento per prendere i pezzi e metterli insieme: Qtek 8080 + TomTom.

Rimango comunque dell'idea che il 2020 e il 9090 siano più pratici, almeno per l'utilizzo che ne faccio io, perchè hanno lo schermo più grande. Non vedo l'ora che esca un device simile con risoluzione 640x480, a quel punto saremo veramente arrivati ad una situazione di massima usabilità anche in connessione remota (Terminal Server) ad un PC in ufficio. Ad oggi quando mi collego in VPN con l'ufficio mi pesa un po' continuare a scrollare lo schermo sul Qtek 2020.

DevCon OneDay: SOA e Smart Client

In questi giorni sono molto preso (si vede anche dal mio blog e dal tempo medio con il quale rispondo alle email, usando il metro di valutazione che faceva notare Franscesco ...) e francamente in alcuni casi sono anche un po' stanco :-( .... ma mi sono ritagliato 1 minuto per dirvi che:

  • DevCon OneDay sta andando bene, dai feedback che ho ricevuto per ora e dalle prenotazioni di posto che ho ricevuto
  • Ci sono delle novità che non svelo ancora, ma spero di potervi comunicare a breve
  • Se volete essere della partita vi consiglio di opzionare la vostra iscrizione perchè il tempo passa inesorabilmente :-) e i posti sono limitati.

Bridge The Gap!

Ragazzi! I love that company! :-)

Oggi ho ricevuto, come molti di voi credo, se la vostra società è partner Microsoft, un bel cofanetto dal nome "Technical Demonstration Toolkit" con dentro la bellezza di 8 (dico otto!) DVD con macchine virtuali VirtualPC, demo, slide, video, ecc. il tutto per dimostrare ai miei potenziali clienti che con le tecnologie Microsoft si possono realizzare soluzioni complete e funzionanti. Gli argomenti trattati sono i seguenti:

  • Communication and Collaboration
  • Development
  • System Management
  • Office Automation
  • Small Business Server and Custom Relationship Management
  • Security
  • SQL Server and Business Intelligence
  • Windows

Spettacolo! Io amo quell'azienda! :-)

Posted: dic 14 2004, 12.51 by paolo
Filed under:
StackTrace: epilogo della storia

"StackTrace may not report as many method calls as expected, due to code transformations, such as inlining, that occur during optimization."
Tratto da:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemexceptionclassstacktracetopic.asp

Come mi è stato segnalato sul mio blog in inglese.

Posted: dic 13 2004, 10.03 by paolo | with 1 comment(s)
Filed under:
Feedback interessante al mio post sul presunto bug di .NET

Date un'occhiata qui. Ho fatto la prova e in effetti la spiegazione che mi è stata fornita ha senso, tanto è vero che utilizzando l'attributo [MethodImpl(MethodImplOptions.NoInlining)] effettivamente il presunto "bug" si risolve.

Ora sarebbe da capire se possiamo comunque classificare questo comportamento come un "bug" oppure no ... voi che dite?

Secondo me lo StackFrame non dovrebbe essere modificato dalle politiche di compilazione del Jitter, però vale sicuramente la pena di approfondire il discorso.

Posted: dic 13 2004, 01.19 by paolo | with 2 comment(s)
Filed under:
SQL Server 2005 CTP - December 2004 - Developer Edition (English)
Sto decisamente lavorando troppo ... mi sono accorto solo ora, con 10 giorni di ritardo, che su MSDN è possibile scaricare una nuova build di SQL 2005.
Posted: dic 12 2004, 02.30 by paolo
Filed under:
StackTrace, Assembly e .NET

Oggi io e Cristian abbiamo perso quasi un'ora a rincorrere un bug che si presentava in un'applicazione che, compilata in debug funzionava benissimo, mentre in release si schiantava all'avvio. Bello eh?! :-)

Alla fine, dopo aver tribulato per parecchio tempo, abbiamo scoperto una cosa a dir poco singolare. Non voglio parlare di bug, perchè non ne sono ancora sicuro, però di effetto collaterale :-) di qualcosa di strano sì ...

Guardate questo codice (scaricabile per intero da qui):

using System;
using System.Reflection;
using System.Diagnostics;
namespace ClassLibraryTest
{
 public class TestClass
 {
  public String ExecutingAssemblyName(Boolean showProblem)
  {
   if (showProblem)
    return(GetExecutingAssembly(2).FullName);
   else
    return(GetExecutingAssemblyOk(2).FullName);
  }
  private System.Reflection.Assembly GetExecutingAssembly(Int32 stackWalkLevel)
  {
   // Ottengo lo stack
   StackTrace stack = new StackTrace(stackWalkLevel, false);
   // Ottengo il frame
   StackFrame frame = stack.GetFrame(0);
   // Ottengo il nome del metodo
   MethodBase method = frame.GetMethod();
   // Leggo e restituisco l'assembly che contiene il chiamante   
   return(method.DeclaringType.Assembly);
  }
  private System.Reflection.Assembly GetExecutingAssemblyOk(Int32 stackWalkLevel)
  {
   // Ottengo lo stack
   StackTrace stack = new StackTrace(stackWalkLevel, false);
   // Ottengo il frame
   StackFrame frame = stack.GetFrame(0);
   // Ottengo il nome del metodo
   MethodBase method = frame.GetMethod();
   // Leggo e restituisco l'assembly che contiene il chiamante   
   return(Assembly.Load(method.DeclaringType.Assembly.FullName));
  }
 }
}

Provate a chiamare il metodo ExecutingAssemblyName da una classe di un progetto ASP.NET, perchè negli altri casi non succede.
Ora se siete in debug il metodo GetExecutingAssembly funziona correttamente. Se passate in Release, smette di funzionare, in quanto la lettura della proprietà FullName restituisce il fullname di System.Web, anzichè quello corretto.
Lo so sembra assurdo ... per questo allego il progetto. Così potete provare anche voi e dirmi se: 1) succede anche a voi, io ho provato su 2 macchine diverse e succede 2) se vi viene in mente il perchè (Marco?! Hai delle idee in merito?)

La cosa è molto curiosa. Purtroppo FullName ha una implementazione riservata:

[MethodImpl(MethodImplOptions.InternalCall)]
private extern string GetFullName();

come si vede con Reflector. Chissà che succede lì dentro :-) ...

Cambiando l'istruzione:

return(method.DeclaringType.Assembly);

con:

return(Assembly.Load(method.DeclaringType.Assembly.FullName));

che semplicemente ricarica l'assembly, che poi tanto è già in memoria nell'AppDomain corrente, tutto funziona regolarmente. Sono abbastanza propenso a pensare che il problema si in FullName perchè se lo chiamo prima di restituire l'assembly, funziona, viceversa se lo chiamo fuori dal mio metodo GetExecutingAssembly smette di funzionare.

Bello vero?! Un'ora di vita persa per questa ragione :-) !!!

Posted: dic 10 2004, 07.26 by paolo | with 9 comment(s)
Filed under:
Da Brescia al Messico con furore: evvai Morrison!

Lo so che non c'entra nulla con i miei soliti post ... ma questo è un mio amico, di quelli che anche se emigrano in Messico non ti lasciano, mi sembra quindi giusto segnalarvi la sua esperienza, tantopiù che è di natura tecnologica:

http://punto-informatico.it/p.asp?i=50757

Grande Morriz!

Posted: dic 10 2004, 01.43 by paolo
Filed under:
Windows DNA 2000 e SOA: la nostalgia e l'età che avanza

Sto scrivendo il mio prossimo articolo per VBJ, in ritardo di solo (!) una settimana rispetto alla scaletta di marcia, sperando che Alberto non mi fucili! :-)

Si tratta di un'introduzione teorica alla Service Oriented Architecture (potete leggere tra le righe di questo post un messaggio subliminale: DevCon OneDay ... DevCon OneDay .... DevCon OneDay .... :-) !!!).

E non soddisfatto del ritardo, dal momento che volevo fare una citazione storica (quando si inizia con le citazioni storiche ci si rende conto di essere vecchi ...vero Marco? ;-)) riferendomi all'architettura Windows DNA 2000, ho provato a fare una ricerca in Google (non so perchè l'ho specificato, tanto non esistono altri motori di ricerca...) e cosa ti trovo? Un quintale di siti web che pubblicano la mitica immagine che è rappresentata da ormai 3 anni anche sul mio fedele mousepad.

Non ho resistito alla spinta emotiva e nostalgica e quindi pubblico quell'immagine anche nel mio blog:

 

Guardando questo schema mi rendo conto di quanto fossero avanti quelli che in Microsoft anni fa (si era a cavallo tra il 1997 e il 1998) hanno proposto una simile architettura, oggi sicuramente rivisitabile ma ancora attualissima per molti aspetti.

Posted: dic 08 2004, 11.55 by paolo
Filed under:
WSE2 SP2: Pronto!
Come segnalato qui potete scaricare WSE2 SP2 in versione finale da qui.
Sharepoint: due link utili

Li segno per me:

http://andrewconnell.com/blog/
http://weblogs.asp.net/nigelbridport/archive/2004/11/30/272173.aspx

Ma magari servono anche ad altri.

Posted: dic 03 2004, 10.58 by paolo
Filed under:
Visual Basic Journal: speciale sicurezza

Da poco è uscito (ed è in spedizione) il nuovo numero di Visual Basic Journal, sul quale è presente uno speciale sulla sicurezza al quale abbiamo contribuito anche io e Marco. Siccome questo è un numero che mi piace particolarmente vi consiglio di leggerlo.

Posted: dic 01 2004, 11.52 by paolo
Filed under:
More Posts Next page »