# Tuesday, March 30, 2010

I want Microsoft to succeed in the mobile space. As a consumer, I want more choice than Apple and Google. A successful Microsoft in this space will only increase the innovation and drive down price. I held out against the iPhone and Android until my Windows Mobile phone literally fell apart. (It was held together with tape for 3 months when I was in denial.) A few months ago when I walked into the store here in Hong Kong there simply were no good Microsoft options if you wanted touch, music, maps, facebook, etc. So I ordered a Nexus One.

image

I was excited by the Windows 7 phone when I first saw it. That said, I will not buy the new Windows phone unless two things happen.

  • First, I will not, under any circumstances, buy the phone from a carrier. Carriers are pure evil and lock the phone, install their own crap on it, and remove native features. If Microsoft wants to change the nature of the industry, they have to create a phone that everyone wants and make it real simple to get one. Apple started the revolution by making a phone that everyone wanted, did not allow the carrier to install their own crap, but did force you into a deal with AT&T (in the USA) and will not unlock the phone. Google continued the revolution by selling the phone on the Web unlocked, but only in 4 countries. If Microsoft makes us buy the phone from carriers, game over-that is a step backwards. Microsoft should continue the revolution and make the phone cheap and not sign any deals with any carriers. They should go direct to the consumers and sell the phone world wide for $300 at electronics retail shops such as Best Buy. It will nothing but revolutionize the way we buy mobile phones in the USA.
  • Second I won’t buy a phone that has the word “Windows” on it. Change the name to something cool. “iPhone” and “Nexus One”, even “Android” are just cool. Windows is old and stale and makes me think of laptops and such. Microsoft has a tendency to over brand “Windows.” They have done a great job at that. The problem is that the consumer market Microsoft is targeting doesn’t care about the Windows brand. They like the XBox and even the Zune brand. Go with that. Microsoft keeps talking about how “we have changed our game” with the “Windows 7 Phone Series.” I’m sorry but that sounds a lot like Microsoft Visual Studio 2005 Team System for Database Professionals Edition.

Last week I was out with some friends and we were trying to google for something. After someone was painfully slow on their Blackberry, I whipped out my Nexus One. Immediately, they all said “wow, is that the Nexus One?” Before I knew it, I was doing a product demo. I had five people standing around me playing with the phone. Microsoft, please don’t embarrass me when I pull out my “Windows Phone 7 Series.” That is just a lame name. Give it a cool name and make it available everywhere for cheap. Let me buy my “XZune” Phone at Best Buy. Soon.

 

Technorati Tags:

Bookmark and Share
posted on Tuesday, March 30, 2010 10:41:04 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [4] Trackback
# Monday, March 29, 2010

Someone sent me this link that was posted on MSDN a month or two ago. I am interviewed about my charity work in Nepal, Telerik, Entrepreneurship, and SQL & Windows Azure. Fun stuff.


Bookmark and Share
posted on Monday, March 29, 2010 8:16:52 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback
# Friday, March 26, 2010

GoDaddy.com, the top Internet domain name registration company, announced this week that , the company had been hacked "due to a lack of enforcement against criminal activities by the Chinese government." In addition, the Chinese government has been forcing all domain registrars to get photos, business ID and signatures for anyone registering a .cn domain. Speaking before the US Congress this week, Christine Jones, GoDaddy’s lawyer, said “We decided we didn’t want to become an agent of the Chinese government” and has ended its operations selling .cn domain names.

Google and now GoDaddy have both stood up to China. Who is next?

posted on Friday, March 26, 2010 3:34:19 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Thursday, March 25, 2010

Last week Telerik released a new LINQ implementation that is simple to use and produces domain models very fast. Built on top of the enterprise grade OpenAccess ORM, you can connect to any database that OpenAccess can connect to such as: SQL Server, MySQL, Oracle, SQL Azure, VistaDB, etc. Today I will show you how to build a domain model using MySQL as your back end.

To get started, you have to download MySQL 5.x and the MySQL Workbench and also, as my colleague Alexander Filipov at Telerik reminded me, make sure you install the MySQL .NET Connector, which is available here.  I like to use Northwind, ok it gives me the warm and fuzzies, so I ran a script to produce Northwind on my MySQL server. There are many ways you can get Northwind on your MySQL database, here is a helpful blog to get your started. I also manipulated the first record to indicate that I am in MySQL and gave a look via the MySQL Workbench.

image

Ok, time to build our model! Start up the Domain Model wizard by right clicking on the project in Visual Studio (I have a Web project) and select Add|New Item and choose “Telerik OpenAccess Domain Model” from the new item list.

image

When the wizard comes up, choose MySQL as your back end and enter in the name of your saved MySQL connection.

image

If you don’t have a saved MySQL connection set up in Visual Studio, click on “New Connection” and enter in the proper connection information. *Note, this is where you need to have the MySQL .NET connector installed.

image

After you set your connection to the MySQL database server, you have to choose which tables to include in your model. Just for fun, I will choose all of them.

image

Give your model a name, like “NorthwindEntities” and click finish. That is it.

Now let’s consume the model with ASP .net. I created a simple page that also has a GridView on it. On my page load I wrote this code, by now it should look very familiar, a simple LINQ query filtering customers by country (Germany) and binding the results to the grid. 

   1:  protected void Page_Load(object sender, EventArgs e)
   2:  {
   3:      if (!IsPostBack)
   4:      {
   5:          //a reference to the data context
   6:          NorthwindEntities dat = new NorthwindEntities();
   7:          //LINQ Statement
   8:          var result = from c in dat.Customers
   9:                       where c.Country == "Germany"
  10:                       select c;
  11:          //Databinding to the Gridview
  12:          GridView1.DataSource = result;
  13:          GridView1.DataBind();
  14:      }
  15:  }

F5 produces the following.

image

Tomorrow I’ll show how to take the same model and create an Astoria/OData data feed.

Technorati Tags:

Bookmark and Share
posted on Thursday, March 25, 2010 2:37:56 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Wednesday, March 24, 2010

I started my career on Wall Street in a non-technical role. After I gained the confidence to make the move from hobby to profession, the company that I was working for did not let me be a programmer, so I quit my job to start my own one man shop. My first customers were Wall Street firms. Because of this background, I understand bonds, options, swaps, and other complex financial transactions. My guilty pleasure is reading about massive financial blowups, books like: When Genius Failed, Liar’s Poker, and House of Cards.

Michael Lewis, the bestselling writer of Liar’s Poker and Moneyball, just released a new book called The Big Short. It is a book about the bond and real estate derivative markets and the short selling people did the year before the massive crash of 2008.

I wanted to read this book and headed to Amazon.com to buy it for my Kindle. I noticed that it was the #1 selling book on Amazon, so I did not even have to search for it, it was right there on the home page.  That is when I realized that there is no Kindle version! I have a rule, no more “real” books, if it is not on the Kindle it doesn't exist to me. This is my preference and it exists for a variety of reasons: love of my Kindle, tons of crap to bring when I travel, too many books laying around the house, me temporary living in Hong Kong and don’t want to transport books 8,000 miles are on the top of the list. (If you don’t own a Kindle and think I am blowing hot air, ask yourself when the last time you bought a physical CD was, fancy iPod owner.)

image

If you remember back in January, I made a prediction on the blog that the content providers will fight back against Netflix and Amazon: and fight back they did. Once Macmillan forced Amazon’s hand back in late January, the rules changed. If you remember MacMillian, threatened to withhold their entire collection of books, print and digital, unless Amazon raised their prices for the Kindle. Amazon challenged, but lost and had to capitulate.

Now it appears that the publisher of The Big Short, W. W. Norton & Company, is doing something more evil, they are withholding the Kindle version until the paperback comes out. This is to boost the hardcover sales.

What a bad idea. The publisher is living in the pre-digital book era. Someone who owns an eReader is not going to buy a hardcover book ever again. The market has changed. W W Norton doesn’t realize it.

I heard about the book and was willing to spend $9.99 as an impulse buy. I would even pay $12 or $13 for the Kindle version, only a few dollars less than the list price. Now I have to wait at least 6-8 months and may forget or the book may lose its spot on my priority list.

The publisher is also assuming that I will still want to read this book a year from now, that the financial crisis will still be deep in my mind and I will want to rush to buy it. They are also assuming that I won’t illegally download this book as well. (Something they are forcing me to consider.)

The publisher is making a big mistake. They are pushing me to defer my purchase, a purchase I may never make. They would have made a sale today, but choose not to sell it to me. They are trading guaranteed profits today for potential profits later.

 

Postscript:

The reviews of The Big Short on Amazon are interesting.

image

There are more negative reviews (1 star) than positive (5 + 4 star). Most of the reviews are people like me complaining that there is no Kindle version! The author is being punished for the decisions of his publisher. Several bloggers came out to defend Lewis and bash Amazon. I am not one of them.

An author like Lewis has clout and could have put his foot down. He also could have chosen to self publish, sell it on Amazon and B&N only in e-format for $7.99 and kept all the profits. So while it sucks that his book is getting negative reviews, I don’t feel sorry for him. Besides it is still the #1 bestseller on Amazon as of now.

I’ll leave you with a great quote promoting the Kindle:

"The coolest thing, by far, is that you think of a book you'd like to read, someone tells you about a book you'd like to read, and in 30 seconds, it's on your screen, all of it."

--Michael Lewis, 2007.

 

Technorati Tags:

Bookmark and Share
posted on Wednesday, March 24, 2010 5:46:29 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Tuesday, March 23, 2010

Today Google announced on its corporate blog that as of today all Google traffic in China will be redirected to Google’s site here in Hong Kong. I use the Hong Kong Google site daily and it has no censorship since Hong Kong is an autonomous self-governing region of China. The Chinese government said that Google is "totally wrong" and accused it of breaking a promise made when it launched its service in China.

I suspect that China will soon block google.com.hk or Google’s mainland China users will stop using Google since the Hong Kong site has excellent search results that have local relevance for Hong Kong but not for mainland China. Either way, the end is near for Google in China. It is interesting that Google has decided to burn a bridge in China.

My question is, does Google’s great “moral” stand matter? Can a company like Google effect the politics of a nation? Should they even try to?

Normally I would say no, a company should not try to change the politics of a nation it is doing business in. If it disagrees with the policies of a nation, it should not do business there. Would Google have done business in Nazi Germany? The Soviet Union?

The world rushes to do business with China, but sweeps under the rug the fact that it is not a free society. (I am reminded of this every day when I read the newspaper in Hong Kong and there is a story about some restriction on the mainland.) The question is, will Google’s actions make other companies think twice about China?

Technorati Tags: ,

Bookmark and Share
posted on Tuesday, March 23, 2010 9:03:50 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Monday, March 22, 2010

Tomorrow I will be presenting a “What's new for SQL Server 2008 R2” session at the IT Efficiency Event in Hong Kong put on by Microsoft. Even thought it is an overview session, I’ll be doing a few extensive demos. The demos are on:

  • New TSQL constructs and other goodies like that
  • BING map integration (if I get internet access in the session room!)
  • Data-Tier Applications (fun for both developers and DBAs)
  • PowerPivot

I will be the only English speaking speaker, should be fun. :)

posted on Monday, March 22, 2010 4:30:19 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, March 19, 2010

Ever since the “new” SQL Azure went to beta, I have craved an automated way to set up an OData (Astoria) Service from my SQL Azure database. My perfect world would have been to have a checkbox next to each table in my database in the developer portal asking to “Restify” this table as a service. It always seemed kind of silly to have to build a web project, create an Entity Framework model of my SQL Azure database, build a WCF Data Services (OData) service on top of that, and then deploy it to a web host or Windows Azure. (This service seems overkill for Windows Azure.) In addition to all of that extra work, in theory it would not be the most efficient solution since I am introducing a new server to the mix.

At Mix this week and also on the OData team blog, there is an announcement as how to do this very easily. You can go to the SQL Azure labs page and then click on the “OData Service for SQL Azure” tab and enter in your SQL Azure credentials and assign your security and you will be able to access your OData service via this method: https://odata.sqlazurelabs.com/OData.svc/v0.1/<serverName>/<databaseName>

image

I went in and gave it a try. In about 15 seconds I had a working OData feed, no need to build a new web site, build an EDM, build an OData svc, and deploy, it just made it for me automatically. Saved me a lot of time and the hassle (and cost) of deploying a new web site somewhere. Also, since this is all Azure, I would argue that it is more efficient to run this from Microsoft’s server’s than mine: less hops to the SQL Azure database. (At least that is my theory.)

image

To really give this a test drive, I opened up Excel 2010 and used SQL Server PowerPivot. I choose to import from “Data Feeds” and entered in the address for my service. I then imported the Customers, Orders, and Order Details tables and built a simple Pivot Table.

image

This is a great new feature!

image

If you are doing any work with Data Services and SQL Azure today, you need to investigate this new feature. Enjoy!

Technorati Tags: ,

Bookmark and Share
posted on Friday, March 19, 2010 4:40:11 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, March 18, 2010

If you would have asked me 5 years ago which company, Apple or Microsoft,  would have released a mobile phone that was super popular and got most of its success from a great developer ecosystem of 3rd party applications, I would have said Microsoft in a heartbeat. The reason is that traditionally Apple has been pretty “closed” and Microsoft always relied on 3rd party software developers, like myself, to build compelling applications for its platforms.

The Mac was a “superior” operating system than the early versions of Windows, however, Windows won the battle for supremacy (and still is winning with well over 90% market share). The reason why is that Apple was outright hostile to 3rd party software developers and Microsoft courted them. Building a developer ecosystem is in Microsoft’s DNA and clearly not in Apple’s.

When the iPhone SDK shipped, the tables were turned. Apple is now depending on 3rd party developers for continued success of its iPhone (and iPad). With the most applications, the iPhone is well ahead of the pack. Google’s Android market, with 30,000 apps, is far behind in second and Microsoft Windows Mobile is an also ran.

This week at the Mix conference, Microsoft announced the development platform for Windows Phone 7. Building apps for the new Windows Mobile 7 phone is super easy: Silverlight + Visual Studio is the primary way to do so. Last time I googled, there were about 5 million .NET developers worldwide, so Microsoft gained 5 million developers in the mobile phone wars.

So the question is: Can Microsoft out Microsoft Apple? Being a Microsoft watcher, I know that this is in Microsoft’s DNA and that Apple is a recent convert, so I would say that Microsoft does have a good shot. I would much rather code in Silverlight than Objective-C, the (painful to use) development platform for the iPhone. Let’s take a look:

Pros for Apple:

  • Best selling Smartphone on the planet
  • Apple “coolness”

Cons for Apple:

  • Developer outreach is new to Apple
  • Objective-C is not a developer friendly platform

Pros for Microsoft:

  • Developer Outreach is in their DNA for 30 years
  • Silverlight is an easy to use, modern developer platform that is already popular with 5 million developers

Cons for Microsoft:

  • New to the “cool” Smartphone game
  • Lack of “cool” credibility with consumers

Where will this all go? Apple certainly has a *huge* head start. Microsoft has its work cut out for it, however, over the last 15 years I have watched Microsoft be counted out before and succeed-they work best when they have their backs against the wall. Let the battle begin!

Technorati Tags:

Bookmark and Share
posted on Thursday, March 18, 2010 9:16:21 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [4] Trackback
# Saturday, March 13, 2010

This week Telerik released a new LINQ implementation that is simple to use and produces domain models very fast. Built on top of the enterprise grade OpenAccess ORM, you can connect to any database that OpenAccess can connect to such as: SQL Server, MySQL, Oracle, SQL Azure, VistaDB, etc. While this is a separate LINQ implementation from traditional OpenAccess Entites, you can use the visual designer without ever interacting with OpenAccess, however, you can always hook into the advanced ORM features like caching, fetch plan optimization, etc, if needed.

Just to show off how easy our LINQ implementation is to use, I will walk you through building an OData feed using “Data Services Update for .NET Framework 3.5 SP1”. (Memo to Microsoft: P-L-E-A-S-E hire someone from Apple to name your products.) How easy is it? If you have a fast machine, are skilled with the mouse, and type fast, you can do this in about 60 seconds via three easy steps. (I promise in about 2-3 weeks that you can do this in less then 30 seconds. Stay tuned for that.)

 Step 1 (15-20 seconds): Building your Domain Model

In your web project in Visual Studio, right click on the project and select Add|New Item and select “Telerik OpenAccess Domain Model” as your item template. Give the file a meaningful name as well.

image

Select your database type (SQL Server, SQL Azure, Oracle, MySQL, VistaDB, etc) and build the connection string. If you already have a Visual Studio connection string already saved, this step is trivial.  Then select your tables, enter a name for your model and click Finish. In this case I connected to Northwind and selected only Customers, Orders, and Order Details.  I named my model NorthwindEntities and will use that in my DataService.

image

Step 2 (20-25 seconds): Adding and Configuring your Data Service

In your web project in Visual Studio, right click on the project and select Add|New Item and select “ADO .NET Data Service” as your item template and name your service.

image

In the code behind for your Data Service you have to make three small changes. Add the name of your Telerik Domain Model (entered in Step 1) as the DataService name (shown on line 6 below as NorthwindEntities) and uncomment line 11 and add a “*” to show all entities. Optionally if you want to take advantage of the DataService 3.5 updates, add line 13 (and change IDataServiceConfiguration to DataServiceConfiguration in line 9.)

   1:  using System.Data.Services;
   2:  using System.Data.Services.Common;
   3:   
   4:  namespace Telerik.RLINQ.Astoria.Web
   5:  {
   6:      public class NorthwindService : DataService<NorthwindEntities>
   7:      {
   8:          //change the IDataServiceConfiguration to DataServiceConfiguration
   9:          public static void InitializeService(DataServiceConfiguration config)
  10:          {
  11:              config.SetEntitySetAccessRule("*", EntitySetRights.All);
  12:              //take advantage of the "Astoria 3.5 Update" features
  13:              config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
  14:          }
  15:      }
  16:  }

 

Step 3 (~30 seconds): Adding the DataServiceKeys

You now have to tell your data service what are the primary keys of each entity. To do this you have to create a new code file and create a few partial classes. If you type fast, use copy and paste from your first entity,  and use a refactoring productivity tool, you can add these 6-8 lines of code or so in about 30 seconds. This is the most tedious step, but don’t worry, I’ve bribed some of the developers and our next update will eliminate this step completely.

Just create a partial class for each entity you have mapped and add the attribute [DataServiceKey] on top of it along with the key’s field name. If you have any complex properties, you will need to make them a primitive type, as I do in line 15. Create this as a separate file, don’t manipulate the generated data access classes in case you want to regenerate them again later (even thought that would be much faster.)

   1:  using System.Data.Services.Common;
   2:   
   3:  namespace Telerik.RLINQ.Astoria.Web
   4:  {
   5:      [DataServiceKey("CustomerID")]
   6:      public partial class Customer
   7:      {
   8:      }
   9:   
  10:      [DataServiceKey("OrderID")]
  11:      public partial class Order
  12:      {
  13:      }
  14:   
  15:      [DataServiceKey(new string[] { "OrderID", "ProductID" })]
  16:      public partial class OrderDetail
  17:      {
  18:      }
  19:   
  20:  }

 

Done! Time to run the service.

Now, let’s run the service! Select the svc file and right click and say “View in Browser.” You will see your OData service and can interact with it in the browser.

image

Now that you have an OData service set up, you can consume it in one of the many ways that OData is consumed: using LINQ, the Silverlight OData client, Excel PowerPivot, or PhP, etc.

Happy Data Servicing!

Technorati Tags: ,,

Bookmark and Share
posted on Saturday, March 13, 2010 4:29:07 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, March 12, 2010

I will be presenting my half day Agile seminar this May in Sydney, Australia. I hope to see you there. I will also be speaking at the Sydney .NET User Group that evening on Silverlight 4.0 and giving out some Telerik swag.

Half-day Agile Seminar
Wednesday 19th May 2010
9:00am - 12:00pm
SSW Office, Sydney
Suite 10, 81-91 Military Road, Neutral Bay
Cost: No Charge

 SharePoint

Agile Development, Tools and Teams

One of the most popular Agile project management and development methods, Scrum is starting to be adopted at major corporations and on very large projects. After an introduction to the basics of Scrum like: project planning and estimation, the Scrum Master, team, product owner and burn down, and of course the daily Scrum, Stephen (a certified Scrum Master) shows many real world applications of the methodology drawn from his own experience as a Scrum Master.

Negotiating with the business, estimation and team dynamics are all discussed as well as how to use Scrum in small organizations, large enterprise environments and consulting environments. Stephen will also discuss using Scrum with virtual teams and an off-shoring environment. We’ll then take a look at the tools we will use for Agile development, including planning poker, unit testing, and much more. There will be plenty of time for Question and Answer. This seminar is a jump start for a certified scrum master exam.

Agenda

  • Introduction to Agile Development and Scrum
  • Agile Estimation
  • Implementing Scrum with remote and offshore teams
  • Agile Tools, Test Driven Development, and Continuous Integration
Technorati Tags:

Bookmark and Share
posted on Friday, March 12, 2010 4:21:06 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, March 11, 2010

Love LINQ to SQL but are concerned that it is a second class citizen? Need to connect to more databases other than SQL Server? Think that the Entity Framework is too complex? Want a domain model designer for data access that is easy, yet powerful? Then the Telerik Visual Entity Designer is for you.

Built on top of Telerik OpenAccess ORM, a very mature and robust product, Telerik’s Visual Entity Designer is a new way to build your domain model that is very powerful and also real easy to use. How easy? I’ll show you here.

First Look: Using the Telerik Visual Entity Designer

To get started, you need to install the Telerik OpenAccess ORM Q1 release for Visual Studio 2008 or 2010. You don’t need to use any of the Telerik OpenAccess wizards, designers, or using statements. Just right click on your project and select Add|New Item from the context menu. Choose “Telerik OpenAccess Domain Model” from the Visual Studio project templates.

image

(Note to existing OpenAccess users, don’t run the “Enable ORM” wizard or any other OpenAccess menu unless you are building OpenAccess Entities.)

You will then have to specify the database backend (SQL Server, SQL Azure, Oracle, MySQL, etc) and connection.

image

After you establish your connection, select the database objects you want to add to your domain model. You can also name your model, by default it will be NameofyourdatabaseEntityDiagrams.

image

You can click finish here if you are comfortable, or tweak some advanced settings. Many users of domain models like to add prefixes and suffixes to classes, fields, and properties as well as handle pluralization. I personally accept the defaults, however, I hate how DBAs force underscores on me, so I click on the option to remove them.

image

You can also tweak your namespace, mapping options, and define your own code generation template to gain further control over the outputted code. This is a very powerful feature, but for now, I will just accept the defaults.

 image

When we click finish, you can see your domain model as a file with the .rlinq extension in the Solution Explorer.

image

You can also bring up the visual designer to view or further tweak your model by double clicking on the model in the Solution Explorer. 

image

Time to use the model!

Writing a LINQ Query

Programming against the domain model is very simple using LINQ. Just set a reference to the model (line 12 of the code below) and write a standard LINQ statement (lines 14-16).  (OpenAccess users: notice the you don’t need any using statements for OpenAccess or an IObjectScope, just raw LINQ against your model.)

   1:  using System;
   2:  using System.Linq;
   3:  //no need for an OpenAccess using statement
   4:   
   5:  namespace ConsoleApplication3
   6:  {
   7:      class Program
   8:      {
   9:          static void Main(string[] args)
  10:          {
  11:              //a reference to the data context
  12:              NorthwindEntityDiagrams dat = new NorthwindEntityDiagrams();
  13:              //LINQ Statement
  14:              var result = from c in dat.Customers
  15:                           where c.Country == "Germany"
  16:                           select c;
  17:   
  18:              //Print out the company name
  19:              foreach (var cust in result)
  20:              {
  21:                  Console.WriteLine("Company Name: " + cust.CompanyName);
  22:              }
  23:              //keep the console window open
  24:              Console.Read();
  25:          }
  26:      }
  27:  }

Lines 19-24 loop through the result of our LINQ query and displays the results.

image

That’s it! All of the super powerful features of OpenAccess are available to you to further enhance your experience, however, in most cases this is all you need.

In future posts I will show how to use the Visual Designer with some other scenarios. Stay tuned.

Enjoy!

Technorati Tags: ,,

Bookmark and Share
posted on Thursday, March 11, 2010 9:26:16 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, March 10, 2010

While there is a Nobel prize in other scientific fields, there really isn’t one for computing. Instead we have the A.M. Turing Award, the next best thing. According to Wikipedia, the award: is given annually by the Association for Computing Machinery to "an individual selected for contributions of a technical nature made to the computing community. The contributions should be of lasting and major technical importance to the computer field".

Past recipients have included legends such as EF Codd and Fred Brooks. This year the award went to Chuck Thacker, a technical fellow at Microsoft Research for his lifetime achievement and for his work in the early 1970s on the Alto, the first PC. (When he worked at the Xerox PARC.) More on Thacker and the award can be viewed here.

Technorati Tags:

Bookmark and Share
posted on Wednesday, March 10, 2010 10:07:22 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, March 09, 2010

By now there have been a lot of blog posts on Windows Azure billing. I have stayed out of it since I figured that the billing scheme would generate some sticker shock on our end and some rethinking on Microsoft's end. For the most part it has, but I now want to tell my story since I think most early Azure users are thinking along my lines.

When Windows and SQL Azure went live, I wanted to deploy an application using some of Telerik’s products to “production”. I put my free MSDN hours into the Azure system for billing and uploaded the application. I actually could not get it to work and left it up there figuring I would get back to it and fix it later. Periodically I would go in and hoke around with it and eventually fixed it. For the most part I had nothing more than an advanced “Hello World” and simple Northwind data over forms via SQL Azure up there.

Recently, I received a bill for $7 since I went over my free 750 hours by about 65 hours. (I guess I had a test and production account running at the same time for a while.) Even thought for the most part I had no hits other than myself a few times, I still incurred charges since I left my service “live” in production. My bad, I learned a lesson as to how Azure works, luckily, it was only a $7 lesson.

It was then that I realized that I was guilty of treating Windows Azure as a fancy web hosting account. The problem is that Windows Azure is not web hosting, but rather a “web operation system” or a “Cloud” service hosting and service management environment. We’re not only paying for hosting, we are paying for Azure to manage our application for us- much like enterprise middleware 10-15 years ago, but for the cloud. I now look at Azure differently and this is good since I will use it differently (and how it was intended.)  I am guessing that other developers with $7 bills in their inbox this month will do the same.

That said, I was in Redmond a month or two ago and had a chance to talk to the head of MSDN. I complained about how the MSDN subscription offer was only for 8 months, etc. He told me that for the first time in Microsoft’s history, they have hard physical assets that have to be paid for with this service. It is not like if they want to give me a free copy of Windows, it does not cost Microsoft anything except the bandwidth for me to download (which is a fixed cost.) I get that, and I am sure that there will be a cost effective MSDN-Azure “developer only” subscription option in the future. Or at least there should be. :)

Technorati Tags:

Bookmark and Share
posted on Tuesday, March 09, 2010 5:23:54 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2] Trackback
# Monday, March 08, 2010

Telerik is releasing an update to its entire product line this week. As usual, there will be webinars to walk you though all of the cool new stuff. All webinars will be held at 11 AM EST (full time zone conversion) and all will be recorded for Telerik TV on-demand viewing. To join the webinars, register now:

Technorati Tags:

Bookmark and Share
posted on Monday, March 08, 2010 7:46:59 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, March 05, 2010

While delivering the Agile Seminars in Pune, India and Taipei, Taiwan over the last week, the question of the development team came up. What started out as a discussion of Team Velocity, ended with a discussion of “Heroes” or “Rock Stars” on the team.

Too many managers think that you need a team of super human coders to get the job done. I think that while a team should have the most talented, motivated, and hard working members it can find, teams should avoid adding the “rock star developer” at all costs.

At the seminar I told the story of a real life story of a team I managed a number of years back. It was a team of good developers and one rock star. Let’s call our rock star developer John. John coded faster than all our team members, some tasks he could do two or three times faster. His code was usually pretty spot on, decently commented, and well thought out. Shouldn’t the entire team be made up of John clones?

Well while the number of lines of code per day developed by John was high, other things did not add up. At code reviews John would argue with other developers about the direction they took. When those developers were not around, John would check out their code and make small changes.

What really got me to my breaking point was John’s inability to see the big picture. Once someone from the business side came over and asked John to make a small change to the online shop by the end of the day. It was a Friday of a three day weekend and the marketing guy thought that he can push this change out and help our sales over the weekend. This change was not in the product backlog (well this was almost 10 years ago, it was more of a project plan back then) but John said he can sneak it in today. John was assigned other tasks that day, but figured that if he skipped lunch and stayed a little late, he could do both and be the hero.

It did not turn out that way. John bypassed our build and qa and production upload process and somehow managed to push his change to production without telling anyone. He figured that the business people would be happy with IT and life would be good. The problem was that this took him longer than expected (it always does, even for rock stars) and he had to skip is regular tasks.

The rest of the team was at a local bar we hung out at watching the Mets-Yankees game on TV. (I remember it was a rare occasion where the Mets beat the Yankees.) John was noticeably not there and we just thought he went home. Then my cell phone beeps, it was the founder of the company asking me why the online shop is down. I said I had no idea and would look into it immediately. I asked a dependable programmer  to come with me and we went to the office to see what was up. Back at the office, the other programmer and I discovered John banging his head against his desk. After some heated words, the other guy and I reverted the site back to the original state. John pleaded and pleaded that he needed just 15 more minutes and that he was a “better coder than me.” While that may have been true, I said that my code always goes through QA. Against his wishes, I sent him home. John would have done better if he called in sick that day, by overpromising, he not only caused a problem with the site that caused two of us to fix, but he did not do his assigned tasks, making him behind in his work.

The next day I get an angry phone call from the VP of Marketing asking why the change was not pushed to production as he was “told by IT” it would be. The VP said that an email campaign was to be sent out telling customers about the change and it would be expensive to cancel it. I told the VP that I don’t care and to cancel it.

Needless to say the next week there were some fireworks at the office. I told John that he was like a cow who produced two buckets of milk while all the other cows produced only one bucket. But he also knocked over other cow’s buckets when he walked by. John thought he was right and I was wrong. That did not go well for anyone.

After the annual raise and bonus season went by and John was not “taken care of” in his mind (he was given the same modest raise and bonus the rest of the team received), he quit and took a job getting paid far more. He asked me what I would say when he used me as a reference. I told him:

“John is an A+ developer. Smart and fast. He is an F- team player. Overall that makes him a C+ developer.”

John never used me as a reference.

Rock stars have no place on a high performing team. Don’t confuse a rock star or “hero” with a very talented developer. A rock star is someone who, while talented, thinks that they are the ultimate guru and that everything should be done their way. Avoid them like the plague!

PS, about 5 years ago John asked me to lunch. It was the first time we spoke in many years. We made our peace and he admitted that he was wrong that day and looked forward to working together one day. I told him that if anyone asks for a recommendation today, I will let them know about our past difficulties and that he has evolved from a “Rock Star” to a great developer with perspective.

Technorati Tags:

Bookmark and Share
posted on Friday, March 05, 2010 11:12:01 PM (Eastern Standard Time, UTC-05:00)  #    Comments [5] Trackback
# Thursday, March 04, 2010
Thursday, March 18, 2010
Self-Service Business Intelligence with Microsoft PowerPivot

Subject:
You must register athttps://www.clicktoattend.com/invitation.aspx?code=146483 in order to be admitted to the building and attend.
Ever wonder why there’s no "light" version of SQL Server Analysis Services (SSAS)? Find yourself wishing that SSAS offered an in-memory operation model akin to some of its competitors? And why are OLAP cubes nearly impossible for end-users to build while comparable capabilities have existed for relational databases for at least 15 years? Enter Microsoft’s product code-named “Gemini,” a component of the upcoming SQL Server 2008 R2 release, that joins together SSAS, Excel and SharePoint to make end-user analytics feasible, fun, publishable and discoverable by IT. Andrew Brust will show you how it all works in this not-to-miss session.

Speaker:
Andrew Brust, Chief, New Technology, twentysix New York
Andrew Brust is Chief, New Technology at twentysix New York, a Microsoft Gold Certified Partner in New York City. Andrew was co-chair at Tech*Ed Developer conference 2008 and was recently named Microsoft Regional Director of the Year for 2008. He is co-author of Programming Microsoft SQL Server 2008 (Microsoft Press), serves as Microsoft Regional Director for New York and New Jersey, is a Visual Basic MVP and a member of Microsoft's Business Intelligence Partner Advisory Council. Often quoted in the technology industry press, and himself a columnist for Redmond Developer News, Andrew has 20 years' experience programming and consulting in the Financial, Public, Small Business and Not-For-Profit sectors. He can be reached at andrew.brust@26ny.com.

Date:
Thursday, March 18, 2010

Time:
Reception 6:00 PM , Program 6:15 PM

Location: 
Microsoft , 1290 Avenue of the Americas (the AXA building - bet. 51st/52nd Sts.) , 6th floor

Directions:
B/D/F/V to 47th-50th Sts./Rockefeller Ctr
1 to 50th St./Bway
N/R/W to 49th St./7th Ave.

posted on Thursday, March 04, 2010 8:14:29 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, March 03, 2010

In an op-ed piece in this month’s SD Times, I make the argument that software development productivity tools have evolved over the years to become more mainstream. I make the case that while some developers shun tools, in reality they take for granted the tools they are using today that were not available 10 years or so ago, or were not that mature. For example today we use some tools without even thinking such as: SCM, build management, standards enforcement, ORM and UI components. Tools today save a team a tremendous amount of time and are the missing link in the software development process.

You can get the March issue of SD Times on the newsstands today or read my article online here.

Technorati Tags:

Bookmark and Share
posted on Wednesday, March 03, 2010 3:09:36 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, March 02, 2010

If you have been following me on Facebook, you know that last week I traveled to Vancouver, Canada, to watch the Winter Olympics. I love to take photos and videos and of course took a million photos and videos. The problem is that I apparently broke the law well over 100 times while I was up in Canada. These laws and their enforcement need to be updated.

Let’s start with a photo of Scott Stanfield and I being the ugly Americans wearing our Team USA jersey at a hockey game (USA crushed Norway 6-1!).  A friend’s wife took it for us using my personal camera. While I did not ask Scott if I can post it, having known me for 10 years, he knows that if you pose for a photo with me, it will be online-so permission is implied. Nothing wrong with this photo, right?

image

According to the International Olympic Committee (IOC), this is a borderline case. While it is ok to take the photo of ourselves at the venue, live action is going on in the background. Good news for us is that you can’t see it in the photo. I am safe, the IOC won’t send lawyers to shut this blog down.

Now take a look at this photo:

image

Similar in nature to the one above of Scott and me, this photo is in the stands of a spectator. Sure this crazy cow-bell ringing Swiss dude did not give me his permission, but that is between him and me, not the IOC. (Trust me, he wants to be photographed!)

I posted this photo on a sports blog along with a small video of the same (to show the world how exciting and crazy Curling, yes curling is, and how rowdy the Swiss fans are with their cow bells!)

Not so fast according to the IOC. They sent me a nasty-gram legalese email and made me pull the photos and video down. You can see the ice in the lower right hand corner as well as the “articles of play” or the stones used by the curlers as well as one of the Olympic judges and logos. I am violating the IOC’s copyright right now, just posting it here again. (And YOU can go to jail just for looking at it!)

WTF?????

The old school copyright laws are out of date. There is a difference between me downloading movies and me taking a photo at a live sporting event. (Or any live event for that matter.) My views on the RIAA and MP3s are well known (they are pure evil), however, let’s take a minute to think about the copyright at the Olympics.

I understand that NBC and other broadcasters paid the IOC a lot of money for the exclusive rights to show the Olympics on TV. I also understand that without that money, the Olympics would be difficult to stage. If I recorded an entire event, or even a very important small part of an event (like the winning shot for the hockey Gold metal), I understand that that takes away from NBC’s exclusive coverage.

That said, that is not what I am doing. I was taking photos and videos of the atmosphere, the venue, the fans and surroundings. While at times I did get some live action in my frame, mostly it was stuff that the TV cameras did not care about. For example, most readers of this blog are technology savvy people who think that curling is a waste of time. I went to Canada believing the same thing. After attending curling, I was in awe of curling and its strategy, skill and the excitement of the plays coming down to the wire. I enjoyed it so much, I went to a second match!

image

I was also blown away by the crowd. At the US-Swiss men’s game, the Swiss spectators were out of control. (Switzerland had a huge come from behind win on the last extra end shot.) It was like the 7th game of the World Series (or final match at the World Cup for you non-Americans) chanting over and over at the top of their lungs: Go Swiss!  Pounding the floor with their feet over and over. Boom boom boom! And the cow-bells. Oh the cow-bells! Singing the Swiss National Anthem after the match. Totally awesome! I captured the essence of this sheer excitement in the photo above. The IOC wants me to remove it.

Here is an example where a law is meant to protect a party (the IOC) and my violation of that law in actually helping the “protected” party. My photos are free advertising for the IOC. In addition with my enthusiasm, I am helping spread the word about curling, how much fun the Olympics were in person, and bring more attention to the Olympics in general. Someone who was not interested in curling and the Olympics may decide to go to the Olympics in 2012 or watch it on TV because of my blog post and photo. Or someone may google Olympic Curling and be brought to an Olympic site and possibly buy something or watch a video, a video that was sponsored and brought in revenue to the IOC. More to the point, the collection of photos by the thousands of spectators on flickr, Facebook, and blogs, etc, not just mine, will bring in even more to the IOC. The more people the violate the copyright, the more value for the IOC is created.

By violating the law, I am helping the IOC make money. If I follow the law, I am doing economic harm to the IOC in potential lost profits and free advertising. The system is clearly broken. The more photos on flickr, Facebook, and blogs, etc, the better off the IOC is. Copyright laws and their enforcement need to change, catch up with digital media and social networking.

image

Technorati Tags:

Bookmark and Share
posted on Tuesday, March 02, 2010 4:38:01 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2] Trackback