February 2, 2010 Oslo

Rocky’s video series on SQL Server Modeling and CSLA

Rockford Lhotka has created a series of three videos showing how he has applied the SQL Server Modeling, specifically "M", to drive his well-known CSLA, a framework for building the business logic layer in your applications. He shows a custom domain-specific language (DSL) that lets you create a CSLA entity, along with the data serialization, business logic and a forms-based UI, resulting in a 95% coding savings (his words, not mine : ). Enjoy!
February 2, 2010 Spout

We need cloud apps to use cloud drives

Reading about Windows Azure Drive reminded me of a conversation I had when I was hanging out with my Microsoft brethren last week. We started by talking about how apps target a particular OS and how Microsoft’s bread-and-butter is making sure that apps continue to work forever on Windows so that our customers can upgrade their OS and still get their work done.

We then moved on to wondering whether Apple was gonna do the same thing when it came to letting iPhone/iPod Touch apps run on the new iPad. As it turns out, we heard from the iPad announcement that Apple is doing just that (although in a particularly strange single-tasking way).

From there we moved on to how it’s really not a big deal whether you ditch your current smart phone, e.g. Dash, iPhone, BlackBerry, Droid, etc., for another one because nobody really keeps data on their phones anymore anyway. It’s either synch’d to their PC, e.g. photos, music, etc., or it’s kept in the cloud. In fact, without realizing it, I already have a great deal of info in the cloud:

  • Exchange: email, contacts, appointments
  • TweetDeck: twitter search terms
  • Evernote: random notes
  • Amazon: Kindle books
  • TripIt: trip itineraries
  • Mint: account and budget information
  • Facebook: social contacts
  • LinkedIn: business contacts

Further, I could keep my pictures in Flickr, my documents on Live and I’m sure there are many, many more. This is fabulous, because I can move from platform to platform on my phone and it’s in a vendor’s interest to make sure that each major platform has their app on it and because it’s a smaller, more focused platform, it’s easier for them to do.

The problem here, of course, is that we’ve moved from mobile vendor lock-in to cloud data storage lock-in. What happens when Amazon decides to repossess another book or Mint decides to start charging or Flickr goes out of business? Unlike the physical storage business (you know, little garages where people keep stuff when their relatives die or they’re going through a divorce), the logical storage business doesn’t have any legal responsibility to keep the doors open for 30 days when they go out of business to let me move my stuff somewhere else.

And this has already happened. When GeoCities went out of business, all of those people’s web sites were gone. When live.com decided to clean out my set of RSS feeds, there wasn’t any notification or recourse. I’m sure there are more similar stories and there will be lots more in the future.

And because I know there will be more, I’m worried.

Right now, as we move our apps and storage in the cloud, we have a very different dynamic then apps and storage on the desktop. Because apps on the desktop use storage I own, I can back up that data, import it into other programs and, if I feel like it, write programs against it. It’s my data. The vendor doesn’t ever even see it, let alone gate my access to it.

On the other hand, cloud app vendors ARE gating access to my data; I have to use their apps to get to it. Unless there’s some pressure, you can be damned sure the Flickrs and Mints and Amazons aren’t going to be giving up the data they’ve got a wall around now so that I can take it to a competitor.

Which is why we need control over the storage for cloud apps just as much as we do for desktop apps. I want to go to a vendor I trust, e.g. Amazon, Microsoft, GE, i.e. someone big, someone you know is gonna be around for a while, and purchase cloud storage from them. I want to be able to use it as a HD for my desktop data (like Azure Drive and other products before it), including general-purpose backup, but I also want my cloud apps to store their data there, too. That way, if they start charging or they go out of business or I want to go somewhere else with my data, I can do so.

I expect to pay for this service, of course. That way, the cloud storage folks make money, the cloud apps folks make money for using my cloud storage and I get peace of mind knowing that I’ll always have access to my data, no matter what happens to the cloud app or the cloud app vendor, just like today.

We need cloud apps to use cloud drives. Call your congressman!

January 31, 2010 Oslo

What’s New in EF4.0

Soma has posted a lovely description of what’s new in the Entity Framework for .NET 4.0, including:

  • Foreign Key support so you can add a row without requiring you to download an object just to get the foreign key.
  • Lazy Loading support so as you traverse a property that is a collection, the data is pulled on demand.
  • Plain Old CLR Object support (POCO) so that you can build your own classes and have EF serialize those instead of generating new classes.
  • T4-based Code Generation in case you do want classes generated but want to control the code.
  • Data binding support for WPF and WinForms.
  • WCF support with serialization attribute generation.
  • Much better SQL generation so that you can read it better when you need what’s going on over the wire and so that it’s more efficient.
  • Much better support for complex return values from stored procedures.

That Soma really knows his stuff! Check it out.

January 24, 2010 Oslo

LINQPad updated to support .NET 4.0b2!

I'm such a fan of LINQPad you don't even know. Recently Joe updated it to support Data Services and as of today, if you scroll down to the bottom of the LINQPad download page, it's been updated to support .NET 4.0 beta 2, which means that you can point it at Data Services constructed with .NET 4.0. This makes my heart sing. Also, if you haven't spent the $29 to get the auto-completion, it's totally worth it. Highly recommended. Thanks, Joe!
January 20, 2010 Oslo

Comparing NHibernate and EF4

This is a nice piece comparing NHibernate and EF4. Personally, I'm an EF4 fan, but I'm hardly unbiased and there are definitely features I want to see added to EF v.Next. Either way, it's clear that EF4 is garnering much more appreciation from the community than previous versions and that's because you let us know what you wanted and we added it. Keep those cards and letters coming!
January 1, 2010 Books

Programming Data: .NET, SQL Server and You

Welcome to the home page for my new book.

Table of Contents

  • Part 1: Data Access

    • Chapter 1: Hello, Data
    • Chapter 2: Entity Framework: Entities
    • Chapter 3: The Entity Data Model: Entities
    • Chapter 4: The Entity Data Model: Associations, Functions and Views
    • Chapter 5: The Open Data Protocol
    • Chapter 6: Deployment
  • Part 2: Business Intelligence

    • Chapter 7: Hello, Business Intelligence
    • Chapter 8: Integration Services
    • Chapter 9: Reporting Services
    • Chapter 10: Analysis Services
  • Appendices

    • Appendix A: Security
    • Appendix B: Synchronization
    • Appendix C: Streaming (with Stream Insight)
December 20, 2009 Spout

Stead Defines ‘Customer’

And here’s one more from the paper file I’m putting into electronic format to reduce the pile of papers in my life:

During the all-associate broadcast, Jerre Stead shared with the team a memo another associate had sent about defining a customer. Here are the highlights:

  • Customers are individual companies with unique needs.
  • Customers are struggling with their competitors for success.
  • Customers are people with feelings and opinions, therefore relationships and experiences matter.
  • Customers will judge us by our performance, not by our words.
  • Customers are influenced by every contact with us, each and every day.

Customer “Must Not’s”

  • We must not import our products or ideas on customers.
  • We must not ask customers to deal with people who cannot make decisions.
  • We must not make customers wrestle with our bureaucracy.
  • We must not allow any question, issue or awkwardness go unattended or unresolved.
  • We must never unpleasantly surprise our customer.
  • We must never, never take a customer for granted.

Customer “Can’s”

  • We can help the customer succeed - make our customers winners.
  • We can provide greater value to our customers than our competitors can.
  • We can measure ourselves from the viewpoint of our customers.
  • We can put decision-making close to our customers.
  • We can continuously improve to better serve our customers.
December 20, 2009

The Most Effective Words To Use With Customers

Fred Gleeck had this to say about what not to say to customers and what to say instead:

There’s a right way and a wrong way to talk to callers. Even about the simplest matters. And make no mistake: Talking the wrong way can turn a loyal customer into an annoyed ex-customer. I have a name for talking the right way: PosiTalk (tm).

PosiTalk is an attitude. It shows you’re concerned. Professional. Helpful. And, while it sometimes requires a few extra words, it can make a big difference. below you’ll find some common negative phrases, and the PosiTalk alternatives. Post them. Use them. And speak the language that keeps customers calling. After all… they pay the bills!

Negative: She/He is out to lunch…
PosiTalk: She/He isn’t available at the moment. May I take a message.

Negative: I can’t do that…
PosiTalk: Here’s what we can do.

Negative: Hold on a minute…
PosiTalk: Could you hold a moment, please?

Negative: That’s company policy…
PosiTalk: The way we’d normally handle that is…

Negative: I don’t know…
PosiTalk: I don’t have the answer to that. If you’ll hold a moment, I’d be happy to find out.

Negative: Huh? (or: What?)
PosiTalk: Pardon me?

Negative: He/She is no longer with us…
PosiTalk: He/She has accepted another position, but his/her calls are now being taken by…

Negative: She/He is busy bow…
PosiTalk: She/He’s not available at the moment. How can I help you?


← Newer Entries Older Entries →