Book review: Essential LINQ

A few months ago I wanted to look into LINQ to SQL and grabbed a copy of Essential LINQ. The book is targeted at people who are coming from .NET 2.0 or people who are new to LINQ. It’s is very well written, almost like you’re following a class with clear examples showing you how you can leverage the platform to suit your needs.

Essential LINQ

The new language features of .NET 3.0 are covered which enable LINQ in the first place so if that’s new for you no need to buy another book. All LINQ operators are explained using LINQ to Objects followed by a very thorough discussion of LINQ to SQL. Mapping, stored procedures, modifying objects and how you can plug into the system with extension methods. After diving deep into LINQ to SQL there’s only a very small description of the Entity Framework or LINQ to Entities. Which is probably, in hindsight, the biggest issue you can have with this book since it’s now the de facto standard of data access promoted by Microsoft. The book finishes with another in depth discussion of LINQ to XML which was new to me and just like LINQ to SQL you’ll be an expert by the end of the chapters.

So to wrap it up, the book reads like you’re being thaught by a very good teacher. If you want to make sure you know your basic LINQ this is the one you need.

Book review: Silverlight 4 in Action

In order to prepare for a Silverlight course I was going to give I looked around for some new books and material to help my students and to refresh my knowledge. If you want to get started from zero on Silverlight I can highly recommend Silverlight 4 in Action. It’s an updated version from Silverlight 2 in Action and available since August 2010 via Manning.

Silverlight 4 in Action

The book is divided in three parts with the first two giving you all the necessary information to get you started and a third part which digs deeper into some more special topics.

In part one you’re introduced to Silverlight, how it relates to WPF and why you could choose it to build your next application. You get an overview of XAML and browser and desktop integration options. While it’s just the first part of the book, don’t think it’s just for newbies. You get an in depth explanation on how the rendering system works, what the different types of controls are and how text can be used.

Part two gives you all the information you need to build real applications. You’re introduced to the binding features, what your options are for data validation and how you can communicate with other applications. Either Silverlight plugins on the same page or other systems via web services. The last two chapters also give a nice explanation of the MVVM pattern, although it goes way further and shows you ways to improve the maintainability of your code. Very nice to see SOLID and DRY come into play hopefully we’ll see more developers using those principles. The last chapter covers WCF RIA services, these were new to me and I was a bit blown away by the functionality that’s available out of the box, though I’m still a bit sceptic. It might be a bit too much forms over data even though there are some layers in between where you can plug into to do your thing.

The last part adds chapters on working with graphics, creating animations, improving the install experience, using styles and resources and creating custom controls. Some of those you’ll use often, printing for instance, others maybe once in a lifetime, like creating a custom panel.

Overall a very nice read to introduce you to the platform and create real world applications. It’s definitely developer oriented though, don’t expect to see much Expression Blend which you’ll use to create themes and animations which I don’t think you’ll be doing in code as illustrated in the book.

CRM 4.0 Support

A colleague of mine was fighting with CRM 4.0 at a client side. He was able to fix all their issues except one. They had changed from HTTP to HTTPS after installation and from that point on no one could connect externally. Anytime you changed something in the Outlook client the response was “The underlying connection was closed: an unexpected error occurred on a send.”. Not that much information to work with so I helped him to get the issue fixed. We dug through some log files to get some more information and found out that it was actually the audit plugin/service which was complaining with “the handshake failed due to an unexpected packet format”. Which clearly indicated it was something with the certificate or a specific HTTPS issue. Long story short, you need to change a registry value from port 80 to 443. We found all the necessary information on these sites: