我想知道Web(ASP,PHP,Ruby等)之间的主要技术差异是什么, 应用程序(C,C ++ ,. NET,Java)和Mobile(J2ME,Objective C)编程,这是最难的。
如果有人学到其中一个,他可以轻松切换到其中一个吗?
答案 0 :(得分:4)
首先,从技术的角度来看,您应该问一下Web应用程序和客户端应用程序之间的区别。在每个类别中,您可以询问标准Web应用程序和移动Web应用程序以及标准客户端应用程序和移动客户端应用程序之间的区别。
Web和客户端应用程序之间的区别在于Web应用程序缺少状态:每个页面请求都与其他每个页面请求完全脱离链接。只有通过各种技术工作,Web应用程序才能设法维护Web应用程序用户在页面之间导航时运行连贯应用程序的错觉。例如,在ASP.NET中,ASP.NET ISAPI DLL管理一个“会话”对象,该对象从用户的页面请求中提取会话cookie,然后使用它来识别适合处理请求的会话数据。
相比之下,在客户端应用程序中,应用程序的每个方面都针对单个用户,并且当您从对话框导航到对话框时,应用程序的“状态”是给定的。此外,应用程序与用户计算机的紧密集成允许使用板载资源(内存,磁盘)。相比之下,在Web应用程序中,除了由浏览器调解( 客户端应用程序,而不是Web应用程序)之外,很少或根本无法访问这些资源。
移动 Web应用程序本质上只是Web应用程序,有两个注意事项:屏幕大小相当小,浏览器功能通常不那么健壮。因此,您编写的移动Web应用程序与标准Web应用程序几乎完全相同,但您不能指望通常使用完整浏览器的某些功能。顺便说一下,随着移动设备变得越来越强大,这最后一个限制正在迅速消失。
移动客户端应用程序需要特定于移动设备的开发环境,部署策略等。标准客户端应用程序开发中使用的工具和技术不能很好地映射到Mobile客户端。相反,您需要学习新的工具,控件和技术。此规则唯一真正的例外是.NET提供的工具。微软已经尝试提供尽可能多的通用性,尽管在这里,你会发现你有一个与开发WinForms应用程序时不同的思维模式和不同的约束。
希望这有帮助!
答案 1 :(得分:2)
这是这些应用程序运行的上下文。
Web服务器在服务器上运行,旨在使用Web浏览器为大量客户端提供服务。即使Web服务器本身在某些操作系统上运行,在它们上运行的Web应用程序也没有与该操作系统紧密耦合。
移动和桌面应用程序通常与运行它们的操作系统紧密耦合。
答案 2 :(得分:0)
移动应用程序的编写方式与桌面应用程序相同,大致与Windows应用程序,控制台应用程序和浏览器应用程序相同(因为大多数移动平台都支持浏览器)。但大多数工具的移动版本更受限制;并且通常涉及通信,这通常使得开发更具挑战性,试图保持各种状态。而且你通常必须对UI代码中的细微之处更加敏感。
移动应用和网络应用之间并没有特别的二分法。这些概念并不是特别正交。
答案 3 :(得分:0)
如果你看一下像.NET这样的编程框架,你就能轻松地在Web(ASP.NET和Silverlight),Mobile(.NET移动)和桌面(.NET和WPF)之间切换,因为语言是所有这些都基于相同的核心框架。您可以用不同的语言编写.NET,其中最常见的是VB.NET和C#。
如果你正在学习,我个人会推荐C#。你会在互联网上找到更多的例子,它也会更像你可能想要学习的语言(JavaScript,Java等)