首先让我说我是一名新手开发者,所以请原谅我的问题的基本性质。
我目前正在开发一个Flex应用程序,对于何时使用服务器端脚本以及何时开发Web服务越来越感到困惑。对于我正在处理的大多数功能,我从用户(客户端)获取各种文件,上传到服务器进行处理/转换,然后以新格式发送回客户端。
我使用asp.net泛型处理程序(ashx)文件完成了大部分工作,但不是很自信这是最佳实践。但与此同时,让网络服务更有意义吗?什么是最佳做法?任何建议将不胜感激。
答案 0 :(得分:1)
我看待它的方式如下:
对于我们的大多数开发,我们不需要创建“Web服务”,或者当我考虑REST,SOAP和Twitter API时我正在考虑的内容。一旦你有多年来每天都会使用的东西,你只需要开始这样做。
如果你花时间清楚地定义upload-process-render体系结构的各个部分,并且发现它几乎可以应用于你正在做的所有事情,那么你需要做的就是使它成为一个Web服务。为使用系统定义一套明确的1-2-3规则(GET / POST数据等)。只要您有意识地构建一个架构,如果它值得,您最终将创建一个Web服务。否则就没有必要了。
听起来你有一个明确的工作流程,但我对asp.net一无所知。
就有时混淆和最佳做法而言,我建议如下:
我认为您不应该尝试立即创建Web服务。只需制作一些干净且可重复使用的代码,制作一些示例,将其联机和开源,让其他人贡献并提供反馈,如果它解决了特定问题,那么将其作为Web服务。您现在可以立即使用REST,并围绕它构建您的系统。 RestfulX是一个很棒的图书馆。
最佳, 兰斯
答案 1 :(得分:1)
毫无意义地制作Web服务毫无意义;) 现在,在闪存版本10的FLEX as3世界中,您可以轻松读取本地文件,使用任何修改算法修改它们并保存本地文件而无需ping服务器。 如果要获取某些服务器数据或将一些数据发送到服务器,则只需使用webservices。就是这样。
RSTanvir
答案 2 :(得分:1)
Flash / Flex使用简单的HTTP POST方法进行文件上传,因此使用SOAP Web服务尝试这样做会有问题。你在这里使用ASHX的方法对我来说听起来很合理。
要发送/接收非基于文件的数据(例如,用户之前已上传的文件列表),我建议您查看开源Fluorine FX库。 Fluorine使用AMF,这是一种高性能的Flash数据传输方式。它也是纯粹基于配置的,这意味着您不需要针对其任何API进行编码,只需将Fluorine配置为公开您的.NET服务类。您可以轻松地将属性添加到这些相同的类,以便在将来需要时通过WCF将它们公开为SOAP Web服务。但是,由于性能损失以及SOAP的Flex实现有错误和互操作性问题的历史,我不建议使用SOAP和Flex。