使用 k3s 在 Fedora IoT 上运行 K8S

使用 k3s 在 Fedora IoT 上运行 K8S,第1张

Fedora IoT 是一个即将发布的、面向物联网的 Fedora 版本。去年 Fedora Magazine 的《 如何使用 Fedora IoT 点亮 LED 灯 》一文第一次介绍了它。从那以后,它与 Fedora Silverblue 一起不断改进,以提供针对面向容器的工作流的不可变基础 *** 作系统。

Kubernetes 是一个颇受欢迎的容器编排系统。它可能最常用在那些能够处理巨大负载的强劲硬件上。不过,它也能在像树莓派 3 这样轻量级的设备上运行。让我们继续阅读,来了解如何运行它。

虽然 Kubernetes 在云计算领域风靡一时,但让它在小型单板机上运行可能并不是常见的。不过,我们有非常明确的理由来做这件事。首先,这是一个不需要昂贵硬件就可以学习并熟悉 Kubernetes 的好方法;其次,由于它的流行性,市面上有 大量应用 进行了预先打包,以用于在 Kubernetes 集群中运行。更不用说,当你遇到问题时,会有大规模的社区用户为你提供帮助。

最后但同样重要的是,即使是在家庭实验室这样的小规模环境中,容器编排也确实能够使事情变得更加简单。虽然在学习曲线方面,这一点并不明显,但这些技能在你将来与任何集群打交道的时候都会有帮助。不管你面对的是一个单节点树莓派集群,还是一个大规模的机器学习场,它们的 *** 作方式都是类似的。

一个“正常”安装的 Kubernetes(如果有这么一说的话)对于物联网来说有点沉重。K8s 的推荐内存配置,是每台机器 2GB!不过,我们也有一些替代品,其中一个新人是 k3s —— 一个轻量级的 Kubernetes 发行版。

K3s 非常特殊,因为它将 etcd 替换成了 SQLite 以满足键值存储需求。还有一点,在于整个 k3s 将使用一个二进制文件分发,而不是每个组件一个。这减少了内存占用并简化了安装过程。基于上述原因,我们只需要 512MB 内存即可运行 k3s,极度适合小型单板电脑!

安装 k3s 非常简单。直接运行安装脚本:

它会下载、安装并启动 k3s。安装完成后,运行以下命令来从服务器获取节点列表:

需要注意的是,有几个选项可以通过环境变量传递给安装脚本。这些选项可以在 文档 中找到。当然,你也完全可以直接下载二进制文件来手动安装 k3s。

对于实验和学习来说,这样已经很棒了,不过单节点的集群也不能算一个集群。幸运的是,添加另一个节点并不比设置第一个节点要难。只需要向安装脚本传递两个环境变量,它就可以找到第一个节点,而不用运行 k3s 的服务器部分。

上面的 example-url 应被替换为第一个节点的 IP 地址,或一个完全限定域名。在该节点中,(用 XXX 表示的)令牌可以在 /var/lib/rancher/k3s/server/node-token 文件中找到。

现在我们有了一个 Kubernetes 集群,我们可以真正做些什么呢?让我们从部署一个简单的 Web 服务器开始吧。

这会从名为 nginx 的容器镜像中创建出一个名叫 my-server 的 部署 (默认使用 docker hub 注册中心,以及 latest 标签)。

为了访问到 pod 中运行的 nginx 服务器,首先通过一个 服务 来暴露该部署。以下命令将创建一个与该部署同名的服务。

服务将作为一种负载均衡器和 Pod 的 DNS 记录来工作。比如,当运行第二个 Pod 时,我们只需指定 my-server(服务名称)就可以通过 curl 访问 nginx 服务器。有关如何 *** 作,可以看下面的实例。

默认状态下,一个服务只能获得一个 ClusterIP(只能从集群内部访问),但你也可以通过把它的类型设置为 LoadBalancer 为该服务申请一个外部 IP。不过,并非所有应用都需要自己的 IP 地址。相反,通常可以通过基于 Host 请求头部或请求路径进行路由,从而使多个服务共享一个 IP 地址。你可以在 Kubernetes 使用 Ingress 完成此 *** 作,而这也是我们要做的。Ingress 也提供了额外的功能,比如无需配置应用即可对流量进行 TLS 加密。

Kubernetes 需要 Ingress 控制器来使 Ingress 资源工作,k3s 包含 Traefik 正是出于此目的。它还包含了一个简单的服务负载均衡器,可以为集群中的服务提供外部 IP。这篇 文档 描述了这种服务:

Ingress 控制器已经通过这个负载均衡器暴露在外。你可以使用以下命令找到它正在使用的 IP 地址。

找到名为 traefik 的服务。在上面的例子中,我们感兴趣的 IP 是 10008。

让我们创建一个 Ingress,使它通过基于 Host 头部的路由规则将请求路由至我们的服务器。这个例子中我们使用 xipio 来避免必要的 DNS 记录配置工作。它的工作原理是将 IP 地址作为子域包含,以使用 10008xipio 的任何子域来达到 IP 10008。换句话说,my-server10008xipio 被用于访问集群中的 Ingress 控制器。你现在就可以尝试(使用你自己的 IP,而不是 10008)。如果没有 Ingress,你应该会访问到“默认后端”,只是一个写着“404 page not found”的页面。

我们可以使用以下 Ingress 让 Ingress 控制器将请求路由到我们的 Web 服务器的服务。

将以上片段保存到 my-ingressyaml 文件中,然后运行以下命令将其加入集群:

你现在应该能够在你选择的完全限定域名中访问到 nginx 的默认欢迎页面了。在我的例子中,它是 my-server10008xipio。Ingress 控制器会通过 Ingress 中包含的信息来路由请求。对 my-server10008xipio 的请求将被路由到 Ingress 中定义为 backend 的服务和端口(在本例中为 my-server 和 80)。

想象如下场景:你的家或农场周围有很多的设备。它是一个具有各种硬件功能、传感器和执行器的物联网设备的异构集合。也许某些设备拥有摄像头、天气或光线传感器。其它设备可能会被连接起来,用来控制通风、灯光、百叶窗或闪烁的 LED。

这种情况下,你想从所有传感器中收集数据,在最终使用它来制定决策和控制执行器之前,也可能会对其进行处理和分析。除此之外,你可能还想配置一个仪表盘来可视化那些正在发生的事情。那么 Kubernetes 如何帮助我们来管理这样的事情呢?我们怎么保证 Pod 在合适的设备上运行?

简单的答案就是“标签”。你可以根据功能来标记节点,如下所示:

一旦它们被打上标签,我们就可以轻松地使用 nodeSelector 为你的工作负载选择合适的节点。拼图的最后一块:如果你想在所有合适的节点上运行 Pod,那应该使用 DaemonSet 而不是部署。换句话说,应为每个使用唯一传感器的数据收集应用程序创建一个 DaemonSet,并使用 nodeSelector 确保它们仅在具有适当硬件的节点上运行。

服务发现功能允许 Pod 通过服务名称来寻找彼此,这项功能使得这类分布式系统的管理工作变得易如反掌。你不需要为应用配置 IP 地址或自定义端口,也不需要知道它们。相反,它们可以通过集群中的命名服务轻松找到彼此。

随着集群的启动并运行,收集数据并控制灯光和气候,可能使你觉得你已经把它完成了。不过,集群中还有大量的计算资源可以用于其它项目。这才是 Kubernetes 真正出彩的地方。

你不必担心这些资源的确切位置,或者去计算是否有足够的内存来容纳额外的应用程序。这正是编排系统所解决的问题!你可以轻松地在集群中部署更多的应用,让 Kubernetes 来找出适合运行它们的位置(或是否适合运行它们)。

为什么不运行一个你自己的 NextCloud 实例呢?或者运行 gitea ?你还可以为你所有的物联网容器设置一套 CI/CD 流水线。毕竟,如果你可以在集群中进行本地构建,为什么还要在主计算机上构建并交叉编译它们呢?

这里的要点是,Kubernetes 可以更容易地利用那些你可能浪费掉的“隐藏”资源。Kubernetes 根据可用资源和容错处理规则来调度 Pod,因此你也无需手动完成这些工作。但是,为了帮助 Kubernetes 做出合理的决定,你绝对应该为你的工作负载添加 资源请求 配置。

尽管 Kuberenetes 或一般的容器编排平台通常不会与物联网相关联,但在管理分布式系统时,使用一个编排系统肯定是有意义的。你不仅可以使用统一的方式来处理多样化和异构的设备,还可以简化它们的通信方式。此外,Kubernetes 还可以更好地对闲置资源加以利用。

容器技术使构建“随处运行”应用的想法成为可能。现在,Kubernetes 可以更轻松地来负责“随处”的部分。作为构建一切的不可变基础,我们使用 Fedora IoT。

via: >Java,php,c#,web前端,运维等等选择哪个?,当时大专(2009年左右)选择的是软件技术,大一非常努力,学得也非常好,不管是C语言还是数据结构那些,大二差距就拉开了,我就越学越好,其他很多同学课都听不懂了,我却觉得很简单,当初因为php非常火爆流行,网上都说简单易学(大概2011年的时候),我也就非常喜欢了,看了php培训课程感觉范围很广,什么数据库,前端后台,linux都有学,觉得以后维护也可以做啊(现在觉得那时太天真,有专门的linux运维,php学的那点linux也只是常用命令,让你能够把项目布置到服务器就差不多了,也就学点基础简单的,学的时间也短,和我想的是不一样的,很多其他培训课程都有学linux,就像web前端也有学,培训web前端也学点简单的php和mysql,但也只是了解点而已),但是学校主要教的还是java和c#基础,框架那些都没学我当时也没了解,mvc好像也才流行,我也不知道是什么反正当时就感觉是很厉害的技术,当时在学校也参加了自考,也都考过了,很多参加的都挂科了,我觉得自己也厉害就有些骄傲了,到了大专毕业因为前面几名都放弃专升本名额我就去专升本了(我那时成绩是实打实的,前几名有些技术没我好有些自考也挂科有些考试也作弊的),虽然当初喜欢php,但是也没有往后学,专科大三有很多时间都在看java基础,因为当时培训非常火,出了很多有意思的视频,我就去看视频学基础,都没去看高级部分,基础都不知道看了多少次了(当时网上有人说基础重要,基础好了框架就容易了,所以当时我就看了很多次基础,但是好像也有人说框架很难,前面简单,觉得框架难,但是当时没太在意吧?选择性无视?),专升本后也是倒霉,我们学校一起专升本的同学去那里不学习,整天玩,我们宿舍还有两个其他专升本的蛮厉害的,做过工作的,了解mvc和那些框架,导致我居然觉得自己开始有点菜了,自卑了?现在想想也是可笑,只是当时不了解,现在了解了觉得当初那些难的现在看来也很简单,而且那个同学当初工资也就2千左右,不是因为他厉害,而是我想太多。因为英语差,专升本毕业没拿到学位证,毕业后php又不流行了,别人都叫我培训web前端,我对web前端是迷茫的,因为在大专的时候前端是编程里最被鄙视的,现在web前端突然火了,而且网上都说比php难我是没反应过来的,其实我更喜欢大专的时候写代码(java,c#)那种感觉。但还是去培训web前端了,框架前面还好,排名都是前几,学到框架就崩溃了,为什么?因为专升本后遇到那两个很厉害的同学导致自己不太喜欢写代码了,怀疑是不是自己不适合,又看到以前大专的一个同学自学ui设计找到工资不错的工作,当时其实毕业是想学ui设计的,但是其他人都建议我学web前端,那我就学了,再加上强迫症吧,我喜欢一样东西就不太再去喜欢其他的,我在大学的时候就在想喜欢windows就不想喜欢linux,不喜欢在自己电脑装linux,还有乱七八糟的东西,也不喜欢那些黑黑的命令行,还有那些各种配置乱七八糟的,就喜欢写代码的感觉很爽,不过当时喜欢php也知道要学linux当时也不排斥,看网上说LAMP是黄金组合,觉得很是喜欢,都是免费的,但就像我上面说的我大学还处于java,c#基础阶段,思想也是处在那个阶段,也是感觉那个阶段写代码爽,所以我学到web前端的框架部分的时候,各种乱七八糟的配置我很是反感,还有node的时候,其实我不反感node开始还有些喜欢,因为老师说前后端都用js我就觉得很酷,但是老师有一次说写网站还是php好,一般不用node写后端,当时我就开始反感了,因为我选择了web前端,你说php好,那我不是更迷茫了?说web前端主要写组件的当时就崩溃了,因为我还是喜欢写后台系统那些,觉得维护修改bug很有意思有成就感,不喜欢写什么组件,开始学web前端也不知道后面要学什么,php基础有点,node学了其实蛮喜欢的,但是老师说的不喜欢,以前都不知道这是什么,老师讲课又快,框架什么的都不说有什么用具体是什么,就教了,有时候云里雾里的。最后毕业后悔选择了web前端,也没怎么找工作,就这么浪费了5年,这5年也在反复横跳,思考当初到底如何选择才是对的。有点后悔升本了,如果没升本当初就选择自己喜欢的php了,至少混的也比现在好吧,但是升本这个机会又是提升学历的一大好机会,毕竟高中努力不就是读个好大学吗?所以如果有这个机会不升本当时也觉得亏,以后可能也还是觉得亏,但是如果当时前几名同学去升本我就没机会升本了,这个或许最好了,没升本我也不会觉得怎么样,就不需要选择了,也就不会后悔了,可惜运气不好,前几名不升本。又或者如果大专大三的时候自己把php看完学完,升本的时候或许还有机会拿到学位证(宿舍那两个拿到学位证英语都很差,比我还差,但是他们其他课程成绩好,拉高学分绩),如果当初学完php,学了框架,mvc,到了本科遇到其他同学也不会说觉得自己不适合害怕什么的,就算学到java的框架复杂点的,其实概念都是差不多的(感觉差不多),界面写好看点(有些老师只看你界面打分,里面代码细节也不会看),分数也可以拿高点,现在回头看以前本科觉得难的其实当初我也是会的,只是以为别人工作过懂mvc什么,我没接触过以为自己写的学的是淘汰没用的,现在来看那些也都是以前学的东西,自己很多都接触过,没接触过看一下也能懂,那时候看培训视频感觉太好了,就觉得学校学的是淘汰的(有些少部分确实是),就不太信任自己学的了,其实都差不多的,本科刚开始做课程设计也觉得害怕,觉得好像很难啊,做了几个发现其他本科的也是这么菜还没我厉害,我越做越好,只怪我当初大专和本科那段空闲的时间没好好利用起来,都在学java基础或者看电视剧了和网上人聊天了,不然学完php对知识体系大概(比如什么是mvc,什么是框架,而不是听见就觉得高大上,害怕,那种为未知的恐惧)有了认识本科也不会混得差,本科毕业后也不用去培训什么web前端直接找php工作就ok了,只怪当时也太信任培训的了,有个同学他就不信,他就不去培训,他也是升本的,他说都升本了还培训什么,本科毕业后直接去工作了,现在也做得蛮好的。当时网上也找了些培训课程,觉得不错,但是又好像不够全面,他自己的体系,有些比如cms那些没教,当时也蛮喜欢那些用cms帮别人做网站接活的,我就觉得学完会不会少些什么,也担心,那些完整的培训视频看了又会花很多时间精力,大学学习java和c#就是基础一个月视频看了几个月,自学确实有时候蛮难的,培训好的在于环境吧,导致培训课程视频没看完,网上那些自己出的体系也没看完,现在想想也后悔,网上那些体系看完也行啊,cms都不是很重要,想用有基础自己看看不就ok了?难道是因为强迫症?不完整的不想看?或许是,所以也怪自己,那时候cms很火,网上也出了很多自己的教程,很乱,看得也是稀里糊涂的没有体系,有时候还是觉得可能学完也忘记了,不如工作如果需要有人带你,用什么学什么更好。这两种选择都没选,其实本科毕业后还是有机会的,当时大专同学很差的去学了自学ui设计找到工资不错的工作,当时我也很想学ui设计,可惜几个做ui设计的和网上的人都说ui设计不好找工作了,导致我也没选择,而且ui设计培训完了还有其他单独的培训比如什么交互的培训,临摹的培训,感觉如果想要学好培训完还要参加其他培训才行,我就不喜欢太多的这种,编程的就是只培训一种就行(就像编程培训视频一套就行,ui设计的视频培训视频一套,还有其他结构的交互视频一套,临摹视频一套,太多太乱了),又喜欢又排斥只能说。前面说了本科这样,所以编程是不想学了,所以php也是想学又不想学,想学是因为大专的时候喜欢,不想学是因为本科之后对代码的排斥,但是当时也不知道web前端是怎么样的,都没有大概的了解,所以就去学了web前端,但是web前端学到框架那里就烦了,因为要学linux,要用命令行,还要看英文文档,开发工具也是黑色背景,不喜欢。我的感觉还停留在大专写java,和c#那种感觉,不用怎么配置就可以开心的写代码,当时对php的感觉也是这样(虽然不具体学过),当时流行的jq(当时看网上前端会点jq就能找到好工作),也觉得php就像大专的时候学java那种感觉,觉得jq就是引个包就能愉快写代码了,所以学web前端的时候又想着学php(虽然前面说了本科不喜欢写代码了,但是web前端培训的时候因为排名靠前,又觉得自己写代码又行了)或者想着学ui设计,不喜欢web前端那种各种配置,和linux那些(如果是学php学linux又不排斥,怪怪的感觉,感觉php和linux是黄金组合吧?,或许觉得web前端就不应该学linux?),其实这也是无知的表现,所以认知不全面就很影响判断,就在前几天看了下php的培训视频,后面框架部分,发现学php也有类似前端的npm比如Composer,也是各种配置各种命令,php框架并不觉得比node学的express舒服,配置还多,当初以为php自带很多现成的东西,比如界面啊,写web界面会很方便,以为会自己生成,现在才发现很多都是第三方的,别人拿来直接用的,以前认为数据传输会很简单,现在发现和node一样该怎么用还是要怎么用,并没有觉得会非常方便,甚至到这里我更喜欢web前端的node的内容了,说难点的或许就是异步吧,但是我学得很好,这也不是让我犹豫的地方,可惜本科的时候不知道,不如分数会拉得更高,那些基础得增删改查其实都会,就是框架没学,如果界面弄好看点,直接拿网上找的(以前我一直以为那些界面都是同学自己写的,或者系统生成的,反正是我不会的,觉得网上找的或者自己写的或许是淘汰不标准的,反正就是怀疑自己,也说不出那种感觉,不知道前端页面如何和后台数据交互吧,比如绑定还是什么的?自己也有学c#拖控件组件直接绑定数据觉得很简单,就觉得是不是淘汰的或者出去社会也不用的,就是怀疑自己觉得简单,现在看来是我想太多,本来就不难的啊,很简单的东西我自己想得太复杂,被那些各种高大上名词忽悠了),分数会更高,拿到学位证机会更大吧,可惜那时候不相信自己,不相信大学的东西,觉得那是淘汰的以前的,以前一直以为培训教的项目都是完整的,培训之后才发现很多也是半成品,看了下网上培训视频很多都是半成品,教你用框架增删改查写出的项目也是半成品,和大学自己学的也差不多,只是用了框架数据传输的思路变了一些而已,以前整天吹得好像多么多么牛,什么企业级项目开发,搞得我自己都怀疑自己迷茫了,过于相信培训了,让自己怀疑自己。有段时间还犹豫当初是不是选择java会更好,因为java大学都有学,如果大专选择java,本科也用java,似乎更通用(其实也不完全对,c#大专本科都有啊,但是现在来看也淘汰了,比php淘汰还快,微软c#还是微软的呢,够大牌了吧?),就像官方或者品牌一样有保障,虽然难点,但是我大专也学得好啊,当初喜欢php是因为都说php简单易学,java难一点,但是想到那时中专的都能学会找到不错的工作,我也能,容错率更高,有段时间我是这么想的,但是想了之后还是迷茫,为什么?因为我后面已经觉得简单才好,因为以前小时候买的很多软件当时喜欢,但是长大之后觉得变成了负担,又看了网上的极简,觉得简单更快乐,当然简单不是极简啊,极端我觉得就不好了,所以我又觉得java太臃肿复杂,配置一大堆,就觉得这不是和我的思想矛盾了吗?觉得选择java是对的但是又和自己追求简单矛盾了,想啊想,然后网上看了下某智的java视频,框架各种前面介绍视频,真的这个机构的培训视频总能给我眼前一亮的感觉,讲技术前都会介绍这个东西是什么,有什么用,为什么会有这个东西,比如讲框架,以前我是不知道是什么,网上查了下别人的比喻大概懂但是又没懂完,我培训的时候也是,框架也不怎么介绍就讲怎么用,学一个东西你不告诉我他是做什么的,我学的云里雾里的,目标是什么,作用是什么都不说,反正我感觉不适合我,这个培训机构视频是什么都说得很清楚,也看了下用法,反正和我以前想的不一样,以前总觉得很高大上,现在就觉得框架就是解决或者简化某些问题的,其实也就那样,相当于帮你把你原来学的基础内容封装起来,用他的规则来简化写代码,就算不会框架你也可以用基础学的内容写出同样相同的东西,如果我本科知道的话就算不用框架我也能写出,这样我就不会排斥了,分数也会高很多吧,不过看了下java的框架确实很多,臃肿,所以我看到这里又觉得还是不选择java比较好,又觉得选择java不适合了。看完视频又非常后悔为何早点没看(早点看就不会整天和自己的想象认知胡思乱想了,总是在自己认知的世界里想解决问题,但是认知不够又不好解决,想的毕竟和现实是有差距的,感觉也有差距),当初大学的时候说看不懂没认知就算了,培训web前端之后发现这些视频介绍的各种大部分都看得懂,看得懂就有了大概的认知,而不是像前面说的对php的认知还是停留在大专的那时候随便会点不用配置太多就能很爽的写代码(大专的认知就是基础那些),而是像学web前端那些工具框架一样要配置很多东西(虽然php感觉还是比web前端简单些,但是也简单不到哪,对于现在我来说差不多,只差一点,其实都能学会学好),所以说一个知识体系的学习还是很有必要的,学完之后看其他类似大概都能看懂知道是什么回事。对比java,php,web前端之后发现java还是和想的一样复杂臃肿就算了,至于php和web前端的想法就发生很大改变,觉得这两个其实难度也差不了太多(以前会觉得php比web前端简单很多,配置很少,现在感觉并不是这样),只是一个偏向前端,一个偏向后端,反正他们这两个前后端都要学的,只是偏重不一样,当初本科毕业后选择web前端也没错,其实你用node写自己喜欢的东西也不难啊,php比web前端多的大概不就是mysql,php的框架(你有node框架代替),linux?(我们web前端也有教,听说有些机构不教),爬虫(不是主要的),好像也没多多少,就算自己额外学习,几周也就够了啊,node也能用mysql啊(我看有些机构就是教node连接mysql,当然当时我们学的是mangodb),感觉当初自己真的是可笑,写自己喜欢的项目完全可以用node代替php的,主要是当时认知的误差,觉得php能比其他语言写网站多快多快,看了下视频,其实也差不多,数据该传还是要传,又不是什么都自动帮你搞好(主要当时php确实很火,做网站的确实很多用php,很多也是写好的),觉得自己可笑,当时还怪同学让自己学前端,觉得是坑我,现在发现是自己的问题,而且可能还是我坑他,我找的web前端这个培训机构老师讲课太快,后面框架很多人都蒙了,同学培训完也没怎么找到工作,只要是在一个群有个人无意中和我私聊说的这个机构,都不知道那个人是不是托,我在网上看大机构讲课比我们老师觉得要更好,至少会和你说这个有什么用,用这个东西之前会告诉你是什么,我们老师就是让你先学先上车,以后再了解,当然也有少部分同学喜欢那个老师的觉得那个老师讲得好,听得非常认真(这个老师以前也是在另一个大机构当老师的,而且算有点名的吧,虽然我不喜欢那种风格,个人喜好,我喜欢前面那个老师其他同学又不喜欢,都不怎么听自己看视频,所以说个人喜好),毕业的时候php准备要淘汰了,其实不喜欢太复杂的话,把web前端当作是php的延续不更好么?从喜欢php转移到喜欢web前端不更好么?如果让我说当初应该选什么,大专的时候做选择,那其实还是选择php,因为当时web前端都没怎么火,java和php都很火,只有在这两个当中选,而且大学学的也是后端偏多,前端都是一些淘汰的,还用软件来布局,java我觉得复杂(安卓虽然也简单,但是我觉得要买安卓手机还要在上面开发觉得没php方便就不选了),所以还是选择php洛。而且就算学了web前端里面的node,我也会怀疑自己,node是不是只是陪衬的,不是主要的,肯定和java,php那些比不了,也一样会怀疑,除非当时又看了php的框架教程,其实有了经验,很多教程目录或者内容一眼看过去就大概知道是什么,懂是什么了。以前还有个问题就是也下了很多完整培训视频,但是没看完,有时候看到新的视频又害怕以前视频会不会老了,技术淘汰了,害怕像学校的一样学了一些淘汰没用的技术,拿到新视频又重新看又浪费时间,不重新看又怕错过什么,所以时间就是这么浪费的,现在发现教程只要不是老得太离谱,就算几年时间也没关系的,基础还是那个基础,高级框架变了也不会太多,就算你学的是淘汰的你有了那个基础去学新的框架也一样很快,前面很多东西也是一样的,有些新的东西是在旧的基础上增加的(当然也不全是),而且很多时候你就算学新的旧的也一样要学,因为这么多公司,有些公司用的技术还是以前的,就比如学前端,jq还是要学,还有公司用,虽然用vue很多,但你不能保证旧技术没公司用啊,所以学了也没什么,现在这么看好像有点被大学的前端课程坑了,其他什么数据结构,c语言都没问题,但是当时学校教前端居然还用table布局,我又看了网上的,搞得我对大学的课程印象非常不好,觉得都是淘汰的,其实java和c#和其他课程都不错的,但是教的前端实在是给人印象太差。大学什么老师都有,上课放动画的,上课还自己看书的,因为那个老师说他以前上课不听课,自学变得很厉害,所以也这样?现在后悔学web前端为什么要浪费这么多时间后悔了,就算不喜欢node,你把node换成php的成本也就半个月到一个月的时间吧,对于我这种有基础(大学编程基础)而且完整培训完web前端知识体系的人来说。我现在发现web前端和php有很多重合的地方,比如前端html,css,js,jq这些前面都有学吧,我大学也自学过,web前端培训的时候也学,虽然前端培训学得或许深点,(但是有个问题,我培训学到框架之后培训老师说我们主要以后写组件的,不是让你写什么html界面,css那些,主要写组件,那么问题来了,你前面学那些培训这么久做什么?你把时间给框架多点不行么,多用点框架写项目不好么?前面不怎么用你学这么深做什么?而且网上也有很多写好的插件吧,你用原生写效率很很低的吧,公司也有自己的库么?会用你自己写的么?特别是小公司,说到这里又像说下以前喜欢中小公司,觉得自由,更有意思,学php还可以自己接活,有成就感,不喜欢大公司,但是前段时间又喜欢中等公司,因为觉得创业潮过了,不适合创业了,还是有个技术安稳上班比较适合,容错率高,不用太考虑太多,为什么不说喜欢大公司,因为我觉得我也进不去啊),这些前端基础php和web前端都有学,感觉php学的也够用了(看了下java的前端,感觉php学的前端还是要比java学的前端要多点的感觉),之后的就有点差别,比如web前端学nodejs,php就学php,其实难度差不多的,node也不觉得有多难,web前端我们那时也学linux教你部署,php培训也是教你一点linux,web前端学三个前端框架Vuejs、Angularjs、Reactjs,老师也是让你们专攻一个就行,一个会了其他自学也很快就会,php培训我听同学说也会学个vue,php学phpthink那node学个express,其实难度差不多嘛,重合的也很多,最主要是当时培训web前端最后老师也没教微信小程序开发,你敢信?我学的前端老师居然没教,老师说很简单,说自学就行,发了个视频给我们,真的很搞笑,当时小程序这么火,面试别人都会问你会不会,你居然没教,教点那些难难听不懂的有屁用啊?我听别人php培训的都说有教微信小程序,我觉得真是搞笑,当时我也有想转php还教了500元定金想去培训,但是学了一天发现环境不好,而且我又一根筋,觉得学了web前端就不想选择其他了(当时web前端培训排名又靠前放弃又觉得可惜),要专一,又放弃php,去复习web前端,但是我又不喜欢web前端,真的是烦恼。如果当初直接学php,就算php不好找工作,php培训的前面那些前端大部分都会,vue当时很火,你去网上找个vue的教程(其实和web前端培训差不多的)就一周的内容,再学几天小程序,直接从php转到web前端也比我直接去培训web前端要方便容易啊,你再用php代替node,这不更好么,你学了喜欢的php,不行又可以转前端(当时可能转前端也不是很难吧,我听网上有些学ui设计的有些学完ui设计公司让他们去做web前端了,因为ui设计也学点简单的前端,这都能做前端工作,说明当如果php转不比学ui的要简单?)。虽然知道php淘汰了,不知道为什么那种感觉还在,还是喜欢(当培训机构取消php的时候有点高兴,因为我认为选择web前端是对的,我以为自己能安心学习前端,但是过几天还是犹豫,还是想学php,喜欢就是喜欢,没有太多理由,感觉当初本科毕业要么学php要么学ui设计,就算失败也无所谓,反正本科也不想写代码了,学ui设计失败就直接转行了,学php如果失败反正也是当初自己喜欢的,失败就转行了,我也不会说php失败再去学其他的比如web前端或者java了,因为那些都比php难,一开始就学难的如果失败了就麻烦,你再选简单的也不能保证简单的能否成功,但是你一开始选择简单的,成功了最好,失败了你也不会浪费时间再选难的了,这样容错率更高啊,当然简单的和难的回报率也不能差太多,不然也不好判断)。

web前端是指网站的前端开发,相对于后端而言,主要是给用户呈现网站等界面。

web前端属于IT行业中热门的岗位,相比较于其他的IT技术来说,是比较简单的。前端主要负责实现网站或者APP页面,涉及的代码量比后端开发小,但薪资和发展都不差,课程是目前前沿的前端技能叫web全栈工程师。

web全栈工程师50课程包括:

①计算机基础以及PS基础

②前端开发基础(HTML5开发、JavaScript基础到高级、jQuery网页特效、Bootstrap框架)

③移动开发

④前端高级开发(ECMAScript6、Veujs框架开发、webpack、前端页面优化、React框架开发、AngularJS 20框架开发等)

⑤小程序开发

⑥全栈开发(MySQL数据库、Python编程语言、Django框架等)

⑦就业拓展(网站SEO与前端安全技术)

互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。

想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。

祝你学有所成,望采纳。

零经验的人学编程是很难的,因为需要许多的专业知识。

第一门编程语言C语言,C语言目前是底层应用开发最为广阔的一门编程语言,是物联网必备的开发语言。

第二门编程编程java,java目前的优势比较多,在开发安卓方面目前非常成熟,市场上几乎所有安卓APP都是java开发,再者java在网站开发也有自己的优势,大型类网站选择java开发是最好不过了,支持多线程高并发,可以支持上百万人同时在线,或者更多。

第三门编程语言python,未来发展方向必定是物联网人工智能,python不仅在人工智能有优势,其实python可以说是万能编程语言,服务端,Web开发都是是可以开发的。

第四门编程语言JavaScript,特别是学习nodejs前端后台框架,如果你熟练nodejs,其实可以不用担心不会其他后台编程语言,毕竟nodejs完全搞定

如果自己学的话,你可以通过网络(网上教程),或者买书(C primer plus),但是别太依赖网上教程,因为不清楚+声音小+错误百出+地方方言你听不懂。

1、Kaa

Kaa是一个灵活易用,功能齐全的中间件平台,用于建立端到端的IoT解决方案,连接应用和智能设备。它能够在连接的智能设备上执行有效通信、处理和互 *** 作。

它主要的特点是灵活的微服务,其他特点有:促进跨设备的互 *** 作性;执行实时设备控制,远程设备配置和结构;执行实时设备监控;管理无限数量的连接设备;收集和分析传感器数据等。

2、Zetta

Zetta基于Nodejs,是一个API的物联网平台,是为设备制作>

它的特点有:可以在云,PC或其他适合的开发板上运行;简单的界面和必要的编程以控制传感器,执行器和控制器;允许组装智能手机应用,设备应用和云应用;有利于数据密集型和实时应用开发等。

3、Arino(IDE)

Arino是一个简单好用的IoT平台,它通过一系列可以提供给交互式电子设备的硬件规格进行 *** 作。Arino还提供了完整的IoT程序包,包含许多支持行业级IoT应用程序开发项目的优秀示例和库。

学编程入门建议:
1学编程要从根本出发,从理论上来说,需要广泛的阅读。了解算法的博大精深和计算机的基本理论。
2从实践上来说,需要有广泛的练习,练习的广泛在于练习不同的内容。然后就是创新精神和数学思维能力,这些都是需要培养的。基础要打好学编程要具备一定的基础。
3逻辑思维能力的培养、学程序设计要有一定的逻辑思维能力。“思维能力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。

语言无关类
*** 作系统

鸟哥的Linux私房菜 (简体)

Linux 系统高级编程

The Linux Command Line (中英文版)

Linux 设备驱动 (第三版)

深入分析Linux内核源码

UNIX TOOLBOX

Docker中文指南

Docker —— 从入门到实践

FreeRADIUS新手入门

Mac 开发配置手册

FreeBSD 使用手册

Linux 命令行(中文版)

智能系统

一步步搭建物联网系统

web服务器

Nginx开发从入门到精通 (淘宝团队出品)

版本控制

Git教程 (本文由  @廖雪峰 创作,如果觉得本教程对您有帮助,可以去  iTunes 购买)

git – 简易指南

猴子都能懂的GIT入门

Git 参考手册

Pro Git

Git Magic

GotGitHub

Git Community Book 中文版

Mercurial 使用教程

HgInit (中文版)

沉浸式学 Git

Git-Cheat-Sheet (感谢 @flyhigher139 翻译了中文版)

GitHub秘籍

NoSQL

NoSQL数据库笔谈 (PDF)

Redis 设计与实现

Redis 命令参考

带有详细注释的 Redis 30 代码

带有详细注释的 Redis 26 代码

The Little MongoDB Book

The Little Redis Book

Neo4j 简体中文手册 v18

Neo4j rb 中文资源

MySQL

MySQL索引背后的数据结构及算法原理

项目相关

持续集成(第二版) (译言网)

让开发自动化系列专栏

追求代码质量

selenium 中文文档

Joel谈软件

约耳谈软体(Joel on Software)

Web

关于浏览器和网络的 20 项须知

前端知识体系

浏览器开发工具的秘密

Chrome 开发者工具中文手册

Chrome扩展开发文档

Grunt中文文档

移动Web前端知识库

正则表达式30分钟入门教程

前端开发体系建设日记

移动前端开发收藏夹

JSON风格指南

>

前端资源分享(一)

前端资源分享(二)

前端代码规范 及 最佳实践

w3school教程整理

大数据

大数据/数据挖掘/推荐系统/机器学习相关资源

编程艺术

程序员编程艺术

每个程序员都应该了解的内存知识(译)第一部分

取悦的工序:如何理解游戏 (豆瓣阅读,免费书籍)

其他

OpenWrt智能、自动、透明路由器教程

语言相关类 AWK

awk程序设计语言

C/C++

C++ 并发编程指南 (@傅海平ICT)

Linux C编程一站式学习 (宋劲杉, 北京亚嵌教育研究中心)

CGDB中文手册

100个gdb小技巧

100个gcc小技巧

ZMQ 指南

How to Think Like a Computer Scientist (中英文版)

跟我一起写Makefile(PDF)

GNU make中文手册

GNU make 指南

Google C++ 风格指南

C/C++ Primer (by @andycai)

简单易懂的C魔法

Cmake 实践 (PDF版)

C++ FAQ LITE(中文版)

C++ Primer 5th Answers

CSS/HTML

学习CSS布局

通用 CSS 笔记、建议与指导

CSS参考手册

Emmet 文档

前端代码规范 (腾讯alloyteam团队)

Dart

Dart 语言导览

Fortran

Fortran77和90/95编程入门

Java

实时 Java 系列

Apache Shiro 用户指南

使用 Eclipse 和 Java SE 6 创建独立 Web Services 应用程序

第 1 部分: Web Services 服务端应用程序

第 2 部分: Web 服务客户端应用程序

JavaServer Faces 12 入门

第 1 部分: 构建基本应用程序

第 2 部分: JSF 生命周期、转换、检验和阶段监听器

用 Eclipse Europa 进行 Web 开发

第 1 部分: Eclipse Java EE

第 2 部分: PHP 开发工具

第 3 部分: Ruby Development Toolkit 和 RadRails

使用 JavaServer Faces 构建 Apache Geronimo 应用程序

第 1 部分: 使用 Eclipse 和 Apache MyFaces Core 构建基本的应用程序

第 2 部分: 在 JavaServer Faces 中使用 Tomahawk

第 3 部分: 使用 ajax4jsf 添加 Ajax 功能

第 4 部分: 使用 Apache Trinidad 组件扩展 JSF

第 5 部分: 将 JSF 应用程序与 Spring 集成

Apache Geronimo 和 Spring 框架

第 1 部分: 开发方法学

第 2 部分: 构建第一个应用程序

第 3 部分: 集成 DAO 与 ORM

第 4 部分: 混合使用 Spring AOP 和 Spring Web Flow

第 5 部分: Spring MVC

第 6 部分: Spring MVC:使用 Web 视图技术

终极 mashup —— Web 服务和语义 Web

第 1 部分: 使用与组合 Web 服务

第 2 部分: 管理 Mashup 数据缓存

第 3 部分: 理解 RDF 和 RDFs

第 4 部分: 创建本体

第 5 部分: 切换 Web 服务

Jersey 2x 用户指南

MyBatis中文文档

JavaScript

Google JavaScript 代码风格指南

Airbnb JavaScript 规范

JavaScript 标准参考教程(alpha)

Javascript编程指南 (源码)

javascript 的 12 个怪癖

JavaScript 秘密花园

JavaScript核心概念及实践 (PDF) (此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者)

《JavaScript 模式》翻译,此书中文版有售,但是纸质书翻译的还没有这个版本翻译的好

命名函数表达式探秘 (注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份)

学用 JavaScript 设计模式 (开源中国)

深入理解JavaScript系列

ECMAScript 6 入门 (作者:阮一峰)

jQuery

jQuery 解构

简单易懂的JQuery魔法

How to write jQuery plugin

Nodejs

Node入门

七天学会NodeJS

Nodejs Wiki Book (繁体中文)

expressjs 中文文档

koa 中文文档

使用 Express + MongoDB 搭建多人博客

Express框架

nodejs文档

Nodejs 包教不包会

Learn You The Nodejs For Much Win! (中文版)

Node debug 三法三例

underscorejs

Underscorejs中文文档

backbonejs

backbonejs入门教程 (PDF)

Backbonejs入门教程第二版

Developing Backbonejs Applications(中文版)

AngularJS

AngularJS最佳实践和风格指南

AngularJS中译本

AngularJS入门教程

构建自己的AngularJS

在Windows环境下用Yeoman构建AngularJS项目

zepto 简明中文手册

Seajs

Hello Seajs

CoffeeScript

CoffeeScript Cookbook

The Little Book on CoffeeScript中文版

ExtJS

Ext410 中文文档

Chrome扩展及应用开发

JavaScript入门教程

PHP

PHP调试技术手册(PDF)

XDebug 2中文手册(译) (CHM)

PHP之道

PHP 最佳实践

PHP安全最佳实践

深入理解PHP内核

PHP扩展开发及内核应用

CodeIgniter 用户指南

Laravel4 中文文档

Laravel 入门

Symfony2中文文档 (未译完)

Phalcon中文文档(翻译进行中)

YiiBook几本Yii框架的在线教程

简单易懂的PHP魔法

swoole文档及入门教程

iOS

iOS开发60分钟入门

iOS7人机界面指南

Google Objective-C Style Guide 中文版

iPhone 6 屏幕揭秘

Apple Watch开发初探

马上着手开发 iOS 应用程序

网易斯坦福大学公开课:iOS 7应用开发字幕文件

Android

Android Design(中文版)

Google Android官方培训课程中文版

Android学习之路

Python

小白的Python教程

简明Python教程

零基础学Python

Python 27 官方教程中文版

Python 33 官方教程中文版

深入 Python 3

PEP8 Python代码风格规范

Google Python 风格指南 中文版

Python入门教程 (PDF)

Python的神奇方法指南

笨办法学 Python (PDF版下载)

Django 文档中文版

Django 最佳实践

The Django Book 中文版

webpy 03 新手指南

Webpy Cookbook 简体中文版

Dive Into Python 中文版

Bottle 文档中文版 (需)

Flask 文档中文版

Jinja2 文档中文版

Werkzeug 文档中文版

Flask之旅

Introduction to Tornado 中文翻译

Python自然语言处理中文版 (感谢陈涛同学的翻译,也谢谢  @shwley 联系了作者)

Python 绘图库 matplotlib 官方指南中文翻译

Scrapy 025 文档

ThinkPython

Ruby

Ruby 风格指南

Rails 风格指南

笨方法学 Ruby

Ruby on Rails 指南

Ruby on Rails 实战圣经

Ruby on Rails Tutorial 原书第 2 版 (本书网页版免费提供,电子版以 PDF、EPub 和 Mobi 格式提供购买,仅售 99 美元)

编写Ruby的C拓展

Ruby 源码解读

Shell

Shell脚本编程30分钟入门

Go

Go编程基础

Go入门指南

学习Go语言 (PDF)

Go Web 编程 (此书已经出版,希望开发者们去购买,支持作者的创作)

Go实战开发 (当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作)

Network programming with Go 中文翻译版本

Groovy

实战 Groovy 系列

LaTeX

一份其实很短的 LaTeX 入门文档

一份不太简短的 LATEX 2ε 介绍 (PDF版)

LISP

ANSI Common Lisp 中文翻译版

Lua

Lua编程入门

Haskell

Real World Haskell 中文版

R

R语言忍者秘笈

Scala

Scala课堂 (Twitter的Scala中文教程)

Effective Scala(Twitter的Scala最佳实践的中文翻译)

Scala指南

Swift

The Swift Programming Language 中文版

Perl

Modern Perl 中文版

Perl 程序员应该知道的事

Prolog

笨办法学Prolog

Vim中文文档

Vimscript

笨方法学Vimscript 中译本

Vim中文文档

读书笔记及其它 读书笔记

编译原理(紫龙书)中文第2版习题答案

把《编程珠玑》读薄

Effective C++读书笔记

Golang 学习笔记、Python 学习笔记、C 学习笔记 (PDF)

Jsoup 学习笔记

学习笔记: Vim、Python、memcached

图灵开放书翻译计划–C++、Python、Java等

蒂姆·奥莱利随笔 (由译言网翻译,电子版免费)

Octave 入门 (PDF版)

SICP 解题集

精彩博客集合

正则表达式简明参考

我们都知道NET Core是一个可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的通用开发框架。可用于为Windows、Linux和MacOS构建软件应用程序。与其他软件框架不同,NET Core是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、 游戏 和物联网应用程序。与其他框架不同,NET Core并不局限于单一的编程语言,它支持C#、VBNET、F#、XAML和TypeScript。这些编程语言都是开源的,由独立的社区管理。

NET Core提供了最先进、最成熟和最广泛的类库、公共API、多语言支持和工具。借助于Visual Studio 2019和Visual Studio Code 这些最先进和最现代的开发工具,使得NET Core成为开发人员最高效的平台之一。

NET Core的 历史

NET Core是由Microsoft开发,目前在NET Foundation(一个非营利的开源组织)下进行管理。NET Core是用C#和C++编写的,并采用MIT协议作为开源协议。第一个版本的NET Core 10是在2016年发布的,功能有限。NET Core 20于2017年8月14日发布。在这个版本中发布的两个核心框架是ASPNET Core20和 Entity Framework Core 20。下一个稳定版本NET Core 21和22于2018年5月和12月发布。NET Core的当前版本为300,并且在2019年5月6日发布了第5个预览版。

下表总结了NET Core的主要里程碑:

版本发布日期关键特征/产品NET Core 106/27/2016VisualStudio 2015 Update 3支持的NET Core的初始版本。net Core 1113/7/2017NET Core Tools 10受VisualStudio 2017支持NET Core 208/14/2017VisualStudio 2017 153,ASPNETCore 20,实体框架20NET Core 215/30/2018ASPNET Core 21,EF Core 21NET Core 2212/4/2018ASPNET Core 22,EF Core 22NET Core 30预览33/6/2019通过VisualStudio2019支持ASPNET Core 30、EF Core30、UWP、Windows窗体、WPF。

NET Core的特点

NET Core的主要特性包括开源、跨平台、现代、灵活、轻量级、快速、友好、可共享,以及为未来的软件开发而构建的。

NET Core是免费和开源的

NET Core平台是免费的、开源的。NET Core的源代码托管在Github上。任何开发人员都可以参与到NET Core的开发。有数千名参与NET Core开发的活跃开发人员正在改进特性、添加新特性以及修复bug和问题。

NET Core由一个名为NET Foundation的独立的非营利组织管理。60,000多名开发人员和3,700多家公司正在为NET生态系统做出贡献。

NET Core是免费的,并且采用MIT和Apache协议作为开源协议。对商业十分友好。不像某Java

NET Core是跨平台的

NET Core支持并运行在Windows、MacOS和Linux *** 作系统上。NET Core跨体系结构(包括x64、x86和ARM)是一致的。可以导入相同的程序集和库,并在多个平台上使用。这些程序集和库都可以使用如下的NET语言进行构建,如:C#、VBNET或F#。

NET Core是可共享的

NET Core使用一种用NET Standard编写的一致API模型,这种模型对所有NET应用程序都是通用的。相同的API或库可以与多种语言的多个平台一起使用。

NET Core是现代的

与一些较旧的框架不同,NET Core旨在解决当今的现代需求,包括移动友好、构建一次在任何地方运行、可伸缩和高性能。NET Core旨在构建针对各种设备的应用程序,包括物联网和 游戏 机。

Visual Studio 2019和Visual Studio Code是世界上最先进和最现代的集成开发环境。这两个IDES都支持当今的现代需求,并且专注于干净、速度和生产力。在这里了解有关VisualStudio 2019功能的更多信息:VisualStudio 2019新特性

NET Core是快速的

NET Core 30 是快速的。与NET Framework和NET Core 22及以前的版本相比,NET Core 30的速度很快。NET Core比其他服务器端框架(如Java Servlet和Nodejs)快得多。

根据TechEmpowers发布的一份报告,NET Core比任何其他框架都要快得多。 TechEmpower基准测试通过对多个Web应用程序框架做如下比较:数据库的单表查询,多表查询,文件访问,数据更新,明文和JSON序列化等任务进行比较。

NET Core是轻量级的

NET Core是轻量级的。NET Core可以包含在您的应用程序中,也可以安装在并行用户、机器范围内或服务器上。NET Core可以部署在Docker容器中。

NET Core是友好的

NET Core通过NET Standard与NET Framework,Xamarin和Mono兼容。 NET Core还支持使用各种流行的Web框架和库,如React,Angular和JavaScript。 TypeScript是NET Core和Visual Studio生态系统的关键组件之一。

我们可以使用NET Core构建哪些类型的应用程序?

NET Core是一个通用的软件开发框架。它允许开发人员构建各种软件,包括Web,桌面,移动,云, 游戏 ,物联网等。

NET Core更适合跨平台需求。NET Core应用程序支持在Windows,Linux和macOS上运行。Linux和macOS上也都支持Microsoft流行的开源代码编辑器Visual Studio Code。VS Code支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如Sublime,Emacs和VI)都支持NET Core。

Web应用

ASPNET Core是NET Core生态系统的核心组件。ASPNET Core是一个用于构建网页的框架。ASPNET Core基于MVC架构,并提供用于构建Web的通用库。开始使用ASPNET Core

Razor是一个使用C#和TypeScript构建动态网页的新框架。Razor是一种改变 游戏 规则的技术,它允许C#开发人员用C#构建Web应用程序。

移动开发

移动开发是NET Core的关键产品。Xamarin是一套使用C#构建跨平台移动应用程序的工具和库。Xamarin允许开发人员在共享的NET代码库上为IOS、Android、Windows和MacOS构建本地应用程序。

桌面应用程序

NET Core提供各种框架和工具来构建桌面应用程序。Windows窗体、WPF、UWP和Xamarin是构建桌面应用程序的四个主要框架。NET Core还支持这些框架之间的互 *** 作性。

Windows窗体是一种构建Windows桌面应用程序的技术。Windows窗体是NET Framework的首批组件之一。

WPF(Windows Presentation Foundation)是一种较新的构建Windows桌面应用程序的技术。WPF是作为NET Framework版本的一部分发布的

了解有关wpf的更多信息这里

UWP是一种较新的技术,是在Windows 8之后发布的。如今,UWP已经成熟。UWP使用XAML作为表示层(UI)和C#作为后端编程。但是,貌似微软已经宣布了他的死亡。

微服务和容器

微服务是一种新的设计模式,它允许开发人员构建软件服务的小模块,这些模块可以使用定义良好的契约相互通信。微服务使开发、测试和部署应用程序的独立部分更加容易。一旦部署完毕,每个微服务都可以根据需要独立地进行缩放。NET Core支持微服务体系结构,它允许跨平台服务与NET Core一起工作,包括使用NET Framework、Java、Ruby或其他开发的服务。

容器是今天的越野车。NET Core的模块化、轻量级和灵活性使得将NET Core应用程序部署到容器中变得更加容易。容器把一个应用程序的所有的配置文件和依赖关系,包含在一个单独的、小型的和独立的软件部署单元中。容器可以部署在任何平台、云、Linux和Windows上。NET Core与Docker和Azure Kubernetes服务都很好地协作。

云应用程序

云应用程序现在越来越受欢迎。Azure支持各种云应用程序。NET Core和C#应用程序可以通过Visual Studio 2019部署在Azure上。

物联网

物联网应用正在增长。NET Core支持通过UWP框架为运行Windows 10 IoT Core的物联网设备进行物联网开发。UWP可用于构建在由Raspberry Pi,MinnowBoard MAX,DragonBoard 410c等提供支持的物联网上运行的应用程序。

机器学习

机器学习是软件开发人员日益增长的领域。

参考微软官方文档

游戏

Unity是最受欢迎的 游戏 开发框架之一。C#和UWP用于构建移动,桌面,控制台,电视,VR,AR和Web 游戏 。

NET Core 30中的新增的功能有哪些?

最新版本的NET Core 30刚刚发布。C#8和Windows桌面是这个版本的两个主要新增部分。

C#8是C#语言的最新版本。C#8是NET Core的一部分。C#8增加了新功能,包括

Windows桌面是NET Core 30的新增功能,允许开发人员使用Windows窗体,WPF和UWP构建Windows桌面应用程序。

以下是NET Core 30中的其他功能和增强功能列表,

参考文献


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/12998047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存