我的任务是开发一个图像服务器,它将:
- 从磁盘加载图像
- 根据 HTTP 参数调整它的大小
- 将一个或多个水印应用于原始图像
问题是我应该使用什么技术,我将使用IHttpHandler
,但我想知道在IHttpAsyncHandler
这种情况下使用是否会更快?
我可以从异步处理图像中受益IHttpHandler
吗?
另外,也许我应该考虑一些高级框架,例如 NancyFx 或者只是从控制器(MVC2)返回图像?
我的任务是开发一个图像服务器,它将:
问题是我应该使用什么技术,我将使用IHttpHandler
,但我想知道在IHttpAsyncHandler
这种情况下使用是否会更快?
我可以从异步处理图像中受益IHttpHandler
吗?
另外,也许我应该考虑一些高级框架,例如 NancyFx 或者只是从控制器(MVC2)返回图像?
异步 IO 不会以任何方式使 IO 更快。它在 IO 运行时解除阻塞线程。正在执行的所有 CPU 工作都不会受到影响。
在某些情况下,使用异步 IO 来解除线程阻塞是个好主意,而在其他情况下,这会浪费开发时间,对客户没有任何好处。您是否期望有大量的并发图像下载(例如 100 个(同时!))?然后异步 IO 可能会受益。
可能,你不应该使用IHttpHandler
任何东西。使用 MVC。
我会考虑使用http://imageresizing.net - 重新开发它可能会使您或您的雇主花费数倍于许可成本的成本。动态调整图像大小很难做到正确。根据您对需求的描述,我相信许可证甚至是免费的。只有当/当您超出您的简单需求时,您才需要升级到付费许可证。
如果您决定尝试自己动手,我建议您先阅读以下内容:http: //www.nathanaeljones.com/blog/2009/20-image-resizing-pitfalls它将指出一些需要尝试和避免的陷阱。