iNET:Microsoft.NET

iNET:Microsoft.NET

至2000年底,Microsoft开始发布有关.NET这一全新的应用开发架构的细节,这些细节最初有些模糊,以至引起很多嘲笑,被视为"令人担心的、不可靠的、 让人怀疑的"。然而,当Beta版的新版Visual Studio--Visual Studio.NET出现在开发者面前时,与现实相结合,.NET框架价值显而易见,而绝不是FUD。随着"冰雹"(一套Microsoft计划提供给其它厂商能兼容他们自己应用软件的网络服务)的正式宣布,.NET以一种"革命性"的、开发各类运用软件的新路呈现在公众眼前。

  实际上,作为一个不明显的举措,Microsoft也强调它将完全支持非Windows的平台,包括Unix和Linux等等。其它不讲,而支持非Windows平台的承诺和增加可靠性及更简单的终端用户体验一样更突出了应用软件开发中另一个也有同样重大意义的进步。

  Halcyon Software, Inc. (http://www.halcyonsoft.com) 继成功开发了iASP(Microsoft ASP 的Java构架,可将ASP运行在任何支持Java的平台)之后,针对微软提供的全新开发环境Microsoft.NET,Halcyonsoft正致力于将Microsoft.NET 进行跨平台移植。

  在本文中,让我们首先了解一下Microsoft.NET框架和它给开发者及用户所好处。其二,描述Halcyonsoft针对.NET的开发研究,特别是如何在Java的基础上重建.NET框架以及暂时被命名为"Instant.NET" (iNET) 这一产品所能带来的引人注目的优点。

  .NET的大体结构

  总的来说,.NET可以分为三个部分:

   --.NET框架--一个全新设计的开发环境,使开发者更容易建立网络应用程序和网络服务。

   --.NET产品--基于.NET平台的Microsoft开发的应用软件,包括Office和Visual Studio。

   --.NET服务--协助第三方开发者创造.NET平台服务(网络服务的范例是一套州,郡,市的税务表格,这些表格被提供给电子商务购物车的开发者,这样他们可以代理网上购物的销售税务而免去庞大的数据维护管理额外开销的担忧)Microsoft的"冰雹"起初实际上是一举将最流行的网络服务包揽于"Microsoft"这一品牌名下。

  新的.NET发展框架还可以细分,大致分为三个部分:

   --一个运行时引擎,被称为"公共语言运行时"(CLR), 它处理存储分配,错误限制和所有编程中遇到的繁忙工作。

   --一套广泛的类库,从基础的写起,涵盖任何您所需求的功能。

   --两大高阶层的发展"舞台",提供给网络应用软件(ASP.NET) 和常规Windows应用软件(Windows Forms)。

  有关.NET框架的各种要素及它们之间的相互关系的更详细的情况请见下列图表:



  .NET框架可以缩短开发周期(代码重新使用,减少编程难题,支持多种编程语言),也可以更容易的配置(简单的XCOPY安装成为可能),而且真正的垃圾收集器的出现使得错误减少,并且是在更灵活可靠的应用软件里。现在让我们仔细考察一下.NET框架的各个部分。

  公共语言运行时(CLR)

  .NET应用软件被编译到众所周知的Microsoft中间语言(MIL或者IL) 这一公共语言。CLR处理将IL编译成机器语言,在这时程序被执行。CLR体系结构有以下几个优点:

  · 更少的涉及内部测量

  · 广阔的工具支持

  · 更简单的配置("DLL Hell"结束)

  · 更精确的尺度

  · 支持多种编程语言

  · 拥有一个公共数据类型系统

  有关CLR的特点详见下图:




  当然,这些概念并不是真正意义上的革命,就如碎片收集已经提出了几十年一样。CLR看起来像Java虚拟机,而IL类似于Java字节代码。尽管如此,对于习惯于开发Microsoft平台的程序员来说变化是根本的,其受益也是菲浅的。

  多语言支持

  CLR允许开发组在一个项目中运用多种语言,而且这些语言都能在一起工作。因为元数据额外的处理了所有的翻译,所以不需要接口定义语言。(原数据包括各类信息:运用软件的描述(名称、版本、共众关键字、输出类型、从属物等);基类和已用的界面;自定义属性(用户定义的和编辑者定义的)。)现在用Cobol, Fortran, C++, C# 和 PERL 完成一个单一项目是好是坏已是另外一个问题,但对于旧系统集成,多语言支持则是雪中送炭。(第三方已经着手于COBOL (Fujitsu), PERL, 和Python (ActiveState)语言支持。实际上计划中有50多个项目。)另外,Microsoft进一步改善了两大核心编程语言:C# 推动 C++进入21世纪,它抛弃了很多语言负债(支持指示器和选择案例失败,比如,Java等)VB.NET被大面积的修补,现在是一种真正的支持多态性、继承性等的面向对象语言。

  公共类型系统(CTS)

  .NET公共类型系统 (CTS) 是一套新型的公共数据类型,该公共数据类型在CLR中已被定义。包括所有的标准类型,int, float, double等;然而,CTS能使得程序员在较低的水平更好的完成数据类型转换。另外,从一种语言调用另外一种语言再也不需要奇怪类型转换或调用规范。

  .NET框架类

  结合CLR,Microsoft也开发了一套全面的框架类,其中有一些如下:




  这些框架类最大的优点是无论你用何种语言工作都能达到同样的效果,像平方根操作调用。另外,各种语言都能达到同样的功能性。框架类里的功能性包括用户界面(Windows Forms(传统的Win32应用程序);Web Forms(ASP.NET的窗体引擎);Server controls(服务器端的可再度使用用户界面);控制台应用软件及程序界面--互联网上可用的第三方应用程序的Web Services)。

  WinForms和ASP.NET

  WinForms仅仅是一个用来描绘标准Win32应用程序产生的名词。现在开发者拥有单一协调的类框架,而不再依靠三大不同的API:COM组件(ADO,MSXML等)、平台相关(Win32,Win16等)和语言相关(VBRUN,MFC等)。

  在.NET下ASP网络发展框架经历了重大变化。例如,现在成熟的VB或C#(或任何被支持的.NET语言)是编程语言的选择,VBscript和JScript支持仅仅是对旧兼容性的许可。其它重大变化包括:

  1、对HTML服务器控制的新支持(服务器支持会话状态)

  2、服务器能处理客户事件

  3、新型控制系列包括增强的Intrinsics、Rich控件、List控件、DataGrid控件,Repeater控件、Data list控件和确认控件。

  4、对发展网络服务的新支持--通过互联网可达到的现成应用逻辑,其可用简单对象存取控制协议(SOAP)集成到.NET应用软件中。

  为什么要用Java来实现.NET?

  两个本质原因:

   --即时跨平台支持

   --与成熟的支持完备的Java技术的集成

  从上述描述看,Microsoft隐藏了每个基础。从发展观点看,这是肯定的;

  但从配置角度看,其中存在着障碍:跨平台支持。Microsoft的.NET体系机构类似于Java,CLR对应于Java虚拟机,因此至少在理论上能运行于多个平台。

  用Java虚拟机CLR和.NET框架类需要被转移到目标平台,而这一转换并非无关紧要的任务。例如,广为传言Corel正在致力于一个Linux.NET端口,尽管它最近在财政上受挫,任何具体的时间表仅是如意算盘。本着这一目标,Halcyonsoft(http://www.halcyonsoft.com)开始了运用Java这一很多平台支持的开发语言来开发.NET框架。Halcyonsoft的Instance.NET项目的优点是一旦完全转换到Java,.NET应用软件将能在任何支持Java的平台运行,从S/390主机到IBM基于Linux的手表。

  跨平台支持对于.NET网络服务的部署变得越来越重要。.NET网络服务即可以通过互联网整合到其它应用软件的.NET应用软件,本质上其需要配置到一个有最大正常运行时间的良好环境。例如,当网络服务主平台重新启动而导致交易周期性中断,如果你购买了前面所提到的包括在公司购物车软件里的税收表应用程序,情况会乐观一些。网络服务卖主的确有必要在一定的服务合同下对系统停机时间负责(希望有此合同)。就此移植关键任务的网络服务到像Solaris或OS/400等良好的平台对于双方都具有重大意义。实际上像IBM的S/390这种重负荷机能被用作网络服务伺服器,作为成千上万台Linux虚拟机的主机。

  还有额外的好处是.NET应用软件也能捆绑像JavaBeans, EJB,及CORBA组件等基于Java的技术。这些.NET应用软件也同样能互相作用于来自Oracle, BEA, IBM和Sybase的大型应用服务器。

  Halcyonsoft的Java.NET如何工作的?

  尽管用Java复制.NET框架所需的开发努力是巨大的,但从开发者角度看实际操作应该是简单的。运用一个"il2java"的命令行实用程序,开发者能直接将他们的.NET应用软件的中间语言转换为Java字节代码或Java源代码(或者根据情况转换为这两种代码)。然后由被转换的Java.NET应用程序和必要的支持库组成的运行时软件包将产生并被配置到可运行Java的平台上。

  当在Java平台上找不到一种特定的服务时,像Microsoft Office,我们将利用和更新我们的Java Bridge--RJAX。RJAX是一种高性能的桥服务器,它设置在Windows机器上,可以使Java应用程序访问.NET应用程序及旧的COM/COM+/ActiveX

  对象和DLLs。现在2.1版本的RJAX是一个良好的、高速度的、易升级的解决方案,能使我们寻找到任何无法预料的Windows特殊的从属物。

  下列图表表示了与Microsoft的.NET体系相联系的Halcyonsoft的.NET体系结构:




  在Java.NET引擎和Microsoft后台服务之间的箭头表示上面讨论过的RJAX Bridge。

  其它服务,像MSMQ和MTS被划为他们Java的相对部分,分别是JMS和JTS.因为他们的SOAP通信界面将在Java和原始.NET两个版本中保持一致,网络服务将会有明显的处理。

下图更详细的描述了Halcyonsoft的.NET的执行体系结构:




  目前,Halcyonsoft正致力于开发Java.NET,并将于今年10月份正式推出其中的一部分-ASP.NET Beta版。为了获得更多的有关的应用实例,Halcyonsoft邀请其原有的iASP(Microsoft ASP的Java构架,可跨平台)用户及更多的开发者作为其测试者,Halcyonsoft将免费为其Beta版测试者作ASP.NET的案例研究。

  资料国际资源: http://www.halcyonsoft.com  
要求: 本次课程设计利用《软件设计基础-VB》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。 要求: 1、对系统进行功能需求分析 2、设计合理的数据结构和系统框架 3、界面设计美观、清楚、合理 4、编程简练,程序功能齐全,能正确运行 5、具有一定的创新性 6、说明书、流程图要清楚 7、课题完成后必须按要求提交课程设计报告 任务: 题目描述与功能要求 题目描述:“打冰雹”游戏是指从窗口顶部落下多个圆球表示的“冰雹”,用户使用鼠标来指引箭头表示的“枪”瞄准其中一个圆球,单击鼠标射击。如果打中圆球则加分,没打中减分。若累积有5个圆球一直未被击中而落到地面(用水平黑线表示),则失败。用户玩游戏的目标是尽量短的时间内得尽量多的分数,同时避免圆球落地。 功能要求:(1)设计图1.26(课本)所示的窗口界面。程序启动时,自动进入游戏状态,10个不同颜色的圆球从窗口顶部向下运动。用户使用鼠标指向其中一个圆球,然后单击。如果击中圆球则加1分,未击中则减1分,分数显示在“得分”文本框中。“所用时间”文本框中显示当前已用的时间。被击中的圆球立即消失,新的圆球从顶部落下。 (2)要求同时显示10个圆球,每个圆球的颜色和下落速度各不相同。窗口底部的箭头一直指向鼠标指针的方向。单击鼠标射击时,显示一条从箭头发出到达鼠标指针的直线表示子弹轨迹。 (3)程序共有4个难度等级,分别是“简单”、“中等”、“较难”和“高级”。默认的难受为“中等”。不同的等级对应不同的总体下落速度。在游戏过程中,随时可以通过“选择难度”组合框来改变难度级别。 (4)游戏开始时,提供的“能量”数是5。如果有一个圆球落到地面,则减1。当能量为0时,显示如图1.27所示的消息框。然后,程序自动将难度改为“简单”让用户重新开始,这时能量恢复为5,得分从0开始。 (5)圆球落地后立即消失,新的圆球从顶部落下,窗口上始终保持有10个圆球。 游戏过程中,当得分达到25时,显示如图1.28所示的提示;当得分达到50时,显示如图1.29所示的提示;当得分达到100时,显示如图1.30所示的提示,并自动将难度设为“较难”,当得分达到150时,自动将难度设为“高级”。 3.课程设计说明书 ⑴功能描述;本题目的程序设计由三个窗体组成。 窗口一:为开始界面,主要实现游戏的开始、退出以及游戏规则介绍功能。 窗体二:为游戏界面,内设置游戏进行,可通过对combol的选择改变难易程度。 窗体三:为结束界面,主要目的,提醒玩家通关成功 (2)详细设计 总体流程图: 各功能模块流程图: 窗体一:开始界面 窗体二:游戏界面 窗体四:结束界面 ⑷代码实现 本题目的程序设计由三个窗体组成。分别由五个Timer,五个TextBox,一个ComboBox,七个Line,十个shape十个Label,一个medio player等控件组成。窗体2为主要窗口,它的设计如下: 窗体2中控件列表 序号 控件名称 控件类型 功能 1 Label 标签 对文本框与组合框进行说明 作为提示,装饰界面 2 TextBox 文本框 显示程序运行的结果即得分Text1、剩余能量Text2、所用时间Text3(0)、Text3(1)、Text3(2)的数值 3 ComboBox 组合框 显示选择难度 4 Timer 定时器 在程序运行的过程中不断地累积时间,当达到给定的时间间隔时,自动地引发名为Timer的事件。Timer1控制冰雹下落的并通过combo-click选择不同的难程度掉冰雹的速度,timer2.timer3是记录玩游戏所用时间分别控制秒和毫秒 5 Picture 图片框 通过图片加载,装饰页面picture1是游戏中界面,picture2休息界面 6 Shape 形状 显示多种不同的形状,装饰窗体,这里即圆形 7 Line 直线 在窗体上显示一条直线。 Line2到Line7是做指针用的,Line1是作为冰雹没有打中落下去让冰雹消失 8 medieplayer 播放器 当鼠标击打冰雹时,放出声音 各窗体的代码介绍 form1—开始界面 作用:“进入应用程序”。 所用控件:4个标签,1个时钟,3个command 设计思路:用时钟控制label1的运动。单击command开始按钮可进入后面窗体,退出按钮可关闭窗体,帮助按钮查看游戏规则。 核心代码如下: 窗体1—开始界面 Private Sub Command1_Click() Form2.Show Unload Form1 Timer1.Enabled = True’开始按钮,控制游戏的开始 End S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值