c#物联网_C# 基础知识系列- 16 开发工具篇

0. 前言

这是C# 基础知识系列的最后一个内容讲解篇,下一篇是基础知识-实战篇。这一篇主要讲解一下C#程序的结构和主要编程工具。

1. 工具

工欲善其事必先利其器,在实际动手之前我们先来看看想要编写一套C#程序需要做哪些准备吧。

1.1 选择

C# 的sdk在之前的某个时间点分为了三个方向:

  1. .net framework 4.X
  2. .net core
  3. mono
  4. UWP

有人可能问了,.net和C#是什么关系。首先需要明确一个概念,C#是一门编程语言,.net是一个CLR,即公共语言运行库。这部分概念比较抽象,不过我这么说大家可能会理解里面的关系了:C#是.net支持的一门语言,于此同时.net还支持F#,Visual C++等。也就是说,.net是一个平台,而C#是运行在这个平台上的语言。

不过,通常上因为.net支持的其他语言并不如C#出名,所以很多人就忽略了两者之间的区别,有时候也用.net代指C#了。

讲了这么多废话,回到之前。.net分了三个方向,第一个方向是沿用之前版本,继续深耕Windows环境。.net core是微软为了跨平台战略而开发的,目前支持 Windows/Linux/Mac等系统。后续的文章也将基于.net core进行。Mono是早期在Linux环境中支持.net framework的一套SDK,后来微软把这项技术合并到了.net发展战略里了,现在支持Android、Mac应用开发。最后一个是UWP,通用Windows平台,据说是为了物联网研究的。

嗯,因为我的工作方向是 BS,也就是做网站开发的,再加上需要接触一些Linux的系统,所以整体就在.net core这个框架下进行后续开发和工作了。换句话说,整个C# 系列都是在.net core上运行的。

1.2 开发工具

在选择了.net core之后,我们就要选择一个适合我们的开发工具了。

1.2.1 Visual Studio

先放一张Visual Studio 2019的图。

8ef138a1abc00fee589c7bd734a7c3ab.png

这是到目前(2020年05月05日)为止,微软开发的最强大的编译器。在编译器界,Visual Studio有着“宇宙第一编译器”的美名。当然最早是因为其安装包十分巨大,动则2~3G的全量安装,再加上其昂贵的正版授权价格,所以被称为第一编译器。后来随着微软更改了安装方式,改为在线安装然后模块化安装,让程序员可以用哪些装哪些,减少了安装包的大小,同时进一步增强了作为编译器的功能,添加了Community版本(社区版,免费的)之后,第一编译器就成了名副其实的美名。

下图是 Visual Studio支持的功能:

e15d3643664698fa6e7263bc410d85f2.png

具体的安装就不演示了,这部分网上教程也比较多。如果有疑问的话,可以留言或者私信我哦。

当然了,即使是旗舰版,Visual Studio2019在网上也有很多激活码 ,不过对于公司的话,这部分可能会有法律风险。个人学习研究的话,没事。笑XD

1.2.2 Visual Studio Code

嗯,Code是微软开发的另一个神器,凭借着其轻量、开源和免费这几大特性迅速占领了开发者们的内心。再加上其丰富的插件支持,更是让人欲罢不能。

Code支持跨平台,Windows/Linux/Mac都支持。下图是示意图:

06a6ea5bd13ee3ef9460750bdc1fe146.png

1.2.3 Jetbrains Rider

这是捷克一家软件公司开发的编译器,支持跨平台。语言的智能提示比VS好一点,而且也轻一点。这是它功能特定的宣传图:

4cffb1d37802466deb4e38d4682a3789.png

可以说功能非常强劲,当然了也是收费的。目前市面上没有很稳定的科学方法。咳咳,我啥也没说。

1.2.4 总结

如果是初学者,我建议使用Visual Studio ,不愧与第一编译器的美名。如果是在Linux环境的话,初学者建议试试Rider。

当然了,对于极客或者Linux环境但预算不高的小伙伴可以试试VS Code,搭配好插件功能也不比另外的编译器差到哪里去。

注:Rider单个软件的订阅是 139美元一年(首年),不过据说有免费的方式。

关于选择编译器的问题,如果是Linux环境,需要事先安装 .net core sdk。这部分内容请参照微软的官方,搜索关键词:net core

ee9f1468bb11107dc3aaffccb7b11eed.png

这个页面点进去就行,如果在安装过程中有疑问欢迎留言,私信我。

对于Visual Studio则没有这部分烦恼了,只需要在安装过程中选中 net core开发支持即可。

当然,还有更究极的开发方式:使用文本编辑器,然后用命令行dotnet执行。嗯,这样很牛但是挺累的,我就不推荐给你们了。

2. 项目类型

423286f730e78216bff043129915aac5.png

这是在.net core上支持的一些通用的项目类型,我们常用是 console类型(一个控制台程序)、mvc(http://asp.net core版的mvc项目)、web (一个网站项目)等。

具体的项目情况会在后续的篇幅中介绍,记住net core支持这些类型的项目即可。

3. 总结

这一篇稀里糊涂的介绍完了,之后还有一个实战系列。完结之后,C#的基础知识系列就暂时告一段落了,不过后续还有可能会针对单个知识点的深入讲解,按照计划如果知识点比较大将会新开一个系列,比如之前的多线程和任务那一章,其实是C# 并发编程系列的开篇 。不过下一个系列应该是 C# 数据访问系列。这个系列讲解如何通过http://ADO.net、EF、Nhibernate等框架操作数据库。

那么,敬请期待第一个实战篇吧,亲爱的小伙伴们。

最后的最后,有问题可以随时回复或私信。当然了,我写的有错误或者不严谨或遗漏的地方也请指出哦。

更多内容烦请关注我的博客《高先生小屋》

730605bf5ba672f398704dafbe84fb7e.png

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

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

相关文章

接口幂等设计探索实践

幂等性原本是数学上的概念,即使公式:f(x)f(f(x)) 能够成立的数学性质。用在编程领域,则意为对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的、或者说是符合预期的。背景稳定性设计第一…

Windows 7 安装 .NET 5 / .NET Core 3.1 环境的方法和依赖文件

随着 .NET 5 正式版的发布,越来越多的人开始向 .NET 5 、.NET Core 平台迁移。尽管微软已经在 2020 年 1 月 14 日停止了对 Windows 7 的支持,但仍有大批客户的操作系统对 Windows 7 恋恋不舍。为此,我们需要解决 .NET 5 运行时(R…

easyui 动态设置单元格控件_动态显示最大最小值的折线图

小伙伴们好啊,今天和大家分享一个图表有关的知识。折线图想必大家已经司空见惯,今天就要在简单的折线上,做出不简单的效果。用动态折线图,展示一周销售的变化,并且自动突出最大最小值。1、准备数据源以某家水果店1月份…

WebBenchmark动态测试Webapi

在编写Webapi测试用例的时候都是定义固定的测试数据,但这样的测试只能针对单一数据。为了更好的模拟实际情况,往往需要进行动态数据测试;通过动态数据测试可以更好的测出服务在不同数据情况下的处理能力。WebBenchmark支持动态数据函数&#…

linux开发需要学习什么,linux开发需要掌握哪些知识?

原标题:linux开发需要掌握哪些知识?嵌入式linux开发的应用是非常广泛的。而且linux是开源的,各种技术也是非常成熟的。不过很多初学者在学习linux开发过程中感觉非常难,那么对于linux开发需要掌握哪些知识呢?1.Linux是…

csv 字符串_python3从零学习-5.5.1、CSV 文件读写

源代码: Lib/csv.py模块内容csv 模块定义了以下函数:csv.reader(csvfile, dialectexcel, **fmtparams)返回一个 reader 对象,该对象将逐行遍历 csvfile。csvfile 可以是任何对象,只要这个对象支持 iterator 协议并在每次调用 __ne…

持续交付三:动手自动化“开发”—“测试”

前两篇博文中提到Development,QA,Staging,Production四个环境,也说明了源代码的分支和四个环境的对应关系,本篇博文聊一下,怎么把源码自动化发布到对应的环境中。市面上主流的DevOpt工具都支持这些功能,github,gitlab,…

使用WebBenchmark对webapi进行管理和性能测试

WebBenchmark是基于beetlex开发的webapi管理和性能测试软件,最新版本1.0.3可以独立运行在linux/windows中,并不再需要安装.net core运行环境。部署可以通过以下地址下载最新版本:https://github.com/IKende/WebBenchmark可以根据需要下载linux64或win64运…

三维叉乘怎么算_奇技淫巧系列:向量叉乘

​一般我们在解决立体几何题目时会选择建立坐标系,因为这样做比较保险也有固定套路。很多时候这些题目要求你计算某一个面的法向量(normal vector),这在高中阶段也是有固定方法的,我们这里想要介绍的是一种更高级也更迅…

g++ linux intel 汇编,g++ linux

目标:运行C代码example:有func.h,func.cpp, main.cpp- .h无需编译,但.h中函数实现的地方需要编译(func.cpp)- 逻辑:cpp各自生成可执行文件(.o),再进行链接g -c func.cppg -c main.cppg main.o func.o -o test或者直接:…

听说容器正在吃掉整个软件世界?

过去几年,以 docker、kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 k8s 项目作为技术重心,试图“放长线钓大鱼”。就说腾讯吧,目前基本所有业务都跑在云上&#xff0…

linux 短信功能,Android调用系统短信功能发送短信

Android调用系统短信功能发送短信有两种方法:第一种,设定发送的号码,和内容,界面没有联系人,群组组等按钮,如下图所示:代码如下:Uri smsToUri Uri.parse("smsto:114");// 联系人地址…

bcm943602cs蓝牙用不了_原来手机的蓝牙功能这么强大!除了连接耳机,还有这六大实用功能...

蓝牙是手机上的一个普通功能,基本上所有的手机里都有它,原先它的作用很有限,只是用来传输数据,但由于速度太慢,最后也是被软件所淘汰,慢慢的可以用来连接耳机,这也是博主用的比较多的一个功能&a…

数据结构——表达式求值(中序)

表达式求值(中序) 实验二 基于栈的中缀算术表达式求值 【实验目的】 1.掌握栈的基本操作算法的实现,包括栈初始化、进栈、出栈、取栈顶元素等。 2.掌握利用栈实现中缀表达式求值的算法。 【实验内容】 问题描述 输入一个中缀算术表达式,求解表达式的值。…

msdn画圆弧函数_画直线不简单!python-matplotlib告诉你为什么

1 说明:1.1 python的matplotlib画直线,看似简单,其实很难,从简单到复杂,逐步深入,小白秒懂。1.2 内容:画直线,画圆,画圆点,动画的单摆和圆套圆,好…

Wifi6网络

2020年是Wifi6设备全面爆发的一年,华为、小米、华硕、腾达、TP-LINK、360等多家厂商相继发布了Wifi6路由产品,掀起了一股更换路由器的热潮。首先,我们先来看几个常识1、Wifi6和IPv6两个没有必然联系,Wifi6是一种支持802.11ax的Wif…

数据结构——用栈解决回文字符问题

回文 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否为回文。(提示:将一半字符入栈。) 所需的知识前提:栈 以下是顺序栈的基本算法 结构…

aspose excel中文文档_除了VBA,还有哪些编程语言可以操作Excel文件?

Excel(Microsoft office)是现在最常用的办公软件,主要涉及电子表格制作、数据处理、报表输出展示以及更高端的还有金融建模等;我们知道,在需要批处理多个Excel工作表以及工作簿的时候,需要用到一个自动化的利器:VBAVBA…

关于.NET5在IIS中部署的几个问题总结

本来我的系列教程已经慢慢剥离开IIS了,毕竟有了Docker容器以后,配合Nginx使用真的很不错。但是还是有很多同学使用IIS的,这个不可否认IIS的重要性。随着.NET的发布,很多小伙伴已经开始升级了,我也就陆陆续续收到了一些…

数据结构——括号匹配问题

括号匹配 给定一个字符串,其中的字符只包含三种括号:花括号{ }、中括号[ ]、圆括号( ),即它仅由 “( ) [ ] { }” 这六个字符组成。设计算法,判断该字符串是否有效,即字符串中括号是否匹配。括号匹配要求括号必须以正…