Posts

Showing posts with the label REST

How do they do it – the right way to write software

Image
  [Concrete / Interesting] Sitting at my desk and looking at the plans for the next scheduled release of our enterprise application and, oh boy, this looks like it’s gonna take forever. Not an unusual thought to pass through the mind of a development manager. But wait, does it really have to be this difficult? Is there a better way. How do they do it? On another subject, one of the guys in the team shows me Trello ( www.trello.com ) – 5 minutes in and it looks like the right tool for the job. It’s a line of business application and it does what it says on the tin. Then my mind wanders and I find myself asking “how do these guys make any money? how do they write this stuff and sell it for nothing? how do they do it?”. So I dig a little deeper and the clue to how is to be found at the following URL: https://trello.com/docs/ Yes, behind the web client, iOS, Android and Windows 8 clients, there is a business level REST API. And take a look at the structure, API nouns based on k...

Chubby RESTful Clients using Silverlight and WCF

Image
  [Concrete/Interesting] Many years ago I was working on a project. We needed a application that worked in a browser but everything came from the local machine. Later I started to notice devices like Routers that had a web interface…just connect using HTTP to the device IP address and there you are. I used a similar technique in my Ghostfiles Service application ( http://www.lowrieweb.com/ghostfiles.htm ). Chubby Client Architecture Ghostfiles is a Windows Service Application that runs as a lightweight HTTP server on a private HTTP port. If you point your browser at it, the service returns back application pages. It’s just like having Apache or IIS running, only lightweight with only the pages of the application supported. This is what I called a Chubby Client, a thin client interface delivered to a browser by a local web and application server. The basic architecture used in Ghostfiles is shown here:   Page requests (GET/PUT) from the browser are handled by the...

iPhone Offline Web Apps – the RESTful Way – Part 2 of 2

Image
[ Concrete/Very Interesting ] Ok, so hopefully you got the static application working offline. I was quite satisfied when I got it working, though not nearly as much fun as watching Push in HD on my Samsung 6000 LED TV (thinner than my laptop – wow). Now for the RESTful part. We need to make REST calls when online and work from a cache when offline.           Cache Manifest White list As well as defining the resources that are cached, you can specify resources that should not be cached in your manifest file: CACHE MANIFEST # Version 0.9.4.1129.007   NETWORK: /iretailpassportsvc/clientservices.svc   CACHE: index.htm images/arrow.png Any resources named under the ‘NETWORK:’ label are considered white listed and should not be fetched from the cache. Notice that you can name cached resources after a ‘NETWORK:’ section by using the ‘CACHE':’ label. Naming white li...

iPhone Offline Web Apps – the RESTful Way – Part 1 of 2

Image
[ Concrete/Very Interesting ] Whist building a web application for the iPhone, I was presented with a problem. One of my team managed to replicate the work we've been doing using Objective-C. I looked at the code – didn't like it but it worked. The problem was, it worked offline . ‘Can't have this’ I thought, so I embarked on making my application offline capable. Sounds easy – well in principle, it is. In practice, there were a few pitfalls that I thought I'd better blog about. Of course, I had a cold and had just received an H1N1 vaccination, so maybe on a good day… Anyway, here is some background and my tips to Offline Web Apps, the RESTful way. HTML5 Offline Application Cache You can find out lots of good stuff about this on the Internet. The official reference from Apple can be found here . The key is to create an cache manifest file naming all your resources - HTML files, Scripts, Style Sheets, images, and so on… You then reference the manifest file (....