回顾:Xamarin 2.0发挥了移动开发的魔力

令人印象深刻的Xamarin SDK为c#程序员、Visual Studio带来了原生iPhone和Android开发

除非你生活在一个远离银河贸易路线的星球上,否则你就会知道,开发本地移动应用的编程语言只有两种——Java和Objective-C。如果你是一名经验丰富的c#程序员,想要尝试Android或iOS应用程序开发,那你就不走运了。不再:Xamarin 2.0,一个由Xamarin生产的SDK,允许您使用c#代码编写Android和iOS应用程序。同样重要的是,你可以用微软的软件做到这一点Visual Studio

Xamarin SDK基于一个名为Mono的开源项目,该项目允许Microsoft . net应用程序在其他平台上运行。Xamarin目前由类库、c#编译器和虚拟机组成。类库实现了微软的。net 4.0框架的核心api。编译器遵循c# 5.0标准,并且支持名称空间和程序集。虚拟机执行由c#编译器生成的通用语言基础架构字节码。

[同样在InfoWorld:程序员选择:用于快速移动开发的6种工具|了解如何更聪明地工作,而不是更努力地工作,InfoWorld总结了程序员需要知道的技巧和趋势开发商的生存指南.今天下载PDF !|与InfoWorld保持最新的开发人员新闻开发世界通讯.]

Xamarin SDK还提供了特定于平台的框架,可以使用谷歌的Android api和苹果的iOS api。然而,这些框架并不是只访问平台服务的最小公分母的抽象层api。相反,它们为每个平台的本地api提供了“绑定”——允许c#方法调用正确调用为使用不同编程语言而设计的本地方法的机制。调用Android API绑定框架Mono Android,而用于iOS的则被称为MonoTouch。其结果是:Xamarin允许您完全用c#代码编写本地移动应用程序。

为了充分使用Xamarin SDK,应用程序应该进行分解,使其UI代码与核心算法代码分离。也就是说,你用。net框架编写核心算法,然后使用Android的Mono和MonoTouch框架为每个目标平台实现本地UI。考虑因素的设计允许应用在Android和iOS设备上构建和部署,其中应用的核心代码使用目标平台的本地API。这个方案允许您重新使用经过实地测试的c#代码和库。它还提供了选择使用多少平台本地api的灵活性。例如,你的应用程序可能使用。net网络栈来提供网络服务,或者依赖平台自己的网络栈框架。

要开发Android和iOS应用程序,你可以使用Xamarin自己的IDE, Xamarin Studio,或者坚持使用Visual Studio。Xamarin IDE允许您将项目组织成解决方案,这样一个构建命令将使Android应用程序和iOS应用程序。Xamarin IDE还允许您在每个平台或设备本身的模拟器中执行和调试代码。如果您喜欢在Visual Studio中进行开发,则没有任何妥协,因为Xamarin允许您使用Microsoft的IDE在目标设备上构建、下载和调试应用程序代码。

iOS应用程序开发:非常复杂尽管Xamarin允许你使用Windows PC进行iOS开发,但这并不意味着你不需要Mac。出于多种原因,Xamarin仍然需要苹果的iOS SDK工具来完成代码生成。例如,代码调试需要Xcode模拟器,应用程序的界面必须使用Xcode的布局和故事板编辑器,interface Builder (IB)设计。最后,要在App Store中发布应用,你必须使用Xcode的代码签名机制。

如何使用Visual Studio来编写和调试iOS应用程序?Xamarin巧妙地将Mac设置为Visual Studio的后端构建服务器。在Mac上安装Xamarin将在计算机上放置一个远程构建服务器。这个构建服务器使用苹果的Bonjour服务发现协议,以便Windows系统可以在网络上找到它,并与它建立远程会话。一个便宜的Mac Mini可以作为多个Windows开发人员的共享网络资源。

当你用Visual Studio执行构建时,远程会话会让构建服务器向Xcode构建工具发出适当的命令行。(这是因为Xcode IDE本身只是一个命令行工具之上的GUI。)构建完成后,Mac上的iOS模拟器启动,Visual Studio的远程命令通过Xcode调试器操作模拟器。或者Xcode调试器可以将代码下载到iOS设备上,你可以通过Visual Studio调试它。

iOS应用开发的另一个方面是是否要IB, iOS应用的UI可以通过两种方式构建:通过程序代码或使用Xcode的可视化编辑器。IB允许你通过指向、点击和拖动UI元素来布局应用的界面。这些UI元素实际上是序列化格式的Cocoa Touch框架对象。也就是说,你在IB中操作UI对象本身,这种编辑Cocoa Touch对象的能力在PC上不容易复制。因此,你要么在Mac上使用IB来设计应用程序的UI,要么完全用代码编写UI来实现它。在后一种情况下,您可以使用类似的实用程序PaintCode,它可以让你可视化地设计UI;然后生成相应的Objective-C或c#代码。

为Android应用构建UI可以通过Windows工具完成,因为Android使用XML存储布局。Xamarin Studio有一个类似于IB的图形布局编辑器,可以让你可视化地构建Android应用程序的UI。Xamarin还提供了一个外接程序,它在Visual Studio中实现了这个图形化编辑器。

使用Xamarin Studio在iOS模拟器中运行c#应用程序。在管理登录屏幕的本机实现的特定于平台的UI文件中设置了断点。

Xamarin设置:注意你的步伐通过Xamarin技术支持的快速检查,我确认了我用于iOS开发的MacBook Pro是合适的。这台Mac有8GB内存,运行Mac OS X 10.7 (Lion)。我已经安装了Apple Xcode 4.5.2工具,并设置了许多用于在iPhone 4和iPad上调试代码的代码签名配置文件。根据我的经验,在Xcode中配置配置文件是一件很麻烦的事情,所以我没有冒险,只是为了Xamarin的工作而制作和测试一个配置文件。

没有可用的Windows机器,所以我使用VMware的Fusion 5.0.3在Mac上设置了一个虚拟PC。虚拟PC运行的是Windows 8 Professional,我在上面安装了Visual Studio 2012工具。注意,不能使用Visual Studio的Express版本进行Xamarin代码开发。

安装过程很长。Xamarin安装程序可以在Mac和PC上下载并安装许多文件,比如SDK组件、IDE和Android SDK(如果没有的话)。不过,我在Mac和PC上都没有遇到任何问题。

在转向PC平台之前,我先使用Xamarin Studio解决了iOS工具和配置文件的问题。我下载了一个Xamarin跨平台示例应用程序的源代码,以便使用它。该示例包含一个包含三个项目的解决方案。第一个项目有通用代码,第二个项目有针对Android平台的代码,第三个项目有针对iOS的代码。你可以开始构建完整的解决方案(构建Android和iOS版本的应用程序),也可以单独构建。Xamarin的每个项目构建控制让我想起了CodeWarrior。

这两个版本的应用程序我都做了,当我调试代码时,iOS和Android模拟器都按需出现了。我可以设置断点,查看变量,并逐步遍历代码。在苹果设备上调试iOS应用程序需要一些工作,因为这时代码签名就开始发挥作用了。

当我试图下载到iPad上时,我最初收到了关于一个无效配置文件的错误消息。知道这个配置文件很好后,我在Xamarin Studio中查看了各种iOS构建设置,并追踪到了应用名称和包标识符的空白字段。Xcode会为这些设置创建默认值,而Xamarin不会。在这些字段中输入有效信息后,我就能够从Xamarin Studio在iPhone和iPad上调试应用程序了。我没有Android设备来测试硬件调试。

我切换到PC端,打开Visual Studio,然后打开一个示例iOS项目。要构建应用程序,你必须首先连接到Mac构建服务器。我选择Tools >选项和在Xamarin iOS设置下寻找一个Mac构建主机。果不其然,有了MacBook-Pro。本地构建服务器,我点击了它。这就是全部。然后我让Visual Studio构建项目,远程构建进行得很顺利。

Xamarin将这一过程视为一门科学——我从未在iOS构建中遇到任何问题。当我启动调试器时,iOS模拟器出现了,我能够使用Visual Studio设置断点并逐步遍历代码。考虑到仿真和重定向的所有层,Xamarin的成就是相当惊人的。

使用Visual Studio调试OpenGL应用的iOS实现。注意,Visual Studio在一个断点上停止了执行,并且变量transY已经被更新(红色)。

Visual Studio,来看看iPhone让Visual Studio将应用下载到iOS设备上并不顺利。首先,我有一个不同的代码签名问题,我追踪到必须指定应用程序的签名配置文件及其bundle ID。在Mac上,Xcode和Xamarin Studio都可以根据bundle ID信息找到并分配正确的配置文件。但是Visual Studio只将Mac视为构建服务器,因此需要显式地输入配置文件信息。

接下来,当我将USB线插入iPad时,VMware Fusion问我,应该由Mac还是PC来管理USB接口;我选择电脑。Visual Studio检测设备失败。Xamarin的技术支持很快让我明白了:因为构建和调试控制是由Mac管理的,所以它需要拥有USB端口。在我选择Mac后,Visual Studio检测到设备,并将代码下载到iPad或iPhone上。我可以设置和删除断点,单步通过源代码,并观察变量的变化。

我可以在PC版的Xamarin Studio和Visual Studio中创建Android应用程序,但我无法启动Android模拟器。我知道这个问题与VMware环境有关,因为在谷歌站点上安装的Android SDK也出现了同样的问题。VMware帮我解决了这个问题:在安装Android开发者工具之前,请关闭VMware Fusion的虚拟机菜单下的共享文件夹。共享文件夹允许您轻松地在Windows VM和Mac之间共享文件,但它会破坏Xamarin Studio和Visual Studio启动模拟器所需的目录路径。只要共享文件夹关闭,你就可以使用Android模拟器。 

Xamarin的技术支持非常好。销售代表通常在询问后几小时内作出回应——有一次是在15分钟内。此外,该公司还经常发布更新。似乎每次我启动这些工具时,都会收到下载补丁的消息。不利的一面是,该文档似乎还在进行中。对于许多领域,在线参考资料显示的信息是:“本节的文档尚未输入。”

Xamarin提供了各种各样的SDK,从非常有限的入门版免费到功能齐全的企业版1,899美元不等。注意,在Starter版本上很容易遇到32KB代码限制。如果您想在没有代码限制的情况下使用Visual Studio进行试验,则需要注册Business版的试用版。

Xamarin的工具包非常引人注目。它向c#开发人员开放了最流行的移动平台的应用程序开发,并允许您携带现有的c#源代码库。它提供了用目标平台的本地UI包装此类代码的方法。最后,SDK允许您使用Xamarin Studio或Visual Studio进行c#开发,并允许共享最终代码生成所需的Mac。

你必须雇佣Android和iOS开发者来处理UI细节,但如果你的计划是使用c#代码部署应用,那么你已经放弃了混合应用的选择,无论如何你都会雇佣这些程序员。有才华的c#程序员想要进入快速发展的手机市场,他们肯定想要仔细看看。

  • Xamarin允许你完全用c#编写移动应用程序,不需要黑客访问本地iOS和Android api
  • 您可以使用Visual Studio在模拟器和硬件上调试代码
  • 技术支持迅速响应
  • 最终生成iOS代码所需的Mac可以共享
  • 文档仍然不完整
  • 你仍然需要Mac才能生成最终的iOS代码

,

这篇文章中,“回顾:Xamarin 2.0发挥了移动开发的魔力,最初发表于InfoWorld.com.跟踪最新的发展应用程序开发移动技术在InfoWorld.com上。了解最新的商业技术新闻,请关注在Twitter上InfoWorld.com

阅读更多关于应用程序开发的内容在InfoWorld的应用开发频道。

这个故事,“回顾:Xamarin 2.0的移动开发魔术”最初是由信息世界

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对自己最关心的话题发表评论。

版权©2013Raybet2

工资调查:结果在