Articles : Page 1 of 4

  • Passing multiple POST parameters to Web API Controller Methods

    Passing multiple POST parameters to Web API Controller Methods

    May 12
    09

    ASP.NET Web API introduces a new API for creating REST APIs and making AJAX callbacks to the server. This new API provides a host of new great functionality that unifies many of the features of many of the various AJAX/REST APIs that Microsoft created before it - ASP.NET AJAX, WCF REST specifically - and combines them into a whole more consistent API. Web API addresses many of the concerns that developers had with these older APIs, namely that it was very difficult to build consistent REST sty...


  • Physical Directories vs. MVC View Paths

    Physical Directories vs. MVC View Paths

    Apr 12
    05

    This post falls into the bucket of operator error on my part, but I want to share this anyway because it describes an issue that has bitten me a few times now and writing it down might keep it a little stronger in my mind. I've been working on an MVC project the last few days, and at the end of a long day I accidentally moved one of my View folders from the MVC Root Folder to the project root. It must have been at the very end of the day before shutting down because tests and manual site nav...


  • ASP.NET Web API (Part 1)

    ASP.NET Web API (Part 1)

    Feb 12
    24

    Earlier this week I blogged about the release of the ASP.NET MVC 4 Beta. ASP.NET MVC 4 is a significant update that brings with it a bunch of great new features and capabilities. One of the improvements I’m most excited about is the support it brings for creating “Web APIs”. Today’s blog post is the first of several I’m going to do that talk about this new functionality. Web APIs The last few years have seen the rise of Web APIs - services exposed over plain HTTP rather than through a more f...


  • Rewriting WCF OData Services base URL with load balancing & reverse proxy

    Rewriting WCF OData Services base URL with load balancing & reverse proxy

    Nov 11
    08

    When scaling out an application to multiple servers, often a form of load balancing or reverse proxying is used to provide external users access to a web server. For example, one can be in the situation where two servers are hosting a WCF OData Service and are exposed to the Internet through either a load balancer or a reverse proxy. Below is a figure of such setup using a reverse proxy. As you can see, the external server listens on the URL www.example.com, while both internal servers are ...


  • Using the West Wind Web Toolkit to set up AJAX and REST Services

    Using the West Wind Web Toolkit to set up AJAX and REST Services

    Nov 11
    03

    I frequently get questions about which option to use for creating AJAX and REST backends for ASP.NET applications. There are many solutions out there to do this actually, but when I have a choice - not surprisingly - I fall back to my own tools in the West Wind West Wind Web Toolkit. I've talked a bunch about the 'in-the-box' solutions in the past so for a change in this post I'll talk about the tools that I use in my own and customer applications to handle AJAX and REST based access to servic...


  • Calling ASP.NET MVC Action Methods from JavaScript

    Calling ASP.NET MVC Action Methods from JavaScript

    Aug 11
    19

    In a recent blog post, I wrote a a controller inspector to demonstrate Controller and Action Descriptors. In this blog post, I apply that knowledge to build something more useful. One pain point when you write Ajax heavy applications using ASP.NET MVC is managing the URLs that Routing generates on the server. These URLs aren’t accessible from code in a static JavaScript file. There are techniques to mitigate this: Generate the URLs in the view and pass them into the JavaScript API. This ...


  • The Backbone.js Todo List Sample, Refactored - Part 1

    The Backbone.js Todo List Sample, Refactored - Part 1

    Aug 11
    11

    This is a long post with lots of code. I want to be complete, but I also don’t want to bore you to tears. If you want to see the refactor right now - here it is. I’m fairly certain I don’t know what I’m doing - and that I probably lack the experience to even be writing this post. All I can tell you is that I have a feeling… a not so good feeling… when reading the current Todo List tutorial up on Github. So I figured I’d refactor it and submit a pull request. Is this correct? You tell me… Wh...


  • Two bugs in ASP.NET MVC 3 and a workaround for both

    Two bugs in ASP.NET MVC 3 and a workaround for both

    Jun 11
    14

    So I spent an hour today arsing about with a couple of ASP.NET MVC 3 bugs. One was a Routing issue that caused it to act differently to MVC 2. The second I found was a FormsAuthentication issue that insisting on sending me to /Account/Login. Amazing how this crept in really given that it was community tested to death with such a massive ASP.NET MVC following so it is a wonder they weren't weeded out and fixed before RTM. Oh well, don't pretend you don't like a challenge. Routing doesn't work t...


  • Referencing Routes in ASP.NET MVC The Rails Way

    Referencing Routes in ASP.NET MVC The Rails Way

    May 11
    30

    Routing is probably the most confusing aspect of working with ASP.NET MVC. It’s hard to craft a groovy URL - even harder to link properly off to that groovy URL. Rails leans on Ruby’s forgiving and friendly nature to make this a bit more simple - C#4 allows to get close to this as well. With Rails 3  you define a route in your config/routes.rb like this: match "order/receipt/:id" => "orders#receipt", :as => :receipt # receipt_url You can access this route anywhere in your application ...


  • Using dynamic WCF service routes

    Using dynamic WCF service routes

    May 11
    09

    For a demo I am working on, I’m creating an OData feed. This OData feed is in essence a WCF service which is activated using System.ServiceModel.Activation.ServiceRoute. The idea of using that technique is simple: map an incoming URL route, e.g. “http://example.com/MyService” to a WCF service. But there’s a catch in ServiceRoute: unlike ASP.NET routing, it does not support the usage of route data. This means that if I want to create a service which can exist multiple times but in different con...