动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.让Java说话-用Java实现语音引擎.
.J2EE基础:Java EJB容器存取和实.
.Java中的违例自变量.
.对象“友好的”访问.
.软件开发的“简单”艺术—有感于.
.MC4J远程监测Tomcat集群-JMX助To.
.Python anygui 项目预览.
.编写跨平台Java程序注意事项!.
.为什么用 “==” 与 “equal”得.
.设计Java程序与C语言的接口.
.关于applet写入文件的处理.
.仔细触摸Java编程中的“文档”和.
.JDK的环境配置.
.如何在Applet中引用jar中的资源文.
.toUTCString 方法.
.使用 .NET 对事件进行编程.
.给 Java SE 注入脚本语言的活力.
.定义一个包.
.Java Script的应用技巧.
.Java初学者都必须理解的六大问题.

Java不该转换至.Net的五大理由

发表日期:2008-1-5 |



  .Net Framework号称是分布式运算产业的下一波重点。
  
  由于是全新设计,微软这项技术在部分领域上显然有明显进步,如XML整合、错误处理、组件处理,和可重复使用的架构等方面。Web开发的未来十分明确:更快的开发、程序可少写一些、稳定性会更好。
  但是假如你目前的应用软件是用Java EJB(Enterprise JavaBeans)写出来的呢?将这些软件移植到微软新平台值得吗?.Net与Java EJB哪一个比较优秀的话题未来一定还有得吵上一阵子,但这类平台转移的困难度却比较轻易猜测。即使你有非常迫切的技术或商业原因必须作转换,以下还是有五大理由奉劝你不要轻言将Java或J2EE程序转到.Net平台上。
  
  1. CLR不支持Java
  转移至.Net的第一个障碍就是它所支持语言。.Net架构是靠着Common Language Runtime (CLR)来实现多语言的兼容性,但是这个兼容性目前只限于C#、C++、VB和(即将加入的)J# 。而一点也不令人意外的是,Java并非CLR所支持的程序语言。
  要将Java应用程序转移至.Net但又无须以CLR支持的语言重新撰写程序的确是有可能,只需透过Java COM转换程序或Web services(网络服务)即可。然而,Java COM却需依靠第三方软件才能从Java程序代码建立COM DLLs。但这方面在尔后的除错过程会相当困难,同时也增加了环境的复杂度,因此要处理这类异质应用开发必须非常小心,甚至建议不要采用。
  另一种策略就是将Java程序代码转换为C#程序代码。理论上,你可以利用自动化程序将Java码直接转成C# (与J#)语言。例如,ArtinSoft公司的Java Language Conversion Assistant Enterprise Edition (JLCA EE)号称可将Java转成C#语言,正确率高达99%,但这样的产品还没有经过市场验证,且经验法则也会告诉你最好不要信任自动转码机制。不管是使用自动转码方式还是透过手动,语言转换总会涉及架构转变的问题。当你将Java程序改成VB、C++、C#或J# 后,程序中也将会有许多地方必须重新调整(依据应用程序的设置规格而定)。
  服务器控制太麻烦
  2. IIS不支持jsp
  若你认为只要将程序语言从Java改成C#就大功告成,那就错了,.Net还会要求连同呈现(presentation)语言也要一起转换,IIS并不支持JSP。从JSP转换成Asp.Net绝对是一项大工程,且你必须完全重写presentation层不可。另外,许多重要的架构模式在ASP.Net下也不支持,例如透过卷标库的程序代码再利用即是一例。卷标库必须转换成服务器控制或是服务器端的includes(ssi)。有意思的是,支持卷标库的Java classes在概念上正好与.Net的程序代码后置(code-behind)classes相当,但实际转换还是需要花上许多功夫。
  
  
  3.服务器控制需要重新设计
  之前提过,在对.Net的程序代码进行语言转换时,新的架构需求一定也会跟着浮现。这在计画.Net服务器控件(server controls)的实作时更是明显。ASP.Net服务器控件是.Net的最大优势之一。开发人员可利用预先建立的服务器组件,降低重复性的程序撰写,且可轻松透过对象存取各项功能。若希望转换成.Net平台后也能使用服务器控件的好处,你势必要移除许多客制化的呈现层、应用程序与数据库程序代码,并全部改成服务器控件以及所需的数据库逻辑。
  若你是从既有的微软应用程序作升级,此一程序代码的抽取(extraction)并不困难,非凡是之前你有良好的程序撰写习惯的话(分割明朗,条理分明)。然而若是从Java EJB程序作升级时,服务器控件则会动到非常深入的垂直转换,同时将影响到资料、应用程序、以及程序的呈现层。所有之前储存的程序、Java对象,和JSP文件都必须转换成微软支持的标准,同时还需经过修改才能支持Server Control。
  例如,DataGrid对象可复杂的表格功能来呈现资料记录。部分可由使用者自行控制的选项包括行列选择、头标样式以及呼叫(paging)功能等。DataGrid对象比任何客制化或是专属程序代码的功能都更强大、维护也更轻易。但若Java应用程序转换后(假设你要从Oracle资料层转往SQL Server),要利用此一控制选项的话,你需要:
  ‧将P/L SQL重写成Transact SQL,并将查询重新格式化以支持DataGrid。
  ‧将Java程序代码改成.Net所支持的语言以便取出SQL或预存程序,并支持DataGrid的事件模型。
  ‧移除支持现有客制化的呈现对象,并将JSP模板重写成ASP.Net。
  从头至尾 困难重重
  4.不支持CMP容器治理永续性
  假设现有的Java程序是由非SQL Server数据库所支持,那么移植应用程序之后,你还得同时将数据库转移至SQL Server上,或者安装驱动程序好让.Net应用程序能经由非SQL Server数据库保持资料持续性。不管哪一种情况,你都必须将JDBC连接类改写成ADO.Net,并将Java ResultSets移植到ADO.Net DataSets。这项工作本身并不非凡困难,DataSets和ResultSets具有相似的机制,除了实作规格外并不需要动用到架构重建。
  不过当开发团队将对象永续(object persistence)从Java转换到.Net时,问题就会开始出现。.Net并不支持Container Managed Persistence (CMP:容器治理永续性),也没有类似的机制。假如你的程序是靠着CMP来保持对象的永续性,你就必须以内嵌式逻辑重写撰写对象类别才能进行资料撷取与加载。
  5.不同的session处理实作
  EJB标准并不指定session资料的处理,所以EJB session处理实作变成完全与应用服务器有关。由于在不同的session处理实作攸关性能表现、扩充性与网络设计,因此你必须对应用软件中的session-handling机制细节有完全的了解。
  在.Net之中,微软则采用一种分布式session模型,它通过Microsoft SQL Server存储应用软件的状态,使得session资料同时分配给同一网络机房中的多个应用软件服务器。由于.Net依靠SQL Server中的内嵌功能来做session,因此使用Oracle或是其它非SQL服务器数据库的不同类型应用软件,都必须建置一个SQL Server instance只为了当作分布式sessions之用。此外,由于大量的session资料将会降低系统总体性能,因此session储存也必须谨慎使用。
  
  
  转移难度高 成效顶多平手
  .Net Framework代表着微软进军高可用度、企业级应用程序领域的最新成果。以往在IIS、Visual Studio、VB和SQL Server中所缺乏的功能都可在新平台上找得到。微软的开发者和用户现在终于不会矮人一截,不论在扩充性、沿展性、安全与性能上都可与业界对手平起平坐。
  要害问题是,.Net与EJB解决方案供货商之间顶多打成平手,没有任何迹象显示.Net平台优于WebSphere、WebLogic、或任何其它EJB应用软件服务器。对于既有的IIS/ASP解决方案,转移平台的效益再也明显不过。而对于从头开始的新计画,.Net也可算是架构平台的一时之选(端视员工技能与企业偏好)。但是对于既有Java EJB应用软件而言,一动不如一静,因为即使你辛劳地转换了老半天,到头来发现两者其实并无差异。
  
  
  Godfrey Baker原著
上一篇:管窥Commons 人气:540
下一篇:fsck的详细用法 人气:803
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-13 爬爬思特新闻管理系统 v2.0 Beta1
2008-10-13 Pligg v9.9.5 Beta
2008-10-13 广优邮件发送系统 v2.1
2008-10-13 缤纷互动视频交友 v3.1 RC
2008-10-13 MyShop网络商城 build 081005
2008-10-13 Chyrp 超轻量级开源博客引擎 v2.
2008-10-13 162100静态(论坛/文章)系统 v2.4
2008-10-13 金博人才招聘求职网黄金版 v4.2
2008-10-13 愚人笔记 v4.0
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成