xml地图|网站地图|网站标签 [设为首页] [加入收藏]

可扩展性开发,MFC编程入门之前言

1、C#语言简介

C# 简介

C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。

C# 是由 Anders Hejlsberg 和他的团队在 .Net 框架开发期间开发的。

C# 是专为公共语言基础结构(CLI)设计的。CLI 由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。

下面列出了 C# 成为一种广泛应用的专业语言的原因:

  • 现代的、通用的编程语言。
  • 面向对象。
  • 面向组件。
  • 容易学习。
  • 结构化语言。
  • 它产生高效率的程序。
  • 它可以在多种计算机平台上编译。
  • .Net 框架的一部分。

  本系列主要偏重于理论方面的知识,目的是打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。本系列也会涉及到VC++的原理性的东西,同样更重视实用性,学完本系列以后,基本的界面程序都能很容易编写出来。

前言

  C#计算机语言

C# 强大的编程功能

虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能,因此得到广大程序员的亲睐。

下面列出 C# 一些重要的功能:

  • 布尔条件(Boolean Conditions)
  • 自动垃圾回收(Automatic Garbage Collection)
  • 标准库(Standard Library)
  • 组件版本(Assembly Versioning)
  • 属性(Properties)和事件(Events)
  • 委托(Delegates)和事件管理(Events Management)
  • 易于使用的泛型(Generics)
  • 索引器(Indexers)
  • 条件编译(Conditional Compilation)
  • 简单的多线程(Multithreading)
  • LINQ 和 Lambda 表达式
  • 集成 Windows

VC++简介

Visual Studio是微软最知名的产品之一,在使用微软技术的开发人员的心目中尤为如此。相信这一点无须多说。它建立在IDE(统一开发环境)的基础之上,可用于开发多种不同类型的应用程序。

  是一门高级计算机语言
  他的开发模式更接近人类和社会的思维模式,有助于提高开发效率

  VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别在于,C++是语言,而VC++是用C++语言编写程序的工具平台。VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。Visual Studio包含了VB、VC++、C#等编译环境。当然,我们在使用VC++6.0的时候为了便捷,总是只单独安装VC++6.0 。但自微软2002年发布Visual Studio .NET以来,微软建立了在.NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。

Visual Studio,通常被简称为VS(以下皆按此简称),支持多种平台和编程语言。了解VS的历史以及每个版本的更迭,对学习它的扩展性开发会很有好处。所以在这里简单地说说VS在过去的12年里的历史。

  C#历史
  1998年COOL这个项目是C#语言的前身,由微软 Anders Hejlsberg 和他的团队在 .Net 框架开发期间开发的
  2001年正式发布

VC++版本的选择:VS2010

VS的历史

  C#含义
  C#是C语言和C++语言基础上创建的一门语言,
  C语言是面向过程语言
  C++是半面向过程半面向对象的语言
  C#面向对象的语言,有一些重要的功能:
    布尔条件(Boolean Conditions)
    自动垃圾回收(Automatic Garbage Collection)
    标准库(Standard Library)
    组件版本(Assembly Versioning)
    属性(Properties)和事件(Events)
    委托(Delegates)和事件管理(Events Management)
    易于使用的泛型(Generics)
    索引器(Indexers)
    条件编译(Conditional Compilation)
    简单的多线程(Multithreading)
    LINQ 和 Lambda 表达式
    集成 Windows

  因为VC++6.0以后的版本不在有独立的安装程序,所以在教程中将不会称VC++6.0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,例如VS2003.

在软件领域,VS的历史算比较长的了。在此期间,微软开发了数种编程语言和支持这些语言的可视化IDE,将其称为“Visual Studio”。当然,VS在12年间已经有了发生了很大的变化,不仅仅是它本身变得强大,与语言和其它技术的集成也得到了增强。除了这些,微软还添加了一些特性来支持数据库开发、标记语言(如XML)、Web开发工具、单元测试和团队协作。

 

  近些年来VC++主要的版本包括:VC++6.0、VS2003、VS2005、VS2008、VS2010、VS2013和VS2015 。

接下来将逐一介绍微软已经正式发布的六个版本。

2、VS集成开发环境
  集成开发环境是我们用来编程的工具,他可以帮助我们,将用C#高级语言编写的程序,快速编译成计算机识别的语言
  VS是微软的visual studio,称为VS,又称.net

  VC++6.0占用的系统资源比较少,打开工程、编译运行都比较快,所以赢得很多软件开发者的青睐。但因为它先于C++标准库推出,所以对C++标准的支持不太好。举个例子:

VS 97

 

  for(int i = 0; i < 5; i++)

微软在1997年首次尝试在单一环境中支持多种语言。它包括如下组成部分:

3、编辑器
  微软(Microsoft)提供了下列用于 C# 编程的开发工具:

  {

  • Visual Basic 5.0
  • Visual C++ 5.0
  • Visual FoxPro 5.0 (用于xBase编程)
  • Visual J++ 1.1 (用于Windows下的Java编程)
  • Visual InterDev 1.0 (用于ASP开发)
  • MSDN

    Visual Studio  (VS)
    Visual C#  Express (VCE)
    Visual Web Developer
  后面两个是免费使用的,可从微软官方网址下载。这些工具可用于编写各种 C# 程序。

    a[i] = i;

Visual C++、Visual J++、Visual InterDev和MSDN使用相同的环境,名为Developer Studio,而Visual Basic和Visual FoxPro则拥有自己的开发环境。VS 97的内部版本号为5.0。

  也可以使用基本的文本编辑器(比如 Notepad)编写 C# 源代码文件,并使用命令行编译器(.NET 框架的一部分)编译代码为组件。

  }

VS 6.0(98)

  Visual C# Express 和 Visual Web Developer Express 版本是 Visual Studio 的定制版本,且具有相同的外观和感观。它们保留 Visual Studio 的大部分功能。

  for语句中声明的变量i,对于VC++6.0来说,出了for循环仍能使用。但很显然这与C++标准对于变量生命期的规定不符合。

在1998年,微软尝试将开发工具变得更为一致,并且向着现在我们所熟知的.NET Framework迈出了第一步。这一年微软将VS 97升级为VS 6.0。

 

  随着VC++版本的更新,对C++标准的支持越来越好,对各种技术的支持也越来越完善。但同时新版本所需的资源也越来越多,对处理器和内存的要求越来越高。到VS2010,光安装文件就2G多,安装后的文件占3G多空间,其运行也经常受处理器和内存等性能的限制。但是,还是推荐大家使用最新的版本,毕竟以前的已经过时了。

这个版本是VB的绝唱,因为现在的VB.NET在基础上与那时的VB有很大不同。VS 6.0 也是Windows 9x平台下VS的最后版本。同时Visual J++ 遭到彻底放弃,从此微软不再支持针对JVM(Java Virtual Machine)的任何编程语言(但两三年后我正是在Visual J++下写出了我的第一个Hello World程序)。

VC++与MFC

在此之后,微软便致力于通过.NET Framework构建统一的编译器和开发环境。

  讲VC++免不了要提MFC,MFC全称Microsoft Foundation Classes,也就是微软基础类库。它是VC++的核心,是C++与Windows API的结合,很彻底的用C++封装了Windows SDK(Software Development Kit,软件开发工具包)中的结构和功能,还提供了一个应用程序框架,此应用程序框架为微软开发者完成了一些例行化的工作,比如每个窗口都要使用Windows API注册、生成与管理。这样就大大减少了软件开发者的工作量,提高开发效率。

VS 2002

  当然VC++不是只能够创建MFC应用程序,同样能够进行Windows SDK编程,但是那样的话就舍弃了VC++的核心,放弃了VC++最强大的部分。MFC也不是只能用于VC++中,它同样也可以用在Borland C++等编译器中,当然没有几个人这样做。

2002年是微软的开发工具和编程语言发生重大变革的一年。经过之前数年的努力,微软发布了.NET Framework、VS.NET、.NET编程语言。这标志着微软的开发工具终于得到了完全的整合。

  

其中.NET Framework 1.0是最重要的内容。它引入了托管代码,在.NET下,程序是编译为MSIL(微软中间语言)而不是机器语言。

 

VS 2002(内部版本号为7.0)是第一个需要基于NT版操作系统的VS版本。它支持以下四种语言:

  • VB.NET:这是Basic家族中第一个完全支持OO的语言,它的构建基础与VB 6.0有很大不同,至今VB.NET仍是世界上最流行的编程语言。
  • C#:一种全新的语言,此后它的用户群体在不断扩大。它使用C的语法,但比微软其它C家族的语言要简单,如VC++。
  • J#:也是一种新语言,可以看作是VJ++的继任者。它虽然使用Java语法,但只支持.NET平台。
  • VC++:它是.NET家族语言的一分子,并得到了增强。

使用这些编程语言和统一的编译器,加上.NET平台下丰富的其它工具,可以开发各种桌面、Web和嵌入式设备的应用程序。其中包含的技术有ASP.NET、ADO.NET和Web Service。

VS 2003

在VS 2002发布之后一年,微软发布了VS 2003(内部版本号7.1),支持新版本的.NET 1.1。.NET 1.1 支持移动应用程序开发,也包含一些新特性和bug修复。它是.NET Framework的第一个稳定版本。VS 2003要比VS 2002稳定和流行得多。

VS 2003共有四个版本:

  • Professional
  • Enterprise Developer
  • Enterprise Architect
  • Academic

Enterprise Architect版提供了对Visio的支持,从而可以在设计应用程序架构时使用UML。

VS 2005

2005年10月,微软发布了.NET 2.0和VS 2005(内部版本号8.0,曾用过的代号为Whidbey)。此时,微软移掉了其产品的“.NET”前缀,如Visual Studio和Visual Basic。

VS 2005支持.NET 2.0,重要的特性和变化有:

  • ASP.NET 2.0
  • ADO.NET 2.0
  • Generics in .NET 2.0
  • Enhanced IntelliSence
  • Addition of new project types
  • A local web server to test ASP.NET applications without IIS
  • Support for 64-bit applications

另一个主要的变化在于,它的版本划分方式与之前有所不同,包括:

  • Express
  • Standard
  • Professional
  • Tools for Office
  • Team System

微软在2006年12月发布了VS 2005的SP1。应众多社区用户的要求,将Web Application替代Website作为ASP.NET应用程序的默认项目类型。

在2006年微软发布了.NET 3.0,因为VS 2005是当时的最新版本,所以提供了插件使其支持WPF、WCF和WF的开发。

VS 2008

这是迄今为止VS的最新版本(第六个版本),内部版本号9.0,代号Orcas。下个版本的VS 2010(代号Hawaii)正在开发之中(据信会在今年的年底发布)。

它第一个支持不同的.NET版本,包括2.0、3.0和3.5。VS 2008主要关注的是Vista和Office 2007,还有些.NET 3.0和3.5的新特性,并保持了VS 2005的优点。它的新特性和变化有:

  • 对WPF的内置支持和一个很棒的设计器
  • 对WCF的内置支持
  • 对WF的内置支持和一个强大的设计器
  • 新的语言特性:LINQ,在VB和C#中可用
  • Silverlight
  • 增强的JavaScript智能感知和调试器
  • 强大的XHTML/CSS编辑器
  • 不再支持J#

关于VS的更多信息,请参看。

可扩展性简介

VS固然强大,但不可能面面俱到。很多人都会有自己的特殊需求,VS的很多特性来自社区的呼声,另外一些则由第三方组件和开源项目先于VS实现了。

扩展VS的重要性自然无须多说。幸运的是,VS拥有很好的可扩展性,Add-In(插件)、Macro(宏)和VsPackage是扩展的三种主要方式,它们由来已久。

通过Add-In可以访问VS IDE的底层API,我们得以将一些编码或部署任务自动化。通过Macro可以将VS中的一些重复任务自动化,可以录制Macro,也可以手工编写。通过VS SDK则可以创建VsPackage,可以达到IDE和编程语言之间更深层次的集成。

另外,较之VS 2005,VS 2008提供了新的扩展选项,比如Visualizer和VS Shell。另一个好消息是在微软TechEd 2007之后,关于VS扩展性的文档丰富了许多。值得注意的是,可扩展特性不适用于Express版。

IDE概览 

大体上来说,我们日常开发中看到的VS IDE主要包含各种窗口和工具栏,这些窗口有浮动的、可停靠的、标签式三种模式,包括打开VS时看到的起始页。下面来看一下其中的一些重要窗口。

1)解决方案管理器(Solution Explorer)

在这里,我们可以查看和管理解决方案内的各个项目、项目所包含的文件,它们以树形的结构呈现。它的快捷键是**Ctrl

  • W, S**。

2)属性窗口(Property Window)

按下F4(或Ctrl + W, P,可以查看当前选中项的属性。

3)工具箱(Toolbox)

这个窗口包含了若干控件的列表,可以将其拖拽到Winows窗体、网页、XAML窗口或WF的设计器上。它的快捷键是**Ctrl

  • W, X**。

4)服务器管理器(Server Explorer) 

在这个窗口中可以查看和管理本地或远程的服务器,包括数据库、服务和其它的一些服务器资源。 快捷键是Ctrl + W, L

5)类浏览器(Class View)

这里显示了解决方案内的所有可用类型,并将它们按命名空间分组。快捷键是**Ctrl

  • W, C**。

6)错误列表(Error List)

这里显示的信息并非全是错误(Error),还可以是警告(Warning)或信息(Message)。在编码或编译的时候可以查看这些信息。快捷键是**Ctrl

  • W, E**。

7)输出窗口(Output Window)

VS中的大多数动作或任务都对应着相应的命令,这些命令会产生输出信息,如编译的时候。快捷键是**Ctrl

  • W, O**。

8)任务列表(Task List)

这个窗口颇为有趣。可添加两种任务,一种是注释,比如“// TODO: Add a property here.”;另一种是用户自定义任务。这有点类似于常见的TODO List。快捷键是Ctrl + W, T

9)对象浏览器(Object Browser)

与类浏览器不同的是,对象浏览器可以查看所有相关的组件内所包含的类型信息。快捷键是**Ctrl

  • W, J**。

好了,关于窗口先说这些,它们都可以在View菜单内找到。快捷键都是以Ctrl + W开头(属性窗口建议还是使用F4)。

我们身在何处

本文简要介绍了VS的历史及其基本要素,这样可以建立起对它的感性认识了。同时还稍微提及了VS的扩展性(也是本系列的主题),主要有三种方式,Macro、Add-In和VsPackage,它们各有所适用的场景,我打算从Add-In开始。在接下来的几篇随笔中,我将通过一些实例逐步展开对Add-In开发的讨论,同时会把代码放在Google Code上。如果您在日常开发中对VS扩展性有某些需求,欢迎分享:)

参考

《Professional Visual Studio® 2008 Extensibility》
wikipedia-VisualStudio

 

 

from:

本文由必威发布于编程,转载请注明出处:可扩展性开发,MFC编程入门之前言