【问题标题】:Question about Architecture for Viewing Images in ASP.NET MVC App关于在 ASP.NET MVC App 中查看图像的架构问题
【发布时间】:2010-05-29 02:56:27
【问题描述】:

我想到了一种用于网络应用程序中的图像查看器的方法,并且想要进行健全性检查以及你 stackoverflowers 可能有的任何想法。

以下是简要总结: 我正在开发一个 ASP.NET MVC 应用程序,该应用程序将在我公司的零售店中运行。尽管它是一个 Web 应用程序,但我们拥有商店机器并可以控制它们。我们在商店机器上运行了一个“windows 代理”,我们可以通过 javascript 从浏览器与其对话(它是一个 WCF 服务,我们的网络应用程序有权从浏览器与其对话)。

其中一个网页需要是一个“图像查看器”页面,其中包含一些常见的功能,例如旋转和缩放。

现在,有一些提供旋转和缩放的 WebForms 控件。但是,它们占用服务器资源并在服务器和浏览器之间产生大量流量。例如,Rotate 函数将导致对服务器的 ajax 调用,然后生成一个写入 .NET Canvas 对象的新图像,然后将其写入服务器上的文件,然后从 ajax 返回在浏览器中调用并刷新。

通常,这是一种很好的做事方式。但在我们的例子中,我们有代码在我们可以通信的商店机器上运行。这导致我考虑以下方法:

  1. 当用户要求查看图像时,我们会告诉“Windows 代理”将其从我们的图像服务器下载到存储计算机。
  2. 然后我们将浏览器重定向到我们的图像查看器页面,该页面将从我们刚刚写入存储机器的本地文件中提取图像
  3. 当用户点击“Rotate”时,我们会在浏览器中让 JavaScript 代码调用我们的“windows agent”软件,要求它执行“Rotate”功能。
  4. “windows 代理”使用以前在服务器上使用的相同类型的图像控制进行旋转,但现在在商店计算机上这样做。
  5. 浏览器中的 Javascript 然后刷新页面上的图像以显示新旋转的图像。

缩放和类似功能将以相同的方式实现。

对于最终用户而言,这似乎更加高效、可扩展且响应迅速。但是,我从来没有听说过这样的事情,主要是因为在客户端计算机上很少有这样的 Web 应用程序和“Windows 代理”组合。

你怎么看?可行的?合理的?我忽略的任何陷阱或您可以看到的改进/建议?有没有人做过类似的事情,愿意提供经验的智慧?

谢谢!

【问题讨论】:

  • 应该是一个社区维基。

标签: javascript asp.net-mvc ajax image canvas


【解决方案1】:

我以前从来没有做过这样的事情,但首先想到的是为什么不使用 Silverlight 作为图像查看器,或者可能是闪光灯?

【讨论】:

  • 嗯,这可能很合适,但我们目前在我们的项目中没有使用这两种技术。在我们的解决方案中仅仅为了一页的目的而引入它们似乎有点多。但是我经常对自己想,如果我们重新开始,Silverlight 是否可能不是我们会选择的。毕竟,我们是一家 .NET 商店,为该领域构建一个集中控制的应用程序,我们选择构建一个 Web 应用程序来避免部署痛苦。但在这一点上,我认为按照这些思路引入新技术将花费我们更多的时间和精力,而不是节省的时间。感谢您的评论。
【解决方案2】:

经过进一步思考,我们做了一些更简单的事情(当你能找到它时总是好的)。在撰写本文时,我还没有意识到使用 JavaScript 旋转和缩放图像是多么简单。事实上,我们必须支持 IE(而且只有 IE,因为我们的商店使用该产品并且它处理集成身份验证稍微好一些)......所以旋转是用 IE 过滤器完成的,而缩放是用 CSS 完成的。让我们省去往返,高效地交付功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    相关资源
    最近更新 更多