The hypermedia constraint?
May 8th, 2008
At the recent Pnp Summit, during a presentation on Ado.Net Data Services, I asked Scott Hanselman whether it supported the REST “hypermedia constraint”, to which he responded by asking me to clarify my question. At that point, and at several other times during the conference I realized that although I think I grok the concept, I certainly do a horrible job of attempting to explain it.
So I went searching and found a number of people who do a much better job of explaining it than I ever could. One of the advantages of a term so obtuse as “Hypermedia as the engine of application state” (HATEOAS) is that google does a great job of finding articles.
Stu Charlton explains HATEOAS from the perspective of an architect. My take away from this article is summarized by
making sure that your interfaces constrain the “when”: logical timing & ordering expectations
Peter Williams suggests that hypermedia gives you the flexibility to change your URL structure without breaking clients.
Paul James gives a concrete example of how hypermedia helps to decouple the client and the server. The best line of this article for me was,
So next time someone goes on about how RESTful systems can’t possibly work because they need some kind of description language to enable clients to be wired to servers, remind them of hypermedia and point them to any part of the Web for a real World example of REST in action.
For me I began to grok REST after reading Tim Ewald’s post. For him REST only became significant once he understood the notion of a “state machine as node graph traversed via URI”.
Too often REST is viewed as a HTTP/XML based data access layer. I think this wrong layer to deploy REST. REST for me is about exposing use cases/scenarios/stories to a non-human.
Maybe next time I get asked the question, I’ll actually be able to remember the phrase “Hypermedia as the engine of application state” and I might even be able to explain it.
The ultimate WCF Service contract
May 8th, 2008
REST consulting
March 13th, 2008
Over the past year we have been working on the next generation of our product. After 10 years of fat client development we are rebuilding using REST as the foundation of our application architecture.
We are fortunate in that our existing applications map very nicely to some of the principles such as “uniform interface” and “addressability”.
However, only knowing about the existence of REST for less than a year, I am still pretty green. I decided that maybe I should look for some help.
I was very fortunate to discover that, not only does Mark Baker live and work pretty close to me, but that he does consulting work and he just happens to be one of the most recognized authorities on the subject of REST.
I was able to meet with Mark and give him a idea of where we were coming from, where we want to go and show him some of the REST work that we have done to date.
Mark’s insight was invaluable and I believe has helped to point me in the right direction at the beginning of a long journey. I look forward to working with him again as our project progresses.
Unfortunately, REST has already started to become “just another buzzword” because people are developing interfaces with only a partial understanding of the underlying concepts. I would urge anyone starting a REST based project to get guidance from someone with a deep understanding of the subtleties of doing REST design.
natural cialis alternative mail order cialis soft tabs levitra sales uk mail order levitra viagra generic brand best natural viagra purchase viagra soft tabs online herbal substitute cialis soft tabs buy viagra soft tabs online buy online pharmacy cialis uk cialis viagra or levitra purchase cialis
woman levitra generic viagra viagra soft tabs and woman female viagra generic cialis online pharmacy does viagra work for women cheap cialis soft tabs on line sale
alternative to tenuate book buy online order zyban valium alternative drugstore cheap levitra online diazepam alternative cheap viagra klipal 0.5mg 100 tabs ed pharmacy on line tramadol cyber pharmacy xanax female oxazepam uk buy lorazepam buy cialis rx pills online
It’s a sad day
March 3rd, 2008
It is a real shame when people do not feel free to express an opinion without some form of backlash.
We will miss your raw opinions Dare.
Opportunistic locking and remote desktop
December 18th, 2007
Here’s a little word of warning to others who may spend some of their time in the IT trenches. If someone asks you to change the Windows Opportunistic Locking settings, as per this knowledge base article. Be warned, it may break your ability to remote desktop to the server. It did for me.
Of course, changing the setting back when you cannot remote desktop back in is a little trickier. Thankfully, remote registry and Shutdown.exe came to the rescue.
And if you are wondering why the hell I was playing with the opportunistic locking settings, well it appears that some business applications still use ISAM database architectures which are extremely prone to data corruption. Don’t get me started…
Why WPF for LOB applications?
October 29th, 2007
Glenn Block announces some details on P&P’s plans for the new WPF Composite Client. In general this is great news. Unfortunately it comes one day after I bitched to him about how P&P were neglecting WPF based smart clients
What specifically I want to comment on is the following quotes
Win Forms is the recommended breadth solution for LOB application development for the foreseeable future
I see so many developers moving to WPF for no better reason than that it is the new thing. They are unable to articulate a business need.
Here are my reasons why we are migrating from a WinForms app to a WPF application:
- Scaling the UI. Since the rise in popularity of LCD monitors, we have seen a huge number of problems relating to screen resolution. Users who don’t know better set their LCD’s to non-native resolutions and get fuzzy displays. Some use 17″ monitors at 1280 x 1024 and sit the monitor on the front edge of the desk so that they can see it. Some actually try and change the resolution to 120% and then find half of their applications don’t resize properly! The sales value of an application that a 60 year old company president can actually read is invaluable.
- Themes and styles. Our users don’t really care too much about skinning their ERP application, but it does need to look good and it should be consistent. Stock Winforms controls look like crap and once you start using third party toolkits you get to choose from a whole array of styles: Office 2003, Office 2007, Visual Studio 2005, ad nauseam. Applying those styles consistently across an entire application is a major pain.
- Maybe I’m just not very talented but I think handling CTRL-C and CTRL-V is just way harder than it needs to be in WinForms. WPF seems to have the capability to handle this stuff properly.
- Databinding - .Net 1.1 was horrible. .Net 2.0 was just about usable in most scenarios and WPF seems to have taken it to a level that I probably will not write my own binder.
- Design time experience - Expression Blend is an incredible product for a V1. It is rock solid in comparison to the WinForms Designer in VS2005. No more white screen of death!
- Run time performance. My informal performance comparisons have shown a significantly better experience with displaying WPF controls over Winforms controls. Try running the WPF sample from the SCSF May 2007. When you resize the window, the shaded graphical treeview based org chart, with reflections, scales smoothly and the five Winforms textboxes flicker like a 1920’s movie.
- The problem with WinForms was that as soon as you wanted any capability beyond the standard controls you had to commit to a third party toolkit. And because it is not really realistic to pick and choose controls from different toolkits, you sort of get bound to the future of that toolkit. WPF makes it realistic for mere mortals to make changes to the behaviour and appearance of standard controls.
I have to agree with Glenn’s sentiment that moving to WPF will not be easy. It is not something that can be easily “migrated”. I am glad that Microsoft are not pushing this technology down our throats and are advising caution. However, I don’t believe that WinForms has any more value than providing a stopgap until we learn how to use WPF properly.
What is needed to build distributed applications.
September 17th, 2007
Tim Ewald responds to Don’s question about the validity of the the four tenets. Don asked for input…
This quote really struck home:
And finally, I’m not sure I want to build on a layer designed to factor HTTP in on top of a layer that was designed to factor it out.
Considering that I am using the library that Tim is referring to (System.Servicemodel.Web) I certainly can understand his reluctance. Tim’s description of what he needs to build a distribution application is bang on. Now if only someone would go away and write it. By next week would be fine!
TimmyOnTime » Time Management meets Instant Messaging
September 14th, 2007
I have been meaning to blog about these guys for a few days now. Check it out TimmyOnTime ยป Time Management meets Instant Messaging
I think the idea of using instant messaging to communicate with a server application is brilliant. I also get a real kick out of chatting with Timmy. Every time my boss gives me a hard time about keep track of what I am working on, I just smile and tell her, no worries Timmy’s keeping track for me.
The fact that these guys are out of Quebec and have built their site based on Rails, is just icing on the cake…
Indexing PDF files in Sharepoint 2007
September 14th, 2007
I found lots of article on how to do this in Outlook 2003, but it took a while to find this one WSS 3 Search Index Rebuild - Outlook by the sound
The conspiracy theorist in me has to question why it is not so much easier to index the most important file format on the web.
Demo Camp Montreal 3
July 25th, 2007
I paid my first visit to a DemoCamp today. Once I had negotiated my way around the hookers and beggars on St. Laurent I was most delighted to discover the Demo Camp experience included a working bar. I found myself a bar stool with a good view and ordered up some liquid refreshments, ready for the show.
I think the DemoCamp concept has a lot of merit. It is nice safe place to get some initial reactions to a project and potentially a great meeting place.
I thought the http://vinismo.com/ project was very interesting. It looks great, has great potential to fill a big void in the Internet.
The guys at Defensio did a good presentation (despite the slides!), and I wish them the best of luck. The more I think about this product, the more ideas I come up with. I do hope they do two things with it:
- Expand it to handle email spam
- Provide it as a self hostable solution
I use SpamBayes in Outlook to kill spam and it works well for me, but in a small office it would be very convenient to have the spam filter deployed in a single location as a callable service. The Outlook add-in would only have to make a web service call to the service instead of having to do all of the analysis on the client.
Heri showed his WorkCruncher application and I do believe that there is a valid product in there. Heri just needs to have a bit more confidence in the positioning of the product and stop telling us what it can’t do, and stop comparing it to other products like BaseCamp and BackPack. What I got from his presentation is that WorkCruncher lets you prioritize your day’s tasks, mark them off as they are completed and at the end of the day you can see if you achieved what you planned. Allowing you to reorder tasks, and add new “emergency” tasks would defeat the purpose somewhat. The objective is to see, at the end of the day, how accurately you were able to plan. If at the end of the day you have not completed any of the tasks, but you worked your butt off all day, you know there is something wrong with your planning process.
I think being able to integrate with a long term planning tool would be a major enhancement to WorkCruncher. I’m not sure about the need for being able to assign tasks to other team members. I don’t think that is necessary. I also would see this more as a desktop tool than a web based one.
Simon…. You have guts. You pulled it off though.
Jerome showed a cool project that I could waffle on for a while about, but considering it is a private application, I’ll spare you my ramblings and get back to work.