在 Visual Studio 中使用 C# 或 VB 为 Mac、Windows 或 iOS 创建桌面应用程序 [关闭]
Posted
技术标签:
【中文标题】在 Visual Studio 中使用 C# 或 VB 为 Mac、Windows 或 iOS 创建桌面应用程序 [关闭]【英文标题】:Creating desktop application for Mac, Windows or iOS using C# or VB in Visual Studio [closed] 【发布时间】:2013-03-02 13:31:23 【问题描述】:我可以在 Visual Studio 中创建可以在 Mac、Windows 和 ios 上运行的应用程序吗?我的客户要求我创建一个可以通过一键安装在 Mac、Windows 或 iOS 上运行的业务线应用程序,而他宝贵的应用程序是用 C# 开发的 Windows 应用程序,目前只能在 Windows 上运行。 我看过xamarin,还有其他选择吗? 任何帮助或建议将不胜感激。谢谢。
【问题讨论】:
Xamarin 似乎只有一个.. 但要注意,你仍然需要一个 mac 来编译。 问题是 Xamarin 不是开源的,对于创建复杂的应用程序,我想它的 STARTER 版本不起作用。 【参考方案1】:Mono 是一个跨平台的开源 .NET 框架,适用于此。
【讨论】:
这是什么意思?我知道 30K 是帖子的限制?你说这个是为了“每日字数限制”,有这样的吗? 帖子长度必须至少为 30 个字符。 “Mono 可以解决这个问题”字符数不够。 所以我没有找到除 Mono 和 Xamarin 之外的任何选项【参考方案2】:是和否 ;)
通过 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 美分。
【讨论】:
你所说的大部分内容都很好,但你不能在这里真正比较 Excel。即使在 Windows 上也不是用 .NET 编写的。所以我认为这个论点不适用。但剩下的……好东西。 @Matt:谢谢。 Excel 示例并不是要指出一种语言,而是他要做出的选择不仅意味着一种语言和一种一次性完成所有工作的方式,每个平台、用户习惯、功能限制、屏幕尺寸、 API 等不能在一个大熔炉中合并。如果可能的话,它将为较低的公分母做出一些牺牲。【参考方案3】:您可以创建一个独立于机器、架构的网络应用程序。
或者您需要为 Windows 和 Mac OSX 创建两个不同平台的应用程序,它们都共享存储在某个服务器或任何类型的机器中的相同数据库。
【讨论】:
【参考方案4】:正如 MusiGenesis 建议的那样,Mono 可能会为您解决问题。您仍然需要 Xamarin's MonoTouch 来获得 iOS 支持,但如果您将业务逻辑分离到一个可以轻松重用的单独程序集。
您可能还想考虑为桌面版本制作两个不同的项目,一个使用MonoMac,一个使用 WPF(适用于 Windows),以便为您的用户提供更好的体验,但仍然在您的单独程序集中使用实际逻辑可以在所有平台上重复使用。
【讨论】:
问题是 Xamarin 不是开源的,对于创建复杂的应用程序,我想它的 STARTER 版本不起作用。 我现在看到他们已经更新了他们的定价,而不是变得更好。入门版可能有点弱,但听起来这是一个相当大的项目,然后 299 美元真的不会那么麻烦吗?以上是关于在 Visual Studio 中使用 C# 或 VB 为 Mac、Windows 或 iOS 创建桌面应用程序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 在 Visual Studio 2010 中使用正则表达式或 HTMLAgilityPack 抓取 HTML 页面的特定部分?
如何使用 Visual Studio 或 Resharper(或任何其他工具!)将 HTML 正确粘贴到 C# 代码中?
有没有办法在没有 WPF 或 Visual Studio 的情况下在 C# 中制作 GUI(仅使用代码)?