Scott Hanselman

ASP.NET and Web Tools 2012.2 (Release Candidate)

December 13, '12 Comments [52] Posted in ASP.NET | ASP.NET Ajax | ASP.NET Dynamic Data | ASP.NET MVC | ASP.NET Web API
Sponsored By

All the parts of ASP.NET, all the subsystems are all part of the larger ASP.NET communityI've talked before in presentations that the ASP.NET and Web Tools team has been slowly externalizing pieces of ASP.NET. You've seen it in many pieces of the ASP.NET runtime moving into NuGet while also being open sourced, and you've seen it as we've moved big chunks of the "tooling" (that means the menus and dialogs you interact within Visual Studio when using ASP.NET) into external installers.

Why are we doing this? Because the Web moves faster than Visual Studio does. We want to be able to offer a stable ASP.NET core that you can count on while being able to offer new and powerful features more often as needed.

Visual Studio itself has moved to a faster update model and recently released Visual Studio 2012.1 (that's Visual Studio 2012 Update 1 if you prefer.) You can get the VS2012.1 update here or just wait for Visual Studio to popup some toast and let you know.

We're going to release an update to ASP.NET we'll call ASP.NET and Web Tools 2012.2. This will happen early next year but today you can download our Release Candidate! You can watch my presentation with Jon Galloway from the BUILD conference or read the release notes. This RC is, of course, newer than the one we released at BUILD and has a better name.

This is a tooling refresh of Visual Studio 2012 and extends the existing run time with new features without breaking existing applications. This adds new templates and features including:

  • Enhancements to Web Publishing unifying Web Application and Website project publish experience.  Selective publish, local/remote diffs and more.
  • Page Inspector has enhancements including JavaScript selection mapping and ability to see CSS updates in real-time.
  • New Web API functionality including support for OData, tracing and generating a help page for your API.
  • New MVC templates
    • You can create Facebook apps using the MVC Facebook template. In just a few easy steps you can create a Facebook Canvas Application that gets data from the logged in user as well and with friends.
    • The return and refresh of an all-new Single Page Application template allows developers to build interactive web apps using Knockout JavaScript library and a RESTful Web API.
  • Real-time communication via SignalR. This means SignalR, in case you haven't heard, is a real and official thing. It's fully supported by Microsoft.
  • Extensionless Web Forms via ASP.NET Friendly URLs which makes it easy for web forms developers to generate clean URLs without the .aspx extension. This can be used with existing ASP.NET 4.0 applications as well!
    • FriendlyURLs also makes it easier for developers to add mobile support to their applications, by supporting switching between desktop and mobile views.
  • Editor support for Knockout IntelliSense and pasting JSON as a class.

ASP.NET and Web Tools 2012.2 installs quickly and does NOT alter the current ASP.NET run time components or change the GAC. For a complete description see the Release Notes.

ASP.NET Fall 2012 Update for Visual Studio 2012 can be installed from the Fall 2012 Update home page(http://www.asp.net/vnext/overview/fall-2012-update). This is an update to Visual Studio 2012, which is required. This Release Candidate update does not support localized versions yet.  You see the new features in English but we'll will have localization support in upcoming RTM. It is an RC so there are some known issues. Be sure to check out the Release Notes for issues and workarounds.

Also be sure to get our "labs" component for Web Developers called Web Essentials. This is a place for Mads and the team to try out new features and play. When those features are baked, we'll graduate them to an update like this one!

Why isn't this called ASP.NET 4.6? Because it's not. The GAC'ed ASP.NET 4.5 doesn't change. This is mostly a tooling update as well as a collection of NuGet-based libraries that augment but don't replace ASP.NET 4.5. If we called if ASP.NET 4.6 then folks would think they needed to rush to update their servers. They don't. It's an update for "Web Tools for VS 2012" but that's lame, so since we got the VS guys to use the .1, .2, .3 scheme rather than September Update CTP Refresh, then we can make things easier by calling this Web Tools 2012.2.

This .2 release is just a step towards a more componentized "One ASP.NET." I hope you enjoy the direction we're heading. We've got some new things planned like a unified "File New ASP.NET Application" dialog, a better way to add your own templates and share them with the community, and a more level playing field for everyone.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Thursday, December 13, 2012 8:10:40 PM UTC
Great news Scott. Really excited!
Thursday, December 13, 2012 8:20:11 PM UTC
We like the "direction we're [you're] heading" indeed! Keep it up and please release a HTML5 grid that exposes the outlook.com/t.msn.com/win8 layout.
Jarrod Skulavik
Thursday, December 13, 2012 8:22:49 PM UTC
Great to here!

When will VS get better Node.js support (IntelliSense and NPM)?

Right now, WebMatrix is way ahead in terms of Node.js support, but it has a vastly inferior JS editor.
Thursday, December 13, 2012 8:27:17 PM UTC
Nice to see SPA template make its way back !

Since you're offering SPA + Knockout, can we dream of seeing a project template that would offer SPA + Knockout + Breeze ?

Cheers
Thursday, December 13, 2012 8:45:35 PM UTC
Hey Scott, A few months a go, I read in the book "ASP.NET 4 in Action" that Strongly typed action links (something like Html.ActionLink<HomeController>("Home", c =>
c.Index()) ) is planed for future release of ASP.NET MVC.

Did you forget it? ;-)
Morteza
Thursday, December 13, 2012 9:47:21 PM UTC
@Morteza,

Checkout the T4MVC Nuget Package.
Chad
Thursday, December 13, 2012 10:37:06 PM UTC
@Chad

I've already used of T4MVC but I think out of the box support of this feature with the mentioned syntax is much better.
Morteza
Thursday, December 13, 2012 11:39:26 PM UTC
I couldn't find if this comes with a Go Live-like license?

I'm a bit burned from the sneaky hidden caveat of the Nov2012 CTP bits for VC++ that are not usable in production until Visual Studio vNext.
Lars Viklund
Friday, December 14, 2012 12:01:27 AM UTC
Hmm, not sure Scott. I think I fall into a category of developers that can't help but shrug at all the 'tooling' stuff. Aren't File > New Project > Facebook Application templates becoming the replacement for the old Web Forms drag & drop GridView demos? IntelliSense for one specific JavaScript library is meh... It all seems so very specific and minor. Like it would really appeal to less experienced developers.

But maybe this is just the market, democratizing development, wider appeal and all.

I dunno, convice me Scott?
Mike
Friday, December 14, 2012 12:28:34 AM UTC
Mike - I can see your lack of interest in the Facebook thing. More interesting may be the new FriendlyUrls stuff, much better Web API stuff (help page, tracing, etc), the inclusion of SignalR.

Also interesting are graduating features from Web Essentials like the ability to "Paste JSON as C# classes." Literally put JSON in the clipboard and paste it and get compatible C# classes.

The intellisense for Knockout is inside the HTML editor, not in the JS editor. We're trying to get better JavaScript intellisense in general for things like backbone, ember, and other stuff. There's also support for mustache templates and other client side template languages.

Also, rather than waiting a year to get this you waited a few months. You'll see (and suggest) new features in the next few months and or every week if you get the Web Essentials plugin.

In the future we want to make it so you (or any OSS project or corporation) can make your own VERY easily shared templates so you can say File New | Mike's style of coding rather than File New | Facebook App.

Better?
Friday, December 14, 2012 2:10:33 AM UTC
Where can I get BuildClips app source code?
Friday, December 14, 2012 11:07:53 AM UTC
Unlike one of your other commenters I'm really pleased there will be an MVC Facebook Application template. I've just been asked to do a Facebook app for my company and anything that makes my learning curve that bit easier is a plus in my book.
Matt Law
Friday, December 14, 2012 11:59:56 AM UTC
Do we know if inline count is supported in the RC?
Mat McLoughlin
Friday, December 14, 2012 1:36:33 PM UTC
Once the 2nd update is released, do you know of any books in the making to cover the new features ASP .Net can do? My InstaPaper page is getting bogged down with all the individual blog posts I spot. For instance I have a Wrox MVC3 book that I worry is out of date to refer to if there are improved methods but there's no single source I can find online for all the current features of VS2012 and I want to ensure I use the best tools/methods possible in my projects.
Friday, December 14, 2012 2:39:33 PM UTC
Scott, Are you aware of any articles on how these changes will affect server administrators? We work in a locked down/default deny environment. As developers gain access to these bits that are automatically included in the new templates (e.g. Newtonsoft, system.web.razor, webgrease) we have to ensure that they are granted appropriate permissions and there are no security vulnerabilities introduced by these assemblies. Since some of these are open source and not owned by Microsoft does Microsoft check these assemblies before they are included in the new web project templates to ensure there is no inappropriate code? It seems like this will become more maintenance intensive in the future so I am trying to get a plan in place now on how we will have to deal with the new Microsoft methodology.
Jay
Friday, December 14, 2012 2:59:41 PM UTC
Great work! I love the knockout intellisense. I noticed that it does have support for custom bindings as well, but it seems that you have to have the script file included via a normal script tag in the page. I'm using requirejs to load my scripts into a single page application. While working with each of the separate html template files I won't get this intellisense unless I add the script tag to the template. Is there a way around this?

Thanks again.

Derek
Derek
Friday, December 14, 2012 4:20:52 PM UTC
Any updates on SignalR's support for multiple web servers, load balancing, fail over, etc? Would love to use it but can't until these things are figured out.

Perhaps Microsoft should make a Windows Azure role for it that you can easily just deploy?
Friday, December 14, 2012 4:23:07 PM UTC
Like the direction. Like what you're doing but I need walkthroughs on this new stuff to absorb it. The doc on the site doesn't have any except the Facebook tutorial. I can't tell what's new in WebAPI for instance or how to make use of it. Need more tutorials and walkthroughs.
Friday, December 14, 2012 5:44:57 PM UTC
What about using this asp.net tool in vs 2010?
Olabamiji Taiwo
Friday, December 14, 2012 6:06:35 PM UTC
Rik - Books, likely not. Perhaps we can do an ebook, but we are keeping http://asp.net/vnext up to date as new stuff comes out and I continue to do small 5 min videos explaining new features.
Friday, December 14, 2012 6:10:26 PM UTC
Jay - Great question. They are open source but they are run through the EXACT same security protocols and internal processes as ANY other line of code. There's a difference between "SignalR the open source project" and "Microsoft SignalR the totally supported product from Microsoft." Make sense?

Another example...you likely use Chrome and you know it's open source. But you hopefully know that Chromium is open source and Chrome is the Google "instance" of the Chromium open source project.

This help?
Friday, December 14, 2012 6:12:36 PM UTC
Sam - Yes, this is an RC but there will be walkthroughs, videos and docs as these features are completed.

Olabamiji - You can check out Web Essentials for 2010 but for the most part there will be no new features for 2010 as we're focused on 2012.

Matt - What's holding you back? SignalR has (and has for a while) supported multiple web servers, pluggable backplanes, SQL, Redis, Service Bus, etc. It also works great in Azure, now.
Friday, December 14, 2012 6:26:14 PM UTC
Zao - Yes, this has a Go Live.
Friday, December 14, 2012 9:32:58 PM UTC
In the future we want to make it so you (or any OSS project or corporation) can make your own VERY easily shared templates so you can say File New | Mike's style of coding rather than File New | Facebook App.


Can you direct us to where the design discussion for this is happening? Also, my search for the tooling source code came up empty. Is the tooling open source or extensible so that we can create our own shared templates?
Friday, December 14, 2012 10:29:15 PM UTC
Hey dude, I am sure you get inundated w/ emails so I will make this short. Please excuse the bitching but Balmer doesn't have an available email address and so you're it. I am dying here. Trying to get up to speed with Widows 8 development, doing the whole Javascript MV* thang. From my vantage point KO ain't it - it's Backbone baby. But our community has nothing as far as deep examples, you know associated models etc, Everything is Rails. I cannot find one decent MVC 4 Web API example out there using Backbone that doesn't deal with models beyond classes w/ primitive properties. What's with that? That ain't real world. I post to Stackoverflow asking for ANY link to a MVC 4 Web Api Backbone examples with nested models and those geeks shut down my question down as unbecoming of the QA guidelines.

Scott, Rails community is kicking our asses here. Where the frig is MS community on Backbone examples? Dude, please, start churning the wheels in Redmond. Thanks, Ed.
Ed
Saturday, December 15, 2012 9:39:19 PM UTC
Hey I tried the new mobile features in webforms I have windows 8 so I installed windows phone 8 so I could view on emulator after a day of searching the web to get info on how to configure the emulator so it would work I created a web forms app and tried to browse to http://localhost:50556/default.aspx I get We're having trouble displaying this page I tried searching for an answer there doesn't seem to be one out there any ideas maybe you could do a blog post on how to get it all working
Sunday, December 16, 2012 1:08:11 AM UTC
Thanks Scott. Great features and love the progress with SignalR. I just blogged a walk through of the RC version of the SPA template. I think this template is a great starting point for developers new to SPA.
Sunday, December 16, 2012 6:30:33 AM UTC
If I was to install this and, for example, make use if the new Web API functionality - what would the impact be on other developers in my team that didn't upgrade? Would it still build or would they need to have the tooling installed too? I don't normally like to install RC versions but if it really is tools only then I don't mind. Where is the line between tooling and library/binary updates in this release? What can I use safely?
Tom Robinson
Monday, December 17, 2012 4:08:07 AM UTC
Ahh, Web Essentials, the perfect "labs" component for MS to steal features and roll them into their core product, once again crippling the community and companies that support Microsoft.
Monday, December 17, 2012 3:58:59 PM UTC
Hey Scott - I'm not sure if you've had any feedback concerning VS 2012 freezing with this update, if not, then consider this the first report. I had to uninstall it after 30 minutes as it would freeze VS when trying to edit knockout data-bind attributes. It would lock up for up to 2 or 3 minutes at a time. It would also peg the CPU to about 35% (dual core) but memory would creep up slowly. I'm running the following:

- win 8 x64 enterprise
- VS 2012 + update 1 (final)
- R# 7.1 (final)
- Web Essentials 2.0

I grabbed a minidump during one of the freezes; I'll take a look at the stack later and see if it shows anything interesting. Right now though, middle of project delivery... (yeah, yeah, I shouldn't be installing prerelease s/w during crunch time - mea culpa)

Cheers

-Oisin
Monday, December 17, 2012 4:14:05 PM UTC
Hey Scott,

I'm trying to create Upload function in ASP.NET MVC 4 Mobile Application (An ASP.NET MVC 4 project for mobile devices).

I have no luck, but same code works for "Internet Application" project type.

Post returns null for HttpPostedFileBase, always.

Are there any limitations with Mobile Application templates?

I am sure you can reproduce this issue by creating a new Mobile Application. I am using VS2010 Ultimate .NET ver 4.0.30319 SP1Rel

Thanks in advance for any information you can provide.

Regards,
Prasad




Monday, December 17, 2012 4:40:54 PM UTC
oh... addendum - I'm also using TypeScript 8.1.1; but that aside, I see that the hang is in javascript language services. I'm guessing tinkering with the data-bind must be trying to give me intellisense, but I have the following "full debug" (i.e. not minified) scripts in scope:

- jquery 1.8.3
- knockout 2.2
- datajs 1.1.0
- toastr 1.0
- jaydata 1.2.5 (this is about 18,000 lines - it crashes VS outright when I try to view it - yikes!)
- jaydata providers (odata, sqlLite)
- jaydata generated entity context (jaydata - couple of hundred lines)
- Sammy 0.7 / Sammy.handlebars
- handlebars 1.0rc

This is quite a lot of script. I suspect it's overloading the language service. I just had it freeze again when trying to change the knockout bindings - this time for 7 minutes. It would be nice to be able to turn these things off, a la VS productivity tools.

A quick estimate gives me about 45,000 to 50,000 lines of JS code. I'll try swapping out for some minified libs and see if it helps...
Monday, December 17, 2012 4:47:50 PM UTC
Ok, I swapped out the majority of those libraries for the minified versions and the freezing has stopped. I guess that was it! I'll report back if anything else crops up.
Monday, December 17, 2012 5:11:16 PM UTC
Drat. Spoke too soon - it's freezing again. Sorry, I'm treating your comment forms like twitter, but I figure this is useful to others possibly in the same position. I'll dig more.
Monday, December 17, 2012 6:11:43 PM UTC
Oisin - I'm going to try to get you some answers from Mads and the JS team. THANK YOU for these reports. This is why we have RCs!
Monday, December 17, 2012 6:52:39 PM UTC
Cheers Scott - btw, as an aside, the VS crash I get when trying to navigate through jaydata.js alone is a stack overflow in CLR.dll. Delicious.
Monday, December 17, 2012 7:30:35 PM UTC
Scott,
Seems this update has caused my Visual Studio to crash anytime I try and build my project. If I disable the Web Essentials 2012 extension, it no longer crashes. Took me a while to figure out which extension was incompatible. Even tried the WE 2012 Nightlies, still no go.
Robert McKee
Tuesday, December 18, 2012 3:54:41 AM UTC
I see that it does not alter the GAC.. so how do I solve the problem with my MVC4 WebAPI web giving me the following error?:
Method not found: 'System.Web.Http.Controllers.ServicesContainer System.Web.Http.HttpConfiguration.get_Services()'.
Donald Adams
Tuesday, December 18, 2012 10:51:28 AM UTC
Just FYI I experience the same freezing problem that Oisin describes on HTML pages that contain knockout bindings.

VS locks up, processor load increases to ~25%. Sometimes it recovers after ~30-45 seconds, sometimes the only remedy is killing the process.

And if I might also sneak in a feature-request: would it be possible to add outlining for knockout "regions", e.g.:

<!-- ko if: someCondition -->
<div>
... some very extensive block of markup
</div>
<!-- /ko -->
Thursday, December 20, 2012 11:43:45 PM UTC
Microsoft doesn't care about it's developers - it's all money for them - do yourself a favor, learn PHP, Rails, heck anything other than Microsoft.

The open community is anti-Microsoft for a reason. Microsoft offers NO SUPPORT to it's developers with new technology.

Microsoft is a follower, not a leader. Nothing Microsoft does for any innovative reason. Microsoft only does for one of two reasons: to make money, or because the other communities are leaps and bounds ahead.

If you are under the age of 30, do not learn one blessed MS developer product: forget Visual Studio, forget Knockout, forget MVC4, forget Entity framework, forget Signal R.

Steer clear of MS, learn from the open community, stay away from anything that is Microsoft; your career will go farther.

Signed
Truly, a disappointed Microsoft Certified Program Developer.

PS: Ching ching Scott, right? That is what it is all about, right dude?
Joe Fed Up
Monday, December 24, 2012 3:32:27 AM UTC
Joe - Sorry you feel that way. I only promote and work on what I believe in. I work on Open Source at Microsoft and have made great strides. I don't need the job or the money, so I'm a little offended at the "cha ching" comment. My record is well documented.
Monday, December 24, 2012 7:20:44 AM UTC
Hallo Scott!
Awesome stuff

I have been working in the business intelligence arena for several years and recently started working with Asp.Net MVC 3, Razor and those Telerik MVC extensions. All this makes me quite keen to see the newer MVC framework!

Regards,
Ian
Monday, December 24, 2012 3:04:53 PM UTC
Scott,

Ignore Joe. Obviously the guy has a chip on his shoulder about something else. You and this blog are evidence of how much better the world for MS developers is these days.

I do have a question. When the release is official, what's involved in upgrading? I am watching these rapid changes with great interest, but had some trouble with the BUILD preview, and so am just a tiny bit gun shy. Since this is mostly tooling, will it just overwrite the RC, or will we need to do a deinstall or something?

Excited to try out that SPA template.

Thanks
Jason
Monday, December 24, 2012 7:51:37 PM UTC
I'm experiencing the same freezing problem that Oisin describes on HTML pages that contain knockout bindings. Unfortunately, VS doesn't seem to return even after 2-3 minutes (although I'll try waiting again) and I'm having to kill the process, start again and try to avoid the problem.
Daz Wilkin
Tuesday, December 25, 2012 10:45:56 AM UTC
This is great I like the path you are following ... I had no time to read your post before but this is a good Christmas gift for .net Web Developers
dacanetdev
Wednesday, December 26, 2012 6:19:03 PM UTC
gonna wait a while until the cake is fully baked, out of the oven, and cooled down

:)
John A Davis
Wednesday, December 26, 2012 8:57:30 PM UTC
Scott, I'm head over heels for what the team has been doing with VS 2012 Web Essentials and 2012.x releases. The SPA template provides a solid structure that I will glean from in my current project. Thanks for all your hard work and evangelism for us MS stack developers.

Merry Christmas and Happy New Year to all my VS brothers and sisters.
Tuesday, January 01, 2013 11:30:19 AM UTC
Hey Scott,

the Facebook templates right now only support the canvas application type. Is there any plan for supporting regular (self-hosted) ASP.NET applications that use the Facebook API?

Where can I submit such feature proposals? Would the ASP.NET team take such source code contributions from outside?
oliver klemencic
Friday, January 04, 2013 3:37:22 PM UTC
To anyone else with the "freezing when editing html with knockout bindings" problem - I'm still getting it constantly in the final release of update 1. Please comment here if you experience the same thing. I've gotten a dump file and stack trace to the Microsoft developers so I'll post back here and maybe Scott could blog officially if the bug is found and recognized.
Friday, January 11, 2013 1:43:17 AM UTC
Robert McKee, this is now fixed in Web Essentials 2.3 that was released 3 minutes ago.

See change log: http://vswebessentials.com/changelog
Friday, January 18, 2013 2:26:01 AM UTC
Very good post. I absolutely appreciate this website.
Continue the good work!
Saturday, February 02, 2013 9:36:55 AM UTC
I'm using Visual Studio English version with 2012.2 on Windows 8 Chinese version.
While pasting json as class, Visual Studio prompts:

---------------------------
Microsoft Visual Studio
---------------------------
The culture 'Chinese (Simplified, PRC)' is not supported. Pluralization is currently only supported for the English language.
---------------------------
确定
---------------------------

How to deal with that?
victorwoo
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.