本帖最后由 yuseqing 于 2012-02-20 11:08:44 编辑

解决方案 »

  1.   

    不知道vb6和vb.net哪种语言更适合三层架构的开发呢?
      

  2.   

    对于 C/S 结构的客户端开发来说,用 vb6 和 vb.net 都可以的,主要还是看你熟悉哪样就用哪样。
    如果说考虑到兼容性问题,目前 windows 的主流市场是 Windows XP 和 Windows 7,对于 vb6 来说,
    有些地方在 Windows 7 下得到的支持并不是很好,相对来说 vb.net 会好一点。但服务器端建议用点
    运行效率高效点的语言开发,如 VC、BC、Delphi 等等这类工具。对于 B/S(Browser/Server 浏览器/服务器)结构开发来说,涉及的技术主要有以下几个方面:
    1、HTML 标签
    2、VB或JAVA Script 脚本
    3、CSS 样式
    4、ASP、ASP.NET、PHP、JSP、CGI 等等服务器脚本
    5、CGI、ISAPI、NSAPI 等服务器接口技术
    6、IIS、Apache、PHP、MySQL 等服务器程序环境的配置相对来说,与服务器相关的东西可以比较单一的进行处理,这个比较单一的意思是不用过多的考虑程序兼容性问题,反之对于客户端(浏览器)程序在这方面就稍微复杂点,因为现在的情况与早几年不同,早几年大家都很少用 IE 内核以外的浏览器,但这几年,各种内核的浏览器不断推出(当然也有其独到之处),但同时对搞 B/S 开发的程序员造成很大的麻烦,因为既然做 B/S 结构,就是想随时随地随便用个浏览器就能访问到你的页面,并能够正常处理相关的东西。但在这种浏览器不统一,很多技术标准也不统一的世道下,想实现这个目的是比较麻烦的,举个例子,就一个CSS样式来说:
    如果想实现一个 HTML 标签有过度颜色,在 IE 环境下可以这么写这个样式代码:filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorStr=#FEFEFE,endColorStr=#C2C2C2);但同样的效果在 IE8以上还有个写法是这样-ms-filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorStr=#FEFEFE,endColorStr=#C2C2C2);当然,这些 css 样式只能在 IE 内核的浏览器有效果,如果换火狐或谷歌,就完全没效果了,所以如果想在火狐或谷歌上也有这样的效果,必须再加上火狐和谷歌的相同功能样式,如:background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#FEFEFE),color-stop(1,#C2C2C2));/* 谷歌 Chrome */
    background: -moz-linear-gradient(top,#FEFEFE,#C2C2C2);/* 火狐 FireFox */
    filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorStr=#FEFEFE,endColorStr=#C2C2C2); /* IE6/IE7 */
    -ms-filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorStr=#FEFEFE,endColorStr=#C2C2C2); /* IE8 */这就是为了 B 端做兼容性处理的做法,对于 VBScript ,很多浏览器是不支持的,所以为了兼容性,通常都会选择 JavaScript 作为 B 段脚本语言,就算是 JavaScript,在实际使用中,也存在很多兼容性问题,如现在比较流行的 Ajax(Asynchronous JavaScript And XML 异步JavaScript和XML) 技术,里面主要是通过 JavaScript 调用 XMLHTTP 对象和 XMLDOM 对象处理的技术,但就这两个对象的创建和使用过程,不同浏览器也有不同的创建方法和用法,如: if(document.all){
    // ie 浏览器代码
    try {
    obj_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
    try{
    obj_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    alert("Create XMLHTTP object false!");
    return null;
    }
    }
    }else if(window.XMLHttpRequest){
    // 非 ie 浏览器,如 firefox 或 chrome 浏览器
    obj_xmlhttp = new XMLHttpRequest();
    if(obj_xmlhttp.overrideMimeType){
    obj_xmlhttp.overrideMimeType('text/xml');
    }
    }else{
    // 不支持的浏览器
    alert("Create XMLHttpRequest object false!");
    return null;
    }
    相对来说,S 端的代码要简单很多,比如用 PHP,只用考虑 PHP 里的东西,至于服务器配置,只要看一下 phpinfo(); 就知道那些组件或功能能不能用了,只要根据一个确定的目标(服务器)来编写代码就可以了。
      

  3.   

    谢谢前辈的详细指点,是我说错了,应该C/S结构或者三层架构,是不是三层架构更理想呢?如果三层架构的话,是不是用vb.net比vb6要好呢?
      

  4.   

    如果只是 VB 和 VB.NET 来对比的话,从某几种角度来看,VB.NET 做这类程序是会比 VB6 要好一点。 
      

  5.   

    推荐C/S结构+B/S通信模式。客户端+IIS(ASP)+DLL。
      

  6.   

    Abax (Asynchronous Basic And XML) 呵呵