小弟想请教一下各位高手,我建立一个web应用程序,请问我如何设计可以实现添加新功能时不用重新编译整个项目,而做好一个功能模块之后直接把相应的dll和aspx页面放到程序中直接运行~~~~~~我的意思就是,实现模块的直接插拔而不用重新编译项目

解决方案 »

  1.   

    我相信肯定可以,网站毕竟也是程序。
    dll本来就叫动态链接库,要是不能动态链接,还叫dll?
      

  2.   

    如果你用的是项目,必须经过编译,如果你不想编译,可以用新建网站的方法,这样就不用每次编译了!修改过后直接把cs和aspx页面传上去就行!
      

  3.   

    分层开发,替换相关DLL接口
      

  4.   

    用web网站模式,生成时,选择"为单个文件生成dll"
      

  5.   

    直接把你的.CS 和 .ASPX 文件丢到相应目录下就可以了。如果有DLL 丢到BIN里去  
      

  6.   


    asp.net网站(website项目而不是webapplication项目)本来就是这样的啊!随时可以上传bin目录下以及其它目录下的文件,而客户端运行时下一个操作就立刻看到:页面改变了、导航到以前从来没有见过的页面了、或者同样页面回发时却发现内容布局改变了甚至页面上出现了新的子控件布局。
      

  7.   

    我发布的过程是这样的:首先你发布web site到本地,所编译出的文件名跟以前是不一样的。通常我会注意到至少要取消“允许修改此预编译网站”选项,保证我确实完整地编译了aspx、ascx、asax等等所有设计界面上的源代码(这些界面文件上当然也可以嵌入大量c#或者vb.net代码)。然后将网站上的web.config文件下载到本地发布目录,覆盖原来的文件。然后将本地发布目录的文件全都upload到网站服务器(例如使用ftp方式),而服务器端原来的文件不必立刻删除。等上传成功之后过了十几分钟,运行网站清理工具软件(它也是ftp方式),自动将本地发布目录没有而网站上有的文件和子目录自动删除掉。
      

  8.   

    你可以随时更新网站,重新发布,而并不用通知什么各个用户去重新下载什么新版本软件。甚至即使在用户正在看网页时,发布新网站也没有关系。(根本不用像csdn那样弄个什么公告,让网站讨厌地停止服务一段时间)。我自己使用.net 的FtpWebRequest、花了3天时间写了upload和clean程序。首先上传bin目录下的文件,然后才上传其它的文件,最后才上传web.config文件,这个顺序。一旦某个aspx发布成功,实际上用户下一个操作(即使貌似在同一个页面上的回发操作)就会自动切换到新的页面组件运行。网站本来就是这样,随时修改,随时更新。
      

  9.   

    哦,说了这么多,忘了最重要的一件事,这是任何维护网站的人都最关心的:你upload本地发布目录的文件到网站时,当然只应该选择网站上不存在、或者文件大小不同、或者最后修改日期最新的那些文件才执行upload动作,而那些重复的文件就不用上传了。如果你不是自己写ftp上传程序,那么你选择的ftp客户端软件至少应该这类功能。
    说了这么多,其实我的目的无非一个,我才不管你是不编译整个网站这个问题,从web维护角度,本来就是单个dll文件、单个aspx文件等等去修改的,asp.net网站可以即时修改而不停止。如果这个操作过程发生问题,不比像csdn那样可笑地搞个“网站暂停公告,甚至把人当像傻瓜一样让人去玩3岁小孩的游戏”,如果这个操作过程发生问题你就可当作一个bug来解决你的网站软件设计问题,或者是upload过程组织不合理问题。
      

  10.   


    那就不用说了,那个烂东西不是专业的网站开发方式,而是为了满足某些程序员一个完全等同于winform程序的感觉。
      

  11.   

    web application是“烂东西”???难得看见此等高论。asp.net mvc只允许web application的形式,难道微软不专业?
      

  12.   


    何谓专业网站开发方式?需要把所有的功能全部放在一个站点里面就为专业的开发方式么?Web Application开发有其缺陷(如masterpage共用等),但如果应用恰当,完全可以应用于开发。试想,Web 站点里面不也是page+dll,与web application有何区别?