我做了一个程序 这个程序主要功能就是查询,连接的是本地的Access 数据库。就是通过ADO.NET 查询ACCESS 中的数据然后显示到 窗体的 DataGridiVew中。 现在要求用 C/S + B/S 实现,就是 要把 DataGridiView 控件换成WebBrowser控件。
然后在 WebBrowser控件的URL中填 本地的ASPX页面就可以了。
问题来了:ASPX 页面是需要服务器支持的,就是请求响应。但是 我又不可能在 客户的 机子上 安装IIS 部署服务器。
请问 能通过什么方式 实现 不用服务器,能运行B/S 的程序?(就是实现不用 安装 IIS 就能实现 即是客户端又是服务端)我现在 有一种方法就是HttpListner(通过它可以很容易的提供一些Http服务,而无需启动IIS这类大型服务程序);
但是 这个我不太熟,请问还有其他简单点的方式么?

解决方案 »

  1.   

    太奇特了。如果你只是客户端,干嘛要cs+bs?直接cs不就可以了??
    非要通过webbrower来加载网页的形式?
      

  2.   

    不部署  确实不知道怎么实现B/S  为什么不直接C/S呢?  难道就是为了看B/S的网页? 
    笨方法  代码本地生成html,然后直接打开。
      

  3.   

    你把服务器去了,B/S不就成B/没S了么。
    难道是想重用写好的aspx?
    建议还是将功能移植到客户端上为好
      

  4.   

    如果我写一个WCF程序,host在本地的命令行程序或者WinForm窗体程序上,通讯协议采用wsHttpBinding,是否就可以达到楼主的要求?这么做,服务端确实不依赖IIS起了一个web service。
      

  5.   

    B/S不用服务器怎么实现
    你可以在你的电脑上架设一个IIS服务器,测试一下不就知道了吗
      

  6.   

    楼上,如果B/S可以包括web service的话,host在本地、binding在http协议上的WCF程序算不算B/S?如果非要指网页输出的话,本地socket程序以HTTP报文的形式发送数据包算不算B/S?
      

  7.   

    楼上,如果B/S可以包括web service的话,wcf程序host在本地binding在HTTP算不算B/S?或者本地程序以HTTP报文的格式发送数据包算不算B/S?
      

  8.   

    噢对了,我们要区分B/S或者C/S模式程序呀呵呵,我想的简单了呀
      

  9.   

    不过,我觉得楼主的产品设计真的很糟糕。
    其实他的需求很容易实现,但我不建议采用WebBrowser控件。
    既然用C/S,那就用C/S的那一套东西:获取数据、数据绑定。一看楼主这产品设计,就知道是那种长期做web的人偶尔来客串一下C/S开发,所以才想出来这么个馊主意。
      

  10.   

    web程序员设计出来的C/S程序,真是伤不起。
      

  11.   

    web程序员设计出来的c/s程序,真是伤不起。
      

  12.   

    网页是静态的还是动态的?winform直接把数据读入内存,datatable中,如果通过控件交互,把datatable绑定到要显示的控件。
      

  13.   


    哎 ,看来 你们还是没有理解 呀,那你说以后  如果我架设了  远程服务器,  更新的时候 直接 把 EebBrowser 的 URL 改成 远程的 WWW.~~~~.COM不就行了 做软件 不要只考虑 眼前 要做的
      

  14.   

      哎,,开发 别 光看眼前的。 不懂 装大真伤不起那 如果 以后我架设 了 远程 服务器  你的 C/S  要怎么改??
    如果我 B/S  + C/S 实现 只用 把  WebBrowser控件 的 URL  换成 远程地址不就 OK 了
    做项目不是为了实现功能才做的,
      

  15.   

      哎,,开发 别 光看眼前的。 不懂 装大真伤不起那 如果 以后我架设 了 远程 服务器  你的 C/S  要怎么改??
    如果我 B/S  + C/S 实现 只用 把  WebBrowser控件 的 URL  换成 远程地址不就 OK 了
    做项目不是为了实现功能才做的
      

  16.   

    你大约是想要本地解释一个动态脚本网页输出一个html,那其实就是自己开发一个小的iis了。你说有必要么?如果非要做的话,思路如下,比如说你已经搞出了一个页面不多的网站(最好是asp这种纯间隔编码的)。你可以用HttpListner接到的URL请求后,编程输出你要的网页,只是这么干非常蠢。你改页面上的一个字都要重新编译程序。还有端口被占什么的情况要考虑。非常的蛋疼。例子有:
    http://www.oschina.net/code/snippet_12_661?from=rss当然,你也可以编程动态解释webservice的,asmx网页。其实这么干也挺蛋疼的。
    http://msdn.microsoft.com/zh-cn/magazine/cc163879(en-us).aspx还有C/S中的S和B/S中的S没什么本质上的区别,如果说用access文件做数据库那叫B,不叫B/S,不知道你最后回贴说的是什么意思。最后感觉你的需求很莫名其妙,通常不是客户提出来非要这么做,没那个人会专门去走这样的弯路,因为你自己用HttpListner做的就是一个web服务,和IIS没什么本质区别,建议你做技术研究储备下就行了,别真干这种浪费力气的事。
      

  17.   

    你发布在本机的iis上不就行了?
      

  18.   

    建议你还是用IIS,你说的那种技术 我也不会弄,还要你自己上网找资料连接的是本地的Access 数据库 
      

  19.   

    哎,搞web的,不懂c/s,目光短浅,坐井观天,不懂装懂真是伤不起如果我用wcf实现一个web service,现在只是暂时host在本地,将来你要把它放在远程的话,仅仅改一下host,从本地host到远程的服务器的windows service上,或者远程服务器的iis上。这个修改对于wcf这个框架来说,分分钟的事~~唉,搞web的来冒充c/s开发,又不晓得主动学习点c/s的知识,只知道web那一套,真是伤不起呀伤不起!
      

  20.   

    动态生成html,然后用webbrowser加载呗,这样就是纯的html,无需iis了。至于生成过程么,不难的吧
      

  21.   

    我理解的楼主的意思是这样的:将客户端嵌入到浏览器中,实现c/s+b/s
      

  22.   

    其实他仅仅想实现一个可以通过网络来访问的数据服务
    但是他又不知道在C/S开发中人们如何提供一个这样的数据服务
    又因为他只搞过web,所以他想当然地提出一个“在本地run一个.aspx页面”的需求如果我们透过他的需求,来看他的这个需求产生的来龙去脉,你就会发现他的软件所需要的功能只不过是C/S开发中一个很常见的功能,实现的办法多种多样,都是很成熟的解决方案,根本不需要像他那样的异想天开、独辟蹊径。所以,加强学习对开发人员来说是多么重要!
      

  23.   

    难怪人家说做网站的程序员水平低(普遍的,非特指)
    甚至有人有些偏激地申称做网站的根本算不上程序员通过这个帖子,你们服了吧?什么叫做以做网站的惯性思维来设计程序,本帖就是一个鲜活的例子。我不过分排挤做Web的,但是做Web的人一定要加强学习,不要仅仅把自己的思路局限在浏览器那么一个小盒子里面。
      

  24.   

      哎 ,,真心 无语 。。  你 去 看看 C/S +B/S  结合   有什么优点再 说好么。。谢谢了,
     客户要求 那么做  你非要搞什么 WEB servers ...
      

  25.   


    哎呦 碰到 大神了,,, 那你给我从写个 DATAGriDiview  实现单元格不同颜色。
      

  26.   

     刚情绪 有点激动 ,如果有言辞冒犯 请谅解
    当初 上层 要求用 C/S +B/S  就出 处于 维护 和 安全考虑;
    一种新的体系结构。结合B/S与C/S,将组件技术COM+和AcdveX技术分别应用在服务器端和客户端,从而开发出高效、安全的应用系统。 
      

  27.   


    是web service,不是web servers
    虽然就差了几个字母,意义上可是差了个十万八千里
    C/S + B/S  结合,哈哈,好新颖的设计,真是巧妙呀,你们都没见过,是不是?哥现在同一个服务程序,又跟PC互动,又跟8位单片机互动,而且采用的也是http协议,见过没?客户的需求 ----> 不仅仅要听懂客户在说什么,更重要的是,要知道客户的需求的缘由。比如说,客户让你向左10米、再向右15米,你进一步跟客户沟通,发现客户其实只是想向右5米,并非特意要遍历一个什么路径,那么你告诉客户,直接向右5米即可,又提高开发效率又减少出bug的机会,同时还保证功能的实现,客户会很高兴。要满足客户需求,更要深层次理解客户需求、更好地满足客户需求。
      

  28.   


    CSDN论坛今早有问题,发两边非吾本意。:-)
      

  29.   


    因为一个人不能连续回复3次以上,所以我一直在等待有人再回复此帖,我才好继续回复。对于你说的这个问题,这样的效果对于C/S程序来说当然不在话下。首先,自定义显示样式,对C/S程序来说没有问题:Introduction to Styles in WPF
    http://www.wpftutorial.net/Styles.html其次,把显示样式定义成一个模板,就像web里面的css那样,对于C/S程序来说也没有问题:Data Templates
    http://www.wpftutorial.net/DataTemplates.html再其次,让控件响应事件改变显示样式,比如果鼠标滑过的时候变一下眼色,对于C/S程序来说也没有问题:Triggers in Styles
    http://www.wpftutorial.net/Triggers.html
    所以说你还是要加强学习,多学习没坏处的。
      

  30.   

    你要早这么说就好了。从你所叙述的这个架构来看,提出这个架构的人,依然还活在十年前的COM时代。现在技术已经突飞猛进了,早就可以用更舒服的方式实现比你这个更强大、更灵活的功能了。.Net提供了比COM更强的安全性和可维护性。你这种架构其实是在以COM的方式用.Net,如果你们做架构的人认真学习过.Net的WCF、WPF、Silverlight,我相信他会反思自己的这个架构。目前你的这个架构其实无论从安全性还是从可维护性来说,都不具备优势。
      

  31.   

    技术实现,正确的实现方式很重要。虽然你可以通过某种方式来“从本地Run一个.aspx页面”,而且如果你要非这么做的话,我也能帮你实现。你需要的可能是一个支持简单的asp.net的嵌入式web server,比如Cassini。哈哈,怎么样,搞web的傻眼了吧?又没见过了不是?
    如果客户需要run一个.aspx文件的目的仅仅是为了提供数据的可视化,那么不用嵌入式的web server也行,换作是我的话,我会写成一个xml-rpc的服务,再配合XSLT来可视化成web页面。哈哈,搞web的又傻眼了吧?这可是纯web技术,你们做web的怎么没想到呢。
    所以说,搞web的伤不起呀伤不起!!!论思维的灵活性,你们又怎能和正经做C/S的人比。
      

  32.   


    做了10多年软件的提出这个需求,那就对了。所以我分析说,做这个架构的人,还活在十年前的COM时代。话说,我也是做了10年软件的人。我经历过COM最辉煌的年代。但是毕竟已经10年过去了,一个人如果不加强学习的话很容易死守过去的技术不放,但是如果始终在学习,那么他就会知道这些技术的发展历史和变迁,知道每一项技术的最新面孔是什么。比如说一个不学习的10年开发者可能会抱怨说,VSS怎么没有后续版本了。
    但一个经常学习的10年开发者会说,哦,原来TFS已经是VSS的最新替代品了,我早就该换TFS了。
      

  33.   

    楼主不用骂人,XinYaping说的是对的,你个人实现不了你自己的想法
      

  34.   

    c/s和b/s的区别不在于是不是网页形式。本地实现这个也容易,就是自己在硬盘上生成一个网页文件,用html语法包装你得数据输出到这个网页文件,然后webBrowser打开这个本地网页文件就行了,不需要用什么asp网页,asp网页归根到底也就是方便你html语法包装你得数据而已。
      

  35.   

    找个要实现一些简单的 http协议。
    delphi的indy 里有个例子 完全可以达到要求。。
      

  36.   

    本质上来说压根就没有什么cs+bs的概念,bs不过是在客户端用的浏览器罢了,算是一个比较特殊的cs,c是浏览器而已。lz理解的cs太狭隘了,cs不是单机程序,看看qq吧。
      

  37.   

    可以EXE内嵌一个http://www.codeproject.com/KB/aspnet/AspxProtocol.aspx
    A Simple protocol to view aspx pages without IIS implemented in C#
      

  38.   

    http://msdn.microsoft.com/en-us/magazine/cc163879.aspx
    Run ASMX Without IIS以前玩过 只是用途是类似嵌入式WEB服务器反正可行是可行 只是ASPX太复杂的没试过。
    简单的表单是可以的
      

  39.   

    是啊,就这样就ok了。监听到后,根据文件,找到比如:a.aspx类,那就 a aa=new a()就行了啊。扯这么多干什么。试一试啊。
    system。web系列类关于web的方法都有地。
      

  40.   

    呵呵,刚想发个WPF代码给他look下,看到这位老兄说了,就不献丑了
      

  41.   

    楼主,我支持你,虽然大多数人不理解,但你做这个东西可能真的有必要。我自己曾实现过一个嵌在网页上的微型HTTP服务器,代码不超过1000行,都是作为ActiveX插件使用,没有界面,不过我做的只是响应图片的请求。其实其他css,javascript文件的请求,网页HTML内容的请求其实都是文件的请求(当然服务端可以不要文件,直接输出HTML字符流)。若你的要求不复杂,可以根据HTTP协议,解析请求报文,返回请求的文件/内容就可以了,剩下的显示交给BROWSER,也就是一个socket编程。
    使用这个的好处是,在访问远程网页时,可以随意打开本地目录的文件显示在网页上。出于安全的考虑,BROWSER不允许在浏览远程网站的同时打开本地文件。除非使用打开文件对话框。这个需求的应该用场景应该是这样的:
    访问远程网站时,同时需要在BROWSER中访问本地文件。
      

  42.   

    楼主给客户端装个开关设置是访问本地,还是访问IIS不就行了?
      

  43.   

    lz不太平静啊,回复人时错别字出现得较多。
    跟人理论的时候,麻烦把字写好了,把句子理通顺了,OK?
    还有,标点符号也用好点,OK?
      

  44.   

    可以的,相信你也是.net开发的程序吧,直接到这儿下载http://www.cnblogs.com/waw/archive/2011/10/24/2222398.html一个小程序,不需要IIS就可以运行你的网站了.
      

  45.   

    你拿着c/s的东西问做web的会不会,你不傻逼吗?就相当于别人明明知道你是傻逼还有些傻逼问你正常人的问题!!
      

  46.   

    你想想,路由器都有web支持了,你一个应用级别的程序,这么多类支持,反而实现不了,不可能的嘛。
      

  47.   


    他明明做的是个C/S程序。开发C/S程序当然需要C/S的知识。
      

  48.   

    C/S当然可以更换远程服务器了,其服务器地址一般是写在配置文件中的,很容易做到设置一个功能更换远程服务器(写配置文件呗)。在智能些,如果找不到服务器自动弹出更换服务器窗体也不难呀。
    貌似B/S能实现的C/S都能实现,而C/S很多功能在B/S上实现起来相当的痛苦(不敢说不能实现殴),原因就出在倒霉的无模式上了。
      

  49.   

    此贴,LZ明显是因为无法完成甚至没有完全理解上级交代任务来请教的.然后一堆人,没有认真说解决方案.一堆质问.然后有点急了.然后Xiao前辈,在倚老卖老,当成自己小弟在批了.有意见不会好好提呀.C/S大神我已前做WEB的呀,现在做C/S.没有感觉谁比谁牛呀.各有各道,各有各的难题.就感觉xiao是神,谁做你小弟,一定倒霉.
      

  50.   


    虽然楼主的问题有点怪,或者说有点小白。但是真不知道你那莫名其妙的C/S优越感是从那儿冒出来的。你那个Cassini和iis有什么本质区别么,不就是vs内置的么。还有什么xml—rpc+xslt,帮帮忙。xml+xslt有新意么,真以为搞web的是白痴么。为了回避所谓的“搞web的”还专门加了个rpc,这和用http有一毛钱的区别没有。web里也可以remoting采用rpc用http协议还分出高低贵贱来了。这么看不起“搞web的”你怎么不站到google门口去开群嘲啊。
      

  51.   


    好吧,那你就给用户的电脑上部署IIS吧,我反正没意见。没看到我的上下文吗?我的意思是说,如果仅仅是为了利用ASP.Net页面作为数据展示,那么XML+XSLT也能够做到。从你对别人的上下文的理解能力来说,你还真是个白痴。我不认为,绝大多数只搞过Web的人(尤其你这样的),能够达到Google的软件工程师的水平。
    不服吗?等你进了Google你再拿这句话来回击吧。
      

  52.   

    哎。。我 才 工作 一个多月  啥P 经验都没有~
    又接到这样的项目~ 遇到问题 连个 技术总监都没有(公司就2个搞技术的 ,另一个 在做OA  不会 C/S),我这下 HI了~~~
    主要是  这里面的原理我都不清楚。什么 HTTP 协议 呀,HttpListner 呀 ,XML + xslt,这些我都没听过~~~ 正在 努力 学习中 ………… 可是项目压的太紧了,更新这块我还没思路呢~~
      

  53.   


    以你的优越感强度来说,你的逻辑性还真不成正比。你这么看不起搞web的,你为什么要用xml,xslt啊解决数据展示呢,这可是搞web的人用的低端应用啊,怎么到了你这儿,就成了搞web的人肯定不知道的范畴了。以您的理论,凡是你认为高端的,必不是搞web的弱智能了解的,必不是所谓搞web的范畴。你做c/s又有什么高端了,请列出来听听。另外我可能比不了google的核心工程师。不我做为项目经理的项目应用用户数也是上百万的,这虽然说明不了什么问题,但不知道你哪一只朝天向的眼睛看出来,你比我优秀了。还是您是我曾在那个大会上仰望过的在台上演讲的技术大牛的小号,那请现个真身,小弟也佩服一下。还有,我是在说c/s和搞web没区别,你别在这儿装不懂。我96年~04年期间是用C++和汇编的。用不着你教育我c/s牛不牛。我就奇了怪了,这世上还真有学川菜的厨子看不起学鲁菜厨子这种事。
      

  54.   

    另:别打岔,我的回复不是针对xml和xslt能不能实现数据展示。而是下面这两句。原来你已经强大到自己说话可以吃回去的程度了,原话奉还。
    从你对“自己”的上下文的理解能力来说,你还真是个白痴。
    哈哈,怎么样,搞web的傻眼了吧?又没见过了不是?哈哈,搞web的又傻眼了吧?这可是纯web技术,你们做web的怎么没想到呢。