从企业和休闲开发的角度回答最初的问题......
历史
Visual Studio 一直是用于高效构建桌面、移动和 Web 的大型企业应用程序的标准开发工具。这包括使用 Forms、MVC 和 .NET Framework 构建的客户端和服务器端 Web 应用程序。当然,让 Visual Studio 如此吸引人的是它背后的强大功能,它使开发人员能够通过项目模板快速生成或支架通用解决方案 - 让开发人员能够专注于解决业务问题。
对于使用少量库并需要最少数据交互的简单客户端网站,WebMatrix 等工具通常就足够了,因为它是轻量级的并且能够轻松地为网站提供服务。
其中许多工具和技术可以在 Microsoft /web 找到。
分歧
与此同时,已经存在一个新兴的开源社区,该社区一直在开发许多库和框架,这些库和框架在构建现代网站和 Web 应用程序方面越来越受欢迎。
对于使用“Microsoft Stack”技术的开发人员,最初通过将NuGet 集成到 Visual Studio 中来弥补这一差距。许多(但不是全部)库和框架都以 NuGet 包的形式提供;微软为使用这些技术提供了大量支持。微软还创建了自己的开源迷你生态系统CodePlex,以支持项目的开发和共享,通常以某种方式专注于他们的技术。
不幸的是,虽然技术的可用性对于 Microsoft 开发人员来说是最新的,但要跟上技术变得越来越具有挑战性,因为它不仅关乎库和框架,还关乎工作流程和这些技术的方式提供、集成和使用。
此类工作流程包括:
不幸的是,其中大部分是手动过程,例如为工作确定正确的包或编写最终可以自动运行的不同任务。每一个都是真正的主题!最终简单地查找包或命令以查找最终可能(Visual Studio 开发人员会说应该)自动化的东西并不罕见。
收敛
微软一直在慢慢地从不仅支持开源开发,而且拥抱它。它通过GitHub 以及它自己的.NET Foundation 运动向开源社区提供了许多核心技术。
Microsoft 进行融合的一项主要工作是为多个平台引入 Visual Studio Code - 提供简化的开发体验,以迎合开源社区中流行的工作流程。
不过,对于习惯了 Visual Studio 通过其任务和项目模板的自动化提供的强大功能和简单性的开发人员来说,Visual Studio Code 可以被视为一个重大的退步。微软为2010 和2013 版本推出了Web Essentials 以跟上步伐;但正如许多人所观察到的那样,这只是为了表示支持,而不是完全集成到开发人员工作流程中。
在幕后,微软希望将其 .NET Framework 放到其他平台上,并建立了 .NET Core。从 Visual Studio 2015 开始 - 特别是 Update 3 和 Node Tools - 通过集成 NPM 和 Bower 以及任务运行,对开源开发工作流的支持更加深入。这些仍然需要手动干预,但它与 Visual Studio 之外的工作流相当。它仍然感觉很陌生,但它正在到达那里。
未来
凭借 Microsoft 的所有投资,很明显,下一步是通过为 Visual Studio 开发人员提供更加可视化和自动化的体验,整合为拥抱开源开发而采取的许多步骤。这将包括生成富 Web 应用程序的模板,这些应用程序不仅定义了所有必要的包和依赖项,而且能够捆绑分发。
与此同时,我认为这是让 Visual Studio 开发人员了解当前工作流程的好时机,如果只是为了欣赏“其他人”的工作方式。用不了多久,大部分内容只需点击一下即可。