编程20多年了,C#越来越让我惊喜

最开始接触.net大概是2003年,当时用的还是framework1.1,那是CAM项目,使用.net主要是利用RemotingService做分布式开发,我当

最开始接触.net大概是2003年,当时用的还是framework1.1,那是CAM项目,使用.net主要是利用RemotingService做分布式开发,我当时做其中的一个子系统,因为之前一直都是C++开发,对C#一无所知,我们组用的是托管C++。

后来随着对C#的了解,逐渐领略到了它的强大之处。用C#+Winform编程做UI简直太方便了,拖拖拽拽就好了,然后代码中直接用控件名称取值、赋值。用VC和MFC,得先找到找到那个控件,然后再转换成相应的类,才能继续操作。

这是C++和MFC对控件的取值代码:

CString context;

GetDlgItem(IDC_EDIT_CTX)->GetWindowTextA(context);

这是C#和Winform对控件的取值代码:

string name = tbxName.Text;

其他方面相比较C++而言,C#还有很多便利的地方:

字符集:C#默认就是utf-8,C++涉及到中文,还得考虑宽字符的转换;

托管内存:除了系统资源,C#基本上不用太担心内存泄露;C++,轻则程序崩溃,重则内存泄露,而且一堆指针下来以后,很难查;

当时唯一感觉不爽的就是C#1.0时还不支持泛型,而C++是支持的。

到了C#2.0的时候就支持泛型了,也就是在Framework2.0之后,我基本上就不再用C++开发了。

由于一直在Windows下编程,Java简直就没法用,Windows下的Java开发跟C#比起来真的很垃圾,随便一个Java开发的小破程序,一运行起来至少就几百M内存,而且越来越大,过段时间就得重启,Java给我的印象就是运行缓慢且臃肿。当然这个代价就是让我错过了移动开发的最好时机,但也让我领略了C#的全能之美。

2006年,给上海一家水厂做ERP,历时3年20多个子系统,B/S+C/S相结合,全部都是用C#+WinForm+WebForm来完成;

2010年,给烟台一家建筑企业做ERP,大概2年10几个子系统,B/S架构,也都是用C#+WebForm来完成;

2013年到现在,自己创业,写了5-6个软件产品,仍然是C#+WinForm+WebForm,官网、爬虫、GDI+、自编脚本引擎,仍然是完美完成各类任务。

2021年,PC端日渐萎缩+疫情影响,我打算做跨平台开发,结果发现原来早已经有了Unity这么强大的引擎出现,完美与C#融合,以前是靠mono,可能还考虑有不稳定的因素,现在竟然支持IL2CPP的编译支持,这还有什么可顾虑的了呢?接下来的项目我就打算用Unity做个小游戏来试水。

不做游戏的话,也可以考虑用Xamarin,听说这个也是跨平台的,不过我现在没用用上,不清楚会有多少坑。

希望下个10年,仍然可以继续用C#在代码世界翱翔吧,献给同样喜欢C#的同行们:)

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/79766.html

(0)
小条's avatar小条
上一篇 2024年5月31日 上午1:29
下一篇 2024年5月31日 上午1:29

相关推荐

  • 如何免费申请个人网站?(详细步骤)

    你是否曾经想过拥有一个属于自己的个人网站?或许你已经听说过免费申请个人网站这个方法,但又不知道如何操作。别担心,本文将为你详细介绍如何免费申请个人网站的步骤,并解答一些常见问题。在…

    行业资讯 2024年4月12日
    0
  • 域名被墙怎么申诉,域名被墙原因查询

    首先我们要明确的是,被屏蔽的域名并不是在所有情况下都能自动恢复的。在某些情况下,对您域名的访问可能会再次被永久阻止。这取决于多种因素,包括网站内容是否违反法规以及是否符合政府要求。…

    行业资讯 2024年5月7日
    0
  • 外事学院网络教学平台,外事学院咋样

    近日,有消息称外交部网站可能遭到攻击,引起广泛关注。著名大学外交学院网站安全问题备受关注。那么,外交学院网站真的被攻击了吗?到底是什么造成了这样的局面呢?如果你真的受到攻击,你应该…

    行业资讯 2024年5月11日
    0
  • 黑客常用的十大工具

    nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络…

    2024年5月31日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注