首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深度解析 C#技术生态

C# 能干什么?

在回答这个问题之前,不妨先来思考下另一个问题:开发什么?

开发网站吗?

No, 用 C# 开发网站意味着可能丧失更多薪酬不错的工作机会。且不论是网站前端,还是服务端,早都已经是一片红海。

C# 能写前端。

较新的技术,比如 Razor/Blazor,声称可以替代 JS,用 C# 加 HTML 就可以搞定 UI 问题。

较老的技术,比如 WebForm。这个玩意早就被丢到历史的垃圾箱里了。学了这个出来找工作,怕是要被饿死。

C# 能写服务端。

较新的技术,比如 ASP.NET Core,配上容器,在 Linux 服务器上跑业务也还好。据说性能是不错。可是国内市场并不火热。无论是业务成熟的大厂,还是初具规模的小作坊,都不怎么买账。听说博客园,腾讯支付啥的用了 ASP.NET Core,但毕竟是少数。大部分业务还是在跑 Java 代码。对性能,响应要求较高的服务,比如流媒体啥的,在跑 Go 代码。薪资待遇比不上写 Java 或者写 Go 的。

所以,没啥可说的。尝尝鲜也还行。

我觉得写前端,服务端,这都不是 C# 擅长的。

那么 C# 擅长什么呢?

C# 是一门与 .NET Runtime 深度绑定的语言。这种特性就让 C# 无法跳脱 .NET 框架的约束。或者说,没有 .NET 框架,不了解 .NET 框架就什么都干不了。

也就是说,如果你不知道如何在托管环境中调用非托管动态库,不懂得如何 Marshal 一个结构或基本类型。就永远不可能体会到与计算机系统交互的感觉。你不知道底层是如何工作的,为什么是这样。因为你永远都是在调用,调用,调用。调用 .NET 框架封装好的东西。一旦出了问题,就只能看 .NET 框架的异常解释。你就不得不去接受,去记忆框架中的怪异操作。

但那是框架的问题,不是编程本身的事情。

有点扯远了。

C# 最擅长开发 Windows 应用。在代码简洁度、开发复杂度,功能完整度方面,C# 具有的优势,是其它任何编程语言,框架,都比拟不了的。

但它的劣势也很明显。

那就是必须得有 .NET Runtime。

所以,尽管 C# 写的 Winform / WPF 程序可以很炫酷,很实用。但不少大厂,知名产品都不用它们。

用什么?C++。

当然,最近几年开始流行用 Web 前端的方式写 Native 应用了。

为什么?

一方面,Web 前端已经相当成熟。其渲染效果,代码声明的简洁程度,都不是传统 Native 应用可比的。如果需要应用花里胡哨,而恰巧有一套炫酷的 Web 系统的话,把 Web 服务迁移到 Native 的需求。这种方案就再好不过了。据我所知,会这一手的薪资还挺高。

所以,可见C# 在桌面应用领域也不是很能打。

C# 也就在上位机软件领域还能打一打。而且市场也买账。薪资也还行。当然,跟写 Java/Go/前端的差事差得真不是一星半点。

还是有市场的。这倒是也不必十分悲观

如果厌倦了写上位机软件,转行搞别的就有点蹩脚。会发现各方面都合适的工作不好找了。

这就是 C# 在国内的现状。整体来说,不太能打:领域受限严重,薪资一般。

除此之外,C# 也少有牛逼轰轰的框架,项目。Java,C++,C 语言搞出来的知名产品倒是不少。

所以,就技术体系与个人发展来说,不建议在 C# 投入过多时间与精力

至于搞点什么,还是要根据自己对下一份工作的期望而定。

还是要未雨绸缪,早做准备

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211012A05CGE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券