<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Development on Meisinger Two</title><link>https://meisinger.github.io/categories/development/</link><description>Recent content in Development on Meisinger Two</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 16 Aug 2025 11:49:03 -0400</lastBuildDate><atom:link href="https://meisinger.github.io/categories/development/index.xml" rel="self" type="application/rss+xml"/><item><title>Rhino Mocks Core</title><link>https://meisinger.github.io/post/2025-08-16-rhino-core/</link><pubDate>Sat, 16 Aug 2025 11:49:03 -0400</pubDate><guid>https://meisinger.github.io/post/2025-08-16-rhino-core/</guid><description>&lt;p>I have been itching to get back to working on Rhino Mocks and I finally have a chance to do so.&lt;/p>
&lt;p>The next version of Rhino Mocks will be a complete rewrite moving to dotnet core.&lt;/p>
&lt;p>One thing that I have always had difficulty with is the use of the Castle DynamicProxy library. It has always been a lot of hand waving and magic that I never really understood. I also always felt that it was using a sledgehammer to push in a thumbtack.&lt;/p></description></item><item><title>The Ref</title><link>https://meisinger.github.io/post/2020-03-06-the-ref-hook/</link><pubDate>Fri, 06 Mar 2020 17:12:51 +0000</pubDate><guid>https://meisinger.github.io/post/2020-03-06-the-ref-hook/</guid><description>&lt;p>No. Not the movie. The &lt;code>hook&lt;/code>.&lt;/p></description></item><item><title>Bending Hooks to Your Will</title><link>https://meisinger.github.io/post/2020-03-04-creating-hooks/</link><pubDate>Wed, 04 Mar 2020 18:14:28 +0000</pubDate><guid>https://meisinger.github.io/post/2020-03-04-creating-hooks/</guid><description>&lt;p>So the &lt;code>Hook&lt;/code> revolution is upon us and we have learned a little bit about &lt;code>useState&lt;/code> and &lt;code>useEffect&lt;/code>.
With these two hooks alone we can get a lot of stuff done.&lt;/p></description></item><item><title>Getting the Hook</title><link>https://meisinger.github.io/post/2020-03-01-venture-into-the-unknown/</link><pubDate>Sun, 01 Mar 2020 19:04:17 +0000</pubDate><guid>https://meisinger.github.io/post/2020-03-01-venture-into-the-unknown/</guid><description>&lt;p>If you have been ignoring the Functional Component aspect of React and only working with Class Components, you might have
missed the &lt;code>Hook&lt;/code> revolution.&lt;/p>
&lt;p>One of the reasons why I focused on Class Components, and payed little attention to Fuctional Components, was the ability
to &amp;ldquo;hook&amp;rdquo; into the &lt;code>Component Lifecycle&lt;/code>. Most of the time I was living in three methods: &lt;code>constructor&lt;/code>, &lt;code>componentDidMount&lt;/code> and
&lt;code>componentWillUnmount&lt;/code> methods. Setting up my state in the &lt;code>constructor&lt;/code>, making all of my subscription calls in
&lt;code>componentDidMount&lt;/code> and cleaning everything up in &lt;code>componentWillUnmount&lt;/code>.&lt;/p></description></item><item><title>Becoming a Motivated Vagrant</title><link>https://meisinger.github.io/post/2014-07-22-becoming-a-motivated-vagrant/</link><pubDate>Tue, 22 Jul 2014 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2014-07-22-becoming-a-motivated-vagrant/</guid><description>&lt;p>I have been a long time fan of VirtualBox. Setting up and configuring a VM with a Host Only Network to run headless is something that I feel like I can do in my sleep.
The one thing that was a constant pain, however, was keeping the VM up to date (with as small of a footprint possible) and keeping everything organized.&lt;/p>
&lt;p>For those who aren’t familiar with &lt;a href="https://www.virtualbox.org/">VirtualBox&lt;/a>, it is general purpose virtualization manager that can run on fairly limited hardware.
If you are like me and can’t afford a VMWare installation and just want to standup a virtual machine quickly, VirtualBox is a fast a simple way to get started.
Just like any other operating system, however, it is up to you to keep things in order and up to date.
Taking snapshots, managing network interfaces, managing disk space, images, etc.
This is an invaluable learning experience but after a while it gets a little long in the tooth.&lt;/p></description></item><item><title>Rhino Mocks 4.0.0 Alpha Released</title><link>https://meisinger.github.io/post/2014-03-31-rhino-mocks-4-0-0-alpha-released/</link><pubDate>Mon, 31 Mar 2014 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2014-03-31-rhino-mocks-4-0-0-alpha-released/</guid><description>&lt;p>It has been a little longer than expected but the latest version of Rhino Mocks has been released and is available from &lt;a href="https://nuget.org">NuGet&lt;/a>.
You can download the package from here:&lt;/p>
&lt;p>&lt;a href="https://www.nuget.org/packages/RhinoMocks/4.0.0-alpha">RhinoMocks 4.0.0-alpha&lt;/a>&lt;/p>
&lt;p>This is an “alpha” release since there are more than likely going to be a few things that come up.
As a matter of fact, there are two things that I am already thinking about changing.&lt;/p>
&lt;p>One is to be a little more explicit with arranging expectations against properties.
Right now when you arrange an expectation against a property the intent is inferred.
Instead I think it would be better to be explicit by adding &lt;code>ExpectPropertyGet&lt;/code> and &lt;code>ExpectPropertySet&lt;/code>.&lt;/p></description></item><item><title>Fun with xUnit Assert Throws and App Domains</title><link>https://meisinger.github.io/post/2014-03-27-fun-with-xunit-assert-throws-and-app-domains/</link><pubDate>Thu, 27 Mar 2014 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2014-03-27-fun-with-xunit-assert-throws-and-app-domains/</guid><description>&lt;p>I recently decided to update the shared libraries and tools that are used to build and unit test Rhino Mocks.&lt;/p>
&lt;p>I updated &lt;a href="https://github.com/psake/psake">psake&lt;/a> from version 0.22 to version 4.3.1.0.
Now I don’t know about you but that is a significant jump in version number. After the update, no problems.
I actually find it easier to deal with and have come to the realization that I should revisit the existing tasks.&lt;/p>
&lt;p>I then went ahead and update &lt;a href="https://github.com/xunit/xunit">xUnit&lt;/a> from version 1.1.0 to version 1.9.2.
After the update I had a significant number of build errors. All of the build errors were concerning the &lt;code>Assert.Throws&lt;/code> extension method.
In the old version this method had an overload that took a “message” as a parameter.
In the latest version this overload was removed.&lt;/p></description></item><item><title>Rhino Mocks NuGet</title><link>https://meisinger.github.io/post/2014-03-17-rhino-mocks-nuget/</link><pubDate>Mon, 17 Mar 2014 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2014-03-17-rhino-mocks-nuget/</guid><description>&lt;p>From the beginning of my little adventure I had planned on making sure that Rhino Mocks had a consistent NuGet presence.
So it was quite surprising, as I near the end of my first go with revamping Rhino Mocks, that I would get an email about Rhino Mocks package in NuGet.
The previous owner of the Rhino Mocks package (Ka-Wai Lin) contacted me to relinquish his ownership and allow me to take it over.&lt;/p></description></item><item><title>Rhino Mocks Final Stretch–Field Problems</title><link>https://meisinger.github.io/post/2014-03-04-rhino-mocks-final-stretchfield-problems/</link><pubDate>Tue, 04 Mar 2014 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2014-03-04-rhino-mocks-final-stretchfield-problems/</guid><description>&lt;p>The final modifications have been made to the Rhino Mocks code base. It has been interesting working through Properties and Events.
What was more interesting, however, were the delegates. Previously these were Callback, Do and WhenCalled and allowed you to pass in a delegate,
an Action or a Func to modify the execution flow, change the return value or simply call a delegate.
Understanding when to use Callback, Do or WhenCalled was confusing to me so I decided to wrap them up a little differently.&lt;/p></description></item><item><title>Rhino Mocks Expectations for Events</title><link>https://meisinger.github.io/post/2013-10-22-rhino-mocks-expectations-for-events/</link><pubDate>Tue, 22 Oct 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-10-22-rhino-mocks-expectations-for-events/</guid><description>&lt;p>If one of the features I don’t use very often is the [Property Behavior]({% post_url 2013-09-17-rhino-mocks-property-behavior %}) then it’s safe to say that
I have never (ever) used “events” within Rhino Mocks.
I have seen the &lt;code>Raise&lt;/code> and &lt;code>GetEventRaiser&lt;/code> extension methods in the passed but never used them.&lt;/p>
&lt;p>After working through the Property Behavior feature I decided to tackle handling events.
I found setting up expectations for events to be really easy.
Why? Because there is nothing to them. No really. There is nothing to them at all.
The only thing that you can do with events is validate (or expect) subscribing or unsubscribing from an event.&lt;/p></description></item><item><title>Rhino Mocks Property Behavior</title><link>https://meisinger.github.io/post/2013-09-17-rhino-mocks-property-behavior/</link><pubDate>Tue, 17 Sep 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-09-17-rhino-mocks-property-behavior/</guid><description>&lt;p>One feature that I seldom use in Rhino Mocks is the “Property Behavior.”
I remember getting an exception every now and then when I would use a property but never really thought much of it
(like a mindless drone I would change the code and run the unit tests again).&lt;/p>
&lt;p>In fact, I used properties so infrequently in my unit tests, it wasn’t until I started diving deep into the code that I came to realize there are
three “property” based options:&lt;/p></description></item><item><title>Recursive Mocks</title><link>https://meisinger.github.io/post/2013-08-20-recursive-mocks/</link><pubDate>Tue, 20 Aug 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-08-20-recursive-mocks/</guid><description>&lt;p>I have been going through all of the unit tests for Rhino Mocks attempting to get the first “alpha” release ready.
One of the sets of unit tests that were failing (miserably) were the “Recursive Mocks.” I struggled with this for a while.
I could implement the feature as intended or simply ignore it and change the unit tests.&lt;/p>
&lt;p>Not all of us may know what a Recursive Mock looks like and what the feature enables. Let’s take a quick look at an example.
First we will look at how the scenario is commonly implemented followed by the Recursive Mock feature.&lt;/p></description></item><item><title>Am I Just Getting Lazy?</title><link>https://meisinger.github.io/post/2013-08-13-am-i-just-getting-lazy/</link><pubDate>Tue, 13 Aug 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-08-13-am-i-just-getting-lazy/</guid><description>&lt;p>So I have been working on simplifying the Rhino Mock code base for a little while now and have been making good progress.
While I have no empirical data yet, I fully expect this simplified code base to be faster and easier to understand.&lt;/p>
&lt;p>It has been really interesting watching some of the core concepts shift from being “in your face” to a more subtle “nudge” as the code is simplified.
For instance; generating a &lt;strong>Strict&lt;/strong> mock versus a &lt;strong>Dynamic&lt;/strong>, &lt;strong>Stub&lt;/strong> or &lt;strong>Partial&lt;/strong> mock.
There are some very important concepts behind choosing the right “type” but what are they and how are they presented?&lt;/p></description></item><item><title>Simplifying the Rhino Mocks Code Base</title><link>https://meisinger.github.io/post/2013-07-25-simplifying-the-rhino-mocks-code-base/</link><pubDate>Thu, 25 Jul 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-07-25-simplifying-the-rhino-mocks-code-base/</guid><description>&lt;p>It has been an interesting last couple of days.&lt;/p>
&lt;p>I finished converting all of the existing unit tests from using Record/Replay syntax to the Arrange/Act/Assert (AAA) syntax.
Oddly enough this lead to a few extra unit tests that were not previously being executed.
These newly discovered unit tests could have been removed due to relevance or performance but for whatever reason, they have been added back.
I did find that there were a few (eleven in fact) that were no longer relevant and needed to be “skipped.”
They are all passing now so… mission accomplished.&lt;/p></description></item><item><title>If you give a Rhino a cookie…</title><link>https://meisinger.github.io/post/2013-07-03-if-you-give-a-rhino-a-cookie/</link><pubDate>Wed, 03 Jul 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-07-03-if-you-give-a-rhino-a-cookie/</guid><description>&lt;p>There is a book that I use to read to my daughter titled “If You Give a Mouse a Cookie.”
It’s a funny book which takes the reader through a circular pattern of what happens if you give a mouse a cookie.
My daughter would often wait till the end of the story to ask what happened next.
In my mind this was a clever attempt to have me read the book again (and again).
There were sometimes, however, I would re-read the story; especially after a loving “pleeaaassseeee”&lt;/p></description></item><item><title>Rhino Mocks Unit Tests (let the healing begin)</title><link>https://meisinger.github.io/post/2013-06-27-rhino-mocks-unit-tests-let-the-healing-begin/</link><pubDate>Thu, 27 Jun 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-06-27-rhino-mocks-unit-tests-let-the-healing-begin/</guid><description>&lt;p>Over the past few days I have been focusing on “removing” the Record/Replay functionality from Rhino Mocks.
I am a little surprised of how easy it was. The first step was to change all of the public methods in the &lt;strong>MockRepository&lt;/strong> class to internal.
The second step (and last step) was to add some methods to generate repositories.
Granted, this doesn’t actually remove the Record/Replay functionality but it does “hide” it. &lt;em>Clearly taking baby steps.&lt;/em>&lt;/p></description></item><item><title>Unwinding Rhino Mocks</title><link>https://meisinger.github.io/post/2013-06-07-unwinding-rhino-mocks/</link><pubDate>Fri, 07 Jun 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-06-07-unwinding-rhino-mocks/</guid><description>&lt;p>Finally, progress!. Sure, the “progress” is 124 build errors but… it’s progress; right?&lt;/p>
&lt;p>One of the things that I have been doing is cleaning up the code base by removing projects, assemblies and code that are no longer relevant.
I am actually surprised of how much code was never built. It has also been interesting finding artifacts from previous build strategies and repositories.
Things like NAnt scripts and merge diff files (from SVN). Even found an old version of NUnit hiding out.&lt;/p></description></item><item><title>Planning the Next Rhino Mock</title><link>https://meisinger.github.io/post/2013-05-29-planning-the-next-rhino-mock/</link><pubDate>Wed, 29 May 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-05-29-planning-the-next-rhino-mock/</guid><description>&lt;p>It has been a week since I have been given the “keys” to the Rhino Mocks framework and it has been an eye opening experience, to say the least.
It was great to receive encouragement and interest from so many of you.
It has empowered me to do even more while at the same time added a little more pressure to not screw up (let’s see how that works).
Not wanting to waste a minute, I cracked my knuckles and dove into the code base.
I have been in the code base before but this time there was something different to the way I looked at it… from the perspective of change.&lt;/p></description></item><item><title>Rhino Mocks New Home</title><link>https://meisinger.github.io/post/2013-05-20-rhino-mocks-new-home/</link><pubDate>Mon, 20 May 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-05-20-rhino-mocks-new-home/</guid><description>&lt;p>I am proud to state that Rhino Mocks has a new home. I must admit that I am feeling a little nervous.
Its not every day that you get take charge of a project like Rhino Mocks.&lt;/p>
&lt;p>There are some plans to modify the code based on the original “4.0” roadmap from a few years ago but the initial
focus will be to create a single location to download the binaries. Once this is established then things like “alpha” and “beta” builds can be done.
I also believe strongly in documenting the features that are currently available.
Perhaps a wiki or website can be created to help out in this area (especially for some of the more complex features).
Along the same line, another primary focus will be to promote the principles behind Rhino Mocks. In other words, answering the “why” versus the “how&amp;quot; questions.&lt;/p></description></item><item><title>State of Rhino Mocks</title><link>https://meisinger.github.io/post/2013-05-16-state-of-rhino-mocks/</link><pubDate>Thu, 16 May 2013 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2013-05-16-state-of-rhino-mocks/</guid><description>&lt;p>&lt;a href="http://http://ayende.com/blog/">Ayende Rahien&lt;/a> (Oren Eini) recently &lt;a href="http://ayende.com/blog/161826/the-state-of-rhino-mocks">posted&lt;/a> about the state of Rhino Mocks.
For those of you who don’t know, Rhino Mocks is a dynamic mock object framework for the .Net platform that Ayende created and developed
which allows developers to “mock away concerns” in unit tests. I remember stumbling across Rhino Mocks around 2006 and ever since that time I have been hooked.
I have tried other mocking frameworks but each time I have always returned to Rhino Mocks.&lt;/p></description></item><item><title>Head in the Clouds</title><link>https://meisinger.github.io/post/2010-08-21-head-in-the-clouds/</link><pubDate>Sat, 21 Aug 2010 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2010-08-21-head-in-the-clouds/</guid><description>&lt;p>The past couple of months have been really fun as we have moved our whole product (lock stock and barrel) out into the Cloud.
Along the way I have learned a couple of things about the Cloud and myself that I think (clearly) is enlightening.&lt;/p>
&lt;p>&lt;em>Its weird, actually. It seems like I have been going through a renaissance of sorts lately with everything that has been going on.
Perhaps it has more to do with the epiphanies and &amp;ldquo;ah ha&amp;rdquo; moments as of late but in either case, plenty of topics to cover so let&amp;rsquo;s not waste any time.&lt;/em>&lt;/p></description></item><item><title>NServiceBus - Fifteen Minutes...</title><link>https://meisinger.github.io/post/2009-11-10-nservicebus-fifteen-minutes/</link><pubDate>Tue, 10 Nov 2009 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2009-11-10-nservicebus-fifteen-minutes/</guid><description>&lt;p>After downloading the assemblies I was ready to create my first sample application using NServiceBus.
From what I can tell, a lot of time and effort has gone into building the &lt;strong>NServiceBus.Host&lt;/strong> executable so if you plan on using it… you’re in luck,
there are plenty of examples out there on how to use it. If you don’t want to use it, however, get ready for some digging
(take a guess on which direction I went in). Hopefully this post will serve as a good example of how to handle things when you don’t want to use &lt;strong>NServiceBus.Host&lt;/strong>.
Time will tell…&lt;/p></description></item><item><title>Better Unit Testing and TDD</title><link>https://meisinger.github.io/post/2009-04-09-better-unit-testing-and-tdd/</link><pubDate>Thu, 09 Apr 2009 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2009-04-09-better-unit-testing-and-tdd/</guid><description>&lt;p>I just got done watching &lt;a href="http://blog.wekeroad.com/">Rob Conery&amp;rsquo;s&lt;/a> latest installment in his &lt;a href="http://blog.wekeroad.com/kona/kona-2">Kona&lt;/a> series.
I have to say that I like the direction that he is going with it and I hope that he continues producing great screen casts.&lt;/p>
&lt;p>After watching the video, however, I noticed some of the comments that were made by others and started to get really frustrated over how developers
view unit testing and practicing TDD.&lt;/p>
&lt;p>&lt;em>I am not saying that I am the end-all-be-all when it comes to unit testing and TDD.
Far from it&amp;hellip; lord knows that I have worked on projects where I didn&amp;rsquo;t produce a single unit
test and instead relied on firing up a browser and stepping through the application to &amp;ldquo;test&amp;rdquo; the code.&lt;/em>&lt;/p></description></item><item><title>Handling Validation Errors in MVC (a different approach)</title><link>https://meisinger.github.io/post/2008-07-17-handling-validation-errors-in-mvc-a-different-approach/</link><pubDate>Thu, 17 Jul 2008 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2008-07-17-handling-validation-errors-in-mvc-a-different-approach/</guid><description>&lt;p>I just got done reading &lt;a href="http://weblogs.asp.net/scottgu/default.aspx">Scott Guthrie&lt;/a>&amp;rsquo;s and &lt;a href="http://haacked.com/">Phil Haack&amp;rsquo;s&lt;/a> posts on the
&lt;a href="http://haacked.com/archive/2008/07/16/aspnetmvc-codeplex-preview4.aspx">MVC Preview 4 release&lt;/a> and there was one little piece in the &amp;ldquo;What&amp;rsquo;s Next&amp;rdquo;
section that really peeked my interest. As it turns out the MVC guys are figuring out how to tackle the problem with handling validation errors and
reporting them back to the user. How great is that? I don&amp;rsquo;t know about you but validation errors are one of the worst things to have to deal with
when it comes to a web based application.&lt;/p></description></item><item><title>New ASP.Net MVC Source Drop</title><link>https://meisinger.github.io/post/2008-04-18-new-aspnet-mvc-source-drop/</link><pubDate>Fri, 18 Apr 2008 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2008-04-18-new-aspnet-mvc-source-drop/</guid><description>&lt;p>&lt;a href="http://weblogs.asp.net/scottgu/default.aspx">Scott Guthrie&lt;/a> recently posted about the
&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/16/asp-net-mvc-source-refresh-preview.aspx">new ASP.Net MVC Source Preview&lt;/a> and I have to tell you that
I am really excited about these new bits. Not only have they added the source code for the unit tests with this release but that have added two new
features that I think are really going to make life easier.&lt;/p>
&lt;p>If you have played around with ASP.Net MVC, or have read articles covering it, you will know that one of the key features to ASP.Net MVC is the support
for unit testing in the Presentation tier. Prior to ASP.Net MVC you could perform some unit testing in the Presentation tier but often times you were
required to use a record/playback mechanism that did nothing more than record the HTTP request, store the data in some XML or other file format, and
allowed you to &amp;ldquo;replay&amp;rdquo; the scenario. More times than not, however, the amount of time and effort to test this tier was too much to make it a common everyday
task that developers would follow.&lt;/p></description></item><item><title>ASP.Net MVC Source Code Available... our first test</title><link>https://meisinger.github.io/post/2008-03-22-aspnet-mvc-source-code-available-our-first-test/</link><pubDate>Sat, 22 Mar 2008 00:00:00 +0000</pubDate><guid>https://meisinger.github.io/post/2008-03-22-aspnet-mvc-source-code-available-our-first-test/</guid><description>&lt;p>&lt;a href="http://weblogs.asp.net/scottgu/">Scott Guthrie&lt;/a> recently posted an article about the
&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/03/21/asp-net-mvc-source-code-now-available.aspx">ASP.Net MVC Source Code&lt;/a> becoming available from the CodePlex website.&lt;/p>
&lt;p>I think that this a huge step in the right direction. I would even go as far as saying that this &amp;ldquo;move&amp;rdquo; was intentional.
If you take a minute and think about what this means&amp;hellip; you will see what I am talking about.&lt;/p>
&lt;p>With the source code to the MVC library being made available&amp;hellip; it is almost like we as developers are being tested.
Will we take the source code and make it our own? Will we report back defects and enhancements back to Microsoft to improve this feature?
Will we open it up and try to break it and find flaws in the underlying code?&lt;/p></description></item></channel></rss>