gennaio 2006 Blog Posts
Come è noto, scrivendo applicazioni con COM+ 1.5 è possibile rendere i propri oggetti di business automaticamente disponibili come web services attivando il flag Use Soap del tab Activation dell'applicazione. Questa mattina però sono incappato in un problema "interessante" ( si fa per dire ) la cui soluzione è arrivata dai gruppi google dopo una ricerca estenuante. Il problema: alcuni componenti non riuscivano a generare correttamente il WSDL, in particolare l'errore era:System.NullReferenceException: Object reference not set to an instance of an object.
at System.Runtime.Remoting.MetadataServices.WsdlGenerator.RealSchemaType.Resolve(StringBuilder sb)
at System.Runtime.Remoting.MetadataServices.WsdlGenerator.XMLNamespace.Resolve()
at System.Runtime.Remoting.MetadataServices.WsdlGenerator.Resolve()
at System.Runtime.Remoting.MetadataServices.WsdlGenerator.Generate()
...
E uscito da poco un nuovo progetto di pattern & practicies. Si chiama Smart Client Baseline Architecture Toolkit, un altro aiuto per chi deve sviluppare applicazioni smart client. Oltre a comprendere come sottosistema il CAB, dovrebbe intergrare anche altri application block e offrire dei tool di sviluppo integrati in visual studio oltre che una documentazione esaustiva.
Come è noto nel CF 2.0 sono stati fatti dei grossi passi avanti nell'ambito com interop: Infatti ora è possibile chiamare oggetti com nativi da codice Managed.
Purtroppo però il passo inverso è ( praticamente ) impossibile, in particolare se l'applicazione Host è in codice nativo. Come fare quindi ? beh, l'Idea potrebbe essere usare qualche strategia di IPC e costruire un eseguibile console in codice managed che faccia da object broker per il codice nativo.
Il problema è: quale strategia IPC usare ? uni idea potrebbe essere questa chiamata Message Queue P2P, API presente solo su windows CE che consente...
Nel mio precedente post ho manifestato un certo entusiasmo per il Composite UI Application Block dopo aver scritto una piccola applicazione di prova. Continuando nei test ho fatto crescere il programma e sta diventando qualcosa di serio. La cosa interessante ( IMHO ) è che con uno sforzo pressochè nullo sono riuscito a organizzare una applicazione estendibile con un modello plug-in, e on comandi/eventi e servizi aggiungo nuove funzionalità senza modificare l'applicazione root. Un service aggiuntivo permette ai plug in di decorare i menu e le toolbar con nuovi item, ottenendo così un ulteriore disaccopiamento tra UI e codice. Immaginando di...