# Sunday, November 2, 2008

Ok, ok it is not a Smackdown, but more of a review of Sp1 technology: EF, Dynamic Data, Astoria, LINQ to REST. I will be doing a session at TechED next week in Barcelona, however, you can see a shortened version of the talk from my DevReach keynote.

posted on Sunday, November 2, 2008 10:30:52 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Saturday, November 1, 2008

Why not? I got home late last night from PDC and decided to stay up late, watch some TV and install my pre-beta version of Windows 7 on my spare laptop. The installation went very well and I decided to take some of the new features out for a spin.

While there are some bells and whistles out there for the consumer, however, for a developer I really like the the virtual machine support. I was able to load up my VHDs really fast and even set a VHD as a boot partition (wow!). The VHD support is so good that I am considering bringing this Windows 7 laptop to TechEd in Barcelona and do all of my sessions off the Win 7 laptop.

It has only been one day but Windows 7 appears very stable, has good power management, and is fast. It also is pretty slick looking with the Avalon UI stuff turned on. If my experience changes, I will report it back here.

posted on Saturday, November 1, 2008 9:34:39 AM (Eastern Standard Time, UTC-05:00)  #    Comments [3] Trackback
# Friday, October 31, 2008

Here are some conclusions that I have drawn from four days at the PDC. Microsoft did not say any of this, but I have drawn these conclusions based on their messages and behaviors at PDC. Here they are and by no means is this an exhaustive list, it is just based on my personal experience this week:

  • The Influence of Dynamic Languages. From the DLR to the dynamic static type in C#, you can see the effect of Ruby (and Python) on Microsoft. Anders is not a language purist and said that C# will draw on benefits from functional programming, dynamic languages and statically typed languages.  He also said that languages with a single focus are going doomed to fail and languages that are more flexible will succeed. To me this was the largest news from the PDC, it shows Microsoft’s reaction to “Web 2.0” and Ruby.
  • The Death of JavaScript. Microsoft never said this, however, two sessions showed me that it is to be true. The first main session at the PDC, Ander’s “Future of C#” showed how you can use the dynamic type to move your JavaScript to C# in the code behind and run on the client via SliverLight. The last session of the PDC, “ASP .NET AJAX Futures” was all about implementing client AJAX and with declarative programming you can pretty much eliminate most JavaScript.The AJAX talk was all about client side binding, the demos were even done in .HTM pages, not ASPx pages!
  • The Future of Web Development is SilverLight. ASP .NET 4.0 Futures talks were all about Dynamic Data and MVC, stuff we know already. Everything else was about SilverLight. See the addition of the dynamic type and the DLR, it is all about writing code behind SliverLight.  There were also talks about line of business apps built in SilverLight.The writing is on the wall, learn SilverLight.
  • Windows is Sexy Again. From the keynote to the “I’m a PC” tee shirts to the gazillion of sessions about Win 7, Windows is sexy again to develop on. Forget about Vista, that never happened. Our bad.
  • Cloud, Cloud, Cloud. Developers were underwhelmed about the cloud. Yea we get it, hosting our services and apps in the cloud is great, but did we really need 36 sessions on that? We have been using the cloud (Amazon EC2, S3) for a while now, so we get it. Microsoft proves once again that when Microsoft is behind in the market, they know how to over do it. The offering is very mature and robust, however, it seems like the message was overkill.
  • Where was SQL Server? I thought this was PDC and about the future. Only 1 slide about the future of SQL Server. They said it was too “early” however we had a SQL Services Futures talk (v 2) when v 1 has not even shipped yet! I am not implying that SQL is getting less investment, but there should have been a “here is what we are thinking about v.next” talk.
  • Oslo is Way Cool-But What Do I use it for? There were 5 sessions on this new pre-alpha thing called Oslo. It looked cool, especially the ability to author a contextual DSL. There were cool tee shirts and a large booth with cool swag. But the buzz for developers was “what do I use this for.” Microsoft did a great job telling us about the cool things in Oslo, but did not present the use case. I expect next year’s PDC to do that and have a ton of Oslo content.
posted on Friday, October 31, 2008 9:59:58 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback
# Thursday, October 30, 2008

My favorite technologies to come out of Microsoft this year is ADO.NET Data Services aka Project Astoria. Astoria is a new technology that puts a REST based data-service on top of your data. Very easily you can expose your application’s data as a service allow other applications, including non-Microsoft ones, to consume your service via HTTP and REST. Astoria has a rich extensibility model where you can hook directly into the service and take direct control over a request. This enables you to build very secure, flexible, and robust services.

The one thing that is a limitation of Astoria is that for the client, you have to be online to consume the service. If your client is offline or occasionally connected, working with Astoria is not really possible. That will change real soon. Yesterday at PDC I went to the session TL08 Offline-Enabled Data Services and Desktop Applications delivered by Pablo Castro. For those of you who don’t know Pablo, he is a great guy and a straight shooter. He believes in “transparent design” where the team is 100% open and debates design and features on its blog for the whole world to watch and contribute feedback.

I have been writing “disconnected” applications that rely on synchronization for almost 15 years. I have been involved in some great applications relying on replication like the NFL Scouting application I showed at TechEd 2003 that  uses the Pocket PC (.NET Compact on Windows Mobile/CE) and laptops with SQL Express to connect to a back end SQL Server. The challenge of the disconnected user has been around ever since we have been able to do any form of replication of data. I know first hand. :)

Astoria Offline’s offering is very elegant. You can create an end to end solution very easily and the “piece of cake” scenario where you click on all the wizards provides a good solution out of the box where you only have to write a little bit of code to extend the application to fit your needs. There is also a robust API if you want to consume and do everything yourself or if you are not using the Microsoft tools on the client.

What I really like about Astoria is its conflict resolution. This has been a big challenge for some other replication systems. Astoria will sync all of the good records in the batch and do nothing to the conflicted records. You will then have an exception and an event to handle the conflicted records so you can write some code to handle it yourself. But Astoria will not change any data unless you tell it to, giving you full control. While this seems small, it is a very elegant design pattern.

There are also some great things in there to allow you to batch your sync and also do partial replication (allow only NY sales people to see NY data) with something called Scopes. There are nice hooks for Authentication and Authorization as well.

Look for a CTP by the end of the year. As Pablo said, it is not a CTP good enough to build applications on, but good enough to give the team feedback. More than most other teams at Microsoft, the Astoria team really listens. So look for the CTP and write some code and let them know what you think.

posted on Thursday, October 30, 2008 11:50:27 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, October 29, 2008

We take this break from the PDC to let you know that our book is out today. Enjoy!



posted on Wednesday, October 29, 2008 9:51:10 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, October 28, 2008

A few weeks ago the PDC people sent to the Regional Directors the goals and theme of today’s Keynote by Don and Chris. They said: “ It will be Don and Chris writing code in Notepad for an hour!”

I replied that I hate when Don codes in Notepad, I think it is a silly thing to do. It only confuses the audience and sends a message that this technology is just a hack since you have to use Notepad. Then the other Regional Directors chimed in with loads of reasons why Notepad is not good for a PDC keynote.

Don and Chris got the message and used Visual Studio in the keynote and the keynote was a lot of fun. Don starts the keynote with the goal to write a service that iterates through all of the processes running on the demo box. Chris then wrote a method that will delete a process (kill) via a service. Don then said “No presenter would ever use Notepad to deliver a session.” He then opened four instances of Notepad and wrote a call to the service to kill all four Notepad instances. Don then said “Regional Directors around the world are now applauding.” (We then did!) Don said if you read between the lines: “OK RDs I took your advice, but I am still Don Box!” I love that.

Don and Chris then took the same service and pointed it to a Live Mesh desktop (and it deleted a folder named notepad). They then took the service and hosted it in Windows Azure services. They had a service running in the cloud that manipulated processes running on their desktop. (Well in the real world you would not do this, but hey it is pretty cool.)

After being called out by Don Box in the keynote, I spent the rest looking at the Oslo stuff. Oslo is a new modeling platform for application development that revolves around a language (M), a tool (quadrant), and a repository (SQL Server).

M is a language where you can model your application and data as well as create your own contextual Domain Specific Languages (DSL). The DSL piece is the best part of M, but I will not write anything about it until later this week as not to steal the thunder of the M: DSL session on Thursday at PDC.

Here is a simple speak peek at M in general, I model a type called Employee (which will map to a SQL table) and insert data in a code specific way. (At the end of the day this code will produce TSQL.) While this may not appear all that sexy, it will be far more efficient for a team to develop, implement, and maintain applications and services (and just imagine putting a DSL on top of this!) You can use a DSL to map text to data so you can import data real easily or have end users write data for you.

module HRApplication


type Employee


Id : Integer32 = AutoNumber();

Name : Text;

Title : Text;

Salary: Integer32;

} where identity(Id);

Employees : Employee*


{ Name = "Vassil", Title = "CEO" , Salary=1000000},

{ Name = "Steve", Title = "CSO" , Salary =250000},

{ Name = "Todd", Title = "CE" , Salary=500000}



Go get M and the Oslo SDK here: msdn.microsoft.com/oslo.

Lastly, I ran into old friend Dan Fernandez and he had me dress up as Dr. Code.


posted on Tuesday, October 28, 2008 6:41:29 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback

Thousands of developers have flooded LA for the 2008 PDC. The first keynote yesterday has highlighted the Windows Cloud Services called Azure. Microsoft is finally getting serious about the cloud by offering storage, hosting, SQL, and .NET services in the cloud. This changes the economics of producing software as well as how we think about infrastructure. Hosting, bandwidth, storage, and management are not a commodity.

In addition to the cloud, Microsoft has show so far C# 4.0 and the .NET Framework 4.0. Included is the Dynamic Language Runtime (DLR). C# 4.0 is entering the world of dynamic languages by adding a static type called dynamic. (Pause for effect.) C# can now interoperate very easily with Ruby and Python and do things like COM interop much easier due to support for default parameters and optional parameters.

This actually seems like a small thing, however, along with generics, delegates and LINQ features (anonymous types, lamdba, etc) support in 2.0 and 3.0, you can now eliminate JavaScript in your SilverLight applications and use C# 4.0 in the code behind. This can change the way we program for the web in a big way.

C# is being influenced by the dynamic languages like JavaScript, Ruby, and Python. This is a good thing. We even got a sneak peek at C# 5.0 where C# looks extremely dynamic. C# is becoming the best of both worlds.

posted on Tuesday, October 28, 2008 12:46:48 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Saturday, October 25, 2008

Once again I am teaming up with the Tank to raise money for Memorial Sloan-Kettering Cancer Center. It is a great program and 100% of the money goes to the hospital and research center. Each year we team up with Fred’s Team to raise money via the NYC Marathon. (I myself have hung up my marathon shoes and the Tank is hanging them up next year.) When we visit the hospital, the doctors show us supplies, drugs, and materials that Fred’s Team paid for. On marathon day the kids with cancer come down to watch the marathon and give hi-fives to the runners.

This is a very awesome cause. And like all charity’s I work with, 100% of the proceeds go to charity, Fred’s Team is 100% volunteer and has no overhead. You can make a donation here.

posted on Saturday, October 25, 2008 7:19:31 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Friday, October 24, 2008

Over the years I have spoken at over 15 Tech*Eds in North America, Europe, and Asia. My favorite place to speak is hands down Barcelona. Mostly because the good show TechEd Europe puts on, but of also the audience, and the fun city that Barcelona is.

Not so sure I will like it this year, I have eight sessions at TechEd! Wow, they are working me hard. Apparently they are repeating a few sessions due to delegates voting on the sessions, so all I can say is THANK YOU and hopefully you will all get a lot of value from the sessions.

A lot of my sessions are interactive, and I mean that. At the Daily Scrum talks we will be passing around a microphone and it will be 100% Q&A, war stories, and interactive, no slides if I can help it. (Come on, ask a lot of questions, tell a lot of war stories make my week a little easier!) I am a certified Scrum Master and use it every day at Telerik, so if you are just curious, getting started, or in the trenches with Scrum, this is a great session for you. The Using Scrum session is more of an overview, but I would love some interaction and Q&A there as well.

The CTE and T-SQL sessions are brand new content and geared to developers: both application developers (C# and VB) and database developers (T-SQL programmers/DBA types), basically anyone who writes TSQL at some point during the day. (And even thought they are titled 2008, you can use most techniques in SQL 2005.) Hopefully they will not only show you some shortcuts, but also some creative ways of thinking. If you are coming from a strict C# and VB perspective, remember I started my life as a VB 3.0 programmer 15 years ago-not a database/TSQL developer, so I gear the session to a wide audience. In the TSQL Enhancements session, I have some pretty cool ADO. NET shortcuts.

And what is this Smackdown session? It is less of a smackdown and more of an overview of the crazy world of Microsoft Data Access. I was given carte-blanche by the TechEd planners, so anything goes!! I’ll be reviewing all of the SP1 technology (EF, LINQ to Entities, Astoria, LINQ to REST, Dynamic Data) and also take a walk down memory lane to use the historical context to try to predict what is next.  Don’t worry we can talk about the EF Vote of No Confidence and my experiences on the EF Council. I am going to reserve the final 15 minutes or so for a group discussion on the future of data access, is it EF/LINQ, is it ORM, is it EF, or is it something different? We also take a peek at Cloud Data and its role in all of this.

If you make it to Friday afternoon at 3:15 for the Scrum talk, bring beer.We’ll need it.

Here are the sessions:



T-SQL: Tips and Tricks Sharing Fest!

Interactive Session

Database Platform

11/10/2008   5:45PM - 7:00PM


Tech·Ed Daily Scrum!

Interactive Session

Development Practices

11/11/2008   9:00AM - 10:15AM


Using Scrum to Run Your Projects

Breakout Session

Developer Managers

11/11/2008   1:30PM - 2:45PM


T-SQL Enhancements in SQL Server 2008 : Getting Down and Dirty

Breakout Session

Database Platform

11/12/2008   1:30PM - 2:45PM


Rockstar Common Table Expressions in SQL Server 2008

Breakout Session

Database Platform

11/13/2008   9:00AM - 10:15AM

DAT01-IS (R)

T-SQL: Tips and Tricks Sharing Fest!

Interactive Session

Database Platform

11/13/2008   1:30PM - 2:45PM


Data Access Smackdown

Interactive Session

Database Platform

11/14/2008   10:45AM - 12:00PM

DVP04-IS (R)

Tech·Ed Daily Scrum!

Interactive Session

Development Practices

11/14/2008   3:15PM - 4:30PM

posted on Friday, October 24, 2008 10:38:12 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback