Compile TypeScript in ASP.NET 5 application using grunt-typescript

Today was a big day for entire .NET Framework community. So much amazing stuff announced on VisualStudio Connect(); even in NY: open sourcing Core .NET Framework code (including CLR, JIT, FC, BLC and more), Visual Studio 2015 Preview with free and extensible Visual Studio Community Edition, new Visual Studio Online features and more. Also quite a few announcements connected to ASP.NET 5. The new version of ASP.NET, known before as ASP.NET vNext, that will revolutionize the way people create Web Applications using .NET Framework stack. Particular feature I’d like to focus on today is great integration with Grunt – JavaScript task runner that can be used to automate routine development tasks, e.g. compiling LESS/SASS files to CSS, CoffeeScript/TypeScript to JavaScript and more.

Official ASP.NET 5 documentation contains a tutorial how to use Grunt to compile LESS files to CSS style sheets on the fly every time you build your app. I’ll should you how to use the same task runner to compile TypeScript code to JavaScript as part of your app build process.
Continue reading

Better TryParse method, when you don’t like out parameters and/or need default value

How many times in your code do you need to parse strings to primitive values? I would guess pretty often. How often do you use TryParse method, to avoid unnecessary exception handling? The same guess – probably pretty often. How many times did you wish that TryParse didn’t use out method parameter? Yes, the same answer again. But how many times did you think how to improve that scenario? Probably never. I think you should have done that! There is quite a lot of room for improvement here. Simple tricks that may make your parsing logic much simpler, cleaner and more verbatim.
Continue reading

Improve Code Fix performance using correct CodeAction.Create overload

In my previous post I wrote about solution-wide Rename Code Fix using Roslyn, which is supposed to analyze method declarations and suggest a fix when method marked with async modifier does not have a name that ends with Async. The code I suggested works just fine, however there were some comments about improvements that can be made to make it work better. In this post I’m trying to address one of the suggestions, what results in seconds version of AsyncMethodNameAnalyzer and AsyncMethodNameFix.
Continue reading

My first “Diagnostic with Code Fix” using Roslyn API

I think everyone already knows that during //Build conference Anders Hejlsberg announced that Roslyn API (renamed to .NET Compiler Platform) is now an open source project (he actually clicked Public button live, on stage). It’s really a great news. But even though a lot of people think that main purpose of that move is to allow everyone to make his own version of C#, I don’t think that’s true. I think the main purpose of Roslyn project is still the same – to provide modern and open compiler infrastructure which will make extension development much easier, because extension code now knows exactly the same stuff compiler does. Because of that I decided to give it a try and write simple Diagnostic with Code Fix.
Continue reading

ASP.NET Identity 2.0.0 – UserName and Email separation

The release of new version of ASP.NET Identity – ASP.NET Identity 2.0.0 comes with new sample project, which shows how all the new features like email confirmation, password recovery and two-factor authentication can be used while creating web applications. However, the new sample follows an approach which sometime is not acceptable: it uses an email address as user name. In my case, I need these data to be separated, and that’s why I decided to modify sample project to allow that.
Continue reading

Folders in F# projects. How to do it? What to avoid?

I’ve been working on a new feature for Visual F# Power Tools extension, which would creating and maintaining folder structure within F# projects. I have to admit, it was not a pleasure to dig into VS SDK and try to get it working. The most annoying part: part of SDK related to Solution Explorer still uses COM interfaces… Second most annoying part: Solution Explorer complaining about completely correct project structure…

But anyway. The more I dig into it, the more weird behaviors I experienced. And because I don’t think I’m the only one struggling with folders in F# projects – there are couple questions on StackOverflow about this (like here and here) – and because there is also a known workaround how to force VS to show folders in your project – just manually edit .proj file – I decided to write about couple of problems you may run into trying to force F# project to contain folders.
Continue reading