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的图。

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

下图是 Visual Studio支持的功能:

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

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

1.2.2 Visual Studio Code

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

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

1.2.3 Jetbrains Rider

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

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

1.2.4 总结

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

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

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

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

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

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

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

2. 项目类型

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

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

3. 总结

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

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

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

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

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

  1. android 集成同一interface不同泛型_C# 基础知识系列- 10 反射和泛型(二)

    0. 前言 这篇文章延续<C# 基础知识系列- 5 反射和泛型>,继续介绍C#在反射所开发的功能和做的努力.上一篇文章大概介绍了一下泛型和反射的一些基本内容,主要是通过获取对象的类型,然后 ...

  2. c# contains方法_C# 基础知识系列- 3 集合数组

    简单的介绍一下集合,通俗来讲就是用来保管多个数据的方案.比如说我们是一个公司的仓库管理,公司有一堆货物需要管理,有同类的,有不同类的,总而言之就是很多.很乱.我们对照集合的概念对仓库进行管理的话,那么 ...

  3. c# getresponsestream返回byte[]_C# 基础知识系列-13 常见类库(三)

    0. 前言 在<C# 基础知识系列- 13 常见类库(二)>中,我们介绍了一下DateTime和TimeSpan这两个结构体的内容,也就是C#中日期时间的简单操作.本篇将介绍Guid和Nu ...

  4. c# string 占位符_C# 基础知识系列- 9 字符串的更多用法(一)

    0. 前言 在前面的文章里简单介绍了一下字符串的相关内容,并没有涉及到更多的相关内容,这一篇将尝试讲解一下在实际开发工作中会遇到的字符串的很多操作. 1. 创建一个字符串 这部分介绍一下如何创建一个字 ...

  5. c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2)

    前接上一篇内容. 如果是第一次捧场的小伙伴,为了您阅读的连贯性,烦请扫一眼<C# 基础知识系列- 14 IO篇 文件的操作(1)>.本篇是IO之文件操作的第二篇,介绍一下目录和路径的相关类 ...

  6. 用c#算成绩的总和_C# 基础知识系列- 6 Lambda表达式和Linq简单介绍

    前言 C#的lambda和Linq可以说是一大亮点,C#的Lambda无处不在,Linq在数据查询上也有着举足轻重的地位. 那么什么是Linq呢,Linq是 Language Intergrated ...

  7. 如何获取exception的target异常_C# 基础知识系列- 15 异常处理篇

    0. 前言 为什么我们需要异常处理?什么是异常? 在汉语中,异常指非正常的:不同于平常的.翻译到程序中,就是指会导致程序无法按照既定逻辑运行的意外,或者说是错误.可能会有小伙伴好奇了,我们的程序不是正 ...

  8. iqueryable怎么进行操作_C# 数据操作系列 - 16 SqlSugar 完结篇(最后的精华)

    0. 前言 前一篇我们详细的介绍了SqlSugar的增删改查,那些已经满足我们在日常工程开发中的使用了.但是还有一点点在开发中并不常用,但是却非常有用的方法.接下来让我们一起来看看还有哪些有意思的内容 ...

  9. 游戏开发unity基础知识系列:(一)unity 2019 下载与安装

    游戏开发unity基础知识系列:(一)unity 2019 下载与安装 声明:未经作者允许,严禁商用,转载请标明出处和来源,谢谢 零.前言 本人在unity2d方面使用较多,关于unity的使用后面预 ...

最新文章

  1. 实现盒子动画和键盘特效
  2. NYOJ 108 士兵杀敌(一)
  3. 搭建本地的git仓库
  4. docker web程序本地化_想要成为前端Star 吗?一首歌时间将React / Vue 应用Docker 化...
  5. 如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
  6. python stdev_Python stdev()函数的详细指南
  7. Linux下的socket网络编程
  8. NSURLRequest 使用(网络文摘)
  9. android 隐藏桌面图标
  10. 安卓10不支持qmc解码_基于安卓10的LineageOS 17.1来了,支持一加、小米、LG等机型...
  11. C# 使用SHFileOperation 复制文件 注意引用方式
  12. fastjason 0day 漏洞修复
  13. 使用Scrapy爬取电影链接
  14. 非常精美的唐诗,无与伦比哦1
  15. 信用风险频发背后:11月约600亿信用债发行取消
  16. C++ 进程间通信(管道)
  17. 曲线积分与曲面积分总结_高等数学课程内容、知识点总结与典型题
  18. css浮动清除以及BFC
  19. 开源全景图查看器-360player_v3.0更新
  20. Apple公司的官方声明

热门文章

  1. 轻量级的web框架[Nancy On .Net Core Docker]
  2. RAML用户应遵循的C#与Web API代码生成模式
  3. Flutter之Decoration
  4. C和指针之多维数组一行存满后会轮到下一行
  5. Android之在Activity中动态得到Adapter类中数据
  6. Git之如何解决Error:pathspec ‘/layout/radar_chart.xml‘ did not match any file(s) known to
  7. LeetCode之Add Two Numbers
  8. Android之玩转选项卡(TabHost、TabWidget、FrameLayout)
  9. html文本框整数范围,验证HTML表单文本框中的数值范围。 PHP或Javascript
  10. 硕博士的朋友圈都有哪些特点?