zoukankan      html  css  js  c++  java
  • C# 基础知识 (四).C#简单介绍及托管代码

            暑假转瞬即逝,从10天的支教生活到1周的江浙沪旅游,在这个漫长的暑假中我经历了非常多东西,也学到了非常多东西,也认识到了非常多不足之处!闲暇之余我准备又一次进一步巩固C#相关知识,包含C#入门知识、C#并行开发、ASP站点等.这篇文章我介绍的是书籍——C#入门经典(Beginning C#) 作者Karli Watson.主要包含的是我自己缺乏的一些C#简单介绍知识和托管代码的内容.内容比較简单,參照该书籍较多,相当于自己的在线笔记!

                                                 《C#入门经典》书籍章节简单介绍:
                                          第01-14章 C#语言:C#简单介绍及与.NET关系,语法和OOP
                                          第15-17章 Windows编程:使用.NET Framework各种控件
                                          第18-20章 Web编程:使用ASP.NET运行任务、ajax
                                          第21-24章 数据訪问:数据保存磁盘、XML、LINQ
                                          第25-27章 其它技术:WPF、WCF、WF

    一. 创建.NET应用程序步骤

    创建.NET应用程序经历四个过程例如以下:
    1.使用某种.NET兼容语言(如C#)编写应用程序代码


    2.把代码编译为CIL,存储在程序集中

    3.在执行代码时(可执行文件自己主动执行或其它代码使用它时执行),首先必须使用JIT编译器将代码编译为本机代码

    4.在托管的CLR环境下执行本机代码以及其它应用程序或进程

    二. 托管代码

            首先对上面的术语进行简单的解释.
            CIL 在编译使用.NET Framework库的代码时,不是马上创建专用于操作系统的本机代码,而是把代码编译为通用中间语言(Common Intermediate Language,CIL)代码.
            JIT Just-In-Time编译器的任务是把CIL编译为专用于OS和目标机器结构的本机代码,OS才干运行应用程序.
            CLR
    Common Language Runtime,公共语言执行库:负责管理用.NET库开发的全部应用程序的执行.
            程序集 编译应用程序时,所创建的CIL代码存储在一个程序集中.程序集包含可运行的应用程序文件(.exe)和其它应用程序使用的库(.dll).

            过去经常须要把代码编译为几个应用程序,每一个应用程序都用于特定的OS和CPU结构,如今JIT编译器使用CIL代码(CIL代码独立于计算机、OS和CPU)编译为本机代码.
            托管代码 将代码编译为CIL,再用JIT编译器将它编译为本机代码后,CLR(公共语言执行库)的任务没有所有完毕,还要管理正在执行的用.NET Framework编写的代码(执行代码的阶段叫执行时runtime).即CLR管理着应用程序,其方式是管理内存、处理安全性及同意进行垮语言调试.相反,不受CLR控制执行的应用程序属于非托管类型.
            换句话说:
            托管代码 (managed code)是由公共语言执行库CLR环境(而不是直接由操作系统)执行的代码.
            非托管代码(Unmanaged Code)在公共语言执行库环境的外部,由操作系统直接执行的代码.
            非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务,而托管代码从CLR环境中获得这些服务.
            举例:非托管类型如C++内存管理和分配,调用构造函数,使用完后释放内存.可是在C#中,仅仅能编写在托管环境下执行的代码,使用CLR的托管功能让.NET自己与OS进行交互.
            两者差别可參照 http://bbs.csdn.net/topics/330164764
            垃圾回收 托管代码最重要的一个功能就是垃圾回收(garbage collection),这样的.NET方法可确保应用程序不再使用某些内存时,全然释放这些内存.会定期检查计算机内存,从中删除不再须要的内容.

    三. C#编写应用程序

            C#使用的是.NET Framework没有限制应用程序的类型,常见的应用程序类型例如以下:
            1.Windows应用程序
            这些应用程序(如微软office)具有熟悉的Windows外观和操作方式,使用.NET Framework的Windows Forms模块(一个控件库,当中控件如button,可用于创建Windows用户界面UI)能够生成这样的应用程序.还能够使用WPF(Windows Presentation Foundation)建立更灵活卓越的Windows应用程序.
            2.Web应用程序
            是一些Web页面,可通过不论什么Web浏览器查看.其.NET Framework包含一个动态生成Web内容的强大系统,同意进行个性化和安全性等.这个系统叫Active Server Pages.NET(ASP.NET),使用C#通过Web Forms创建ASP.NET应用程序.还能够使用Silverlight编写在浏览器内部执行的应用程序.(接下来wo须要学习研究的东西)
            3.Web服务
            这是创建各种分布式应用程序的新方式,使用Web服务能够通过Internet虚拟交换数据.高级功能还能够创建WCF(Windows Communication Foundation)服务.
            补充一些概念知识例如以下图:

           总结:该文章主要是关于C#知识的基础简单介绍知识和托管代码解说,当中主要參照书籍《C#入门经典》,推荐大家学习C#的入门书籍.同一时候后面将讲述一些自己薄弱方面的基础知识,同一时候想结合自己想做的东西解说些知识.假设有错误或不足之处还请海涵!高手飞过~
     (By:Eastmount 2014-8-17 夜12点 原创CSDN http://blog.csdn.net/eastmount/)

  • 相关阅读:
    后缀数组 (Suffix Array) 学习笔记
    Miller-Rabin 素性测试 与 Pollard Rho 大整数分解
    [ USACO 2013 OPEN ] Photo
    清华集训2016做题记录
    「UNR#2」黎明前的巧克力
    「UNR#1」奇怪的线段树
    Atcoder Grand Contest 018 E
    「NOI2015」小园丁与老司机
    「集训队作业2018」三角形
    Codeforces 878 E. Numbers on the blackboard
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6726872.html
Copyright © 2011-2022 走看看