Most Popular Posts

Sep 9, 2009

About Me @ Microsoft

I work for Microsoft. Any knowledge I gain I may use in my work.

I’ve been working for Microsoft since 2005. All this time I’ve been a program manager on the SQL Server in Redmond, WA.

From 2005 through 2008 I was a program manager on Entity Framework. Entity Framework has three major layers:
  • Entity Data Model (EDM) – a domain modeling language and a runtime API to creating and reasoning over a model.
  • Entity Services – a programming platform in the space between database and objects. It includes the Entity SQL query language, the EntityClient ADO.NET provider, and the plumbing underneath.
  • Object Services and LINQ – the entity-level programming paradigm materialized as .NET objects.
I was the program manager for Entity Services. At the time we shipped v.1 (.NET Framework 3.5.1) it accounted for more than 50% of the codebase of the entire product. Check out my blog – I truly enjoyed Entity SQL. It resurrected an old passion of mine for languages. I got to interact with language gurus like Erik Meijer and Mark Shields. Honestly, I think SQL belongs in the database space. It was great that we had a functional query language in the entity space, but the SQL-like constructs inhibit people from thinking functionally (at least at first.). So I suggested that the language should be a typical functional language. The problem was I couldn’t get Erik and Mark to agree which one is better - Haskel or OCaml :). All jokes aside, I did download both Haskel and OCaml and started digging into how one writes meaningful queries in those languages. SQL didn’t look so bad after all. :)

After we wrapped up Entity Framework v.1, I decided to move lower in the connectivity stack. Thus I landed right at the bottom of it – SQL Server Protocols. SQL Server Protocols is a broad area that includes the networking layer in SQL Server and the client data providers, the wire protocols that the SQL Server core engine speaks, and the SQL Browser service in its entirety. To put it in developers perspective – when our things work, you don’t even know we exist; when we screw up, the whole world becomes aware of it.

A wire protocol is very similar to a programming language. The most signifficant drawback of protocols is that there is no functional protocol [yet] :). Check out the team blog - If you have questions on SQL Server Protocols or SQL Server data access in general, join the SQL Server Data Access forum.

In addition to SQL Server Protocols I also work on some new SQL Server connectivity stuff that I’ll be the first one to blog about once it goes public.

1 comment:

Jean Francoeur said...

Hi Zlatko!

I really want to know some things about eSql and I think that you are the guru for this :) Can you send an email where I can write it to instead on a blog?

Please write your email at jean.francoeur @

Thanks in advance,