Asp.net mvc 将Silverlight用于电子表格类型的web应用程序模块时的陷阱?

Asp.net mvc 将Silverlight用于电子表格类型的web应用程序模块时的陷阱?,asp.net-mvc,silverlight,Asp.net Mvc,Silverlight,这个问题包含了大量的背景信息,以确保您完全理解我们研究这些技术的原因 问题基本上是这样的: 对于我们需要为我们的应用程序的webmodule开发的大型电子表格类型的模块,如果我们决定使用Silverlight,我们应该知道哪些陷阱? 我们已经知道的问题,不需要任何讨论/提醒: 我们知道使用插件类型的解决方案可能会出现问题,用户机器上可能会安装也可能不会安装(在某些情况下,可能无法安装)。这些风险需要缓解,但我们已经意识到了。请不要挂断这件事 我们是一家.NET公司,所以虽然RubyonRail

这个问题包含了大量的背景信息,以确保您完全理解我们研究这些技术的原因

问题基本上是这样的:

对于我们需要为我们的应用程序的webmodule开发的大型电子表格类型的模块,如果我们决定使用Silverlight,我们应该知道哪些陷阱?

我们已经知道的问题,不需要任何讨论/提醒:

  • 我们知道使用插件类型的解决方案可能会出现问题,用户机器上可能会安装也可能不会安装(在某些情况下,可能无法安装)。这些风险需要缓解,但我们已经意识到了。请不要挂断这件事
  • 我们是一家.NET公司,所以虽然RubyonRails和许多其他不同的平台和架构都适合这个解决方案,但它们不在这里的决策范围之内。我们已经在.NET中编写了大量代码,需要加以利用,否则无论平台如何,项目都无法完成

背景

我们的应用程序有一个web模块,包含员工相关信息和一些输入表单。我们的Windows桌面应用程序主要是部门领导类型的应用程序,用于管理员工,但web模块主要包含以员工为中心的功能。web模块主要包含报告类型的网页,用于列出来自系统的信息或输入表单

我们现在需要添加的模块更多的是一个繁重的电子表格类型的应用程序。你在一个地方改变了一些东西,而在另一个地方改变了一些东西,比如总和,什么是启用/禁用的,等等

我们知道我们可以用AJAX管理所有这些,但这里的另一个问题是,应用程序可能会加载大量数据库数据,以便将数据放在用户面前,而使用AJAXy解决方案,我们担心这里的请求/响应方法将不得不在每个请求上重新加载大量信息,即使是回答看似简单的问题

缓解这种情况的一种方法基本上是将信息加载到会话对象或类似对象中,但这是一个很大的禁忌,所以我们不希望这样做。这是一个多用户模块,有些数据是静态的,但有些数据也需要不时刷新,因此如果10个用户将大量数据加载到会话中,这将是一个相当大的内存损失

如果我们选择这样做,我们将使用ASP.NET(MVC),也就是说,使用纯HTML和类似技术开发模块

然后我们查看Silverlight,然后将所有信息下载到客户端的Silverlight应用程序中。它将保持当前状态,并且只需要在某些时候触摸数据库来刷新一些信息,因为我们认为ASP.NET(MVC)的请求/响应模型可以在每个小请求上工作

但是,由于我们对Silverlight只做了一些小事情,我们对它没有太多的经验,我们担心我们所做的一些假设,不管是陈述的还是无意识的,都会被证明是错误的或有缺陷的,这将使这个项目在某个时候变得不可能或很难管理

例如,举个例子,Silverlight应用程序允许加载的内存是否有限制(我知道,如果我不得不问,我可能负担不起),例如,如果有10MB的限制,那么在我们中途开始加载非常繁重的数据之前,最好先了解一下

为了使举例更简单,我们假设我们正在构建一个电子表格,其中包含大量数据,对于简单的“此处更改了一个数字,其他更改了什么”,必须从数据库加载太多数据才能使用适当的请求/响应模型,如果我们将整个数据移动到Silverlight,是什么让这个项目变得困难或不可能

了解这些情况至少能使我们有能力考虑价格是否可接受。< / P > 简而言之,我们为什么不使用Silverlight来实现这一点,而使用ASP.NET(MVC)?

再说一次,“改用RubyonRails”并不是一个真正的答案。这些选项是我们有经验的ASP.NET(MVC),或者我们没有但可以获得的Silverlight


当然,如果Ruby on rails,考虑到我们必须从基础设施方面从头开始,学习一种新的编程语言和框架,下载并学习一种新的IDE/工具,如果它仍然允许我们将开发时间减少一半,那么请给我们一些关于如何工作的信息,但我敢说这在这里不会发生。

对于您描述的丰富界面,我肯定会选择Silverlight或Flash,而不是html/javascript/ajax解决方案

这些技术使得跨平台的接口更好、更一致,您可以购买各种组件来加快速度,并以更结构化的方式支持复制粘贴和代码

另一个要素是技能,如果你有在特定技术中实现这一目标的技能,那么就去做吧

为了回答你的问题,我尽了最大的努力;如果您决定使用flash,则不应使用silverlight


HTH

对于您描述的丰富界面,我肯定会选择Silverlight或Flash,而不是html/javascript/ajax解决方案

这些技术使得跨平台的接口更好、更一致,您可以购买各种组件来加快速度,并以更结构化的方式支持复制粘贴和代码

另一个要素是技能,如果你有在特定技术中实现这一目标的技能,那么就去做吧

为了回答你的问题,我尽了最大的努力;你不应该使用silverlight i