MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。你可以用MySQL Workbench设计和创建新的数据库图示,建立数据库文档,以及进行复杂的MySQL 迁移
MySQL Workbench是下一代的可视化数据库设计、管理的工具,它同时有开源和商业化的两个版本。该软件支持Windows和Linux系统,下面是一些该软件运行的界面截图:
2、数据库管理工具 Navicat Lite
NavicatTM是一套快速、可靠并价格相宜的资料库管理工具,大可使用来简化资料库的管理及降低系统管理成本。它的设计符合资料库管理员、开发人员及中小企业的需求。 Navicat是以直觉化的使用者图形介面所而建的,让你可以以安全且简单的方式建立、组织、存取并共用资讯。
界面如下图所示:
Navicat 提供商业版Navicat Premium 和免费的版本 Navicat Lite 。免费版本的功能已经足够强大了。
Navicat 支持的数据库包括MySQL、Oracle、SQLite、PostgreSQL和SQL Server 等。
3、开源ETL工具Kettle
Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定(数据迁移工具)。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
·授权协议:LGPL
·开发语言: Java
· *** 作系统: 跨平台
4、Eclipse SQLExplorer
SQLExplorer是Eclipse集成开发环境的一种插件,它可以被用来从Eclipse连接到一个数据库。
SQLExplorer插件提供了一个使用SQL语句访问数据库的图形用户接口(GUI)。通过使用SQLExplorer,你能够显示表格、表格结构和表格中的数据,以及提取、添加、更新或删除表格数据。
SQLExplorer同样能够生成SQL脚本来创建和查询表格。所以,与命令行客户端相比,使用SQLExplorer可能是更优越的选择,下图是运行中的界面,很好很强大。
l授权协议: 未知
l开发语言: Java
l *** 作系统: 跨平台
5、MySQL管理工具phpMyAdmin
phpMyAdmin是一个非常受欢迎的基于web的MySQL数据库管理工具。它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增字段,执行SQL脚本等。
l授权协议:GPL
l开发语言:PHP
l *** 作系统:跨平台
6、Mongodb 管理工具Mongodb Studio
Mongodb是一款性能优良,功能丰富的文档型非关系型数据库。由于该数据库是开源项目并且还在不断更新中,目前为止在任何平台上都不能找到功能相对完整的客户端数据库管理工具。而越来越多的项目中使用了Mongodb,使得管理起来十分麻烦.如果点点鼠标就搞定了.那该有多好。
基于如上背景,我们制作了此MongoDB管理工具,在DBA/开发/管理员三个维度提供一定层次的管理功能。
Mongodb Management Studio功能如下:
l服务器管理功能
添加服务器,删除服务器
l服务器,数据库,表,列,索引,树形显示和状态信息查看
l查询分析器功能.
支持select,insert,Delete,update
支持自定义分页函 数 $rowid(1,5)查询第一条到第五条,需放在select后面.
l索引管理功能
支持列名的显示,索引的创建,查看,删除.
l数据库Profile管理.
可以设置Profile开关,查看Profile信息.自定义分页大小.
lmaster/slave信息显示
7、MySQL监控小工具mycheckpoint
mycheckpoint是一个开源的 MySQL监控工具,主要用来监控数据。通过视图方式提供监控数据报表。mycheckpoint支持以独立的Web服务器来运行。
例如:SELECTinnodb_read_hit_percent, DML FROM sv_report_chart_sample
查看详细报表示例。
安装手册:http://code.openark.org/forge/mycheckpoint/documentation/installation
8、SQL SERVER 数据库发布向导
Microsoft SQL Server DatabasePublishing Wizard (微软SQLServer数据库发布向导) 是微软发布的一个开源工具,使用该工具可以帮你将SQLSERVER 数据库导出成一个 SQL脚本,类似 MySQL 的 mysqldump工具。
官方说明:SQLServer数据库发布向导提供了一种将数据库发布到 T-SQL 脚本或者直接发布到支持宿主服务提供程序的方法。
9、Eclipse 的Oracle插件jOra
jOra是一个为 Oracle开发者和管理员提供的 Eclipse 插件,可轻松的对Oracle进行开发和管理。
安装地址:http://jora.luenasoft.de/updatesite
插件截图
l授权协议:免费,非开源
l开发语言:Java
l *** 作系统:跨平台
10、免费PostgreSQL监控工具pgwatch
pgwatch 是一个简单易用的PostgreSQL的监控工具,支持PostgreSQL 9.0 以及更新的版本。
主要特性:
- 配置简单
- 大量的监控图表
- 快速系统检查面板
- 自动收集统计信息
- 交互式的 Flash 图表
- 集成 SQL worksheet
l授权协议: Artistic
l开发语言:PHP
l *** 作系统: Linux
11、MySQL Browser
MySQL的客户端工具MySQL Browser的优点是简单,及其的简单,安装之后能够立刻上手,马上就能使用的那种,布局也很简陋,功能也很简陋,简单使用没有问题,尤其是刚开始学习mysql的同学,可以尝试一下。
·授权协议:未知
· *** 作系统: Windows
12、MySQL客户端软件HeidiSQL
HeidiSQL是一个功能非常强大的 MySQL 客户端软件,采用Delphi 开发,支持 Windows *** 作系统。
l授权协议:GPL
l开发语言:Delphi/Pascal
l *** 作系统: Windows
13、SQLite管理工具SQLiteStudio
SQLiteStudio 是一个跨平台的 SQLite数据库的管理工具,采用 Tcl语言开发。
l授权协议:未知
l *** 作系统:跨平台
14、SQL客户端工具SQLyog
SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。
功能:
l快速备份和恢复数据;
l以GRID/ TEXT格式显示结果;
l支持客户端挑选、过滤数据;
l批量执行很大的SQL脚本文件;
l快速执行多重查询并能够返回每页超过1000条的记录集,而这种 *** 作是直接生成在内存中的;
l程序本身非常短小精悍!压缩后只有348 KB ;
l完全使用MySQLC APIs程序接口;
l以直观的表格界面建立或编辑数据表;
l以直观的表格界面编辑数据;
l进行索引管理;
l创建或删除数据库;
l *** 纵数据库的各种权限:库、表、字段;
l编辑BLOB类型的字段,支持Bitmap/GIF/JPEG格式;
l输出数据表结构/数据为SQL脚本;
l支持输入/输出数据为CSV文件;
l可以输出数据库清单为HTML文件;
l为所有 *** 作建立日志;
l个人收藏管理 *** 作语句;
l支持语法加亮显示;
l可以保存记录集为CSV、HTML、XML格式的文件;
l21、99% 的 *** 作都可以通过快捷键完成;
l支持对数据表的各种高级属性修改;
l查看数据服务器的各种状态、参数等;
l支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB;
l刷新数据服务器、日志、权限、表格等;
l诊断数据表:检查、压缩、修补、分析。
l授权协议:GPLv2
l开发语言:C/C++
l *** 作系统: Windows
15、数据挖掘工具RapidMiner
RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
功能和特点
l免费提供数据挖掘技术和库;
l100%用Java代码(可运行在 *** 作系统);
l数据挖掘过程简单,强大和直观;
l内部XML保证了标准化的格式来表示交换数据挖掘过程;
l可以用简单脚本语言自动进行大规模进程;
l多层次的数据视图,确保有效和透明的数据;
l图形用户界面的互动原型;
l命令行(批处理模式)自动大规模应用;
lJava API(应用编程接口);
l简单的插件和推广机制;
l强大的可视化引擎,许多尖端的高维数据的可视化建模;
l400多个数据挖掘运营商支持;
l耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。
l授权协议:未知
l开发语言:Java
l *** 作系统:跨平台
16、Oracle 数据库开发工具Oracle SQL Developer
Oracle SQL Developer 是一个免费非开源的用以开发数据库应用程序的图形化工具,使用SQLDeveloper 可以浏览数据库对象、运行 SQL 语句和脚本、编辑和调试 PL/SQL语句。另外还可以创建执行和保存报表。该工具可以连接任何 Oracle 9.2.0.1 或者以上版本的 Oracle 数据库,支持Windows、Linux 和 Mac OS X 系统。
·授权协议:免费,非开源
·开发语言:Java
· *** 作系统:Windows Linux MacOS
17、EMS SQL Manager for MySQL
EMS SQL Manager for MySQL是一款高性能MySQL数据库服务器系统的管理和开发工具。它支持从MySQL 3.23到6.0的任一版本,并支持最新版本的MySQL的特点,包括:查看、存储规程和函数、InnoDB外部键字和其他特点。它提供了大量工具以满足富有经验的用户的所有要求。添加了精心设计的 *** 作向导系统,以及SQL Manager for MySQL那富有艺术感的图形用户界面,即使新手也可以不会为如何使用而感到困扰。
l授权协议:商业软件
l开发语言:C/C++
l *** 作系统: Windows
18、数据库管理工具CoolSQL
CoolSQL是一个数据库客户端管理工具。
·支持大部分数据库包括:DB2、oracle、mysql、MS SQL Server、Derby、HSQL、Informix、Sybase、PostgresSQL等。
·为用户提供友好和漂亮UI,其整体框架由视图组成类似于Eclipse。支持直接修改SQL查询结果。
·支持将表格数据导出成文本文件,EXCEL和HTML。
·拥有一个支持SQL语法着色显示,智能提示,文本编辑和查找的SQL编辑器。
·能够展示数据库大部分元数据包括:版本,数据类型、函数,连接信息等。
·支持导出数据对象信息包括对象数据(INSERT SQL语句),生成创建/删除脚本(create script/drop script)。
·所有SQL脚本都可以以批量的模式执行。
·能够搜索所有数据包括数据库列,表/视图和其他表格型。
·支持i18n,当前提供两种语言(中文和英文)。
·提供收藏功能,管理由用户收集的文本信息。
·支持通过插件扩展其功能。
ll 授权协议:未知
l开发语言:Java
l *** 作系统:跨平台
19、SQLite Manager
这是一款方便firefox对任何SQLite数据库 *** 作的扩展。使用这款扩展,可以在firefox下很容易的创建表格、建立索引、浏览搜索等 *** 作。此外它还具有一个语法检查功能的下拉式菜单,从而保证用户的 *** 作不会出错。
20、MySQL GUI Tools
这是MySQL官方专业的数据库管理工具,同时支持多种 *** 作系统。该工具包括下面三个产品:
·MySQL Administrator 1.2
·MySQL Query Browser 1.2
·MySQL MigrationToolkit 1.1
21、SQL客户端管理工具SQuirreL SQL Client
SQuirreL SQL Client是一个SQL客户端管理工具。它允许你查看一个兼容JDBC的数据库的结构,浏览表格中的数据,运行SQL命令, 可连接的数据库有ORCAL,MS SQLSERVER, DB2 等, 它还允许用户安装和创建用于补充应用程序基本功能的插件。
功能和特点:
l柱状图显示对像;
l自动完成;
l语句提示;
l标记;
l自动纠正;
l编辑查询结果;
l关系图;
l分页打印。
l授权协议:未知
l语言:Java
l *** 作系统:跨平台
22、Tomcat管理工具EasyTomcat
EasyTomcat是一个用来帮助简化 Tomcat和 MySQL管理的系统,你可以启动、停止和配置Tomcat和MySQL服务器,同时也提供了监控的功能。
l授权协议:未知
l开发语言:Java
l *** 作系统:跨平台
23、SQL Server管理工具sqlBuddy
SqlBuddy是C#编写的一款用于Microsoft SQLServer和MSDE的开源工具,使用它可以很容易的编写SQL脚本。SqlBuddy提供的功能和查询分析器的目的有些微不同,它倾向于帮助使用者编写SQL。
l授权协议:未知
l开发语言:C#
l *** 作系统: Windows
24、数据库开发工具GSQL
GSQL 是 Gnome 下的一个集成数据库开发工具。数据库结构显示在下图左边的树状结构中,支持SQL的语法着色。
l授权协议:未知
l *** 作系统:Linux
25、SQLite数据库管理SQLiteSpy
sqlitespy是一个快速和紧凑的数据库SQLite的GUI管理软件 。它的图形用户界面使得它很容易探讨,分析和 *** 纵sqlite3数据库。
l授权协议:未知
l开发语言:Delphi/Pascal
l *** 作系统:Windows
26、数据库开发工具Aqua Data Studio
Aqua DataStudio 是一个为数据库开发人员准备的集成开发环境,可以对数据库做查询、管理,提供大量的数据库工具,例如数据库比较、源码控制等,目前支持的数据库包括:Oracle, DB2iSeries, DB2 LUW, MS SQL Server, Sybase ASE, Sybase Anywhere, Sybase IQ, Informix,PostgreSQL, MySQL, Apache Derby, JDBC, and ODBC.
l授权协议:未知
l开发语言:C/C++
l *** 作系统:跨平台
27、MySQL 架构管理工具MySQL MMM
MySQL Master-Master 架构常被用在 SQLquery 相依性低的情况,像是 counter常使用的INSERT INTO ... ON DUPLICATEKEY UPDATE a = a + 1不会因为out-of-order而造成问题。而 MySQL MMM算是其中一套写得比较好的 MySQLMaster-Master架构管理工具。
l授权协议:未知
l开发语言:Python
l *** 作系统: Linux
28、MySQL Client
MySQL的客户端工具,主界面如下:
l授权协议:未知
l *** 作系统:Windows
[翻译:ASP.NET MVC 教程]用ASP.NET MVC 创建一个电影数据库应用程序本教程的目的是为你建立起怎样构建ASP.NET MVC应用程序的理念。在本教程中,我从始至终快速构建起一个完整的ASP.NET MVC 应用程序。我向你展示了怎样构建一个简单的数据库驱动的并且实现以列表方式显示、创建以及编辑数据库记录的应用程序。
如果你已经有了Active Server Pages或ASP.NET的工作经历,那么你也会很快熟悉ASP.NET MVC。ASP.NET MVC的视图与在一个Active Server Pages应用程序中的页面极其相似。同时,就像一个传统的ASP.NET Web Forms 应用程序那样,ASP.NET MVC为你提供了一切经由.NET framework提供的丰富的语言集和类库的访问方式。
我希望本教程将给你一个构建ASP.NET MVC应用程序既简单又有别于构建Active Server Pages或ASP.NET Web Forms 应用程序经历的理念。
电影数据库应用程序概览
因为我们的目标是使事情变得简单,我们将会构建一个非常简单的电影数据库应用程序。我们简单的电影数据库应用程序将允许我们做3件事:
1.以列表方式显示电影数据库记录集
2.创建一个电影数据库的新记录
3.编辑一个已存在的电影数据库记录
再一次的,我们的目标是使事情变得简单,我们将利用最小数量的ASP.NET MVC框架的特性来构建我们的应用程序。例如,我们将不使用测试驱动的(Test-Driven)开发模式。
为了创建我们的应用程序,我们需要完成以下的每一个步骤:
1.创建ASP.NET MVC Web应用程序项目。
2.创建数据库
3.创建数据库模型
4.创建ASP.NET MVC控制器
5.创建ASP.NET MVC视图
准备工作
你需要Visual Studio 2008 或 Visual Web Developer 2008 Express来构建一个ASP.NET MVC应用程序。你同时也需要下载ASP.NET MVC framework。
如果你没有自己的Visual Studio 2008,你可以从以下站点下载Visual Studio 2008的90天试用版:
http://msdn.microsoft.com/en-us/vs2008/products/cc268305.aspx
可替代地,你可以使用Visual Web Developer 2008 Express来创建ASP.NET MVC应用程序。如果你决定使用Visual Web Developer 2008 Express来创建,那么你必须安装好Service Pack 1。你可以从以下站点下载Visual Web Developer 2008 Express with Service Pack 1:
http://www.microsoft.com/downloads/details.aspx?FamilyId=BDB6391C-05CA-4036-9154-6DF4F6DEBD14&displaylang=en
在你完成Visual Studio 2008 或 Visual Web Developer 2008的安装后,你需要安装ASP.NET MVC framework。你可以从以下站点下载ASP.NET MVC framework:
http://www.asp.net/mvc/
创建一个ASP.NET MVC Web应用程序项目
让我们在Visual Studio 2008环境下开始创建一个新的ASP.NET MVC Web应用程序项目。选择菜单File,New Project ,你将见到图1中的新建项目对话框。选择C#作为编程语言并且选择ASP.NET MVC Web应用程序模版。将你的项目命名为MovieApp,点击OK按钮。
图1:新建项目对话框
无论何时,当你要创建一个新的MVC Web应用程序项目,Visual Studio会提示你创建一个单独的单元测试项目。在图2中显示了该对话框。因为我们出于开发时间限制就不在本教程中创建单元测试了(的确,我们对此有点内疚)。选择No选项,点击OK按钮。
图2:创建单元测试项目对话框
一个ASP.NET MVC应用程序有一套标准文件夹:Models,Views和Controller文件夹。你能在解决方案浏览器窗口中看见这套标准文件夹。为了构建我们的电影数据库应用程序,我们需要在Models,Views和Controller文件夹中添加相应的文件。
当你用Visual Studio创建了一个新的MVC应用程序时,你会得到一个简易的应用程序。因为我们想要从头做起,我们需要从这简易的应用程序中删除一些内容。你需要删除下列文件及文件夹:
•Controllers\HomeController.cs
•Views\Home
创建数据库
我们需要创建一个数据库用来容纳我们的电影数据库的记录。幸运的是,Visual Studio包含了一个免费的数据库软件SQL Server Express。按以下步骤创建数据库:
1.在解决方案浏览器中右击App_Data文件夹,然后选择菜单选项Add,New Item。
2.选择Data分类,然后选择SQL Server Database模板(见图3)。
3.将你的新数据库命名为MoviesDB.mdf,然后点击Add按钮。
在你创建数据库后,你能连接该数据库通过双击在App_Data文件夹中的MoviesDB.mdf文件。双击MoviesDB.mdf文件打开服务器浏览窗口。
图3:创建一个Microsoft SQL Server数据库
下一步,我们需要创一个数据表。在服务器浏览窗口中,右击Tables文件夹并且选择菜单选项Add New Table。选择该菜单选项打开数据表设计器。创建以下数据字段:
字段名称
数据类型
允许为空
Id
Int
False
Title
Nvarchar(100)
False
Director
Nvarchar(100)
False
DateReleased
DateTime
False
第一字段,即Id字段,有两个特殊属性。首先,你需要将Id字段设定为主键。选择Id字段后,点击Set Primary Key按钮(该按钮图标看上去像把钥匙)。其次,你需要将Id字段设定为可识别字段(Identity column)。在字段属性窗口中,滚动至Identity Specification部分并且展开它。将Is Identity属性值设定为Yes。当你完成 *** 作后,数据表看上去应像图4那样。
图4:电影数据库的数据表
最后一步为保存新建立的数据表。点击Save按钮(软盘状的图标)并且将该表命名为Movies。
在你完成建表后,向表内添加一些电影记录。右击服务器浏览窗口中的Movies表并且选择菜单选项Show Table Data。键入一系列你最爱的电影记录。(见图5)。
图5:键入电影记录
创建数据模型
我们下一步需要创建一系列的类来代表我们的数据库。我们需要创建一个数据库模型。我们将利用Microsoft Entity Framework来自动为我们的数据库生成类。
按照下列步骤进入实体数据模型(Entity Data Model)向导:
1.在服务器浏览窗口中右击Models文件夹,然后选择菜单选项Add, New Item。
2.选择Data分类,然后选择ADO.NET Entity Data Model模板。
3.将该数据模型命名为MoviesDBModel.edmx,然后点击Add按钮。
在你点击Add按钮后,实体数据模型向导(见图6)出现了。按照下列步骤完成向导:
1.在Choose Model Contents这步中,选择Generate from database选项。
2.在Choose Your Data Connection这步中,使用MoviesDB.mdf数据连接,然后为该连接设定命名为MoviesDBEntities。点击Next按钮。
3.在Choose Your Database Objects这步中,展开Tables节点,选择Movies表。键入命名空间Models,然后点击Finish按钮。
图6:使用实体对象模型向导(Entity Data Model Wizard)生成一个数据库模型
在你完成Entity Data Model Wizard后,Entity Data Model设计器打开了。该设计器显示了Movies的数据表(见图7)。
图7:实体数据模型设计器
在我们继续下一步前,我们需要做一处改动。实体数据向导生成了一个命名为Movies的模型类来代表Movies数据表。因为我们将要用Movies类来代表一个特别的电影,我们需要修改类名,将Movies修改为Movie(是单数形式而不是复数形式)。
双击位于设计器表面的类名并且将该类名从Movies改为Movie。修改后,点击Save按钮(软盘状的图标)来生成Movie类。
创建ASP.NET MVC控制器
下一步将要创建ASP.NET MVC控制器。控制器代表了用户与ASP.NET MVC应用程序交互的控制。
按照下列步骤:
1.在解决方案浏览窗口中,右击Controllers文件夹,然后选择菜单选项Add, Controller。
2.在Add Controller对话框中,键入名称HomeController并且勾选复选框Add action methods for Create, Update, and Details scenarios(见图8)
3.点击Add按钮,为你的项目添加新的控制器。
完成上述步骤后,在清单1中的控制器就创建好了。注意该控制器包含了名为Index, Details, Create, 和Edit的方法。在接下来的段落中,我们将添加必要的程序代码是这些方法正常工作。
这是网址:http://www.cnblogs.com/Kinglee/archive/2009/07/14/1522901.html
你看下对你有用没有?
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。封装
构成MFC框架的是MFC类库。MFC类库是C++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。
(1)对Win32应用程序编程接口的封装
用一个C++ Object来包装一个Windows Object。例如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。
(2)对应用程序概念的封装
使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。MFC把许多类似的处理封装起来,替程序员完成这些工作。另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。文档是用户 *** 作的数据对象,视图是数据 *** 作的窗口,用户通过它处理、查看数据。
(3)对COM/OLE特性的封装
OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。MFC的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。
(4)对ODBC功能的封装
以少量的能提供与ODBC之间更高级接口的C++类,封装了ODBC API的大量的复杂的工作,提供了一种数据库编程模式。
继承
首先,MFC抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是CObject和CCmdTarget。CObject是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTarget。CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。
针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。
程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。
虚拟函数和动态约束
MFC以“C++”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,CWnd封装 Windows窗口对象时,每一条Windows消息对应一个成员函数,这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。
这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。MFC编程框架将在适当的时候、适当的地方来调用程序的代码。本书将充分的展示MFC调用虚拟函数和消息处理函数的内幕,让读者对MFC的编程接口有清晰的理解。
MFC的宏观框架体系
如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对程序员来说,是一套开发模板(或者说模式)。针对不同的应用和目的,程序员采用不同的模板。例如,SDI应用程序的模板,MDI应用程序的模板,规则DLL应用程序的模板,扩展DLL应用程序的模板,OLE/ACTIVEX应用程序的模板,等等。
这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。典型的MDI应用程序的构成将在下一节具体讨论。
为了支持对应用程序概念的封装,MFC内部必须作大量的工作。例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。
总之,MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。同时,MFC支持对底层API的直接调用。
MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。
MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)