通信与网络中的智能卡密钥管理系统的应用方案


-
这里我们将叙述一个基于智能卡系统的密钥管理之例。 了满足在商业银行全行范围内对IC卡密钥进行统一管理的业务需求,提出了集中—分布式密钥管理体制。该体制完全支持《中国金融IC卡规范 v1.0》,具体为: 1、IC卡的电子钱包和电子存折的消费。 取现。 查余额功能全国通用,并且采用脱机交易方式。 2、IC卡的圈存。 圈提功能全国通用,但采用联机交易方式,借助龙卡网络实现。 3、 IC卡PIN的改密。 解锁等其他功能仅在发卡行受理。 系统功能 在充分保证密钥安全性的基础上,支持IC卡联合试点密钥的生成。 导出。 注入。 备份。 恢复。 更新。 服务等功能,实现密钥

69KB
机顶盒中智能卡通信的实现
2021-01-19摘要:机顶盒中采用智能卡技术实现条件接收,主要介绍了机顶盒芯片Sti5516的智能卡接口和用于实现机顶盒与智能卡之间通信的TDA8004T芯片,介绍了T=0通讯协议,并给出了通讯的实现过程。 关键词:机顶盒 智能卡 T=0协议 在利用数字机顶盒收看数字电视节目时,为了满足不同用户的需要,保证每个用户的利益,需要采用条件接收系统管理用户的权限并确保用户的正常收看。而在机顶盒中,通常使用智能卡技术实现条件接收。 智能卡有自己的微处理器、存储器和一个与机顶盒通信的接口。采用智能卡实现条件接收的优势在于:它具有高度的安全性和保密性,主要用于存储用户的私人密钥、控制授权、保密算法等信息,可以保
69KB
消费电子中的机顶盒中智能卡通信的实现
2020-12-10摘要:机顶盒中采用智能卡技术实现条件接收,主要介绍了机顶盒芯片Sti5516的智能卡接口和用于实现机顶盒与智能卡之间通信的TDA8004T芯片,介绍了T=0通讯协议,并给出了通讯的实现过程。 关键词:机顶盒 智能卡 T=0协议 在利用数字机顶盒收看数字电视节目时,为了满足不同用户的需要,保证每个用户的利益,需要采用条件接收系统管理用户的权限并确保用户的正常收看。而在机顶盒中,通常使用智能卡技术实现条件接收。 智能卡有自己的微处理器、存储器和一个与机顶盒通信的接口。采用智能卡实现条件接收的优势在于:它具有高度的安全性和保密性,主要用于存储用户的私人密钥、控制授权、保密算法等信息,可以保
173B
JAVA上百实例源码以及开源项目源代码
2018-12-11简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例…… ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。 Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲
68B
JAVA上百实例源码以及开源项目
2016-01-03百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例…… ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。 Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Jav
417KB
电话号码查询系统 数据结构课程设计
2009-06-22设计采用散列文件实现电话号码查询系统 设每个记录由电话号码、用户名和地址组成,以电话号码为关键字建立散列文件 功能:输入记录,建立散列文件。 删除指定电话号码的记录 查找并显示给定电话号码的记录 感觉好的话就评价一下
460KB
citrix 中文管理操作手册
2009-11-04XenApp 目录 XenApp 1 欢迎使用 XenApp 5 for Windows Server 2008 24 1. Citrix XenApp 管理 25 欢迎使用 Citrix XenApp 管理 25 管理控制台和其他工具 25 1.2.1. Access Management Console 概述 25 1.2.2. XenApp Advanced Configuration 概述 25 1.2.3. License Management Console 概述 26 1.2.4. Citrix SSL Relay 配置工具概述 26 重影任务栏概述 26 1.2.6. SpeedScreen Latency Reduction Manager 概述 26 选择要使用的控制台或工具 26 启动 Access Management Console 27 在 Access Management Console 中显示项目 27 使用检测过程指定多个服务器场进行控制台管理 27 针对多个产品或组件运行检测过程 28 针对单个产品或组件运行检测过程 28 1.2.10. Access Management Console 用户界面 28 使用 Access Management Console 执行任务 30 分配场管理员凭据 30 使用我的视图自定义显示效果 31 管理多个场中的应用程序及服务器 31 使用 Access Management Console 查看区域 31 管理用户会话和服务器进程 31 使用 Access Management Console 创建报告 31 使用 Access Management Console 配置应用程序访问权限 32 使用 Access Management Console 创建跟踪日志 32 查看 Citrix 修补程序信息 32 使用 Access Management Console 进行远程监视时节省带宽 32 允许 Citrix 管理员远程管理场 32 授予管理员 DCOM 远程启动权限 33 使用 Citrix XenApp Advanced Configuration 33 使用 Advanced Configuration 进行远程监视时节省带宽 33 配置 Advanced Configuration 以便于屏幕阅读程序访问 33 管理 Citrix 管理员帐户 34 规划管理员帐户 34 1.3.1.1. Citrix 管理员帐户类型 34 完全权限管理员 34 仅限查看权限管理员 34 自定义权限管理员 35 管理 Citrix 管理员帐户 35 创建新的 Citrix 管理员帐户 35 更改 Citrix 管理员属性 35 禁用和删除管理员 35 禁用 Citrix 管理员帐户 36 启用管理员帐户 36 删除 Citrix 管理员帐户 36 向自定义管理员委派任务 36 将任务委派给现有自定义管理员 36 为管理员分配文件夹权限 37 分配文件夹权限 37 为管理员分配任务 37 分配或更改对象权限 37 为用户提供资源 38 将资源发布给用户 38 面向多个用户安装应用程序 38 为所有用户安装应用程序 39 在包含数千个对象的域中发布应用程序 39 使用发布应用程序向导发布资源 39 管理已发布资源的发布选项 40 选择资源类型和发布方法 40 定位要发布的应用程序 41 验证已发布应用程序的命令行参数 42 在内容与已发布应用程序之间建立信任关系 42 禁用所选已发布应用程序的命令行验证 42 禁用服务器上所有已发布应用程序的命令行验证 42 配置已发布内容的位置 43 配置内容重定向 43 将内容从客户端重定向到服务器 43 配置从客户端到服务器的内容重定向 44 配置内容重定向时使用客户端设备上的 Windows Explorer 44 将内容从服务器重定向到客户端 44 启用从服务器到客户端的内容重定向 45 发布要使用本地应用程序访问的内容 45 管理应用程序属性 45 重命名已发布应用程序 46 配置已发布资源的服务器位置 46 查找要发布的已配置应用程序 47 启用应用程序的脱机访问功能 47 配置用户对应用程序的访问权限 48 向匿名用户授予访问权限 49 向显式用户授予访问权限 49 配置客户端设备的快捷方式 50 配置由 Access Gateway 控制的访问 50 将已发布应用程序与文件类型相关联 51 更新文件类型关联 52 配置备用配置文件 53 将参数传递给已发布的应用程序 53 减少流应用程序的用户权限 53 配置应用程序限制和重要性 54 配置已发布应用程序的音频和加密选项 54 配置应用程序外观 56 禁用或
65.97MB
铁虎CPU梯控系统V1.3
2020-11-18A 梯控系统可对IC卡进行初始化、密码授权、发卡、换卡、补卡、黑名单及挂失、时间控制、使用查询等操作设置。 B 电梯门禁系统设置功能:包括梯控控制器(DAIC-DT-KZ)联网设置、电梯门禁控制器(DAIC-DT-MJ)数量设置、智能电梯控制器(DAIC-DT-DTMB)号名称设置和安装位置设置等。 C 电梯门禁管理功能: 设置楼层控制表:允许用户设置或修改电梯发卡楼层号与电梯硬件接线号对应关系。 初始化控制器:初始化后的控制器内的系统密钥、通信数据、参数设置将全部清除。 D 梯控操作功能: 下载系统时间:用于校准控制器机内运行时间。 下载/清除黑名单:对控制器下载和清初黑名单操
367KB
基于USB接口和智能卡的PKI客户端设计
2020-12-131 概 述 计算机、网络、通信技术的迅猛发展,使人们的生活和生产方式发生了深刻变化。高科技在给人们的工作和生活带来方便、舒适的同时,也给人们增添了许多困扰。安全问题首当其冲。PKI(Public Key Infrastructure,公钥基础设施)被誉为现代信息社会安全的基石,也是电子商务与电子政务的关键技术。它能够为所有网络应用透明地提供加密和数字签名等密码服务所必需的密钥和证书管理功能,能够提供认证、访问控制、数据完整性、机密性和不可否认性等核心安全服务。通常PKI系统主要由认证机构、证书库、密钥备份及恢复系统、证书作废处理系统、PKI应用接口系统等部分组成。 PKI的基础是基
113KB
基于USB接口和智能卡的PKI 客户端设计
2020-12-13计算机、网络、通信技术的迅猛发展,使人们的生活和生产方式发生了深刻变化。高科技在给人们的工作和生活带来方便、舒适的同时,也给人们增添了许多困扰。安全问题首当其冲。PKI(Public Key Infrastructure,公钥基础设施)被誉为现代信息社会安全的基石,也是电子商务与电子政务的关键技术。它能够为所有网络应用透明地提供加密和数字签名等密码服务所必需的密钥和证书管理功能,能够提供认证、访问控制、数据完整性、机密性和不可否认性等核心安全服务。通常PKI系统主要由认证机构、证书库、密钥备份及恢复系统、证书作废处理系统、PKI应用接口系统等部分组成。 PKI的基础是基于非对称加密算法的,每
234KB
网上会展的未来发展趋势
2012-12-12网上会展的未来发展趋势 一、中国网上会展发展阶段 预计在未来十年内,中国网上会展将经历如下三个发展阶段: 第一阶段:以大型展览为依托网上会展兴起阶段。以中国业内最大规模的展览会为依托,充分利用 传统展览会的资源与作用。与展馆现场宣传相配合,可使网上会展会成为沟通厂商与买家的必不可少的桥梁。 第二阶段:网上会展大发展阶段。诸多网站开展网上会展业务,群雄并起,竞争激烈,出现行业、种类的专业化趋势,加速并推动电子商务的发展。 第三阶段:网上会展与传统展览并存竞争阶段。网上会展逐渐被人们所接受,形成既相互融合,又相互竞争的竟合状态。预计到2010年,我国将有1/3的会展网站能够举办网上会展,将有2/3以上的大型传统实物展览同时举办网上会展,独立的网上会展数量与传统实物展览数量之比将达到1/4。 二、会展中的网络功能 会展中的网络应用归纳起来具有八大功能: 1、信息搜索功能 利用多种搜索方法获取有用的信息和商机,由单一向集群化、智能化的发展,以及向定向邮件搜索技术的延伸,寻找网上营销目标将成为一件易事。 2、信息发布功能 网络信息的扩散范围、停留时间、表现形式、延伸效果、公关能力、穿透能力都是最佳的。而且网上信息发布以后,可以能动地跟踪,并进行回复后的再交流和再沟通。 3、商情调查功能 通过在线调查或者电子询问调查表等方式,不仅可以省去大量的人力、物力,而且可以在线生成网上市场调研的分析报告,趋势分析图表和综合调查报告。 4、市场营销功能 传统经济时代的经济壁垒,地区封锁、人为屏障、交通阻隔、资金限制、语言障碍、信息封闭等,都阻挡不住网络信息的传播和扩散:文图并茂、声像惧显的昭示力,网上路演的亲和力,地毯式发布和爆炸式增长的覆盖力,整合为一种综合的信息进击能力。 5、品牌价值拓展功能 互联网推动和促进品牌的拓展和扩散,提升品牌的核心竞争力,打造品牌资产。 6、特色服务功能 FAQ(常见问题解答)、 BBS、聊天室等各种即时信息服务,在线收听、收视、订购、付款等选择性服务,无假日的服务和信息跟踪、信息定制到智能化的信息转移,网上选购,送货到家的上门服务等等,将极大提高顾客满意度。 7、顾客关系管理功能 通过客户关系管理,将客户资源管理、销售管理、市场管理、服务管理、决策管理于一体,将原本疏于管理、各自为战的销售、市场、售前和售后服务与业务统筹协调起来。 8、经济效益功能 企业参加网上会展,效率提高,成本下降,商业机会增多,原有信息量的价值实现增值,无形资产升值。 三、网络技术在现代会展中的具体应用 会展的网络应用指导思想:以用户为核心,提供更好、更个性化的服务;充分利用资源,用最少的资源,实现最大化的收益,各业务环节的增值管理;提高效率,降低成本。 1、利用网络技术为展馆服务 展馆内部采用局域网,统一接入Internet,运行统一的OA、项目管理、流程管理软件。采用客户机/服务器数据库管理方式,进行展商与观众的管理与营销。建立网站开展客户关系管理的销售自动化,实行网上报名、网上服务订单、网上支付、观众登记和报价系统等。建立网络展商应答中心,开展网上营销。建立网站为展商提供个性化服务,如展出信息自行维护、展览顾问系统等。 展会前:网上会展门票远程预定、展会观众胸卡制作。 展会中:观众现场登记、个人信息显示、智能卡身份识别、现场人像制作、现场观众信息统计传输。 展会后:会展观众数据整理、会展观众详细统计分析、展会远程参观访问、展会现场摄像直播、大屏幕网屏等系列产品应用。 电子商务:展馆电子商务平台建设,展馆展示、服务介绍、展馆服务预定,展会发布、展会报道、展会统计分析,展览论坛、新闻中心。 系统集成:展馆内部系统集成建设,上网接入、Internet web服务器运行、展馆信息数据服务器建立,展会网络建设、上网接入。 系统管理:展馆内部信息化管理系统、展馆信息资源管理系统、展馆网络商务管理系统、展馆展会服务管理系统。 科技服务:网上观众登记、展会现场观众登记统计分析。 信息统计:展馆信息资源统计整理、商务活动运作安排、数据仓储建立。 作为基础性设施的网络平台的搭建自然是相当重要的,各种信息的快速传递均离不开高速的信息网络平台,现代会展中心在建设初期就必须将计算机网络工程规划在内。可靠、先进的信息网络系统是会展中心不可缺少的重要组成部分。根据会展中心网络的功能和用途,可以划分为管理者计算机网络、参展商计算机网络、公众计算机网络、数据中心及高速接入网等五大网络。 2003年,建设规模为目前亚太地区最大、全球第二的广州国际会议展览中心选定了美国网捷网络的网络设备解决方案,并由IBM全球服务部提供整体的信息技术服务和咨询服务,首期工程成功构建了完整的信息网络系统,高性能BigIron 交换机系列、FastIron 边缘交换机系列和电信级城域网NetIron路由器系列将会展中心16个展厅和上万个展位连接起来,再加上用于服务器群组应用负载均衡的ServerIron系列交换机,以及能保证线速网络流量监控与安全的sFlow(RFC3176)技术,从而构成了从边缘到核心完整的解决方案,完全满足了会展中心对于网络设计在高性能,数据、语音和视频合一,安全性,可扩展性及易于管理等方面的要求。 深圳市新建成的IP宽带城域网已单独分配给2003年高交会展馆100兆带宽,将信息高速公路铺到了每个展台,并将使高交会馆上网速度比去年提升近50倍,并使各种高新网络信息展示成为可能,广大参展商和参观者通过IP城域网真正体验高速网上冲浪的乐趣。 2、利用网络技术为展会组织者服务 会展组织者企业首先利用网络技术实现办公和管理上的信息化,实现企业办公和经营管理的各种信息、数据、指令的发布、传送、查询、控制、保存的计算机网络化;其次运用于会展的运作、营销和功能拓展,展馆信息、展会信息、参展商信息、采购商信息、招展过程和围绕展会个企业相互讲的信息沟通都可以通过网络实现。高效、充实、开放的信息平台不仅有助于提高展览公司、展会的知名度、促进营销,还将为参加展会的企业创造新的价值。依托网络信息技术发展起来的展会,由于其招展的便捷、高效、互动、覆盖面广、能够为参加展会的企业创造新的价值,因而有可能迅速做强做大,使会展业进入良性循环的轨道。 展会前:建设展会的互联网商务平台,发布展会信息,有效利用网络优势进行展会推广、展会招商、展位预定、服务合作、服务预定、参展商信息发布、网上观众预定、网上调研等,建立包含多功能的大型数据库,采用三层结构的应用管理,展会后台简单的操作页面进行管理维护。 展会中:展会现场新闻报道、信息发布,展会现场图片直播、摄像直播,展会现场观众登记统计分析、观众条码识别胸卡制作、观众信息识别管理,参展商、观众统计信息发布。 展会后:对数据库展会信息资源整理、展会信息资源数据库提交、展会信息资源详细统计分析、展会成效成本统计分析、网上展会系统管理。 电子名片制作:会展组织者为参展商和参观者特制电子参展证,通常用磁卡或带条形码的材料制作。在签发该证前,会展组织者要求参展商或参观者输入个人资料,包括公司名称、联络办法、本人职衔、公司性质和业务范围等,然后把这些资料存入卡中。有了电子名片,展览会甚至不用花人力来看守大门,可以像地下铁路入口那样实行电子化管理,从而准确记录入场人数。 3、利用网络技术为参展企业服务 展会前:展会查询、展会比较、展位预定、服务查询预定。 展会中:现场报道、展台摄像、网上展会、网上企业路演。 展会后:网上展示、展台布置、展品特效、在线交易。 网上报名:可以让出席者直接在网上填写申请表,在网上浏览会议详情,自动统计出席者人数,自动监控财务交易。运用网上报名数据库的一个最大的优点是能将所有报名资料都汇总在一起,使会展组织者拥有一个不断更新而准确的报告。 住宿安排:展会组织者还应该引导展会参加者在网上预定旅店,可以把免费团体住宿安排应用软件、网上预定工具和报名数据库结合起来使用,把所有住宿安排信息都储存在一个在线数据库中,及时监控住宿安排情况,并可以提前几个月或几个星期根据定房情况的变化及时调整住房安排结构。 旅行:让会展参加者在网上做旅行安排、网上预定机票,或是与网上报名和网上预定房间系统相结合。最新的选址和RFP工具添加了为参加小型会议而及时预定房间和会议地点的相关内容。 电子名片使用:参展商可以自由选择租用组委会会提供的电子名片读取设备,将设备连接到自己的电脑上就可以开始使用。买家需要把名片给参展商时,只需要把存有自己资料的入场证在读取设备上划过,所有资料就会在眨眼间被传输到参展商的电脑里。参展商还可以把双方谈话的要点记录在相应备注栏里,做到十分有条理地管理买家资料。 网上会议服务范围:给任何地点、任何人作讲演;在线软件、产品演示说明;可以让会议中任何人观看、编辑发言人的各种电子文档;向所有与会者播放发言人计算机里的多种媒体文件;发言人带领其他与会者共同浏览网页;发言人计算机里的任何应用程序可共享,对方可以进行各种操作;使用桌面控制功能进行远程技术支持;视频功能使会议更人性化;VOIP语音功能可以节约大量的电话费用;以上所有功能都是实时、交互的,会议中的任何人都可以同样实现。 网络营销:网络营销必须考虑企业的外部环境和内部情况。外部宏观环境包括网民人数、在线交易额、互联网技术状况、互联网法律的完善程度、政府对待互联网的态度等。企业内部情况包括产品、资金、人才等。产品是最重要的考虑因素。对于软件和书籍、影视类可以通过数字形式传播的产品,企业应该努力用信息流来替代物流。对于服务类和个性化、贵重产品,不能或者不适合通过物流配送体系来完成物流,可借助互联网进行营销传播,用传统营销的分销渠道和零售终端最终达成交易。 四、网上会展的经济社会作用 网上会展可以丰富各地信息港的有价值信息,吸引大量企业主动上网并进行信息的撮合和交易,提升电信运营商在中国经济建设中的重要地位。 1、网上会展将丰富各地信息港的有价值信息 网上会展最大的特点是依托在各地运营机构和合作伙伴的信息平台或者企业上网站点来展示。网上会展中的展会、展商、展品等所有信息都经过组委会、电信运营商的严格审核,以保证网络信息的真实性,有利于企业放心地选择展会、展商和展品。网上会展信息的真实和有价值信息也增强了参与站点的信息价值性,增强这些站点在本地或本行业品牌影响力。 2、网上会展可以吸引大量企业主动上网并进行信息的撮合和交易 网上会展在一段时间里的高速集中的宣传和造势,不仅促使实地参展的企业同时参加网交会,亦带动大量因受时间和空间限制的外地企业参加网络展。使得网上会展线上线下都被企业关注,吸引企业上 网进行产品供求信息的交换甚至进行商品交易。 3、提升电信运营商在中国经济建设中的重要地位 中国加入WTO后,会展经济在国民经济领域的重要作用日益显著。会展业作为一种高智商的服务行业和信息技术几乎有着天然的必然联系。网上会展完全符合会展经济的发展趋势,将是电信运营商参与中国会展经济运作的重要手段,也是政府上网工程和企业上网工程的最佳结合点。 电信运营商是网上会展价值链的基础,依托网交会体系能够面向广大参展企业和参会会员提供网上展会的一揽子服务。电信运营商在对参展、参会企业服务的过程中,获得收益。电信运营商的定位将是平台和网络提供者,采取有效的运营机制鼓励和发展社会IT公司、网站网页制作公司作为代理发展网交会的各项业务。 电信运营商的经济收益来自直接收益和潜在收益两部分。直接收益:一是参展企业网上展平台租用费和参会企业会员费。二是参展企业网上展品的制作业务,包括三维、视频、FLASH、专题网站等特展制作。三是全国网交会网络导航、广告宣传及网络营销推广服务。四是宽带视频会议系统等出租业务。五是为网交会系统平台展商提供数据增值服务和电子商务,其中包括企业邮局及邮件列表、无线上网和短信服务、语音应答、在线洽谈、在线统计、在线调查、安全认证、网上支付、网上贸易撮合等。间接收益:如同传统展会一样,通过网交会平台这个虚拟的网上会展平台,大量现实和潜在的行业参展商及参观者进行商贸互动,对于展开电信业务的营销培训推广,拉动电信的接入业务、IDC业务和丰富的电子商务业务提供了广阔的应用空间。 网上会展同样存在着1∶10的拉动效应,网上会展1元钱的直接收益,将带来电信接入业务、IDC业务、电子商务业务、宽带视讯业务、网页制作、IP电话会议、视频点播、彩信、3G等数据业务等10元钱的拉动效应,进军网上会展将有利于电信业正在进行的语音业务向数据业务的战略性转变。 4、网上会展是扭转行业、企业网络应用观念的有效手段 网络经济在网络泡沫消退后步入了务实阶段,扭转企业的网络观念将是影响到企业信息化发展的关键一步。网上会展并不提倡上网能够解决企业的一切问题,而是主攻企业的供求信息的关注度,让企业能够得到真实有效的产品信息,并通过互联共享机制,让企业发布的信息最广泛的为人所知,让企业感觉到网络所能带来的实际利益,才能扭转企业的互联网应用观念,引导企业深入到网络经济之中。 5、“网上会展”成为会展业应对突发危机的最佳选择 会展组织者以展会为媒体,为展商与贸易商提供有效的交流平台,客观上是以集群与时空结合的方式,为行为主体间创造交流的环境。在突发危机发生的情况下,这种方式受到了挑战。“网上会展”以其高效、灵敏的特点,表现出特殊的应用价值,实现了人们之间在不接触的情况下,照常经济交往与贸易活动,有效阻断了传统展览密集人群,集合传染源的途径。在SARS期间,以“非接触经济”形态出现的“网上会展”高效运转,发挥着具有历史意义的重要作用,成为我国会展业应对突发危机的最佳选择。 五、网上会展中的安全问题及对策 会展网站的网络与Internet相连,构成开放性网络,也就必然存在着安全问题。网络的安全性及信息的真实性和准确性,使得很多企业不敢涉足的隐忧。但即使是面对面的交易活动,照样有信誉失衡或被人欺诈的风险。尽管电子商务、网络虚拟空间尚有诸多的不完善,但这些问题都是技术性的,通过技术保密,以及多渠道地了解对方的信用信息,也完全可以避免不该发生的失误。必须剖析网上会展的安全需求,寻求网上会展的安全对策。 1、网上会展的安全威胁 网上会展的实施依赖于现代计算机信息技术,由于计算机网络信息的全球性、开放性、扩散性、共享性和动态性等特性,它在存储、处理、使用和传输上存在严重脆弱性,易于受计算机病毒的感染,数据被干扰、遗漏、丢失,甚至被人为泄露、篡改、窃取、冒充、滥用和破坏,从而受到多种安全威胁。 会展网站信息系统的安全风险来源于其社会环境的威胁、技术坏境的脆弱和物理自然环境的恶化。社会环境指各种社会组织机构和人员。技术环境指会展网站信息系统的技术因素,包括:硬件设施、软件设施、网络结构、局域网、信息采集、信息处理、信息传输、信息存储、安全人员管理和技术安全管理等。物理自然环境是指来自物理基础支持能力和自然环境的变化。 (1)社会环境的威胁 社会环境的威胁方主体可能是个人,也可能是竞争对手组织,具体攻击手段主要有:内部窃密和破坏、非法访问、删改、伪造、重演、抵赖、中断与摧毁等。 (2)技术环境的脆弱性 技术环境的脆弱性来源于会展信息系统技术上和管理上的缺陷。包括:网络设备的安全性、操作系统的安全性、协议软件的安全性、系统安全监视乏力、对病毒和黑客侵袭的抵抗不足、应用服务的安全性等。 (3)物理自然环境恶化 物理自然环境恶化是指网上会展信息系统物理基础的支持能力下降或消失,包括电力供应不足或中断、电压波动、静电或强磁场的影响,以及自然灾害的发生等。 2、网上会展的安全对策 会展网站信息网络安全防范包含以下内容:访问控制、识别和鉴别、完整性控制、防火墙系统、密码技术、审计和恢复、计算机病毒防护、操作系统安全、数据库系统安全和抗抵赖协议等等。 (1)访问控制 对用户访问会展网站信息系统的权限或能力的限制,包括限制进入物理区域(出入控制)和限制使用会展网站信息系统资源(存取控制)。 (2)识别和鉴别 针对攻击,网上会展电子商务安全系统至少应提供识别与鉴别机制。识别指分配给每个用户一个ID来代表用户和进程。鉴别是系统根据用户的私有信息来确定用户的真实性,防止欺骗。识别的方法如PID、UID。鉴别最常用的简单方法如口令机制,利用生物技术,根据人的指纹、视网膜等生物信息来提高鉴别强度。现在经常使用的还有数字签名的鉴别方法。 口令机制:口令有时可能被攻破,对抗口令攻击可采取加密、签名和令牌等办法,但最重要的是口令管理。 数字签名:数字签名机制提供了一种鉴别方法,以解决伪造、篡改、冒充和抵赖等问题。数字签名采用一定的数据交换协议,使信息发送方不能否认他发送过数据这一事实,接收方能够鉴别发送方所宣称的身份。数字签名一般采用非对称加密技术,发送者通过对整个明文进行某种变换,得到一个值,作为核实签名。接收者使用发送者的公开密钥对签名进行解密运算,如其结果为明文,则签名有效,证明对方的身份是真实的。数字签名不同于手写签字,手写签字反映某人的个性特征,它是不变的,而数字签名随文本的变化而变化;手写签字是附加在文本之后的,与文本信息是分离的,而数字签名与文本信息是不可分割的。数字签名技术涉及到密钥问题。根据对密钥的管理方式不同,数字签名可分为公开密钥加密的数字签名和常规加密技术的数字签名。 (3)完整性控制 必须采取数据完整性控制技术来识别会展网络信息有效数据的一部分或全部信息是否被篡改,根据数据完整性控制范围的不同,可采用两类技术,即报文认证和通信完整性控制。 (4)防火墙系统 会展信息网络中的防火墙能够保护内部网络免受外界攻击。 防火墙的技术核心是防火墙控制网路传输的技术,如链路级网关、应用层网关、状态监控包封过滤。 (5)密码技术 密码算法是一些公式、法则或程序,算法中的可变参数是密钥。密码算法相对稳定,视为常量,而密钥是变量。现代密码学的一个基本原则是“一切秘密寓于密钥之中”。 (6)审计和恢复 审计是指对用户和程序使用会展网络信息资源的情况进行记录和审查,以保证会展网站信息系统的安全,帮助查清事故原因。恢复是指当会展网站信息系统受到损害时,将系统恢复到可接受状态的安全机制,如建立备份系统等。 (7)计算机病毒防护 反病毒技术包括预防病毒、检测病毒和消毒三种技术。反病毒技术的实施对象包括文件型病毒、引导型病毒和网络病毒。网络反病毒技术的具体实现方法包括对网络服务器中的文件频繁地进行扫描和检测,设置功能强大的反病毒防火墙,对网络目录及文件设置访问权限等。 (8)操作系统安全 操作系统安全是指从系统设计、实现和使用等各个阶段都遵循一套完整的安全策略。包括存储器寻址保护、访问控制、认证机制。 (9)数据库系统安全 网上会展电子商务数据库系统的安全需求应包括:物理完整性,政务信息数据能够免于遭受物理破坏(如火灾、水灾、电压波动、掉电等);逻辑完整性,能够保持会展信息数据库的结构完整,比如对某字段的修改不至于影响其他字段;元素完整性,包含在每个元素中的数据是准确的;可用性,指用户通常情况下,可访问会展信息数据库和所有授权访问的数据;用户认证,保证每个用户能够被正确地识别,免遭非法用户的入侵;可审计性,能够追踪到谁访问过会展网站信息数据库。 文章出处:展馆网www.zhanguan.cc
49.51MB
NetSupport School 课堂管理软件(简体中文版)
2014-09-05无限制简体中文版,很好用的电子教室(电脑教室)管理软件 适用于Windows的课堂管理系统 NetSupport School 是一流的培训软件解决方案,让教师能够以个别方式、按预定小组或者对整个班级进行辅导、监视,并与学生们互动交流。 监听 最新版本的 NetSupport School v11.41.0007简体中文版 将先进的课堂 PC监视、实时演示和加注工具同创新型客制化测验套件、互联网和应用程序控制、实时音频监听、自动化课程设计、打印机管理、即时通讯控制、内容监控及桌面安全等功能结合起来,可以完全应对和满足当今现代化课堂的挑战和要求。 NetSupport School 经过多年的演进,能够不断地应对当今现代化课堂所面临的各种挑战,确保与日新月异的IT 环境保持兼容。 对于新版本来说,不仅着重于引入具有创新性的新功能,而且还检查现有功能的情况,确保其仍然适用且与现代教学实践相一致。 出于这种考虑,NetSupport School 11 版提供了大量的新功能和增强的功能以及性能的改进,并扩大对新兴技术的支持,所有这些全都打包在一个新颖美观的用户界面里。 问答模块 新的问答模块提供了一组简单而引人注目的工具,可促进课堂上对学习的积极评估。它让教师能够加强和巩固教学要点,即时估量学生在课堂上的理解 采用“游戏节目”的方法,教师可以快速向班级提出口头问题,允许根据回答速度、以小组方式或随机地选择学生。可以对个人或在适当情况下对小组给分并加以跟踪 此功能的核心是能够迅速而有效地提供同学间互评和对学生个别评价,同时还向课堂引入的新提问方式,如“传球式”提问法。 抢答模式。 输入答案模式。 随机选择模式。 能够随机地将学生分成小组。 能够指定小组数量。 能够根据团组名/颜色创建小组。 能够将问题“传递”给下一个学生。 能够设置学生回答问题前的思考时间。 能够设置学生回答问题的时间限制。 能够将回答正确的学生从下一轮中排除。 能够将回答不正确的学生从下一轮中排除。 可选择同学间互评。 能够对整个小组或学生个人给分。 可选择回答不正确扣分。 Version 11 版引入了一个新组件,可从 Apple iTunes 和 Google Play 应用程序商店免费下载。 NetSupport 教师助理应用程序是传统桌面教师端应用程序的延伸,可在您现有的 NetSupport 管理的教室环境中使用,为教师提供了在 ICT 教学区周围更好的移动性,助教利用这一理想工具可以帮助监督学生进度。 兼容 iPad、iPod、iPhone、Android 平板电脑和智能手机,在某一设备上安装后,该应用程序可与 NetSupport 桌面教师端软件配合,使教师能够自由地在教室周围走动,有助于保持主要控制功能和监视所有学生工作站。 平板电脑上支持的功能: 支持 Android 和 iPad 平板电脑。 查看学生缩略图。 向学生发送预设的消息。 阻止受限制的网站。 设定许可的网站。 阻止所有 Internet 访问。 锁定/解锁学生电脑。 注销学生电脑。 学生屏幕遮蔽/撤消遮蔽。 限制学生打印。 设定许可的应用程序。 阻止受限制的应用程序。 选择学生群组。 详情视图。 查看学生“请求帮助”通知。 对学生缩放。 按姓名/教师顺序对学生排序。 查看当前应用程序。 查看当前网站。 设置连接密码。 显示当前所连接教师助理数量的教师端徽章。 智能手机上支持的功能: 支持 Android 和 Apple iOS 智能手机。 向学生发送预设的消息。 阻止受限制的网站。 设定许可的网站。 阻止所有 Internet 访问。 锁定/解锁学生电脑。 注销学生电脑。 学生屏幕遮蔽/撤消遮蔽。 限制学生打印。 设定许可的应用程序。 阻止受限制的应用程序。 设置连接密码。 网络管理员控制台 11 版对网络管理员控制台实现了一系列重大增强,主要围绕两个关键功能领域。首先是安全策略,对所有 PC可以按照预先定义的一组策略进行检查,即时识别未启用杀毒软件、Windows 更新或 Internet 防护的电脑。 其次是策略管理工具,利用该工具可在全学校范围内永久地定义和实施NetSupport 限制。 当前,教室管理解决方案在课程持续期间实行使用控制,一旦教师 PC 断开连接,这些限制随即停止。在 NetSupport School 11 中,这些限制采用集中方式实施,一天 24 小时有效。在某一课程进行中,可通过教师特定设置覆盖这些限制。 网络管理员控制台的新功能和增强功能包括: 查看/设置学生和教师的电源管理策略。 查看/设置学生和教师的 Windows 更新策略。 查看/设置学生和教师的用户访问控制策略。 查看学生和教师的杀毒软件状态。 查
3.25MB
小蜜蜂商务网站门户系统3.0
2009-03-06V3.0 Build 080102 释放时间:08.01.02 10:04 更新说明: 1)新架构引入节点概念进行模块高级组合部署,以前的模块即可以独立部署,也可以一个节点下部署多个模块混合使用,实现一个节点频道需要多种内容模型组成的特殊应用; 2)重新设计研发会员中心,新的会员中心比以往版本更灵活,可以部署到前台使用。同时优化会员中心程序降低系统负载; 3)重新设计研发会员类型,管理员将可以无限自定义会员类别及类别所需要的特殊属性; 4)完善会员积分功能; 5)完善会员组功能,每种会员组可以划分权限到某节点或者模块; 6)改善优化了模块安装; 7)优化安装程序,支持多种字符集安装; BBWPS系统功能介绍: 1、真正意义的平台系统 BBWPS平台做为整个系统核心,可无限扩展/接纳平台功能及应用模块功能;平台与应用模块完全分离,给您充分的自我管理权限。 支持跨操作系统(如Windows、Linux、FreeBSD、Solaris等)部署,推荐使用FreeBSD/Linux+PHP+Mysql环境,既能拥有高效的系统级功能,又无需承担购买底层系统费用,更无底层系统软件版权纠纷。 2、应用模块“随需安装” 基于BBWPS平台领先的设计理念和技术优势,独家做到任何一个应用模块与系统平台完全分离,您可根据自己的需要选择安装应用模块,开创应用模块“随需安装”新体验;干净的平台让您无需为多余不用的模块烦恼,多达30余个官方开发的应用模块供您部署,同时将开放系统平台接口,支持第三方伙伴开发的功能模块部署使用。 各模块均支持设置独立域名访问,支持模块复制,且2.0版本以后的平台不再需要修改模块配置文件即可完成模块复制安装。 3、高负载性能 1)系统级高级设计 BBWPS系统除支持一台服务器/空间安装所有模块的原始部署,更创新开发系统平台与应用模块分布式和嵌套式两种高级部署;您可用多个服务器联合部署BBWPS系统,大幅度提升系统负载性能,。若一个系统不具有分步式部署功能,可承载的访问量根本不足以做门户级网站应用。无论是集中部署、分步式还是嵌套式部署,依然只需要一个管理后台即可管理所有模块。 2)数据库级高级设计 自BBWPS系统第一版发布起,各应用模块就采用了独立数据表设计;该设计方法能极大的提升数据库的响应效率,35万条数据、大小达到460M的单张数据表,依然保持高速的查询响应。 3)程序级高级设计 自BBWPS系统第一版发布起,各应用模块就设计了高速缓冲系统;通过该缓冲系统,大幅度减少数据库的频繁请求,稳定、快速的支持系统对外提供高速访问服务。 4、数据通讯 BBWPS系统支持平台与应用模块、各应用模块之间彼此进行高速数据通讯,达到数据交换功能;比如网站首页自定义提取各应用模块数据、应用模块页面显示其他模块信息等,其数据交换能力及效率远非目前采用JS脚本做数据通讯的方式可比。 各模块交换数据以后,可自定义模版控制显示效果,而不受数据原始模块模版控制,满足自由交换自由显示。 5、安全机制 1)通讯安全 BBWPS系统自2.0版本起,完全自己设计安全校验机制,不采用PHP程序自身的安全校验功能;管理员可设置通讯密钥,结合随机N次加密,达到每个BBWPS系统安装后的通讯机制都是唯一的。只要修改默认通信密钥,官方也无法破解您网站的通讯控制信息。 2)灵活的验证码功能 系统自动支持普通阿拉伯数字和图片数字2种方式的验证码机制,如果使用图片数字验证码功能,您还可以自己设计数字图片,以和官方标准程序有所区别。进一步提高验证码破解难度,防止外部软件恶意注册/登录。 验证码图片目录位于:bbwps目录/function/img/,文件:0.gif~9.gif,图片大小:建议不超过18*25像素。 3)支持修改管理后台地址,只有“自己人”知道后台管理入口。 6、强大的会员系统 1)支持自定义会员类别功能,如您可以定义会员类别为个人、商户、中介等类别;用户注册以后所选择类别自动与相应会员组关联获取该会员组权限。 会员类别数量无限制。 2)首创智能无级虚拟会员组功能,管理员只需要在系统平台定义会员组,可自动识别各应用模块的子会员组设置,进行组合设置。例如文章模块有特权会员:WZVIP1和WZVIP2,分类信息模块有特权会员:FLVIP1,房产模块有特权会员;FCVIP1,管理员可设置系统平台会员组VIP1组合WZVIP1、FLVIP1特权,VIP2组合WZVIP2、FCVIP1特权,达到不同的会员组可拥有多个模块下不同的特权会员功能。同时会员管理更方便,管理员无需到各模块下管理特权会员,只需在系统平台管理即可。 平台会员组数量无限制。 本特色功能在第三方伙伴开发模块时可大量降低会员功能方面的开发时间。 3)自带通行证功能,任何应用模块安装以后能非常方便的继承平台会员信息,充分保证您网站任何阶段拥有的会员信息不被浪费;完美整合Discuz!、PHPWind论坛,会员采取注册实时同步方式;保证后续取消整合功能后会员数据不受任何一方系统约束; 通行证支持跨域名,会员在任何一个模块域名下登录后,所有模块均接收/认可该会员登录状态;无论模块是集中安装还是分布式多域名安装均完美支持。 4)支持站内短消息 系统后台可设置:是否开启站内短消息功能、信箱容量、语音提示次数及声音类别 系统后台可向会员群发短消息 会员前台可设置好友认证方式、资料查看授权 会员前台可向好友、陌生会员ID发送短消息,提供草稿箱、发件箱、垃圾箱消息管理,提供消息发送后状态跟踪,提供通讯录/黑名单管理 5)支持会员邮件群发 BBWPS系统利用SMTP功能外发邮件,支持邮件群发,支持读取外部地址列表群发邮件;同时BBWPS提供读取外部会员数据库自动产生地址列表功能。 7、支持会员积分功能,可与第三方在线支付系统接口;提供虚拟银行系统,支持虚拟充值卡购卡/充值业务。 8、强大的广告发布/管理系统,支持代码、文字、图片、Flash 4种类型;通过定义广告标签即可将广告显示到网站任何页面/位置。 9、支持网站首页自定义,允许设置网站首页地址为系统大首页、各模块首页,或自定义URL地址/页面;提供全站Google地图生成。 10、支持网站流量统计。 ---------- 其他30余个应用模块请查看各自模块功能介绍 ---------- 安装使用: 安装其他应用模块,必须先装平台系统;请对照安装说明完成安装。
6.16MB
C#微软培训教材(高清PDF)
2009-07-30C#--微软.NET的第一语言 本书着重介绍语言本身,比较少涉及应用,不错的入门书,从头讲起,不怕不明白。 <<page 1>> page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术表达式.59 7.3 赋值操作符和赋值表达式.64 7.4 关系操作符和关系表达式.65 <<page 2>> page begin==================== 7.5 逻辑操作符和逻辑表达式.68 7.6 位 运 算 .69 7.7 其它特殊操作符 .72 7.8 小 结 .77 第八章 流 程 控 制 .79 8.1 条 件 语 句 .79 8.2 循 环 语 句 .86 8.3 条 件 编 译.90 8.4 异常处理语句 .95 8.5 小 结 .100 第三部分 面向对象的 C#.101 第九章 面向对象的程序设计 .101 9.1 面向对象的基本概念.101 9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计 .107 9.5 小 结 .110 第十章 类 .112 10.1 类 的 声 明 .112 10.2 类 的 成 员 .113 10.3 构造函数和析构函数 .119 10.4 小 结 .122 第十一章 方 法 .124 11.1 方法的声明.124 11.2 方法中的参数.125 11.3 静态和非静态的方法.129 11.4 方法的重载.130 11.5 操作符重载.134 11.6 小 结.137 第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146 第十三章 事件和索引指示器 .148 13.1 事 件 .148 13.2 索引指示器 .151 13.3 小 结 .154 第十四章 继 承 .155 14.1 C#的继承机制.155 <<page 3>> page begin==================== 14.2 多 态 性 .159 14.3 抽象与密封 .163 14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 15.5 抽象类与接口 .195 15.6 小 结 .196 第十六章 组织应用程序 .198 16.1 基 本 概 念 .198 16.2 使用名字空间 .200 16.3 使用指示符 .203 16.4 程 序 示 例 .206 16.5 小 结 .213 第十七章 文 件 操 作 .215 17.1 .Net 框架结构提供的 I/O 方式 .215 17.2 文件存储管理 .217 17.3 读 写 文 件 .222 17.4 异步文件操作 .227 17.5 小 结 .234 第十八章 高 级 话 题 .235 18.1 注册表编程 .235 18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间成员速查.269 参 考 资 料 .300 <<page 4>> page begin==================== 第一部分 C#语言概述 第一章 第一章第一章 第一章 .NET 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目标就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 Microsoft.NET(以下简称.NET) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 Microsoft.NET 的认同 并且开发出其他基于 Internet 的服务 那么 你是否想知道 究竟什么是.NET? 请听听微软官员的声音 因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 它定义了一种公用语言子集 Common Language Subset CLS ,这是一种为符合其规范的语言与类库之间提供无缝集成的混合语 .NET 统一了编程类库 提供了对下一代网络通信标准 可扩展标记语言 Extensible Markup <<page 5>> page begin==================== Language XML 的完全支持 使应用程序的开发变得更容易 更简单 Microsoft.NET 计划还将实现人机交互方面的革命 微软将在其软件中添加手写和语音识别的功能 让人们能够与计算机进行更好的交流 并在此基础上继续扩展功能 增加对各种用户 终端的支持能力 最为重要的 .NET 将改变因特网的行为方式 软件将变成为服务 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 Microsoft.NET 彻底改变软件的开发方式 发行方式 使用方式等等 并且 不止是针对微软一家 而是面向所有开发商与运营商 .NET 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 1.1.2 我们为什么需要.NET 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 Microsoft.NET 提高软件开发生产效率 并且试图使应用软件的发布更为容易 再也不想因为 DLL 版本不同而烦恼 希望不用重新启动电脑就能够安装应用软件 改进用户界面 并能支持多种用户终端 用户界面演进的结果包括两方面的内容 一是完成传统的 PC 界面与基于 XML 的浏览器界面间的过渡 二是对自然语言和语音 识别的支持 从而使用户与各种终端之间的沟通更加透明 真正达到网络互连的 3A Anywhere Anytime Any device 今天 许多的人时常问 除了上网看新闻 我们究竟还能干什么 这是因为今 天的互联网与旧式的大型计算机的工作模式还有许多相似之处 信息被储存在中央服 务器内 而用户的所有操作都要依靠它们 让不同的网址之间相互传递有意义的信息 或者合作提供更广泛和更深层次的服务 还是一件十分困难的事 现代人时常有一种困惑 感觉到如今生活在技术与机器架构的丛林中 我们在努 力地去适应机器 适应技术 而不是机器和技术适应人类 科技以人为本还只是一个 美好的愿望 这是因为我们还不能将控制信息的权利交给那些需要信息的人们 .NET <<page 6>> page begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 1.1.3 .NET 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 Passport.NET 用于用户认 证 以及用于文件存储的服务 用户首选项管理 日历管理以及众多的其它任务 构建和管理新一代服务的基本结构和工具 包括 Visual Studio.NET .NET 企 业服务器 .Net Framework 和 Windows.NET 能够启用新型智能互联网设备的.NET 设备软件 .NET 用户体验 1.2 .NET 与 C# 1.2.1 支持多种编程语言的.NET 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <<page 7>> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms ADO.NET 和 ASP.NET 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种 类语言间的无缝集成 1.2.2 面向.Net 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <<page 8>> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 1.3 C#语言的特点 C#在带来对应用程序的快速开发能力的同时 并没有牺牲 C 与 C++程序员所关心 的各种特性 它忠实地继承了 C 和 C++的优点 如果你对 C 或 C++有所了解 你会发 现它是那样的熟悉 即使你是一位新手 C#也不会给你带来任何其它的麻烦 快速应 用程序开发 Rapid Application Development RAD 的思想与简洁的语法将会使你迅 速成为一名熟练的开发人员 正如前文所述 C#是专门为.NET 应用而开发出的语言 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 1.3.1 简洁的语法 请原谅 虽然我们一再强调学习本书不需要任何的编程基础 但在这里还不得不 提到 C++ 在缺省的情况下 C#的代码在.NET 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 C#只支持一个 . 对 <<page 9>> page begin==================== 于我们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活动模板库 Active Template Library ALT 和 COM 搞 得 乱 糟 糟 的 伪 关 键 字 , 如 OLE_COLOR BOOL VARIANT_BOOL DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常见的问题 比如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简化 只保留了常见的形式 而别的冗余形式从它的语法 结构中被清除了出去 1.3.2 精心地面向对象设计 也许你会说 从 Smaltalk 开始 面向对象的话题就始终缠绕着任何一种现代程序 设计语言 的确 C#具有面向对象的语言所应有的一切特性 封装 继承与多态 这 并不出奇 然而 通过精心地面向对象设计 从高级商业对象到系统级应用 C#是建 造广泛组件的绝对选择 在 C#的类型系统中 每种类型都可以看作一个对象 C#提供了一个叫做装箱 boxing 与拆箱 unboxing 的机制来完成这种操作 而不给使用者带来麻烦 这在 以后的章节中将进行更为详细的介绍 C#只允许单继承 即一个类不会有多个基类 从而避免了类型定义的混乱 在后 面的学习中你很快会发现 C#中没有了全局函数 没有了全局变量 也没有了全局常 数 一切的一切 都必须封装在一个类之中 你的代码将具有更好的可读性 并且减 少了发生命名冲突的可能 整个 C#的类模型是建立在.NET 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 1.3.3 与 Web 的紧密结合 .NET 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <<page 10>> page begin==================== 效地处理各种数据 1.3.4 完全的安全性与错误处理 语言的安全性与错误处理能力 是衡量一种语言是否优秀的重要依据 任何人都 会犯错误 即使是最熟练的程序员也不例外 忘记变量的初始化 对不属于自己管理 范围的内存空间进行修改 这些错误常常产生难以预见的后果 一旦这样的软 件被投入使用 寻找与改正这些简单错误的代价将会是让人无法承受的 C#的先进设 计思想可以消除软件开发中的许多常见错误 并提供了包括类型安全在内的完整的安 全性能 为了减少开发中的错误 C#会帮助开发者通过更少的代码完成相同的功能 这不但减轻了编程人员的工作量 同时更有效地避免了错误发生 .NET 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 1.3.5 版本处理技术 C#提供内置的版本支持来减少开发费用 使用 C#将会使开发人员更加轻易地开发 和维护各种商业应用 升级软件系统中的组件 模块 是一件容易产生错误的工作 在代码修改过程中 可能对现存的软件产生影响 很有可能导致程序的崩溃 为了帮助开发人员处理这些 问题 C#在语言中内置了版本控制功能 例如 函数重载必须被显式地声明 而不会 像在 C++或 Java 中经常发生的那样不经意地被进行 这可以防止代码级错误和保留版 本化的特性 另一个相关的特性是接口和接口继承的支持 这些特性可以保证复杂的 软件可以被方便地开发和升级 1.3.6 灵活性和兼容性 在简化语法的同时 C#并没有失去灵活性 尽管它不是一种无限制的语言 比如 它不能用来开发硬件驱动程序 在默认的状态下没有指针等等 但是 在学习过程中 你将发现 它仍然是那样的灵巧 如果需要 C#允许你将某些类或者类的某些方法声明为非安全的 这样一来 你 <<page 11>> page begin==================== 将能够使用指针 结构和静态数组 并且调用这些非安全的代码不会带来任何其它的 问题 此外 它还提供了一个另外的东西 这样的称呼多少有些不敬 来模拟指针的 功能 delegates 代表 再举一个例子 C#不支持类的多继承 但是通过对接口的 继承 你将获得这一功能 下面谈谈兼容性 正是由于其灵活性 C#允许与 C 风格的需要传递指针型参数的 API 进行交互操作 DLL 的任何入口点都可以在程序中进行访问 C#遵守.NET 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 1.4 小 结 Microsoft.NET 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们 但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 <<page 12>> page begin==================== 第二章 运行环境 全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它没有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想真正掌握 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 2.1 .NET 结构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍 2.1.1 虚拟对象系统 .NET 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的数据类型在不同的语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上 屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <<page 13>> page begin==================== 2.1.2 元数据 元数据是对 VOS 中类型描述代码的一种称呼 在编译程序将源代码转换成为中间 代码时 它将自动生成 并与编译后的源代码共同包含在二进制代码文件中 元数据 携带了源代码中类型信息的描述 这在一定程度上解决了版本问题 程序使用的类型 描述与其自身绑定在一起 在 CLR 定位与装载类型时 系统通过读取并解析元数据来获得应用程序中的类型 信息 JIT 编译器获得加载的类型信息后 将中间语言代码翻译成为本地代码 在此基 础上根据程序或用户要求建立类型的实例 由于整个过程中 CLR 始终根据元数据建 立并管理对应特定应用程序的类型 从而保证了类型安全性 此外 元数据在解决方法的调用 建立运行期上下文界限等方面都有着自己的作 用 而关于元数据的一切都由.NET 在后台完成 2.1.3 公用语言规范 公用语言规范 Common Language Specification CLS 是 CLR 定义的语言特性 集合 主要用来解决互操作问题 如果一个类库遵守 CLS 那么同样遵守 CLS 规范的 其它编程语言将能够使用它的外部可见项 详细的内容见本章第二节 2.1.4 虚拟执行系统 虚拟执行系统 Visual Execution System VES 是 VOS 的实现 它用来驱动运行 环境 元数据的生成与使用 公用语言规范的满足性检查以及应用程序执行过程中的 内存管理均由它来完成 具体说来 VES 主要完成以下功能 装入中间代码 使用 JIT 将中间代码转换为本地码 装入元数据 代码管理服务 包括垃圾收集器和异常处理 定制与调试服务 线程和环境管理 2.2 公用语言运行时环境与公用语言规范 了解了.NET 的结构之后 我们该看看.NET 利用其结构为我们创造的运行环境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 <<page 14>> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 2.2.1 理解 CLR .NET 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 并使 得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种元数据 它将提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用变得更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以在另一种不同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语言的集成之所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言规范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决于你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB 语言比以前具有更多的面向对象的特性 <<page 15>> page begin==================== 2.2.2 可操控执行的含义 前面的叙述中 我们多次提到了 可操控 这一概念 这意味着它指向的对象在 执行过程中完全被运行时环境所控制 在执行过程中 运行时环境提供以下服务 自 动内存管理 调试支持 增强的安全性及与非可操控代码的互操作性 例如 COM 组件 在可控执行进程中的第一步是选择源代码的生成工具 如果你希望你的应用拥有 CLR 提供的优势 你必须使用一种 或多种 以运行时为目标的语言编译器 例如 VB C# VC 的编译器 或者一种第三方编译器如 PERL 或 COBOL 编译器 由于运行时是一种多语言执行环境 它支持众多的数据类型和语言特性 你使用 的语言编译器决定你将使用运行时的哪一部分功能子集 在代码中使用的语法由你的 编译器决定 而不是运行时环境 如果你的组件需要被其他语言的组件完全使用 那 么你必须在你组件的输出类型中使用 CLR 所要求的语言特征 当你完成并编译你的代码时 编译器将它转换为微软中间语言 Microsoft Intermediate Language MSIL 同时产生元数据 当你要执行你的代码时 这种中间 语言被即时 Just In Time JIT 编译器编译成为本地代码 如果安全策略需要的代码 是类型安全的 通常情况下都是如此 JIT 编译器将在编译进程中对中间语言进行 类型检查 一旦失败 在代码执行中将会触发异常 2.2.3 CLR 的突出特色 跨语言集成的能力 CLR 包含了一个丰富的语言特性集 保证了它与各种程序设计语言的兼容性 这 一特性集即公用语言规范 稍后将对其进行详细说明 内存管理自动化 在执行过程中管理应用程序的资源是一项单调而困难的工作 它会将你的注意力 从你本应解决的问题中引开 而垃圾收集机制完全解决了程序员在编程过程中头痛的 问题 跟踪内存的使用 并知道何时将它们释放 在面向对象的环境中 每种类型都标识了对你的应用有用的某种资源 为了使用 这些资源 你需要为类型分配内存 在应用中 访问一种资源要通过以下步骤 1 为类型分配内存 2 初始化内存 设置资源的初始状态并使其可用 3 通过访问该类型的实例成员来访问资源 4 卸下将被清除的资源状态 5 释放内存 这一看似简单的过程在实际的编程中是产生程序错误的主要来源之一 更可怕的 是 内存中的错误往往导致不可预见的结果 如果你有过编程的经验 想想看 有多 少次你的程序因为内存访问错误而崩溃 CLR 要求所有的资源从可操控的堆 注 在此指一种内存结构 中分配 当一个 <<page 16>> page begin==================== 进程被初始化后 CLR 保留了一个未被分配的地址空间 这一区域叫做可操控堆 在 堆中保持了指向下一个将被分配给对象的堆地址的指针 NEXT 初始状态下 该指 针是保留地址空间的基地址 一个应用使用新的操作产生对象 此操作首先检查新对 象需要字节的大小是否会超出保留空间 如果对象大小合适 指向下一个地址的指针 将指向堆中的这个对象 该对象的构造器被调用 新的操作返回对象的地址 当一个应用请求建立一个对象时 地址空间可能不够大 堆将发现这一点 通过 将新对象的大小与 NEXT 指针相加 并与堆的大小进行比较 这时垃圾收集器就将被 调用 在这里 CLR 引入了 代 的概念 代 指堆中对象产生的先后 这样 垃圾 收集器在将发生溢出时回收属于特定的 代 的对象 而不是回收堆中的所有对象 6 即时编译 在各种语言的编译器对源代码进行编译之后 在 CLR 环境中产生的是中间代码 出 于兼容性与跨语言集成的考虑 其内容虽然有效 但在转化为本地代码之前它本身是 不可执行的 这就是 JIT 编译器需要完成的工作 这里需要说明一个问题 为什么要即时编译 而不是一次性的将中间代码文件进 行编译 答案很简单 原因在于效率 在大型的应用中 你很少会用到程序的全部功 能 这种边执行边编译的措施比一次性的完全编译效率更高 在 Windows 平台中 CLR 带有三个不同的 JIT 编译器 7 缺省的编译器 主编译器 由它进行数据流分析并输出经过优化的本地代 码 所有的中间代码指令均可被它处理 8 PREJIT 它建立在主 JIT 编译器之上 其运行方式更像一个传统的编译器 每当一个.NET 组件被安装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管理 JIT 的应用程序 jitman.exe 具体的使用参见联机帮助 10 解决版本与发布问题 在当前以组件为基础的系统中 开发人员和用户对于软件版本和发布中存在的问 题已经十分熟悉了 当我们安装一个新的应用之后 我们很可能发现原本正常的某个 应用程序奇怪地停止了工作 绝大多数开发人员将时间花在了确保所有注册表入口的 一致性 以便激活 COM 类上 这就是所谓的 DLL 地狱 .NET 平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内部清单 元数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被多个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <<page 17>> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应用或管理员在明确说明的版本政策下重写集合的版本信息 2.2.4 公用语言规范 使被不同语言的编译器所编译的对象能够相互理解的唯一方法 是所有在互操作 过程中涉及的数据类型和语言特性对所有的语言来说是公共的 为了这个目的 公用 运行时环境标识了一组语言特征的集合 称为公用语言规范 CLS 如果你的组件在 应用程序接口 Application Program Interface 中仅使用 CLS 的特征语言 包括子类 那么该组件能够被任何支持CLS的语言所编译的组件访问 所有支持CLS并仅使用CLS 中的语言特征的组件被称为符合 CLS 的组件 设计公用语言规范时遇到的一个最主要的挑战是选择适当的语言特性子集的大 小 它应具有完全的表达能力 又应足够小 使得所有的语言能够容纳它 由于 CLS 是关于语言互用性的规范 它的规则仅应用于外部可见的条目中 CLS 假设语言间的 互操作性仅在语言集合的边界发生交叉时才是重要的 也就是说 在单一的语言集中 对于编程技术的使用没有任何限制 CLS 的规则仅作用于在定义它们的语言集合之外 仍然可见的项上 这样就大大缩小了 CLS 的范围 减轻了系统的负担 在 CLS 中是用 System.CLSCompliantAtribute 类来标识一个集合或者类是否是符合 CLS 规范的 在 System.CLSCompliantAtribute 的构造器中有一个 Boolean 型的返回值 代表了与之相关联的项是否符合 CLS 规范 2.3 开 发 工 具 .NET 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 才 变得如此强大 1. Visual Studio.NET 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# 2. Assembly Generation Utility (al.exe) 用来建立集合的工具 它能够将资源文件 或 MSIL 格式的文件转换为带有内容清单的集合 3. Windows Forms ActiveX Control Importer (aximp.exe) 完成 COM 类库中类型定 义的转换 使 ActiveX 控件能够在 Windows 窗口控件上使用 4. Code Access Security Policy Utility (caspol.exe) 在用户与机器水平上修改安全策 略 <<page 18>> page begin==================== 5. Software Publisher Certificate Test Utility (Cert2spc.exe) 用于从 X.509 证书中生 成软件出版证明书 SPC 6. Certificate Manager Utility (certmgr.exe) 管理证书 证书信任列表和证书回收列 表 7. Certificate Verification Utility (chktrust.exe) 检查证书签名的合法性 8. Runtime Debugger (cordbg.exe) 运行时调试器 是一个命令行程序 帮助开发 人员发现和调试基于 CLR 的应用程序中的错误 9. Global Assembly Cache Utility (gacutil.exe) 允许你浏览与操纵全局集合缓存中 内容的命令行程序 10. MSIL Assembler (ilasm.exe) MSIL 汇编程序 协助设计与实现 MSIL 生成器的 程序 11. MSIL Disassembler (ildasm.exe) MSIL 反汇编程序 与 ilasm.exe 共同使用 将 由 MSIL 代码产生的 Portable Executable 文件转换为文本文件 12. Instaler Utility (instalutil.exe) 用来安装与卸载服务资源 13. License Compiler (lc.exe) 产生可包含在可执行二进制文件中的二进制资源文 件 14. Certificate Creation Utility (makecert.exe) 生成 X.509 证书与用于数字签名的公 用与私有密钥 15. Permissions View Utility(permview.exe) 通过一个集合浏览许可集的工具 16. Peverify Utility(peverify.exe) 检查中间语言与元数据是否符合类型安全认证要 求 17. Assembly Registration Tool(RegAsm.exe) 读取集合中的元数据并加上必要注册 表入口信息 使得 COM 客户透明地建立 CLR 的类 18. Services Registration Tool (RegSvcs.exe) 服务注册工具 它完成执行以下功能 装载与注册一个集合 为现有的 COM+1.0 应用生成 注册与安装类库 19. Resource File Generator Utility(ResGen.exe) 资源文件生成器 用来将文本文件 和 XML 格式的资源文件转换为 CLR 的二进制文件 20. Secutil Utility(SecUtil.exe) 使得从集合中抽取的安全信息更加容易 21. Set Registry Utility(setreg.exe) 改变注册表中公开密钥密码系统的设置 22. Assembly Cache Viewer(shfusion.dl) 允许你使用 Windows 浏览器察看与操作 全局集合缓存中的内容 23. File Signing Utility(signcode.exe) 为 PE (portable executable)文件做标记 赋予 程序员在组件安全约束的基础上对安全性有更多的控制权 24. Shared Name Utility(Sn.exe) 帮助程序员以共享名称建立集合 25. Soapsuds Utility(SoapSuds.exe) 使用远程技术帮助你编译与 Web 服务相通信的 客户应用 26. Isolated Storage Utility(storeadm.exe) 一种用来管理隔离存储区的命令行工具 27. Type Library Exporter(TlbExp.exe) 命令行程序 生成由集合名称指示的包含集 合中公共类型定义的类库 <<page 19>> page begin==================== 28. Type Library Importer (TlbImp.exe) 将 COM 类库中的类型定义转换为在 CLR 中与元数据格式一致的类型定义 29. Web Service Utility(WebServiceUtil.exe) 帮助建立 ASP.NET Web 服务与客户 30. Windows Forms Class Viewer(wincv.exe) 能够在某种查找模式下快速查找类或 者类序列的信息 31. Windows Forms Designer Test Container(windes.exe) 允许开发人员测试开发出 的视窗窗体控件在设计时的行为 32. XML Schema Definition Tool(xsd.exe) XML 计划定义工具 2.4 小 结 本章解释了与.NET 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 1 .NET 的结构由哪四部分组成 2 请简要总结 CLR 的作用 3 可操控执行 的含义是什么 4 .NET 是怎样解决传统 Windows 程序设计中 DLL 的版本问题的 5 什么是 CLS 它的范围是怎样确定的 <<page 20>> page begin==================== 第三章 编写第一个应用程序 介绍了 C#语言的这么多优点 您可能已经有些不耐烦了 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对 书中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 3.1 Welcome 程序 可以这么说 与用户没有任何交互的应用程序根本没有任何用处 病毒和黑客当 然除外 然而即使是病毒程序的作者 也常常喜欢在自己得逞之后炫耀一番 学习任 何一门语言 绝大多数情况下人们都是从输入输出开始的 第一个程序总是非常简单的 我们让用户通过键盘输入自己的名字 然后程序在 屏幕上打印一条欢迎信息 程序的代码是这样的 程 程序 序清 清单单 3-1 using System; class Welcome { static void Main() { Console.WriteLine("Please enter your name:"); Console.ReadLine(); Console.WriteLine("Welcome to you!"); } } 您可以在任意一种编辑软件中完成上述代码的编写 然后把文件存盘 文件名叫 做 Welcome.cs 典型的 C#源文件通常都是以 .cs 作为文件的扩展名 3.2 代 码 分 析 首先要提出的是 C#语言是大小写敏感的 这一点对于 C 和 C++程序员没什么问 <<page 21>> page begin==================== 题 只是要提醒一下 VB 和 Delphi 的程序员 接下来让我为您逐条地分析上面的 C#程序语句 3.2.1 名字空间 using System 表示导入名字空间 高级语言总是依赖于许多系统预定义的元素 如果 您是 C 或 C++的程序员 那么您一定对使用#include 之类的语句来导入其它 C 或 C++ 源文件再熟悉不过了 C#中的含义与此类似 用于导入预定义的元素 这样在自己的 程序中就可以自由地使用这些元素 如果没有导入名字空间的话 我们该怎么办呢 程序还能保持正确吗 答案是肯 定的 那样的话 我们就必须把代码改写成下面的样子 程 程序 序清 清单 单 3-2 class Welcome { static void Main() { System.Console.WriteLine("Please enter your name:"); System.Console.ReadLine(); System.Console.WriteLine("Welcome to you!"); } } 也就是说 在每个 Console 前加上一个前缀 System. 这个小原点 . 表示 Console 是作为 System 的成员而存在的 C#中抛弃了 C 和 C++中繁杂且极易出错的操作符像 : 和 -> 等 C#中的复合名字一律通过 . 来连接 System 是.Net 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 够了 3.2.2 类和类的方法 让我们从写第一个程序时就记住 每个东西都必须属于一个类 如果您是 C 或 C++ 的程序员 请暂时忘掉那些全局变量 在程序的第二行 class Welcome 声明了一个类 类的名字叫做 Welcome 这个程 序为我们所作的事情就是依靠它来完成的 和 C C++中一样 源代码块被包含在一对大括号 { 和 } 中 每一个右括号 } 总是和它前面离它最近的一个左括号 { 相配套 如果左括号 { 和右括号 } 没有全部配套 那程序就是一个错误的程序 static void Main()表示类 Welcome 中的一个方法 方法总是为我们完成某件工作的 注意 在 C#程序中 程序的执行总是从 Main()方法开始的 一个程序中不允许出 <<page 22>> page begin==================== 现两个或两个以上的 Main()方法 对于习惯了写 C 控制台程序的读者 请牢记 C#中 Main()方法必须被包含在一个类中 3.2.3 程序的输入和输出 程序所完成的输入输出功能都是通过 Console 来完成的 Console 究竟是什么呢 它是在名字空间中 System 已经为我们定义好的一个类 这里我们不用管它是怎么完成 工作的 只要使用它就可以了 上面的代码中 类 Console 为我们展现了两个最基本的方法 WriteLine 和 ReadLine Console.ReadLine 表示接受输入设备输入 Console. WriteLine 则用于在输出设备上输 出 我们再为读者介绍 Console 中用于输入输出的另两个方法 Read 和 Write 它们和 ReadLine 与 WriteLine 的不同之处在于 ReadLine 和 WriteLine 执行时相当在显示时多 加了一个回车键 而使用 Read 和 Write 时则光标不会自动转移到下一行 让我们再对例子程序进行扩展 使得用户的输入对输出产生作用 程 程序序清 清单 单 3-3 using System; class Welcome { static void Main() { Console.WriteLine("Please enter your name:"); string name = Console.ReadLine(); Console.WriteLine("Welcome to you,{0}!",name); } } 我们用到了 string name = Console.ReadLine()这条语句 其中 string name 表示声明一 个字符串类型的变量 name 系统定义的 Console 类提供的方法 ReadLine()的返回值类型 为 string 所以 这句话表示从输入设备读取一个字符串 并把读取的值赋予变量 name 再来看一下程序的最后一条输出语句 Console.WriteLine("Welcome to you,{0}!",name); 这条语句表示在屏幕上对输出的字符串进行格式化 其中表示用方法的第二个参 数来替代格式化后字符串相应的位置 对字符串进行格式化的参数可以是一个字符串 也可以是一个字符 或者是一个整数 等等 采用这种方式最多可以格式化三个变量 比如 int x = 3; string name1 = “Mike”; <<page 23>> page begin==================== string name2 = “John”; Console.WriteLine("Welcome to you {0} times,{1} and {2}!",x,name1,name2); 和绝大多数编程语言一样 C#提供了字符串类型 string 它与 C 中的 MFC 为我们 提供的类十分类似 C#中的 string 类型是一个引用类型 引用类型在第四章中我们有 详细说明 为标准字符集 利用 string 可以方便地对字符串进行连接 截断等操作 比如 string s = “Good” + “Morning”; char x = s[3]; 例子演示了字符串 s 由两个字符串 Good 和 Morning 相加得到 字符串还可 以通过下标进行索引 得到一个字符 上面的例子中字符 x 的值为 o 所以 源程序 3-4 和源程序 3-3 的作用没什么区别 程 程序 序清 清单 单 3-4 using System; class Welcome { static void Main() { Console.WriteLine("Please enter your name:"); string message = “Welcome to you “ + Console.ReadLine(); Console.WriteLine(mesage); } } 3.3 运 行 程 序 理解了源程序中每条代码的具体含义之后 下一步要做的就是让这个程序真正能 够运行 不过对源代码即使还有不明白的地方也没有关系 在后续章节的学习中 您 最终会熟练掌握这些概念的 如果您的电脑上安装了 Visual Studio .Net 则可以在集成开发环境 Integrated Developer Environment IDE 中直接选择快捷键或菜单命令 编译并执行源文件 如果您不具备这个条件 那么您至少需要安装 Microsoft .Net Framework SDK 这 样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的编译器 下面让我们使用这个微软提供的命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc welcome.cs <<page 24>> page begin==================== 我们假设您已经将 welcome.cs 文件保存在当前目录下 如果一切正常 welcome.cs 文件将被编译 运行 屏幕上出现一行字符 提示您输入姓名 Please enter your name: 输入任意个字符并按下回车键 屏幕将打印出欢迎信息 Welcome to you! 注意 和到目前为止我们使用过的绝大多数编译器不同 在 C#中 编译器只执行 编译这个过程 而在 C 和 C++中要经过编译和链接两个阶段 换而言之 C#源文件并不 被编译为目标文件 .obj 而是直接生成可执行文件 .exe 或动态链接库 .dll C#编译器中不需要包含链接器 编译选项 我们可以灵活地使用 .Net 平台提供的命令行编译器的不同选项 选择不同的编译 方式 从而灵活地对编译进行控制 例如 如果我们希望对源文件 Welcome.cs 进行编译 生成名为 MyWelcome.exe 的 可执行文件 我们可以采用这样的命令 csc/out: MyWelcome.exe Welcome.cs 如果我们并不需要一个可执行文件 而仅仅是希望简单地检查源文件中是否存在 语法错误 则命令可以写成 csc/nooutput: Welcome.cs 如果不知道各个选项的具体含义 可以通过求助来获得 csc/? 为方便读者 我们在表 3-1 中按字母排序的顺序列出了命令行编译器 csc 常用的参 数及其用途 更详细的信息请参阅 C#联机帮助文档 表 3-1 命令行编译器选项 选项 作用 @ 指定响应文件 /? 列出编译命令选项 /addmodule 指定一个或多个模块作为装配的一部分 /baseaddress 指定载入动态链接库的首选地址 /bugreport 生成一个报告文件 其中包含程序 Bug 的详细信息 /checked 指定算术运算的溢出是否会导致程序在运行时抛出一个异常 /codepage 指定编译的所有源文件所使用的代码页 /debug 给出调试信息 /define 定义预处理程序的符号 /doc 由文件注释生成 XML 文件 /fulpaths 指定输出的绝对路径 /help 列出编译命令选项 /incremental 允许对源文件进行递增式编译 /linkresource 在装配时链接指定的 NET 资源 <<page 25>> page begin==================== /main 指定 Main 方法所处的位置 /nologo 编译过程中不显示编译信息 /nooutput 编译源文件但不输出 /nostdlib 不导入标准库 (mscorlib.dl). 续表 选项 作用 /nowarn 编译过程中不生成警告信息 /optimize 指定编译时是否进行优化 /out 指定输出文件 /recurse 搜索子目录以寻找源文件 /reference 从包含装配的文件中导入元数据 /resource 把 NET 资源内嵌到输出文件 /target 指定输出文件的格式 /target:exe 输出文件为 exe 可执行文件 /target:library 输出文件为链接库 /target:module 输出文件为模块 /target:winexe 输出文件为 winexe 可执行文件 /unsafe 允许编译使用了不安全关键字的代码 /warn 设置警告级别 /warnaserror 把警告信息作为错误看待 /win32icon 把 .ico 图标文件插入到输出文件 /win32res 把 Win32 资源插入到输出文件 .4 添 加 注 释 应用程序并不是只要你自己一个人能看懂就够了 不管以前计算机老师或者是编 程书籍是否已经告诫过 这里我还要再一次强调 养成良好的代码注释的习惯 这是 一名优秀的程序员必备的条件之一 代码注释不会浪费您的编程时间 它只会提高您 的编程效率 使您的程序更加清晰 完整 友好 注释的方式和 ++没有区别 每一行中双斜杠 后面的内容 以及在 分割符 和 之间的内容都将被编译器忽略 这样 我们就可以采用 进行单行注释 采用分割符 和 进行多行注释 让我们对 Welcome 程序加上注释 程 程序序清 清单 单 3-5 源文件 welcome.cs / 说明 这里是我的第一个 程序 <<page 26>> page begin==================== using System; class Welcome { static void Main() { Console.WriteLine("Please enter your name:"); 要求用户输入姓名 Console.ReadLine(); 读取用户输入 Console.WriteLine("Welcome to you!"); 本行代码用于打印欢迎信息 您可以在这里添加自己的代码 程序在这里结束 } } 上面的注释似乎有些小题大做 但它毕竟说明了 中注释的使用方法 下面是对 程序进行注释时要注意的两个问题 首先 避免在 之后的单行注解中使用反斜杠符号 \ 因为反斜杠符号 \ 在 中是一个续行符 这样做往往会导致你所不希望的结果出现 例如 当你写了 类似于下面的代码 Console.WriteLine(“The result is:{0}” , / \ 150 ); 在编译这段代码时 表示逻辑上同一行剩余的所有文字被作为注释看待 而续行符 \ 则将这一行同下一行连接起来 那么第二行也被作为注释的一部分 这 时编译器找不到与第一行的左括号 相匹配的右括号 因此编译出错 其次 分割符 和 之间的注释不能有嵌套注释 这是因为 编译器从遇到第一个分割符 开始 将忽略下一个 直到遇上下
28.18MB
SecureCRT8.5破解版
2018-11-07securecrt8破解版是一款终端仿真程序,该程序可以让你在windows系统中登陆UNIX或Linux的服务器主机并实现管理设置,十分的强大。在最新的8.3版本中,软件已经可以支持包括SSH2、SSH1、Telnet、Telnet/SSH、Relogin、Serial、TAPI、RAW 在内的十几种协议的传输,并且能够支持标签化SSH对话,可以同时管理多个SSH链接,是同类软件中的佼佼者。 PS:本次小编带来的是securecrt8.5破解版,同时附带了相关的注册机,可以完美成功破解软件,另外软件安装后会附加一个SecureFX 8.3软件,请须知,详细的破解过程可以下文教程操作。 securecrt特性 1、适用于Mac和Linux 选项卡组使用选项卡组在更短的时间内完成更多功能。在标签中组织的会话之间轻松切换。或者创建临时选项卡组,以便您可以在一个选项卡中工作,同时监视另一个选项卡的命令输出。 2、UI增强功能(Mac和Linux) SecureCRT for Mac具有新的GUI。Mac和Linux版本在“会话管理器”和“连接”对话框中都有新的工具栏图标。 3、增强的串行支持 十六进制视图有助于调试串行通信。仅当配置串行会话时,会话选项对话框中显示有效的COM端口。 4、命令窗口增强 命令窗口现在可以将命令发送到选定的选项卡组或可见会话。 5、关键字突出显示改进 使用新的右键单击“添加关键字...”选项快速添加关键字。 6、增强的智能卡支持 在Mac和Linux上,在智能卡(PIV / CAC)上选择一个用于公钥认证的特定证书。支持PKCS#11证书。在所有平台上,可以直接从指定的证书中提取用户名。 7、新的公钥认证选项(Mac和Linux) 可以将证书用作原始密钥。公开密钥可以以Open SSH格式导出,也可以从PKCS#11导出。 8、SSH代理(Mac和Linux): X.509v3密钥可以添加到SSH代理。 破解教程参考地址:https://www.jb51.net/softs/571793.html
61KB
zen cart 站点地图
2014-04-19sitemap安装和配置方法: 1.把sitemapXML文件夹里的内容解压到相应的目录 , admin 是你自己后台目录地址。 2.进后台->工具->Install SQL Patches 运行, 将安装包里install install.sql文件执行或者直接到数据库上传.. 3.sitemapXML文件夹内容对应添加到相应文件夹后,请登陆后台,Configuration ——〉Sitemap XML ,然后配置你的sitemap参数 4.一般Compress XML File设置成 false ,如果设置成true,在你根目录会生成.gz 的sitemap压缩包;Generate language_id for default language 请设置成flase,如果设置成true ,生成的链接后面会跟随一个&language_id=1 或者 &language_id=2; Products changefreq 设置成 daily ,一天更新一次;其他参数依照个人的具体情况配置. 5.sitemap生成,在后台 tool ——〉Sitemap XML在step 1处点击 [HERE] ,就会弹出窗口,sitemap生成成功. sitemap出错的主要原因: 1. 放置sitemap 文件的目录是否设置了可写权限 2.sitemap语法错误,如:XML Parsing Error ,说明你语法有问题,sitemap的语法规则很严格。 在 XML 中,有 5 个预定义的实体引用: < < 小于 > > 大于 & & 和号 ' ' 单引号 " " 引号 如果语法出错请在.xml文件里检查sitemap标签是否配对,或者是否包含了上面5 个预定义的实体.
26.85MB
iPhone开发秘籍(第2版)--源代码
2012-12-11CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《iPhone开发秘籍:第2版》的源代码 对应的书籍资料见: iPhone开发秘籍:第2版(iphone开发必备佳作,在第一版的基础上进行了全面修订和大量扩充) 基本信息 原书名: The iPhone Developer's Cookbook: Building Applications with the iPhone 3.0 SDK (2nd Edition) 原出版社: Addison-Wesley Professional 作者: (美)Erica Sadun 译者: 张彩霞 高颖 易磊 丛书名: 图灵程序设计丛书 移动开发类 出版社:人民邮电出版社 ISBN:9787115240019 上架时间:2010-11-11 出版日期:2010 年11月 开本:16开 页码:654 版次:2-1 编辑推荐 iPhone开发的重量级参考书 揭示官方文档未详述的细节 代码示例清晰易懂 内容简介 《iphone开发秘籍(第2版)》提供了关于iphone sdk以及iphone开发的全面信息,对iphone sdk中的各种组件做了深入浅出的介绍,包括iphone 3.0 sdk的所有新增特性,同时对iphone开发的基本流程、基本原理和基本原则进行了详细且通俗的讲解。此外,还结合实例讲解了如何开发各种iphone特性,包括视图、视图控制器、警告、表格、媒体、控件、人物、位置和事件。 《iphone开发秘籍(第2版)》适合iphone和mac开发人员。 作译者 作者:(美国)萨丹(Erica Sadun) 译者:张彩霞 高颖 易磊 等 萨丹(Erica Sadun),著名iPhone技术专家,畅销书作者。佐治亚理工学院计算机科学博士。拥有多年Apple开发经验。著有30多本技术书籍。涉及编程、数字媒体、网站设计和数码摄影等多个领域。Erica开发了十多个本地应用。他常在其iPhone编程博客发表些极有见地的文章。 目录 封面 -26 封底 -25 扉页 -24 版权 -23 版权声明 -22 译者序 -20 致谢 -19 前言 -18 目录 -9 第1章 iPhone SDK简介 1 1.1 iPhone开发人员计划 1 1.1.1 在线开发人员计划 1 1.1.2 标准开发人员计划 2 1.1.3 企业开发人员计划 2 1.1.4 大学开发人员计划 2 1.1.5 注册 2 1.2 开始 2 1.2.1 下载SDK 2 1.2.2 开发设备 3 1.2.3 模拟器的限制 4 1.2.4 Tethering 4 1.3 理解型号差异 5 1.3.1 摄像头 5 1.3.2 扬声器和麦克风 5 1.3.3 手机 6 1.3.4 Core Location的差异 6 1.3.5 振动支持和接近传感器 6 1.3.6 处理器速度 6 1.3.7 OpenGL ES 7 1.4 平台限制 7 1.4.1 存储限制 7 1.4.2 数据访问限制 7 1.4.3 内存限制 7 1.4.4 交互限制 8 1.4.5 电量限制 8 1.4.6 应用程序限制 8 1.4.7 用户行为限制 9 1.5 SDK限制 9 1.6 使用开发人员门户 9 1.6.1 建立团队 10 1.6.2 请求证书 10 1.6.3 注册设备 11 1.6.4 注册应用程序标识符 11 1.6.5 设置 12 1.7 组建iPhone项目 12 1.7.1 iPhone应用程序的主干 13 1.7.2 main.m 14 1.7.3 应用程序委托 15 1.7.4 视图控制器 16 1.7.5 关于本书示例代码的说明 16 1.8 iPhone应用程序组件 17 1.8.1 应用程序文件夹层次结构 17 1.8.2 可执行文件 17 1.8.3 Info.plist文件 17 1.8.4 图标和默认图像 19 1.8.5 NIB文件 20 1.8.6 应用程序束中不存在的文件 20 1.8.7 IPA归档 20 1.8.8 沙盒 20 1.9 编程范例 21 1.9.1 面向对象编程 21 1.9.2 模型—视图—控制器 22 1.10 小结 27 第2章 构建第一个项目 28 2.1 创建新项目 28 2.2 用模板构建Hello World应用程序 29 2.2
50.17MB
NetSupport School .v11.41.0007简体中文版(含注册机)
2017-10-20适用于Windows的课堂管理系统 NetSupport School 是一流的培训软件解决方案,让教师能够以个别方式、按预定小组或者对整个班级进行辅导、监视,并与学生们互动交流。 监听 最新版本的 NetSupport School v11.41.0007简体中文版 将先进的课堂 PC监视、实时演示和加注工具同创新型客制化测验套件、互 联网和应用程序控制、实时音频监听、自动化课程设计、打印机管理、即时通讯控制、内容监控及桌面安全等功能结合起来,可以完全应对和满足当今现代化课堂的挑战和要求。 NetSupport School 经过多年的演进,能够不断地应对当今现代化课堂所面临的各种挑战,确保与日新月异的IT 环境保持兼容。 对于新版本来说,不仅着重于引入具有创新性的新功能,而且还检查现有功能的情况,确保其仍然适用且与现代教学实践相一致。 出于这种考虑,NetSupport School 11 版提供了大量的新功能和增强的功能以及性能的改进,并扩大对新兴技术的支持,所有这些全都打包在一个新颖美观的用户界面里。 问答模块 新的问答模块提供了一组简单而引人注目的工具,可促进课堂上对学习的积极评估。它让教师能够加强和巩固教学要点,即时估量学生在课堂上的理解 采用“游戏节目”的方法,教师可以快速向班级提出口头问题,允许根据回答速度、以小组方式或随机地选择学生。可以对个人或在适当情况下对小组给分并加以跟踪 此功能的核心是能够迅速而有效地提供同学间互评和对学生个别评价,同时还向课堂引入的新提问方式,如“传球式”提问法。 抢答模式。 输入答案模式。 随机选择模式。 能够随机地将学生分成小组。 能够指定小组数量。 能够根据团组名/颜色创建小组。 能够将问题“传递”给下一个学生。 能够设置学生回答问题前的思考时间。 能够设置学生回答问题的时间限制。 能够将回答正确的学生从下一轮中排除。 能够将回答不正确的学生从下一轮中排除。 可选择同学间互评。 能够对整个小组或学生个人给分。 可选择回答不正确扣分。 Version 11 版引入了一个新组件,可从 Apple iTunes 和 Google Play 应用程序商店免费下载。 NetSupport 教师助理应用程序是传统桌面教师端应用程序的延伸,可在您现有的 NetSupport 管理的教室环境中使用,为教师提供了在 ICT 教学区周围更好的移动性,助教利用这一理想工具可以帮助监督学生进度。 兼容 iPad、iPod、iPhone、Android 平板电脑和智能手机,在某一设备上安装后,该应用程序可与 NetSupport 桌面教师端软件配合,使教师能够自由地在教室周围走动,有助于保持主要控制功能和监视所有学生工作站。 平板电脑上支持的功能: 支持 Android 和 iPad 平板电脑。 查看学生缩略图。 向学生发送预设的消息。 阻止受限制的网站。 设定许可的网站。 阻止所有 Internet 访问。 锁定/解锁学生电脑。 注销学生电脑。 学生屏幕遮蔽/撤消遮蔽。 限制学生打印。 设定许可的应用程序。 阻止受限制的应用程序。 选择学生群组。 详情视图。 查看学生“请求帮助”通知。 对学生缩放。 按姓名/教师顺序对学生排序。 查看当前应用程序。 查看当前网站。 设置连接密码。 显示当前所连接教师助理数量的教师端徽章。 智能手机上支持的功能: 支持 Android 和 Apple iOS 智能手机。 向学生发送预设的消息。 阻止受限制的网站。 设定许可的网站。 阻止所有 Internet 访问。 锁定/解锁学生电脑。 注销学生电脑。 学生屏幕遮蔽/撤消遮蔽。 限制学生打印。 设定许可的应用程序。 阻止受限制的应用程序。 设置连接密码。 网络管理员控制台 11 版对网络管理员控制台实现了一系列重大增强,主要围绕两个关键功能领域。首先是安全策略,对所有 PC可以按照预先定义的一组策略进行检查,即时识别未启用杀毒软件、Windows 更新或 Internet 防护的电脑。 其次是策略管理工具,利用该工具可在全学校范围内永久地定义和实施NetSupport 限制。 当前,教室管理解决方案在课程持续期间实行使用控制,一旦教师 PC 断开连接,这些限制随即停止。在 NetSupport School 11 中,这些限制采用集中方式实施,一天 24 小时有效。在某一课程进行中,可通过教师特定设置覆盖这些限制。 网络管理员控制台的新功能和增强功能包括: 查看/设置学生和教师的电源管理策略。 查看/设置学生和教师的 Windows 更新策略。 查看/设置学生和教师的用户访问控制策略。 查看学生和教师的杀毒软件状态。 查看/设置学生和教师的 Windows 防火墙策略。 查看
-
下载
匿名飞控电赛2020源码 江苏省国一.
匿名飞控电赛2020源码 江苏省国一.
-
下载
java EE 框架整合开发入门到实践 源代码 - 副本.rar
java EE 框架整合开发入门到实践 源代码 - 副本.rar
-
下载
TensorFlow-2.x-Tutorials-master.7z
TensorFlow-2.x-Tutorials-master.7z
-
下载
图形用户界面(GUI)编程.md
图形用户界面(GUI)编程.md
-
下载
基于Java的模拟写字板的设计与实现.zip
基于Java的模拟写字板的设计与实现.zip
-
下载
canal.deployer-1.1.5.tar.gz
canal.deployer-1.1.5.tar.gz
-
下载
电子病历命名实体识别研究资料与ccks2020论文集合.zip
电子病历命名实体识别研究资料与ccks2020论文集合.zip
-
下载
OAuth2项目介绍说明
OAuth2项目介绍说明
-
下载
20210419-银河证券-交通运输行业周报:外贸高景气度延续利好跨境物流赛道,持续推荐航空板块内循环复苏机会.pdf
20210419-银河证券-交通运输行业周报:外贸高景气度延续利好跨境物流赛道,持续推荐航空板块内循环复苏机会.pdf
-
下载
【思维导图】2、经典知识图谱.xmind
【思维导图】2、经典知识图谱.xmind
