文档库 最新最全的文档下载
当前位置:文档库 › Net开发平台

Net开发平台

Net开发平台
Net开发平台

.Net开发平台

.Net开发平台的发布标志着近十年来微软开发平台第一个重大的转变。这个开发平台包括一个用于加载和运行应用程序的新的软件基础结构(.NET Framework和https://www.wendangku.net/doc/a76464284.html,),一个新的开发环境(Visual Studio .NET),以及支持该结构的编程语言。

微软希望随着这个新平台的发布,评论不再将这个平台作为朦胧的软件,而且开发者也将发现该平台使得Windows上Web应用程序(尤其是Web Service)的开发更为容易。这样或许会使更多的开发者拥护公司的操作系统和服务器产品,并将他们从与Java平台的竞争中吸引过来。

微软的客户可以将该平台用作应用程序的更可靠、更安全和更统一的标准,而微软的合伙伙伴则可以通过帮助为该平台创建早期的胜利来加强与公司的联系。不过,无论是客户还是合伙厂商都应该意识到,新的平台要求他们从根本上掌握新的应用程序编程接口和编程语言,而且它能将他们锁定在微软的操作系统和服务器产品上。

内容

简介:

微软为什么需要一个新的开发平台

机会与风险

Web Services:是什么和为什么

.NE

T Framework Core

CLR捕捉

Bug,使编程更轻松

类库统一

Windows API

支持

Web Services

使平台一致

ECMA标准和

Windows Lock-In

.NET开发平台工具

.NET开发平台语言

选择.NET语言的经验规则

.NET开发平台与

J2EE的比较

Visual Studio .NET

ASP .NET

ASP .NET在哪些方面补充了.NET开发平台

ASP .NET的益处

向ASP .NET进发

益处评价

软件可获得性

资源

简介

微软发布了.NET开发平台,这是自1993年7月随着Windows NT3.0出现的Win32 API 后微软软件开发平台的第一次大升级。比起Win16来,Win32提供了更多功能强大的API,但没有对工具和技术进行引人注目的改变。与之不同的是,.NET开发平台在开发者用以创造应用程序的工具和技术上做了根本的改变。

.NET开发平台使得开发者创建运行在Internet Information Server (IIS)(互联网信息服务器)Web服务器上的Web应用程序更为容易,它也使创建稳定、可靠而又安全的Windows桌面应用程序更为容易。

.NET开发平台包括以下内容:

·.NET Framework(架构),包括:Common Language Runtime(CLR)(通用语言运行

环境),这是用于运行和加载应用程序的软件组件;新的类库,分级组织了开发者可以在他们的应用程序中用来显示图形用户界面、访问数据库和文件以及在Web上通信的代码集。·.NET开发者工具,包括:Visual Studio .NET Integrated Development Environment(IDE)(Visual Studio .NET集成开发环境),用来开发和测试应用程序;

.NET编程语言(例如Visual Basic .NET和新的Visual C#),用来创建运行在CLR下并且使用类库的应用程序。

·ASP .NET,一个取代以前的Active Server Pages (ASP)的特殊类库,用来创建动态

的Web内容和Web服务器应用程序,这些都将采用诸如HTML、XML和Simple Object Access Protocol(SOAP)(简单对象访问协议)等Internet协议和数据格式。(有关该平台组件的概貌,请参看“.NET开发平台”示意图。)

微软为什么需要一个新的开发平台。

微软希望能够藉此平台保留住它庞大的Windows开发用户的基础,否则由于Java向开

发者所做的硬件与操作系统(OSs)无关性的承诺,这些用户群可能会转向其它的平台。开发者本身不会给微软(或任何其他针对此事的公司)带来很多收益。不过,Windows程序员是公司内对微软产品(例如Windows本身)的极大的支持力量,而商用软件的开发者形成了向客户发售微软产品的重要渠道。如果微软可以让开发者在新的.NET开发平台下写应用程序的话,那么就会有更多的公司购买Windows Server和.NET Enterprise Server(.NET 企业服务器),包括SQL Sever 、Exchange、Share Point、Commerce Server以及

BizTalk等。微软尤其推重.NET开发平台用于开发一种新型的应用程序:Web Services,或者和Web上其他应用程序交换XML格式数据的服务器应用程序。(有关Web Services的概貌,请参看“Web Services:是什么与为什么”。)微软认为Web Services(为此公司已注册了名为“XML Web Services”的商标)是公司将现有的、孤立的应用程序集成到更大的商务(以及B2B)系统中的一种成本低而效用高的方法。微软希望

Web Services成为吸引程序员在新的平台和产品上开发的“必有”的应用程序类型,正如带有图形用户界面的桌面应用程序吸引程序员在早期版本的Windows上进行开发那样。微软本身也计划使用该平台开发它自己的公共Web Services(称作.NET My Services),它将给Internet上的客户提供数据存储以及其他的功能。(有关微软关于自己商务的长期计划以及该计划中.NET开发平台、Web Services和.NET My Services的作用的概貌,请参看2001年7月的研究报告“Understanding .NET”(“理解.NET”。)

.NET开发平台

.NET开发平台是一组用于建立Web服务器应用程序和Windows桌面应用程序的软件组件,用该平台创建的应用程序在Common Language Runtime(CLR)(通用语言运行环境)

(底层)的控制下运行。CLR是一个软件引擎,用来加载应用程序,确认它们可以没有错误地执行,进行相应的安全许可验证,执行应用程序,然后在运行完成后将它们清除。类库集提供了使应用程序可以读写XML数据、在Internet上通信、访问数据库等的代码。所有的类库都建立在一个基础的类库之上,它提供管理使用最为频繁的数据类型(例如数值或文本字符串)的功能,以及诸如文件输入/输出等底层功能。

Web服务器应用程序通常依赖于https://www.wendangku.net/doc/a76464284.html,,一个处理Web请求的服务器端的库。

https://www.wendangku.net/doc/a76464284.html,又依赖一个用于发送和接收SOAP信息的Web Services库,以及一个用于以浏览器接收用户输入并动态地生成Web页面以示响应的Web用户接口(UI)(有时称作Web表单)。Windows桌面应用程序通过使用Win表单库(也称作Windows 表单)可以显示一个图形UI。

最后,Visual Studio .NET提供了一个用于在该平台上创建应用程序的图形Integrated Development Ewironment(IDE)(集成开发环境)。程序员可以使用一种或多种.NET编程语言,来编写他们的代码,例如微软自己的Visual Basic .NET(https://www.wendangku.net/doc/a76464284.html,),Visual C++, Visual C# 和JScrjpt .NET等。大量其它的.NET编程语言可以从第三方厂商获得。

.NET开发平台是一组用于建立Web服务器应用程序和Windows桌面应用程序的软件组件,用该平台创建的应用程序在Common Language Runtime(CLR)(通用语言运行环境)(底层)的控制下运行。CLR是一个软件引擎,用来加载应用程序,确认它们可以没有错误地执行,进行相应的安全许可验证,执行应用程序,然后在运行完成后将它们清除。类库集提供了使应用程序可以读写XML数据、在Internet上通信、访问数据库等的代码。所有的类库都建立在一个基础的类库之上,它提供管理使用最为频繁的数据类型(例如数值或文本字符串)的功能,以及诸如文件输入/输出等底层功能。

Web服务器应用程序通常依赖于https://www.wendangku.net/doc/a76464284.html,,一个处理Web请求的服务器端的库。

https://www.wendangku.net/doc/a76464284.html,又依赖一个用于发送和接收SOAP信息的Web Services库,以及一个用于以浏览器接收用户输入并动态地生成Web页面以示响应的Web用户接口(UI)(有时称作Web表单)。Windows桌面应用程序通过使用Win表单库(也称作Windows 表单)可以显示一个图形UI。

最后,Visual Studio .NET提供了一个用于在该平台上创建应用程序的图形Integrated Development Ewironment(IDE)(集成开发环境)。程序员可以使用一种或多种.NET编程语言,来编写他们的代码,例如微软自己的Visual Basic .NET(https://www.wendangku.net/doc/a76464284.html,),Visual C++, Visual C# 和JScrjpt .NET等。大量其它的.NET编程语言可以从第三方厂商获得。

机会与风险

新的.NET开发平台给合伙厂商和客户带来了新的机会与风险。

对于合伙厂商而言,新的平台意味着建立或加强与微软之间的关系的一次机会。微软需

要早期的胜利来为该平台提供动力,那些能够提供这样的机会的合伙厂商就有可能建立和培育与微软间的坚实的共进关系。例如,https://www.wendangku.net/doc/a76464284.html,将开始使用各种.NET技术(例如Visual https://www.wendangku.net/doc/a76464284.html,和.NET Framwork等)来发送它的四种重要的Web Services:Job seeker Notification(求职者公告),Job Posting(职位公布),Job Searching(职位搜索),以及Resume Posting (简历公布)。这优点类似于Visio的方法,它采用对象链接与嵌入和COM技术建立了与微软的伙伴关系,并且最终被微软购并。

不过,新的平台对于现在的合伙厂商也是一种风险,因为它将重新布置游戏领域,迫使

先前与之关系紧密的或从中受惠的合伙厂商在新平台上重新起步,这样就给了其他公司加入的机会。更为重要的是,该平台建立的合作方机会根据价格分配,因为微软将为那些全盘采纳它的平台而摒弃其他公司产品的合作方保持最大的回报。Visio确立了完全使用Windows

3 的目标,这使它可能已经丧失了与其他厂商建立关系,以便将它的产品卖给喜欢其他的OS的客户的机会。

新的平台将使公司的IT部门受益,它使程序员可以在短时间内即可创建更为安全可靠、扩展性更强的应用程序。不过实际上,这要等到.NET Framework可以使用以后,目前

IT部门还必须将Framework 分配到多个桌面上,因为微软还没有将Framework加载到它任何一个操作系统上,包括最近的Windows XP。

.NET开发平台实际上不会改变低层代码的开发(例如设备驱动程序,定位多个

OS(操作系统)的应用程序,或者用于PC或游戏机的游戏程序),所以它对商用软件程序员的影响有限。不过,它将为Windows应用程序,基于Web的应用程序以及

Web Services(对于公司程序员而言这是一个分水岭般的事件),提供一个单一、细致的设计平台。对于公司来说,面临的风险就是.NET开发平台将把它们锁定Windows OS和.NET Enterprise Servers(.NET企业服务器)上。

这篇报告深入讨论了.NET开发平台,并且讨论了其关键组件,包括:拥有自己的

CLR和类库的.NET Framework,新的工具和语言,以及ASP .NET等。报告还分析了.NET 平台可能产生的问题与提供的好处。

Web Services:是什么与为什么

Web Services是一个软件组件,它通过将消息以XML格式进行编码,并将消息通过标

准的Internet协议(例如Hypertext Transfer Prorocol (HTTP)(超文本传输协议))发送出去来与其它的应用程序进行通信。一个Web Services类似于这样一个Web站点:没有用户接口,向应用程序而非用户提供服务。

Web Services不从浏览器获得请求并返回相应的Web页面,而是从应用程序接收XML格式的请求消息,执行任务,然后向应用程序返回XML格式的响应消息。

IBM和微软一致提倡将SOAP作为一种用于Web services的消息标准。一条

SOAP消息如同一封信,由一个基于XML格式的“信封”和载有消息数据的“正文”两部分组成,“信封”部分包含一个指明消息接收者地址的头部和一系列投递选项(例如加密信息)。

(微软喜欢将此编程模型称作“XML Web Services”——采用“XML”意在强调其开

放性。——但是这个基于一套World Wide Web Consortium(W3C)协议标准的模型,业界习惯上简单称其为“Web Services”。)

微软和IBM等其他供应商提倡将Web Services作为用于Internet上的互连应用程序通信的程序设计模型。这些公司相信通过Internet相互连接的应用程序,将增强与它们的合作供应商和客户协同工作的商务能力。通过在一个现有的公司应用程序的顶层创建一个Web Services层,各个组织可以允许外部系统通过

Internet(或企业Intranet)调用应用程序的功能,但却不必修改应用程序本身。例如,有几家公司正在创建Web Services,来充当驻留在主机内的订单一入口应用程序的前端,这允许客户的订货系统通过Internet提交订单。作为公司内整合由各个部门独立开发的应用程序,以降低伴随公司合并与购并而来的IT整合费用的方法,将Web Services放在现有应用程序的顶层相当重要。

微软也希望使用Web Services进入服务供应商领域,通过Internet向付费客户提供必要

的服务。计划中的服务首要的是.NET My Services,一套由微软管理的数据存储

Web Services,包括由单个用户输入的个人信息,例如信用卡号和日历安排。桌面和

Web服务器应用程序,如果获得了用户的许可,将通过Web Services协议从那些

Internet上的数据库中取回信息。

.NET Framework核心

所有在.NET开发平台上创建的应用程序运行都需要运行两个核心块:

Common Language Runtime(CLR)(通用语言运行环境),这是一个软件引擎,用来加

载应用程序,确认它们可以没有错误地运行,进行相应的安全许可验证,执行应用程序,然后在完成后将它们清除。

.NET Framework类库,向程序员提供所需用来编写在CLR的控制下运行的代码的软件

组件。它们按照单一有序的分级组织提供了一个庞大的功能集——从文件系统到对XML功能的网络访问的每一样功能。

Web服务器应用程序也可以使用ASP .NET,这个类库将在做详细解释。桌面应用程序

不需要ASP .NET。

CLR描述Bug,使编程更轻松

CLR有两个主要的目标:

·提高应用程序的稳定性和安全性

·减少应用程序开发者所必须写的冗长而又易出错的底层代码的容量

这两个目标类似于诸如Sun和IBM等厂商试图用Unix和主机上的Java平台去解决的问题。为了解决Windows上的这些问题,CLR对加载和执行应用程序的编程模型做了根本的改

变。

CLR如何工作

一个应用程序是作为称作汇编的文件或文件集进入CLR的。这个汇编包是MicrosoftIntermediate Languagl (MSIL)代码,CLR将其翻译成可执行的本机代码。由于可以对从MSIL到本机代码的应用程序翻译的控制,使得CLR可以管理应用程序的执行并且防止各种

问题的发生,因此也就有了术语可控制代码。

除了MSIL代码,汇编还包含有详细描述了MSIL代码正确执行所需的各种相关数据类型的元数据。最后,汇编还包括一个清单——一个列出了汇编中所有文件和软件组件的文档,该文档还指出CLR在哪里可以找到具有应用程序运行所需组件的其它汇编。

为了加载一个应用程序,CLR使用汇编的清单来确定应用程序所需的汇编的正确版本。

然后CLR检查应用程序的全部汇编——即,MSIL代码本身与描述它的元数据——从而确认

代码是“类型安全”的,这表明它只执行对恰当数据类型的恰当的操作(也就是说,它不会允许开发者使用一个整数作为一个函数指针),而且它只访问经过授权可以访问的内存位置。

接下来CLR加载应用程序的汇编中的MSIL,并且在此过程中,收集有关汇编的“证据”,例如:

·它是从哪里下载或安装的

·它需要执行什么功能(也就是说,它是否需要写文件或发E-mail)

·什么用户试图运行它

·汇编是否拥有来自信任的开发者的数字签名,以及进行数字签名后汇编是否有改动。

执行控制代码

Common Language Runtime (CLR)(通用语言运行环境)组件(以灰色显示)加载并运

行应用程序。

(1)Class Loader(类加载器)将应用程序的汇编加载到内存中。汇编包括Microsoft Intermediate Language[MSIL]代码、描述应用程序的汇编中的软件组件的元数据,以及其

他应用程序所需的组件。

接下来,Class Loader使用应用程序汇编的元数据,试图加载任何应用程序所需的组

件的支持汇编。例如,它可能加载包含一个桌面应用程序所需的图形用户接口(GUI)控制

5

的汇编。Class Loader 使用Versioning Polily(版本政策)(由应用程序的开发者或者系

统管理员指定)采确定加载它所支持的哪些版本汇编。例如,一个Versioning Policy可能

要求只能使用特定版本的GUI组件,即使有更多最近的版本可以利用。这消除了组件版本问

题,这样的问题在过去十分普遍地存在于Windows应用程序中。

(2)一旦应用程序和受支持的汇编加载后,V erifier就得检查它的内容以确保它是类

型安全的(type-safe),并且确定对于应用程序适当的安全许可。这是加强安全过程的第一步。

(3)本机编译器将MSIL转换为可控制的本机代码,这是处理器相关代码,它知道如何

与CLR提供的服务,例如碎片整理(声明内存不再为应用程序所用)或CLR安全系统(将增

强应用程序的安全许可),进行行交互。

这些证据构成了.NET Framework中的安全要素,使得CLR可以判断是否运行应用程序,

以及运行时需要具有什么许可。

接下来,CLR将MSIL代码翻译成处理器可以执行的本机代码。(微软将此称为“可控

制的本机代码”,以与“不可控制的本机代码”相区分,后者是用C++这样较老的语言写的,CLR对其没有控制。)一项称为Just-in-Time(JIT)编译的能力使得CLR能将翻译过程延迟

至真正需要它时,这样就使CLR避免翻译不常用的代码。(关于这个过程的图解说明,请参

看“执行可控制代码”示意图。)

最后,CLR监控着翻译代码的运行,并且定期清空应用程序释放的内存(使用一个称

作“碎片整理”的进程)。

CLR的好处

CLR通过下列方法增强了应用程序的可靠性:

它减少了不同版本组件间的冲突。CLR可以帮助避免在一台机器上安装相冲突的软件

组件时发生的问题——现在的Windows应用程序如果试图加载不正确版本组件时可能失败。当CRL加载一个应用程序时,它使用元数据和汇编清单来确保它加载了所有组件的正确版本。例如如果应用程序需要访问数据库,CLR就使用清单中的信息来寻找并加载版本正确

6

的数据访问组件。系统也允许并列安装多个版本的组件。

它减少了由于通常的编程错误所带来的

bug和安全漏洞的数量。

CLR监控代码以确保

它不会有通常的编程错误,这些错误可能导致程序执行不正确的功能,例如试图使用一个整数作为函数指针,强行将数值型数据存放到分配给文本数据的位置,或者是载入数据时覆盖代码(由于缓冲溢出)。减少来自这些通常的编程错误的

bug意味着应用程序不但运行得更

可靠,而且攻击者有机可乘的漏洞和弱点也更少。

增强的安全性能使恶性代码的运行更为困难。因为

CLR可以理解每个应用程序的代码

的身份和来源,所以它可以决定应用程序是否被允许执行特定的任务(例如读写本地存储器或者发送

E-mail)。这给现在的安全模型增加了另外一层保护,在现在的安全模型中应用程

序在运行它的用户帐号的安全背景下运行(例如,管理员机器上所有的应用程序都用管理员级的许可在运行)。

内存泄漏更少。如果内存和组件分配给一个应用程序使用,但却得不到释放,这样就会

导致系统超出内存运行,要么会冲击系统,要么就需重新启动、释放内存。

CLR的内存管

理和碎片整理可大大降低这种问题发生的可能性。

组装函数(Plumbing functions)减少了

bug,同时也节约了开发者的时间。最后,

CLR

提供了许多与内存和对象管理、数据编组,以及线程(

thread)相关的低级的,或组装函数。

这不仅通过降低

bug的发生可能性而建立了更好的可靠度,而且还使得程序员能将精力集中

于用于他们特定的应用程序的“行业”代码上,而不必重新实现标准的

Windows函数。

Windows的过渡

最后,CLR执行的一项非常重要的功能是在可控制代码和不可控制代码(即脱离

CLR

运行的传统的

Windows代码)间起中介作用。特别地,它使开发者可以将新的

.NET代码与

现存的

Windows库和

COM组件结合起来,并将一个应用程序逐渐地从老平台迁移到新平

台上来。(请参看“混合可控制代码与不可控制代码”示意图)。

不过,需要指出的是,不可控制代码脱离

CLR的控制而运行,因此有可能冲击应用程

序,泄露内存,或者通过缓冲溢出打开安全漏洞。一个.NET应用程序只是和它的最弱环节——它的不可控制代码一样强壮。

类库统一

Windows API

.NET Framework类库提供了几乎所有应用程序都需要的公共代码。和在

Windows和它

SDK中发送的代码库一样,类库使得开发者能将精力集中于编写他们的应用程序所独有

的代码,而不必一再重复编写类似读写文件这样经常使用的功能的代码。

类库还解决了当前的

Windows代码库中存在的一个问题:当微软将向

Windows绑缚新

功能时,API和

SDK之间就会出现混乱。(各种“版本”中的

Java库试图解决非

Windows OS

上类似的、甚或更严重的问题,即:来自各种不同的厂商,用于诸如文件输入

/输出和消息

收发等基本功能的使人困惑的

API。)

类库做什么

所有的可控制代码都组织在称为类的(这就是类库的来源)逻辑组中,这些类按照称作域名空间的分级制度排列。

.NET Framenork类库在域名空间

“System”之下。为了方便查找开发者所需要的类,该

域名空间按照功能区的分级制度进行排列。(有关

.NET类库的图解概貌,请参看“.NET类

库域名空间”示意图。)

例如,System中有

System. Data,它包含用于

ADO .NET数据访问

API的类。System.Data

本身包括一组称作

System.Data.Oledb的类,它用来支持访问数据库以及其他拥有

Windows

7

OLE DB .NET数据供应器的数据源。System .Data还包括

System .Data .SQLclient,它支持

SQL Server的访问。

一些

System类提供的功能以前可以通过

Windows API或者特定语言的功能获得,但其

他类则是全新的,例如

System .Reflection,它使可控制代码能够获得来自汇编的信息,例如

它的元数据。

开发者可以通过扩展类库中的类来定义自己的类,还可以定义全局唯一的专用域名空

间,以使他们的类不会和微软或其他任何组织的类相冲突。

类库的好处

类库主要的好处是它们将核心

Win32 API的最常用的功能和外挂

SDK的功能封装到了

一个统一的包中。采用清晰而有条理的方式对类库进行了分组和描述,这样开发者能更容易地找到他们的应用程序所需的大多数功能。

相反,在过去几年中,新功能要么被“绑缚”到

Win32 API上,要由通过独立的

API(例如用于图形的

Directx,或者用于

XML和

SOAP的不同的

SDK)来提供。对它们唯一

能做的逻辑分组就是按照字母顺序进行排序。结果,使用

Win32 API和各种

SDK经常使人

晕头转向,而开发者必须判断几个类似的

API中哪一个最适合他们特定的要求。

支持

Web Services

CLR和类库的结合使得与以前只是在

Windows上相比,开发

Web Services更为容易。

首先,CLR为运行服务器应用程序,包括

Web Services,提供了一个更可靠的基础。服

务器应用程序通常比桌面应用程序要有更高的可用性和安全性的要求,因此它们尤其将从CLR捕捉错误和阻止恶性代码的功能中受益。此外,服务器应用程序通常需要长时间不间断地运行,因此也将从

CLR的碎片整理功能中受益。碎片整理功能可以限制内存泄露,否

则长时间运行的应用程序可能会耗尽所有可用的内存。

混合可控制代码和不可控制代码

Common Language Runtime(CLR)(通用语言运行环境)的协作功能允许开发者将可

控制代码与COM组件中现有的不可控制代码(以及Win32动态连接库(DLL)中的代码)混合起来。

当一可控制代码组件调用一COM组件(顶层)时,CLR就生成一个运行环境可调用包

装(runtime callable wrapper)(RCW)。RCW充当不可控制的COM组件的代理(或中介)8

的角色。RCW处理可控制组件和COM组件之间所有的交互,包括(但不限于)以下内容:

·在CLR和COM环境间翻译和传递数据

·当可控制代码组件被CLR碎片整理进程重新声明时,释放包装的COM组件的内存和

其他资源。

·将来自COM错误返回代码(HRESULT值)的错误翻译成CLR错误(称作异常)。

当COM组件调用用可控制代码(底层)写的.NET组件时,CLR又生成了一个称作COM 可调用包装(CCW)的包。和RCW类似,CCW也在不可控制的COM代码和可控制代码之间充当代理或中介的角色。CCW还实现了COM组件所需功能的标准设置,这样可控制代码组件看起来就像标准的COM组件一样。

CCW处理不可控制的COM对象和可控制的.NET组件之间的所有支互,包括(但不限于)以下内容。

·在两种环境间移动和翻译数据

·当COM组件被释放时,由CLR释放用于最后的碎片整理的可控制代码。

·将CLR异常翻译为COM返回代码。

其次,类库提供了开发者创建Web Services或使用Web Services的应用程序所需的全

部代码。特别地,它们提供了在应用程序数据和XML间进行翻译转换的代码,以及通过Internet协议收发SOAP消息的代码。这样开发者就可将更多的精力放在他们自己的应用程序的逻辑上,而尽量不去考虑如何实现网络协议或读写XML数据这样的细节上。

统一平台

CLR和类库还联合解决了微软当前平台存在的一个重要问题:所有的编程语言并非是均

衡创建的。微软的每种编程语言都有自己的run-time基础结构(例如,Visual Basic [VB] runtime的多个潜在冲突的版本)和软件库(例如Microsoft C++基础类)。这就要求微软维护这些库以及相关的诸如debugger和wizard等工具。一个组织通常不得不将一个项目分割开来,其中一些让C++程序员编写,另外一些则让VB程序员来写。任一种程序员的短缺都

会影响进度。

.NET Framework采用以下两种方法来解决语言的划分问题。

标准化数据类型。首先,.NET Framework为最常用的数据类型(例如整数、实数、文

本字符)提供了标准的内部描述和运算,并提供了将这些类型向所有的.NET语言和CLR 扩

展的机制。设立这种标准化数据类型和可扩展模型(全称为.NET Framework Common Type System (CTS)),消除了每种语言用它自己唯一且不兼容的方法实现数据类型的必要。

标准化应用程序格式。其次,.NET Framework实现了一个标准的应用程序格式——拥

有自己的MSIL、元数据和清单的汇编。所有.NET语言的编译器都生成这种格式。通过从元数据中提取有关MSIL的信息,编译器、调试器和协议器等工具可以分析处理任何一种

程序设计语言的数据。

标准化的数据类型和应用程序格式使开发者可以创建用任一种理解其中的数据类型和

格式的程序设计语言工作的类库,这样的类库包含所有微软的.NET编程语言以及众多的第三方厂商语言。特别地, .NET Framework类库仅使用CTS数据类型,并分配以标准的应用

程序格式。结果,这些类库能被使用任何一种.NET编程语言的应用程序所使用。

(请参看“开发可控制代码”示意图。)

CLR和类库相结合为微软提供了一个单一的运行平台,它支持运行所有的编程语言,

并且可以用一组公共的开发工具来实现它。微软已经发布了一个该平台和它所使用的语言的规范。(请参看“ECMA标准和Windows Lock-In。)此外,类库向所有的.NET编程语言提

9

供了大致相同的基本功能组,这样就使程序员可以用任一种他们最拿手的语言来工作。

.NET类库域名空间

.NET开发平台提供的API 被组织安排到了一组带有逻辑名的分级域名空间中。(本示

意图显示了几个比较重要的类。)这和Win32 API形成了尖锐对比,Win32 API只是一个简单的功能名的长列表,顶多可以按字母排序。有了分级制度以后开发者就可以更加快捷地定位所需的功能,而且添加新的API也不会与已有的发生冲突。

类建立在基础类(底层)之上,基础类具有下述能力:文本处理(System.Text)网络访

问(System .NET),以及存储列表和其他数据集(System .Collections)等。

基础类之上是更复杂的类,例如数据访问(System .Data),它包括https://www.wendangku.net/doc/a76464284.html,和XML

处理(System .XML)。

顶层是用户接口库。Windows 表单和Drawing库(分别是System.Win表单和

System .Drawing)提供了封装后的Windows用户接口,包括GDI+和DirectX .System。Web 包含用于建立包括Web Services类和Web表单用户接口类的https://www.wendangku.net/doc/a76464284.html,应用程序的类库。开发可控制代码

10

开发者通过将他们自己的应用程序源代码和来自.NET类库的代码相结合,创建了可控

制代码。这些类库可能包括.NET开发平台包含的类库(例如https://www.wendangku.net/doc/a76464284.html,和Windows 表单),

以及来自第三方的类库。

接下来.NET编译器将此代码从人可读的格式翻译成Microsoft Intermediate Language (MSIL)。不管采用何种语言,所有的.NET开发平台编译器均生成MSIL结果。

除了MSIL,.NET编译器还产生元数据,它描述了弥补代码的组件。Common Language Runtime (CLR)(通用语言运行环境)使用这种元数据来增强安全性,并确保获得它所需的任何组件的正确版本(减少组件冲突,或者“DLL Hell”)。

Visual Studio .NET和其他工具自动将MSIL代码封装到CLR中使用的汇编中。几个

MSIL文件可以被组合成一个单一的汇编。(有关一个汇编如何由CLR来执行的图解概貌,请参看“执行可控制代码”示意图。)

开发者通过将他们自己的应用程序源代码和来自.NET类库的代码相结合,创建了可控

制代码。这些类库可能包括.NET开发平台包含的类库(例如https://www.wendangku.net/doc/a76464284.html,和Windows 表单),

以及来自第三方的类库。

接下来.NET编译器将此代码从人可读的格式翻译成Microsoft Intermediate Language (MSIL)。不管采用何种语言,所有的.NET开发平台编译器均生成MSIL结果。

除了MSIL,.NET编译器还产生元数据,它描述了弥补代码的组件。Common Language Runtime (CLR)(通用语言运行环境)使用这种元数据来增强安全性,并确保获得它所需的任何组件的正确版本(减少组件冲突,或者“DLL Hell”)。

Visual Studio .NET和其他工具自动将MSIL代码封装到CLR中使用的汇编中。几个

MSIL文件可以被组合成一个单一的汇编。(有关一个汇编如何由CLR来执行的图解概貌,请参看“执行可控制代码”示意图。)

ECMA标准和Windows Lock-In

经过使.NET Framework或为应用程序开发的标准的努力之后,微软向欧洲计算机制造

商协会(ECMA),一个国际标准化组织,提交了C#语言和基于.NET Framework 的Common

Language Infrastructure(CLI)(通用语言基础结构)的规范。原则上讲,这些规范能让开发者在.NET开发平台上写出可以运行在任何操作系统和硬件上的应用程序。不过,对这些规范的更深入的分析揭示出在可预见的将来这将把大部分.NET开发限制到Windows上。

2001年10月,ECMA批准了ECMA-344号标准——C#语言规范。这个ECMA标准规定了有关的形式,并且建立了使用C#编程语言写的程序的解释机制。它还规定了其他一些内容:

·C#语言的语法和约束

11

·C#程序的语义——它们如何工作

·由C#的一致实现所带来的约束和限制

同样是在2001年10月,ECMA发布了ECMA-335号标准,它定义了CLI。CLI是这样一个run-time环境,它使得用高级语言(例如C#)写的应用程序可以在不同的操作系统和硬件上运行,却不需要开发者考虑每种环境的独特特征再重写应用程序。CLI定义了以下内容:

·用于应用程序的文件格式

·在应用程序中使用的数据类型的公共设置

·应用程序元数据的可扩展格式

·用于应用程序代码的基于MSIL的中介语言

·类似于.NET Framework基础类的基础类库

2001年,ECMA,微软和Corel宣布,它们将协同工作,使用这些标准创建一个C#和

用于FreeBSD的工具,并且按照微软的Shared Source Code(共享源代码)许可提供这个工

具。Ximian, 一个Linux的GNOME环境的开放源代码开发商,也已宣布它将使用同样的ECMA规范来实现Linux上的.NET Framework。

尽管有这些承诺,是否会有产品从此规范衍生出来,仍不清楚。

对于类库的有限支持

提交给ECMA用于标准化的信息包括反映.NET Framework部件(包括Common Type System(CTS)(公共类型系统),它为CLI和类似于Common Language Runtime(CLR)的

虚拟执行环境定义的公共数据类型(例如整数和字符串))的要素。原则上讲,开发者可以创建一个可移植的应用程序,它可以在任何拥有ECMA兼容开发平台的操作系统和硬件上运行。例如,开发者可以在.NET开发平台上创建一个应用程序,它无需修改就可在使用Corel 的CLI 工具的Free BSD上运行。

但是,应用程序的可移植性实际上由ECMA类跨环境的变换有多清楚来决定:如果开

发者使用.NET Framework在Windows上写了一个程序,是不是所有微软的类库中的功能在遵守ECMA规范的Free BSD工具中都可利用。

ECMA规范描述了一组基础类库,包括映射到.NET Framework的System、https://www.wendangku.net/doc/a76464284.html,、System.Reflection(它使程序可以获得可控制代码的元数据描述)的类和System.XML类。不过,规范看起来没有任何反映Windows或者Web Services的内容。类似地,ECMA规范

不包括任何和https://www.wendangku.net/doc/a76464284.html,数据访问库类似的东西,所以根据此规范写的应用程序没有办法和

数据库一起工作。

授权仍不确定

最后,还有授权问题。ECMA不考虑知识产权(例如专利,由诸如微软这样提出标准

的公司掌握着)。它只要求知识产权所有者向希望实现ECMA标准的任何厂商提供某种授权。这样,尽管ECMA标准确保任何希望实现非Windows版.NET的厂商不会被“毫无理由”地被拒绝给予授权,但授权非常麻烦,以至于大大地限制了发布。

直至微软关于授权的政策更为和缓(现在的Shared Source Program仅限于学术使

用),.NET Framework都不会有一个可行的交叉平台未来。需要全部.NET Framework的应用程序或许也需要Windows。

.NET开发平台工具

和先前从Win16到Win32 API的平台转换不同,从Win32到.NET开发平台的转换既有对已有语言和工具的修改,还引入了全新的语言。结果,决定使用.NET开发平台的组织,

12

不仅必须改变它们的平台战略,而且还必须考虑它们的语言和工具战略。

.NET开发平台语言

将有三种新版的微软编程语言支持CLR和类库:Visual https://www.wendangku.net/doc/a76464284.html,, Visual C++,以及https://www.wendangku.net/doc/a76464284.html,。它们还将结合两种新语言:Visual C#和Visual J#。Visual J#使visual J++开发者

可以使用类似的语言创建可控制代码。

微软经常指出,.NET开发平台和诸如Java等其他编程环境之间的最大的差别在于,.NET 开发平台支持多种编程语言。(有关.NET开发平台与Java之间差别的更多信息,语参看边框内容(“.NET开发平台与J2EE的比较”。)由于.NET开发平台支持不同的语言,具有不

同技巧的程序员就可以使用他们最擅长的语言来创建组件,而这些组件可以平滑地协作。但这也带来一个问题——开发和项目经理如何选择他们的应用程序所用的语言。

Microsof的每一种支持CIR和类库的语言都有着不同的实现和历史,做选择时需要加

以考虑。(为获得选择.NET开发语言的快速指南,请参看边框内容“选择.NET语言的经验规则”。)

Visual Basic .NET

这种新的语言拥有与现有的Visual Basic(VB)类似的语法,设计它的目的是为了让使

用VB的开发者能过渡到.NET。不过,和以前的VB版本不同的是,Visual https://www.wendangku.net/doc/a76464284.html,使用CLR和类库取代了类似的VB组件和插件。https://www.wendangku.net/doc/a76464284.html,还有新的、高级的功能,例如对多线程

和结构化异常处理的支持。尽管如“onerror goto”型的错误处理的语言习惯的去除是一项受

欢迎的改变——这会使应用程序更加健壮,但却意味着现在的VB程序员不能加载并运行他

们以前的应用程序。

事实上,https://www.wendangku.net/doc/a76464284.html,与以前的VB版本相比有很大的改变,不能向后兼容。微软正在开发

一个工具,用于将VB源代码迁移成https://www.wendangku.net/doc/a76464284.html,代码,但是这个过程不能全部自动完成。开发

者必须手工检查迁移后的代码,重写某些部分,并仔细测试结果。

不过,开发者不必一次迁移所有代码:幸赖CLR的协作功能,https://www.wendangku.net/doc/a76464284.html,可以调用VB

代码,反之亦然。这就允许开发者逐渐递增地迁移应用程序——例如,一个https://www.wendangku.net/doc/a76464284.html,应用程序可以合并一些已有的VB模块。

由于迁移不能马上完成,微软答应它将继续支持现在的VB语言(6.0版),至少到

VB .NET的第三版发布,根据VB发布的惯常速度,那大概要等到五、六年之后。

两个VB的变种根本不能迁移到.NET开发平台上:一种是Visual Basis Scripting Edition (VBScript)(Visual Basic脚本描述版本),用于管理脚本、Active Server Pages (ASP)(活动服务器页)与动态Web内容的脚本描述语言;另一种是Visual Basic for Applications (VBA),用于定制诸如Office等应用程序的脚本描述语言。VBScript已经包容在https://www.wendangku.net/doc/a76464284.html, 中,而VBA则将继续作为Office中的宏程序设计语言发挥作用。

微软说在向.NET开发平台迁移时,过去使用VB的开发者应使用https://www.wendangku.net/doc/a76464284.html,而非C#。这只是一个初步分析的结论,具体情况还需考虑开发者使用的VB功能的广泛程度:

选择.NET语言的经验规则

·当前的程序员有哪些技巧,以及雇佣新程序员有多容易?

·正在开发的组件是用于单一的终端用户应用程序,还是在不同的情况下被其他程序员

重用的基础组件?

·应用程序需要从头编写新代码,还是可能只需修改和改写已有的代码?

·可以使用第三方(non-Windows)语言和工具吗?

13

下面的经验规则可以帮助开发者选择.NET开发平台语言:

·大多数VB程序是继续使用VB(VB .NET)或许将受益很多。

·对于那些已经熟悉VB的更高级的功能的VB开发者,需要关注一下C#,作为另一种工具。

·已经熟悉Java或J++的开发者将发现C#最适合他们的技巧。

·正在将已有的本机代码改写为.NET代码的C++开发者应使用Managed Extensions to

C++。那些继续开发本机应用程序的C++开发者应继续使用现有的C++语言。

·正在开发新的应用程序和代码基础的C++开发者需要在C#和Managed Extensions to

C++中做出选择。大多数情形中,这些开发者将发现使用C#的收益非常符合学习曲线。·对脚本描述Web页非常感兴趣,并且使用Jscript完成过这种工作的,应转向

https://www.wendangku.net/doc/a76464284.html,。

·使用过J++以及喜欢Java语法的开发者应考虑J#。

·对于多数一般的VB程序员,大多数的语言改变相当直接。如果VB开发者的主要经

验是使用已有的VB组件,那么他们应当使用https://www.wendangku.net/doc/a76464284.html,进行新应用程序的开发,而不能转到

使用C#上去。像C#这样的更为严格的面向对象语言的附加的复杂性与任何获得的小的收益

都不成比例。

·高级的VB程序员——例如,那些广泛使用诸如“Win32 Declare”这类对底层OS进行直接调用的功能的开发者——则另当别论。使用https://www.wendangku.net/doc/a76464284.html,,他们现在能发挥自己的本领创

建应用程序底层的组件,例如那些供其他VB程序员使用的组件。不过,因为他们要设计供

团队内其他成员使用的组件(即使团队的其他人继续使用https://www.wendangku.net/doc/a76464284.html,),这些组件开发者也应考虑切换到C#对于组件开发的好处。

Visual C++

Visual C++,这个现有的用于编写低层代码和Windows程序的程序设计语言,还将继续

存在,但是它将被修改更新以支持.NET开发平台。

特别地,Visual C++将获得新的关键字和数据类型(称为Managed Extensions to Visual

C++),它使程序员可以创建可控制代码。不过,这些扩展是可以选择的;.NET Framework 所

带的Visual C++版本完全向后兼容它的前身:Visual C++6.0,开发者可用它写不可控制代码。

这使C++在.NET领域中具有一个独特的位置。所有其他的微软语言需要向.NET开发平

台进行完全的转换——例如,无法使用https://www.wendangku.net/doc/a76464284.html,创建一个运行在老的VB runtime上的VB 风格组件,也无法直接将一个C# 应用程序编译为本机Intel指令。不过Visual C++仍有本机编译器。结合CLR将新的可控制代码与已有的不可控制代码相连的本领,这些都意味着C++开发者可以继续使用同他们过去一直在用的完全相同的语言和环境。

C语言socket()函数

C语言socket()函数:建立一个socket通信 相关函数:accept, bind, connect, listen 头文件:#include #include 定义函数:int socket(int domain, int type, int protocol); 函数说明:socket()用来建立一个新的socket, 也就是向系统注册, 通知系统建立一通信端口. 参数domain 指定使用何种的地址类型, 完整的定义在/usr/include/bits/socket.h 内, 底下是常见的协议: PF_UNIX/PF_LOCAL/AF_UNIX/AF_LOCAL UNIX 进程通信协议 PF_INET?AF_INET Ipv4 网络协议 PF_INET6/AF_INET6 Ipv6 网络协议 PF_IPX/AF_IPX IPX-Novell 协议 PF_NETLINK/AF_NETLINK 核心用户接口装置 PF_X25/AF_X25 ITU-T X. 25/ISO-8208 协议 PF_AX25/AF_AX25 业余无线AX. 25 协议 PF_ATMPVC/AF_ATMPVC 存取原始ATM PVCs PF_APPLETALK/AF_APPLETALK appletalk (DDP)协议 PF_PACKET/AF_PACKET 初级封包接口

参数type 有下列几种数值: 1、SOCK_STREAM 提供双向连续且可信赖的数据流, 即TCP. 支持OOB 机制, 在所有数据传送前必须使用connect()来建立连线状态. 2、SOCK_DGRAM 使用不连续不可信赖的数据包连接 3、SOCK_SEQPACKET 提供连续可信赖的数据包连接 4、SOCK_RAW 提供原始网络协议存取 5、SOCK_RDM 提供可信赖的数据包连接 6、SOCK_PACKET 提供和网络驱动程序直接通信. protocol 用来指定socket 所使用的传输协议编号, 通常此参考不用管它, 设为0 即可. 返回值:成功则返回socket 处理代码, 失败返回-1. 错误代码: 1、EPROTONOSUPPORT 参数domain 指定的类型不支持参数type 或protocol 指定的协议 2、ENFILE 核心内存不足, 无法建立新的socket 结构 3、EMFILE 进程文件表溢出, 无法再建立新的socket 4、EACCESS 权限不足, 无法建立type 或protocol 指定的协议 5、ENOBUFS/ENOMEM 内存不足 6、EINVAL 参数domain/type/protocol 不合法 范例:参考connect().

快速开发平台简介

POBA 公司文档 Copyright 1999-2013poba Software 1 普巴快速开发平台简介 1 平台简介 随着WEB 应用开发技术的发展,应用软件开发平台得到了极大的进步,大多数的软件公司都会开发自己的架构,搭建自己的应用平台,来适应软件企业所在的行业应用,同时将行业的若干通用化的应用做成构件或组件,增强软件的重用性,降低软件开发的风险。 普巴快速开发平台,是业界领先的基于SOA 架构的JavaEE 快速应用开发平台,被业界誉为“软件开发推进器”。它采用先进的“配置化”、“组件化”设计理念和高级封装技术,并积累了大量成熟而实用的应用组件,绝大多数开发与应用无需编码,开发人员无需懂JAVA 即可进行“所见即所得”式的开发,使开发效率提高了一个数量级,并且应用可立即部署,大大缩短了应用开发的调试期,降低了用户的开发成本。为企业、软件开发厂商提供了一套快速开发的工具,同时为用户提供了一套智慧的管控一体化的信息支撑平台。 快速开发平台结构图

POBA 公司文档 2 Copyright 1999-2013poba Software 2 平台使用对象 ISV 独立软件开发商 SI 系统集成商 大中型企业和政府IT 部门 3 平台解决问题 用户在软件开发过程中常遭遇如下难题: 技术难度大,开发成本居高不下 开发、部署效率低 不断变化的企业需求,企业疲于应付 技术骨干流动频繁,重复开发现象严重 多种模式下缺乏统一规范和标准 系统可维护性差,维护成本高 大型项目开发周期长,难以和实际需求匹配 针对上述使用对象面临的问题,普巴快速开发平台革新了软件开发模式,以组件构建的方式实现软件开发,大多数应用无需编写代码,对于复杂应用,也只需编写少量脚本,就可以实现复杂的应用。同时引入了大量的构件,开发人员可直接通过开发工具进行设置,降低了对开发人员技术水平的要求,普通开发人员经过学习就可上岗,解决了技术骨干流动给项目带来的重复开发现象。 通过系统内置的设计工具,基于浏览器进行模板设计、模块设计以及流程设置,能够大幅度地减少开发工作量,提高了开发效率,比传统软件开发节省一半左右的时间。对于项目管理人员,可以将主要精力集中在项目的需求工程、应用设计,降低了项目的风险。 由于在开发实现过程中,压缩了编码的工作量,应用跟踪调试的时间也相应减少,整个应用实现的时间也相应减少,提高了应用的可维护性和软件的稳定性。 4 平台优势和价值 极大地提高了开发效率,缩短应用实现时间80% 以上,大大地缩短了应用

成为.NET开发大师的七个步骤

成为.NET开发大师的七个步骤 .NET 是 Microsoft XML Web services 平台。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。 如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步掌握一门.NET面向对象语言,C#或https://www.wendangku.net/doc/a76464284.html,我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学 https://www.wendangku.net/doc/a76464284.html,。https://www.wendangku.net/doc/a76464284.html,是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步对.NETFramework类库有一定的了解可以通过开发WindowsForm应用程序来学习.NETFramework。https://www.wendangku.net/doc/a76464284.html,是建构在.NETFramework之上的技术,你对.NETFramework了解得越深,学习https://www.wendangku.net/doc/a76464284.html,就越快。 举个例子:下面简单列出几个对掌握https://www.wendangku.net/doc/a76464284.html,非常重要的概念:对象的内存模型,委托,事件,多线程,程序集和应用程序域,安全模型.NETFramework当然还有许多其它的东西,但不理解与把握清楚上述这些东西,是很难真正把握https://www.wendangku.net/doc/a76464284.html,的。出于急迫的心情与现实

的考虑,不少人没有扎实的面向对象基础就想直接学习https://www.wendangku.net/doc/a76464284.html,,其结果只能是欲速则不达。在具备了OO基础之后,以下是具体的学习https://www.wendangku.net/doc/a76464284.html,技术步骤。 第一步:学习HTML与CSS 这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理解HTML网页嵌套的block结构与CSS的box 模型。许多https://www.wendangku.net/doc/a76464284.html,控件最后都必须转化为HTML。而且,div+CSS是当前主流的网页布局模型。学习这部分时,关键在于理解概念,而不需要将精力花在美化页面的许多技巧上,那是网站美工的工作,不是程序员的工作。 第二步:学习JavaScript JavaScript不是Java,它主要运行于浏览器端。可以完成许多工作,功能也很强大:比如它将客户端网页中的HTML元素看成一棵树,可以编写代码访问并修改树节点,动态生成新的HTML代码,从而达到动态修改网页显示特性的目的。 JavaScript在目前的网站开发中用得很多,非常重要。

基于JavaEE的小型快速开发平台的设计与实现

基于JavaEE的小型快速开发平台的设计与实现随着互联网的发展,越来越多的企业开始重视自身的信息化建设。Java语言凭借其开源、跨平台、简单易用的优势,成为了企业搭建信息化系统的热门语言。JavaEE是Java的企业级版本,但是直接使用JavaEE的原生API去开发仍然存在一些难度。为了解决这一问题,国内外出现了很多著名的开源框架用以简化基于JavaEE的开发,但是这些框架在业务上仍然缺乏更加具象的输出,也就是说这些框架虽然简化了开发人员的劳动,但是面对更加具体业务功能,留给开发人员的工作量仍然很大。 为了更多地简化开发人员的开发劳动,本论文通过研究了一些常见的普通小型项目,从中抽取了一些常见的功能和操作加以实现,最终实现了一套通用的针对拥有简单流程控制的小型项目的开发平台。本论文所实现开发平台本质上是以JavaEE为开发基础,通过对既有的一些开源框架(Spring、Struts2、 Hibernate)进行整合,然后为小型的开发项目,提出的一个通用的开发解决方案。在本论文所实现开发平台中,会提供大量已经实现好的内置服务,例如用户管理、机构管理、角色管理、权限分配、任务调度管理、全文检索支持等等。这些功能均是项目中最常见的一些功能。 通过使用本平台,开发人员无需再去自己实现这些功能,只需要通过简单的API调用就可以使用它们,最终目的就是最大程度地方便开发人员快速构建一个新的系统。经过试验测试,本论文研究的小型开发平台能够帮助更多的小企业快速地开发出简单的业务系统,避免了相似功能模块的重复编写,和普通开发周期相比,可以节省至少50%的项目开发周期。同时,平台自身的稳定性,也极大地减少了在其之上搭建的子系统所产生的错误,减少了后期的维护成本。

Open vSwitch操作手册

目录 1、Open vSwitch各模块简要介绍如下: (1) 2、基于 Open vSwitch 的 OpenFlow 实践(ubuntu 14.04) (1) 2.1 OpenvSwitch安装 (1) 2.2 OpenFlow 命令 (3) 2.4修改数据包 (9) 2.5重定向数据包 (10) 2.6修改vlan tag (11) 3、Open vSwitch连接到OpenDaylight (14) 4、Open vSwitch常用操作 (17)

1、OVS 各模块简要介绍如下: ovs-vswitchd :主要模块,实现switch 的daemon ,包括一个支持流交换的Linux 内核模块; ovsdb-server :轻量级数据库服务器,提供ovs-vswitchd 获取配置信息; ovs-dpctl :用来配置switch 内核模块; 一些Scripts and specs 辅助OVS 安装在Citrix XenServer 上,作为默认switch ; ovs-vsctl :查询和更新ovs-vswitchd 的配置; ovs-appctl :发送命令消息,运行相关daemon 。 OVS 提供了支持OpenFlow 的特性实现,包括: ovs-ofctl :查询和控制OpenFlow 交换机和控制器; ovs-pki :OpenFlow 交换机创建和管理公钥框架; ovs-tcpundump :tcpdump 的补丁,解析OpenFlow 的消息。 2、基于 Open vSwitch 的 OpenFlow 实践(ubuntu 14.04) 1.OpenFlow 命令如何创建交换机? 2.如何将一个端口添加到交换机上? 3.如何查看ovs 结构? 2.1 OpenvSwitch 安装 查看ubuntu 版本 : Ubuntu 14.04的OVS 版本,已经是2.02,所以默认安装就可以。不过不同的发行版,ovs 的名字会有点不同。

快速开发工具_基础介绍

U8开发之快速开发工具 摘要 U8快速开发工具是针对客户化开发的特点,基于U8平台而开发的一套简化、快速、高效的U8单据开发工具。使用快速开发工具开发的单据与U8标准单据风格一致,可通过数据库脚本的简单调整设置单据上字段格式(文本、日期、参照、下拉框)等。使用快速开发工具开发的单据可以注册单据插件实现复杂逻辑编写。 快速开发工具是基于VB 6.0 开发工具,依据用友U8单据开发原理开发的适用于客户化快速、高效、简单、易学的特点而开发的一套工具。 目前快速开发工具分为V890、V10.1、V11.0 三个版本。 什么是快速开发工具? 快速开发工具包含三部分: 1、快速开发工具基础安装包:安装快速开发工具所用到的基类; 2、使用快速开发工具完成的Demo样例:安装Demo样例后,开发人员可以参照Demo 样例的数据库脚本,快速完成客户化单据脚本。 3、脚本抽取工具:使用快速开发工具完成的单据都是通过大量的数据库脚本来实现的, 因此使用数据库脚本抽取工具可以直接抽取单据用到的脚本。 目标 本文主要介绍如何安装及使用快速开发工具,如何设置单据模板的下拉、参照,如何设置自定义按钮,挂接客户化开发代码,如何使用快速开发工具设置单据列表。

快速开发工具可以做什么? 快速开发工具主要是用来做U8的客户化单据开发。 1.数据字典 略。 如何安装快速开发工具? 1.安装基础安装包(890/10.0/10.1/11.0) 安装包依据U8产品版本的不同而有相应的适用版本 安装KK-U8110-201303212339-EFBASE.msi文件 进入安装界面

重启机器。安装完成后会在U8的安装目录下出现KK文件夹,此处存放快速开发工具。 2.安装Demo样例 配合快速开发工具,我们提供了Demo样例。 安装KK-U8110-201303220000-EFDEMO.msi

表面粗糙度新国标

表面结构的图样表示法 加工零件时,由于刀具在零件表面上留下刀痕和切削分裂时表面金属的塑性变形等影响,使零件表面存在着间距较小的轮廓峰谷。这种表面上具有较小间距的峰谷所组成的微观几何形状特性,称为表面粗糙度。机器设备对零件各个表面的要求不一样,如配合性质、耐磨性、抗腐蚀性、密封性、外观要求等,因此,对零件表面粗糙度的要求也各有不同。一般说来,凡零件上有配合要求或有相对运动的表面,表面粗糙度参数值小。因此,应在满足零件表面功能的前提下,合理选用表面粗糙度参数。 1.评定表面结构常用的轮廓参数 ①算术平均偏差Ra是指在一个取样长度内纵坐标值Z(x)绝对值的算术平均值 ② 轮廓的最大高度Rz是指在同一取样长度内,最大轮廓峰高和最大轮廓谷深之和的高度 图9-27 评定表面结构常用的轮廓参数 2.有关检验规范的基本术语 检验评定表面结构参数值必须在特定条件下进行。国家标准规定,图样中注写参数代号及其数值要求的同时,还应明确其检验规范。有关检验规范方面的基本术语有取样长度、评定长度、滤波器和传输带以及极限值判断规则。本有关检验规范仅介绍取样长度与评定长度和极限值判断规则。 (1)取样长度和评定长度 以粗糙度高度参数的测量为例,由于表面轮廓的不规则性,测量结果与测量段的长度密切相关,当测量段过短,各处的测量结果会产生很大差异,但当测量段过长,则测得的高度值

中将不可避免地包含了波纹度的幅值。因此,在X轴上选取一段适当长度进行测量,这段长度称为取样长度。但是,在每一取样长度内的测得值通常是不等的,为取得表面粗糙度最可靠的值,一般取几个连续的取样长度进行测量,并以各取样长度内测量值的平均值作为测得的参数值。这段在X轴方向上用于评定轮廓的并包含着一个或几个取样长度的测量段称为评定长度。当参数代号后未注明时,评定长度默认为5 个取样长度,否则应注明个数。例如:Rz0.4、Ra30.8、Rz13.2分别表示评定长度为5个(默认)、3个、1个取样长度。 (2)极限值判断规则 完工零件的表面按检验规范测得轮廓参数值后,需与图样上给定的极限比较,以判定其是否合格。极限值判断规则有两种: ① 16%规则运用本规则时,当被检表面测得的全部参数值中,超过极限值的个数不多于总个数的16%时,该表面是合格的。 ②最大规则运用本规则时,被检的整个表面上测得的参数值一个也不应超过给定的极限值。 16%规则是所有表面结构要求标注的默认规则。即当参数代号后未注写“max”字样时,均默认为应用16%规则(例如Ra0.8)。反之,则应用最大规则(例如Ramax0.8)。 3. 标注表面结构的图形符号 标注表面结构要求时的图形符号种类、名称、尺寸及其含义见表9-1。 表9-1 表面结构符号

NET平台下的BS开发框架

.Net平台下的B/S开发框架分类 总体来说,目前.Net平台下的B/S开发框架基本可以分为三大类: 1.基于控件和页面事件驱动思想的Web Forms 2.基于模型、视图、控制器的MVC模式 3.综合了Web Forms和MVC的一些特点而产生的框架(不是本文的介绍重点) 到目前为止,https://www.wendangku.net/doc/a76464284.html, Web Forms和https://www.wendangku.net/doc/a76464284.html, MVC都有着各自的追捧者,双方都认为各自所使用的技术才是最好的,我个人很反对这种观点,马克思等革命先烈告诉我们,看待事物要用辩证、唯物的思想,存在即合理。作为开发人员的我们,眼光不能太狭隘,多掌握一门技术总是好的事情。而本文也尽量从客观、平等的角度出发,做一个相对公正全面的对比,而不是某种技术框架的推崇。

进制字节流。而客户端在接收到返回到信息之后,将这些信息解析出来,就形成了我们在浏览器上看到的实实在在的页面,至此就形成了一个完整的请求过程。 好吧,上面这些介绍可能和本文的这个议题没有太直接的关系,可能也有人为认为这些是一个很简单的问题,可是,你真的理解HTTP协议了吗?真的理解应用程序生命周期和页面生命周期了吗?你真的理解了我们经常用的Response.Redirect(“url”)对应的HTTP 状态是301还是302吗?之所以介绍这么多,还是因为个人认为:要想较好的设计B/S系统结构,或者说写出高效、优雅的B/S代码,这些都是不可或缺的知识。 What https://www.wendangku.net/doc/a76464284.html, Framework 先看一段解释:NET Framework又称.Net框架。是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。.NET包含许多有助于互联网和内部网应用迅捷开发的技术。.NET框架是微软公司继Windows DNA之后的新开发平台。.NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB、C++、Python等)的开发。.NET也为应用程序接口(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行Windows应用软件和网络应用软件以及组件和服务(web服务)的开发。.NET提供了一个新的反射性的且面向对象程序设计编程接口。.NET设计得足够通用化从而使许多不同高级语言都得以被汇集。 .Net Framework作为微软面向企业级应用的重要战略之一,有着十分重要的意义。.Net Framework是运行于.Net平台上所有应用程序的基础。而每一次版本的发布,

Linux内核QoS实现机制

Linux内核QoS实现机制 1.QoS介绍 QoS(Quality of Service)即服务质量。对于网络业务,服务质量包括传输的带宽、传送的时延、数据的丢包率等。在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。 网络资源总是有限的,只要存在抢夺网络资源的情况,就会出现服务质量的要求。服务质量是相对网络业务而言的,在保证某类业务的服务质量的同时,可能就是在损害其它业务的服务质量。例如,在网络总带宽固定的情况下,如果某类业务占用的带宽越多,那么其他业务能使用的带宽就越少,可能会影响其他业务的使用。因此,网络管理者需要根据各种业务的特点来对网络资源进行合理的规划和分配,从而使网络资源得到高效利用。 流量控制包括以下几种方式: ?SHAPING(限制) 当流量被限制,它的传输速率就被控制在某个值以下。限制值可以大大小于有效带宽,这样可以平滑突发数据流量,使网络更为稳定。shaping(限制)只适用于向外的流量。 ?SCHEDULING(调度) 通过调度数据包的传输,可以在带宽范围内,按照优先级分配带宽。SCHEDULING(调度)也只适于向外的流量。 ?POLICING(策略) SHAPING用于处理向外的流量,而POLICIING(策略)用于处理接收到的数据。 ?DROPPING(丢弃) 如果流量超过某个设定的带宽,就丢弃数据包,不管是向内还是向外。

2.内核实现过程 图表 1 流量控制过程 绿色部分就是Linux内核实现的QoS模块,其中ingress policing 是处理输入数据包的,而output queueing 则是处理输出数据包的。 2.1.Ingress实现机制 Ingress QOS在内核的入口点有两个,但是不能同时启用,这取决于内核编译选项。当打开了CONFIG_NET_CLS_ACT(from 2.6.8 release still available on 2.6.39 release)时,入口点在src/net/core/dev.c的netif_receive_skb函数中;当没有打开CONFIG_NET_CLS_ACT,而是打开了CONFIG_NET_CLS_POLICE (from 2.6.9 release to 2.6.24, thus this is an obsolete configuration)和CONFIG_NETFILTER时,就会在netfilter的PREROUTING钩子点处调用ing_hook函数。

Java快速开发平台J-Hi

Java快速开发平台:J-Hi (1) 论J-Hi平台的特点 (5) J-Hi快速开发平台到底快速在哪里? (9) “J-Hi”平台相关下载 (14) 所谓平台:该怎么理解? (16) 浅谈J-Hi的理论基础 (17) 剖析J-Hi对组件化的理解 (20) 对“J-Hi”Java快速开发平台问题的答疑解惑 (25) Java快速开发平台:J-Hi J-HI是一款JAVA WEB应用软件快速开发开源平台,主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的一站式的JAVA WEB应用软件快速开发解决方案。 J-HI是什么 J-HI是一款JAVA WEB应用软件快速开发开源平台,主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的一站式的JAVA WEB应用软件快速开发解决方案。 平台包括如下几个部分: 1、J-HI平台集成环境:J-HI团队开发了一个集成开发环境J-HI Studio,在此集成开发环境之上,开发人员能够快速搭建自己的开发环境,创建自己的模型,快速生成代码。 2、核心框架:平台为Java代码与JS代码之间提供了一套完整的面向对象的核心框架支撑系统,可以认为这是一个抽象层,无论是在页面表现上,还是在 CURD的任意一层,平台均提供了最大限度的抽象。用以保证平台本身的可扩展性、稳定性及灵活性。J-HI平台中提供了大量的API(Java与JS),为用户在开发过程中随需调用,从而进一步加快开发速度,保证代码质量。

3、业务平台功能:包括权限管理、组织结构、枚举管理、国际化管理、任务管理、日志管理、Excel报表管理、消息管理等。 4、工作流:包括工作流引擎及流程编辑器等。 J-HI有什么特点 1、基于业务模型,可以快速生成,提高大大提高开发速度。

软件开发平台的概念

软件开发平台的概念 1 软件开发框架的概念 在企业应用软件开发领域,往往存在两种选 择,那就是SUN 公司的SUN ONE 框架平台 和.NET Framework(一般业内简称.Net 框架平台)。 J2EE 只是SUN ONE 平台下的一个概念性的 开发应用平台而已。跟.NET 框架平台不是一个 级别性的东西,只有一般不了解技术的人才把一个架框平台和一个开发平台进行比较。 一般来说,Windows .NET Framework 是Microsoft 的Windows 系统中经过精心定义的技

术框架,微软所有开发系统产品的多年的整合,而J2EE 则是一个书面的协议,只是一个技术要 领。如果不局限于学术方面的讨论,换句话说,就是在几个应用平台上讨论这个话题的商业价值,没有任何意义。仅仅于技术初学者在学习技术的初级阶段寻找一个的指导方向而已,能够让技术的入门者确定寻找工作的目标。

2 .NET 框架平台和J2EE 介绍 2.1 .NET 框架平台介绍 .NET 全称Windows .NET Framework 来自于 微软,是一套全能的框架平台,支持C++ 、C#、J++、VB、ASP 等语言,能够解决C/S、B/S 和单机等结构的软件开发需求。.NET 平台将这些语言编译成CLR 语言,使它们可以无差别的运行 在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET 框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务。 .NET 框架平台的目标是“多种语言共享一种平台”,把所有的企业开发应用统一到一个架框里来。 2.2 J2EE 介绍 J2EE 基于各个软件组件的企业服务应用平台。需要专业成熟的软件公司花费大量的精力和时间去布署才能发挥J2EE 架构的企业级应用组件功能。

国内知名技术开发平台(项目管理平台)汇总DOC

中国知名技术开发平台汇总 1 金蝶EAS BOS 1.1 简介 基于EAS BO S构建的金蝶EAS系统,是一套完整的企业管理解决方案,是一套技术标准完全开放的系统,是一套易于集成的系统,有效解决了当前软件产业的三大难题,即如何快速适应变化、如何提高软件研发效率和如何集成各种应用系统。 1.1.1金蝶BOS是什么 金蝶BOS是金蝶ERP的集成与应用平台。金蝶BOS遵循面向服务的架构体系,是一个面向业务的可视化开发平台;是一个金蝶ERP 和第三方应用集成的技术平台。 1.1.2金蝶BOS能解决什么问题 ◆解决ERP日益增加的应用复杂度和快速开发/实施的矛盾 ◆能够快速配置或快速定制业务流程并部署到金蝶ERP中 ◆为客户提供与金蝶ERP集成的、可升级的、高效的、简单易用的 开发工具

◆满足企业发展与变化的应用需要 1.2 EAS BOS集成开发环境 1.2.1业务建模工具 如果按照传统的开发方式,建立数据表、编写界面、编写菜单、编写代码,虽然是三个简单的步骤地实现,其开发工作量仍然是巨大的。这还不包括为一个集团企业开发应用所需要考虑的权限、编码、组织结构、打印等等大量的基础性工作。而通过BOS IDE中的业务建模工具可以大大提高类似业务基本结构的开发效率。 如上图所示,通过业务建模工具可以快速完成: ●基础资料自定义、业务单据自定 ●定义资料的查询和过滤功能

●设置核算项目、设置薪酬项目、设置业务范围 ●主菜单管理 ●工具栏和菜单栏的菜单管理 ●权限管理 ●集成工作流、单据转换平台、编码规则 1.2.2流程配置工具 流程配置工具,是在BOS IDE中提供的遵循Wfmc标准的工作流建模工具。可以实现业务流程的新增,修改,删除等配置,校验发布等部署以及导入导出等快捷操作。 如下图所示,在流程配置工具中,通过活动的输入输出属性与连接弧来控制流程的流转。 流程配置工具中支持的节点类型包括: ◆开始节点 ◆结束节点 ◆人工型节点 ◆自动应用节点 ◆子流程节点 ◆路由节点(空节点) ◆审批节点

linux内核通信-netlink使用例子

Netlink 是一种特殊的socket,它是Linux 所特有的,类似于BSD 中的 AF_ROUTE 但又远比它的功能强大,目前在最新的Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由daemon (NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态socket 协议(NETLINK_USERSOCK),防火墙(NETLINK_FIREWALL),socket 监视(NETLINK_INET_DIAG),netfilter 日志(NETLINK_NFLOG),ipsec 安全策略(NETLINK_XFRM),SELinux 事件通知(NETLINK_SELINUX),iSCSI 子系统(NETLINK_ISCSI),进程审计(NETLINK_AUDIT),转发信息表查询(NETLINK_FIB_LOOKUP),netlink connector(NETLINK_CONNECTOR),netfilter 子系统(NETLINK_NETFILTER),IPv6 防火墙(NETLINK_IP6_FW),DECnet 路由信息(NETLINK_DNRTMSG),内核事件向用户态通知(NETLINK_KOBJECT_UEVENT),通用netlink (NETLINK_GENERIC)。 Netlink 是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的socket API 就可以使用netlink 提供的强大功能,内核态需要使用专门的内核API 来使用netlink。 Netlink 相对于系统调用,ioctl 以及/proc 文件系统而言具有以下优点: 1,为了使用netlink,用户仅需要在include/linux/netlink.h 中增加一个新类型的netlink 协议定义即可,如#define NETLINK_MYTEST 17 然后,内核和用户态应用就可以立即通过socket API 使用该netlink 协议类型进行数据交换。但系统调用需要增加新的系统调用,ioctl 则需要增加设备或文件,那需要不少代码,

(完整版)配置型软件开发平台

配置型软件开发平台 一、软件开发平台背景 最终用户:现成的软件不适合,定制开发又太贵,而且我们的业务经常会变化,我们想自己开发,又没有专业人才!我们最懂自己的业务流程,很想自己开发自己的软件,这样以后修改扩展均不求别人了,可我们不懂软件编程! 软件公司:人工成本太高,留住人才太难,人才走了,产品完了。就算开发好的产品,个性化修改太累并易导致BUG!技术日新月异,软件要天天升级更新,稍慢了一点,就被其他公司抢占了先机,搞得精疲力尽,苦不堪言。 1、最终用户 1.1、通用性和个性化的矛盾 对企业管理最了解、最能正确决定企业管理模式的,应该是企业经营者,而非软件公司,这是最基本的商业运作规律。现有的大部分应用软件无法适应管理千变万化的个性和持续变革的需求。为了取得市场生存和竞争的优势,适应瞬息万变的市场环境,需要快速响应市场的需求,不断调整自己的组织模式和再造自己的业务流程,业务流程的设计、优化和管理成为企业竞争的重要手段,企业迫切需要支持其业务流程再造的信息系统的支持。市场上有很多管理软件,可为什么就找不到真正适合您单位需要的呢?不是功能太少,就是浪费太多,找一款称心如意的管理软件,真是太难了!对软件开发商来说,为每一个用户定做系统成本太高;对用户来说,对软件最根本的需求就是适用,只有适用,才会真正有人去用。企业迫切需要解决这种通用性和个性化的矛盾。 1.2、变与不变的矛盾 业务需求千变万化,企业的不断发展要求软件能轻松更新,以满足企业不断变化的需要。而传统软件往往一经开发完成,不能做太多变动,重新开发或购买软件劳财伤力,而且周期长。因此,用户希望软件系统提供简单可行、快捷的二次开发平台,以便他们自己开发新的应用或修改现有应用,以满足不断发展变化的业务需要。 1.3、定制开发价格和企业预算相距太远的矛盾 用户要求有价廉物美软件定制服务,以打造一款真正称心如意个性软件,但开发费用又不能太多。而开发商在定做软件时,由于投入较大,价格无法降低。企业最懂自己的需求和业务流程,迫切想自己开发自己的业务系统,但又缺少专业开发人员。

国内知名技术开发平台

1 金蝶EAS BOS 1.1 简介 基于EAS BO S构建的金蝶EAS系统,是一套完整的企业管理解决方案,是一套技术标准完全开放的系统,是一套易于集成的系统,有效解决了当前软件产业的三大难题,即如何快速适应变化、如何提高软件研发效率和如何集成各种应用系统。 1.1.1金蝶BOS是什么 金蝶BOS是金蝶ERP的集成与应用平台。金蝶BOS遵循面向服务的架构体系,是一个面向业务的可视化开发平台;是一个金蝶ERP 和第三方应用集成的技术平台。 1.1.2金蝶BOS能解决什么问题 ◆解决ERP日益增加的应用复杂度和快速开发/实施的矛盾 ◆能够快速配置或快速定制业务流程并部署到金蝶ERP中 ◆为客户提供与金蝶ERP集成的、可升级的、高效的、简单易用的 开发工具 ◆满足企业发展与变化的应用需要

1.2 EAS BOS集成开发环境 1.2.1业务建模工具 如果按照传统的开发方式,建立数据表、编写界面、编写菜单、编写代码,虽然是三个简单的步骤地实现,其开发工作量仍然是巨大的。这还不包括为一个集团企业开发应用所需要考虑的权限、编码、组织结构、打印等等大量的基础性工作。而通过BOS IDE中的业务建模工具可以大大提高类似业务基本结构的开发效率。 如上图所示,通过业务建模工具可以快速完成: ●基础资料自定义、业务单据自定 ●定义资料的查询和过滤功能 ●设置核算项目、设置薪酬项目、设置业务范围 ●主菜单管理 ●工具栏和菜单栏的菜单管理 ●权限管理 ●集成工作流、单据转换平台、编码规则

1.2.2流程配置工具 流程配置工具,是在BOS IDE中提供的遵循Wfmc标准的工作流建模工具。可以实现业务流程的新增,修改,删除等配置,校验发布等部署以及导入导出等快捷操作。 如下图所示,在流程配置工具中,通过活动的输入输出属性与连接弧来控制流程的流转。 流程配置工具中支持的节点类型包括: ◆开始节点 ◆结束节点 ◆人工型节点 ◆自动应用节点 ◆子流程节点 ◆路由节点(空节点) ◆审批节点 ◆决策节点 ◆等待节点 ◆消息节点 ◆脚本节点

netlink实现分析

本文档的Copyleft归wwwlkk所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性,严禁用于任何商业用途。 E-mail: wwwlkk@https://www.wendangku.net/doc/a76464284.html, 来源: https://www.wendangku.net/doc/a76464284.html,/?business&aid=6&un=wwwlkk#7 netlink实现分析 (1)网络file对象。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1 (2)netlink网络file对象。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 (3)netlink消息接收端。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 (3.1)内核路径注册netlink接收端。。。。。。。。。。。。。。。。。。。。6 (3.2)用户进程注册netlink接收端。。。。。。。。。。。。。。。。。。。。6 (3.3)内核netlink接收端接收消息。。。。。。。。。。。。。。。。。。。。6 (3.4)用户进程netlink接收端接收消息。。。。。。。。。。。。。。。。6 (4)通信效率分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7 (5)实现零拷贝的两个理论方案。。。。。。。。。。。。。。。。。。。。。。。。。。。7 (1)网络file对象 当网络双方的通信线路建立好之后,双发就可以开始互相传递数据,可以使用write()和read()传递数据。可见网络通信也同样使用了文件系统的架构,这里的file对象是比较特殊的,结构如图1所示: 图1 网络file对象结构 其中static const struct file_operations socket_file_ops = { .owner = THIS_MODULE,

IEC 60947-2:2016版与现行国标GBT 14048.2-2008的差异对比分析(印刷版)

IEC 60947-2:2016版与现行GB/T 14048.2-2008的差异对比分析 现行国标GB/T 14048.2-2008《低压开关设备和控制设备第2部分:断路器》等同采用IEC 60947-2:2006,IEC于2016年5月15日发布其第5版,目前,IEC已开始对第5版修订(修改单1),预计在2019年2月形成一份修改单。 现对IEC 60947-2:2016(第5版)与GB/T 14048.2-2008进行分析,标准中除了对文本格式(比如之前的悬置段增加了相应条款引出,注中不能包含要求等)进行统一修改外,主要的技术差异为: ——扩大了范围中交流电压的上限,即不超过1500V; ——增加术语“2.21 过电流整定值Ir”和“2.22 可编程逻辑控制器”(PLC); ——补充额定值超过交流1000V的冲击耐受电压、电气间隙、介电试验等相关规定; ——增加“7.1.8用于带有可编程逻辑控制器(PLC)的数字输入与输出要求”; ——在“8.3.1 试验程序”中,增加具有不同极数的断路器的可选择试验程序,并新增表9b和9c; ——增加“8.3.9 临界直流负载电流试验”,主要针对直流断路器规定试验要求; ——增加“8.5 特殊试验-湿热、盐雾、振动和冲击”,采用GB/T14048.1(IEC 60947-1)的附录Q,做相应的修改,对严酷环境中断路器的使用做出了规定; ——附录A中,细化“A.5 验证选择性”的内容,增加选择性的理论研究和通过试验确定选择性两种方法的规定和要求; ——附录B、F、J、M中更新相关EMC性能和要求条款; ——新增“附录P 光伏用直流断路器”; ——新增“附录R 带自动重合闸功能的剩余电流断路器”。 具体技术差异如下: 1.标准条款1总则 在1.1“范围和目的”中,扩大了交流范围,即额定交流电压高于1000V但不超过1500V 的断路器可按本标准进行试验。在现行标准中,适用范围交流不超过1000V,这一变化主要是根据新兴领域用断路器的电压等级发展需求,而使得其适用电压范围得以扩大。 2.标准条款2术语与定义 对于“2.3 限流断路器”明确了对限制允通I2t值的要求(其限制允通I2t值小于对称预期电流半个周波的I2t值)。 修改“2.17.1 过电流选择性”的定义:两台或多台过电流保护电器的一种操作特性的配合,例如保护电器在规定限值的过电流的情况下实现过电流保护,另外的保护电器不动作。(不强调电源侧保护电器的过电流保护) 删除了“2.17.5 后备保护”的内容。 增加术语“2.21 过电流整定值Ir”和“2.22 可编程逻辑控制器”(PLC)。

EOS快速开发平台项目开发规范草稿

1.1.项目名称: 1.2.构建包命名 项目名称+构建包名(模块名) 1.3.如: 系统各业务构建包说明 财务处办公应用模块 企管处办公应用模块 总调办公应用模块 工程技术办公应用模块 人事处办公应用模块 信息处办公应用模块 物贸处办公应用模块 办公室办公应用模块 规划处办公应用模块 公共办公应用模块 质量处办公应用模块 安全处办公应用模块 思政处办公应用模块 移动端应用模块 BPS参与者规则维护模块 通用公共功能,如各种通用的公共组件 主模块,如系统主页面、系统设置、用户管理等功能 对内、外服务接口功能 以下部分构件包一般情况不需要做修改: 我的任务模块功能包 2.1.数据集

一般根据业务名称或功能模块来命名数据集。 2.2.数据实体 数据实体名称与数据库表名对应,如表HR_OUT_LEAVE_APPLY对应实体名为HrOutLeaveApply。 2.2.1.主键生成 一般业务表单数据主键用”自动生成uuid” 2.2.2.字段类型 日期(不保存时间)类型用Date; 日期时间(保存时间)类型用TimeStamp; 其它常规数据类型与数据库类型对应即可。 3.1.JSP创建 通过功能向导自动生成必要jsp文件; 每个页面的头部必须加上注释说明和资源引入,并在title中描述标题。 3.1.1.一般需求jsp示例 HrAnnualLeaveApplyForm 新增表单页面 HrAnnualLeaveApplyEdit 修改编辑页面 HrAnnualLeaveApplyFormAudit 表单审核页面 HrAnnualLeaveApplyList 数据列表查询页面 3.1.2.注释 <%-- - Author(s): 开发员拼音驼峰全名(如:LiLong) - Date: 2015-03-01日期 - Description: 功能说明及一些重要流程说明描述 --%> 3.1.3.head标签 <%@include file="/common/"%> <%@include file="/coframe/tools/skins/" %>