Syndication

News

     

Archives

Miscelaneous

Programming

April 2008 - Posts

 

I already mentioned why I think Live Mesh is cool and that I think the most important part of it, FeedSync, is being largely ignored by reviewers. Fortunately, there's an extensive interview with the team that goes quite deep in FeedSync and how it works. Go watch it, it's good info.

At the most basic level, FeedSync is a mechanism to associate versioning "headers" to arbitrary objects (items), and an algorithm to merge and detect conflicts based on that header information. Replace "header" with "extension element" and "arbitrary object" with "RSS/Atom Item" and you have the XML feed version of it:...

Read full article

Posted by Daniel Cazzulino

You have probably read or listened all the (maybe a bit vague) information about the Mesh Operating Environment (MOE): a platform that will allow multiple applications and devices to participate in the Live Mesh.

Let's get to the more technical details now, and leave the end-user marketing to someone else ;).

At the core of Live Mesh is FeedSync, a public spec by Microsoft, evolved from the "old" days of SSE. It didn't get its deserved attention IMO back in the day, even though you could put together the pieces from Ray's announcement and later adoption by other products and figure out Live Mesh was coming sooner or later. Ed Jezierski got me interested in it WAY back, and as a result, I created the ...

Read full article

Posted by Daniel Cazzulino

 

Today, the MoQ API lets you setup expectations and later verify them, like so:

[Fact]
public void FillingRemovesInventoryIfInStock()
{
//arrange/setup
var order = new Order(TALISKER, 50);
var mock = new Mock<IWarehouse>();

//setup - expectations
mock.Expect(x => x.HasInventory(TALISKER, 50)).Returns(true);

//act
order.Fill(mock.Object);

//assert
Assert.True(order.IsFilled);
//verify interaction
mock.VerifyAll();
}

A very good feedback I got during the past ...

Read full article

Posted by Daniel Cazzulino
Filed under: , ,

After talking to a few guys during the MVP summit and the proceedings of the ALT.NET conference, I decided to give xUnit a serious try.

I'm quite pleased with it. Using .NET idioms rather than excessive attributes (i.e. [SetUp] vs class constructor, [TearDown] vs IDisposable, etc.) is a good thing.

"Upgrading" was quite easy: for the most part, it was a search &amp; replace of:

  • [Test] => [Fact]
  • [SetUp] => ""
  • [TearDown] => ""
  • Assert.That => Assert.True
  • Assert.Fail => Assert.True(false, ...

Read full article

Posted by Daniel Cazzulino
Filed under: ,

Say you are working with a code file. At some point, you "Go To Definition" of another type, and now you have its code file opened. Or maybe you just run the solution to debug a weird issue that's happening, turn on "break when exception is thrown" option, and just when the exception is thrown, Visual Studio gets activated, and you get the relevant code file opened at the appropriate location.

Now, say you have a typical solution, which contains solution folders and many projects. Can you quickly locate the project/folder where the file is?...

Read full article

Posted by Daniel Cazzulino
Filed under: ,

A while back I reported both through my weblog and Microsoft Connect what I thought was a serious flaw in the WPF validation infrastructure for ValidationRule and Binding. The issue, in short was:

The validation check is invoked during any attempt to update the underlying data ... before a value converter is called (if present)...

Take special note that this was not some undocumented, strange behavior, but rather something that was explicitly explained on MSDN where the validation process was explained...

Read full article

Posted by Daniel Cazzulino
Filed under: , ,

snitter AIR app taking 115mb of memory

That's a TINY app built with Adobe AIR taking roughly 112Mb of memory?!

If only MS made Silverlight available for standalone apps too... I'm willing to bet they'll do much better than this even for their initial release with .NET built-in (Silverlight 2.0).

Read full article

Posted by Daniel Cazzulino
Filed under:

The latest MVC release adds some pretty cool usage of LINQ expression trees. It's another example of how cool (and WAY beyond querying) LINQ is.

Specifically, you can now replace untyped, "magic" strings when rendering links like:

&lt;%= Html.ActionLink("Sign up", "SignUp", "UserController", true) %&gt;

to type-safe and therefore compile-time checked code:

&lt;%= Html.ActionLink((UserController c) =&gt; c.SignUp(true), "Sign up") %&gt;

or the equivalent syntax:

&lt;%= Html.ActionLink&lt;UserController...

Read full article

Posted by Daniel Cazzulino
Filed under: , ,
More Posts