Visual Studio 2013 released to web
blogs.msdn.com
blogs.msdn.com
Everything's been downhill since VS6. I'm only joking, but seriously, does anyone remember how lightning fast VS6 was? That was over 15 years ago with much slower computers. I guess application 'snappiness' has not been a priority for the Visual Studio decision makers.
I've used VS since the late 90s (writing node.js in ST2 now) and honestly appreciate the hard work and cool features that goes into it. The new VS2013 feature that shows how often a function is referenced is useful. I don't get that in ST2 and probably never will. But I've used VS enough that I've become philosophically opposed to it and other similar IDEs. The core of the problem for me was that all the fancy wizards and project templates are not maintainable for MS. There were a number of times I was using some new project type introduced in a version of VS only to find the template was incompatible in the next version (e.g. reporting in 2005). This inevitably lead to a lot of unexpected work when my team would upgrade. Many of the productivity wizards impose hidden debt on their users.
Another major gripe was that VS would get really sludgy for solutions with a great number of projects/files. Take note that whenever you see MS demo a hot new feature, it's always with a very simple solution. Also, VS would block for me a lot, but that was probably due using too many plugins. I'd find that an application freeze of even 2 seconds would distract me. Not an issue I face now with a text editor + repl.
</rant>
Modern VS really needs to work on managing large projects- but this isn't something it ever had to begin with, and has certainly improved since VS6 despite added functionality. The responsiveness issues you list seem a little more problematic than normal from my experiences- I would definitely try uninstalling a few plugins and seeing if that helps.
> Also, VS would block for me a lot, but that was probably due using too many plugins.
Yeah, that's where your problem is. I'd put good money on ReSharper being the problem, as it's slowed me down in the past. Uninstalled it and never had another problem. The only plugin I have now is VsVim (which I highly recommend for those who'd like vim bindings.)
But for me in the end it is worth it. Show me any text editor or IDE that provides the same number and quality of productivity enhancing features as ReSharper that isn't as slow or slower.
I have a 28 project solution, and with R# the IDE is still plenty fast but every so often I think about just how fast VS was without plugins.
Makes me wonder what's accounting for the varied performance? Probably some combination of project size, plugins, and machine specs, I reckon. If one mans (persons) 10 projects contain 100x the code that my 50 projects contain it would certainly make sense to have longer load times.
Upgrading each of these projects to the 2010/2012/2013 IDE requires about 5 minutes of manual steps - per project!
I still keep a VC6 on my machine (even though it barely works on Win7) because of all that.
What got me stuck on VC6: I benchmarked OutputDebugString in the 2002/2003 versions, and noticed that they were ~10x slower.
The new compilers are a lot better, for sure.
I have no idea just how they managed to utterly fuck up the performance in VS2002 and later, but it does at least capture every last char of output, if you have the patience to wait for it.
(Perhaps on modern multi-core multi-GHz CPUs the VC6 approach is reliable enough, assuming it's some timing issue. But I have to say that I do prefer the VS2002+ tradeoff. Wish somebody would just fix the whole sorry mess though.)
Keep in mind that "nostalgia" is another word for "brain rot", and the human memory is a liar.
I spent most of 1995 and 1996 using Mac LC 475 for DTP. Great times. Hauntingly easy to use.
I spent 1998-99 on Windows NT with Office 97, which was actually more usable for the same job.
1999, I used someone's LC 475. I was horrified how clunky the exact same thing felt, a few years later.
tl;dr I suggest you actually fire up VS6 and try using it for stuff and see what you think now.
Every other VS upgrade has been comparatively painless. I can't say I'm excited to try VS2013.
WiX (and MSI, for that matter) is a disaster.
With Wix/MSI, there were certain executables that I could never get it to run as part of the install process. The XML would look the same as other execute commands that worked, but I could never figure out why they didn't run.
This can "kinda" be worked around with "heat.exe" (don't get me started on naming of tools in the toolchain), but even then you'll need to explicitly specify half a dozen command-line arguments (-ag -dr -cg -srd -scom -sreg -svb6 -sfrag) to make the thing work.
Run a script to enumerate the files and populate a wix file? Zip up the different parts and have the installation process unzip them?
WiX is a thin wrapper around MSI (which sucks beyond belief) and as such it suffers full blast from all the "design" decisions of the latter, not even trying to remedy the situation.
I really could pour out a full-blown rant on MSI in general and WiX in particular, but that would be wildly offtopic and of no interest to fellow HNers.
It's true that msi is different from other installer builders, but it's for a reason. And if you have a concrete project you can build while following along with the wix tutorials and book, it's not difficult, it just takes some time.
The fault of WiX is that it's too thin of a wrapper.
If you hate wizards, and you hate "obscure incantations", which I'm assuming means code, then what do you like? Do you program in natural language with voice recognition?
By "obscure incantations" I mean having _three_ different syntaxes for string interpolation/variable substitution, providing _six_ command line arguments for the tool so that it does the one reasonable thing, having illogical rules in comparison operators, having to use a frickin' _bootstrapper_ to install prerequisites and not being able to chain MSIs, not being able to have a single installer for x86 and x64, not having a _simple_ way to define logic for "Back" button, yet having to write heavily nested XML to do simplest thing.
Considering how thoroughly MS screwed the pooch on ClickOnce, I was genuinely surprised when they completely abandoned their working installer system.
Problems:
* Can't choose installation path * No offline installation * Hard (impossible?) to use with a CDN.
Here's an example of how to turn a directory of precompiled binaries into a click once package using powershell:
https://gist.github.com/jonnii/2628150
My powershell isn't _great_, so forgive any powershell oddities, but notice how much you have to massage the output of the mage tools to actually get it to do what you want.
There's also no ability to publish the built installer outside of the UI- my build scripts had to build the /app.publish directory and then just copy the whole shebang to a network location for deployment. I'm not as upset about this being a separate step, but if they indeed allow you to configure and deploy the installer from within the UI why not expose an API to do it as well?
Overall I think ClickOnce is fine for internal, self-updating tools. It's worth noting, however, that I was inspired to create my workflow based on looking at what Github was doing with their windows client.
[1]: http://whazzing.com/blog/2013/04/11/automated-clickonce-buil...
Personally I am enjoying VS2012 a lot and it is really sad that there are hardly other IDEs this good.
No, it does not need to. Someone decided that it needs to pander to web monkeys instead of empowering users that have used VS for 10+ years.
Really? How exactly does VS2012 pander to "web monkeys" at the expense of others?
There are a few exceptions to this rule (think EF Code-First), but that's a drop in the ocean.
Maybe you are just now noticing, but MS dev tools have always had wizard clicky things. For example, see the original Visual Basics from the 90s.
My main gripe with abundance of today's "visual programming" is that we have memory-managed languages with immense expressive power and ability to write all kinds of DSLs, yet what Microsoft does is it provides crippled XML-backed designers along with half-baked frameworks and class libraries.
I actually like MFC, but it never really got past the "good for a first cut" phase, IMO. Fortunately, I've never had to deal with .NET, and besides a little MFC, most of my work is on Linux these days.
http://www.youtube.com/watch?v=hkDD03yeLnU things like this never help
My biggest gripe are all kinds of wizards, most notably "New Project" ones. They do generate a lot of cruft I have to clean up later and pull way too many dependencies.
Don't get me wrong, this type of thing drove me from the MS ecosystem a while ago now but they do move largely in the right direction, just too slowly for my tastes.
A lot of things in VS are wrappers around very well-documented CLI tools, e.g., svcutil, and I don't begrudge these tools for doing a lot of heavy lifting.
>Microsoft developer tools are becoming more and more oriented towards "wizard-and-designer-clickety-clickery" type development.
Weird, I have the exact opposite impression. It seems like forever ago that VS was touting things like drag and drop design or wizardy stuff.MS have always done a good job of catering to a wide range of developer personas.
The term "wizard" came about because of the AppWizard and ClassWizard features in Visual C++.
Clickety-clickety has been a goal of Visual Studio since before it was Visual Studio.
Still 100x better than digging through 100 pages of abstruse Java docs about AbstractProxyBeanDAOFactoryProxy.GenerateAbstractProxyBeanDAOFactoryAccessor though.
Closer to this: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris... than drag and drop, clickety-click.
Which it probably does, given the huge amount of development that is web-based these days. The market for Windows-based C# applications is shrinking by the day.
I started using VS when I landed in a .Net shop and it made sense to use it. Totally blown away by some of the cooler features you can't find on any other IDE. Even the free VS Express (which I now use at home) is so much better than other IDE's out there.
For C++, I find VS rather lacking compared to Xcode (though that's a combination of the compiler being dumb and IntelliSense being poor).
Just gotta wait for an upgrade license of R# to go on sale, as R#7 isn't compatible with 2013 ;(
For me that elevates TypeScript from a MS side project to something they're serious about.
"There are now dozens of large applications written by teams in Microsoft, including Bing, Xbox, TFS, So.cl, as well as in projects such as Adobe Digital Publishing Suite for Windows 8.1, Zud.io, Away3D, and Turbulenz."
I think they've been pretty serious about it from the start due to the design decisions in Metro.
VS 2013 is looking like a really great product, especially in comparison to VS 2010.
Technically, that's not a VS2012 or 2013 feature, that comes from .NET 4.5, which you can use with VS 2010.
However, the testing and analysis is well worth it. I don't know what your source control is, but paired with TFS 2012, it's a pretty large productivity improvement for my team over VS 2010 (as large as you can get from an IDE upgrade).
And I'm a little confused on the first part, because .NET 4.5 is not supported in Visual Studio 2010.
The frustrating part is that MS actually removed the existing code from the already existing libraries (but which are not binary interchangeable between the compiler versions) in order to disable the support for Windows 2000. Otherwise I'd be able to use even VS 2013. They did the same for XP with VS 2012, but more people made the fuss so now even VS 2013 should support XP, AFAIK.
- VS2010's macro system is just broken, and fails to coexist with VS2008. Basic macros using the DTE object work; more sophisticated ones (I have a few that used DTE90 - or was it DTE80? - anyway, whatever, they manipulated project properties) seemed to be literally impossible to make work, due to some kind of conflict between system-global components that both try to install. Pretty shameful.
- VS2010+ craps massive files into your solution folder, worse even than the NCB palaver, and so your more junior and/or inept programmers will keep checking that junk into source control.
- It's common in VS2008 to change the build product name by going to the Linker or Librarian property page and just changing that Output File property. VS2010 doesn't like this, though, due to some MSBuild limitation, and would much prefer you to modify the settings in the General page, leaving the output file name as its default of something like "$(OutputFolder)$(OutputName)$(OutputExt)". Of course, the project upgrade doesn't actually do anything about this for you, so after importing all your projects that work the old way way, they won't work properly, and you have to fix each one up yourself.
- VS2010 dependencies aren't like VS2008 dependencies. There's a new C#-style References section that manages the linking. Dependencies can still be set, but they only affect build order. (Also - when you change dependencies, you need to close and restart Visual Studio, because sometimes they don't take effect properly.)
- The new C#-style references are part of the project, not part of the solution, so they come with the project when you add it into a solution. Add a project but forget its references and you just get a cryptic error (along the lines of "Project has no Debug|Win32 configuration") when you try to build; to add insult to injury, when you go to the References page, the missing reference is not actually shown, because (of course...) it's not in the solution. You need to open the vcxproj in a text editor and look at its contents and compare it to the references VS2010 shows you to work out which is missing.
- When a project refers to a non-existent file, the project will be considered permanently out of date. VS2010 won't give you any clue about what's wrong, and to track the problem down you (as I recall...) have to change some random setting in a file you've never heard about, which gets MSBuild printing stuff out via fucking OutputDebugString, leaving you to scrape through its (unreadable) output with DbgView until you find the magic message that hints at the file in question. (The link I have in my notes is http://blogs.msdn.com/b/vsproject/archive/2009/07/21/enable-...)
- If a solution refers to a non-existent project configuration, you get a cryptic "The parameter is incorrect" error when trying to build, with no clue as to what's wrong.
- If you happen to open one of the built-in MSBuild files in the text editor, which can easily happen if you click on the wrong warning, all hell breaks loose and MSBuild starts to spew warnings everywhere each time you build.
This excludes a few vendor-specific issues I had, with my favourite (I think...) being the plugin that would instantly terminate Visual Studio if you used the phrase "%(ProjectFilename)" (instead of "%(ProjectFileName)") in your build output paths.
Needless to say, after this dreadful experience - and I have to say that if you have never embarked on an endeavour such as this, you probably won't (as I didn't) appreciate just how long it can take, and how time-consuming it can be to track down and fix all these issues ocurring in all these opaque black boxes - I swore off VS2010 completely. And to this day, I have yet to use it in anger.
Our projects aren't particularly great, virtually everything is in stdafx.h directly or indirectly and small changes results in rebuilding. The increase in build time would have hurt us.
VS2013 is a bit faster (~10 minutes, last time I checked) but still a bit of a hit. Allegedly this is due to the extra time parsing the C++11 language bits.
I don't think this is a huge deal (our code should be better), rather something to bear in mind.
Also, if you recreate your project instead of upgrading it you'll end up with a default instruction set of SSE2 (instead of SSE) and your exe will suddenly not run on Athlon XP-era chips.
Upgrading is not something to be done lightly.
Of course, this is purely an artifact of overly large solutions. If you've inherited any of those, as I have, it's worth the upgrade for the improved performance, IMO.
There's also a quite detailed talk by Herb Sutter on channel 9 as well. http://channel9.msdn.com/Events/Build/2013/2-306
Apparrently there is a requirement to have IE10 installed. Dealbreaker for many in the corp world.
These should be developed independently.
I'd probably still be using some MSFT technologies if I could use a VSS-style IDE on OS X without virtualization (I tired MonoDevelop, but it just wan't the same). I didn't have issues with the speed of Visual Studio running on my beefed up MBPro, but the keybinding stuff was just too much to deal with.
Not to mention, having a ton of different runtime/hosting options is a pretty nice bonus for the OSS stack.
Also, for mostly web apps, I think Visual Studio is massive overkill (but I'll still watch their videos on features).
For now, I've settled happily using on cross-platform tools (PyCharm/WebStorm for a feature rich IDE and Sublime Text 2 for code editing, and VIm when tweaking stuff on the server). Should I ever go back to Windows (likely, because I want a Surface Pro 2), my tooling should carry over (though I'll have to go through some keybinding issues again).
Never again will I use products that are locked down to a single OS. Even the tools on my Mac (with the exception of Keynote) run on Windows and vice-versa.
Beyond that, though, I'd encourage you to at least look at VS 2012, get past the superficial changes, and look underneath. There were a lot of performance improvements in the GUI rendering that added up, and there were a lot of tweaks to project search and management that became indispensable to me shortly after launch.
"Visual Studio 2013 includes many user interface improvements based on customer feedback and Microsoft’s core design principle of keeping the focus on the content to deliver an improved user experience. You may notice the more than 400 modified icons with greater differentiation and increased use of color,"
http://www.microsoft.com/visualstudio/eng/visual-studio-2013
Sounds about right to me. Why is this "spin"?
Instead of just admitting up-front their redesign was pretty hated and promising to fix it, they insist it's great until they've changed it.
(disclaimer, etc).
After installing the professional edition from MSDN... my navigation bars are gone. WTF?
VS2008: 5 min
VS2012: 15 min
VS2013 Preview: 10 min
I use VS2012 and I'm about to use VS2013 for .NET development, but our C++ project is stuck in VS2008.
http://www.microsoft.com/visualstudio/eng/downloads#d-2013-e...
Internet Explorer 10 also insists on Windows 7 SP1 installation. I'm using this Win7 install since 2009. I'm very scared the update will jinx it.
You're forcing yourself to stay on an older, potentially less maintained version of the OS so you don't "jinx it"?
If thing go awry i would need to waste a day or two reinstalling the OS again. It's very easy to resist installing this update.