有一程序,C/S两层结构,客户端C#,数据库SQL 2000,现想将其转为三层,可以使用Web Service和Remoting两种方案,但因考虑到此程序是内部人员在互联网上使用(客户端部署不是重点),安全性要求很高,所以主要考虑使用Remoting,但我Remoting没应用过,哪位老大给点建议。
现在我主要考虑的是客户端使用datatable,但连接串要在中间层。

解决方案 »

  1.   

    用Remoting把数据库的访问代码重写,就变成三层结构了:)
      

  2.   

    学习中,我会写点简单的webservice,remoting没写过,学习
      

  3.   

    因考虑到此程序是内部人员在互联网上使用(客户端部署不是重点),安全性要求很高,所以主要考虑使用Remoting
    -------------------
    内部人员在互联网上使用?到底是局域网还是公网?如果是局域网tcp通道的remoting不错
    安全行要求很高好像不是remoting的特长吧,不过如果真的是在局域网中使用,服务器没有公网地址安全性自然高了
      

  4.   

    TO LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) :程序在公网上使用。
    TO popcorn(米花.珠海):数据库访问代码到了中间层,客户端的datatable怎么使用呢?
      

  5.   

    主要问题是要把表现层中数据访问方面的代码切割出来,表现层和中间层交互的话,可以用DataSet。
    交互的方式可以用WebService或Remoting
      

  6.   

    不是吧  用的着这么麻烦?
    一般C/S结构的程序都用MVC模式,楼主可以按照这个模式来重构你的程序
      

  7.   

    谢谢大家的关注,前两天有个贴子问我们都是什么级别,大体分类
    ----------------------------------------------
    入门:可以编写登陆,留言等系统(ASP。NET)
    初级:可以编写采购网络管理,人事薪资管理系统等一般企业级的系统(ASP。NET+#)
    中级:可以编写较复杂的ERP等系统
    中高级:可以编写
    高级:
    ----------------------------------------------
    我从没用过ASP.NET(包括ASP),级别只能是入门级以下了,所以我是不会用Web Service的(另外这IIS的漏洞很多,不知可扯上关系。
    MVC模式也没用过,也不知怎么回事(肯定不是设计模式了吧),我到网上查查,也希望大家谈谈。
    还有一点我不清楚,DataSet可序列化,可通过Remoting传递,比如说中间层选读取1000条数据到DataSet中的一个Datatable中,此DataSet客户端通过Remoting获取了(1000条数据),但中间层再读取1000条数据到DataSet中,是不是客户端再获取DataSet时,通过网络传送了2000条数据(想必MS不会这么蠢)?
      

  8.   

    我想Remoting应该比Web Service安全
      

  9.   

    数据库连接的代码重新在单独的.cs文件里写,然后返回DataTable就可以了
      

  10.   

    楼上的,可不可以稍微说详细一点?
    数据库连接的代码重新在单独的.cs文件里写,应是在中间层?
    然后返回DataTable就可以了,如果连接代码在中间层,只能返回dataset了。
      

  11.   

    MVC模式,昨天查了一下,好象适合大型项目,我只是一个小程序,目前仅有3万行代码.可能不适合MVC模式吧.
      

  12.   

    Web Service难道就不安全吗?
      

  13.   

    连接字符串可以以加密的方式存在服务器中,用COM+调用并池化,相当于存在中间层中。
    关于Remoting,如果要以TCP方式传递,也要打开端口,如果用SOAP(80口),那么与Web Service相差不多。Web Service也可以加密,但比较麻烦。如果是内部人员用的话,我想可以采用COM+解决方案,因为自带加密算法。
      

  14.   

    方案供参考
    界面,提供采集用户交互信息的表现形式,winform,webform,只提供采集信息的常规方法和调用中间层方法的途径(离操作数据库还远着呢,还差一层呢)
    举例说明:用户登陆,界面采集用户名,密码之类信息,可以作为类的对象形式,然后调用中间层方法,将数据传递至中间层。例如 bool Login(参数表),然后中间层将用户信息组织整理,调用数据封装层的方法返回dataset或datatable,通过信息的组织返回给界面true or false,这样层次就分开了。这只是一般论述,仅供参考^_^,希望批评指正。
      

  15.   

    也就是说,所有的业务操作作为中间层,比如复杂的计算,复杂的查询,复杂的统计,中间层负责将业务逻辑翻译成数据库可操作的SQL语句,数据封装层提供数据库底层调度的方法,例如执行查询,更新,删除等事务,它负责处理这些语句返回给中间层,中间层再次将返回的信息加工,返回给界面相应的逻辑结果
      

  16.   

    用Web Service吧
    google的adwords api用的就是Web Service,,,安全应是狠安全吧。
      

  17.   

    客户端(表现层)使不使用DataTable呢?
      

  18.   

    那就根据客户端的需要了,一般是需要的,比如生成查询列表等。MVC模式是普遍意义的架构模式,当然对大型项目很适用,但我们从小抓起,不是很有积累的意义吗。Remoting和Webservice本质上差别不大,只是采用协议不同,Webservice可以说是Remoting的更高层次的优化,穿透能力更强。xml文档格式应用更加普遍。
      

  19.   

    有谁能提供MVC资料链接,最好还有C#,而且还是winform的例子?
    因为除了winform,其他我都不懂ˇ-ˇ。
      

  20.   

    有谁能提供MVC资料链接,最是C#,而且还是winform的例子?
    因为我很菜,除了winform,其他我都不懂ˇ-ˇ。