YaeBlog/YaeBlog/source/dotnet-come-to-go.md
jackfiled f30d6e10af
All checks were successful
Build blog docker image / Build-Blog-Image (push) Successful in 1m36s
add: blog content
2024-07-02 16:59:26 +08:00

4.5 KiB
Raw Blame History

title tags date
.net从入门到放弃再到入门
技术笔记
dotnet
2022-08-21 16:59:08

.net从入门到放弃再到入门

我宣布下面的内容都是我在胡扯。在写了一学期的JavaSpringboot之后,我的评价是Java是什么垃圾东西,C#才是永远的神!

这是一篇专业的.net劝退指南详细记述了我为啥选择了.net又为啥选择了放弃。

开端——WPF桌面应用

在今年年初的时候,受到通知大全启发我决定编写一款自己的DDL管理应用程序。在一开始我打算先在Windows平台上编写当时我了解到Windows上最正统的桌面应用程序开发方式就是采用微软自家的.net平台开发同时在知乎上一群人在吹C#在设计上是如何如何的优于JAVA,当然在这里没有说他们的观点错误的意思,把我忽悠的一愣一愣的。.net在当时已经有了比较老旧的WinForms框架、比较流行的WPF框架和最新的MAUI框架。秉持着中国人中庸的思想潮流,我选择了WPF图形框架作为我当时开发的框架,从此入了.net平台的坑。

如今这个桌面端的项目已经基本烂尾,项目开源在github,算是警醒后来的我在技术选型时应该更加的慎重

说实话,在开发的一开始,我就感觉力不从心。

第一官方文档好但不完全好。微软虽然提供了本地化过的文档但是有很大比例都是机翻的文档。我觉得吧放机翻的文档还不如直接放英文原文的文档。同时文档的大部分都是API列表一类的参考资料对于初学者来说比较重要的“实用教程”等等部分内容较少虽然文档全面而详细但对于初学者来说并没有很大的帮助。毕竟我们不知道在数以万计的API中哪个才能实现自己的需求。

第二,国内缺少.net相关的社区氛围。这点也是最为劝退的地方相比于JAVA在国内广泛的应用和丰富的社区内容,国内.net和C#相关的内容除了在Unity游戏开发中还算广泛,其他称得上是乏善可陈。

在一堆好几年前的博客和半懂不懂的英文文档中沉浮一个月之后,我总算是写出了一个可以运行的成品。随着新学期的到来,以学业繁忙为借口,我停止了这个应用的开发。

重启——服务器开发

在经历了桌面应用的失败之后,我转移了自己的开发重心,开始了移动应用的开发,这次我没有坚持被微软的MAUI那八字还没有一撇的技术忽悠进去,选择了flutter框架搞开发。有应用自然就得有提供数据的后端,在开发服务器时,我又被微软的ASP.NET给“忽悠”了进去。

平心而论,ASP.NET开发的过程比上文中的桌面应用程序的开发还是要顺利不少。毕竟现在采用B/S架构的服务更多,个人感觉国内应用这项技术的人也不少,相关的技术资料也就不少,我入门的过程也就流畅许多。

虽然但是,在开发的过程中劝退的地方也不少。第一是微软自己的版本更迭,尤其是在微软宣布dotnet core,将.net开源之后个人感觉国内的开发者似乎不是很感冒还是用着原来的老一套。第二是和现在的技术流行方向不同原本采用JAVA搞服务器的开发不太可能再更换语言,第二新入行的开发者也会选择当下流行的GO等语言,这就导致在开发中有一种单打独斗的感觉,很难找到人同你合作。

放弃

在坚持学习.net八个月之后我还是决定放弃转向学习JAVA

  • 没人用的技术的技术不要硬刚,即使是好技术也不要。没人用的技术就像一潭死水,只有流动起来,才能孕育生机和活力,否则只能在原地腐烂。
  • 之于我而言,语言不仅仅是开发软件的工具,更是需要计算机相关知识的工具。转向JAVA的原因之一就是我目前学习的数据结合课——伯克利的CS61b就是采用JAVA作为编程语言的。

~~虽然我已经决定将我的主力语言转向JAVA~~但不得不承认C#在语言上的特性还是很不错的,以后我的重心不会放在C#上,但是他也不会从的技能树上消失。也许在若干年之后,我的主力语言又变回C#了(笑)。

全文的最后一句话可能是我现在唯一认同的了