我总觉得 .NET 做的东西操作很不爽
我用 Datawindow.NET 1.5 + .NET 2003 将我原来的 PB 应用改为B/S结构的,大概改了1/3 之后,发现在 B/S 下使用很不爽,现在有些犹豫了,停下来了,想找个其它方法,既可以保持原有的 C/S 下良好的操作体验,又可以支持远程用户,目前我试用了一下 window 2003 server 中的“远程桌面”技术,发现很爽,但是只支持2个用户同时远程登录,如果要几十个人同时登录,就要购买 Licence了,也找不到盗版,不知有哪位高手有更好的解决办法。
下面是我觉得 B/S 很不爽的地方:
1、我写的程序中,经常有样一种技术:所有输入代码的地方既可以直接输入,又可以从下拉列表中进行选择,而且,在输入框中输入代码中的某几位或名称中的某几位,则下拉列表的内容随之筛选,仅列出3~5行供用户选择,用户已经非常习惯了这种方式。
但是,在 B/S  中,要么输入,要么下拉选择,不能高兴时输入,不高兴时下拉选择。这就很难搞了,也可以弹出一个新窗口供选择,但操作多了好多个步骤,像输入会计凭证,入库单等单据时,每一行都多了4~5步,那就惨了。
2、当用户输入一项之后,大多数情况下,都需要到数据库中去找一下,从而检测是否输入合法。而这种事情都要到服务器端去处理,屏幕就会闪一个,有用户给我提意见,说“眼都花了”,问我能否使它不闪了,我晕了。
3、我的应用中有大量的文本信息,如客户名称、地址、email等,有的长,有的短,在 C/S 中,用户可以拉宽拉窄每一列,但是,在 B/S 中根本没办法。
4、我的应用中,有很多地方每一行都有10、20几个字段,在 C/S 中,用户可以固定住最左边的几个关键列,右边的其它列则左右滚动,这样很方便,但在 B/S 中根本无法实现。

解决方案 »

  1.   

    确实bs和cs有一些区别,需要适应,但是楼主的要求,也不是达不到,建议楼主好好看看js+html
      

  2.   

    用其他控件可以的,Infragistics.NetAdvantage.2005.Vol.1(4.in.1)电驴上有
      

  3.   

    B/S在UI方面肯定是不如C/S那样灵活的,这也不是.NET的问题,B/S本来就是这样,开发UI想死。
      

  4.   

    实在不习惯可以用SmartClient啊^_^
      

  5.   

    1、b/s可以做到
      2、不闪就得用javascript+webService 好象太麻烦了
      3、b/s是可以做到拖动列的
      4、b/s也可以琐定列和标题行的
      

  6.   

    据我所知除了3以外别的都可以解决的
    虽然实现起来稍微麻烦,LZ可以多查一些AJAX的相关内容1,2 可解决至于4也可以通过自定义控件加一些DIV实现
    3 不好说,能否通过用户自定义CSS实现呢
    以上实现起来比较麻烦,但还是可以解决的,希望LZ 深入了解后在说出结论
      

  7.   

    在B/S架构里要提供与C/S架构类似的使用体验,只要使用WebService,再加上一套比较完整的Javascript UI库就可以了。使用WebService可以基本解决页面闪烁的问题。UI库可以提供良好的客户端体验。诸如可调整列宽的ListBox之类的都可以自己用div或者table模拟出来。可以这么说,绝大多数的UI控件都可以用JS+DHTML模拟出来。
      

  8.   

    是你的经验值不够!你说的都是可以实现的。1.可以写一个控件实现,要用到js脚本,这个我已经实现了。用一个文本框 + 下拉列表框 + js脚本2.这个分为两种情况:
    A.可以在前台用js验证的就用js来验证,比如必须输入数字等。
    B.前台不能验证的(比如注册是用户名不能重复),那就等用户都输入完之后,一起提交到后台,统一判断。
    C.可以利用iframe来减少刷新的区域。
    D.等等,还有很多的方法。3.Table的td的宽度,如果你没有指定的话,他是可以自动适应的,只是宽度会变化。
    另外也是可以让用户来调整宽度的,当然还是需要js来帮忙了。4.还是可以实现的,加三个iframe和几句js就可以实现。部分事例可以到我的网站来看 http://www.jyklzz.com/index.htmhttp://www.jyklzz.com/scroll.htm  你说的第四条的实现。锁定左两列和第一行(标题)http://www.jyklzz.com/unitelist3.htm  无刷新的联动下拉列表框
      

  9.   

    楼主,我有本书介绍在BS中实现你的要求,你还是把JAVASCRIPT的基础打好吧
      

  10.   

    诸位高人,我也想过用 JS+DHTML 模拟,但我大量用了 Sybase 的 Datawindow.NET 控件,
    这个控件功能很强大,我完全可以不考虑与数据库的操作,我只要设计好 Datawindow 就可以了,
    但是,前面所说的都要用很复杂的 Javascript 技术自行模拟,而我用 Datawindow.NET 时
    最后所生成的页面内容,基本上都是 Datawindow.NET 所生成的,我就控制不了啦,我如果可以
    修改 Datawindow.NET 的话,我就去做 Sybase 的 CTO 了。
      

  11.   

    建议楼主好好看看js+html
    只是的确没有CS方便
      

  12.   

    Web Service的确是个不错的解决方法
      

  13.   

    我精通C/S,我从来不想学B/S,因为用B/S就会让我感到B/S限制了的能力的发挥,
      

  14.   

    严重认为楼主对.net的经验不够.
    .net完全可以"很方便的"做到远程windows窗体客户端通过Http协议访问远程服务器的XML WebService。
    这样即达到远程处理的效果,客户端也同样是Windows窗体,而非浏览器。可以说是结合了C/S和B/S的优点。
    详细见MSDN:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsintro7/html/vbwlkCreatingDistributedWebApplicationWalkthrough.htm
      

  15.   

    我总觉得 .NET 做的东西操作很不爽
    ==================================
    楼主, .net != web
    你把b/s相比c/s处理的模式不爽看成了.net框架的不爽,不应该吧,
    难道你使用asp,jsp或php就觉得b/s的本质会有变化 ?
    ======
    我们所要做的就是通过其他方式来实现相近的功能,
    比如.net 2.0的无刷新技术,
    Web Service + js调用,
    或者ajax技术等.
      

  16.   

    不能埋怨工具!!具体问题在我们!
    如果水平高什么开发工具也能做出很猛的软件!!
    -------那你用turbo c算啦,程序员作为开发工具的用户,当然有权利评论开发工具的优劣了
      

  17.   

    TO:楼主,你所遇到的问题是的总体开发思路不当,在开发前,你没有很好地对用户的需求作出详细的分析,比如用户需要无刷新,你就应该选用WebService技术;你需要有良好的客户端体验,你就必须用Activex控件或便于自己写java脚本来控制的方式,而不要选用datawindow.net。下面的软件截图你可以看看,完全的无刷新技术,智能录入,完美的所见即所得的报表打印。
    http://lgxyslldw.512j.com/软件截图.ppt
      

  18.   

    搂住可以考虑考虑使用smartclient...
      

  19.   

    回应各位:每个开发工具都有他的独到的地方!或者说是领域!任何开发工具如果用到了他合适的地方那么他都是不错的工具!!就好比你不能拿VB去做硬件开发,也不能用汇编去作界面开发吧!!C#是个不上不下的语言,作不了跨平台,做B/S有不那么称心如意,而且安全隐患重重!但是开发Windows程序的确不错,此语言 的易用性也的确不错,应当是最好的易用工具,个人一直很鄙视微软的,因为这个公司在技术方面一直都是个三流的公司(虽然最近几年里随着他资本的扩张在这方面有所改善,不过还是不行)但是他在竞争中取胜了,因为他耍了不少手段,因为他抄袭了别人很多东西!!
      

  20.   

    说句良心话从用户的角度来说  :CS 的软件确实 BS 爽多了我曾负责开发深圳顺店的系统,有 CS 有 BS 的,客户多次反映,你能不能把BS 的操作搞得像 CS的一样爽呀!!说实话,很多东西做不到这就要说服你的客户去接受 BS 的操作了
      

  21.   

    对于逻辑复杂的,需要多次交互的界面,我觉得还是用cs好,bs做查询就够了,对于用户来说,其实完全没必要搞成BS的,只要解决问题就行了。
      

  22.   

    这个和.NET有什么关系啊,谁规定.NET是做B/S的啊
      

  23.   

    呵呵,谁规定B/S一定得.net做了?