aprile 2007 Blog Posts
Dynamics AX 4.0, fino alla versione 3.0 noto come Axapta, è un ERP complesso, dedicato a medie/grandi aziende, di cui Microsoft è diventata proprietaria acquisendo alcuni fa la società che lo ha sviluppato (http://en.wikipedia.org/wiki/Axapta). La cosa curiosa, per uno sviluppatore, è che possiede un proprio ambiente di sviluppo denominato MorphX con quale è possibile creare personalizzazioni di varia forma e complessità. MorphX include:- un proprio designer di form - un designer di report (che non è Reporting Services...)- un tool di analisi statica del codice (!) denominato Best Practice Tool- un ambiente per modellare i dati (creando ad es. proprie "tabelle" senza...
Ho già avuto modo di parlarne un paio di volte (1, 2) tra le righe. Questa volta ho però pensato di dedicare un apposito post visto che personalmente reputo MooTools un framework veramente efficace, ricco di funzionalità ed elegante. L'ideatore e leader del progetto è un italiano: Valerio Proietti. Sinteticamente si tratta di una libreria JavaScript compatta (qualche decina di Kb), compatibile con i browser più diffusi (IE 6/7, Firefox, Safari, Camino) e veramente ricca di funzionalità di vario tipo (manipolazione DOM, effetti grafici, interazione server side AJAX, ...). E' molto interessante quando serve costruire un'applicazione web che ha una parte client...
Con gioia apprendo che è di prossima uscita il libro intitolato "Introducing Microsoft LINQ", scritto da due autorevoli e noti professionisti italiani: Marco Russo e Paolo Pialorsi.Ai due autori i miei complimenti!
Per caricare runtime in un AppDomain un assembly a partire dal suo path assoluto è sufficiente scrivere qualcosa del tipo:
using System.Reflection;
// ...Assembly asm = Assembly.LoadFile(@"E:\temp\Foo.dll");
In particolare, il metodo LoadFile carica l'assembly nell'AppDomain del chiamante.Non è purtroppo possibile fare la stessa cosa ad esempio da una applicazione VB6 che fa da host del CLR, perchè il metodo LoadFrom non è disponibile via COM Interop. L'ostacolo è però aggirabile utilizzando il metodo CreateInstanceFrom di AppDomain che invece è disponibile via COM Interop. E' sufficiente avere nell'assembly da caricare una classe istanziabile, accessibile via COM Interop con costruttore senza parametri (pubblico).Il codice VB6 potrebbe essere:
Dim...
Segnalo un problema (e la relativa patch) che mi ha impegnato per mezza giornata ieri. Ho realizzato un add-in per Office 2003/2007 che utilizza funzionalità di un assembly .Net in cui alcuni tipi sono riesposti via COM Interop; per farlo l'add-in fa da host del CLR al quale chiede di caricare l'assembly. Andando al nocciolo della faccenda, il problema si può riscontrare anche riscrivendo semplicemente il codice come macro Office:
Sub Macro1() Dim Runtime As CorRuntimeHost Set Runtime = New CorRuntimeHost '(*) Runtime.StartEnd Sub
E' necessario referenziare le seguenti type library:"Common Language Runtime Execution Engine 2.0 Library" (C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscoree.tlb)C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb
Sulla mia macchina (Win2003 Server, Visual Studio 2005, Office 2007)...
Segnalo un interessante progetto della community Mono, Mono.Addins, il cui obiettivo è quello di mettere a disposizione un framework per costruire applicazioni con parti "pluggable".