现在的位置: 首页 > 综合 > 正文

BLOG Java 全记录 zz

2014年03月07日 ⁄ 综合 ⁄ 共 13016字 ⁄ 字号 评论关闭
http://www.blogdriver.com/val/
showModalDialog()、showModelessDialog()方法使用详解
javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如:

  showModalDialog() (IE 4+ 支持)
  showModelessDialog() (IE 5+ 支持)

window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。

当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。

使用方法如下:
vReturnvalue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnvalue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
参数说明:
sURL
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
  dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
  dialogWidth: 对话框宽度。
  dialogLeft: 距离桌面左的距离。
  dialogTop: 离桌面上的距离。
  center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
  help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
  resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
  status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
  scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。

  还有几个属性是用在HTA中的,在一般的网页中一般不使用。
  dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
  edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
  unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。

传入参数:
要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:

test1.htm
====================
<script>
  var mxh1 = new Array("mxh","net_lover","孟子E章")
  var mxh2 = window.open("about:blank","window_mxh")
  // 向对话框传递数组
  window.showModalDialog("test2.htm",mxh1)
  // 向对话框传递window对象
  window.showModalDialog("test3.htm",mxh2)
</script>

test2.htm
====================
<script>
  var a = window.dialogArguments
  alert("您传递的参数为:" + a)
</script>

test3.htm
====================
<script>
  var a = window.dialogArguments
  alert("您传递的参数为window对象,名称:" + a.name)
</script>

可以通过window.returnvalue向打开对话框的窗口返回信息,当然也可以是对象。例如:

test4.htm
===================
<script>
  var a = window.showModalDialog("test5.htm")
  for(i=0;i<a.length;i++) alert(a[i])
</script>

test5.htm
===================
<script>
function sendTo()
{
  var a=new Array("a","b")
  window.returnvalue = a
  window.close()
}
</script>
<body>
<form>
  <input value="返回" type=button onclick="sendTo()">
</form>

常见问题:
1,如何在模态对话框中进行提交而不新开窗口?
如果你 的 浏览器是IE5.5+,可以在对话框中使用带name属性的iframe,提交时可以制定target为该iframe的name。对于IE4+,你可以用高度为0的frame来作:例子,

test6.htm
===================
<script>
  window.showModalDialog("test7.htm")
</script>

test7.htm
===================
if(window.location.search) alert(window.location.search)
<frameset rows="0,*">
  <frame src="about:blank">
  <frame src="test8.htm">
</frameset>

test8.htm
===================
<form target="_self" method="get">
<input name=txt value="test">
<input type=submit>
</form>
<script>
if(window.location.search) alert(window.location.search)
</script>
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗?
答案是不能。但在frame里是可以的。

-------------------------------------------
另外:
www.csdn.net
本人整理

问:
1.模态窗口的打开
2.模态窗口的关闭
3.模态窗口的传递参数。
4.其他。。。。

hgknight(江雨.net)答:
1.window.showModalDialog("DialogPage.aspx","newwin","dialogHeight: 200px; dialogWidth: 150px; dialogTop: 458px; dialogLeft: 166px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;");

2.window.close();

3.传值
ParentPage.aspx:
window.showModalDialog("DialogPage.aspx?para1=aaa¶2=bbb");

DialogPage.aspx:
string str1=Request.QueryString["para1"].toString();
string str2=Request.QueryString["para2"].toString();

返回值
DialogPage.aspx:
window.returnvalue="aaa";

ParentPage.aspx:
var str=window.showModalDialog("DialogPage.aspx");

4.
aspx页面在showmodeldialog情况下为什么一提交就重新打开一个页面?
showmodaldialog打开的页面中在<head></head>之间加入一行:<base target="_self">
--------------------------------------------
snowjin78(方圆)
以前,我也问过此类问题,现把收获贴如下(当然好多东西都是别人告诉我的):
最好不要用Response.Write(  "  <script....  </script  >  ")这样的方法注册客户端脚本,而应该用Page.RegisterStartupScript或Page.RegisterClientScriptBlock方法来注册.
Page.RegisterClientScriptBlock:  
在  Page  对象的    <form  runat=  server  >  元素的开始标记后立即发出客户端脚本  
Page.RegisterStartupScript:  
该方法在  Page  对象的    <form  runat=  server  >  元素的结束标记之前发出该脚本

客户端代码有两个问题,第一是把window写成了Window,javascript是严格区分大小写的,用Window是肯定会出错的;第二个问题是设置对话框的宽度用dialogWidth,高度用dialogHeight,而不是height和width。!

- 作者: guru 2004年07月29日, 星期四 18:24  回复(0) |  引用(0)

SQL Server 分页查询
Jsp如下:
**********************
<%@ page language="java" import="java.util.*,java.sql.*" %>
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="cn" scope="page" class="myConnection.Conn" /><!--引用数据库操作的bean,自己完成,这里不再赘述-->
<%
int curpage=1;//当前页
int page_record=20;//每页显示的记录数
//用下面的方法(sql查询完成,速度快)
curpage=Integer.parseInt(request.getParameter("page"));//获取传递的值,需要显示的页
ResultSet rs=cn.rsexecuteQuery("select top "+page_record+" * from tablename where id not in (select top "+(curpage*page_record)+" id from tablename order by id desc) order by id desc");
//本查询语句得到的是所要显示的1000页的20条记录,大致思路为——子查询排除需要显示的记录前的所有记录,父查询则对余下的记录进行降序排列
while(rs.next) {
  out.println(rs.getInt("id").toString());
}
rs.close();
%>

- 作者: guru 2004年06月7日, 星期一 16:45  回复(2) |  引用(0)

NB的X-Desktop
  • 100% Browser based & no plugins required
  • Supports all Operating Systems providing a DOM2 / Javascript Support Browser
  • Simple Object Interface
  • Customizable desktop & window skins
    DEMO:
    http://www.lartob.com/x-desktop.org/releases/r1/index.html
  • - 作者: guru 2004年05月22日, 星期六 10:54  回复(0) |  引用(0)

    人生是一張單程車票,永遠沒有回到起點的可能,請珍惜……
       『人生如戲』當你拿票進入戲院(生),就開始了要準備電影結束的時候了(死),當中也有出去休息的時候(病),當然也有要往出口移動的動作了(老),..但是你是否真的有好好專注看完屬於你自己的電影呢..?? 
       『人生是一場旅行』..人生也的確是一場旅行..但請記住這是一場單程的火車旅行..你手上所持有的是一張單程車票..因為這輛你的人生列車是過站不回頭的,火車沿途的風景是你人生的寫影..而火車上的其他旅客就是陪伴在你身邊的親人好友了吧,,但是當你自己自己一人在看風景之時,你是否對自己看到的景象感到滿意呢??? 
        記得你手上的是一張單程車票..永遠沒有回到起點的可能 . 所以請珍惜您身邊的一切..

    - 作者: guru 2004年05月22日, 星期六 10:19  回复(2) |  引用(0)

    应聘Java笔试时可能出现问题
    应聘Java笔试时可能出现问题
    浏览次数:481
     
    作者:白星海
    更新日期:2004-3-3

            相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你是位很有经验的高手,也是有可能通过面试,但也会影响到你的待遇。

      有可能有人会问,如果你真是个有一定开发经验的java工程师,怎么可能通不过笔试,其实这种可能性是存在的,而且很大,因为笔试的题目一般都很基础,有一些都是你平时不曾注意到的,可能你在开发中用到过,但不一定知道是什么,比如说:写jsp的肯定都用到过out,request等但不一定知道它们叫jsp的内置对象,如果考题问你:jsp的内置对象有哪些,你就不一定答的上来,再比如说:在开发javabean的时候一般都会用到ArrayList,HashMap等,但你不一定就知道ArrayList和Vector的区别,HashMap和Hashtable的区别,可能你在开发中都是混用,也不会报错,但效率会大大降低,如果在多线程开发中混用,可能就会产生错误.可能这些都是小问题,如果有一定基础,看看书就知道所以然了,但笔试中答不上来或答错就可能影响到你是否能够面试成功,如果面试公司是你非常想进的公司,因为这些细节问题而最终没能进去,岂不是很遗憾。

      我写这篇文章就是让大部分的人少一份遗憾,多一份面试成功后的喜悦,也许有人会问:你才工作几年啊,就在这里作总结,你说的问题在笔试中可能出现吗?我要说的是我工作时间的确很短(2002年毕业),但大大小小的公司也面试了不少,有时候就是因为这些笔试上的小问题而没能进想进的公司,结果我自己总结了一下面试的得与失,重新看了看基础知识,结果成功应聘在一家很大的公司,拿着相同工作经验的比较高的工资,之所以我花时间要在这里总结,目的就是为了大家能进自己想进的公司,拿到自己要求的工资.也许这些总结比几篇技术文章带给你的收获都大,因为它直接和你的利益,前途挂钩.本文适用于有一定开发能力但java,j2ee基础欠扎实而又在找Java,jsp,j2ee开发,维护方面工作的朋友,如果你的时间充足建议还是全面的看看基础知识,如果时间紧张可以侧重看一下我下面列举出来的问题,最好能由点到面的看。

    好了,闲话不多说了,下面列举我笔试中遇到过的问题,以及这些问题的延伸,问题都比较基础,答案就不在这里说了,查查资料,看看书就能解决,我在此郑重声明:不是说懂了下面的问题就一定能够面试成功,就是什么高手了,就不用看书了,我的总结只是提高你笔试的成功率,在你基础不是很扎实,时间很紧的情况下帮助你成功笔试.切记:它不是万能的。

      Java基础方面:

      1、作用域public,protected,private,以及不写时的区别

      2、ArrayList和Vector的区别,HashMap和Hashtable的区别

      3、char型变量能不能定义为一个中文?为什么?

      4、多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?

      5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

      6、内部类的实现方式?

      7、垃圾回收机制,如何优化程序?

      8、float型float f=3.4是否正确?

      Jsp方面

      1、jsp有哪些内置对象?作用分别是什么?

      2、jsp有哪些动作?作用分别是什么?

      3、include的两种实现方式的区别?

      4、两种跳转方式分别是什么?有什么区别?

      Servlet方面

      1、说一说Servlet的生命周期?

      2、Servlet版本间(忘了问的是哪两个版本了)的不同?

    Jdbc、Jdo方面

      1、可能会让你写一段Jdbc连Oracle的程序.

      2、Class.forName的作用?为什么要用?

      3、Jdo是什么?

      Xml方面

      1、xml有哪些解析技术?区别是什么?

      2、你在项目中用到了xml技术的哪些方面?如何实现的?

      3、用jdom解析xml文件时如何解决中文问题?如何解析?

      EJB方面

      1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?

      MVC方面

      1、MVC的各个部分都有那些技术来实现?如何实现?

      设计模式方面

      1、开发中都用到了那些设计模式?用在什么场合?

      JavaScript方面

      1、如何校验数字型?

      CORBA

      1、CORBA是什么?用途是什么?

      以上就是我的总结,可能不是全部,因为时间问题,如果能够记起来,我会再加上,有些问题描述的可能不准确,希望大家批评指正,问题都很基础,即使不知道,花上一点时间查找(csdn/java版)就能弄懂,希望对正在找工作的朋友有所帮助,有所提醒.一份正确率很高的笔试卷可能会为你的面试减轻负担,少问不少问题。

      当然我还是要提醒从事软件开发,维护工作的朋友们要重视基础,善于总结和比较,对什么都能追根究底。

    - 作者: guru 2004年05月18日, 星期二 16:01  回复(0) |  引用(0)

    Web表现层开发的思考(转)
    作者:一蓑烟雨任平生 Caucho Resin

    (一)
    web的表现层一直是体现各个框架个性的地方,流派繁杂,秘技叠出,乱花渐欲迷人眼,在做开发过程和技术架构定义时,我们往往最头疼的就是表现层的设计,设计的原则是什么?如何根据项目特点决定开发过程,以及决定采用哪种表现层框架。

    Thin和Rich客户端和早期的基于主机和C/S分布式应用开发模式的思想是类似的,只不过将Client程序变成了浏览器。个人认为Thin客户端比较适合做站点应用或者企业应用中界面和功能比较简单的查询和数据填报工作,而Rich客户端比较适合做企业应用软件。

    还是根据实际在项目开发过程的一些体会来对Web的表现层开发技术来进行探讨吧。

    一、Thin Client:

    01年以前,我将Web开发分为下面几个流派:
    1、 ASP、PHP、JSP,即HTML类表现代码嵌入业务处理代码的程序语言,主体是页面代码+动态程序逻辑,Taglib、JavaBean技术基本上可以归入到此流派;
    2、 CGI、Servlet,即动态程序逻辑+页面代码处理;目前绝大部分的框架都是基于这种模式的基础上展开;
    3、 插件,即采用ActiveX、Applet进行业务逻辑和特殊表现处理;

    (划分的方式不一定很周密,呵呵。)

    第三种方式,对于java的界面编程,我有一种恐惧感,:),一直不敢尝试,有机会还是请这方面的高手谈更好。

    第一种方式和第二种方式在Thin Client模式下采用的原则,我想可能还是看页面人员的能力和对页面变更频次来决定采用何种方式,如果是站点类的应用开发,采用第二种方式要好的多:
    l 站点应用对美工的专业化要求较高,让美工去了解编程是很困难的,如果做过大型网站的同仁会有同感。
    l 用户则对页面的个性化要求也很高,用户的页面经常发生变更,很难让用户一次就把界面锁定,模板的变更控制以及和开发的同步都是大伤脑筋的事情,相对于前台页面,后台业务变更的频次要小得多。
    l 后期维护,如果采用第一种方式,往往用户在后期要求进行界面变更维护要求,或者要求增加多套模板,动用程序员去做这事,对公司而言无疑是加大成本的事情。如果模板的某一项发生变更,界面和程序员都会痛苦万分。
    在这种情况下,表现层的技术设计应便于前后台的协同开发,便于实施和维护。

    最早我们做的表现层,是采用模板加标签的思路,还是dlee做的(当时可是很牛哟),将页面模板打上标签,定义了变量、常量替换、循环处理等几个标签,标签语法用的是HTML的注释语法,基本上可以做到页面和程序分离,当时程序员用perl做页面输出是很痛苦的,页面一点都不懂编程,能做到这种状况,大家都还满意。

    后来我们想用XML和XSL来做开发,dlee分析了cocoon后的意见是没有好的可视化工具来进行XSL编写,以后的经历证明当时没有贸然采用XSL是正确的,这些都是2000年的事了(01年初dlee离开公司去了德国)。

    从网站项目到以后的网站产品的开发,对表现层的设计思路始终是基于模板技术,设计原则是模板上不能包含任何程序代码,很偏执的原则,呵呵。

    基于这种思路,Apache项目组的很多框架的表现层实现技术被我们认为是不合适的,包括Turbine、Velocity等,还有JSP的Taglib技术,也被pass掉了,我们还是倾向于使用“干净”的页面模板,而不是嵌入代码的页面模板。从公司的角度上看,喜欢实用简单的框架,而不能学习成本过高,这也是放弃一些框架的原因。

    模板处理的模式,具体的实现可以有很多种方式,比如:
    将业务处理返回的数据进行XML封装,将标签用xsl标准进行定义,以注释方式写在页面上,通过引擎将两者绑定输出;当然也可以考虑将模板文件预先编译成xsl文件,然后两者绑定输出。

    采用模板技术,由于每次表现层的处理都需要通过文件调用方法读取磁盘文件,IO操作会频繁,改进的思路是将模板对象化,具体的设计思想可以参考Enhydra,在此就不展开了。

    对于Thin Client的表现层技术,我的体会是没有特别好的轻量级模板框架和发布引擎,包括Apache项目组的框架,各做各的,基于:模板、标签库、自定义标签、XML等各种思路,五花八门,看着都头疼。
    二、Rich Client:

    采用Rich Client表现层技术,我想在企业应用系统开发下使用会更合适。

    企业应用系统的表现层有以下特点:
    l 用户界面使用习惯,用户习惯于C/S模式的应用程序界面,习惯Windows的GUI风格,如果出现页面的刷新、跳转之类的会很不满意;
    l 浏览器固定为IE,这意味着不必考虑其它的浏览器软件,技术上可以锁定MS的浏览器技术;
    l 带宽高,做网站的禁忌很多不用考虑,比如对于Javascript,如果是网站,需要考虑流量要求;
    l 与桌面和办公软件如OFFICE的集成度高;

    1、IE做为Client端

    由于只谈表现层,对于MVC的其它部分,假设是这种简化的架构:Model层返回VO,Controller层将VO调用相应的util程序进行XML数据封装。

    Server端请求处理后返回的数据,可以按照SOAP的格式,进行消息、异常等定义,这样可以将Server与客户端彻底独立。

    基于上述特点,我们需要重新考虑系统的架构,将与界面表现相关的逻辑处理全部放在前端,前台已经不是模板制作,而是客户端程序开发,需要理解业务逻辑,只不过采用的是JS。

    结构上将MVC进行边界扩大,客户端也采用MVC方式,每个界面程序由主控JS做为Controller,加载页面的组件对象、事件处理等,每个组件对象通过XMLHTTP与Server端交互,界面上组件之间的关系处理也通过JS来进行,组件对象的表现通过XSL、HTC和JS实现与Windows GUI类似的功能。

    由于是使用XMLHTTP来进行前台程序开发,对于前台程序开发人员来说,需要学习MS的很多技术,并且要把界面XSL化,加上大量的JS代码,工作量很大。

    采用这种方式,尽管能让用户感觉到界面操作与C/S应用程序类似,但毕竟还有差异,同时客户端程序是在服务器端加载运行,速度上还是显得慢。

    2、其它应用做为Client端

    目前我们有个项目,客户要求用Delphi开发客户端(用Java开发的客户端应用程序,因为性能、外观、开发难度等等理由被客户给否掉了),后台服务必须用J2EE,不知道这算不算Rich Client表现层的一种应用方式呢?
    三、组件化界面开发

    目前有很多开发框架都突出表现层组件化处理的思想,流行的框架有Tapestry、Turbine、ECHO、JSF等,ECHO、JSF没有深入研究,不敢多说。

    个人比较喜欢Tapestry,本来计划在工作流应用开发框架中,采用Tapestry做为主框架,后来因故没有继续,现在一直很关注这个项目。

    Turbine,03年4月计划对Jetspeed进行改造,做一个支持拖拽、基于Web的门户配置工具,想的比较简单,结果发现这家伙是在Turbine基础之上的应用系统,分析了这两个系统后,还是放弃了原计划,就两个礼拜时间,进度要紧,只是简单的进行了汉化和样式改造,将用户认证部分和公司的产品进行了整合,做完后大家说怎么还不如上个版本的主界面,上个版本是项目组自己用JS和DHTML做的一个组件拖拽的界面配置工具,没有采用portlet标准,而且速度也比较慢,但是很漂亮。这件事让我们对Apache的印象也开始变坏了,呵呵。

    但凡一项技术,如果有好的工具和丰富的资源库支撑,容易上手的话,那么它能很快使用和传播。

    同样基于界面组件开发技术能否成功的关键,是组件库的丰富和设计工具的易用性,如果能有这样的产品出现,Web表现层的开发效率才能真正提高,JSF据说可提供可视化工具支持,而且Apache 的Jakarta项目组已做了很多JSF和Structs的集成工作,暂且看看吧,不知道什么时候能有好用的开发工具面世。

    说起开发工具,让我想起一件事,那是01年的时候,我们承接了一个电子商务网站的开发,当时聘了一个项目经理,据说对Websphere Studio很熟,领导也要求用IBM的Websphere,他给我们演示了一个DB快速开发的例子,和PB的数据窗口类似,后来项目因故无法采用Websphere,这位PM没办法,只能和大家一样,用JSP编,最后的结果是代码质量最差的就是他,惨不忍睹。

    题外话:
    1、Struts

    一直有同事问我:为什么不用Struts做应用开发框架?倒不是说它有什么不好,原因有2条:

    很多地方它已经“陈旧”了,比如Filter和Dispatch,已经在Servlet2.3中形成了标准,成为Servlet容器支持的功能,如果是这样,Struts似乎应该进行修改以适应Servlet标准的变化。

    表现层基于Taglib,延用公司现有的XML和XSL表现层实现方案需要进行改造,据说在和JSF集成,还是等发布了后再说吧。

    现在经常和同事说,Apache的东西和它宣传的不一样,不能都信。Slide说它已经可以对文件进行版本控制,实际上没有实现,全文检索没有采用Lucene,当然它自己也没有实现这个功能,要用它必须自己改造;最可气的是Tomcat,4.0发布时说完全支持Servlet2.3标准,结果按照标准写出来的Filter和Dispatch程序,分开单独运行都正常,合在一起就无效,同样程序放在Weblogic上就没问题,到bug库里一查,还真有这个bug,一直拖了几个月都没有改,傲慢得不行,现在总算是好了,可是害得我们的当初的设计结构要做变更,好端端的程序明明是正确的,却不能用,把人气够呛。

    2、微软和J2EE

    微软做为PC系统软件的霸主,一直想进入由IBM、SUN这些公司把持的企业应用高端。而后者也想抢占PC平台地盘,双方都拿标准来压对方,各自推出的技术有些地方都很有趣。

    后者通过定位论将微软死死摁在“低端”,从设计企业应用体系框架时就一心想绕开PC平台上的微软操作系统,将原来大家认为合理的服务器端进行数据处理,客户端进行表现处理的模式生生拉回到中央主机模式,但是B/S的致命缺陷是用户交互能力实在太弱,看看实在是绕不过去了,可是一直没有好的办法解决,都说微软的软件吃内存,可是看看IBM的,不必微软的少,客户也很理解,说JAVA开发的吗,就是吃内存!有时想这些公司怎么连个JSP的可视化开发工具都做不好?SUN对JAVA的贡献越来越少,除了一大堆可以学习“过度设计”的接口外。

    微软则拼着命的想把一切东西,包括服务器端的软件都给Windows化,先是将各种功能往浏览器里塞,与Windows紧密集成,浏览器现在是一统天下了,OK,我在把这玩意给你淡化,把Longhorn操作系统当浏览器,用XAML来进行应用程序开发,没有什么B/S和C/S。

    如果从企业快速应用开发角度上看,微软的开发工具所提供的功能确实很和程序员的口味,使用vb.net的Form控件进行Web应用开发,一个PB程序员能很快上手进行数据库开发,尽管他不是很明白体系结构,但很多时候这就够了。让他学习JAVA、Servlet、JDBC、模式,要他一切从底层做起,很多人都觉得干吗要用J2EE(现在所在公司里的程序员使用Delphi和PB做了这么多年的开发,没有快速开发工具让他们很难适应)?

    02年底的时候我突然想干吗非要用DHTML、JS做这种东西,MSN大家用的挺好,大家没觉得不用B/S方式实现就很不好。毕竟我们不是在做网站,所有的表现都用网页是不是过了?

    如果让我描述我心目中理想的架构,我想是这样的,微软的表现层技术,J2EE的服务端技术,通过XML格式数据进行交互,用不用浏览器不是关键。开发工具?希望Borland能实现。

    - 作者: guru 2004年05月17日, 星期一 16:46  回复(0) |  引用(0)

    三个Open Source的Portal
    三个Open Source的Portal

    jetspeed:http://portals.apache.org/jetspeed-1/
    exo:http://exo.sourceforge.net/
    liferay:http://www.liferay.com/home/index.jsp

    - 作者: guru 2004年05月17日, 星期一 16:13  回复(0) |  引用(0)

    抱歉!评论已关闭.