Java di...

Sollecitato da http://blogs.ugidotnet.org/pierregreborio/archive/2005/10/07/27726.aspx vi illumino con altre tre belle esperienze sull'uso più o meno quotidiano di Java...

1) All'interno di un singolo Exe può essere caricata una ed una sola Virtual Machine. Buona fortuna se, putacaso, state facendo un'applicazione che giri sotto Asp.Net e che debba interagire con 2 applicazioni Java ognuna delle quali abbia necessità (come ad esempio l'applicativo bancario del post sopra) di una versione specifica della VM... capisco che voler interagire con Java usandi JNI da dentro Asp.Net è un po da pazzi, ma essere costretti a wrappare tutto con dei Web Service in modo che ogni applicativo Java giri nel suo ambiente mi sembra ancora più da pazzi

2) Oracle usa pesantemente Java e, pure lui, vuole la sua versione precisa di JVM. Il risultato, sulla mia macchina, è che se uso il client Oracle dopo altre applicazioni che usano Java non ne vogliono sapere di andare fino al prossimo reboot

3) Un altro prodotto che usiamo ha l'interessante caratteristica di avere l'installer fatto in Java (che installa poi un applicativo Win32, sempre a proposito di comportamenti veramente indicibili). Bene, se si installa questo applicativo a macchina "pulita" va tutto, se per errore uno se lo scorda ed installa, prima dell'applicativo, una qualunque versione di Java (o un qualunque applicativo che vi installi una Virtual Machine) il risultato è che diventa impossibile installare l'applicativo in questione, per quanto tempo uno ci metta a ripulire, disinstallare, cancellare e modificare i path e così via.

Che bella la filosofia del "Write once, run everywhere"... Io sarò anche prevenuto, ma a momenti è più compatibile e cross platform la roba scritta in C# che quasi tutti gli applicativi commerciali in Java che ho avuto il (dis)piacere di usare...

Edited: per quello che riguarda il commento di Lorenzo ho provato a fondo iiop.net (http://iiop-net.sourceforge.net/) e va veramente molto ma molto bene. Facile da usare e velocissimo...

Aggiungere un comando "Compile" al right click menu

Se come me siete un po dei "Tool Junkie" probabilmente il vostro Visual Studio a caricarsi ci mette un po (il mio ha installati svariati add-in come Resharper o strumenti vari di profiling, esame del codice, build e così via) e quindi spesso e volentieri vi trovate nella situazione in cui dovete solo aprire un progetto per compilarlo e ci mettete di più ad aprire il progetto che a farne la compilazione (ed a me capita spesso perchè mediamente il mio gruppo mi fa il checkin di almeno una ventina di file nuovi al giorno).

Io ho risolto aggiungendo un comodo comando "Compile" assieme allo standard "Open" per i file .sln, in modo da poter compilare direttamente (poi lo so che sarebbe meglio avere Nant pronto ed usare quello!).

Se volete farlo anche voi:

- Create un file compile.cmd per compilare una solution e mettetelo dove cavolo vi pare. Il mio è fatto così (sono 2 righe):

"d:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.exe" /rebuild debug %1 /out %1.log
notepad %1.log


Ovviamente dovrete cambiare il primo path con la dir di installazione del vostro Visual Studio.

- Lanciate regedit ed arrivate alla chiave HKEY_CLASSES_ROOT\VisualStudio.Solution.7.1

- Create una nuova chiave sotto Shell (di fianco ad Open) chiamata Compile, con sotto una nuova chiave chiamata Command il cui valore di (Default) deve essere

"d:\_WA\Compile.cmd" %1

Ovviamente in questo caso il percorso del file deve corrispondere al vostro file command creato in precedenza.

Spero sia chiaro, se non si capisse ditemelo che provo a migliorare la spiegazione...