软件和互联网正在改变传统企业,软件的职能逐渐从管理内部员工变成核心的商业竞争能力,在今天这种大环境下,我们应该用的新开发技术和方法。微软公司全球资深副总裁、开发平台事业部潘正磊(Julia)认为,把IT托管到云上并不是真正的高效生产力,云计算最主要的是提供各种各样的服务,为企业创造新的商业价值。也就是说,云平台需要提供各种易用、强大的工具来支持开发人员实现数字化转型,不管是认知服务、流媒体服务还是物联网、大数据的支持。

除了弹性、可扩展的基础设施云平台,微软还从跨平台、开放/开源与DevOps三个方面为开发者提供开发工具来实现企业的高效生产率。基于这些经验和技术,从2012开始到今天Visual Studio 2015年发布之后,微软的交付速度从三年多到三个月,再到可以三个星期为客户提供新功能。

跨平台:Xamarin的整合与开源

在应用高效开发的过程中,要避免iOS版本、Android版本甚至Windows版本的重复性开发,增加代码共享、避免用不同的编程语言不同的开发环境来编不同的APP是自然的思路。微软提供了三套解决方案来增加代码共享。

  1. C++。微软的Office产品全部是基于C++的代码共享,如果在iOS或者Android上下载微软的产品,里面大量的C++代码是跟Mac和Windows桌面产品共享的。

  2. 针对JavaScript的Apache Cordova架构,在Visual Studio 2015里做了很多支持它的开发工具。

  3. 收购了Xamarin提供给所有Visual Studio开发人员使用,没有任何新增费用,包括在Mac上提供这项支持,此外还将Xamarin的运行时全部开源。

潘正磊介绍,基于Xamarin,开发人员可以用C#编程语言构建完全原生的iOS和Android的APP——用Apache Cordova可能还会担心性能问题,但Xamarin编的完全是原生的APP,没有任何性能和执行的问题,而且Xamarin还可以极大的支持代码共享在iOS和Android上。

Xamarin还有一个非常酷的功能:Xamarin Test Cloud,有几百种不同的设备在后端,通过云服务形式提供给开发人员做不同设备的匹配测试,而且有一个非常炫的界面。Xamarin对企业用户来说最大的好处是能够极大地利用现有人才,而且能够共享前后端代码,为企业提供移动的服务编程。

互联网医疗的创业公司微诊集智的宋剑飞介绍,其微诊App按照国内主流设计,有类似微信的聊天、类似微博的回复评论,基于Xamarin开发的APP与原生APP相比流畅度和使用体都是一模一样的。

Xamarin可以在两个层面做代码复用呢,第一是APP的网络操作和和一些计算逻辑可以跨IOS和Android的,因为都是C#代码,只是UI层有区别,要按照具体的SDK来做开发。第二是前后端也可以复用。

MVC里有Model层,APP也有Model层,因为需要数据传输模式,两个对象是一样的,采用Xamarin技术可以做到至少Model层在APP复用,跟后端代码也可以复用。比如校验,APP和服务器校验两次,要是原生开发APP可能需要用Java写一套,Objective-C写一套,C#写一套用Xamarin就可以跨过这三套。首先对C#的开发人员我们可以用最熟悉的C#工具做对象处理,非常快捷。其次是C#5.0的Async语法,也极大地提升生产力,APP是单线程的,必须不断做线程交互,有了Async之后,我们可以以串行方式做并行的事。

开发iOS需要在Mac上,有两种做法,比较常见的是在Mac上开发,里面跑一个Windows虚拟机,我认为效率不高;我是在Windows的PC上跑一个Mac的虚拟机,既可以保证我在Windows下面开发Android调试外围界面,还可以开发iOS。

潘正磊称,在收购宣布之后,Xamarin用户可以不用付费完全使用,Xamarin的日用户量马上就上涨3~4倍。微软认为,Xamarin的价格是最大的问题之一。

Xamarin最初并没有在中国推广,中国客户就算想买Xamarin也不知道哪里去刷信用卡,后来才有了CSDN软件商城与Xamarin的合作。中国作为Visual Studio是一个非常大的用户市场,潘正磊表示,微软也在跟Xamarin团队沟通,希望很快可以做好中文版本,推广给中国的开发者。

CSDN软件商城是目前Xamarin在中国的唯一合作伙伴,在三年的时间里已经为近两百家移动开发企业提供技术和培训服务。同时,CSDN也是微软MSDN产品在中国战略合作伙伴,为企业提供开发工具的优惠解决方案。CSDN软件商城旨在为企业提供高生产力的开发技术与工具,成为开发团队在技术合作上的最佳伙伴。更多产品信息请访问CSDN软件商城。

开放与开源:.Net Core技术

微软2014年11月开源了.NET技术,2015年11月发布了.NET Core第一个版本。潘正磊表示,.NET是微软14年前推出的为技术,在新的“移动为先,云为先”的大环境下,原有的.NET已经不适合在云端运行大量并发式服务,微软就把最核心的运行时.NET Core拿出来做技术更新。.NET Core的好处是非常小,只包括开发者需要的Class Library,非常模块化。

这套技术已经在Windows里第一次发布,会逐渐把它搬到服务端来。这上面微软会架构Base Class Library,一套统一内库,这就为前后端共享提供了技术支持,这会在2016年下半年推出。

网易游戏工程师周峰介绍了采用.Net Core开发《绝代双骄》游戏后端的经验。

前端用的是Unity引擎,非常自然的想法就是在后端也用C#来写,因为网易后端一直用Linux作为操作平台,积累了大量运维经验和开发经验,像监控、容灾、机房各方面配套都在Linux上,所以非常希望后端能够享受Linux成熟生态系统的便利。采用.Net Core之后,可以享受前端和后端语言一致性的好处,有非常多的开发语言的重用,特别是游戏行业有非常多验证逻辑需要在前端和后端一起跑,比如一场核心战斗。游戏行业会有独特的挑战,像外挂,需要在前端后端做非常强的验证,这些验证的逻辑如果分两套语言来写的话,会带来非常大的问题,还有非常现实的成本和进度的考量。另一方面的好处是人才培养,统一开发语言和编程环境之后,我们可以真正聚焦问题的核心,思考用户情景和商业价值,而不是思考优先队列在不同的平台上有几种写法,用不同的编程语言如何实现,这是更深远的好处。

很多游戏特别是手机弱视交换游戏后端都可以抽象地称为Web式架构,这是.Net Core特别得心应手的。我们在做后端架构时最重要的有两点,一是单台机器的性能要特别好,二是可延展性和扩展性要特别好,所有的逻辑都要做到平行扩展,做到备份与容灾,我们的逻辑纵向切分为逻辑服务器和共享的团队服务器。我们曾经碰到一个技术问题:在Linux上总是会有大量第三方依赖,微软技术和这些第三方生态能否够和谐融合在一起?我们花了几个月的时间和微软工程师紧密合作,迅速地把重依赖库结合到了产品中。

我们完整的架构和逻辑都在Linux上,能够为游戏前端丰富的展现提供坚实的后台支撑。这里也分享一些性能数据,做后台一方面服务是要能够平行扩展,能够应对突发的;另外一个关键的因素是投资回报率:用多少服务器来承载用户量,对游戏公司特别重要。和以前用Java和典型的服务器架构做横向比较,.Net Core在典型的用户情景上对我们的支持非常有力。业内典型手游服务器至少要做到一万人同服,上千人同时响应,无论是测试环境还是生产环境.Net Core都能很好地解决问题,还有独特的优势:例如性能非常稳定。当我们进行硬件更新换代和升级时,.Net Core带来的边际效应更好,这是合作中令人欣喜的地方。原来我们标准服务器是两套,用了.Net Core之后非常有可能把两台服务器变成一台,一台服务器就可以支撑一个大区的游戏玩家。

潘正磊谈到开源的体会时表示:微软所有的代码开源之后,开发者可以在自己使用场景中发现问题,然后发现一些优化的途径,然后把优化的代码直接给微软了,所以微软在开源过程中能够非常好地跟社区、跟开发人员、使用人员一起把产品做的最好,这也是没有开源之前比较难想象的一件事情。

DevOps:核心是四个持续

DevOps中文译为开发运维一体化,但潘正磊认为DevOps最核心的是四个持续:持续开发、持续交付、持续监控和持续学习。持续开发,希望每一次开发都是高质量的,很多功能三个星期迭代之后需要交付,这种持续发布是运维的一部分;通过持续监控,收集到及时的反馈,把遇到的问题非常快地解决。持续开发、交付、监控和学习的一个流程,不管是开发内部服务,还是云服务都是适用的。

微软支持DevOps开发模式的是SaaS的服务Visual Studio Team Services。微软内部,无论是服务器产品还是网络服务,都是用三个星期迭代的。Visual Studio IDE有一个DevOps,核心是一个持续开发、持续交付、持续监控和持续学习的闭环。而2012或者之前的版本没有这种能力,只能给开发人员一个全新的完整版本,没办法进行功能模块的更新。

网上服务每三个星期发布一次,最新功能三个星期之后会发布在Visual Studio上面,我们内部的也是三个星期一次内部的发布,我们的工程师会实时使用上一个迭代的产品来开发下一个迭代,每六个星期就会把我们最新的产品作为一个技术预览版的形式放在外面,给所有用户下载来收集及时的反馈这些都是为我们的持续交互来做延伸。通过持续监控,收集到及时的反馈把遇到的问题非常快地解决,这就是我们DevOps的体验。

潘正磊表示,很多DevOps在Visual Studio 2015最新版本中都得到了体现,这些功能和工具可以为不同企业做定制。工具是辅助开发团队达到所需效果,要知道自己的方法论是什么。TFS 2015在敏捷的项目规划、统一的版本管理、测试,质量管理、自动化部署等方面都有非常多新功能,为不同的工作方式打造了基础。微软在Microsoft Azure上也部署了Visual Studio Team Services,对不需要长久维持私有TFS Server的企业也是不错的选择。

原文地址:http://geek.csdn.net/news/detail/77485


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

微软企业应用开发三大方向:跨平台、开放/开源与DevOps相关推荐

  1. 企业主要培养三大方向的思考习惯

    目标导向,是做一件事的初心. 问题导向,是做一件事情的过程. 结果导向,是最一件事情的最终回报. 所以,做之前,想清楚要不要做.一旦做了,就不要瞻前顾后,全力以赴. 做的中途,要不断发现问题,解决问题 ...

  2. 艾永亮超级产品:企业做竞品分析的三大方向

    竞品分析几乎是每家企业都做过的,而不同阶段的企业对竞品分析的方向不同,那么作为帮助企业解决落地.增长.转型的艾永亮老师曾写过一篇关于竞品分析的文章,今天我将用艾永亮超级产品所写的文章告诉大家,什么才是 ...

  3. 微软企业互联网门户解决方案白皮书

    目 录 1.    序言    5 2.    如何使用本白皮书    5 3.    应用背景    7 4.    客户面临的挑战    7 5.    微软互联网门户解决方案    8 5.1. ...

  4. 微软推出 AI 开发免费电子书,手把手教你构建智能聊天机器人

    日前,微软推出 AI 开发者免费电子书,教导大家利用微软 AI 平台开发智能聊天机器人.该电子书不长,核心内容共有四十多页,其中涵盖大量代码,相信对于 AI 初学者来说,这将是一本很有用的实战教程. ...

  5. 微软宣布.NET开发环境将开源 支持Mac OS X和Linux

    11 月 13 日消息,据国外媒体报道,微软周三公布了 .NET 开发框架开源计划.公司拟将这长期以来只能运行于 Windows 系统下的开发环境,通过 GitHub 开源(https://githu ...

  6. 微软Silverlight 5开发书籍汇总

    Microsoft Silverlight是一个跨浏览器的.跨平台的插件,为网络带来下一代基于.NET的媒体体验和丰富的交互式应用程序.Silverlight提供灵活的编程模型,并可以很方便地集成到现 ...

  7. 华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”

    摘要:针对企业AI开发应用中面临的痛点和难点,为大家带来从实践出发帮助企业构建成熟高效的AI开发流程解决方案. 在数字化转型浪潮席卷全球的今天,AI技术已经成为行业公认的升级重点,正在越来越多的领域为 ...

  8. 【挨踢人物传】英雄不问出路,从化工员到微软企业护航专家(第16期)

    [编者有话]      本期的嘉宾韩立刚老师,从业十五年的时间,完成了从化工技术员到微软企业护航专家的转变.是什么原因促使他进入了IT行业,又是怎样的信念与学习方式让他成为了IT领域的专家?让我们来看 ...

  9. 应用数学考研跨考计算机,数学专业考研三大方向_跨考网

    数学专业考研有三大方向:基础数学.概率与统计精算.数学工程的科学与工程计算系.这三大方向的开设院校及研究生方向大家都了解吗.正值择校定专业的关键时期,下面详细为大家解析. 1.基础数学(应用数学) 专 ...

最新文章

  1. android view的隐藏和显示_Android使用Viewpager实现3D卡片翻动效果
  2. FFmpeg #39;scale#39; filter not present, cannot convert pixel formats.
  3. OpenCV最基本的测试代码-图像的读取与显示
  4. weex的实践踩坑日常(一)
  5. 区块链BaaS云服务(10)用友iuap区块链平台
  6. 梅捷主板A780G+不支持前面板耳机输出?
  7. received packet with own address as source address
  8. mysql 并发 锁表_MySQL中的锁(表锁、行锁) 并发控制锁
  9. 踩坑 net core
  10. python 多窗口编辑
  11. 计算机组成与体系结构——指令的基本概念——2020.11.19
  12. svn忽略class文件夹上传的方法
  13. ATV930变频器转矩控制如何设置?
  14. 数学建模系列-预测模型(五)---马尔可夫链
  15. 你的账户配置为阻止使用计算机,Win10打开软件提示为了对电脑进行保护,已经阻止此应用解决方法...
  16. 什么是4G工业智能网关?与DTU有什么区别
  17. 关于大学生是否沉迷游戏的报告
  18. 易语言 给程序加上记住账号功能
  19. Java的三种代理模式【附源码分析】
  20. html如何制作正方体手工图,怎么用卡纸做正方体(做长方体的步骤图纸)

热门文章

  1. 给IT新人的15个建议:苦逼程序员的辛酸反省与总结
  2. 本科 8年经验,20k的Offer,接还是不接?
  3. WPF 基于 .NET 5 框架和 .NET 6 的 SDK 进行完全单文件发布
  4. 为什么 IEnumerable 没有提供 ForEach ?
  5. Webapi测试工具WebBenchmark v1.3发布
  6. ABP vNext 审计日志获取真实客户端IP
  7. .NET Core 使用Topshelf方式创建Windows服务
  8. .NET5发布了,腾讯招聘点名要求精通MySQL,而不是SQLServer!
  9. 一文说通C#中的异步编程补遗
  10. ASP.NET Core 3.x API版本控制