【发布时间】:2014-03-28 02:42:51
【问题描述】:
在 Xamarin 解决方案中,典型的项目分组如下:
SOLUTION
CORE Project (shared non-UI code, referenced by all the other projects)
Android Project
iOS Project
Windows Phone Project
使用此解决方案架构,您需要为每个(非核心)项目编写特定于平台的 UI 代码。
只有两个项目不是更容易吗,像这样:
SOLUTION
CORE Project
HTML5/CSS/jQuery/jQuery Mobile Project
有什么缺点? HTML5/jQuery Mobile 的“服装”可能看起来不像原生应用程序;性能可能不太好。
但这会是一个可行的选择吗?我很想根据以下陈述尝试一下:“...总的来说,Web 应用程序比使用不同语言的多个本机应用程序更容易开发和维护”here。
我将 PhoneGap 视为具有单独本机代码的最低公分母 GUI,将 Xamarin 视为具有单独 GUIS 的 API 的最低公分母子集,并且该提案是这两个 GUI 的最低公分母和 API。但作为对两端“贫民窟”的补偿,代码(部分)共享,所有的 GUI 都是共享的(尽管对各种浏览器进行调整和填充无疑是必要的)。
我看到的主要问题是那些需要编写特定于平台的代码的领域,例如处理条形码扫描和外围设备(带式打印机)打印——它会在哪里?
更新
根据我在 Doogie Howser 的“Xamarin Cross-platform Application Development.pdf”中看到的内容,似乎解决方案文件夹实际上应该是这样的:
SOLUTION
FooeyBar.Core
. . .
FooeyBar.Core.Droid
. . .
FooeyBar.Core.iOS
. . .
FooeyBar.Droid
. . .
FooeyBar.iOS
. . .
想法/肯定/反驳?
【问题讨论】:
-
我已经做了一些将 HTML/JS 嵌入到原生 Web 视图中的示例,并在 JS 和 C# 之间建立了一座桥梁。虽然这对于某些用例可能很有用(我使用 CanvasJS 创建了一个示例来显示图表),但我觉得通过适当的设计(例如 MVVM),您的 UI 层会变得很薄且易于实现。性能和原生 UI 是 Xamarin 是不错选择的原因,而过多的抽象和非原生 UI 将是一个倒退。
-
是的,我知道您所说的“太多抽象”是什么意思。我最近看到一个(可能是半开玩笑的)引用,它说计算机科学中没有任何问题无法通过添加另一层抽象来解决,有时似乎这些层已经铺得如此之厚,以至于最后一层有与原始/基础几乎没有关系,似乎英语翻译成德语翻译成西班牙语翻译成皮拉丁翻译成祖鲁语,一个人要么失去了线索,要么失去了试图建立联系的思想。
-
作为旁注,我想知道为什么 Mono 猫(这是一个可怕的名字,总是让我想起单核细胞增多症)没有将 Xamarin 命名为“C#Xam”(发音为“ShaZam!” )?
标签: jquery-mobile windows-phone-8 xamarin.ios xamarin.android xamarin