
Node.js Tools for Visual Studio - mousetraps
http://blogs.msdn.com/b/visualstudio/archive/2015/03/25/node-js-tools-1-0-for-visual-studio.aspx
======
tdicola
This is great news, but aren't there bigger fish to fry with really supporting
node.js & npm on Windows? The 255 character path limit bug has been around for
a long time and still unresolved/broken on Windows (see
[https://github.com/joyent/node/issues/6960](https://github.com/joyent/node/issues/6960)
and
[https://github.com/npm/npm/issues/5641](https://github.com/npm/npm/issues/5641)).
Suggestions to fix it on the Windows side have been closed too:
[http://visualstudio.uservoice.com/forums/121579-visual-
studi...](http://visualstudio.uservoice.com/forums/121579-visual-
studio/suggestions/2156195-fix-260-character-file-name-length-limitation)
Would be nice for people to stop throwing it around like a hot potato and fix
it for good. Although it sounds like an edge case, it's actually really common
for some libraries to his this limit and be unusable on Windows.

~~~
xenadu02
MAX_PATH is the gift that keeps on giving __.

Thanks to Microsoft's fanatical dedication to compatibility I don't see how it
will ever get fixed. I think they could take a lesson from Apple here and have
DLLS/EXEs contain SDK versions against which they are built, then mandate that
Windows 10 apps must support a larger MAX_PATH. Of course if they were into
learning lessons, they'd have done fat binaries so a single install could
easily support 64-bit and 32-bit (or a single DLL could contain 64-bit and
32-bit versions).

 __For those not in the know, MAX_PATH and PATH_MAX (ugh) are defined in the
Windows headers as 255. Because it was public people copied that constant and
spread it around. So many apps and libraries out there are hard-coded to
expect 255 that even if you change it in the Windows headers a million things
will still be broken.

Even if you overcame that limitation, you'd have a situation where paths no
longer worked reliably if they got passed around (or worse, long paths would
trigger buffer overflows in poorly written apps and drivers).

You could fix it by passing apps not declared as large-path aware a shortened
virtual path but the testing/edge case burden would be enormous.

So this is an example of a really quick decision one programmer probably made
by themselves many years ago that we are forced to live with because the pain
of changing it is too great compared to the benefit we'd receive.

~~~
ygra
MAX_PATH is a #define, so it just gets literally substituted when compiling,
there is no need for people copying it. After compilation it effectively is a
hard-coded constant, indistinguishable from literally writing 260 (it's not
255).

------
thebouv
Gotta hand it to Microsoft.

Behind the times on web dev for so long, now busting out open source left and
right, teaming up on Angular with Google, jumping on with nodejs, modernizing
their tools, "gently" pushing locked in MS web devs out of the darkness of
that Web Forms madness into the light of real web development.

I've always been a LAMP stack dev but they have at least caught my attention
as of late.

~~~
AdeptusAquinas
>"gently" pushing locked in MS web devs out of the darkness of that Web Forms
madness

Minor nitpick on your otherwise positive comment, we have been using ASP.NET
MVC for almost ten years now (ok eight). Webforms have long been a thing of
the past, at least in the circles most devs I know move in.

~~~
boldrikboldrik
I think it's think of past on new projects, but old and intranet project still
use Web Forms. For me it's (unluckily) still most of my work.

~~~
pionar
I work on a 12 year old application that's still current, and we're just now
making the transition from web forms to MVC in that application. It's so nice
that MSFT has a big eye toward backwards compatibility, allowing web forms and
MVC in the same project.

------
mousetraps
Dev here - happy to answer any questions you have :)

~~~
MichaelGG
Wow this looks pretty amazing!

How do you handle the super-long paths npm is so fond of? On Windows I often
run into issues when searching or trying to manipulate a solution containing
anything npm due to too-long paths.

~~~
AdeptusAquinas
I have run into this problem as well. Manually modifying packages is not fun.

~~~
mousetraps
See my comment above, but if you do this frequently... we have a feature that
enables you to right click on an installed npm package in the npm tree in
Solution Explorer and open the relevant folder in explorer

------
babby
I was really excited about Visual Studio for a chance at Coffeescript
intellisense, however I learned after the several gig download it wasn't
supported. It seems there is basically no way to get proper autocomplete in
any editor for CS, suggesting maybe I should just consider Babel for ES6/7
despite my massive love for CS and giant projects built in it.

~~~
jongalloway2
Have you tried the (free) Web Essentials extension? It adds CoffeeScript
support to Visual Studio, as well as a lot of other useful webdev features.
[http://vswebessentials.com/features/coffeescript](http://vswebessentials.com/features/coffeescript)

------
cabirum
I remember a bunch of problems have been discussed earlier [1] concerning
node.js on Windows, such as file-system path length limits and broken symlinks
and lack of modules actually tested on Windows.

That was almost a year ago, so how do the things stand now?

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

~~~
airtonix
windows not being a priority won't change, because windows as a deployment
target is pretty much a joke.

I mean... desktop environment on your application server ... lol?

There's so much friction legality and culture wise to getting a windows server
to spin up, get developers to use good practices, encourage automation and
resusability...

~~~
BinaryIdiot
> windows not being a priority won't change, because windows as a deployment
> target is pretty much a joke.

I take it you haven't done .Net development? It's incredibly easy though
Docker and similar tech wasn't developed for Windows so some of that has
lagged behind.

> I mean... desktop environment on your application server ... lol?

This is a pretty old way of thinking; it's simply another way of managing your
application server. This really isn't a big deal anymore.

------
Scuds
Congratulations, guys! I've been following this since node tools since
Hanselman's post
[http://www.hanselman.com/blog/IntroducingNodejsToolsForVisua...](http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx)

------
matthewowen
I know this doesn't really mean anything, but it's kinda funny that this is at
v1.0, but node.js is at version 0.12.1

~~~
twerquie
It does mean something, that Node.js has a backwards version numbering scheme.
That's one of the first things the io.js people corrected in their fork (they
are strict semver and started at 1.0.0).

------
indymike
Honestly, it's good to see a lot of .Net developers getting to see some
sunlight. A lot of really interesting things have happened in JavaScript land
over the past few years, and there are a ton of really good programmers who
have been in .Netland for far too long.

------
itsbits
If they free up the developer license, MS will get lots of Apps in for their
phone versions as well..They are already supporting javascript for native
apps..

------
ed_blackburn
Superb stuff. Now time for MS to help getting io.js working on Windows. With
confidence.

~~~
orand
What are the issues with running on Windows? These tools support io.js
[https://nodejstools.codeplex.com/wikipage?title=io.js](https://nodejstools.codeplex.com/wikipage?title=io.js)

~~~
ed_blackburn
There have been some intermittent Windows issues:
[https://github.com/iojs/io.js/issues/1005](https://github.com/iojs/io.js/issues/1005)

Not Microsofts problem.

------
nickysielicki
How many people do you think will actually use this?

I just really cannot ever see mass use of azure and visual studio in the web
ecosystem. The people writing nodejs code are all using vim and unix, and
you're asking them to give up their workflow and change operating systems. I
want to be able to poke around in bash. (edited back in)

Sure, some people new to web programming might go this route. But the _next_
big web framework certainly will be on unix first. MS is now in this perpetual
state of trying to keep up, and I just can't imagine why anyone serious about
web programming wouldn't be on *nix.

~~~
untog
_The people writing nodejs code are all using vim and unix_

No they aren't, that's just your perception because you are surrounded by
those that are.

AFAIK Windows Node developers are still a minority, but that doesn't mean
they're not a sizable group of people. A lot of code is written in corporate
environments in C# and Visual Studio - adding Node to that mix is a sensible
bet on Microsoft's part.

~~~
nickysielicki
Yeah I was being hyperbolic, but my point still stands. The LARGE majority of
developers have accepted unix as their overlord, and that poses a huge problem
to microsoft as they're a second thought. They're forced to try to fit new
frameworks into their ecosystem, rather than on unix where developers expect
it to run.

I see it ultimately as damage control. With the overwhelming majority of
developers on unix, you're not going to see microsoft hang out in the server
market for very long. I think they'll hang onto the office crowd, but nothing
on the backend.

This, of course, is just the opinion of a 20 year old unix nerd, who became
one because his father is a microsoft fanboy. I rebelled in my teenage years
by infuriating my father and installing linux. I still think I raise some
valid points.

~~~
WorldWideWayne
What evidence do you have that the majority of developers are on Unix? Just
web devs or all devs?

I doubt that it's true in either case. IT departments around the world employ
programmers to make all sorts of business apps including internet/intranet web
apps. Even some very small companies have custom apps to do business and the
vast majority of businesses are using Windows.

~~~
joshuapants
There seems to be a common thread on HN of people assuming that trendy
startups are the entirety of the software industry.

