Can Entrepreneurs Be Made?

A survey of 549 successful entrepreneurs found that the majority didn’t have entrepreneurial parents. They didn’t even have entrepreneurial aspirations while going to school. They simply got tired of working for others, had a great idea they wanted to commercialize, or woke up one day with an urgent desire to build wealth before they retired. So they took the big leap.

The findings said that 52% of the successful entrepreneurs were the first in their immediate families to start a business — just like Bill Gates, Jeff Bezos, Larry Page, Sergei Brin, and Russell Simons (Def Jam founder). Their parents were academics, lawyers, factory workers, priests, bureaucrats, etc. About 39% had an entrepreneurial father, and 7% had an entrepreneurial mother. (Some had both.)

Only a quarter caught the entrepreneurial bug when in college. Half didn’t even think about entrepreneurship, and they had little interest in it when in school. There was no significant difference between the success factors or hurdles faced by entrepreneurs who were extremely interested in entrepreneurship in school (and who likely set up the lemonade stands) and the ones who lacked interest. But entrepreneurs with extreme interest started more companies and did it sooner. Of the 24.5% who indicated that they were “extremely interested” in becoming entrepreneurs during college, 47.1% went on to start more than two companies (as compared with 32.9% of the overall sample). Sixty-nine percent started their companies within 10 years of working for someone else (as compared to 46.8% of the rest of the sample population).

Fore more goto Can Entrepreneurs Be Made?

60+ .NET libraries every developer should know about.


Dependency Injection/Inversion of Control




Data Mapper



PDF Creators/Generators

Unit Testing/Mocking

Automated Web Testing

URL Rewriting



Via 60+ .NET libraries every developer should know about.

Silverlight Snippets

Download a zip (7 KB) of them all and extract them into your Snippets folder, which is in your Documents folder: Documents\Visual Studio 2010\Code Snippets\Visual C#\My Code Snippets\. These also work with Visual Studio 2008.
Included snippets


A standard dependency property with a property changed handler

An attached property declaration

A dependency property without a change handler

A value type dependency property with change handler

A value type dependency property without a change handler

An INotifyPropertyChanged implementation

A simple unit test method, descriptive comment, and description attribute

An asynchronous unit test method

.NET 4.0 LINQ Operator – Zip

.NET 4.0 includes the new extension method Zip with the Enumerable, ParallelEnumerable, and Queryable classes. Zip allows to merge two sequences. Other LINQ operators that merge two sequences are Union, Intersect, Join, and GroupJoin. These operators have been available since .NET 3.5.

Zip that is available with .NET 4 and can be compared to the Join operator. Instead of the keys that are used Zip just uses the order of the elements to combine elements from two sequences. Zip creates one element from two elements taken from two input sequences. How the elements are merged depends on a result selector function, and the elements can be of different types. This makes the declaration of the Zip method simpler.

public static IEnumerable<TResult> Zip<TFirst, TSecond, TResult>(
    this IEnumerable<TFirst> first,
    IEnumerable<TSecond> second,
    Func<TFirst, TSecond, TResult> resultSelector)

With Zip it’s for example possible to sum two the elements of two integer sequences by passing the Lambda expression (first, second) => first + second to the result selector. This creates the result values 8, 15, 22, 26 in the following code snippet.

int[] one = { 3, 7, 11, 14 };
int[] two = { 5, 8, 11, 12 };

var result1 = one.Zip(two, (first, second) => first + second);

Of course it’s possible to do anything in the selector method. The next code snippet returns the lower value of the two collections – 3, 7, 11, 12. You can also combine sequences of different types and return another type. That all just depends on the selector method.


The Future of Web Content – HTML5, Flash & Mobile Apps

File:HTML5.svg image by al_oasis1

The recent introduction of the new Apple iPad has stirred the discussion over the future of web content and application runtime formats, and shone light onto the political and business battles emerging between Apple, Adobe and Google. These discussion are often highly polarized and irrational. My hope in this post is to help provide some balance and clarity onto this discussion. More here

Does MVVM deserve the hype?

Ah, MVVM! MVVM is the rock star who packs the house at every XAML event. It’s in books, blog posts, and podcasts. You can’t swing a dead laptop without hitting someone who is spouting about the virtues of model-view-viewmodel. With so much hype, there’s bound to be backlash.

Does MVVM deserve the hype?

Short answer – no.

An Alternative?

You’ve got a complex UI with lots of rules, and you reject the MVVM best practice crap the whiteboarding architect is jamming down your throat. You’re gonna be … pragmatic!

More …

Communication Between Local Silverlight Applications using LocalMessageSender and LocalMessageReceiver

This makes it extremely easy to communicate between two different Silverlight applications. Granted, you could communicate between Silverlight instances before, but you had to use Javascript as a go-between. Now, it is much, much simpler, and as an added bonus, Silverlight apps can communicate from different browser pages! An app loaded in one browser tab can (with the right permissions) communicate to one on a different tab.

We have 2 examples here.


  • The 1st example – A Silverlight app which has a table of employees. This Table View communicates back and forth with another Detail View Silverlight App. When you select an employee in the Table View, it populates the Detail View. In the Detail View, you can edit the employee and save it, or you can "add as new" which will communicates back to the Table View add a new employee to the table. This sample use a JSON Serializer (DataContractJsonSerializer) to serialize/deserialize the business object and use that as a payload for communication.
  • Local Connections (2)

  • The 2nd example is an old MFC Scribble like Silverlight Application. You can start each page in a different browser instance and draw in the sender and see your strokes duplicated in the receiver. The screen shot below was taken with the sender running in IE, and the receiver running in Firefox–two different browsers and two different processes.

The keys here are the LocalMessageReceiver and the LocalMessageSender. As you might guess, the receiver listens for messages, and the sender sends messages. If you want your Silverlight application to receive messages, you need to create a LocalMessageReceiver with some name, and tell the receiver to listen.

A collection of Behaviors and Actions for use in Expression Blend

Download from

Some of the triggers, actions, behaviors, effects:

Note: CallDataMethod, InvokeDataCommand – a wonderful way to trigger a method/command in your Silverlight MVVM ViewModel

  • PlayMedia- plays a media element
  • PauseMedia- pauses a media element
  • TogglePlayPauseMedia- toggles between play/pause on a media element
  • StopMedia- stops a media element
  • MouseGestureTrigger- triggers an action when the user makes a gesture on the element.


  • MouseEventTrigger- allows more complex mouse triggers such as double-click or firing from handled events
  • StateChangedTrigger- triggers when the state is changed
  • CallDataMethod- An action which calls a method on the data context. Good for tying an event in your View to do something in the ViewModel for MVVM styled applications.
    An example of calling the ViewModel’s ViewModel1_ComboBox_SelectionChanged method when a ComboBox item is selected:
// View.xaml
// Make sure the DataContext is set to an instance of the ViewModel1 somewhere in xaml
        <i:EventTrigger EventName="SelectionChanged">
            <si:CallDataMethod Method="ViewModel1_ComboBox_SelectionChanged" />
// ViewModel1.cs    
public void ViewModel1_ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    ComboBoxItem item = e.AddedItems[0] as ComboBoxItem;
    var text = item.Content.ToString();
  • InvokeDataCommand-  An action which invokes a command on the data context. Another behavior for MVVM integration.

    Example of invoking the CheckOut command when a button is clicked:

    <i:EventTrigger EventName="Click">
          <si:InvokeDataCommand Command="{Binding ShoppingCart.CheckOutCommand}"/>
  • DataEventTrigger- triggers when an event is raised on the data context. Useful for doing something such as playing a sound or animation when something happens on the data context
  • SetDataProperty- sets a property on the data context
  • DataStateBehavior- switches between two states depending on the value of a binding
  • FluidBindProperty- acts as a proxy for databound properties in order to animate the changing of the value
  • PropertyChangedTrigger- triggers when the value of the property changes, regardless of the new value
  • ClippingBehavior- Provides a rounded rectangular clipping that scales with the element. Useful since Silverlight and WPF clipping geometries don’t scale with objects
  • GoToNextState- Go to the next state in a VisualStateManager. Useful for quickly navigating between various states
  • GoToPreviousState- Go to the previous state in a VisualStateManager. Useful for quickly navigating between various states
  • SetProperty- Similar to ChangePropertyAction but allows incrementing as well as setting
  • ShowMessageBox- Displays a standard message box to the user
  • ListBoxAddOne- Action which duplicates a random item in the ItemsSource collection of a ListBox. Useful for SketchFlow prototypes where you want to show adding a new item
  • ListBoxRemoveOne- Action which removes a random item in the ItemsSource collection of a ListBox. Useful for SketchFlow prototypes to simulate removing an item.
  • ListBoxRemoveThisItem- Action for use inside of a ListBoxItem which will remove the item from the data collection of the owning ListBox.

Download from