4

我们有一个在 Windows Mobile 上运行的业务线应用程序。它是一个带有本地 SQL CE 数据库的 Winforms 应用程序,并从服务器上运行的 WCF Web 服务获取其数据。

现在客户总是在问“为什么不为 iPhone/iPad/Android/Phone 7 等制作一个版本”。我的老板问这有多难。我最初的答案非常困难,尤其是因为我可能是唯一做这项工作的人。在我的 Visual Studio 快乐的地方之外,我没有任何经验。

现在我遇到了 MonoTouch 和 MonoDroid。他们似乎提供了一个简单的解决方案,但我敢肯定有很多问题。我怀疑我是否能够为 Android 编译我的应用程序。

我倾向于认为这将是太多的工作,唯一现实的解决方案是一个移动网站,每个页面都有多个版本,用于不同的屏幕分辨率。不幸的是,现有的应用程序有一个本地数据库,并且“有时是连接的”,所以不会削减它。

在我浪费大量时间之前有什么建议和技巧吗?

干杯
马克

4

3 回答 3

8

我怀疑我能否只为 Android 编译我的应用程序

那是对的; 你不会的。

所以,背景:MonoTouchMono for Android的设计理念是为 iOS 和 Android 带来“核心”.NET 和 C# 体验,同时暴露每个特定平台的底层特性。PhoneGap和Titanium抽象了底层平台(用于“一次编写,随处运行”的氛围),而 MonoTouch 和 Mono for Android 不提供平台抽象,而是直接公开底层平台类型和成员

结果是 MonoTouch 程序使用MonoTouch.UIKit.UIButton,它直接包装了底层的 CocoaTouch UIButton类型。

同样,Android 程序的 Mono 将使用Android.App.Activity,它直接包装了底层的 Android android.app.Activity类型。

两个平台上的共同点是您在 .NET、.NET CF、Silverlight、Windows Phone 7 和 Mono 上找到的“核心”框架命名空间和类型System:to-XML)、等等等等。例如,请参阅Mono for Android 中包含的程序集System.Collections.GenericSystem.LinqSystem.Xml.LinqSystem.IO

那么,您可以在 Android 上按原样使用现有的 Windows Mobile 应用程序吗?不,因为 Android 的 Mono 不提供System.Windows.Forms.

但是,您应该可以重构现有代码以遵循模型/视图/控制器设计模式(或 MVVM,或...),抽象出 UI(视图),以便您可以将其替换为各种平台,例如,带有 MonoTouch 的 iOS UI、带有 XAML 的 WP7 UI、带有 Mono for Android 的 Android UI、带有 ASP.NET MVC 的 HTML UI 等等。您不会获得“一次编写,随处运行”的体验,但是您将能够为用户提供与他们选择的平台一致的本机用户界面。

For example, see the MIX11 Conference Apps, which utilize a common code base while providing platform-specific UIs for iOS, Android, and WP7.

于 2011-04-28T14:10:55.603 回答
1

看看钛和phonegap。

于 2011-04-28T07:23:26.220 回答
0

我的建议是快速浏览一下 WP7。很容易上手,如果你有 Visual Studio(你有)和任何类型的 C# 经验,更是如此。然后,您应该能够更轻松地估计开发 C# 应用程序需要多长时间(并可能使用 MonoDroid 将其移植到 Android)。

是的,Titanium 和 PhoneGap 是选项,但我个人认为 MonoDroid 看起来更好。

您对哪个平台的请求最多?我猜是Android,因为这似乎最有可能。我见过很多人说 MonoDroid 真的很可靠。

于 2011-04-28T07:47:49.813 回答