【问题标题】:How easy is it to develop an iPhone application using MonoTouch in Visual Studio?在 Visual Studio 中使用 MonoTouch 开发 iPhone 应用程序有多容易?
【发布时间】:2010-09-12 14:16:36
【问题描述】:

我了解 Monotouch,并且安装了虚拟 MacOS 和 Monodevelop/Monotouch。

但是,在 Mac OS X 上使用 Monotouch 构建 iPhone 应用程序更好,还是像在 Visual Studio 中构建 iPhone 应用程序并通过 Monotouch 将其移植到 iPhone 一样简单?

有没有人尝试将 c# 项目移植到 iPhone 上?与在 mac os 上使用 monodevelop/monotouch 构建应用程序有何不同?

ps。我最喜欢的助手实用程序在 mac os 上不存在,这就是这个 Q 的原因

【问题讨论】:

    标签: iphone visual-studio xamarin.ios


    【解决方案1】:

    如前所述,要编译您的应用程序并将其上传以供应用商店使用,或使用模拟器进行调试,您需要在 Mac 上使用 MonoDevelop。

    但是,可以在 Visual Studio 2008 或 2010 中编写大部分代码。

    我主要使用 Visual Studio 编写了 6 个在应用商店中销量不佳的 Monotouch 应用。我使用 Windows 和 VS2010 的原因是我使用 Mac 键盘要慢得多,我的 Visual Studio 设置是为了提高速度,而 PC 的处理能力大约是其两倍。

    以下是一些注意事项和提示:

    • 将 monotouch DLL 从 Mac 复制到 Windows(在 Mac 上搜索“monotouch.dll”),将所有 DLL 粘贴到静态位置并在项目中引用它们。然后它应该在 VS 中编译。
    • 确保保留 2 个项目文件 - 一个 MonoDevelop 和一个 Visual Studio。我尝试手动转换,还编写了一个转换器在两者之​​间进行转换,但它经常中断,只保留两个文件更容易。
    • 您还可以将 Mono XML 文档(与 Microsoft .NET XML 文档格式不同)转换为 Visual Studio intellisense。下面的链接下载了我为 Monotouch 2.1 生成的 XML 文档。
    • 避免使用共享驱动器进行开发。这使得 Mac 上的编译非常慢 - 坚持使用 U 盘复制文件,或者最好使用在线源代码控制网站,如 bitbucket.org
    • 我发现使用单个键盘、显示器和鼠标以及在 PC 和 Mac 之间切换的 KVM 切换器速度非常快。
    • 对于布局(XIB 或 C#),您必须使用 Mac,或者先在 VS 中编写基本框架。

    我已经写了很多关于流程here

    【讨论】:

    • 我将 Eduardo 的回复标记为答案,因为我无法同时标记两者。但是,您的回复也回答了我的问题,但 Eduardo 回答了更多问题。我希望你不要介意。 PS。希望 stackoverflow 允许将 2 个回复标记为答案
    • 我迟到了所以没问题
    • 非常有用的东西。非常感谢分享!
    • 有一个 VS2010 扩展可以自动执行此操作:Monodevassist。也可以在这里monodevassist.codeplex.com
    • 虽然这篇文章在技术上是正确的,Xamarin 2.0 offers VS integration including debugger.
    【解决方案2】:

    您根本无法仅使用 Visual Studio 开发 MonoTouch 应用程序。您必须使用 OSX 工具来构建代码并为手机创建包。没有办法解决这个问题,最简单的方法是使用 MonoDevelop。

    我和其他开发人员过去所做的是使用 Visual Studio 为应用程序开发一些 C# 库,因为即使 MonoDevelop 非常好,它仍然远不如 VS。例如,使用 Resharper 等工具重构代码要容易得多。

    在 Visual Studio 中开发应用程序时,您需要处理很多事情;例如:

    • 您根本无法从 Visual Studio 运行构建:VS 不知道如何构建 iPhone 所需的那种项目,并且它没有 iOS SDK 中存在的所有库。
    • 没有可视化编辑器来创建您可能想要为应用创建的 XIB 文件。
    • 您必须在这里和那里做很多额外的工作才能让 VS 甚至打开解决方案(例如将 lib 文件从 OSX 复制到 Windows、创建单独的项目等)(尽管我认为 Novell Mono 工具适用于VS 可能会在这方面有所帮助。

    这就是我过去 6 个月一直在做的事情:

    • 将应用程序分解为业务逻辑和 UI 逻辑的不同项目
    • 您应该能够从 VS 构建、编译甚至测试业务逻辑。请记住不要使用任何 UI 库或 MonoTouch 中不可用的外部库
    • 使用 MonoDevelop 构建应用程序的 UI 代码部分。能够快速运行应用进行测试有很大帮助。
    • 每隔一段时间,如果您觉得需要进行大清理,请在 Visual Studio 中打开代码,然后进行重构;尽管您将无法构建任何东西,但 VS 中的代码检查器将有助于确保代码仍然有效。

    希望对你有帮助!

    【讨论】:

    • 这也是我们的生命周期。我们的核心应用程序是在 VS 中构建的,但是拆分为多个程序集。核心服务构建为许多前端使用的 DLL 和/或 Web 服务。我们的 webapp 前端如果在 VS 中使用 ASP.NET MVC 构建,但 iPhone/iPad 客户端是在 OS X 上的 MonoDevelop 中构建的。能够在所有平台上重用相同的核心组件很棒,但你无法击败VS IDE(还)。
    • 听起来是一项糟糕的工作!你们确定不值得忍受痛苦并在 Xcode 中开发吗?...
    • 是的。如果你不想,你不需要做任何这些。无论如何,我想说 MonoDevelop 已经比 XCode 更好了。
    • This is no longer correct,顺便说一句。 Xamarin 2.0 提供 VS 集成。
    【解决方案3】:

    随着新的 MonoTouch 版本更名为 Xamarin.iOS,提供 tight Visual Studio integration,这实际上已经改变。你仍然需要一台 Mac 来构建和测试,但你可以在 VS 中工作而没有太多障碍。

    他们甚至连接了调试器:

    在此屏幕截图中,VS 和 OS X 在同一台计算机上运行,​​但它们不必这样做,因为它们之间存在本地网络连接。

    阅读更多here

    Xamarin iOS for Visual Studio 允许在 Windows 计算机上编写和测试 iOS 应用程序,并使用联网的 Mac 提供构建和部署服务。

    在 Visual Studio 中为 iOS 开发提供了许多好处:

    • 为 iOS、Android 和 Windows 应用程序创建单一跨平台解决方案。
    • 对所有跨平台项目(包括 iOS 源代码)使用 Visual Studio 工具(例如 Resharper 和 Team Foundation Server)。
    • 使用熟悉的(对于现有的 Visual Studio 开发人员)代码编辑器、键盘快捷键等。
    • Xamarin.iOS for Visual Studio 支持在 Mac 上的 Windows 虚拟机中运行 Visual Studio 的配置(例如,使用 Parallels 或 VMWare)。

    请注意,Visual Studio 集成在 $999 per license 的商业版中可用。
    (许可证是每人永久的,但您只能获得一年的免费升级。)

    【讨论】:

      【解决方案4】:

      MonoTouch home site 声明:

      请注意,MonoTouch 需要 Mac,苹果的 iPhone SDK,你必须 成为苹果 iPhone 开发者的一员 测试和部署你的程序 设备上的软件并 重新分发您的代码。

      【讨论】:

        【解决方案5】:

        我认为您在使用 Visual Studio 时会遇到的一些问题是

        • 您不会使用本机 UI 控件进行设计
        • 用于测试的模拟器会有所不同
        • 您最终可能会使用 MonoTouch 库中不可用的 API 调用

        我会坚持在 Mac 上使用 MonoDevelop。

        【讨论】:

        • 你有这方面的经验吗?
        • @askmo:没有经验,但我很确定 MonoTouch 没有 100% 与 .NET Framework 相同,因此可以使用不可用的调用。此外,我不知道使用不同的模拟器并使用在最终应用程序中看起来不像的 UI 控件进行开发的体验会有多“好”。
        • 你提到了一个不同的模拟器。我不相信 Windows 上有任何 iPhone 开发模拟器/模拟器可以部署应用程序包。
        • @Michael Shimmins:这就是我的观点。唯一的方法是使用 WinMobile 模拟器将其开发为 Windows Mobile 应用程序,然后通过使用 MonoTouch 重新编译将其“移植”到 iPhone。
        • 这不仅仅是重新编译——而是重新编写。
        【解决方案6】:

        由于您需要安装 Apple 的 iPhone SDK(仅适用于 OS X)才能使用 MonoTouch 进​​行开发,因此您只能在 Mac 上进行开发。

        MonoDevelop 是一个相当不错的 IDE,它与 Interface Builder 和 iPhone/iPad 模拟器的集成使得使用 MonoTouch 为 iPhone 开发是一种非常好的体验。

        【讨论】:

          猜你喜欢
          • 2011-06-02
          • 2015-07-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-07
          • 1970-01-01
          • 1970-01-01
          • 2020-08-01
          相关资源
          最近更新 更多