JAVA网页设计可供C#和Visual Basic挪用的WinRT API仓酷云
在1995年5月23日以“Java”的名称正式发布了。只管我们可使用.NET言语来挪用Win32API,但那样做会很坚苦。以是在已往的两年间微软一向在构建替换的计划,它就是完成了跨言语撑持的Windows运转时,即WinRT。我们能够在C++和.NET中创立WinRT组件,而且可由两者和JavaScript利用。只管COM在外表上是一种基于OOP的框架,但它与.NET之间有很年夜的区分。在WinRT呈现之前,COM是基于接口而不是基于类的。这意味着个中短少良多.NET开辟者以为应当有的内容,像机关函数和静态办法等。C++组件扩大办理了这个成绩。
WinRT情势的COM利用的元数据格局和通用言语运转时(CommonLanguageRuntime)不异。这些信息存储在暗示布局的WINMD文件中,只管没有完成,但在一切私有类中城市有。FXCop被用于查验这些文件所表露的API是不是遵守.NETFramework的计划指南。
.NET在最入手下手时就有“API计划委员会(APIDesignBoard)”。受此启示,Windows运转时也会创建API计划委员会来对其举行办理。良多最后的成员都在.NET委员会中,而且良多指南都间接来自于.NET基础类库所遵守的准绳。
Windows运转时会前往HRESULT,而不会抛出非常。关于尽人皆知的HRESULT值来讲,会抛出响应的非常,而关于其他值就只能抛出COMException。
WinRT的IAsyncOperation接口如今利用新的async/await关头字,就像.NET的Task对象一样。
一切Windows运转时的汇合接口都被映照到.NET框架的等价物上。在.NET4.5中增加了IReadOnlyList和IReadOnlyDictionary,用来卖力处置WinRT中的只读汇合。
WinRT和.NETAPI在两个中央没法婚配。WinRT的stream没法间接与.NET的IO.Stream类兼容,可是能够挪用名为AsStream的扩大办法来举行转换。WinRT还具有名为IBuffer的接口,这在.NET中也没法复杂地完成。在此也有一个扩大办法来举行IBuffer和比特数组之间的转换。
我们可使用C#和VB来创立新的Windows运转时程序库,历程十分复杂。为了把类表露为Windows运转时组件,我们只必要把项目范例设置为“WINMD文件”,并确保遵守以下划定规矩:
[*]API署名只利用Windows运转时的范例
[*]布局体只能具有私有的数据字段
[*]只同意对XAML控件利用承继,别的范例都必需利用sealed关头字。
[*]只撑持内建的泛型
编译这些库以后,我们就能够在C++和JavaScript中挪用它们,就像从.NET中挪用一样复杂。
告诫
因为WinRT是基于COM构建的,以是你一样会有援用计数和mark-and-sweep渣滓接纳器之间没法交融的成绩。关于完成了析构函数开释非内存资本的对象来讲,这是最多见的成绩。我们能够思索挪用“Marshal.FinalReleaseComObject”来办理成绩,可是那自己也存在成绩。
COM作风的marshaling必要在.NET和当地组件之间挪用。只管这一般是可有可无的,可是假如API十分不正式,那末就会呈现成绩。
内建的WinRT库(而不是XAML)是在Metro运转时情况以外供应的。但是,第三方的WinRT库并不是云云。这是WinRT中激活框架(activationframework)的限定,而不是.NET的成绩。
检察英文原文:C#andVisualBasicontheWinRTAPI
译者侯伯薇是InfoQ中文站架构社区编纂,有多年对日和国际项目开辟履历,今朝存眷企业中手艺与实践营业之间的交融和合作。
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net网页编程的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。 Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 是一种使网页(Web Page)产生生动活泼画面的语言 是一种语言,用以产生「小应用程序(Applet(s)) 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 是一种突破用户端机器环境和CPU 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种语言,用以产生「小应用程序(Applet(s)) 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
页:
[1]