Archive for book

Book Review – WPF and the MVVM Pattern

The complete name of the book is Building Enterprise Applications with Windows Presentation Foundation and the Model View ViewModel Pattern by Raffaele Garofalo and published by Microsoft Press (2011). This is really short book (225 pages) and has a very promising title, I got it in the OReilly stand in the MIX11 Conference a few weeks ago and took me just a few hours for reading (long trip from LAX to MEL!).

As I said before the title looks promising and has the “Enterprise Application” slogan as a very important thing (whatever enterprise application means in those days). The book promises some very ambitious points like:

  • Dive deep into MVVM
  • Build a simple Customer Relationship Management application
  • Create a Domain Model
  • Write dynamic code for data access with the Entity Framework
  • Enforce complex data and validation scenarios with Workflow Foundation 4
  • Implement MVVM using Prism

The book started tyring to explain what is the MVVM pattern and its relation with Line of Business Applications (LOBs) and how MVVM and Composite Application patterns relate themselves to solve LOB’s problems… For some reason in this chapter the author starts telling you now about separation of concerns and three tiering and layering… (you know I don’t like how people uses the term “layered application”). For some reason in this chapter also introduce Expression Blend and how a LOB is composed (in things like Menu, Toolbar, Ribbon, etc…) weird… I know…

In the chapter two we read about what is a pattern, mention common patterns and try to explain the different Presentation Patterns (MVC, MVVM, MVP). In this chapter the author introduce concepts like IoC using Unity and differences between Unity and MEF (well, good to know). After this is never late to talk about Fluent Interfaces and DSLs and how to do unit testing… Yeah…

After all of this the author start talking about Domain Modeling, and Domain Driven Design… yeah, but wait a minute… why he started talking about the relation between DDD Domains and Layering? what? if you are a DDD fan like me beware of this chapter, the author is just confused about DDD/Layering (damn, I don’t like that word!) and how to represent an object in a pure domain approach.

Later chapters are about Data Access Layer (and how the author relate it with DDD and the domain logic), the Business Layer (and how to represent domain validation rules in Workflow Foundation 4) and the book end with a chapter about creating an UI layer with all those concepts toghether. Something really bothered me was the sample code for the UI Layer with MVVM chapter, you just learn about the existence for the WPF Ribbon Control from Codeplex, that’s all…

Personally the only chapter I liked was the last chapter about MVVM frameworks and toolkits, he just mention those frameworks but some of them were totally new to my knowledge.

I must say the true, I will give only one start to this book, if you like code, this is not a book for you, if you like a good set of samples and the reason behind the facts, this book is not for you, if you want to learn how to use Prism and MVVM, this book is not for you either (it only mentions Prism and how it relates to MVVM), if you want to learn how to implement your applications using MVVM pattern, this book is not for you… really…

If you want to know what is MVVM and in some way how it relates with some other concepts (sometimes not really related at all but well, what do I know?) maybe this book is for you (but anyway you can get those concepts for free in the internet too) or if you have some hours to spare and someone give you that book for free maybe this book would be a choice.

I know talk about MVVM in just 200 pages must be a hard work, so nice trying…

Book review: Learning JQuery

1847196705 No es secreto que Microsoft comienza a abrazar el “Open Source”, nadie pensaba hace unos cuantos meses atrás que JQuery, la framework de código abierto para desarrollo y manipulación del DOM en Javascript, sería “adoptada” por Microsoft hasta que hizo el anuncio que no solamente sería “shipped” con Visual Studio para el desarrollo web junto con el ASP.net AJAX Framework, sino que también sería soportada por Microsoft.

Es de esperar que desde el anuncio muchos programadores de ASP.net comenzaran a experimentar con JQuery y claro, a aprender a usar JQuery. Tutoriales de JQuery hay muchos en la red, la mayoría de ellos orientados a diseñadores web o al usuario esporádico de javascript. Creo personalmente que este libro es un excelente inicio al mundo de JQuery.

Lo bueno de este libro:

  • Sin rodeos, Va directo al grano.
  • Simple, es sumamente práctico para explicar el porqué de algo.
  • Casí un hands on, después de un par de capítulos el lector se siente con la suficiente confianza de usar JQuery y aplicar lo que acaba de aprender.
  • Es sumamente corto y de fácil lectura

Lo malo de este libro:

  • El código ejemplo aunque es muy sencillo, ya esta terminado. Poco hace porque el lector experimente con el código de ejemplo.
  • ¿Qué? los capítulos mas interesantes (los últimos 3) no tienen código ejemplo!
  • En los últimos capítulos se perdió fluidés del relato como lo hacian en los primeros capítulos.

Claro, aconsejo antes de leer este y cualquier otro libro de JQuery, que el lector se empape bastante sobre los conceptos de HTML, hojas de estilo, DOM y Javascript, creo que solo así le podemos sacar lo máximo a JQuery.

En general, le doy al libro una calificación 3/5

Book Review: Accelerated C# 2008

9781590598733 Por consejo de un amigo, voy a ir escribiendo reviews de libros que he estado leyendo últimamente. Como algunos que tienen algo de tiempo de conocerme sabran, tengo problemas con la lectura, y necesito estar leyendo algo la mayor parte del tiempo. Quizás algún trauma de la niñes al tener una casa llena de libros :P

El primer libro al entrar a la palestra es este, Accelerated C# 2008 de Trey Nash, publicado por APress (link de Amazon). Llegué a este libro debido a la lectura de su edición anterior, el Accelerated C# 2005, libro que personalmente me agradó bastante.

Lo bueno de este libro:

  • Cómo esta dividido. Comenzamos desde la parte sencilla de diferencias entre clases y estructuras y terminamos en las nuevas extensiones de C# 3.0, pasando por un breve capítulo de Linq.
  • Profundidad de los temas. Algunos temas los considero bastante profundos, como por ejemplo, el capítulo de clases y estructuras. Se incluye explicaciones de como el compilador genera el código en IL y qué cosas podemos hacer con ello. Tampoco profundiza demasiado, cosa que no nos aburramos con demasiados detalles.
  • Facilidad de lectura. No es una lectura “demasiado” complicada ni pesada, puede leerse con dedicación en un par de días.
  • Diferencias con C++. Al parecer el escritor tiene bastante experiencia con C++, algo que los usuarios que vienen de C++ realmente agradeceran. Esto se nota especialmente en las explicaciones de “constructores” y “finializadores” así como también en el capítulo de “Generics”.

Lo malo de este libro:

  • Se pierde la coherencia en algunos capítulos. Esta es mi mayor queja, la primera parte del libro se enfoca bastante en detalles sutiles de ciertas estructuras en C#, pero luego realmente carece de peso y contenido en capítulos a mi criterio claves como “Threads”. En este capítulo en particular el autor pasa un cuarto del capítulo explicando los pasos de estado que puede sufrir una Thread, sin embargo no explica estructuras básicas de sincronización y solo hace mención de cosas como “Monitor” y “Spinlock”. Esperaba un poco más de este capítulo.
  • No es un libro para aprender Linq. Si alguien compró este libro para aprender Linq, siento decirle que este no es el adecuado, solo mencionan por encima las estructuras de Linq que existen.
  • Demasiado complejo en cosas sencillas de explicar. Tomemos por ejemplo el capítulo de expresiones Lambda, uno puede leer el capítulo varias veces y queda sin explicar el concepto y diferencias de Expression<T> y sus usos en expresiones lambda.
  • No código ejemplo bajable. Yep, no hay un lugar de dónde bajar el código ejemplo.
  • No muy buenos concejos en cuanto a herencia. El capítulo de “formas canónicas” tiene algunos concejos que batallan en contra de las sugerencias o guidelines de diseño de la .Net Framework. ¿Un ejemplo? la justificación de las clases selladas.
  • El formato del código en el libro. No sé porqué el autor utiliza una forma algo rara de crear o diseñar sus ejemplos, algo diferente a lo que estamos acostumbrados. ¿Un ejemplo? Agrega los fields y constructores hasta el final del archivo y no al comienzo.

En general creo que este libro es una buena lectura para alguien que esta aprendiendo C#, pero no desde cero. Le daría una clasificación de 3 puntos de 5.

Clasificación: 3/5