en cuanto a la BD... da lo mismo en cuanto sepas bien como definir tu aplicacion mediante capas, me explico: si tu capa de datos esta bien diseñada, y bien separada de tu capa de negocios, y ademas, te tomaste la molestia de hacer store procedures, no tendras mayores inconvenientes en usar una BD libre como my SQL, o una de pago, como SQLServer, postgress, etc...
En vez de cristal report, mejor reporting services...
PLCH