C#与.NET概述

本文大部分来源于北京大学网易云课堂《c#程序设计》

1. C#

C#是由Anders Hejlsberg(安德斯-海森博格)[1]创建的。

2. .NET

2.1 .NET之前

.NET之前
备注:图片来源[4]

2.2 .NET

.NET框架(.NET Framework)是由微软开发,一个致力于敏捷软件开发(Agile softwaredevelopment)、快速应用开发(Rapidapplication development)、平台无关性和网络透明化的软件开发平台[3] 。
图1 历程
图 2 Visual Studio 进化史[2]
备注:关于.net的发展历程,推荐查看文献[2][6]

图 3 架构、语言、工具

整体来看分为4个部分:CLR,各种库,各种语言以及开发工具VS。
图 4 类库(部分),已经大量的简化

.NET主要特性:

  • 简单的开发和部署
  • 统一的编程模型
  • 提供健壮、安全的执行环境
  • 支持多种编程语言
  • 丰富的类库支持

3. CLR:公共语言运行时,Common Language Runtime

设计目标:

  • 简化开发:安全性,内存管理,垃圾回收
  • 简化应用程序部署
  • 基类库
  • 支持多种语言
  • 类似于Java中的虚拟机,相当于在硬件之上建立一个虚拟的一个机器,在这个机器上运行C#程序,其实运行的是中间指令。其编译成元数据文件,里面是中间代码,构成.exe文件。这个.exe文件不是最终的机器指令。在运行的时候,CLR通过即时编译器(JIT)来编译成本机代码。从这里可以看到,通过产生中间代码的机制,.NET可以支持很多语言。
    图 5 编译和执行

    图 6 编译和执行详细过程[4]

.EXE文件包含IL(Intermediate Language)指令,和元信息。我们可以通过反编译工具ildasm.exe来查看其中的指令。
在电脑中的位置是:
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX4.5.1Tools\ildasm.exe”。
关于更详细的运行机制,读者可以参考[5]。
图 7 ildasm软件界面
选择文件-打开,之后在选择.exe文件就可以出现相应的IL。

4. 基本的应用类型

  • 控制台程序
  • Windows应用程序
    这里面分化出一种WPF程序
  • Web应用程序
    这里面分化成mobile程序

4.1 控制台程序

  • Main()方法是程序的入口,它有固定的书写格式:public static void Main(string[] args)
    可以没有public,也可以没有string[] args
  • 可以直接输入svm,然后按2次Tab键也可以。
  • Ctrl+F5,编译及运行(不调试)

4.2 Windows应用程序

  • 又称winForm应用
  • 事件驱动的程序设计

4.3 Web应用程序

参考文献
[1] http://kb.cnblogs.com/page/87320/
[2] http://developer.51cto.com/developer/evolution/
[3] https://baike.baidu.com/item/.net%E6%A1%86%E6%9E%B6/2880331?fr=aladdin
[4] http://www.cnblogs.com/moonache/p/5995866.html
[5] http://www.cnblogs.com/muyue/archive/2012/11/13/2768126.html
[6] http://www.cnblogs.com/xiaofeixiang/p/3936217.html

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值