reactjs ASP.NET核心2.0 Razor与Angular /React等

yuvru6vn  于 2022-12-18  发布在  React
关注(0)|答案(4)|浏览(137)

我开始开发一个企业级的Web应用程序。该应用程序将有许多独立的网页,但其中两个网页更集中,非常沉重-沉重的用户交互,显示大量数据,WebSocket连接,聊天等模态。
我被指派为项目的首席架构师,所以我正在研究最新的Web框架。对于后端,我们已经做了一些测试,并决定使用Azure SQL平台。到目前为止,我很喜欢已经做出的改进,以及正在进行的改进,ASP.NET与核心2.0。特别是Razor引擎,在以前版本的ASP.NET MVC。
我想就“新的”Razor与Angular/React等产品获得一些Maven意见。我尤其更关心性能。Core 2.0 Razor如何支持客户端渲染框架?差异可以忽略不计吗?我们的应用面向潜在的1,000,000用户(大约100,000并发用户)。

s4n0splo

s4n0splo1#

我们最终使用了一个Angular前端和一个ASP.NET Core API后端,使用Azure SQL。我们测试了Core Razor,虽然比传统的Razor更好,但Angular最终对我们来说要快得多。就用户体验而言,Angular (或React)在性能方面要上级得多。我们发现Angular的模型绑定方面是服务器端渲染的一个巨大优势。(或一般的服务器端呈现),然而,就数据而言,POCO有助于更好的整体完整性,并有助于更好地将数据从前端转换到后端。前端框架和API之间存在真正的断开。所有传递到服务器的数据都必须转换为类型化对象-这意味着您必须管理两个单独的POCO模型集。如果服务器对象和前端对象不一致,这可能会导致问题。目前,实体框架核心还不是很成熟,所以我们在更新对象,查询对象,包括子对象等方面有问题。
总的来说,到目前为止,这个设置对我们来说非常好!我可以想象,如果你更喜欢的话,React会是一个类似于Angular的替代品。我不得不学习Angular,这是一个非常容易的过渡,我现在喜欢它!

bmvo0sr5

bmvo0sr52#

通过在服务器端使用Angular/React和API:

  • 消除了在服务器端生成HTML的过程,保存CPU
  • API产生一个小的有效负载(JSON),而Razor(HTML)的大小当然要大得多,需要不断地重新加载整个页面,并且需要来回回发,因此API和SPA可以保存带宽
  • API和SPA可能具有不同的版本控制、扩展和部署方案
  • 通过使用API,你也可以支持移动的应用程序,如果你开始使用Razor,你可能需要在未来的API

但使用Angular/React时,您应该担心客户端:

  • 客户端必须启用javascript
  • 客户端必须具有现代浏览器
  • 客户端必须具有足够强大的硬件
  • 搜索引擎优化
aelbi1ox

aelbi1ox3#

我没有基准测试。但是,我有几个项目运行JQuery,Razor,.NET MVC(C#), AJAX 。没有达到你处理的规模。
建议..一定要仔细考虑并遵循最佳实践。为了保持可维护性,一定要将控制器、视图、模型分成更小且有意义的组。当我开始的时候,我犯了一个错误,把所有东西都放进了一个Home控制器,而把大量的视图放在了共享文件夹中。一开始还不错,但当特性蔓延开始时,它变得一团糟,很难回去重新设计。
我也使用Linq 2SQL。我犯了为所有东西创建模型的错误,然后意识到我可以只将查询的结果集作为model. duh返回。
如果您使用. NETMVC并关心性能,我会遇到以下问题:
不要返回创建大块HTML的局部视图!确保将所有内容最小化。去掉所有白色。使用较小的ID名称。花点时间创建尽可能轻的HTML。返回JSON并让客户端做一些工作。
注意你如何开发你的CSS。不要使用一堆内联样式,花点时间把它们合并到CSS文件中,然后你可以最小化它们。
客户端的JS也是如此。把JS放在局部视图中是很诱人的。保持事物的条理性。
在IE上渲染是可怕的。特别是如果有很多图像。一定要尽可能地压缩图像,当然不会失去质量。

3htmauhk

3htmauhk4#

**反作用与Angular **

  1. Angular中客户端环境的基本安全性,而未提供React安全性。
    1.由于虚拟dom,Angular 执行速度慢,而React执行速度快。
    1.Angular 代码不是100%自定义,而React代码是100%自定义。
  2. React使用Javascript和Typescript时,默认Typescript为Angular。这是许多开发人员喜欢React的主要原因,因为开发人员喜欢JavaScript

相关问题