我开始开发一个企业级的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并发用户)。
4条答案
按热度按时间s4n0splo1#
我们最终使用了一个Angular前端和一个ASP.NET Core API后端,使用Azure SQL。我们测试了Core Razor,虽然比传统的Razor更好,但Angular最终对我们来说要快得多。就用户体验而言,Angular (或React)在性能方面要上级得多。我们发现Angular的模型绑定方面是服务器端渲染的一个巨大优势。(或一般的服务器端呈现),然而,就数据而言,POCO有助于更好的整体完整性,并有助于更好地将数据从前端转换到后端。前端框架和API之间存在真正的断开。所有传递到服务器的数据都必须转换为类型化对象-这意味着您必须管理两个单独的POCO模型集。如果服务器对象和前端对象不一致,这可能会导致问题。目前,实体框架核心还不是很成熟,所以我们在更新对象,查询对象,包括子对象等方面有问题。
总的来说,到目前为止,这个设置对我们来说非常好!我可以想象,如果你更喜欢的话,React会是一个类似于Angular的替代品。我不得不学习Angular,这是一个非常容易的过渡,我现在喜欢它!
bmvo0sr52#
通过在服务器端使用Angular/React和API:
但使用Angular/React时,您应该担心客户端:
aelbi1ox3#
我没有基准测试。但是,我有几个项目运行JQuery,Razor,.NET MVC(C#), AJAX 。没有达到你处理的规模。
建议..一定要仔细考虑并遵循最佳实践。为了保持可维护性,一定要将控制器、视图、模型分成更小且有意义的组。当我开始的时候,我犯了一个错误,把所有东西都放进了一个Home控制器,而把大量的视图放在了共享文件夹中。一开始还不错,但当特性蔓延开始时,它变得一团糟,很难回去重新设计。
我也使用Linq 2SQL。我犯了为所有东西创建模型的错误,然后意识到我可以只将查询的结果集作为model. duh返回。
如果您使用. NETMVC并关心性能,我会遇到以下问题:
不要返回创建大块HTML的局部视图!确保将所有内容最小化。去掉所有白色。使用较小的ID名称。花点时间创建尽可能轻的HTML。返回JSON并让客户端做一些工作。
注意你如何开发你的CSS。不要使用一堆内联样式,花点时间把它们合并到CSS文件中,然后你可以最小化它们。
客户端的JS也是如此。把JS放在局部视图中是很诱人的。保持事物的条理性。
在IE上渲染是可怕的。特别是如果有很多图像。一定要尽可能地压缩图像,当然不会失去质量。
3htmauhk4#
**反作用与Angular **
1.由于虚拟dom,Angular 执行速度慢,而React执行速度快。
1.Angular 代码不是100%自定义,而React代码是100%自定义。