2010-09-30 23 views
1

我们目前有一个WinForms应用程序,我们要慢慢迁移到一个Web应用程序。什么是ASP.NET MVC中高流量,复杂形式的一些技巧?

一个屏幕是一个使用DataWindow的时间表输入系统,它非常慢并且很麻烦。 无论如何,时间表屏幕有五个实时保存的部分。完成的时间表需要2-5个这些部分。

目前系统运行缓慢。我们的一些远程办事处几乎没有压裂-T1。

所以我想用ASP.NET MVC2重新设计是屏幕,甚至可以提供一些增强,如自动完成(它目前缺乏)等

对于我知道窗体上的最佳做法的任何建议会是高容量并运行在可能的慢速网络上?

目前,由于时间表的每个部分在退出某个字段时都会保存,因此存在大量往返流量。我想避免这一点,但我承认部分保存很酷。

任何意见或建议表示赞赏。

感谢

+0

缓慢的网络可能意味着两件事 - 它是高延迟?低带宽?或两者?两个非常不同的问题,以建筑周围。 。 。 – 2010-09-30 14:43:11

+0

我不熟悉我们的远程连接和带宽。这里有网络人员没有完全发布这些信息。我的怀疑是两者的混合。 – cbmeeks 2010-09-30 14:53:54

回答

0

php/lamp与asp.net mvc:涉及的唯一因素不是许可成本。团队扮演重要角色,当然这取决于您的现有技能,但追逐您不太习惯的平台将会带来更高的开发+基础架构开销。

因为这个项目可能不会给出预期的结果,那会比保存小百分比更大的问题。先发制人的攻击:你不需要在asp.net MVC中使用ms sql,所以“数据库许可证不会使它变小”不是一个有效的论点。

至于提示检查我发布到这个问题的答案:Scalable application with ASP.NET or Google AppEngine。此外:

  • 您不需要一次加载所有这些选项卡。您可以在用户选择它们时检索标签。这会使初始加载时间更快(以第一次打开其他标签时希望的小延迟为代价)。如果适合该场景,则可以在客户端保存已打开的选项卡,因此额外的命中/延迟仅在第一次打开额外选项卡时发生。

目前,有很多往返交通由于时间片的每个部分保存时,他们标签了实地的。我想避免这一点,但我承认部分保存很酷。

您可能已经这样做了,但您可以使用更改检测来确保只有当用户实际进行更改时才会发布更改。此外,您不需要发送整个选项卡,只需发送所做的更改即可。

+0

感谢您的回复,但PHP不会在这里飞。此外,我在C#(WinForms)和Rails方面经验丰富,所以来自MS的MVC解决方案对我来说更有意义(在这家公司) – cbmeeks 2010-09-30 20:02:18

+0

@cbmeeks可能我搞砸了我的写法,但我根本没有说使用PHP,完全相反,即改变可能会比团队惯用的.net更坚持.net。请检查我链接到的答案以及我在此答案中发布的所有其他信息。我所说的唯一的事情就是你不必使用ms sql,这通常被毫无意义地包含在有关许可成本的论据中,这些论据是由php/lamp开发人员提供的。 – eglasius 2010-09-30 20:56:27

1

这是一个艰难的一个给出一个明确的答案 - 无论选择你把会有权衡和妥协。

就我个人而言,我会建议OOB Silverlight 4 + WCF。

您可以一次性下载Silverlight应用程序,但一旦他们安装了唯一的流量,您应该拥有的是发往/来自Web服务的数据和消息。将流量减少到纯粹的数据+消息并消除HTML会减少拥塞。

您可以使用ASP.Net或ASP.NET MVC中的AJAX,但每当用户想要填写时间表时,您仍然可以下载页面。 AJAX也可以有点琐碎,特别是当提供自动完成功能时。使用ASP.NET/MVC时,获得使用UI的好处也会相当困难,使用SL,您会发现模拟当前Winforms应用程序的UI功能变得更加容易。根据我的经验,在Silverlight中开发富Web应用程序的速度要快于ASP.NET。在任何情况下,如果您使用这两种技术对一些演示进行编码并运行它们以查看它们在最差的办公室中的表现如何,那将是最好的,这将是唯一确定哪种方式最好的方法。

可以用SL4可以减少下载Silverlight应用程序的交通肇事逃逸,使应用程序的脱离浏览器之一,发运XAP文件给用户,并使用sllauncher.exe进行安装(这是系统管理员的面包和黄油东西)。这确实使更新SL应用程序变得更加困难,但是您可以在网络流量特别差的办公室以这种方式进行。

+0

+1,SL和MVC之间的很好的比较。另外,同意在MVC和SL中尝试重新创建现有WinForms应用程序的功能可能会有更多工作。 – 2010-09-30 14:01:15

+0

感谢您的回答,但我没有提到Silverlight是不可能的。如果你知道我的意思,我并不是在抨击这项技术,而是那些想要一个“网络应用程序”并且没有“下载软件”的能力。 – cbmeeks 2010-09-30 14:51:58