Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebApi2 in visual studio 2012

How can I create a project that uses WebApi2 in visual studio 2012?

Do I have to create with a blank project or do I have to create a MVC project?

I don't want to install Visual Studio 2013 preview, please help.

like image 869
user2070369 Avatar asked Aug 21 '13 04:08

user2070369


People also ask

Can Visual Studio 2012 create Web API?

Task 1 - Creating the API ProjectRun Visual Studio 2012 Express for Web, to do this go to Start and type VS Express for Web then press Enter. From the File menu, select New Project. Select the Visual C# | Web project type from the project type tree view, then select the ASP.NET MVC 4 Web Application project type.

Can Visual Studio 2010 create Web API?

Now you can create ASP.Net Web API project using Visual Studio 2010. When you create a new ASP.Net MVC 4 project, you can choose the Web API template.

How do I find the Web API version in Visual Studio?

To check this, you can open your solution, expand the webapi solution, then open the packages. config file that holds the nuget config for what you have installed. You should see some web api version message in the below.

Can we create Web API without MVC?

Here, we will create a new stand-alone Web API project without MVC project. For this, open Visual Studio 2013 for Web -> go to File menu and select New Project.. This will open New Project popup as below. Select Web template in the left pane and ASP.NET Web Application in the middle pane.


5 Answers

You need to install ASP.NET and Web Tools 2013.1 for Visual Studio 2012 which adds the Web API 2 and MVC 5 templates

like image 176
Sean Lynch Avatar answered Oct 27 '22 16:10

Sean Lynch


Create a MVC project, right-click to and select

  1. Create an MVC project
  2. Right click the project in solution explorer and select "Manage nuget packages"
  3. Select "include Prerelease"
  4. Search for web api and select "Microsoft ASP.NET Web API", make sure the version is 5.0.0-beta2 (Prerelease)

Wait, after a while you should be good to go.

like image 43
Olav Nybø Avatar answered Oct 27 '22 16:10

Olav Nybø


As far as I know, Web API 2 is equal to the 5.0.0-beta2, so you can just pull that from NuGet as described by Olav.

However, if you've installed the VS2012.2 update, you can start with a Web API template, not just with a MVC template. Start a new project, select MVC and then select the Web API template. It won't add that much, just a few example controllers and some configuration files tailored for Web API.

For specific VS2013 features like they've shown in some Build video's: I'm afraid you would need the 2013 Preview in order to use those.

like image 6
Kazu Avatar answered Oct 27 '22 17:10

Kazu


My initial research led me to take the manual configuration approach I detail below, so I actually never tried Olav's suggestion. If that works, that's probably the way to go. But if not, or if there are missing pieces to that approach, here are the steps I took. I'm using VS 2012 Update 3.

  • Start with a new MVC 4 / Web API project
  • From the package manager console, run:

    Install-Package Microsoft.AspNet.WebApi -pre

I received a warning that it was skipping _ViewStart.cshtml but it gave me the option to overwrite. I chose Yes.

  • Again from the package manager console, run:

    Install-Package Microsoft.AspNet.Mvc -Pre

  • Change web.config, views\web.config, and areas\views\web.config according to these instructions. Ignore steps 1 - 5 under Upgrade Steps. Also, I didn't need to do anything concerning WebHelpers.

  • Add references to System.Web.Http 5.0 to web.config according to step 2 of this answer.
  • If you build at this point, you'll get a compiler error stating that XmlDocumentationProvider in the Areas\HelpPage folder doesn't fully implement the interface. Not sure what that's all about, but at this point it's not important to me so I just added empty implementations to the two missing methods (tip: right click on IDocumentationProvider and select implement interface - it will add the two missing methods).

I did this a couple days ago and my memory is already getting fuzzy, but I think that covers it. At this point I'm able to use WebAPI2 including attribute-based routing!

like image 3
dae721 Avatar answered Oct 27 '22 16:10

dae721


Open view and select package manager console and paste following command and press enter.

Install-Package Microsoft.AspNet.WebApi 

Package manger console will display at bottom.

enter image description here

like image 1
Muhammad Nasir Avatar answered Oct 27 '22 17:10

Muhammad Nasir