.NET中的商业网络应用程序 - 选择哪种技术?

时间:2011-09-12 04:51:48

标签: asp.net asp.net-mvc silverlight html5 webforms

将Winforms应用程序移植到Web上。这是一个业务应用程序,但无法控制最终用户的浏览器。大多数情况下,每个人都会在台式机上使用IE,Chrome,FireFox和在iPad上使用Safari。

应用程序正在大量使用ListViews,TreeViews,网格,图表,并且具有整体“停靠式”界面(左侧是导航栏,右侧是详细页面,并且是标签式的 - 类似于Visual Studio UI )。不需要任何SEO / HTML友好框架,因为该应用程序隐藏在搜索引擎之外。

寻找有关网络技术的建议。需要本机或第三方支持ListViews,TreeViews,网格,图表和停靠UI。快速上市和简单非常重要。 /讨厌/搞砸Javascript或非服务器技术。

Silverlight的? MVC与HTML5?纯MVC?带HTML5的网络表单?计划Webforms? 第三方控制? (获得Telerik的许可,并且除非有免费/开源软件包,否则他们更愿意坚持使用它们)

我想一年前Silverlight应该是一个简单的答案,但现在我不再确定它是由于缺乏Silverlight支持的Android设备的最终崛起...而且似乎微软正在转向Silverlight到HTML5

那么,对于商业应用程序,还有什么是Silverlight而不是Silverlight?

谢谢!

6 个答案:

答案 0 :(得分:4)

虽然我在寻找UI天堂的地方,但我会考虑到我的想法。

我个人认为,如果你想坚持微软,但需要你的应用程序在非Windows平台上运行,那么镇上只有两款游戏。 Silverlight和MVC,带有一组很好的客户端UI小部件。

到目前为止,我的思维过程可以归结为:

Silverlight在开发的简易性(通过真正的MVVM /梦幻般的数据绑定)和UI的“丰富性”方面领先于MVC。但是,不幸的是,对于开发人员来说,对我们来说这对我们来说实际上并不重要。

正如其他人所指出的那样,SL的缺点在于它并没有在你想要的任何地方运行。最具体地说,Android和iOS很难(尽管你应该评估MonoDroid和Monotouch)。

MVC,我觉得它是最好的服务器端webapp技术,开发非常好,但根本没有SL所做的有状态客户端细节,你必须处理HTML,javascript和无状态客户端。

减轻这些评论是有很多很好的框架使javascript几乎可以忍受(我使用JQueryUI& wijmo),并提供半富客户端UI。

真正归结为与富裕相比。我也看到MS正在把重点放在MVC上。谁知道,也许我们将来会看到一些很好的数据绑定工具?

答案 1 :(得分:3)

如果你打算支持iphone / android / non-win,那么告别silverlight吧。然后,如果您计划支持智能手机,则需要针对小型和大型设备进行单独设计。对于小型设备,可停靠接口太杂乱了。

技术? HTML5会很不错,但只有最近的浏览器支持它,即使这样,也只支持bit&标准件。

MVC vs webforms?没关系。这只是一种吐出HTML的方式。

你需要做一些“搞砸Javascript或非服务器技术”。 Telerik提供了许多你为webforms提到的组件,尽管它们确实容易膨胀。

轻视您的要求:

  • 列表视图:webforms / mvc中的native
  • 树视图:telerik或jQuery插件
  • 网格:本机html表最适合IMO,或者你可以在asp.net或telerik做一个数据绑定
  • 图表:如果您有报道性质,可以使用免费插件,telerik,dundas或类似SSRS的内容
  • 对接ui:重新考虑你对此的需求。如果您仍然热衷于asp.net内置了webparts,或者您可以从jQuery UI获取包

总的来说,您可能正在寻找一种“快速”的方式来启用您的应用程序,但它们是两种不同的动物,并且会像这样执行。如果你使用每个可用的插件进行直接转换,那么你将花费大量的时间来学习每个组件,大量的页面膨胀,很多错误,并且它永远不会感觉正确。我的建议是同时学习如何创建一个合适的网站。从长远来看,你的成本会降低。

答案 2 :(得分:1)

我有类似的项目,去了ASP.NET MVC 2 + Telerik的免费MVC Components,它具有良好的Grid / ComboBox功能。

我也使用jQuery来处理一些UI。你将不得不摆弄Javascript,但你使用jQuery,我认为这是新的水平。一如既往IE6是痛苦:)

答案 3 :(得分:1)

(抱歉我的英语不好)我和你有类似的要求,并选择了Silverlight。我的客户不使用iPad或机器人作为工作工具但我的应用程序的某些部分将暴露给这些设备使用。对我来说,在html / js中开发所有内容会更加痛苦,因此当我的客户在99%的时间内使用windows / osx时,应用程序可以在所有平台上运行。

此外,平板电脑/智能手机/电脑都有不同的用户界面指南,对我而言,“html / js无处不在”这一点是没有意义的。即使使用html / js,如果你想要一个体面的用户体验,你也必须在每个平台上构建自定义UI(至少对于桌面/平板电脑)。

在Silverlight中设计UI非常简单,并且mvvm(如果你选择这条路线,请查找caliburn micro)非常适合。在服务器上,我使用RIA服务并公开OData源,以便其他客户端可以轻松使用数据。

答案 4 :(得分:0)

请记住,如果你使用Silverlight路线,你将会放弃Android,iPhone和Blackberry Devices,并仅限于Windows手机。使用MVC的Webforms始终是一个不错的选择。

由于组件和视图的分离以及接口的抽象,我总是MVC的大力支持者。 Webforms很好,你可以使用AJAX和JQuery集成它。那些在大多数浏览器上运行的,AJAX实际上非常漂亮的Android和iphone safari浏览器。我编写了ASPX页面,这些页面遵循各种移动设备的不同浏览器。这只是简单的环境变量,您可以指定哪些浏览器以及正在加载的移动设备。

Silverlight和WAML页面看起来很棒且便携,但它并没有在移动设备上大量使用。尽管如此,它可以在不同的平台上使用。

Plus Telerik Suite附带Silverlight / WPF,Webforms和Winforms,并且具有适用于所有三种格式的可比控件。

答案 5 :(得分:0)

我在前面的回答中忘记了一件事:如果你有任何要求与设备交互(无论是windows / android / iOS / OSX等),你真的必须做一个本机应用程序。虽然有些HTML5技术有能力做到这一点,但我怀疑它是否诚实 - 跨平台原生访问? 2)它还有很长的路要走。

我选择多次编写UI:一次在MVC / JQueryUI中,理论上运行“无处不在”(虽然这个部分随着不同的屏幕大小/形状因素迅速下降),并且每个“有趣”的本机应用程序部署方案“。

我目前正在研究最佳实践,以尽可能多地分解出常见的跨平台代码。如果大多数UI代码可以在UI之间共用,那么UI部分可能非常小,并且针对特定设备进行了优化。如果我可以保持用户界面“足够愚蠢”,那不应该是一种负担,对吧? : - )