C# - .Net与C# 001(c和net的区别)
.Net
.Net是微软新一代用于构建多种应用的免费开源跨平台的技术开发平台,是.Net系列开发框架的总称,它包含.NET Framework, .Net Core与Xamarin框架;可以通过.Net不同框架创建不同类型的应用程序,使用多种开发语言创建桌面,网页,手机以及游戏等应用程序
.NET Framework:支持Windows和Web应用程序;可以使用Windows窗体,WPF和UWP在.NET Framework中构建Windows应用程序;ASP.NET MVC用于在.NET Framework中构建Web应用程序。
.NET Core:是一种新的开源和跨平台框架,用于为包括Windows,Mac和Linux在内的所有操作系统构建应用程序;.NET Core仅支持UWP和ASP.NET Core。UWP用于构建Windows 10目标Windows和移动应用程序。ASP.NET Core用于构建基于浏览器的Web应用程序。
Xamarin:使用C#构建用于移动(iOS,Android和Windows Mobile)的应用程序
.Net是开发平台,.NET Framework,.NET Core与Xamarin是基于.NET 平台上实现多操作系统跨平台的开发框架
.NET Framework框架主要用于分成两个方面:1)WinForm(基于Windows窗体程序即C/S模式) 2)WebForm(基于ASP.NET框架的Web页面(网站)即B/S模式)
NET Framework框架的组成:
构成该框架最主要的两部分为CLR(Common Language Runtime)与FLC(.NET Framework Class Library)
1) CLR:公共语言运行时,提供内在管理,代码安全性检测等功能;是所有.NET应用程序运行时环境,是所有.NET应用程序都使用的编程基础;
其中包含运行.Net程序的引擎与一堆符合公用语言基础(CLI)的类库的集合,他是一个规范的实现,开发的大多数.Net程序都是基于公用语言基础(CLI)的类库实现,并运行在CLR运行的引擎上,所以通常所说的.Net框架就是CLR,可实现跨平台,跨语言的开发
1.1 CLR主要由CTS,CLS
1.1.1 CTS(Common Type System) 通用类型系统:定义了一个能够在CLR上运行的语言规范
1.1.2 CLS(Common Language Specification)公用语言规范:目的保证各种语言与.NET Framework的兼容性
跨平台:.Net可以实现跨平台的原因在于为不同平台提供了不同的Core CLR,如针对Windows自身平台的Core CLR,针对苹果的Core CLR等
跨语言:只要是基于.Net平台的开发语言(C#,F#,VB.Net)因为无论使用其中什么语言编程它们都是调用.Net框架同样的类与方法
汉语类比就是CLR,诸如文言文,唐诗,宋词等语言表达形式可类比为不同的开发语言;汉语是所有不同的语言表达形式的基础
2) FLC:NET框架类库,提供大量应用类库,类库中有很多线程的资源可使用(比如:类,方法,属性)使用它们可以有效的提高软件开发效率。
.Net Framework运行机制
基于.Net Framework的主要开发语言有:C#,VB.Net,F#等
JIT编译器:简单来说就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序,
MSIL(Microsoft Intermediate Language)微软中间语言:其中MS:表示微软的Microsoft,IL:即指中间语言,这里就是将基于.Net的开发语言统一为一种语言
作用是将基于.Net的编程语言转换成统一的中间语言负责与CLR通信
.NET运行的机制流程:首先将由各种语言(C#, F#, Visual Basic等)—>经过CLS,CTS第一次编译—>统一"翻译"为中间语言即MSIL(文件后缀名为.EXE或.DLL)—>JIT第二次编译—>二进制语言—>运行在CPU中;最后运行程序即可得到通过代码反馈的效果
.Net框架底层构成的基础知识太多不再赘述
C#
C#简介
.NET有很多种开发语言,比如C#、 F#、 Visual Basic等都是运行在.NET FrameWork框架下的开发语言,C#即是其中的一种编程语言
C#是由微软公司发布的运行于.NET Framework与.NET Core上的高级程序设计编程语言之一,是一种简单、安全、稳定的面向对象的编程语言
C#的特点
1)简单、安全
简单: 1) 在C#中已经不再使用指针 2) 每个数据类型都是固定大小3) 允许在一个命名空间中创建一个或多个类,方便调用和重用
安全: 就是不允许直接读取内存等不安全的操作
2)具有面向对象语言的基本特征,即封装、继承、 多态
2.1 封装:就是将代码看作一个整体,例如使用类、方法、接口等;在使用定义好的类、 方法、接口等对象时不必考虑其细节,只需要知道其对象名以及所需要的参数即可,也是一种提升代码安全性的方法
2.2 继承:通过可以体现出代码重用性的特性,减少代码的冗余,在 C# 语言中可通过接囗实现多继承
2.3 多态:不仅体现了代码的重用性,也体现了代码的灵活性,它主要通过继承和实现接口的方式,让类或接口中的成员表现出不同的作用
3) 支持跨平台,最早的 C# 语言仅能在 Windows 平台上开发并使用,最新的 C# 6.0版本已经能在多个操作系统上使用,如 Mac、Linux 等,还能将其应用到手机、PDA 等设备上
4)开发多种类型的程序使用 C# 语言不仅能开发在控制台下运行的应用程序,也能开发 Windows 窗体应用程序、网站、手机应用等多种应用程序,并且其提供的 Visual Studio 开发工具,最新的Visual Studio中也支持多种类型的程序,可以快速地构建C#应用程序
C#程序开发方向
1)Windows桌面应用程序,用.Net提供的WPF模块很便捷的就能生成桌面应用。
2)Windows Store应用程序针对Win8以上系统触摸屏的应用
3)Web应用程序,通过webForms创建的ASP.NET应用程序。
4)WCF服务(比较高级)是一种灵活可以创建各种分布式应用程序