第一单元 .Net 平台介绍
第一单元 .Net 平台介绍
学习编程,电脑基本配置(当然配置越高越好):
内存 :初期学习8 G,后期可能跟不上, 最好16 G以上
硬盘:500 G,5400 转速,至少C盘是固态,全是固态最好
显卡:2 G, 最好是独显
分辨率:1920 * 1080
CPU 4核以上,i 5 可能已经跟不上了(台式机勉强),i 7 以上,最好不要用低压CPU
1. 什么是软件
实现某种特定功能的应用程序(application ,简写app
)
2. .Net 平台简介
.NET 是一种用于构建多种应用的免费开源开发平台,例如:
桌面应用
游戏(神庙逃亡,
Unity3D Mono
)
使用类库在不同应用和应用类型中共享功能。
使用 .NET 时,无论你正在构建哪种类型的应用,代码和项目文件看起来都一样。 可以访问每个应用的相同运行时、API 和语言功能。
跨平台
可以为许多操作系统创建 .NET 应用,包括:
Windows
macOS(苹果电脑操作系统)
Linux(免费)
Android
iOS
tvOS
watchOS
支持的处理器体系结构包括:
X64
x86
ARM32
ARM64
通过 .NET,可以使用特定于平台的功能,如操作系统 API。 例如 Windows 上的 Windows 窗体和 WPF,以及从 Xamarin 到每个移动平台的原生绑定。
有关详细信息,请参阅支持的 OS 生命周期策略和 .NET RID 目录。
开源
.NET 是开放源代码,使用 MIT 和 Apache 2 许可证。 .NET 是 .NET Foundation 的项目。
有关详细信息,请参阅 GitHub.com 上的项目存储库列表。
4. 为什么选择.Net Core
.Net Core 并非是全家桶似的提供服务,而是按需所取,这样保证了它的运行效率。并且微软正在大力发展云原生(跨平台+微服务+虚拟化技术 )计划,.Net Framework 根本无法做到这一点。一旦选择开源,意味着生态的打造将会越来越丰富。
以下列出了市场上主要的编程语言的对比
PHP(LAMP): 原地踏步,不建议学
Java:在国内市场份额高,生态环境较好
GO :用于解决高并发,运行效率高。如:Docker,Dapr 等技术都是使用GO语言开发的。
C : YYDS, 可以做算法
前端:入门容易,使用范围广,后期乏力,薪资要不上去,因为核心业务都在后端
C++: 四不像,需要很强的编程能力才能驾驭,不建议学
C#: 前几年掉队,但最近些年一直在努力,属于潜力股,国外市场份额很高,国内很多大厂也开始使用
Phython:可作为第二编程语言
5. .Net Framework
都属于.Net 平台下的框架。
在2002年,微软发布了.NET框架的第一个版本,声称其解决了旧问题并实现了下一代系统的目的。.NET框架是一种比MFC和COM编程技术更一致并面向对象的环境。它的特点包括:
1)多平台。【面向异构网络、硬件平台和操作系统,可以在多种多样的系统上运行,从服务器、桌面机到PDA和移动电话。】 2)行业标准。【实现软件系统之间的智能交互和协同工作,使用行业标准的通信协议,比如:XML、HTTP、SOAP和WSDL。】 3)安全性。【提供一个标准化的、安全的、一致的模型和环境,提供更加安全的执行环境,即使有来源可疑的代码存在。】
Microsoft为.NET技术制定了一整套完整的规范,便是CLI(Common Language Infrastructure,公共语言基础结构,公共语言架构)。
CLI的组成: 1)CTS(Common Type System,公共类型系统)。【定义了一组丰富的内置类型,以及每种类新固有的、独有的特性;最重要的特征之一是所有类型都继承自公共的基类Object类】 2)CLS(Common Language Specification,公共语言规范)。【说明了.NET兼容编程语言的规则、属性和行为,其主题包括数据类型、类结构和参数传递】 3)CIL(Common Intermediate Language,公共中间语言)。 4)CLR(Common Language Runtime,公共语言运行库,也称公共语言运行时)。 5)BCL(Base Class Library,基类库)。【FCL的一个子集】 6)元数据定义、语义。 7)其他相关标准化文档、协议、规范。
.NET Framework 环境结构图:
重点记录
CLR: 公共语言运行时,提供了.Net 程序运行所需要的环境!!如:内存管理,代码安全验证,垃圾回收,异常处理。 C# 与 .Net ,.Net Framework, .Net Core的关系
.Net 平台下有很多种面向对象语言,如:Visual Basic(VB), F#,J# ,C# 等等。C# 是 微软推广与推荐在.Net 平台下使用的 “面向对象” 编程语言(一门技术)。于是平时我们所说的.Net 开发,基本上指的是C#开发。就像是我们提到阿里就会想到马云。
. Net 平台下提供了两种框架:.Net Framework, .Net Core。就像网约车司机光有车与开车技术,他依然不能成为网约车司机。他必须挂靠 滴滴,高德 等平台才能提供打车服务。滴滴,高德可以提供打车软件,分配订单等服务。同样的,.Net Framework, .Net Core 框架也提供了C#这门编程语言开发所需要必备基础功能服务。
6. 开发工具(IDE)-Visual Studio 2022
宇宙级开发神器:Visual Studio
JetBrains Rider: 自带反编译,智能提示
下载
https://visualstudio.microsoft.com/zh-hans/downloads/
Community: 社区版,免费开源使用,但只提供一些基本开发功能
选择推荐安装专业版或者企业版(个人学习使用)
安装选项
ASP.NET 和 Web开发 主要是为了开发Web应用程序,一定要选
.Net 桌面开发 主要是为了构造桌面应用程序( QQ,电脑管理等等)
Visual Studio 扩展 主要是可以创建空白解决方案
单个组件中勾选了 :
.Net 5.0 运行时 与 目前最新常支持版本(LTS) 是一个分叉口,市场上有很多应用或者教学案例选择5.0版本
.Net Core 3.1(LTS) 运行时, 目前市场上很多成熟的产品都是 3.1 版本开发
勾选完毕之后,点击安装,等待大约30-40分钟。
7. 创建项目
点击右侧的创建新项目
选择C# 语言,类型选择 控制台,因为控制台最适合入门,注意我们以.Net Core 为例子,.NetFramework已经被淘汰。
输入项目名称,选择存放路径,点击下一步
选择SDK 为 5.0 ,点击创建。
这里不选择.Net Core 6.0 版本是国为 ,5.0 与 6.0 是一个分水岭,6.0 以前的版本大都具有相同的项目结构,建议先从5.0 开始学习。 5.0 版本入门之后,可以选择6.0 进行深入学习。
8. 项目结构介绍
解决方案名称,一般以软件名称命令,例如,你开发微信这款软件,那么你的解决方案名称可以命名为"WebXin"
项目名称:一个解决方案下可能会有多个项目,如:微信下有 微信聊天项目,微信支付,微信公众号 等等项目。
Promgram.cs 是程序的入口类,也称主类,CLR在运行时会自动找到Program.cs 类,这个类名不要改动,也不要删除,必须叫这名,也必须存在!!在这里,大家必须要知道的是,看见.cs 结尾的文件,都是类。一般情况下,一个文件只会创建一个类,并且类名与文件名相同。
namespace : 定义命名空间的关键字,用于分隔类,一般一个项目(类库)都会作为一个独立的命名空间。如两个班级里都存在一个叫“张三”的,这时,班级名称就是用于区分这两个张三的“命名空间”
class : 定义类的关键字,类名一般与文件名相同
Main:主程序的入口方法(行为),CLR在启动运行时会自动执行。
Console.WriteLine("Hello World") , 向控制台输出 “Hello World” 这句话
using : 引用命名空间,Console 这个类的的命名空间在“System” 下, using System 表示引用System 这个命名空间,引用之后,才可使用Console 这个控制台类。
编译生成
运行一个程序之前,最好先进行编译生成MSIL( 微软中间语言,也就是CLR可以识别的东东)众所周知,计算机只能识别二进制代码,CLR 可以将MSIL再翻译成二进制代码让计算机识别。
还有一个原因:在编程时,再厉害的大神写代码永远不能保证不会出错。那么在运行程序之前,编译代码可以检查程序代码中是否包含语法错误。
生成方式
生成解决方案
选中解决方案--->右键--->生成解决方案
或者
菜单----->生成---->生成解决方案(重新生成解决方案)
生成解决方案,会将此解决方案下的所有项目都进行编译生成
生成项目
选中项目---->右键---->生成项目(重新生成项目)
此操作只会编译当前选中的项目以及它所依赖的项目,可能不会对所有的项目进行生成
如果显示 0 个失败则表示编译成功。
运行项目
点击 小图标
按F5 键盘
新建项目(类库),类
类库:存放类的仓库,表示里面会封装很多常用功能的类
新建项目
选中解决方案--->右键-->添加-->新建项目
新建类
选中项目(类库)-->右键-->添加-->类
9. 总结
CLR是什么?
运行时环境
.为什么选择.Net Core?
跨平台,开源,性能好,有潜力
.Net 与 .Net Core ,.Net Framework ,C# 之间的关系是什么
namespace ,using ,class 这些关键字的作用?
Program,Main,分别是什么?
如何新建项目,类?
解决方案,项目,类之间的关系是什么?
创建类时需要注意什么?
10. 作业
新建空白解决方案,命名为 "School"
新建控制台项目,命名为 “School.Console”
创建类库项目, 命名为“School.Model”
在“School.Model” 类库中新建类:Student.cs(学生类) , School.cs(学校类), ClassInfo.cs(班级类)
在 控制台项目 “School.Console” 中,打印输出 三行话
“学习使我快乐”
“好好学习,天天向上”
“我也正式成为一名程序员了!!”
在 控制台项目 “School.Console” 中,打印输出如下几个规则图形
直角三角形
*
**
***
****
*****等边三角形
*
*****
*********
*************
视频教程:誉尚学教育_誉尚学教育腾讯课堂官网 (qq.com)
或者:C# 最强入门编程(.Net 学习系列开山巨作)_哔哩哔哩_bilibili
第一单元 .Net 平台介绍的更多相关文章
- [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍
注:为了看上去比较清晰这里只转载了中文 原地址: [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍 本章将引导您完成安装和设置开发环境,然后你就可 ...
- 【OO学习】OO第一单元作业总结
OO第一单元作业总结 在第一单元作业中,我们只做了一件事情:求导,对多项式求导,对带三角函数的表达式求导,对有括号嵌套的表达式求导.作业难度依次递增,让我们熟悉面向对象编程方法,开始从面向过程向面向对 ...
- BUAA_OO第一单元总结
OO第一单元总结 目录 作业总体分析 代码结构分析 遇到的bug问题 找到bug的方法 结语 一.作业总体分析 尽管这个单元三次作业都是表达式求导,但我认为每次作业的侧重点是不同的. 对于第一次 ...
- Storm 系列(二)实时平台介绍
Storm 系列(二)实时平台介绍 本章中的实时平台是指针对大数据进行实时分析的一整套系统,包括数据的收集.处理.存储等.一般而言,大数据有 4 个特点: Volumn(大量). Velocity(高 ...
- 2019北航OO第一单元作业总结
一.前三次作业内容分析总结 前言 前三次作业,我提交了三次,但是有效作业只有两次,最后一次作业没能实现多项式求导的基本功能因此无疾而终,反思留给后文再续,首先我介绍一下这三次作业,三次作业围绕着多项式 ...
- SAP标准培训课程C4C10学习笔记(一)第一单元
C4C10:SAP Hybris Cloud for Customer Administration 课程目录: 第一单元是C4C的简介. 作为SAP推出的一个SaaS(Software as a s ...
- 面向对象OO第一单元三次作业总结
(一)第一单元的作业围绕着多项式的求导,从简单到复杂,主要的要求是 作业一:只有两种格式的因子:带符号整数(+02)和幂函数(x^+02). 作业二:在作业一的基础上添加了:sin(x)和cos(x) ...
- NFine平台去掉平台介绍页面出现的一系列问题
1.去掉平台介绍页面要做的操作:数值Index页面的下面两处内容 2.注释掉以上两处内容后出现的问题:•当打开多个页面后,最先打开的第一个页面(如下图1的位置)点击×号不能关闭页面:•当打开多个页面后 ...
- Linux centosVMware Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做
一.Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios ...
- 大数据和Hadoop平台介绍
大数据和Hadoop平台介绍 定义 大数据是指其大小和复杂性无法通过现有常用的工具软件,以合理的成本,在可接受的时限内对其进行捕获.管理和处理的数据集.这些困难包括数据的收入.存储.搜索.共享.分析和 ...
随机推荐
- 最新 umi4-max 如何使用 webpack5 联邦模块
新项目用 umi4-max 搭建,部分功能想要使用其他项目的功能,不想重新开发,想到了使用 webpack5 的联邦模块,可以直接引用其他项目代码来实现共享代码. 理想很美好,现实很残酷.直接按照 w ...
- java循环结构中局部变量和成员变量
前言 在前两篇文章中,壹哥给大家讲解了Java里的条件分支,包括if和switch两种情况.我们知道,除了条件分支结构,还有循环结构,所以接下来的一个学习重点就是Java里的循环.但在学习循环之前,我 ...
- 集成-AgileConfig基于.NetCore的一个轻量级配置中心
微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移.玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等 ...
- 本地推理,单机运行,MacM1芯片系统基于大语言模型C++版本LLaMA部署“本地版”的ChatGPT
OpenAI公司基于GPT模型的ChatGPT风光无两,眼看它起朱楼,眼看它宴宾客,FaceBook终于坐不住了,发布了同样基于LLM的人工智能大语言模型LLaMA,号称包含70亿.130亿.330亿 ...
- C#/VB.NET:如何将PDF转为PDF/A
PDF/A是一种ISO标准的PDF文件格式版本,是为长期保存文件而设计的.它提供了一种工具,使电子文件在长时间之后依然以一种保留其外观的方式重现,而不管该文件是用什么工具和系统创建.储存或制作的.这种 ...
- 二进制安装Kubernetes(k8s) v1.23.4
1.环境 网段 物理主机:192.168.1.0/24 service:10.96.0.0/12 pod:172.16.0.0/12 如果有条件建议k8s集群与etcd集群分开安装 1.1.k8s基础 ...
- [VMware]常见问题处理
参考文献 [1] VMware 无法打开虚拟机 该虚拟机似乎正在使用 - 百度经验 [2] 233 http://10.0.8.46:8080/cas/autologin?username=admin ...
- Meta AI 开源万物可分割 AI 模型(SAM)
开始 4 月 6 日,根据 Meta AI 官方博客,Meta AI 宣布推出了一个 AI 模型 Segment Anything Model(SAM,分割一切模型).据介绍,该模型能够根据文本指令等 ...
- mongoDB操作指南
目录 1. docker安装mongoDB 2. 库-database 3. 集合-collection 3.1 命名规范 3.2 增-createCollection 3.3 删-drop 4. 文 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(14)-Charles过滤网络请求
1.简介 在日常工作测试中,经常要抓包看请求的request,response是不是传的对,返回的字段值对不对,众多的请求中看得眼花缭乱,如何找到自己想要的请求,那么我们就需要过滤请求.Charles ...