
Node.js Tools for Visual Studio - ambuj
http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx
======
gum_ina_package
Seeing things like this gives me hope that one day Windows will be a first
class os for web development. Now if I could just maximize the command prompt
window....

~~~
abrichr
ConEmu [1] has made CLI on Windows much more tolerable for me.

[1] [http://code.google.com/p/conemu-
maximus5/](http://code.google.com/p/conemu-maximus5/)

~~~
shadowfox
Conemu with powershell and PSReadline [1] has made things a lot nicer.

[1]
[https://github.com/lzybkr/PSReadLine](https://github.com/lzybkr/PSReadLine)

------
talles
This is a BIG step to make me switch to Windows. Debugging Node.js just like
C# is really awesome (no brainer breakpoints and inspection:
[https://www.youtube.com/watch?v=W_1_UqUDx2s](https://www.youtube.com/watch?v=W_1_UqUDx2s)).

This plus a decent shell would definitely make me switch (I hate PowerShell).

~~~
smortaz
thanks talles. note that you can debug from VS to Linux with NTVS. here's the
debugging video:

[https://www.youtube.com/watch?v=-ir9ZB8lUg4](https://www.youtube.com/watch?v=-ir9ZB8lUg4)

~~~
iaskwhy
I haven't tried but there's probably no reason this won't work with Ubuntu
installed on a Vagrant VM. Which is exactly how I develop nowadays from a
Windows machine. This is crazy!

------
corysama
I'm a big fan of Python Tools for Visual Studio
([https://pytools.codeplex.com/](https://pytools.codeplex.com/)). Assuming
Njs4VS lives up to it's predecessor, it could be a truly wonderful tool.

~~~
stinos
exactly. Honestly, mixed mode debugging made me drool first time I used it.

------
jbigelow76
I like this. I smuggled Node into our company to suplant a very difficult to
test/debug WCF process and it's slowly been creeping out into bigger use
cases. I've tried using VS for managing my Node scripts but it just wasn't a
very elegant fit given VS's concept of projects and solutions so I kept
falling back to Sublime. I'm excited to see if I can finally maintain just a
single editor for both my .NET and Node code.

~~~
_random_
Why not Web API and SignalR?

~~~
jbigelow76
I like Web API a lot and would have no problems using it more. I've never
messed around with SignalR, I had already started playing with Node at that
point.

As I mentioned, but didn't elaborate on, in my first post I had an urgent need
to fix a production problem as quickly as possible. But the service giving us
the problems was opaque, and encumbered by these massive 100+ project .NET
solutions that had grown unwieldy for rapid development.

Being able to kick VS+TFS and their ceremony to the curb and hack out a
solution with Node and Sublime Text was liberating. But it wasn't really VS I
had a problem with, it was paying the price for years of technical debt.
That's why I'm excited, I still think VS is a great IDE for my .NET work.

One other final reason I wanted to use Node was because I felt for someone
that considered himself to be a "web developer" I was abnormally shitty at
javascript and wanted to know it better :)

~~~
_random_
Sounds reasonable :). Although I dread imagining a JavaScript equivalent of a
"100+ project .NET solutions" built in spirit of "rapid development".

~~~
pjmlp
I do like dynamic languages for quick prototypes, but my experience on the
scale of enterprise projects and their code quality, just increased my
preference for static typing for production code.

~~~
DrJokepu
Basically the important bit to remember when using dynamic languages in
production is that you have to be extremely serious about writing (good)
tests. It’s easy to get lazy when using a statically typed language as the
compiler will do much of the work for you (especially if you take full
advantage of the type system’s features). You can’t get away with that when
writing e.g. JavaScript.

~~~
pjmlp
That is exactly the main problem.

Enterprise developers don't write tests if their managers don't force them to,
gets specially hairy when you have multiple consulting companies across
multiple sites.

So you get JavaScript/Ruby/Python code with zero tests.

No sane people tries to refactor such code.

------
smortaz
thanks ambuj for submitting. i work on the team & will be around for a couple
of hours in case folks have any questions. would love to hear your feedback...
cheers.

------
joshguthrie
This is the kind of thing that makes me want to switch back to Windows.

I like VS since I've been using it to develop a C# app these last two months.
I miss a lot of things because I'm too deep in CLI usage (like git...help
me...), but had I had it when I tried to play with Ruby on Windows 7 three
years ago and discovered the pain of the windows CLI, maybe I would've stayed
there.

These Node.js tools are especially great. I spend a lot of time on CLI running
my app, installing a module, watching my dev logs,... I couldn't ever imagine
anyone using node.js on windows. Now I can and it looks great.

~~~
pjmlp
Let me guess, you used plain cmd instead of PowerShell.

~~~
joshguthrie
True. I had used cmd for about 15 years before that, so while using "cd" or
"dir" and the classic lingo was okay, doing everything rails-related in CLI
just felt..clunky: "why would you have such a bad interface? EasyPHP does
everything just fine with a GUI!". Had I known CLI could be more intuitive
(hello pipes!), I'd have looked up for a better alternative sooner =)

~~~
w0rd-driven
RailsInstaller does a really good job now. Windows now feels second class but
that's much better than 4th-5th-good luck getting anything to run. I see more
people in the #RoR Irc channel admit to using windows so its gaining traction.
I don't think it'll ever be 1:1 and I have a Linux host for a reason but it
isn't a jarring experience anymore for sure.

------
LeafyGreenbriar
For Mac or Linux noders who would prefer an IDE to a simple editor + command
line tools, IntelliJ with the Node plugin is pretty good. It has code assist
and debugging built in, and IntelliJ is just generally a very good IDE.

Edit: WebStorm from the same company (JetBrains) is cheaper if you don't need
all the java tools support.

------
mmgutz
I'll admit I'm one of those who whined about nodeJS targeting Windows. Windows
is starting to look more and more like a first-tier nodeJS platform with help
from Microsoft! Can't wait to try this out.

How about a little golang love in Visual Studio?

------
Touche
Very nice, will help Node break into the enterprise.

~~~
taude
Microsoft's definitely giving NodeJS some credibility to enterprise shops

~~~
_random_
I hope they will understand when is the good case for using it. I wonder which
kind of enterprise would need a high-load web site as opposed to a high-
performance one?

~~~
jbigelow76
You don't have to use it for a website, it makes a great inter-service
communication channel.

~~~
taude
I was going to almost reply with this exact comment. I'm not even convinced
that everyone trying to build websites with Node/Express is onto something. I
think of it more as a back-end SOA-thing.

------
MilesTeg
This looks really cool. Is there a way to have Node.js tools work with
TypeScript?

~~~
smortaz
thanks! we're hoping to add TS for Beta.

------
tehsuck
Have fun using npm with MAX_PATH.

------
Xdes
I wonder how this compares to the Visual Node[1] plugin by Redgate.

[1] [http://www.visualnode.info/](http://www.visualnode.info/)

~~~
smortaz
visualnode was a fork of
[http://pytools.codeplex.com](http://pytools.codeplex.com) and they've joined
the NTVS project (which is also forked from the same source). Bart Read from
red-gate did the npm GUI for NTVS in fact. they stated that they'll shut down
visualnode.

~~~
Xdes
Just got the email.

\---

Firstly, thanks for signing up for the beta of Visual Node, and trying out the
tool. Your feedback has been incredibly helpful to us.

Today we have a very exciting announcement for you. Since the summer Red Gate
has been working with Microsoft on a free, open source Node development
environment for Visual Studio called Node Tools for Visual Studio (NTVS).
We've just released the first public alpha of NTVS, which you can download
from:

[https://nodejstools.codeplex.com/](https://nodejstools.codeplex.com/)

NTVS offers what we believe is a much richer development experience than
Visual Node, including:

Various Node project types, IntelliSense and editing, Debugging, including
remote debugging on Linux, Profiling, npm, Azure deployment, Support for both
Visual Studio 2012 and 2013

In addition you can create NTVS projects based on existing code, making it
easy to upgrade from Visual Node to NTVS. Please see [https://www.simple-
talk.com/blogs/2013/11/22/node-js-develop...](https://www.simple-
talk.com/blogs/2013/11/22/node-js-development-in-visual-studio-life-after-
visual-node-with-node-tools-for-visual-studio/) for more information.

If you have any feedback we'd love to hear from you. You can report bugs or
improvement requests at
[https://nodejstools.codeplex.com/workitem/list/basic](https://nodejstools.codeplex.com/workitem/list/basic),
whilst support and general feedback/discussion is available at
[https://nodejstools.codeplex.com/discussions](https://nodejstools.codeplex.com/discussions).
Please do vote on the bugs/improvements you'd most like us to work on.

I'd like to take this opportunity to thank you again for participating in the
Visual Node beta program. As I said, your feedback has been very helpful, and
continues to influence the development of NTVS.

If you have any questions about anything in this email please do post to the
discussion URL on Codeplex - we'd love to hear from you.

Kind regards,

Bart Read NTVS Contributor Red Gate Software
[https://nodejstools.codeplex.com/](https://nodejstools.codeplex.com/)

------
fro
Seems like overkill. Part of why Node is great and so easy to get started with
is that all you need is a browser, a text editor, and the terminal. I suppose
for people that already use VS this is good, but maybe we should encourage
them to write Node apps outside of that environment instead of shoving Node
into a giant IDE.

~~~
int_19h
There's more to development than a text editor, though. Sometimes you do want
debugging. And maybe you want syntax highlighting in your REPL. And, perhaps,
you'd like some profiling to figure out how to make your Node app run faster.

~~~
fro
Yes, and most of those things are already available as modular open source
tools that fit well in the Node ecosystem. Encouraging people to use one
giant, closed, monolithic program for all of those purposes is not a good step
forward for Node.

~~~
jbigelow76
I think you are failing to make the distinction that the Node community isn't
encouraging devs to use Visual Studio; Visual Studio is helping its community
to use Node.

------
legacy2013
This is great, I've been playing around with node and express recently and
just using notepad++, I'll be integrating it into my VS environment when I get
home

------
polskibus
Great, I wonder when will they release the standalone version!

~~~
smortaz
great idea - just created a request for it. please upvote!

[https://nodejstools.codeplex.com/workitem/520](https://nodejstools.codeplex.com/workitem/520)

------
jayvanguard
Here's a nickel, kid. Get yourself a real OS.

------
evanmoran
This seems useful for the profiling alone.

~~~
shanselman
The profiling will only get better. Right now it profiles everything, but it
could potentially be scoped down to "just my code." Plus, it's a sampling
profiler as it is so you will need to push some real traffic to work hot spots
(as opposed to just browse and click around) in order to get results.

What's cool about it, IMHO (I wrote the post above) is that it takes the V8
profiling stuff and feeds it into the VS visualizer...as it should.

------
blahbl4hblahtoo
Wow, for an alpha release that's pretty impressive. Node seems to be really
taking off at MS...parts of Azure are built with it...some really large parts
of Azure.

It's awesome that they didn't screw with Node either to make it run on
Chakra...

~~~
polskibus
Do you have a reference for Azure internals being written in node.js? I'd love
to read about it.

~~~
smortaz
i'll try to find out. top my head i know the azure node sdk is all node
(obviously...), all the cross-plat commands/utils are node, skype, yammer,
bing (?), ... all use node to various extents.

some info: [http://www.windowsazure.com/en-
us/develop/nodejs/](http://www.windowsazure.com/en-us/develop/nodejs/)
[https://github.com/WindowsAzure/azure-sdk-for-
node](https://github.com/WindowsAzure/azure-sdk-for-node)
[https://github.com/WindowsAzure/azure-sdk-tools-
xplat](https://github.com/WindowsAzure/azure-sdk-tools-xplat)

~~~
pjmlp
TypeScript also uses node.

~~~
yareally
TypeScript uses npm as a package manager yes, but there is unfortunately no
support for using Node within TypeScript yet on Visual Studio. There are
definitions for node/express/etc, just cannot compile them directly in Visual
Studio and also have debugging (unless the linked package in the OP has
changed that).

~~~
pjmlp
I should have been a bit more specific, Microsoft could have used any language
to build the TypeScript compiler.

They took however the best solution by bootstraping it in JavaScript and using
node for the process.

Just correct me if I am wrong.

~~~
yareally
Looks correct to me and makes the most sense to build the tools in the
language TypeScript compiles to. On another note, it would appear they will be
adding TypeScript support in the beta[1], which makes me very happy.

[1]
[https://news.ycombinator.com/item?id=6777360](https://news.ycombinator.com/item?id=6777360)

------
jokoon
nooooooooo

(downvote me)

