# Friday, 20 November 2009

As I sit in my hotel room recovering from my PDC Hangover and reflecting on the past week, the Day 2 keynote by Steven Sinofsky was the highlight for me.

You may be thinking, yea yea, lucky bastard, you got a free laptop. Sure that was awesome, but that is not what stuck out most in my head. The most important thing that Sinofsky did was to be brutally honest with the audience. This represents a new attitude from Microsoft.

Sinofsky admitted Vista’s flaws. To prove that he got it, he even showed some of the annoying dialogs and videos of customers doing useability testing with those annoying dialogs. (He did follow up with some of the changes Windows 7 made and some of customer useability tests.)

Then he moved to IE 9 development. I remember the Microsoft of the browser wars era. The one where Bill Gates would get on stage in front of 20,000 people at COMDEX and never say the words “Netscape” but rather “down level browser.” At the PDC keynote, Sinofsky  said the words “Firefox” and “Google Chrome”. Not only did he say those words, he showed charts at how slow IE 8 is compared to Chrome, Safari, and Firefox. Of course he was also showing how IE9 will be just as fast, but he is openly admitting in front of 5,000 people and live on streaming video that IE 8 sucks.


He also talked about how IE 8 fails the ACID 3 Standards Test. I ran it here and IE 8 gets a pathetic 20 out of 100:


Then Sinofsky talked about IE9 and the Acid 3 test. IE 9 gets a pretty sad 32, but he showed it anyway and promised to get better.


I also like Sinofsky because he is accessible. When Win7 went RTM to MSDN last summer, I sent a message complaining about what I thought was a bug to an internal Microsoft email alias. Sinofsky replied to me personally with a solution (on a weekend), and it was soon clear to me that the problem was caused by something that I did, not Win 7. I followed up with some thanks for the solution and told him that the real problem was somewhere “between the chair and the keyboard.” He even replied back again saying no problem and we had a few more mails in the thread and a good laugh. This is a very busy VP in charge of one of the most widely used products in the world taking time out to talk and troubleshoot with a customer.

You may be thinking, sure Steve but you are an MVP and RD. Well at the PDC in the afternoon after they gave us the laptops, Sinofsky spend about an hour or two walking around looking for people in the cafe playing with their new laptops. He stopped and chatted with each person asking how they liked it, did the touch live up to their expectations, etc. Then he went to the expo hall and did a book signing (with free copies of his book) and even posed for photos with anyone who wanted as he signed the book.

This level of accessible and honesty is simply amazing. Keep it up Microsoft.

Technorati Tags:
posted on Friday, 20 November 2009 16:31:29 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, 19 November 2009

Today at the PDC, Microsoft announced a new SQL Azure developer tool that is still pre-alpha: Code Name Houston.  Houston is a web based developer tool for SQL Azure databases. Built in Silverlight and hooked into the SQL Azure developer portal, Houston allows you to rapidly create tables, views, procedures, add data, delete data, etc. It kinda reminds me of Microsoft Access, but in a good way. This tool is not for admin stuff like adding users, just rapid database development in the cloud.

Houston is not available yet, but was demoed at PDC. Building a table was done very fast. It was not demoed, but I did see a button for import and export of data. When asked about general availability, no dates were given but calendar 2010 was indicated as the target. Can’t wait…

posted on Thursday, 19 November 2009 18:24:28 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, 18 November 2009

PDC is well underway and of course Telerik launched JustCode last night. It was fun walking around with the JustCode tee shirt on all day and duck tape over the CODE part.

If you are at the PDC swing by the Microsoft SQL Server booth and take a look at two of our exciting new projects. Microsoft is highlighting both our OpenAccess Data Services Wizard and our LINQ to M implementation.

See you at the Telerik booth, my sessions, or a party. :)


Technorati Tags: ,
posted on Wednesday, 18 November 2009 09:38:03 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, 17 November 2009

Thursday, November 19, 2009
Parallel Programming and Patterns using Microsoft .NET 4.0 ( Task , PLINQ , Data)

You must register at https://www.clicktoattend.com/invitation.aspx?code=141114 in order to be admitted to the building and attend.
The manycore shift presents an unprecedented business opportunity for developers to design new software experiences that take advantage of the performance power of manycore architectures. At the same time, parallel programming is complex, difficult and labor-intensive, for even the most skilled developers.
This session will cover some basic concepts of Parallel Programming , related patterns , demos and .NET 4.0 support for parallel programming.

Navneet Srivastava, Emerging Health Information Technology

Navneet is lead architect and manager of engineers in the Product Development division of Emerging Health Information Technology, a subsidiary of Montefiore Medical Center in the Bronx. He oversees design and development of the breakthrough clinical intelligence application, Clinical Looking Glass, employing cutting edge Microsoft technologies and a host of best practices. In past positions, Navneet has developed other healthcare applications with national distribution.

Thursday, November 19, 2009

Reception 6:00 PM , Program 6:15 PM

Apress , 233 Spring Street (between 6th Avenue and Varick Street) New York, NY 10013 , 6th Floor

C or E trains to Spring Street or #1 train to Houston Street

posted on Tuesday, 17 November 2009 10:04:52 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Monday, 16 November 2009

Joel and I are doing a BOF session on Tuesday about Agile tools and Teams. (I am not listed on the PDC web site for some reason, but I will be there alongside Joel.)

We will most definitely show the Telerik Dashboard and Work Item Manager as well as chat about tons of other great tools. Most importantly, we want to hear from you at this session. We did it that way at TechEd in LA earlier this year (the #1 ranked interactive session at TechEd 2009) and it worked well. Hope to see you there and have a great discussion.

Tooling on Agile Teams

Joel Semeniuk in 309 on Tuesday at 3:00 PM

Agile practices focus on customer value and team interactions. There is significantly growing and important set of tools that work to help Agile teams be more “agile”. In this session, we would like to hear what you have to say about tools for Agile teams? What tools work? What tools don’t work? What tools are missing in the industry? What tools can you not live without? Come join the discussion or simply listen to what your peers have to say.

See you there!


posted on Monday, 16 November 2009 01:54:14 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Sunday, 15 November 2009

Following the lead of the Department of Justice (DOJ) in Washington, DC, the Attorney General of the State of New York, Andrew Cuomo, has brought a lawsuit against Intel, calling them a monopolist. While Intel has recently settled legal claims with rival AMD (mostly due to patent disputes as well as some anti-competition charges), Cuomo is suing Intel on the grounds that they are a monopoly and have stifled competition.

While Intel’s market share is huge, over 80% of chips sold are “Intel Inside”, the free market has regulated the industry very nicely and lead to innovation. Intel and its cheap and low powered Atom processor started the netbook revolution (I now see as many netbooks as Macs in Starbucks). Look at the progress with multi-core and x64 architecture. (Actually three years ago I thought AMD’s x64 chips were better since their high end chips had more cores at the time. I remember buying an AMD based 2xquad core x64 SQL Server machine in that time frame and was impressed that AMD’s multicore server chips were so much better.)

Over ten years ago, I lobbied the US Congress against the DOJ’s case against Microsoft on similar grounds. At the time did Microsoft do some bad “evil empire” things that they were able to do since they were so big? Yes. Enough to warrant an anti-trust legal battle? No. The free market was able to sort it out on its own, far better than the legal remedies brought by the DOJ. When Microsoft got all big and lazy with dominate Internet Explorer market share, boom, Firefox came out of nowhere and handed Microsoft its lunch. Now Microsoft is starting to invest and innovate in the browser space, but now has to deal with not only Firefox, but Chrome and Safari. The free market did loads more to spur innovation and regulate Microsoft than the anti-trust trial even dreamed of doing! Same with Intel, allow the free market to decide, not lawyers.

Fellow New Yorker and good friend Andrew Bust wrote an opinion here. Andrew is a registered Democrat and I am a registered Republican. We both agree on this issue. The last time we agreed on a political issue was when DOS was the primary operating system used.

Let the free market regulate the industry and don’t let the government stifle innovation. Sign a petition here.

posted on Sunday, 15 November 2009 04:38:07 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Saturday, 14 November 2009

I appear again on .NET Rocks this week, this time talking with Richard and Carl about life in the 21st century. I talk about marketing in the digital age, geek stuff, and also argue with Carl about Amazon’s decision to remove the book 1984 from the Kindle.

You can listen here. Enjoy.

Technorati Tags:
posted on Saturday, 14 November 2009 21:08:59 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, 13 November 2009

Earlier this week, Microsoft released SQL Server 2008 R2 November CTP (Microsoft needs to hire some people from Apple to do something about the naming of their products.) I learned while at TechEd Europe 2009 that the version of SQL Server Management Studio (SSMS) that ships with R2 CTP3 has support for SQL Azure. So I downloaded the CTP (I had to do it in the speaker room, the speaker hotel blocks just about everything on its “free” wifi) and got rolling.

After installing, I decided to play around with the SQL Azure support. I was able to put my login credentials right into the SQL Server connection dialog and did not need to specify a database in the “Options” menu like I had to do before.


I was able to play around with SSMS and Azure and create databases tables, views, etc (via TSQL, not dialogs). Most importantly, SSMS does support the Object Explorer for SQL Azure!  We can’t change the database as we can in other community tools, however, this is still a beta and it has come a long way so far. SSMS supports most of the functionality that you will need to get started with SQL Azure.



Technorati Tags:
posted on Friday, 13 November 2009 05:02:34 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, 12 November 2009

Just a few weeks ago Microsoft released Visual Studio 2010 Beta2. Last week Telerik put its Q3 release live into production. One of the cool new Q3 features is that OpenAccess now works seamlessly with Visual Studio 2010. That means you can target .NET 3.5 or .NET 4.0 using either Visual Studio 2008 (.NET 3.5) or Visual Studio 2010 (.NET 4.0).

I will do a quick demo with Visual Studio 2010, SQL Azure, and OpenAccess. With OpenAccess Q3 installed, I fired up Visual Studio 2010 and started a console project targeting .NET 4.0


While the project will target the .NET 4.0 Framework, we have to do one small thing to make it work. By default the project type is “.NET 4.0 Client Profile” so we have to change that to a straight up .NET 4.0 project type. The way to do this is to right click on the project and select properties. In the properties dialog Application section, you will see Target framework;  select .NET 4.0 and you are good to go. (Visual Studio will have to close and reopen the project for you.)


Next we have to fire up OpenAccess via the Enable Project Wizard. When I start the Enable Project to use ORM Wizard, OpenAccess asked me what database to use, and as I showed before on this blog, Q3 now supports SQL Azure natively. Notice that the wizard will prompt you to put in your SQL Azure credentials and will give you the basic template for your server name: tcp:<sqlazureid>.database.windows.net.


Note: Depending on your setup in Visual Studio 2010, you may have to use the Server name without the tcp: and use the syntax UserName@sqlazureid. Visual Studio 2010 will give you an error in your setup if the default does not work. If you get this error you would enter the following for your SQL Azure credentials:

Server Name: sqlazureid.database.net (no tcp:, so for example p28drog84.database.net)
User Name: YourSQLAzureUserID@sqlazureid (for example: Stevef@p28drog84)

Next you will want to map some SQL Azure tables to OpenAccess entities. This can be done pretty easily, just by running the Reverse Mapping wizard. Here you can select your tables to map. By default OpenAccess will also now map the foreign keys of each entity as a primitive type in addition to the complex type. This will help a great amount if you are using your entities in conjunction with any data service such as WCF or ADO .NET Data Services. (More on that later.)


Once you have mapped your entities, you are free to work with them. You can use the OpenAccess LINQ implementation (which has went through a major overhaul and is in line with the LINQ to SQL and LINQ to Entities LINQ implementations.) As I showed last time, you can write a simple LINQ statement to filter all the Customers by a certain country as shown here:

   1:  static void Main(string[] args)
   2:  {
   3:      IObjectScope dat = ObjectScopeProvider1.GetNewObjectScope();
   4:      //LINQ Statement   
   5:      var result = from c in dat.Extent<Customer>()
   6:                   where c.Country == "Germany"
   7:                   orderby c.CompanyName
   8:                   select c;
   9:      //Print out the company name  
  10:      foreach (var cust in result)
  11:      {
  12:          Console.WriteLine("Company Name: " + cust.CompanyName);
  13:      }
  14:      //keep the console window open  
  15:      Console.Read();
  16:  }




posted on Thursday, 12 November 2009 11:20:25 (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback