Astoria team shares future direction

Following the release of Visual Studio 2008, a handful of significant enhancements began to take shape, targeted for the SP1 timeframe.  I'm sure most of you heard about the MVC Framework for ASP.Net, and you may have heard about the Dynamic Data Website, too.  But I'm still surprised how many people haven't heard of Astoria (now called ADO.Net Data Services).

Built on top of the Entity Data Model, Astoria is intended to expose your entities as REST or JSON objects with very little extra work from you.  Best of all, the Astoria controller understands the verbs needed to interact with this model in a standard way.  Much like the Dynamic Data Website, once you set up the data model, you can have your web service front-end working remarkably quickly.

Continue reading "Astoria team shares future direction"

Zemanta is a blogger’s best friend

Image representing Zemanta as depicted in Crun...
Image by Zemanta via CrunchBase

Shortly before I switched this blog to WordPress, I learned about a new tool called Zemanta.  It was supposed to provide context-sensitive links and images, chosen dynamically to be relevant to the work in progress.  It sounded pretty cool, and I tried to set it up under Drupal, but couldn't quite get it done.  After switching to WordPress, I was happy to see that Zemanta setup was a breeze.

I've been using Zemanta for a few weeks now, and I'm really, really happy with it.  My initial impressions were a bit iffy - images were inserted in a way that made it difficult to move the image without leaving the citation caption behind, for instance.  Zemanta keeps improving the plugin and the service, though, and my early problems have lessened considerably.

Continue reading "Zemanta is a blogger’s best friend"

Microsoft Pex: Unit Testing++

Almost a year and a half ago, I read something somewhere about a Microsoft Research project called Pex.  They were working on ways to supercharge unit testing within Visual Studio, but very little information was available at the time.  They had a site with an RSS feed, though, so I added them to my reader, and went away.

Since then, they've dropped exactly 22 updates on their web site, and most of them were pretty dry reading.  They announced a 0.6 release back in August, though it was pretty meager.  In the last month or so, though, things are really picking up speed, racing towards a public debut at PDC next week.  Today, they announced their 0.8 release, and it's finally starting to demonstrate some of the coolness they promised early on.

Continue reading "Microsoft Pex: Unit Testing++"

Overload ToString() to make debugging easier

Debugging
Image by TaranRampersad via Flickr

When you're debugging code in Visual Studio, you're going to end up setting breakpoints, watching variables, and maybe dumping information to a log file or the immediate window.  Wouldn't it be nice if you could read some of it?

Too often, we wait until we're writing a log entry or trying to peer into the contents of a watched variable to worry about formatting objects.  If you find yourself looking at a particular object or structure more than a couple times, though, consider overloading the ToString() method on that object.  After all, nothing should be better suited to present a default format for an object than the object itself.  Instantly, you'll find that logging and debugging become easier, because when you hover over an instance of that object, you're going to see a meaningful representation of the object.

Continue reading "Overload ToString() to make debugging easier"

WordPress SEO optimization ROCKS!

Image representing WordPress as depicted in Cr...
Image via CrunchBase

One of the things I noticed shortly after switching this blog to WordPress was the terrific support for SEO optimization.  WordPress does a very good job of this itself, with good support for keywords, Meta tags, and so on, but there are also some really fantastic plugins for WordPress that kick it up a notch - I'm using one called All in One SEO Pack that I like a lot.

City of Columbus
Image via Wikipedia

I suspected that this was helping to boost my search rankings, but I just saw a pretty clear indication of the extent.  The post directly under this is all about the 2.Ohio event that was held last night here in Columbus.  As the event was drawing near, the organizers asked the community to tag any related posts with "2dotohio08", and I was happy to oblige.  Today, I noticed that tag among the "searched-for" terms that led someone here, so I googled "2dotohio08" and was really happy to see that post down there sitting right up near the top of the results.

I wish I could take personal credit for that search ranking, but an awful lot of it is due to great standards support from WordPress and the All in One SEO Pack.  If you run the search, you'll also see its entry on MyBlogLog, which seems to help a bit, too.  If you've got a web presence, you really need to pay attention to this stuff, because it's not difficult, and it matters!

Reblog this post [with Zemanta]

2.Ohio was Great!

Thanks to Ben Blanquera and Angela Siefer for putting on a terrific event tonight.  Reid Hoffman and Judy Estrin had some really insightful thoughts on innovation and networking, and Michael Nelson walked us through the effect of government policies on IT.  Craig Newmark also dropped by to add to the celebrity guest list.

As a technology leader, I appreciate the value of Web 2.0 tools and social networking.  All things being equal, we should all be able to log onto LinkedIn and Twitter and conduct our Web 2.0 business without regard for our location.  Columbus, Ohio should be just as hoppin' as Silicon Valley, but it's not.

Continue reading "2.Ohio was Great!"

It’s about time…

Mono
Image via Wikipedia

Mono is going to be represented at Microsoft's PDC this yearMiguel de Icaza, who leads the open-source Mono effort, is going to present a session about Mono and .Net.  If you search this blog for "mono", you'll see that I've been paying attention to these guys for quite a while now, and wondering the whole time why Microsoft isn't paying closer attention.

I'm really encouraged to see that Miguel and the Mono team are getting some exposure.  I still believe there's a lot for both Mono and Microsoft to gain by strengthening this partnership.  Microsoft needs to embrace Linux more than ever before, and frankly, Linux could really stand a little bit of leadership to help that platform coalesce.

Good luck, Miguel!

Reblog this post [with Zemanta]

What is the next VB 1.0?

The four colored boxes is the logo of VBA, and...
Image via Wikipedia

Visual Basic has to be one of the most polarizing technologies of the last twenty years.  No technology is at once as revered as the tool that brought Windows development to the masses, while also being maligned and looked down-upon by "real" developers.  Personally, I don't think there's a bit of doubt about the former, and I think the latter is a sad commentary on the people who trash-talk VB.

Even though I've largely converted to C# development myself, I've got a pretty huge soft spot for VB, because (yes, it's true) it's how I got my start in Windows development.  I wasn't alone; huge numbers of developers flocked to Microsoft development technologies because of VB.  Try as they might, Microsoft hasn't been able to catch lightning in a jar a second time.  They need to -- pretty badly -- if they're to regain dominance in a web world.

Continue reading "What is the next VB 1.0?"

ExpectedException – Doh!

Every time I learn an easier way to do something, I'm glad I learned it, but I feel like an idiot for not finding it sooner.  Here's a perfect example.  Here's the hard way to check for an expected exception in a VSTS unit test:


/// <summary>
/// Test for an expected exception - the hard way
/// </summary>
[TestMethod]
public void TestForExceptionWorse()
{
bool caughtErr = false;
try
{
MyClass.MethodThatThrowsException();
}
catch (SpecificExceptionToCatch)
{
caughtErr = true;
}
Assert.IsTrue(caughtErr, "Expected SpecificExceptionToCatch, but none was thrown.");
}

It turns out there's an easier way to do this:


/// <summary>
/// Test for an expected exception - the easy way
/// </summary>
[TestMethod, ExpectedException(typeof(SpecificExceptionToCatch),
"Expected SpecificExceptionToCatch, but none was thrown.")]
public void TestForExceptionBetter()
{
MyClass.MethodThatThrowsException();
}