ASP.NET vNext - Alpha3

Today we released ASP.NET vNext alpha3, you can read more about it here.

I want to point out some of the big changes in the KRuntime that weren't mentioned in the blog post.

NO MORE SOURCE FILES IN THE KPROJ FILE

Ok this, was mentioned in the above blog post but I had to mention it again. I'm looking foward to never having another project file merge conflict ever again... (yea right)

Support for configurations

We added support for adding custom configurations. Configurations are a bunch of names that allow you to specify compilation options. Debug and Release are configured by default with the most common compiler settings. See more here
https://github.com/aspnet/KRuntime/issues/73

Global NuGet repository (Not the GAC)

One of the biggest changes that was made this release was moving the solution local packages folder to %userprofile%\.kpm or $HOME\.kpm (on *nix). When you create a new project in Visual Stdudio 14 CTP3, take a look at your project folder. You'll notice that there is no more packages folder locally in the solution. With this change, there's only ever one copy of the package on your hard drive (that's been a source of pain in the past for some people).

Since we were moving the packages folder, we also decided to tidy it up. We changed the folder layout from {name}.{version} to {name}/{version}. This made queries like "find all versions of a package" more efficient. It also cleans up the packages folder alot!

Of course, if you want to change the packages location, you can specify that in the global.json file. You can read more about how this feature works here.

Pluggable project compilation

If you've been reading Aleksander Heintz's blog posts about vNext (and I recommened them), you'll see he's added F# support to ASP.NET vNext using the new extensibility. He also has a great post about how he bootstrapped the F# compiler extensibility in F# http://alxandr.me/2014/08/18/language-support-in-the-language-your-supporting-or-eating-your-own-dogfood/.

Dylan Borg also added support for his custom .NET language dylan dot net to ASP.NET vNext.

Build/Restore events

We added support for project.json to declare scripts that run at different times (for the full list, see https://github.com/aspnet/Home/wiki/Project.json-file#scripts). This allows you to write generic logic (bash/cmd files/run exes) that runs at specific points.

Specifying the Language Version

Today the C# language version used by ASP.NET vNext projects is C# 6. If you want to use the new Roslyn features in C# 6 you can set the following in project.json:

{
  "compilationOptions": {
    "languageVersion": "experimental"
  }
}

This will let you use the slew of new features in the Roslyn compiler which you can find here. (This will be the default language version in the next alpha)

There's tons of things that were listed in the release notes that weren't mentioned in this post.

Looking forward, there are many other exciting features to come in the next alpha in the KRuntime. If you're interested in what we're working on, you can take a look at the issues here:

https://github.com/aspnet/KRuntime/milestones/1.0.0-alpha4

comments powered by Disqus