Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JavaScript中的业务逻辑_C#_Asp.net_Angularjs_Stored Procedures - Fatal编程技术网

C# JavaScript中的业务逻辑

C# JavaScript中的业务逻辑,c#,asp.net,angularjs,stored-procedures,C#,Asp.net,Angularjs,Stored Procedures,目前,我在一个项目中工作。我只是跟着我的老同事在做什么;他们正在使用ASP.NET(c#)和angularjs。我感到惊讶的是,他们的所有业务逻辑都是在JavaScript部分计算的,而只是使用c#部分与数据库通信。仅供参考,我们一直在使用存储过程。这真的是构建系统的好方法吗?。我想公开这一点,也许这不是一个好的实践,但我没有任何强烈的理由,因为我来自PHP世界 我们对您的业务了解不够,无法全面评估这有多糟糕,但听起来很糟糕 首先,您将根据每个请求将整个业务逻辑发送给客户和竞争对手 当然,最大的

目前,我在一个项目中工作。我只是跟着我的老同事在做什么;他们正在使用ASP.NET(c#)和angularjs。我感到惊讶的是,他们的所有业务逻辑都是在JavaScript部分计算的,而只是使用c#部分与数据库通信。仅供参考,我们一直在使用存储过程。这真的是构建系统的好方法吗?。我想公开这一点,也许这不是一个好的实践,但我没有任何强烈的理由,因为我来自PHP世界

我们对您的业务了解不够,无法全面评估这有多糟糕,但听起来很糟糕

首先,您将根据每个请求将整个业务逻辑发送给客户和竞争对手

当然,最大的缺点是您不得不假设所有业务逻辑都已执行。客户端发生的一切都极易被客户端篡改


您是说没有任何业务规则的服务器端强制执行吗?如果您要收到库存中所有项目的订单,且价格设置为$1,您只需接受,发货并向客户开具$1的发票?

出于多种原因,应避免将业务逻辑置于JavaScript中:

  • 设计:大多数情况下,业务层应该在服务器上,只有UI层(即HTML/JavaScript)应该由客户端处理
  • 安全性:公共领域的知识越多,应用程序受到威胁的可能性就越大
  • 维护:业务对象可以比在JavaScript中嵌入业务逻辑更有效地重用。我经常看到每个.aspx页面都有自己的一组JavaScript文件。这可能并不总是正确的

  • 这里的实际问题不是关于Javascript或C#,而是关于在客户端或服务器上执行代码的位置。没错,但我这样做是因为它已经是一个现有的项目。使用Javascript执行业务逻辑并不一定是件坏事,这就是你所说的“富客户”或“厚客户”的意思,绝对没问题。它对流量有一些警告,可能会变得相当大。然而,在许多情况下,您必须在客户端执行一些数据操作,因为您无法访问服务器代码。听起来像这样,正如我所说的,所有业务逻辑、计算、数据验证都是在javascript文件中完成的,我承认一开始我很震惊,因为据我所知,业务逻辑应该在服务器脚本中完成。@Fred:它是公共站点吗?你有链接吗?也许我们可以提出一些令人信服的论据:)不,先生,到目前为止还不能在网络上访问。@Fred:至少那是一个安全层:)谢谢你,也许现在我有一些正当的理由来辩护:)