Ayer me comentó
Teo Ortega que va a tener que
portear una aplicación “cliente/servidor” hecha en Delphi a .NET. Al parecer aunque esta aplicación era adecuada (de hecho consume Web Services de una aplicación hecha en ASP.NET), algunas limitantes en la conectividad y flexibilidad del sistema han forzado al cambio de plataforma.
Como el Teo apenas va a comenzar a
dotnetear, pues la inevitable pregunta fue “Oye, ¿y no tienes algún libro que me ayude en este rollo?”
Creo que todos hemos estado ahí. Así que le envié una larga lista de libros que me han sido útiles desde que comencé con este rollo y pensé que les podrían ser útiles a ustedes también—de hecho sí me cayó el veinte de “ay we’, ¿de veras he leído todo esto?”
La mayoría de estos libros los pueden leer en línea en sitios como
books24x7. En la empresa donde trabajo tenemos un acuerdo corporativo, así que todos los empleados tenemos acceso. Otra alternativa podría ser
Safari. En lo personal, prefiero libros en formato arbol-muerto, pero (1) leo más rápido en línea—por alguna extraña razón—y (2) no tengo tanta lana como para comprar todos los libros en sitios como estos. Así que hagan lo que puedan. Si deciden comprarlos en papel,
este sitio es útil para encontrar el mejor precio.
En general, los mejorcitos que he encontrado son de
Apress—a donde acabaron muchos autores que dimitieron de
Wrox Press—y de ahí, los
publicados por Microsoft. Aunque
todo depende de qué tema se quiera aprender.
Así que aquí está la lista, separada por contextos generales.
FundamentosMucha raza que me he topado ha aprendido a dotnetear a punta de voluntad, pero desgraciadamente les falta comprender conceptos fundamentales del .NET como plataforma. Para ellos recomendaría
Microsoft .NET Core Requirements (Microsoft Press, 2003). Este es un paquete de 4 libros que son para preparase para una certificación MCAD o MSCD (versión 1.x del Framework).
Lo bueno:
- Trae todos los ejemplos en los dos lenguajes más populares (C# y VB.NET)
- Cubre todo lo mínimo elemental que debe saber un desarrollador a la hora de dotnetear (y uno que otro truquito que nomás MS se sabe).
- Cubre material para los diferentes tipos de aplicaciones que se pueden crear (WinForms, Web, Windows Services, Web Services)
Lo malo:
- Para en verdad sacarle jugo hay que chutarse al menos 3 de ellos—el cuarto es completamente teórico y trata sobre MSF y metodologías y herramientas para desarrollar software—esto es porque fueron escritos por distintas personas en MS, así que hay bastante redundancia y no son uniformes.
- Algunas cosas decididamente están fechadas. Por ejemplo, al hablar de armazones de pruebas, habla de construir los propios con escripts, siendo que NUnit lo suplantó por de facto; no hay ni mención de las especificaciones WS-I para Web Services, etc.
Aún así lo recomiendo porque varios capítulos, por separado son muy buenos y concisos, p.ej. el de
Developing Windows-based Applications explica muy bien conceptos de los lenguajes como
overloading, interfaces, delegates, etc., el de
Developing XML Web Services and Server Components trae una excelente explicación de qué es el .NET Framework, cuáles son sus “partes” cual es el papel de cada una de ellas y qué
features son los que aporta.
Ahora que si van a comenzar en aplicaciones Web con el Framework 2.0
Pro ASP.NET 2.0 in C# 2005 (Apress, 2005) se ve muy bueno. Cubre desde lo fundamental, hasta lo “Pro”.
Más avanzadonesSi buscan un buen Framework para objetos de negocio, están los
libros del Rocky Lhotka, en su versión C# o VB.NET. Yo me esperaría un poco y compraría la edición que
va a salir en los próximos meses ya que (1) está hecha para el Framework 2.0 y (2) integra muchos
features que le fue agregando al CSLA basado en retroalimentación de sus lectores y basado en capacidades nuevas en las herramientas.
Como lo
mencioné ayer,
Expert ASP.NET 2.0 Advanced Application Design: ASP.NET as a distributed application hosting environment (Apress, 2005) es un excelente libro para hacer la arquitectura de un sistema con tecnologías dotnetescas.
No-.NET, pero relacionadosSi no saben UML, aprendan ¡ya!—tiene ya como 10 años por el amor de Dios. Uno de mis favoritos es
UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition de Martin Fowler. Este vato propone utilizar
UML como una herramienta útil para bosquejar un sistema.
Para una sólida base de diseño de bases de datos relacionales
especialmente relacionados a programación orientada a objetos, lean
Beginning Relational Data Modeling, Second Edition (Apress, 2005). De haber leído este librito antes, hubiera evitado algunos errores en el diseño a la hora de implementar relaciones superclase/subclase en una aplicación que esos errorcillos acabaron dando enormes dolores de cabeza.
Finalmente, y hablando de base de datos y orientación a objetos, está
Information Modeling and Relational Databases: From Conceptual Analysis to Logical Design (Morgan Kaufmann Publishers, 2001) de Terry Halpin, que cubre ORM—no Object-Relational Mapping, sin Object-Role Modeling—una metodología muy sencilla y muy útil para modelar los requerimientos de un sistema y automáticamente generar el diseño lógico y físico de una base de datos, incluyendo muchas de las “reglas de negocio en un sistema”. Incluso enfatiza el porqué UML es una muy mala metodología para hacer un modelo de datos. Los detalles de cómo aplicar ORM con Visio lo cubre también muy bien en
este otro libro. ORM es, en mi humilde opinión, una de las herramientas más utiles y menos utilizadas.
Enjoy.