我可以在 Visual Studio 中创建可以在 Mac、Windows 和 iOS 上运行的应用程序吗?我的客户要求我创建一个可以通过一键安装在 Mac、Windows 或 iOS 上运行的业务线应用程序,而他宝贵的应用程序是用 C# 开发的 Windows 应用程序,目前只能在 Windows 上运行。我看过xamarin,还有其他选择吗?任何帮助或建议将不胜感激。谢谢。
4 回答
Mono是一个跨平台的开源 .NET 框架,适用于此。
是和否;)
通过 Visual Studio 和 Mono(据我所知,它是 .NET 的开源实现)是可能的(并且是全新的),但你仍然需要一个 mac 来编译 iOS / OSX 版本,一个 iPhone / iPad / iPod touch在设备等上进行测试
老实说,我会分别创建一个 OSX 应用程序、iOS 应用程序和 Windows 应用程序。愿意一次做所有事情很好(通常是成本问题),但这不是一个真正的选择(除非成本是主要问题)。
即使在 iOS 和 OSX 之间也存在许多差异,不同的概念(在 OSX 上可以选择多个窗口/在 iOS 中只有一个窗口,即使对于常见的东西也有不同的 API,iOS 应用程序的“触摸”将使您的工作方式不同,屏幕大小会让您想到不同的功能,或者并非所有功能都适合 iOS 应用程序)。“用户友好性”是需要考虑的事情。windows用户和mac用户不习惯相同的界面,相同的应用程序概念,手机或触控板上的手势,mac应用程序通常不使用(F1,F2等键)等。
有诸如phoneGap之类的东西(好吧,不是您问题的桌面部分),它说一切都可以在所有手机上运行,但它并没有受益于平台的优势,它达到了较低的公分母,这意味着您的应用程序通常效率较低比本地制造的要好。
更危险的是,您从这些工具的错误中继承,有些可能很难理解(我的代码中是否有问题,在 phoneGap/xamarin 中?)并且您可能会在这些东西上浪费很多时间。
最后只是成本问题。
甚至 Microsoft 的 Excel 在 OSX 和 Windows 平台之间也有所不同,他们甚至修复了 excel 2011 for mac 中的一个错误,该错误仍然存在于 Windows 版本中;)(如果我没记错的话,它们有不同的业务部门)
所以是的,业务逻辑,但 Mac 应用程序不仅是 Objective-C,您可以在 Xcode 中导入/使用 C 或 C++ 文件。
只是我的 2 美分。
您可以创建一个独立于机器、架构的 Web 应用程序。
或者您需要为 Windows 和 Mac OSX 创建两个不同的平台应用程序,它们都共享存储在某个服务器或任何类型的机器中的相同数据库。
正如MusiGenesis 建议的那样,Mono可能会为您解决问题。您仍然需要Xamarin 的 MonoTouch for iOS 支持,但如果您将业务逻辑分离到可以轻松重用的单独程序集。
您可能还想考虑为桌面版本制作两个不同的项目,一个使用MonoMac,另一个使用 WPF(适用于 Windows),以便为您的用户提供更好的体验,但仍然在单独的程序集中使用实际逻辑,您可以在所有平台上重复使用.