ASP与ASP.NET(瘦客户端与胖客户端)

时间:2009-11-19 17:20:27

标签: asp.net architecture asp-classic client-server

我很久以前对这个问题感到困扰。我在东欧的小公司工作。我们主要为本地客户,网络应用程序,主要是b2b和b2c-s。我们的互联网基础设施不是很好,因此我们经常遇到本地isp-s和托管在拥有我们构建应用程序的信息系统的公司的主机的问题。

我们使用的技术是Microsoft IIS,SQL Server和带有大量Javascript和Ajax的ASP。作为一名学生和开发人员,我知道ASP已经老了,不支持很多很酷很有用的东西,但我相信我们的代码做得非常好。我们也创建了非常快的应用程序(在一页上不到4.5秒,表中有8000行没有分页(不要问)非常快)。为此,我们使用胖客户端方法并从Javascript中提取max。那么,我们的问题是什么?

当然我们必须迁移,逻辑步骤是ASP.NET。但我们有对抗,从我们的胖客户端,迷你Javascript网格和组件,我们必须专注于服务器端和瘦客户端。

我很感激你对此的看法。使用ASP.NET和瘦客户端架构我们会得到什么?是否有更大的好处来补偿速度降级?许多参考文献都是教条,在完整的逻辑应该在服务器上,并没有解释为什么(我很清楚MVC并使用它)?

谢谢

6 个答案:

答案 0 :(得分:2)

使用胖服务器+瘦客户端方法,您将需要相当少的带宽和客户端资源,从而提升性能 - 但如果我理解你的话,这不是您的主要关注点。

对于开发商店来说更重要的是:在软件技术方面,ASP.NET至少比纯ASP高出一代,这意味着它具有更清晰的架构和更好的可维护性和可扩展性。这是商业价值 - 开发商店最重要的因素(远比初始开发成本重要)......

答案 1 :(得分:2)

厚客户 - 嗯?这有点旧的二分法。如果我理解正确,你的'胖客户端'是在浏览器中运行的一些繁重的JavaScript代码,而服务器端你有经典的ASP - 对吗?

如果是这种情况,则对“厚客户”一词的解释相当不寻常。当我看到“胖客户端”时,我通常会认为客户端服务器应用程序 - 运行在某个数据库上的可执就.NET来说,它将是一个WinForms应用程序。

就ASP.NET而言,这项技术的经典用途是构建WebForms,它被设想为WinForms的Web模拟。使用这种方法,您可以使用控件构建表单服务器端 - 非常类似于构建WinForms。页面中几乎没有执行的代码 - 只有带有WebControls附加标记的HTML。从某种意义上说,你可以称之为“瘦客户端”

有趣的是,越来越多的开发人员正在逐渐摆脱这种方法 - 只需在SO上运行JQuery查找。其中许多人仍然使用ASP.NET服务器端。

AS为经典ASP - 恕我直言,它应该被埋没。对于服务器端,即21世纪的内容,即ASP.NET

,你会好得多

答案 2 :(得分:2)

在我得到答案之前,我想指出一些事情。

您不必放弃现有的客户端基础架构来迁移到ASP.NET!

虽然ASP.NET Forms可能会降低性能,但ASP.NET中有更多可用的功能(除了MVC),您可以使用它们不需要转换为Forms。

HttpHandlers具有与ASP页面相同的灵活性和更多功能。您可以将ASP页面转换为代码语句,并将页内声明减少为输出语句,从而将棘手的页面映射到ASP.NET。根据您现有的设计,您甚至可能会发现,对于您现有的大量工作,映射几乎是逐行的。

Creating HttpHandlers @ MSDN
IHttpHandler Interface @ MSDN

此外,如果您愿意,可以将.ASP扩展处理程序重新映射到.ASHX处理程序以保留链接。您的客户端代码可能甚至没有注意到更改。

最后,除了关于瘦/胖客户端架构的任何争论之外,以下是我应该转向.NET / ASP.NET的主要原因。

  1. 访问更好的IDE(我希望你已经从InterDev转移了!)
  2. 极大地改进了调试支持
  3. 访问特定于.NET的功能。
  4. 异常支持(而不是OnError语义)
  5. 无需编写COM组件即可使用编译库。
  6. 如果需要,能够使用VB / VB.NET以外的语言编写组件和页面处理程序。
  7. 更好的身份验证支持,特别是在Negotiate / Kerberos方面。

答案 3 :(得分:1)

旧的ASP会浪费你的时间。新的开发技术和库可以让您在经典ASP中浪费很少的时间。当然,对于一次性简单的脚本,ASP可能会带你,但是一个完整的网站,不用了。

总之...

我认为你是对的。我总是首先使用普通的无JS代码运行一个站点。这确保它适用于不使用JS的人(可能不是你的问题),但是稍后在AJAX上进行分层并不困难。

事实上,如果你愿意花钱购买组件(就像你过去听到的那样),AJAX.NET有很多扩展可以带你从零JS到可爱页面。它们可能没有以前那么高效,但它们将更容易维护。

或者您可以在网站完成后对AJAX进行分层。您甚至可以尝试将API从服务器保持到客户端与旧站点相同,这样您的旧JS“就可以正常工作”。

显然不仅有一个最好的答案。

至于你获得了什么:在快速开发,更好的设计,严重改进的语言功能(毕竟C#和VB.NET是适当的编程语言)方面有很多好处,并且能够现在做日常事务不得不跑到第三方组件。

如果你想节省更多的时间和整个基础设施和许可现金,你甚至可以看看Django和/或Ruby on Rails。

答案 4 :(得分:1)

如果您对ASP classic感到满意,则意味着您无需尝试大幅修改或扩展基本代码。如果你这样做了,你会看到维护ASP的痛苦,尽管它本身就是一种强大的技术。

您还应该考虑其他一些事项:1)您的团队似乎非常熟练并且使用ASP取得了成功。如果你没有一个非常令人信服的理由,为什么会改变?如果您更改技术,您的托管困境将无法真正改善。 2)从ASP到ASP.NET Web表单是一个非常重要的学习曲线。你的一些团队可能不会成功。这是一个真正的风险。但是,你应该真正检查ASP.NET MVC作为一个选项。它与ASP经典有一些共同之处,可能比Web表单更顺畅地过渡。

答案 5 :(得分:1)

我们和我现在工作的公司处于相同的位置。我要为升级做的几点意见是:

  1. 易于调试。我必须花费数小时嵌套很多凌乱的ASP代码才能查看问题。在asp.net或.net MVC中我发现很多更容易做到这一点。

  2. 兼容性。 Asp是古老的,虽然仍然支持可能证明升级线是正确的。开发人员的知识也更容易找到.net over asp。

    话虽如此,我们并没有积极升级,因为应用程序正在完成他们的工作。你在MVC的正确轨道上,由于视图标记,asp更容易通过asp.net升级到该平台。