尽管现在的"微软平台"的含义已经与往日大相径庭,但微软在纽约举办Connect 2016大会为开发人员制定了针对其平台的计划。
今天的口号是"任何开发人员,任何应用程序,任何平台",而几年前的主题是"Windows无处不在"。
Connect大会属于微软的开发人员部门,与由Windows部门举办的Build活动不同。因此,大会上的主题演讲也不那么关注Windows操作系统的开发。
微软同Windows的关系变得复杂。一方面,它有一个Windows开发人员社区,希望保持其信心;但另一方面,它想要说服更广泛的开发人员群体,让他们相信该公司有适用于其他平台,特别是iOS和Android移动客户端以及用于Web和服务器应用程序的Linux的工具和框架。
因此,该公司正忙于排除在Windows外使用其技术的障碍。只要快速浏览一下主要的Connect公告就表明了这一点:微软作为白金会员加入Linux基金会,发布了SQL Server for Linux的公共预览版。谷歌加入.NET基金会,Visual Studio for Mac预览版发布;Azure App Service现在支持Linux了。三星发布针对Tizen的Visual Studio Tools。Visual Studio Mobile Center宣布在iOS、Android和Windows上测试移动应用程序。跨平台.NET Core 1.1和Entity Framework Core 1.1发布。
现在没有任何关于Windows Everywhere的迹象,不过有一些关于.NET Everywhere的证据,谷歌和三星显示出对它支持。
在今年早些时候被收购之后,Xamarin对微软的影响是Connect大会上另一个值得注意的地方。Xamarin成立的目的是使C#开发者能够瞄准移动平台,并且由于iOS和安卓系统的成功而迅速增长。另一方面,微软一直在努力吸引开发人员到其通用Windows平台(UWP)上,因为没有iOS和安卓,它就不够通用。因此,Xamarin提供了答案。
多年来一直跟踪微软开发人员故事的转折和转向的开发人员,将知道有许多种XAML,一种基于XML的语言,最常被用来定义用户界面。有WPF(Windows Presentation Foundation)XAML、Silverlight XAML和UWP XAML,所有的这些语言都有所不同。 Xamarin介绍了另一种变体, Xamarin.Forms技术使用它,允许开发人员一次性为多个平台定义UI。
Xamarin.Forms立刻大受欢迎,甚至超出了它的创造者的期望,特别是因为该公司长期以来一直主张为每个平台单独创建一个原生UI。尽管它有局限性,但是它可以创造高效率,特别是对于forms-over-data业务应用程序更是如此,对这类程序来说,最后一个程度的美化是不必要的。Xamarin.Forms现在瞄准UWP以及iOS和安卓系统,并且显然会在未来的版本中添加Mac OS。
负责开发部门的微软企业副总裁Julia Liuson提醒我Xamarin.Forms的能力不如XAML的其他变体。
她表示,"UWP应用程序使用的XAML版本是一个真正的平台,它可以让你做一切可能的事情,而Xamarin.Forms是一个了不起的应用,但你不能使用它来描述一切可能的东西,针对所有不同的平台口味。"Xamarin.Forms和UWP XAML之间目前还没有融合的计划。
也就是说,与UWP XAML相比,Xamarin.Forms满足的是开发者更迫切的需求,所以如果它有一个更光明的未来就毫不令人感到意外了。
我也向Liuson提出了Visual Basic(VB)是否有未来这个棘手的问题。她表示,Visual Studio 2017中的所有新功能--都可能会在Connect大会上发布--"都同样地适用于Visual Basic和C#"。一个Visual Basic用户"应该对于我们如何带来更多的能力和更多的生产力的做法感觉非常好。
Liuson承认,这也就是说VB没有像C#一样获得相同的投资。她对《The Reg》表示,"随着.NET不断扩展,我们观察到的是Visual Basic开发人员倾向于专注于一组知名的业务应用程序:ASP.NET、Windows Forms和WPF。我们将继续在这些领域提供大力支持,但是当涉及到全新的功能集时,我们没有观察到Visual Basic开发人员接受这些。所以我们把重点放在VB客户工作的领域上。"
这意味着,想要跟随微软走出Windows的VB开发人员应该学习C#或另一种语言。
Visual Studio 2017如何揭示出微软的新方向
Visual Studio 2017还展示出微软的方式是如何改变的。它比以往任何时候都更加巨大,虽然新的安装程序可以减轻这种痛苦,使您能够用比以前更清爽和更灵活的方式挑选并选择所需的组件。选择的菜单包括:
Python
Node.js
针对Linux Development的Visual C++
Clang with Microsoft CodeGen (对Windows 上的C++有更多标准兼容)
Docker工具
Azure工具堆栈
使用Visual Studio 2017,我开始一个新的ASP.NET Core项目,并检查Enable Container (Docker) Support的选项。我被提示安装Docker for Windows,这样做了之后不久就启动并运行了一个"Hello world"ASP.NET应用程序。值得注意的是,Docker正在运行一个Debian容器,快速查看PATH环境,现在是Hyper-V,而不是Virtual Box。
Visual Studio 2017在Windows上的Docker上的Linux容器中运行ASP.NET Core
Stack Overflow的首席执行官Joel Spolsky参加了Connect大会。早在九十年代,他的第一份工作是在微软负责Excel方面的工作。因此,笔者请他比较一下曾经的微软和今天的微软有什么不同。
他表示,"我在微软共事的每个人都有这种态度,我们是巨大的,我们赢了,就算表现大度我们也负担得起,我们可以帮助Lotus集成1-2-3到Windows并帮助WordPerfect到Windows,与此同时,Excel团队和Word团队则正在与他们竞争。"
"今天的微软已经把这一点带到了另一个层面,想要成为每个人最喜欢的公司,无论你是谁。开发工具的钱已经转移到提供云计算服务--这是可计量的,而且无法盗版--现在Visual Studio只是在Azure上获取东西的一种方式。这使他们处于一个非常舒适的位置,能够对世界上每个人都友好。
不过Spolsky断言,许多人仍然警惕微软,不断回忆起它是如何阻止浏览器的开发,抵制开源或其他各种真实或想象中的罪行。
此外,有了吹嘘了一年的一系列技术,微软平台开发人员还没有迎来一个轻松时刻,而忽略了下一个。
该公司对C#和.NET的承诺从来没有食言,这仍然是真的,虽然它的投资现在更多地集中在跨平台.NET核心而不是让只针对Windows的 .NET Framework发展成熟。
今天的微软正在转型。跨平台的过程并不容易。新的.NET核心针对所有的帐户,但长期开发.NET的开发人员却由于缺少部件而感到沮丧。 Linux上的SQL Server不如Windows上那么好,并且.NET Stored Procedures到Reporting Services还有差异。Windows上的容器支持刚刚开始。
然而,在目前方向的背后有动力,有些事情很明显。 Xamarin工具是非常重要的并能够满足真正的需要。 无论UWP是否真的追上对公司来说不再是至关重要的了。它让开源变得有意义,并乐于支持其他人的平台,只要它能带来云计算销售的希望就行。
本文转自d1net(转载)