Well, I am back. I have been working on a very large project the last couple of months that gently removed the spare time to blog about the things I care about. But I'm jumping in again.
What has happened since then?
Well, it is like the whole ecosystem has changed since last year. It's all about mobile and BYOD. No one develops for the desktop anymore. Computer sales are dropping. Even Intel is now focussing on tablets and laptops because of declining revenues.
Of course we .NET developers still have a lots of work in enterprises so no worries there. But, if you start building an app, you'd better consider building it for mobile as well.
That means we need to write applications in a platform independent manner. So it means we have to decouple our apps. We need to provide an API that any client application (phone, tablet or desktop) can consume.
So, this is the moment to dive into the ASP.NET Web API which is very lightweight if you want it to.
What are we going to build?
We are going to create an addressbook. It's a simple CRUD application.
This is What we need:
Visual Studio 2012.3
SQL 2012 Server Express
Next create a new database called AddressBook and execute this sql. Thanks to Brian Dunning.
Getting started with the Web API
Fire up Visual Studio and create a new empty Visual Studio Solution called AddressBook.
Add a new project to this solution -> Visual C# -> Web -> ASP.NET Empty Web Application called AddressBook.Api
In the Package Manager Console, type:
Install-Package Microsoft.AspNet.WebApi
Next add a new class and name it PersonController:
Then make it look as follows:
using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; namespace AddressBook.Api { //class must inherit from the apiController public class PersonController : ApiController { public IEnumerable Get() { return new string[] { "Marie", "Tina" }; } } }
Now we must add a default route for the application. The routes are global to the application. So the place to configure the routes is in Global.asax. So go ahead and add a new Global Application Class file, and add the following:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Security; using System.Web.SessionState; namespace AddressBook.Api { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { GlobalConfiguration.Configuration.Routes.MapHttpRoute( name: "default", routeTemplate: "{controller}/{id}", defaults: new { id = RouteParameter.Optional }); }
F5 and the result is like this:
Well that can't be good.
According to our route, however, we must explicitly enter the name of our controller in the URL. And then it works:
Next time I show how to display the data from the AddressBook database.
One thought on “Getting started with ASP.NET Web API part 1”