C# 的工程化

C#主要用来开发在Windows 平台上的软件, 虽然 最新的NET 支持了跨平台开发,但是用到的人应该不多。

虽然也支持服务端开发,但是主流目前来看还是JAVA 或者是python ,go 之类的。

win桌面软件也没有实现一家独大,因为历史原因,大型软件基本式C++开发,在最近一些年QT,Electron,也抢占了比较多的市场,有些软件还是JAVA 开发的。

由于性能能原因,WinForm 还是占据了一定的江山。 而.NET4.8 和后续的NET 6 也是不同的平台规划。 甚至还有WINRT 和UWP 两个失败的作品。

当然优点也有,主流的Demo 一级的作品来看,c++ 基本是命令行式的,而C#Demo 就可以实现一个简单的窗口。在窗口上实现更多的附加也不是问题,其语法非常的出色,linq和反射用起来在某些时刻极为方便。

对于C#的学习困境,其实在于对Windows 系统的理解上,电脑用的好,软件开发才会更顺。而这正式非常困难的地方。

需要了解 文件的位置和权限,了解注册表了解各种组件,同时还需要了解网络协议和串口协议。每一个模块都可以极大的扩展,对这些东西的了解程度往往代表了最后实际的编码水平。

但这些只针对独立开发而言。

对于项目而言,其实只需要了解XML的语法构成,和简单的设计模式就可以了。绝大部分都是调用api的过程。

自己需要实现api的地方并不多,这就是很大的坑,很长时间的沉寂期,看不到自己做的这些东西到底有什么用处。

C# 很难招到相对厉害一点的人。 作为一个并不是很进阶的方向,对于很多方向来说就是一个简单的前端。

留下的基本都是 数年如一日的人,稍微有些经验,会向C++ 或者是游戏方向发展。