从零开始系列,用C#做软件产品:私人日记(一)

可能是个人性格原因,我特别不能接受每天做重复的事情,几个产品的维护经常会让人感觉枯燥;当然也可能是年龄的原因,毕竟今年已经42了。现在突然感觉已经丧失了继续研发新软件产品的激情,之前也想做一款游戏,但是游戏更重要的可能是美工,自己也没有太多的新意,开发周期也会特别长,属于费力不讨好。不过人总得找点自己感兴趣的事情来做吧,不然活着干嘛呢?炒股是自己的兴趣之一,之前是想通过程序量化来实现自动炒股,但是经过自己反复试验表明,在海量数据样本面前,单靠技术指标胜率基本在50%左右,跟抛硬币差不多,这条路走不通。

在教程开始之前,先给大家看下2021年8月TIOBE上的编程语言排行榜。

大致介绍下排名前五的语言:

第一的C和第四的C++通常会把它俩归为一类,合计占比近20%。C诞生于1972年,后来在C的基础上衍生出了带类的C,到了1983年,正式命名为C++。目前市面上绝大部分操作系统的底层都是C/C++写的,甚至绝大多数编程语言的编译器也是C/C++编写的。跨平台、效率高是最大的优点,缺点则是需要对底层有很深的了解,导致学习周期、开发成本都比较长;主要应用场景是做底层。

第二的Python占比近12%。诞生于1991年,它是一门脚本语言,用C写的。它的最大优点是能够很方便的调用各种其他语言写的东西:比如C/C++写的dll、Java和c#写的类、甚至js脚本,它都能调用。它的定位更像个包工头,我自己虽然干不好,但是我能找到各种工人,要啥有啥;当然缺点也很明显,执行效率不高。所以一般用于研究、运维等对界面和效率要求不高的领域,比如人工智能、机器学习、大数据挖掘、爬虫、黑客等等,做软件产品就别指望它了。另外就我个人喜好而言,很不习惯用空格数量来决定语句层级关系,有人开玩笑说得用游标卡尺去量每行的空格数量,没那么夸张,但确实废眼睛。

第三的Java占比近11%。诞生于1995年,可以说是目前在国内互联网大厂们用得最多的语言。最大优点是跨平台、开源有很多现成的代码、会的人多、政府指定等等,用行内人说就是生态好,缺点是运行效率稍低,内存开销较大。Java目前应用较多的场景是做大型网站、企业应用、手机应用等,Windows平台下的个人应用体验较差。

1)功能丰富且语法优美。在伟大的AndersHejlsberg带领下,这门语言被雕琢得更像是一件艺术,配合宇宙最强的代码编辑器VisualStudio,简直是无敌一般的存在。使用它的心情也是愉悦的,不像某些其他语言,看着就乱糟糟,影响心情。

3)跨平台可期。这几年微软对跨平台及开源不再矜持,投入力度空前。随着.net6、MAUI大一统的跨平台产品相继推出,未来c#跨平台的趋势将彻底扭转。一份c#代码可以运行在不同平台的时代即将到来。

4)游戏界的扛把子。Unity已经成为游戏行业当之无愧的老大了,C#与之完美的融合,如果想走这个方向,C#必须要学习。

5)独立开发者首选。用C#可以编:windows工具软件、windows服务、ERP系统、工控系统、爬虫工具、GDI绘图、各类网站、微服务、游戏、苹果安卓下的手机应用等等我都列举不过来,基本上你能见到的程序,都可以用它编出来,而且高效。如果你学习编程的目标是去企业找份工作打个工,那么在目前国内就业形势下选择学习Java是明智的选择;但如果你的目标是像我一样成为一名独立开发者,做一款自己的软件产品或应用,那C#是最佳的选择,因为它性能优越,且无所不能。

在网上也看过一些C#教程,很多都像用户手册一样,挨个语法说一遍,讲得倒是挺详细的,但是你废了很大功夫看过之后还是不知道能用来干嘛,没有产品和项目相结合的经验,做参考书还不如百度精准,没什么实用性。

所以我的想法就是以做一个软件产品为目标,由产品产生功能,由功能驱动设计,由设计指导开发,然后才是编码,边做边学,学以致用才能加深理解,一通百通。

另外,在很多大厂中,每个员工都是螺丝钉,工种单一,码农也不例外。比如做前端的就一直做前端,可能连做后端的机会都没有。我的教程虽然功能可能相对简单,但麻雀虽小,五脏俱全,囊括了产品开发中的各类工作,一可以增加了解,让团队配合更加融洽;二可以帮助自己选择更适合的工种,提升晋升空间。

这个软件产品是要做一个私人日记,或者也可以看成是一个私人的博客。最终的目标识可以同时在电脑端、网页端、移动端使用,这三端都可以对日记内容进行增删改查,并实现数据同步。

软件的开发周期大概分三个阶段:

第一阶段、windows单机版

目标是实现软件单机版的基本功能,做好数据定义、类库等,为后续学习与开发打基础。

第二阶段、B/S架构网络版

web端发展的太快了,像我这种老人已经有点跟不上变化的速度了,我到现在一些项目还仍然使用asp.net+jquey来做web项目,也没觉得有什么不好,当然用做教学就落伍了。微软的web架构由最初的asp发展到asp.net,然后前端随着javascript的大发展,尤其是jquery和ajax出现之后,前端再不是以前简单的html+css了。于是各种框架相继出现了,mvc、Vue等等还有很多我叫不上名的。这块可以发展的方向有很多,也很乱。现在微软主推的是blazor,以webassembly的方式运行在网页端,这个又是一项走在前沿的技术,可以跨平台部署,我比较看好它,所以选它来作为web项目的开发框架。

第三阶段、多端跨平台

目标是实现同一份代码以原生程序分别运行在不同平台(Windows、Mac、Android、IOS、Linux)。

前面两个阶段实现的是单机版和Web端,但它们各有缺陷,单机版只能在windows系统下运行,用户群受限;Web端只能在浏览器上运行,用户体验稍差。而此阶段是要在单机版的基础上,增加对所有客户端的支持,win、mac、linux系统下的主流设备,如电脑、手机、平板等主流设备下均可运行。

我预估下来教程长度可能会超过百节,我之前没做过如此完整的系列教程,每一步都是不断摸索中前行,所以更新进度估计会慢一些。

初步计划是每周更新1-3篇,当然具体还得看实际情况,毕竟生活有各种各样的琐事。

THE END
1.佳能相机sdk开发包发布 时间: 2023-07-28 13:02:08浏览: 1116 佳能开发包SDK V13.13.rar 5星 · 资源好评率100% 佳能开发包SDK V13.13是一个用于与佳能相机进行集成和交互的软件开发工具包。这个版本的SDK提供了丰富的功能,使开发者能够创建应用程序,直接控制佳能的数码相机,实现如拍摄、下载照片、设置相机参数等操作。通过这个https://wenku.csdn.net/answer/6vtpwqcacb
2.C#软件工程师任职要求河北水德网络科技有限公司正式注册于2018年8月,位于河北石家庄,注册资金300万,是一家专业的软件开发公司。计算机软件开发、技术咨询、技术服务,包括网站平台及商城的开发、手机APP及微信开发、企业管理系统oa定制开发等。 计算机软硬件结合的技术咨询、技术服务。对内“以项目为中心”,对外“以客户为中心”,以人才和共享https://www.zhipin.com/job_detail/bbb25fd55dd176211XZ839u6FlpT.html
3.web端软件开发定制个人动态web端软件开发定制动态记录短剧系统开发搭建上线流程,支持小程序公众号h5和app多端发布。#短剧系统开发#短剧小程序#短剧小程序 - 2 0 web端软件开发定制 11月30日 · 投稿了视频 Token Tails是一款Web3 Play to Save游戏,每个玩家都可以拥有一只NFT猫,该猫与收容所中的一只真正的猫相连。 NFT猫允许主人在Token Tails游戏中心玩游戏,挑战https://space.bilibili.com/3546733734791519/dynamic
4.c#基于wpf,开发OFD电子文档阅读器C#教程国内流行的ofd阅读软件应该是福昕和数科开发的,这两款我都用过。我还要吐槽一下:1)福昕阅读器帮助文档是ofd格式,但是无法用数科的阅读器打开。2)有些ofd文档中xml标记,在标准中找不到,是某些公司独创的?这些软件都是用C++开发的,用到了QT。同样情况下,相比于C#,C++开发软件难度肯定会大增。在windows平台开发https://www.jb51.net/article/207096.htm
5.TVPlayerIPTVEasyPlayer友窝直播超级直播软件定制开发软件定制开发 友窝直播 超级直播 吴明辉 IPTV直播2019-04-25 上传大小:118.00MB 所需:50积分/C币 TVPlayer.rar TVPlayer网络电视是最省流量的流畅通无阻的网络电视软件,希望大家喜欢. 上传者:u011666412时间:2013-08-11 EasyQtAVTV.zip 基于QtAV的简易电视播放器 https://www.iteye.com/resource/qq_35350654-11143538
6.软件项目策划书10篇[精]按照调研要求的所有功能实现完毕后,项目实施人员将编制《软件功能确认表》,将定制好软件功能待用户确认,用户根据《软件功能确认表》上的功能逐一确定软件功能是否达到要求,对不满足要求的功能,项目实施人员将会记录下来并进行功能修改,直到满足用于要求。 (四)数据标准化初装阶段 此阶段的主要工作是项目实施人员指导用户https://www.ruiwen.com/xiangmucehuashu/8320608.html
7.第三方组件与依赖管理简介常见的第三方依赖管理工具软件有以下几种: 1.3.1Maven Maven 是一个流行的 Java 项目管理工具,用于构建、发布和管理 Java 项目的依赖项。它通过一个称为 Project Object Model (POM) 的 XML 文件来描述项目的结构、依赖项和构建配置,并提供了一系列命令和插件来执行各种构建任务。 https://www.51cto.com/article/785372.html
8.robotsoftware/awesomelinuxsoftware本文档已使用 GitBook 发布了,因此你可以在 GitBook 网站获得更佳的阅读体验。此外,你也可以下载 PDF 或ePub 格式的文档,以便离线阅读。 提示:该文档会不间断地更新补充,推荐到 GitHub 项目主页 Linux 优秀软件资源大全中文版 https://github.com/0xE8551CCB/awesome-linux-software-cn 获取其最新版本。 目录 应用https://github.com/robotsoftware/awesome-linux-software-cn/
9.软件开发详情—MSDNMicrosoftLearn这意味着仅仅了解如何使用 C# 或 Visual Basic 这样的编程语言是不够的。现代编程框架和语言提供了可敏捷开发强调客户和外部利益相关者在开发期间通过定期发布的软件给出意见以及不断提供反馈。通常使用一个https://learn.microsoft.com/zh-cn/previous-versions/msdn10/hh126387(v=msdn.10)
10.2024年.NET开发利器:五款免费软件推荐软件技巧软件介绍:Email Director是一款用来开发让你方便与客户保持联系的应用软件.电子邮件让您沟通,与您的客户和顾客在一个 5.VB.Net to C# Converter 1.51 为给用户提供更多有价值信息,ZOL下载站整理发布,如果有侵权请联系删除,转载请保留出处。 分享到:https://xiazai.zol.com.cn/jiqiao/130806.html
11.C#软件外包开发框架腾讯云开发者社区C#软件外包开发框架 C# 是一种由微软开发的多范式编程语言,常用于开发各种类型的应用程序,从桌面应用程序到移动应用程序和Web应用程序。在 C# 开发中,有许多框架和库可供使用,用于简化开发过程、提高效率并实现特定的功能。下面和大家分享一些常见的 C# 开发框架,希望对大家有所帮助。北京木奇移动技术有限公司,专业的https://cloud.tencent.com/developer/news/1157337
12.C#代码生成器(CodeMaker)官方下载C#代码生成器(CodeMaker)最新版软件大小:0.01MB 软件评分: 软件类型:国产软件 更新时间:2017-09-14 应用平台:winall 软件语言:简体中文 版本:1.0 绿色免费版 编程工具口碑排行榜 pycharm社区版 IntelliJ IDEA 2020 Navicat12 WebStorm 下载服务协议见页面底部 基本简介 C#代码生成器生成BL,DAL,Model三层代码,增删改查 http://www.onlinedown.net/soft/989341.htm
13.免费销售管理软件销售管理软件下载销售管理软件哪儿好销售管理软件是现在营销管理中必不可少的一个工具。销售管理软件是管理客户档案、销售线索、销售活动、业务报告、统计销售业绩的先进工具,适合企业销售部门办公和管理使用,协助销售经理和销售人员快速管理客户、销售和业务的重要数据。不管你是销售新人,还是专业人士想必销售管理软件都能帮到你吧,下载之家提供免费下载,欢迎https://www.downza.cn/zt/1110.html
14.重庆九洲隆瓴科技有限公司关于招聘软件开发副主任工程师等岗位的重庆九洲隆瓴科技有限公司是四川九洲投资控股集团有限公司积极响应国家号召,发挥大型国有企业综合优势,深度参与“成渝双城经济圈”建设的重要战略布局。公司于2021年9月落户重庆经开区,注册资本8500万元,占地面积8200平方米。 公司构建了“3+N”智能网联汽车电子业务体系,围绕智能座舱、新能源电池管理系统、高精度导航三大https://www.my.gov.cn/mysrmzf/c100176/202404/57fa3eb832dd470683399e255cee4006.shtml
15.C#软件外包开发框架WebWindowsC#软件外包开发框架 C# 是一种由微软开发的多范式编程语言,常用于开发各种类型的应用程序,从桌面应用程序到移动应用程序和Web应用程序。在 C# 开发中,有许多框架和库可供使用,用于简化开发过程、提高效率并实现特定的功能。下面和大家分享一些常见的 C# 开发框架,希望对大家有所帮助。北京木奇移动技术有限公司,专业的https://www.sohu.com/a/711565118_121198703
16.从毕业生到程序员:使用C#开发商业软件204 第10章 开发第一个Web Service程序 207 10.1 Web Service原理 207 10.2 软件功能需求 208 10.3 建立C# Web Service应用程序项目 208 10.4 编写Web方法 210 10.5 发布Web Service 216 10.6 使用Web Service 216 10.7 在Windows应用程序中使用Web Service 216 10.7.1 添加Web引用 216 https://baike.baidu.com/item/%E4%BB%8E%E6%AF%95%E4%B8%9A%E7%94%9F%E5%88%B0%E7%A8%8B%E5%BA%8F%E5%91%98%EF%BC%9A%E4%BD%BF%E7%94%A8C%23%E5%BC%80%E5%8F%91%E5%95%86%E4%B8%9A%E8%BD%AF%E4%BB%B6/112698
17.锦丰镇重点企业招聘岗位信息1、本科及以上学历,计算机和软件工程相关专业;2、具有丰富的ERP、BPM、HR项目管理、实施、维护经验;3、良好的项目规划、沟通协调能力,能承受一定工作压力;4、熟悉生产制造业务,具有两年以上制造业ERP从业经验,熟悉ERP业务流程和功能模块,具有K3/Could/SAP和海外工作经验优先;5、熟悉C#或同等编程语言,熟悉Oracle/MS SQhttps://www.zjgrc.com/news?id=jQfcHw4kYHBwTzq%2FdLSPY7ZAVe%2F2aqQ3