C#.NET 一颗璀璨的全能明星


C# 是微软推出的一种基于.NET框架的、面向对象的高级编程语言,她可以做什么呢?

1.桌面开发,WinForm/GUI可视化编程:Windows开发中的葵花宝典,霸主地位至今无出其右,开发效率令人发指,大部分营销软件也是使用Winform开发,WCF:通信编程中的王者,WPF:winform的UI升级版,可以很容易开发出漂亮而大气的应用;

2.Web开发 .net Core:跨平台的高性能开源框架,也是目前最热的Web开源框架,MIT协议开源,永久免费、不可撤销;

3.移动开发:Xamarin:移动跨平台开发框架,前身为Mono,在Visual Studio 2019 中使用 C# 开发原生 Android、iOS 和通用 Windows 平台的应用体验度很好,Xamarin.Form可以真正做到一套业务逻辑多个平台共享运行,而且是完全免费的;

4.游戏开发:Unity轻松跨平台,C#是其主力开发语言,也是目前最流行的游戏开发方式,占据了移动端游戏开发大半市场。

前三个方向已经染指,工作原因还会经常写Lua脚本,而Lua与Unity又是对好基友比翼双飞,感觉迟早要被带飞的节奏,当然游戏这块完全出于兴趣爱好,至于当初为什么会选择C# 作为开发语言,还真有点故事,2012年的时候流行电商,用Shopex搭了一个商城,那时候我是搞运维的,对编程并不那么了解,但Linux/PHP/Mysql/Apache开源的强大震撼了我,对 "PHP是世界上最好的编程语言" 这句话是深信不疑,非常看好LPMA,也打算深入学习,但当时有一个更紧迫的问题,商城都搭好了,开始运营才发现,推广是个很要命的问题,完全没流量,先得研究怎么去搞流量啊,在研究流量的过程中,遇到了一位写营销软件的大佬,才发现有QQ验证消息瞬间爆屏的这种骚操作,一下几百个人加我好友,当时点开消息就懵逼了,山呼大佬,我的机器快卡爆了,这位大佬就是用C#写的营销软件,才想起互联网世界本质是通信,而通信的本质是协议 ;

C#/PHP/JAVA,三者语法非常相似,都是C衍生出的语言,但我最后还是被Visual Studio和C#/.net的易用性全面性所折服,因为之前有计算机网络基础,加上那位大佬的编程思想引导下,自学了半年(看书+视频),至此开启了我的C# Winform营销软件之路,逆向脱壳、数据抓包分析、JS分析、加密算法提取,模拟通信,验证码识别等等,QQ、朋友网、空间、微博、贴吧、58、知乎、微信等都玩了一遍后,才发现后端程序员才是大爷,他们更新一次我就得赶紧更新,否者账号数据异常很可能全部GG,加上大数据行为分析,实名绑卡验证,网络环境、系统、硬件、账号权重等多维限制下,协议类营销软件的好日子算是走到头了,动作快也能玩一阵,但是真心累,像QQ一个月更新5次。。。最尴尬的是,营销软件开源的几乎可以忽略,大家都是各自为战,不像后端开源是常态,本来就很被动,还一个人对抗一群人,感觉在这条路上越走越远越走越窄,技术上已经没有什么提升空间,正好.net core 的发展已经非常成熟,所以自己也往 .net Core后端开发靠,同时上手移动开发Xamarin,还是走的业务流程自动化路线,目标已清晰,.net Core做后台+Xamarin做跨平台客户端,提供自动化功能性工具(例如微商工具),做社交化营销,通过真实用户进行裂变;

通过一段时间.net core开发的尝试,发现了 开源项目WTM,一个非常优秀的Mvvm架构模式的.net core 开源项目WTM:github.com/dotnetcore/W,星已破千,足见.net人对该项目的认可,用来写后台确实很效率,对于懒人非常友好,我也参与到该项目的开源贡献中,并在这里呼吁国内.net 人一同支持该开源项目,为国内.net生态环境贡献一份自己的力量,真正做到我为人人,人人为我的开源精神,同时也希望可以看到更多优秀的.net开源项目,避免不必要的重复造轮子,也为国内.net 新萌做出良好的引领及示范作用;

原文链接:https://zhuanlan.zhihu.com/p/82357636


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

#3328. PYXFIB(单位根反演)

#3328. PYXFIB ∑i0⌊nk⌋CnikFik∑i0nCniFi[i≡0(modk)]i≡0(modk),单位根反演有1k∑j0k−1wkij1k∑i0nCniFi∑j0k−1wkij\sum_{i 0} ^{\lfloor \frac{n}{k} \rfloor} C_{n} ^{i \times k} \times F_{i \times k}\\ \sum_{i 0} ^{n} C_n ^{i} \times F_i \times …

Leetcode 86. 分隔链表

给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head 1->4->3->2->5->2, x 3输出: 1->2->2->4->3->5题目分析…

深入理解 JVM Class文件格式(一)

** 一、JVM体系结构 ** ** 二、class格式文件概述 ** class文件是一种8位字节的二进制流文件, 各个数据项按顺序紧密的从前向后排列, 相邻的项之间没有间隙, 这样可以使得class文件非常紧凑, 体积轻巧, 可以被J…

min_25 推导及例题总结

min_25 筛 一个亚线性筛,复杂度大概是O(n34log⁡n)O(\frac{n ^{\frac{3}{4}}}{ \log n})O(lognn43​​)。 使用min_25min\_25min_25求前缀和,有两个基本特征:① 积性函数,② 满足质数点为多项式。 算法思路 给定n≤1011n \leq…

asp.net core 使用 signalR(一)

asp.net core 使用 signalR(一)IntroSignalR 是什么?ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程。实时 Web 功能使服务器端代码能够即时将内容推送到客户端。SignalR 的适用对象:需…

深入理解 JVM Class文件格式(二)

** class文件中的特殊字符串 ** 特殊字符串是常量池中符号引用的一部分,包括三种: 类的全限定名, 字段和方法的描述符, 特殊方法的方法名。 下面我们就分别介绍这三种特殊字符串。 (1) 类的全限定名 在…

P4211 [LNOI2014]LCA(离线 + 在线 做法)

P4211 [LNOI2014]LCA 有一棵根节点为111树,有mmm次询问,每次给定l,r,zl, r, zl,r,z,输出∑ilrdep[lca(i,z)]\sum\limits_{i l} ^{r} dep[lca(i, z)]il∑r​dep[lca(i,z)]。 乍一看这题好像无从下手,仔细想想lca(i,z)lca(i, z)l…

.NET框架之“小马过河”

.NET框架之“小马过河”有许多流行的 .NET框架,大家都觉得挺“重”,认为很麻烦,重量级,不如其它“轻量级”框架,从而不愿意使用。面对形形色色的框架发愁,笔者也曾发愁。但我发现只要敢于尝试,这…

深入理解 JVM Class文件格式(三)

** JVM常量池中各数据项类型详解 ** 关于常量池的大概内容, 已经在 深入理解 JVM Class文件格式(一) 中讲解过了, 这篇文章中还介绍了常量池中的11种数据类型。 本文的任务是详细讲解这11种数据类型, 深度剖析源文件…

#6073. 「2017 山东一轮集训 Day5」距离(树链剖分 + 永久标记主席树)

#6073. 「2017 山东一轮集训 Day5」距离 给定一颗有nnn个节点带边权的树,以及一个排列ppp,path(u,v)path(u, v)path(u,v)为u,vu, vu,v路径上的点集,dist(u,v)dist(u, v)dist(u,v)为u,vu, vu,v之间的最短路的长度。 有mmm次询问,…

ML.NET 示例:搜索引擎结果排名

ML.NET 示例中文版:https://github.com/feiyun0112/machinelearning-samples.zh-cn/edit/master/samples/csharp/getting-started/Ranking_Web英文原版请访问:https://github.com/dotnet/machinelearning-samples/tree/master/samples/csharp/getting-st…

深入理解 JVM Class文件格式(四)

(3)CONSTANT_Integer_info 一个常量池中的CONSTANT_Integer_info数据项, 可以看做是CONSTANT_Integer类型的一个实例。 它存储的是源文件中出现的int型数据的值。 同样, 作为常量池中的一种数据类型, 它的第一个字节也是一个tag值…

.Net Core中使用Quartz.Net Vue开即用的UI管理

Quartz.NETQuartz.Net 定制UI维护了常用作业添加、删除、修改、停止、启动功能,直接使用cron表达式设置作业执行间隔,有完整的日志记录。Quartz.NET是一个功能齐全的开源作业调度系统,可用于从最小的应用程序到大型企业系统。Quartz.NET是一个…

Ancient Distance(妙啊!!!) [2020牛客暑期多校训练营(第四场)]

Ancient Distance 给定一颗根为111有nnn个节点的树,每次可以选定树上kkk节点当作特殊节点, 定义dis(u)dis(u)dis(u)为,从u−>1u->1u−>1遇上的第一个特殊点的距离,如果遇不上特殊点则dis(u)dis(u)dis(u)无穷大。 有nn…

深入理解 JVM Class文件格式(五)

(8) CONSTANT_Class_info 常量池中的一个CONSTANT_Class_info, 可以看做是CONSTANT_Class数据类型的一个实例。 他是对类或者接口的符号引用。 它描述的可以是当前类型的信息, 也可以描述对当前类的引用, 还可以描述对…

混沌工程详细介绍——Netflix持续交付实践探寻

内容来源:DevOps案例深度研究 – Netflix的文化与工程实践战队(本文只展示部分案例PPT及研究成果,更多细节请关注案例分享活动,及本公众号)。本案例内容贡献者:高金梅,李晓莉,潘雄鹰…

P4175 [CTSC2008]网络管理(整体二分)

P4175 [CTSC2008]网络管理 给定一棵有nnn个节点的树,点有点权,有两种操作:① 修改某个点的点权,② 查询两点路径间的点权第kkk大。 给定u,vu, vu,v,选定111号节点为根节点,设inf(x)inf(x)inf(x)表示从根节…

深入理解 JVM Class文件格式(六)

经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, 是因为对于理解class文件格式,常量池是必须要了解的, 因为class文件中其他地方,大量引用了常量池中的数据项。 对于还不了解常量池…

远程开发初探 - VS Code Remote Development

如果你是学生,你还在你的 windows 电脑上为各种环境配置头疼的时候,你应该了解一下 Remote Development。如果你喜欢 linux 的开发环境和舒适的 shell,但却不舍得抛弃 windows/macos 图形界面给你带来的用户体验和一些软件的兼容(QQ, 微信), …

深入理解 JVM Class文件格式(七)

本专栏列前面的一系列博客, 对Class文件中的一部分数据项进行了介绍。 本文将会继续介绍class文件中未讲解的信息。 先回顾一下上面一篇文章。 在上一篇博客中, 我们介绍了: this_class 对当前类的描述 super_class 对当前类的超类的描述 in…