Settings

Theme

Node.js Tools for Visual Studio

nodejstools.codeplex.com

104 points by GravityWell 12 years ago · 69 comments

Reader

smortaz 12 years ago

(group lead here) Thanks GravityWell for posting.

We just got done giving a talk on NTVS & PTVS at Build in SF. The reception was great (given this is a primarily .net conference). I did an informal poll of the audience (180 or so), asking whether they were planning on deploying node/python in their enterprise. The response was around 75-85% Yes to both, which was somewhat higher that I had expected.

The cool new feature is this Beta are TypeScript integration, Remote debugging (inc. linux), Edit&Continue (no server restart), free edition (NTVS + VS Express), etc. and numerous bug fixes.

To address a few comments regarding strategy - most are correct, though some are over thinking it a bit :). The project was proposed & started by the PTVS (python) folks, and mgmt was rather lukewarm about it. It was definitely not part of some uber P1 strategy. I wish it was. However, since then it's gained some momentum thanks to the community and it's become important enough that Scott Guthrie mentioned it in his keynote, and Soma (SVP for developer division) just blogged about it.

a few new videos (pls excuse the production, we do our own videos...)

new npm UI (community contributed) https://www.youtube.com/watch?v=AwSzxFY5CMI

twitter sentiment app -- https://youtu.be/9tf6HmG9VAA

remote debugging https://www.youtube.com/watch?v=ZAroJmb6XY4

  • patja 12 years ago

    It is great that the installation works with Express. Much preferable to the approach taken by the Python Tools for VS requiring a separate installation of the bare VS shell. They say they can't enable installation of PTVS on Express because Express doesn't support extensions. I guess you aren't doing NTVS as an extension. Any hope for getting PTVS to install on Express using whatever method you are using?

    • smortaz 12 years ago

      Thx. Happy to report that the restriction is gone. In fact you'll be able to install PTVS in web and desktop express both! Release coming soon.

  • malandrew 12 years ago

    Do you guys do any automated testing of node.js apps on windows hosts via vagrant? The vagrant-windows and winrm gems are woefully out of date and broken on vagrant 1.5.1, so I was wondering how you guys handle testing node.js apps running on windows.

  • _random_ 12 years ago

    So, should we stop learning C#? I mean what's the point with the current "JS is a ubiquitous silver bullet" trend? How does the Project Helios fit in?

  • jimmcslim 12 years ago

    Will this cleanly upgrade to the 1.0 version? I thought about installing the alpha, but was a little bit cagey; I don't know why, I just was...

  • petilon 12 years ago

    Please use Typescript by default.

bananas 12 years ago

Perhaps I'm paranoid but I'm seeing a lot of tentacles extending around a few ecosystems from Microsoft. I see lots of praise but some rational analysis and caution might be worth considering.

For ref, I deal with Microsoft a lot and wrote a ton of c# over the least decade (more than anything else probably) so I'm not biased against necessarily but all-encompassing announcements like the ones over the last couple of weeks make me suspicious.

Edit: to extend my thoughts on this some more:

I don't think we're seeing embrace and extend. I think we're seeing "go on - use our tooling". Once you're in a tool ecosystem it's hard to get out of. I mean really hard. Same goes with cloud ecosystems which neatly integrate with their tooling. Their offering is to host all of your stuff (Azure) and mediate between you and what you're working on (Office/VS/Xamarin potentially).

A fully heterogenous system with a sole vendor mediating your access becomes an interesting situation when for political, financial or legal reasons you want or need to leave.

  • GravityWellOP 12 years ago

    I'm hardly an MS fanboy, and I'm not sure what announcements you're referring to, but it's hard for me to see a downside to this.

  • iamthepieman 12 years ago

    This is as insightful comment and the points you raise may be important for a startup, SAAS or software product company to consider. A lot of organizations use and develop software but aren't software companies.

    "A fully heterogenous system with a sole vendor mediating your access" is a good thing for these companies.

    I do a lot of contract work for state and local governments. They are already fully invested in SQL Server, IIS and Active Directory. For both these organizations and myself as a contractor to them I see the increased openness of Microsoft as only a good thing.

  • JeremyMorgan 12 years ago

    It's a simple game of catch up. These ecosystems popped up and flourished very fast and if anything Microsoft was slow to adapt. They've learned enough hard lessons in their history ignoring emerging technologies and clearly they're not ready to make the same mistake again.

    Just like the ASP stack and it's rapid advancements. They know if they don't start innovating fast they'll be finished.

  • rch 12 years ago

    I don't believe we'll see 'embrace and extend' being applied to Node and Python, which are the two ecosystems I'd be concerned about.

    I'll just welcome the added support, and hope that it leads to better acceptance of my prefered tools in more conservative environments.

jw2013 12 years ago

It's better late than never. It's just easier to say 'I quit' because it's likely none of Node.js developers will switch to using Visual Studio rather than give it a try. Though I probably will never use Visual Studio for writing my Node.js project, kudos for MS not being the old MS.

So what's next for MS? I think they are getting the direction right for opening up for external MS product users, and now it's time to recruit top talent again. There are just too many great hackers think MS is old (just look at some of replies in this story), which to large degree is true, and it will take time to fix that, but it can be possible done with: 1) create openness [culture, keep taking more open-source project like open-day-light, keep opening tech inside MS to others, etc.]; 2) buy early-stage companies through acqui-hire. It will be an uphill-battle and I am not an expert on this, and I am very interested in what other people here on HN thinks.

  • NicoJuicy 12 years ago

    There's a reason why Visual Studio continues to impress you.

    I once saw a presentation of the Visual Studio lead in Belgium, where he claimed that there were over 1200 people involved in the Visual Studio project. If that's true, i don't think there is any IDE that can top that number and it explains why Visual Studio is the best tool for (almost any) job.

    People should realize that Visual Studio is not solely C#, it's NodeJS, PHP, Mono, Python, javascript and so much more in one environment (with a good autocompletion). If you have Windows and are a developer, i suggest you to install one of the Express editions, just to try it out.

    I must admit, not everything is "as awesome as it is" in the express versions because of some limitations on extensions, but in my experience, you can do everything you need in the Express editions. But i don't think visual studio wouldn't be as good as it is, if it was free or opensource. (replacing 1200 developers would be very hard).

    PS. Can anyone confirm my statement of 1200 developers/freelancers? I really think that's the number the Visual Studio lead developer mentioned.

  • taude 12 years ago

    I think msft building this kind of tooling around exciting tech like node gives node more credibility in a big enterprise type of shop...will only be a good thing for node,

    • outside1234 12 years ago

      Exactly. This is a play for the next tier of developers, which will mostly be enterprise, mostly use Windows, and be much larger.

    • smortaz 12 years ago

      Very true. See my comment about the informal poll at Build -- 70/80% of ppl were planning on deploying python & node in their shops. Biased a bit since it was a node/python talk, but otoh, it was a Windows/.Net conference...

    • _random_ 12 years ago

      And with JS average developers being potentially cheaper (at least in future) the enterprise might actually consider it.

  • teacup50 12 years ago

    > I think they are getting the direction right for opening up for external MS product users, and now it's time to recruit top talent again. There are just too many great hackers think MS is old ...

    I don't know who you think the "great hackers" are that Microsoft should hire, but Microsoft is overflowing with top talent. They don't need to "recruit top talent again", because they already were and long have been.

    The research division of Microsoft was created in 1991 and employs computer scientists, physicists, engineers, and mathematicians, including Turing Award winners, Fields Medal winners, MacArthur Fellows, and Dijkstra Prize winners. These 1,100 scientists and engineers collaborate with academic, government, and industry researchers to advance the state of the art of computing, and solve difficult world problems through technological innovation.

    http://en.wikipedia.org/wiki/Microsoft_Research

    Microsoft's problem is management, not talent. They already some of the best talent money can buy.

    > 2) buy early-stage companies through acqui-hire.

    Why would Microsoft benefit from hiring inexperienced teams out of startups on the acquihire market?

    • outside1234 12 years ago

      Honestly, we are getting a lot better at management too. The tech leaders are starting to move to the front (see Scott Guthrie). In the past, it would have been the beancounter (see Kevin Turner).

GravityWellOP 12 years ago

Note for those visiting the thread, I found one of the big things with this release is the support for Edit & Continue:

http://nodejstools.codeplex.com/releases/view/104141

https://www.youtube.com/watch?v=ZAroJmb6XY4

It was in the original title, but has been edited out.

  • GravityWellOP 12 years ago

    I just fired up a NodejsConsoleApp project in VS 2013, created a few simple functions, set a breakpoint, and started stepping through. To be fair, I assumed Edit and Continue would work like it works for other .Net or Native projects, or like the old VB or even VBA.

    1) "Set Next Statement" doesn't work, which is a pretty big part of E&C

    2) I could change code and literals without stopping and restarting the debugging session. Each change causes the current statement to jump to the top of the current function, or to the first line if modifying code outside of any function. Local variables are reset, but globals retain their state.

    3) Interestingly, I could change code in a function that does not have the focus, and nothing is reset, then step into that function.

    I remember seeing something similar when V8 was being demoed and showed a "live edit" capability, so I guess NTVS has similar functionality.

    It short, it sort of works, but it's not the same as E&C for .Net (C# or VB), C/C++ native code, or Office VBA.

GravityWellOP 12 years ago

I had to see it to believe it, but here it is. https://www.youtube.com/watch?v=ZAroJmb6XY4

balls187 12 years ago

Until they can address the problem with building certain NPM modules on windows (ie `node-gyp` related ones), this is a bit of a non-starter.

Sadly the only reason I keep my windows based desktop around these days is PC gaming is still very much windows based.

  • outside1234 12 years ago

    I keep hearing this meme but I use node on Windows and don't have any issues with this. You have to have Visual Studio and Python installed, but most of us have that anyway.

    Which node modules are problem children?

    • balls187 12 years ago

      We had a lot of issues with sqlite.

      What version of VS did you need? Some of the information on getting gyp working was like VS2008 SP1, plus the Win7.1 SDK.

      If this is no longer true, I'll give it a whirl.

    • jahansafd 12 years ago

      I had trouble with bcrypt

      • NicoJuicy 12 years ago

        Same, my problem was with a project that contained bcrypt in a node js project (fetched it from GitHub and NodeJS in Visual Studio didn't succeed at importing bcrypt for some reason).

        I think it was the Ghost project (the blogging platform), that used bcrypt. (i hope you guys of NodeJS Tools read this, because it was the reason i didn't use it and used my Raspberry PI as an alternative :) )

      • balls187 12 years ago

        Our project uses bcrypt as well, and could not easily be npm'd on Windows.

  • city41 12 years ago

    I'm surprisingly finding myself in the opposite situation. Since my app is hosted by Azure, there's some Windows only npm modules I need to work with (such as azurecache[0]). They are just thin wrappers on top of .NET libs.

    [0] -- https://github.com/tjanczuk/azurecache

  • OWaz 12 years ago

    Sometimes packages look for a specific install of VS. To set it to the installed version try:

    `npm install <module> -msvs_version=2013`

  • DrJokepu 12 years ago

    Hasn't this been solved by node-pre-gyp already?

pingec 12 years ago

Does anyone else get the impression that MS shifted a lot of its attention to web developers?

There is an incredible amount of web technologies and dev tools coming from ms that are being presented at Build 2014. In fact so many that I'm having a hard time keeping up...

  • drawkbox 12 years ago

    Their new OS in a sense is Azure, they want developers of all platforms to run on their cloud. All of these tools have an easy tie to Azure which isn't bad, but the lock-in is happening farther up at the service level now. Web developers are huge in that area.

    • gol706 12 years ago

      They did offer an olive branch as far as Azure lock-in by releasing some of the Azure components (Mobile Services and the Azure Pack) to download and run in your own environment. That said some of those pieces require a pretty high overhead.

      As with most Microsoft stuff, you get a great fully integrated story if you use their whole stack, but if you want to swap one one piece it falls apart a little. My clients have compliance issues that make cloud providers hard to use so it's disappointing that I can't really use all this coon new stuff.

  • outside1234 12 years ago

    This is an industry shift in my opinion. People are sick of writing the same app three times and it wouldn't surprise me to see many more hybrid apps in the next year.

  • prezjordan 12 years ago

    Where does it say that this was made by MS?

egeozcan 12 years ago

I've been following this project since the earlier times and the progress is really impressive. Thank you for the amazing work.

angersock 12 years ago

I'd sell a good friend of mine if I could debug my node extension native code and javascript server code from the same IDE.

nevi-me 12 years ago

I tried the alpha a few months back, and found it to understandably be lacking, My biggest frustration with it was trying to profile the performance of a complex piece of code with a number of callbacks and such. NTVS would only look at the first iteration, and not tell me anything useful (at the time I was tracing a memory leak). There were a few other inconveniences which I noticed that issues were raised for, hopefully most were fixed.

  • smortaz 12 years ago

    Thanks for trying it nevi-me. Please give the Beta bits a try - lots of bug fixes, including in the profiler.

preavy 12 years ago

Without going too far off-topic, does anyone know anything about a SQL Server driver for Node.js? There was this, but it hasn't been updated in a while. https://github.com/Azure/node-sqlserver

  • tracker1 12 years ago

    I find the tedious npm module works a bit better, and cross platform for connecting to MS-SQL, it has some rough edges, but was at least more consistent for me. The MS client didn't work as well for me early on. It's worth noting my usage has been pretty limited.

svas 12 years ago

This is awesome. Intellisense support will certainly beat using vim for my node projects :-)

It also appears to work with the free version of VS (Visual Studio Express).

notastartup 12 years ago

I like the direction MS is going. At this rate they can possibly shed themselves out of the shadows of Google and Apple and truly emerge as an open, innovative company. Why not, they got the cash to do so.

Now on this Node.JS IDE, it actually makes me want to use Node.js because it's on Visual Studio, however, I'm also open to alternative IDE.

My favorite is Jetbrain's IDE products, I use webstorm and phpstorm, and pycharms. I love them all, would be nice if they had one for Node.js, as I'm not sure if webstorm has extensive support for it.

mavdi 12 years ago

It's an attempt to bring back developer to windows platform. I personally don't know a single serious web developer using windows unless they are coding in .NET.

  • yulaow 12 years ago

    Are we talking about windows for their workstations or for their servers?

    In the first case I see a LOT of devs using windows as main os, I can easily say the big part of them use it. My last job was in a full lamp 3yo startups and ironically I was the only one who had a second partition with linux on my laptop. All the other devs where on windows7/8 and only 2 on osx.

    In case of server yes, usally you use windowsServer only if you use asp.net or maybe node.js. It however depens

    Anyway if you want to just use Azure Websites it is really nice to have all those Sdks for visual studio.

  • skrebbel 12 years ago

    That might say more about you than about the world's developers.

    I didn't see the stats, but most developers I know use Windows. Like, 60% or so. Different area, different industry?

    • mavdi 12 years ago

      I see a lot of frontend and backend developers. Node, Ruby, Java, general Frontend, Clojure, JS and not a single windows user.

  • outside1234 12 years ago

    What? This is an attempt to sell Visual Studio by making it relevant to what developers are using!

    • pingec 12 years ago

      Now they just need to port it to *nix platforms. Well, perhaps Visual Studio Online is their way of doing that...

    • mavdi 12 years ago

      yeah possibly that too.

  • JeremyMorgan 12 years ago

    If you mean front end, yes. The majority of front end devs are working on Macs and pushing to code to Linux servers. But there is still a ton of .Net activity on the backend and big enterprise. They're trying to bridge that gap and increase their share.

    • mavdi 12 years ago

      I'm in the learning and publishing industry. Our company has always been an MS stronghold and even here most greenfield projects are written in Node or other emerging technologies. I am a bit biased against Microsoft I have to admit, but I do believe they are on their way out of many industries. It's a down facing trend however you look at it.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection