For those playing along at home I have built a 0.0.2 release for RPXLib. The only change is a small (but significant) bugfix around a misspelt property name.
Thanks to Willie Tilton for noticing the problem. The release can be found here.
Don't forget to check out the project home page at google code.
I have long been convinced of the worth of OpenId. I am unsure if it is the ultimate solution - but for now it is definitely the best solution we have (imho). When I heard about RPX, a new integration service from JanRain, my interest sky-rocketed. Previously, the thought of manually integrating into the current OpenId world seemed intimidating to me. RPX solves that problem - hands down.
And what does a developer do when confronted by an open API? He writes a custom wrapper in his language of choice - that's what he does.
So this post announces RPXLib, now available on Google Code. It is a .Net wrapper meant to take some of the pain out of RPX integration by handling most of the boring stuff for you. It presents a simplified service API and returns strongly-typed response objects for you to play with. Be sure to take a peek at the documentation wiki.
It is worth noting that this works well on my machine - but I am very interested to hear from others about the benefit that this provides (or lack of benefits, even more importantly). I figure it takes about 2-3 minutes to read the doco and about another 10 minutes to integrate this into your application. Your mileage may vary and I would love to hear your experiences.
As I approach the end of my current contract it appears less and less likley that funding will be available for my renewal. A shame really considering the progress we have made on the new version of the application - which has manifested into a pretty damn nice codebase, even if I do say so myself. But unfortunately administrivia is once again about to become the downfall of a potentially promising project.
So with that news I announce myself available. I am a little shaken by this news but I am positive that some good will come of it. If anyone knows of any suitable local or telecommutable work - please keep me in my mind.
I have uploaded my current CV to my about page.
For those who care to play along - I am now twittering. I don't do it that often, but when I do - pure gold baby!
Not really.
My username is sburman. Check me out here - http://twitter.com/sburman
The refactoring of the helper method Html.Form in MVC to Html.BeginForm was published in the release notes as a simple renaming. During the beta upgrade process we noticed that a lot of our forms were rendering with blank actions.
If you too are having trouble with your forms, it is worth noting that the API has changed in a subtle but EXTREMELY significant way. The orignal method, whose signature looked like:
public static IDisposable Form(this HtmlHelper helper, string controllerName, string actionName)
Has been changed to read:
public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName)
Note that the parameters have been interchanged! So if you were using magic string-ness to get actions into your forms, you now have a bigger upgrade job than you thought. You will need to switch the parameter strings and put your controller where your action is - and vice versa.
This was tracked down in my team by Simon Sanderson (who we are assured is unrelated to MVC guru Steve). There is a confession of sorts from the MVC team here.
In the past few weeks I have revisited the specification pattern using Linq. I have teased it, toyed with it and tricked it up. And today I announce the public availability of a project demonstrating my current thoughts. You can grab the solution from Google Code at http://code.google.com/p/linq-specifications.
I have no doubt that improvements can and will be made if this generates any wider adoption. For now, it suits what I am currently working on quite nicely. YMMV.
Below is a class diagram of the current core of the project. Use it as a quick reference but be sure to check out the code for a more in-depth view.
Shortly I will do up a few examples on the project wiki that will flesh out some of the gotchas I have come across already and I need some more testing around some of the elements. For now, however, I just wanted to get this out in the wild. Feel free to comment/flame. I look forward to any feedback.