Over a million developers have joined DZone.

Preparing for ASP.NET vNext and Visual Studio 2015

This article contains my experiences in getting a Web API project compiled and running when consuming ASP.NET 5 RC packages.

· Web Dev Zone

Start coding today to experience the powerful engine that drives data application’s development, brought to you in partnership with Qlik.

I’ve finally taken the plunge and decided to get stuck into the recently released Release Candidate (RC) of ASP.NET 5.  Prior to today, I’d stuck with the RTM version of Visual Studio 2015 which insulated me from some of the changes which are on the horizon.

A few months ago, I’d managed to put together a working (live) solution using VS 2015 and the new Web Projects, and you can see it here at http://windowsbinary.com.

Whilst this was handy experience, it barely prepared me for the massive changes to the development environment which ASP.NET 5 RC requires.  This article contains my experiences in getting a Web API project compiled and runnig when consuming ASP.NET 5 RC packages.

Git Support

Whether you use Github, Team Foundation Server Source Control, or no source control, you’ll want Git support in your dev environment anyway.  A lot of PowerShell scripts and commands pull and clone from Git repositories, and command line integration, in my humble opinion is essential.  If you haven’t installed Git support with Visual Studio 2015, now’s the time to do so.

Install Git/GitHub support when you install Visual Studio 2015 (or modify your install)

clip_image002












https://msdn.microsoft.com/en-us/Library/vs/alm/Code/git/command-prompt

Also, you can download Git tools for Windows from http://git-scm.com/download/win and support for Git in PowerShell here: https://github.com/dahlbyk/posh-git.

Speaking of PowerShell…

Preparing PowerShell

Enable PowerShell script execution.  You’ll probably be working with PowerShell more than you have in the past, even if you aren’t writing the script.  You’ll certainly be using PowerShell commands, at a minimum inside the Package Manager Console inside VS 2015.

Open a PowerShell console as Administrator, then: Set-ExecutionPolicy Unrestricted:

https://github.com/NuGet/Home/issues/974

If you get the following error when loading the Package Manager Console inside Visual Studio 2015:

“Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of Unrestricted. Type 'Get-ExecutionPolicy -List' to view your execution policy settings. For more information please see 'Get-Help Set-ExecutionPolicy'.”

Here’s my PowerShell Execution Policy on a Workgroup-based computer:

image







And, on a Domain-joined machine with a Group Policy Object applied:

clip_image002[11]







It’s likely caused by a Group Policy Object (GPO) which is setting a domain-policy on PowerShell restrictions.  Even if you modify and update group policy, this error condition may persist.  Based on an article here: https://powershellpanda.wordpress.com/2013/12/01/override-gpo-for-powershell-execution-policy/.

A registry hack will get you past this annoying issue:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell]

“ExecutionPolicy”=-

Working with DNX, DNU and DNVM

To manage different versions of the .NET Runtime environments, you’ll need to get familiar with dnx (Microsoft .NET Execution environment), dnu (.NET Development Utility) and dnvm (.NET Version Manager). Screenshots are available below. You should be able to execute them from the Visual Studio 2015 Command Line Tool:

image







DNX:

image











DNU:

image












DNVM:

image













If you get the message:

“'dnx' is not recognized as an internal or external command, operable program or batch file.”http://stackoverflow.com/questions/30440974/dnx-command-not-found-in-developer-command-prompt-for-vs2015

You can fix this issue by running the following command:dnvm use default –p

which will persist the changes to the environment variable for the current user.

clip_image002[4]








On another machine, I was warned about a deprecated environment variable:

image







Which might beg the question…

What are KRE, KVM, KPM?

http://gunnarpeipman.com/2014/10/asp-net-5-what-are-kre-kvm-kpm/

In short, KRE/KVM and KPM are management bits for ASP.NET 5.  K-bits were named to DNX/DNVM.  I’m including this info in case it leads you to this article.

From the link above...

K has three components:

  • KRE – K Runtime Environment is the code required to bootstrap and run an ASP.NET vNext application. This includes things like the compilation system, SDK tools, and the native CLR hosts.
  • KVM – K Version Manager is for updating and installing different versions of KRE. KVM is also used to set default KRE version.
  • KPM – K Package Manager manages packages needed by applications to run. Packages in this context are NuGet packages.

Microsoft ASP.NET and Web Tools 2015 (RC) – Visual Studio 2015

Lastly, before you get too excited, there’s a couple of hundred megabytes of updates you’ll need for the supporting tooling for the RC (RTM differs too much, some important things were renamed since then).

The latest version, naturally, requires updated tooling.  If you only have Visual Studio 2015 RTM, then prepare for some fun.  You can download the RC bits here: https://www.microsoft.com/en-us/download/details.aspx?id=49959

Which leads me to installing all of the following on my Development machine:

clip_image002[13]

Finale

The net result is that when I now open Visual Studio 2015, and I create a new project – I select .NET Framework 4.6 and when I create a new ASP.NET Web project, the options include:

clip_image002[15]

 

Troubleshooting

Here’s some infuriating error messages you might stumble across in trying to compile a simple Web API:

“DNX 4.5.1 error NU1002: The dependency <Assembly> in project <Project> does not support framework DNX,Version=v4.5.1.”
“DNX 4.5.1 error NU1002: The dependency System.Runtime 4.0.0 in project Asp5Api does not support framework DNX,Version=v4.5.1.”
clip_image002[6]
System.IO.FileNotFoundException: Could not load file or assembly ‘Microsoft.DNX.PackageManager’ or one of its dependencies. The system cannot find the file specified.

Which means you probably haven’t installed the latest Web Tools.  The PackageManager assembly apparently has been renamed, and is reflected in the later (post-RTM) versions.

Create data driven applications in Qlik’s free and easy to use coding environment, brought to you in partnership with Qlik.

Topics:
news ,microsoft ,asp.net ,trends ,visual studio ,web dev

Published at DZone with permission of Rob Sanders, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}