本文概述
- 原因1:.NET仍然是最好的之一
- 原因2:ASP.NET不断发展
- 原因3:Web API的简单性和WCF的强大功能
- 原因4:SQL Server像以往一样坚固
- 原因5:易于测试
- 原因6:完善的支持生态系统
- 原因7:Microsoft坚持其产品
- 原因8:Visual Studio伞
- Microsoft Stack-两全其美
10年前, Microsoft开发人员的生活非常好。公司很高兴将100%的Microsoft用于其开发项目。前端使用ASP.NET, 后端使用.NET中间层, 而SQL Server则在大多数情况下运行良好。当他们没有这么做时, 开发人员只是将其视为领域附带的东西。微软几乎是在运行这个节目。然后, 在上个十年的末期, 微软的800磅重的大猩猩地位开始瓦解。也许是由于iPhone的推出, 而微软却错过了向移动技术的转变, 或者也许是由于开源项目的激增, 但事情发生了变化, 如今, 必须说服那些相同的公司, 使Microsoft Stack成为现实一个好主意。本文提出了八个理由支持坚持使用Microsoft软件堆栈。
原因1:.NET仍然是最好的之一
.NET Framework于10多年前推出, 功能丰富且经过了全面的测试。在.NET的早期, 将本地开发与托管代码相结合是很平常的事, 但如今, 绝大多数开发任务都可以立即使用。甚至Oracle之类的公司也发布了由100%.NET托管代码(即ODP.NET托管驱动程序)与其产品接口的组件。 .NET API是一致的, 有据可查并已被数百万使用。
通过MSDN, StackOverflow以及成千上万的论坛和博客提供的知识库非常庞大。在使用.NET进行开发的岁月中, 我想不起来一个实例, 该实例会使我长期陷入框架错误;每次, 有人都已经体验, 研究并发布了答案, 而这并不总是我所希望的答案, 但是仍然使我向前迈进了一步。在即将发布的2015版本中, .NET Core将是开源的, 并且可在非Windows系统上使用。
原因2:ASP.NET不断发展
回顾10年前传统的从Web到数据库的Microsoft堆栈, 很有趣的是看到哪些零件在时间的考验中幸存下来, 哪些零件逐渐消失。尽管Microsoft堆栈的后端几乎保持不变(我们仍然使用相同的模式和组件集, 例如依赖注入, Tasks, Linq, EF或ADO), 但前端是ASP.NET, 从”以Microsoft方式执行”(即Web窗体)到”以你的方式使用ASP.NET作为平台”的根本转变。如今, ASP.NET是一个基于MVC的框架, 具有用于身份验证, 捆绑和路由的强大基础结构, 并且与许多非Microsoft技术(例如Bootstrap和AngularJS)集成在一起。从电话到台式机, ASP.NET网站在各种形式的外观上都很不错, 其Web API功能使轻而易举地公开Web服务。该框架已经开源多年, 因此, 如果你遇到问题, 可以在GitHub上找到该源。 ASP.NET已更改, 并且变得更好。
原因3:Web API的简单性和WCF的强大功能
我一直以来最喜欢的报价来自艾伦·凯(Alan Kay), 他说:”简单的事情应该简单;复杂的事情应该是可能的”。 Windows Communication Foundation(WCF)于2006年首次问世时, 它并不简单。行为, 端点和绑定是压倒性的。因此, 微软发布了Web API, 这是一个易于使用的框架, 使暴露HTTP Web服务变得轻而易举。只需几行配置, 你的API就可以变成安全的”行业标准” Web服务。
如果你的用例不适合”标准”模型, 并且你需要完全控制API在电线上的暴露方式, 则可以始终使用WCF。使用无数的配置选项和挂钩, WCF允许你自定义序列化数据, 记录, 拦截, 路由消息, 使用对等和排队等功能。 Web API与WCF一起提供了Kay的两个报价:如果你需要简单的Web服务, 则只需几分钟即可完成Web API;如果你的服务要求很复杂, 则使用WCF可以实现”全部”。这两种技术提供了服务场景的全面介绍, 并预先包装了.NET框架。
原因4:SQL Server像以往一样坚固
多年以来, 似乎新的开发语言, 框架和模式席卷了前端和中间层, 从而避免了数据库后端的麻烦。毕竟, 良好的旧” SELECT”在今天仍然和20年前一样被使用。我认为这是由于许多公司将其数据视为其业务的核心, 并且保持该核心的完整性远远超过了在数据库层尝试”新事物”所带来的兴奋感。
SQL Server在其数据保持者的主要角色方面表现出色, 它具有用于事务处理, 参照完整性, 备份, 镜像和复制的众多功能, 但是使SQL Server与竞争者脱颖而出的是它与Microsoft其余堆栈的集成程度。为了快速开发, 目前已在第6版中发布的Entity Framework已过了青春期, 并且很好地实现了简化数据访问的承诺。如果需要计算能力, 则将.NET Framework与SQL Server一起在进程中加载, 这意味着你可以将.NET代码作为存储过程, 函数或聚合嵌入, 而不会牺牲性能。再加上SQL Server 2014带有内存表这一事实, 你可以想出一些漂亮的实时解决方案, 仅靠SQL和常规表就无法实现足够快的速度。经过多年的行业发展, SQL Server仍然是我的RDBMS列表的首位。
原因5:易于测试
很多次, 在公司IT部门工作时, 我看到软件变成了这些无法触及的黑匣子, 因为没有测试, 没有人因为担心”破坏其他东西”而希望弄乱代码。然后, 我在具有数千个测试的系统上工作, 能够很高兴地告诉企业, “是的, 我们可以进行这些更改”, 这是软件发行多年之后的感觉。 Microsoft堆栈在设计时考虑了可测试性。 ASP.NET MVC具有依赖项注入的挂钩, 在版本5中, 依赖项注入将包含在框架本身中。在中间层, 这是一个类似的故事:我们使用依赖注入将实现与接口分离, 这使我们可以在测试时将生产类型与模拟交换。即使在数据库方面, 也有一些SQL Server数据工具附带了用于针对存储过程层进行测试的模板。测试是当今软件开发过程中不可分割的一部分, 而Microsoft堆栈已为这一新现实做好了充分的准备。
原因6:完善的支持生态系统
在支持方面, 很高兴能有一系列选择, 从社区论坛开始, 到在服务器上现场工作的实际工作人员结束。 Microsoft产品的在线生态系统是业内最大的生态系统之一。毕竟, 微软是由软件开发人员本·比尔·盖茨创立的, 他认为开发人员的广泛采用是微软产品扩散的关键。这意味着要为这些开发人员提供很多支持。
微软是第一个鼓励员工在博客上介绍他们正在使用的技术的公司, 尽管业界其他人肯定已经赶上了发展, 但是今天直接来自微软的教学视频, 指南和文章的数量和质量仍然非常令人印象深刻。高质量的在线内容层由大量基于社区的支持生态系统(例如StackOverflow)进行了补充, 它们在内容质量方面虽然不那么一致, 但是却比没有帮助更大。
最后, 总可以选择接听电话并致电Microsoft支持。我很少使用它, 但是当Microsoft开发人员分析节省了一天的核心转储时, 出现了一些生产紧急情况。支持选项的范围显然是支持Microsoft堆栈的一个因素。
原因7:Microsoft坚持其产品
几年前, 选择Microsoft Silverlight作为应用程序的前端似乎是一个有效的选择, 但事实已不再如此。随着移动趋势的全面发展和JavaScript框架在前端空间中的统治地位, Silverlight不再是可行的选择。不过, 到2021年, 它仍将得到Microsoft的支持。Microsoft坚持不懈地努力, 这对那些必须做出技术选择而又没有神奇的八球来告诉我们未来的技术趋势将在软件领域中起主导作用的我们来说是一件好事。与Microsoft堆栈配合使用可确保将时间和金钱投入到将被支持的技术上, 即使它在业界不受欢迎。
原因8:Visual Studio伞
十年前, 我花了大约50%的时间在Visual Studio中工作, 大约50%的时间在其他工具上。如今, 这种分裂压倒性地支持Visual Studio。微软对Visual Studio成为托管IDE的一站式解决方案的愿景已经实现, 许多Microsoft和非Microsoft产品都提供了与Visual Studio某种程度的集成。从使用SQL Server数据工具进行数据库开发到使用Xamarin编写iPad和Android应用程序, Visual Studio都通过一致的用户界面为你提供熟悉的开发人员体验。可以说与Microsoft Azure合作, 这是一个云平台, 其中包含从数据库托管到移动服务的各种服务。
Visual Studio消除了分布式云基础架构的复杂性, 使开发云应用程序的体验与开发未托管在云中的应用程序的体验一致。在Visual Studio的保护下, 所有部分似乎都可以很好地组合在一起, 从而使整个开发过程非常高效。
Microsoft Stack-两全其美
今天, 与十年前相比, 编写高质量软件的选择更多了。这当然是一件好事, 因为竞争迫使诸如Google, Apple, Amazon和Microsoft之类的大公司继续创新而不沾沾自喜。过去十年间, 随着技术的发展, 微软一直处于发展的顶峰, 但该公司表明, 它愿意适应并适应当前技术趋势的现实。 ASP.NET包含了其他技术和方法, 其中许多是开源的, 而原始Web窗体已逐渐成为历史。 .NET框架不断发展, 通过用于多线程和多核计算的库突破了新的领域。在即将发布的2015版本中, 该框架的核心将是开源的, 并且可移植到非Windows平台, 这是朝着包容性和透明性迈出的一步。
这些令人欣喜的改进来自一家公司, 该公司拥有建立经过测试, 记录和支持的软件的长期流程。与Microsoft堆栈一起使用带来了与现代语言和框架一起工作的激动, 以及由在开发行业拥有数十年经验的软件巨头提供支持的稳定性。这就是为什么我今天建议使用Microsoft堆栈。
评论前必须登录!
注册