# Monday, November 3, 2008

I have been a fan of the cloud since Amazon first released its first APIs. We have been waiting for Microsoft to enter in the cloud space and we have been seeing some stuff drip out over the last year, Astoria (while not cloud, it is a RESTful service that allows us to be cloud ready), Live Mesh (which people confuse as a consumer offering, but actually is a development platform), and SQL Server Data Services (SSDS).

Last week at PDC, Microsoft spoke abut Windows Azure, its cloud services platform. It will consist of web application and service hosting, .NET Services (basically the BizTalk services stack), storage, and data services (SSDS, or now just SDS). Some developers at the PDC were like “this is like the ASP model ten years ago, Azure is doomed to fail.” So the question is, will Azure succeed where the ASP model failed?

The ASP model was about a generic application hosted by an ISP and sold as a service to you. Picture instead of using ADP for your accounting software, you would log onto the ADP web site and use it as a service. This model did not completely fail, but it did not deliver on its mission. It was also a lot of .com hype and about 10-15 years ahead of its time with both the technology and the business acceptance.

While things like Live Services and hosted Exchange is part of Azure, Azure is not about ASP, but about Hosting your app, services, and data in the cloud. There is a need for this: Amazon EC2 and S3 are quite successful, even with the crowd that you think would never put their data in the cloud: Banks. It will take time, but companies will buy into this paradigm and make the shift. The first thing to go into the cloud in masse will be hosted Exchange, then file server capabilities, then applications, then data. Small businesses will go first. It may take years for the shift to be complete, but it will happen. It just makes sense to have your applications hosted in the cloud, why bother and worry about the infrastructure. Infrastructure will be a commodity by 2012. By then most new apps will be hosted in the cloud or using the cloud infrastructure for .NET Services or data.

Only 12 years too late! During the .com era, when I was a CTO of a large .com, I spent 65% of my time worrying about the infrastructure (bandwidth, RAID arrays, load balancing, switches, etc.) Years later at Corzen to support our spidering engines, I focused on infrastructure about 50% (only reason why it was lower than .com era was due to virtualization.) Now I need more bandwidth, more load balancing, it is just a click of a button. Sure it is not going to be this easy, but even if it delivers on 50% of its vision, it will reduce my focus on infrastructure by 95%.

.NET Services (formerly BizTalk Services) in the cloud will get adopted by developers as it matures and as apps get moved to the cloud. SQL Services will get adopted in version 2 when you can do more relational features just as tables, joins, views, etc, instead of the “flexible entities” approach of the first release.

Bottom line is that Azure will succeed, but it will take time for the world to catch up to Microsoft’s vision. Amazon (and to some degree Google) have paved the way.

posted on Monday, November 3, 2008 9:56:29 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2] Trackback
# 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