Mad about .NET A blog from Jose Fco Bonnin


On Tuesday I did an online webcast about the CLR. I hope the people who joined us enjoyed the event and found the contents interesting.

The event was recorded and you can download it from the Microsoft Events website (Spanish).

During the presentation I did a demo in which I was showing how we can see with WinDBG when a method has been jitted or not. We saw it for the constructor but I stopped before show it for other methods to avoid wasting too much time on the same thing.

One of the attendees has asked me today why the method was shown as not jitted even after it was clearly executed. The problem was simply that I attached WinDGB to the release version of my demo application and the JIT optimized the method replacing it by an inlined version. If I had attached the debug version this would not happen and the method would be shown as jitted. If you want to have more information about it I widely explained in a previous post about Inline methods where I used the same demo application as in the webcast.

I was commenting with friends some mistakes I found while reviewing the book Pro LINQ Object Relational Mapping with C# 2008. Despite the error's importance, it would be better that they do not appear in the book, moreover when the book must pass a technical review before be printed. i.e.

There is a paragraph that says “...one of the new features in .NET 3.0: the var keyword....” This is incorrect, the var keyword (in the context is used) does not appear in .NET 3.0, but in .NET 3.5 with the implicitly typed local variables and has a different syntax in other languages like VB. Therefore a more accurate affirmation could be “...one of the new features in C# 3.0: the var keyword....”.

Or “...the CLR is doing the heavy lifting for you by translating your queries into method calls...”. This is also incorrect since the Common Language Runtime (CLR) does not translate the LINQ queries into methods; instead each language compiler is in charge of that conversion, something that you can easily see by checking the IL and metadata generated by the compiler. This error is a bit more serious, because the reader can think it is better to use the method syntax instead of the LINQ syntax to avoid the translation performance cost during runtime, when it is not the case.

Anyway, the controversy came out when I said the author talks in the Entity Framework chapter about "Single-Table Mapping", regardless if the term is correct or not, the expression used in EF is a different one: Table-per-hierarchy. I think the author should have utilized the same term as in EF documentation. Names are very important to recognize the concepts behind them and the best is that within a context everybody uses the same, in this case the context was Entity Framework.

In my business area, credit card processing, we are sick to see how acquiring banks and payment processors use the same term for different things. i.e. Void, Reversal, Cancellation can be exactly the same operation or a totally different one depending on the company using the term, which can cause lot of confusion until you do not agree a nomenclature. Tables, views, methods, variables, classes ... none of them are an exception when you need to decide a good term. But IT world is not the only place where having the right name can help you to success, just remind the Oscar Wilde's play "The Importance of Being Earnest".  

Therefore, next time you need to select a name try to invest time enough deciding a good one that is descriptive enough, it would be better than having to waste it later on checking the documentation to remember what the term intended to mean.

Welcome to Mad about .NET

First off, my name is Jose Fco Bonnin, and I am the Product Development Manager of Payvision, an international payment solutions provider that specializes in multi-currency processing for card-not-present electronic transactions.

Behind my manager role there is a geek who tries to contribute to the .NET community in several ways, I'm Ineta Country Leader and Culminis Country Lead Volunteer for Spain. Therefore, as you probably deducted from the title, the blog subject will not be payment solutions, but the .NET Framework and other related technologies.

Here I want to share my thoughts and opinions regarding this lovely development platform and its community.

I can't finish this first post without thank to the guys of BlogEngine.NET and STUDIO7DESIGNS

I hope you decide bear with me and enjoy reading the posts.

Regards,

Jose.

Around one month ago the Comando Tomate interviewed me at the Microsoft facilities "La Finca", thanks to this interview I was able to explain what the projects of Baleares on .NET are and what I do at Ineta Spain.

If you want to know more just take a look (Spanish).

 

Finally, it seems I will be able to attend to several sessions of the TechDays in Madrid. If you want to join me, you will be more than welcome.

Here is my agenda.

Agenda: 26/02
-----------------------------
14:00 - 14:30 (Sala Mónaco): Hands-On Lab. Visual Studio: Práctica de Desarrollo Dirigido por Pruebas (TDD, Test-Driven Development). Colabora: Danysoft

15:00 - 15:45 (Sala Madrid): Entity Framework a fondo.

16:25 - 16:55 (Auditorio EXPO): Optimización de rendimiento en SQL Server 2008

16:45 - 17:30 (Sala Amsterdam): Hands-On Lab. SQL Server 2008: novedades para Desarrolladores de Bases de Datos

17:30 - 18:15 (Sala Amsterdam): Hands-On Lab. SQL Server 2008: novedades de Business Intelligence

18:00 - 19:00 (Sala París): WCF a fondo


Agenda: 27/02
-----------------------------
09:45 - 11:00 (Sala Roma): SQL Server 2008: Aplicaciones de Misión Crítica sobre Plataformas de Datos fiables.

12:30 - 13:15 (Area Visual Studio): Pregunta al Experto: 10 Errores más comunes al usar Team Foundation Server

15:40 - 16:20 (Sala Berlín): ALM: Scrum y Team Sytem en la vida real. Presenta: Rodrigo Corral. Plain Concepts

16:30 - 18:00 (Auditorio A): Sesión plenaria Gran Final The Evolution {Game},
20 Años de Innovación, con Rosa Garcia, Presidenta Microsoft Iberica
Mesa redonda con líderes del Sector

18:00 - 19:00 (Auditorio A): Steve Ballmer en directo desde Los Angeles (California, EE.UU)

19:00 - 24:00 (Auditorio A): {The Evolution Party}.Gran Fiesta de celebración del 20 Aniversario de Microsoft en España.