如何作为.NET开发人员开发业务线平板电脑应用程序?[关闭]


9

我公司在.NET开发方面有丰富的经验,并且在ERP系统中是我们的产品之一。最近,一位客户问我们是否可以为该系统提供平板电脑界面,即允许客户查看产品信息并在平板电脑上创建订单的软件。

当然,我们不为在此项目上投入大量时间和金钱来学习Objective-C,购买Mac开发工作站,向Apple付费等想法而感到兴奋(我们也许可以出售该应用程序之后又吸引了一些其他客户,但市场很小,因为它只会对我们ERP系统的现有客户有用)。

那么,我们该怎么办?据我所知,我们有以下选择:

  • 编写一个“ 普通的旧版Windows应用程序 ”(WPF),然后在Windows 7平板电脑上运行它,例如Samsung Slate或Acer Iconia。

    缺点:运行时间短的重型,昂贵设备(与“真实”平板电脑相比)。

  • 等待基于Windows 8 ARM的平板电脑并编写Metro(WinRT)应用程序。

    缺点:至少等待一年;尚不清楚Windows 8 ARM是否将不通过应用商店而支持安装自定义B2B应用。

  • 在Android上使用Mono,在Android上编写.NET应用。

    缺点:另一个UI库(与WPF和Silverlight不同);一些提供商不允许侧面加载应用程序。

到目前为止,选项1和3似乎是最现实的。我是否错过任何明显的缺点或优势?我还没有考虑其他选择吗?您是否遇到过类似情况,并且(成功)选择了一个特定选项?


2
@Downvoter:感谢您提供改进问题的反馈……
Heinzi 2012年

11
您忘记了其他两个选择:1.)学习Java和编写Android应用程序;或2.)
拒绝

有关针对.NET开发人员的移动开发建议,请收听此播客:hanselminutes.com/305/…
Treb 2012年

1
@FrustratedWithFormsDesigner看到我的答案
Deliciouscode 2012年

1
@Nupul:不,我没有答案,我只是排除了一个选择(在Objective-C中编写本机iPad应用)。还有其他选择,在经济上可能可行,因此,我在这里提出问题。;-)
Heinzi 2012年

Answers:


10

jQuery Mobile + 电话差距构建

正如前面所说,这基本上是说“使用HTML5和JavaScript来构建您的应用程序”,但有一个重要的转折。

Nitobi的Phone Gap Build服务(现在由Adobe拥有)允许开发人员将HTML5 / JavaScript应用程序转换为可以在本地部署到设备的“本机”应用程序(真正的混合应用程序)。我的理解是,基本上在幕后发生的事情是包装一个小的本机二进制文件,该二进制文件调用本机浏览器并从file:// URL加载您的网站。

您无需针对任何特定的JavaScript框架-在移动Web应用程序中能很好运行的HTML和JavaScript都可以正常工作。

离线支持也不难。借助许多移动设备都支持的本地浏览器存储,您可以通过这种方式构建真正强大的离线应用程序。最好的做法是在本地打包外部依赖项,而不是使用CDN,这样您的应用程序可以很好地离线运行。

诸如KnockoutJSBackboneJS之类的框架在允许您构建精心设计的JavaScript应用程序方面非常有用,并且它们与Phone Gap的构建服务配合得很好。

当设备在线时,您可以轻松地将其连接到ASP.NET/MVC、WebAPI或WCF服务后端以刷新数据。

产生的应用程序确实非常不错,并且可以在Apple和Android市场中分发。在那些使用Phone Gap Build和其他类似产品构建的市场中,已经有很多应用程序,而且99%的人(包括大多数开发人员)无法分辨两者之间的区别。

显然,您不会尝试以这种方式构建《愤怒的小鸟》(尽管我想您可以尝试使用Canvas),它可以很好地与您正在谈论的各种应用程序配合使用。

不要相信我。PhoneGap最近在HanselminutesDotNetRocksTablet Show上进行了PodCast 巡回赛。另外,我在最近的博客文章中对此进行了介绍。


+1我认为这是编写本机平板电脑应用程序的最佳折衷方案。
埃里克·金

我可能会尝试这样做,以使一个或两个应用程序起步……
SoftwareSavant

13

查看产品信息并创建订单

听起来很像HTML 5(以及通常提到的相关技术)所具有的功能。编写一个富Web应用程序,您将立即使用浏览器支持任何设备


2
从技术角度来看,您是正确的,但以我的经验,愿意购买平板电脑的人们期望比Web应用程序更闪亮的东西。
Treb 2012年

3
@Treb-Jakob Nielsen对这个话题有一些有趣的想法:useit.com/alertbox/mobile-sites-apps.html
jfrankcarr 2012年

2
许多平板电脑都允许您“安装” Web应用程序,使其看起来像一个应用程序。因此,我不会将其排除在外,因为HTML5并不像应用程序那样。对我来说,这似乎是最好的选择。
RationalGeek

3
另外...这不排除包含两个部分:Web应用程序和本机应用程序。HTML5是一个全面的选择……一旦构建并投入使用,如果企业愿意,您可以创建一个可选的Android / Apple / Metro / Blackberry应用程序。许多网站都为您提供了为其网站安装应用程序的选项。
WernerCD 2012年

2
@Treb-可以制作漂亮的Web应用程序。我至少会研究他们与光泽有关的要求。
psr

4

我建议将其开发为MVC Web应用程序。如果设计得当,这将使您能够在从台式机到智能手机的大多数设备上运行它。HTML5可能可以使用,但将取决于您需要支持的设备/浏览器的类型。如果您可以摆脱使用它,那将是很好。确保在将来可以将其部分用作WCF后端的Metro应用程序时,对其进行架构设计。


3

如果您想利用现有的.NET知识,则应该采用SOA方法,并将尽可能多的功能放入Web服务中(SOAP或REST,选择更适合您的一种)。这样,您只需要在设备上安装一个小型客户端应用程序,即可调用Web服务功能并显示结果。无论您选择哪个客户端,这都比实现业务逻辑的成熟客户端要容易得多。

它还允许以后添加对不同设备的支持,您只需要为新设备安装一个小型客户端应用即可。

为了选择设备,我看到两个条件:

  1. 选择一个您当前客户喜欢的产品(如果他们要求平板电脑应用,他们会有所考虑的)
  2. 选择最有可能被其他客户接受的产品。这很可能是iPad,或者可能是Kindle Fire,因为人们已经看过了。

无论如何,请不要等待尚未上市的设备。那将排除您的选项2(ARM平板电脑上的Windows 8)。


从今天发布的Microsoft Surface来看,这些设备可能很快就会投放市场。
Mamta D 2012年

0

任何Windows应用程序都意味着您与MS紧密相连。此外,Silverlight和iOS / IE 10配合不好。通过Web服务和/或JQuery获得HTML 5和JavaScript。Telerik-Kendo UI之类的第三方工具应使您的GUI足够酷,适合LOB App。点网只能在服务器端具有价值。


-1

最后的评论确实说明了一切:“ Dot Net仅在服务器端具有价值”-也许微软应该将其称为。不是吗?还是.WindowsOnly?

您甚至无法在.Net中编写Windows RT客户端应用程序。

的确,为了玩跨平台游戏,用.Net编写的业务逻辑和数据服务必须驻留在Windows服务器上并公开Web友好的API。最新的ASP.Net Web API在2013年4月几乎具有工业实力。这使您可以将.Net对象公开为JSON,以便可以轻松集成JQuery / JS客户端应用程序。

在客户端,您不能使用.Net。您必须使用HTML / CSS / JQuery编写所有UI代码,并使用JS(可能带有Knockout)进行面向数据的绑定的逻辑。

对于我们.Net开发人员而言,仅绘制我们的用户界面而无需编写标记是开发LOB应用程序的必杀技。谁提出了与.NET / VS / .Net / WinForms / C#/ VB.Net一起运行的客户端.Net框架,它将统治整个世界-而且,在我看来,Mono无处不在(没有第三方组件供应商的支持)接近VS / .Net / WinForms。


由于错误的陈述“您甚至无法在.Net中编写Windows RT客户端应用程序”,我不得不对此答案投反对票。
Ramhound

抱歉,我完全不同意您的说法,即您可以为Windows RT编写.Net应用程序-您的证据在哪里?
TriSys 2014年

我会咬。您所说的“客户端应用程序”到底是什么意思,因为我在一年前就提到了它非常具体的内容。因为我向您保证,我已经编写了.NET 4.5.1 Windows Store/WinRT应用程序并将其发布到商店。如果您想知道并且整个应用程序都存储在客户端,则使用C#。
Ramhound 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.