繁体   English   中英

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

[英]ASP vs. ASP.NET ( Thin client vs. thick client )

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

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

自然,我们必须迁移,而逻辑步骤是ASP.NET。 但是我们面对的是胖客户端,小型Javascript网格和组件,我们必须专注于服务器端和瘦客户端。

感谢您对此的观点。 使用ASP.NET和瘦客户端体系结构,我们将获得什么? 是可以补偿速度下降的更大好处吗? 很多观点都是教条主义的,认为完整的逻辑应该在服务器上,并且不能解释为什么(我很清楚MVC并使用它)?

谢谢

使用胖服务器+瘦客户端的方法,您将需要更少的带宽和客户端资源,因此可以提高性能-但这不是您主要关心的问题,如果我理解正确的话。

对于开发人员而言,更重要的是:就软件技术而言,ASP.NET比纯ASP至少相距一代,这意味着它具有更干净的体系结构以及更好的可维护性和可扩展性。 就业务价值而言,这是开发商店的最重要因素(远比初始开发成本重要)...

胖客户-是吗? 这有点老二分法了。 如果我理解正确,那么您的“胖客户端”就是一些运行在浏览器中的沉重JavaScript代码,而服务器端则拥有经典的ASP-是吗?

在这种情况下,“厚客户”一词的解释很不寻常。 当我看到“厚客户端”时,通常会想到客户端服务器应用程序-在某些数据库上运行的可执行文件。 就.NET而言,这将是WinForms应用程序。

就ASP.NET而言,此技术的经典用途是构建WebForms,该WebForms被认为是WinForms的Web模拟。 通过这种方法,您可以在Controls之外构建Forms服务器端-与构建WinForms非常相似。 页面中实际上没有执行的代码-只有HTML和WebControls的附加标记。 从某种意义上讲,您可以将其称为“瘦客户端”

有趣的是,越来越多的开发人员正在放弃这种方法-只需在SO上对JQuery运行查找即可。 而且其中许多仍然使用ASP.NET服务器端。

作为经典ASP的AS-恕我直言,它应该被掩埋。 在服务器端中继21世纪的某些事物(例如ASP.NET)会更好很多。

在我回答之前,我想指出一点。

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

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

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

创建HttpHandlers @ MSDN
IHttpHandler接口@ MSDN

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

最后,除了有关瘦客户机/瘦客户机体系结构的任何争论之外,这是我应转向.NET / ASP.NET的主要原因。

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

旧的ASP将浪费您的时间。 新的开发技术和库使您可以在浪费经典ASP的时间的一小部分中完成大工作。 当然,对于一次性的简单脚本,ASP可能会带您,但有一个完整的网站,不用了,谢谢。

无论如何...

我想你是正确的。 我总是首先获得一个使用纯净的,无JS代码的网站。 这样可以确保它适用于不使用JS的人(这对您来说可能不是问题),但是以后在AJAX上分层并不难。

实际上,如果您愿意在组件上花钱(听起来像过去那样),则可以使用AJAX.NET的许多扩展,从零JS到漂亮的页面。 它们可能不像以前那样高效,但是它们将更易于维护。

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

显然,这不只是一个最佳答案。

至于您所获得的好处:在快速开发,更好的设计,经过认真改进的语言功能(毕竟C#和VB.NET毕竟是正确的编程语言)方面以及在无需运行的情况下执行日常工作的能力具有诸多好处。转到第三方组件。

而且,如果您想节省更多时间,并节省大量基础架构和许可现金,您甚至可以看看Django和/或Ruby on Rails。

如果您熟悉ASP经典,则意味着您不必尝试显着修改或扩展基本代码。 如果这样做的话,尽管它本身是一项强大的技术,但您会发现维护ASP的痛苦。

您还应该考虑其他几件事:1)您的团队似乎非常精通ASP,并取得了成功。 如果您没有真正令人信服的理由,为什么要更改? 如果您更改技术,托管问题将无法真正改善。 2)从ASP到ASP.NET Web表单是非常重要的学习曲线。 您的某些团队可能不会成功。 这是一个真正的风险。 但是,您实际上应该签出ASP.NET MVC作为选项。 它与ASP classic具有某些共同点,并且可能使过渡比Web表单更为平滑。

我们与您在我目前工作的公司中的职位相同。 我为升级提出的几点是:

  1. 易于调试。 为了调查问题,我不得不花很多时间来嵌套许多凌乱的ASP代码。 easier to do this in asp.net or .net MVC. 我发现在asp.net或.net MVC中执行此操作容易

  2. 兼容性。 Asp很古老,尽管仍受支持,但可能会证明升级是合理的。 通过ASP的.net也更容易找到开发人员知识。

    话虽如此,由于这些应用程序的工作正常,因此我们不会积极升级。 不过,您使用MVC的方向正确,由于视图标记,asp更易于通过asp.net升级到该平台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM