使用 .Net Core 和 React 的经验分享
我使用这两种优秀的技术已经有一段时间了。自从开始使用 React 以来,我逐渐过渡到 JS 生态系统,并开始更多地从事前端开发工作,而使用 .NET 的后端开发工作则逐渐减少。
很多人都喜欢 ASP.NET Core。🌟
在本文中,我不会对它们进行比较——只是谈谈我对这两个生态系统的一些个人印象。
主要是关于我对这两个生态系统及其工具的喜好和厌恶之处。👀
为什么是这两个?
React 和 .Net Core 都是由科技巨头开发的。🗿
这使得决策者很容易选择这些技术。
React生态系统
在构建 Web 应用程序方面, React是主流的首选解决方案。
一些优点:
- 生态系统庞大而充满活力。
- 优秀的工具都是免费的——ESlint、Prettier、Typescript、HMR(热模块替换)——在开发者体验方面,JS 社区确实处于领先地位。
- Monorepo 工具
- 倾向于函数式编程(FP)而不是面向对象编程(OOP)。
- 使用JS的一些优势在于——例如,可以轻松使用JSON数据和进行对象操作。
- 过去几年,TypeScript 越来越受欢迎——我认为这对整个生态系统来说是一个极大的质量提升。
一些缺点:
- 某些功能会被弃用(参见以下示例)
- 使用 TypeScript 目前还无法像 C# 那样提供流畅的类型化语言体验。TypeScript 提供了一些“逃生通道”,可以让 TypeScript 代码看起来像每周编写一次的类型代码(这对某些人来说也可能是一个优势)。
- 事物变化速度更快——因此更难跟上最新动态。
- React 生态系统仍然缺乏统一的标准。这既是好事也是坏事,因为每个项目都会千差万别——从文件夹结构到组件编写方式,再到项目中使用的 CSS 技术,都可能大相径庭。这在某种程度上是好事,因为它为创新留下了广阔的空间;但同时,也让人感觉缺少一些标准。
React 世界中弃用示例:
- 你几年前就学习了 React 类组件,并且精通了它们的使用,包括所有生命周期方法和基于类的模式。好吧……很遗憾,带有 Hooks 的 React 函数组件才是新的标准(别误会,我非常喜欢 Hooks ❤️)。
- 如果你五年前学习过 React 组件的单元测试,你可能学过 Enzyme。但至少从 2019 年(也就是 Hooks 发布之时)开始,Enzyme 就不再被推荐用于 React 项目了。React Testing Library 是新的标准,它采用了完全不同的方法和测试理念(而且这些理念更好)。相比之下,如果你五年前使用 .NET 并学习了使用 xUnit 和 Moq 进行单元测试,那么你现在仍然会使用这些工具,而且也会被鼓励继续使用。
- 你学到了一些复杂的状态管理方案,现在社区里有人说你不应该再用了——但也许你应该继续用😉
JS 世界中缺失的标准示例:
举个例子——目前有 3 个流行的打包/构建工具(webpack、parcel 和 rollup)。有超过 4 个流行的渲染库(React、Vue、Svelte 和 Angular)。在 React 中,至少有 10 种不同的数据获取方式(例如使用 Redux 并自定义中间件、saga、thunk、redux-observable、useEffect、RxJs、react-query、swr 等)。
.Net核心
一个更加成熟的社区,已经摸索出了一套行之有效的方法。
如今,.NET Core生态系统显然不如 React 生态系统那么流行。在服务器端应用或 API 领域,两者难分伯仲,但可以肯定的是,.NET Core 是 API 和后端领域最热门的选择之一。
一些优点:
- 一种更一致的服务器端应用程序构建方式
- 更稳定——你今天学到的最佳实践可能在5年后仍然适用。
- C# 和 F# 都是非常优秀的语言,它们会随着时间的推移而不断发展。
- 它非常适合构建 Web API、后台服务等等。
- 微软拥有 .NET,因此在他们拥有的其他平台(例如 Azure、Azure DevOps 和 GitHub)上使用 .NET/.NET Core 将获得相当不错的体验。
一些缺点:
- 缺乏 JS 世界中先进的开源工具——对于更高级的代码检查、重构工具和代码格式化工具,你需要付费(例如 Resharper 或 Rider)。
- 缺少单体仓库工具(至少我不知道有哪些)。
- 这个社区不够活跃,很多人也不太愿意分享。如果人们能更开放、更乐于分享,这个生态系统将会更加成功。
两者兼知值得吗?
是的!虽然很多新手在学习编程时会先尝试学习 React 或其他 Javascript 框架,但我其实会鼓励他们先学习一门纯后端语言。
为什么?因为它有助于专注于纯粹的编码,避免一开始就学习所有复杂的Web技术。
除此之外,.Net Core还是一个非常值得掌握的技术栈,因为它提供了一种构建复杂后端的统一方法,而React 则可以帮助你构建复杂的交互式用户界面。
如果你喜欢这篇文章,请点赞🧡和🦄,也欢迎关注我的推特,我会发布更多精彩内容。
👇请在下方留言👇
请告诉我你对.Net Core和React组合的看法。
学习使用 .Net Core 的 C# 是否值得?还是我们应该直接使用 Node.js 作为服务器端,并在所有地方都使用同一种语言?
文章来源:https://dev.to/alexandrudanpop/working-with-net-core-react-what-i-ve-learned-ge6