Improving the Web API routing system\u2013Part 2

<p>The little piece of work I did on the Web API routing system seems to have caught on with a few people on the internet. I'm getting questions on twitter and this blog on a number of things related to the attributed routing addon I created.</p> <p>So here's a short list of the questions I got.</p><!--more--><p> </p> <h2>Have you heard about Attributed routing for ASP.NET MVC?</h2> <p><br>Ehm, nope I haven't heard of it before. But apparantly Tim McCall has created <a href="https://github.com/mccalltd/AttributeRouting" target="_blank">a cool framework</a> on top of ASP.NET MVC that allows you to do the very same thing I built, but for ASP.NET MVC. Very cool initiative and looks rock solid. </p> <p>Some folks asked me to join forces with him to bring my classes into that framework. And yes, I am going to do that as it makes much more sense to merge my stuff into that project. Makes things all the more powerful.</p> <h2>Do you have support for</h2> <p>There are a number of questions on support for various scenarios:</p> <ul> <li>Nested collections: I don't know, haven't tried it. It might work, it might not. Going to test it though and I will let you know how things are at the moment and what the plan is for supporting it (If I need to do stuff for it).</li> <li>Multiple verbs: If you place the HttpRoute attribute on top of a controller, it will support multiple verbs like POST, PUT, DELETE and GET. On method level, you need to specify the verb using the [Http.] attributes (HttpPost, HttpPut, HttpDelete, etc). But I will document this and see if there's anything I need to do here for additional support.</li></ul> <h2>In the meantime</h2> <p>While I am working out the details of integrating my stuff with the stuff made by Tim McCall, I suggest you either download the sources <a href="http://www.fizzylogic.nl/2012/03/26/improving-the-web-api-routing-system/" target="_blank">from the other post</a> on this subject. Or get the <a href="http://nuget.org/packages/fizzylogic.attributedrouting" target="_blank">Nuget package</a> for the attributed routing code. I published it this afternoon, as it seemed like a good idea to do so at the moment. Keep in mind though, that I will deprecate that package as soon as I integrated my code with Tim his code.</p> <p>I will keep you posted as things move along <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Glimlach" src="http://fizzylogic.azurewebsites.net/wp-content/uploads/2012/03/wlEmoticon-smile3.png"></p>

About that other hobby

<p>Yes, I'm a geek and a very bad case too. I love coding alot and I love making user interfaces the most when coding. The <a href="http://www.windowsphone.com/nl-NL/apps/6d53ad0a-32d0-4ab1-b199-5a0c3b0c6ab8" target="_blank">Last Seats app</a> is one of my finest examples of making a cool user interface.</p> <p>But I do have other hobbies <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Glimlach" src="http://fizzylogic.azurewebsites.net/wp-content/uploads/2012/03/wlEmoticon-smile2.png"> Like photography. You can find me outside at least a couple of times a week, playing around with my Canon 5D Mark II. I shoot mostly landscapes, but sometimes I like to experiment a bit and shoot other things.</p><!--more--><h2>Here's an example</h2> <p><img src="http://farm8.staticflickr.com/7252/7015014621_577a19a733.jpg" width="700" height="466"></p> <p>I used a Sigma 17-35MM lens to shoot it. Since I have reumatism, I can't sit on my knees in the dirt, so this one is shot by positioning my camera on a pile of sand. I know this is bad, but hey it does the job. </p> <h2>Other examples</h2> <p>There's way more stuff than I can show here, but there are a few cool examples of photos I think are worth a second look.</p> <p><img src="http://farm7.staticflickr.com/6093/7015015367_b34a0e6452.jpg" width="229" height="229"> <a href="http://farm2.staticflickr.com/1116/5132104819_b69332bedc_b.jpg" target="_blank"><img src="http://farm2.staticflickr.com/1116/5132104819_b69332bedc_q.jpg" width="229" height="229"></a> <img src="http://farm7.staticflickr.com/6240/6272608293_6dde288350_q.jpg" width="229" height="229"></p> <h2>My equipment</h2> <p>As I mentioned earlier in this post I use a Canon 5D Mark II for my day to day photoshooting. It's a very fine camera to work with. It does just what I want and nothing more. As a lens I have a Canon 24-70MM canon lens mounted on it for most of the pictures, but I also like my Sigma 17-35MM lens which has a much wider angle than the Canon lens.</p> <p><img src="http://farm7.staticflickr.com/6206/6158418563_865b6f146d_b.jpg" width="700" height="466"></p> <h2>Want to see more?</h2> <p>If you want to see more pictures check out <a href="http://www.flickr.com/photos/wmeints/" target="_blank">my Flickr photostream</a> or just follow this blog. I plan on posting alot more of this stuff on here as a welcome variation on the geek things that I talk about.</p>

Improving the Web API routing system

Web development has my attention, the guys at Microsoft somewhat surprised me with the speed at which they innovate on the ASP.NET platform with the new Razor pages, ASP.NET MVC 4 and Web API.

Web API is a new framework that you can use to build RESTful services for your webapplication. It's a very powerful framework that allows you to customize a lot of stuff without sitting in the way too much. For example, you can customize the way the urls for your RESTful services are layed out by applying custom routes.

TechDays 2012 session video is online

Microsoft finished processing the video for our mobile sessions a few days back. You can watch it either here or on their website. They did a pretty good job on the overall look of the video I must say.<!--more-->

<iframe style="width: 956px; height: 484px;" src="http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2143/player?w=956&h=484" frameborder="0" scrolling="no" width="320" height="240"></iframe>

Mono for Android by example: The action bar

My boss has lend me a Galaxy Tab which I am (with a greatful heart I can tell you) punishing with some Mono for Android tryouts. Although I wasn't a big fan of Android Tablets at first I'm starting to like it now I know what I can do to it. There's a lot more pixels I can use, so it opens up a whole new universe of possibilities.

In this article I'm going to show you one of the latest discoveries I did on the tablet. A lot of developers already know this feature, called the action bar. It's a user interface pattern widely applied in the Android ecosystem. On versions of Android prior to v3.0 you needed to build the action bar yourself using a custom linear layout and a bunch of code. Very ugly and hard to maintain. But version 3.0 and up however support the action bar out of the box with a rich set of features. It makes things a lot easier, that's for sure.