venerdì, gennaio 26, 2007

Surviving a .Net web project (1 episode)

(from a java developer perspective...)

It happened: I was asked to build a webapp using .Net, and the old 1.1 version, too!
Discarded (without a real evaluation...) VB.Net, I went discovering C#, hoping it would be more comfortable for a Java developer.

So I downloaded the .Net framework, installed Visual Studio for .Net (hey, does anyone know some sort of plugin for Ecplise or some other C# IDE to use?) and started with some HelloWorld, HelloEverybody and so on.

First reaction: VStudio sucks! really! Particularly if you got used to Eclipse. Or maybe I' m not good in using it...
Some examples:
- It opens all files in tabs, like Eclipse, like UltraEdit, like PSPad, but... No close all command!
- Absolutely no navigation through code (like ctrl+click in Eclipse): just go to definition
- No refactoring utilities at all: cannot automatically rename even a local variable!

C#, in version 1.1 is quite like Java, no especial oddities, apart for property definition in interfaces, but done with an expressive syntax:

string AProperty { get; set:}

More to come, stay tuned!

mercoledì, gennaio 17, 2007

Checked vs Unchecked Exception

Una delle principali differenze rispetto a Java che ho trovato lavorando in C#, è l'assenza di Checked Exceptions. Cioè in C# tutte le eccezioni sono unchecked.

Mentre altre differenze mi convincono oppure no, di questa non riesco ad avere una opinione precisa.
Sono (o ero?) abituato a considerare le Checked Exception una BUONA COSA, ma..

  • Ad esempio ho visto che per l'integrazione e il supporto di Hibernate in Spring, la classe HibernateTemplate una delle cose principali che fa è trappare tutte le checked exception di Hibernate e rilanciarle come unchecked.
  • Ho visto (e scritto anche) troppo codice Java con metodi che rilanciano 7,8,9 eccezioni diverse, che si propagano, si propagano, si propagano, fino al catch/finally del main...
  • Ho letto questo:
    http://www.artima.com/intv/handcuffs.html

    dove uno degli architetti di C# spiega i perché non ci siano checked exception in C#

Insomma, non riesco ad avere una opinione precisa:
per alcuni versi le checked exception mi sembrano utili e necessarie, per altri mi dico (forse anche a causa dell'abuso che ne fa il JDK) che se ne farebbe volentieri a meno.