Asp.net 与x27之间的差异;网站';和';项目';在VisualStudio中

Asp.net 与x27之间的差异;网站';和';项目';在VisualStudio中,asp.net,visual-studio-2008,Asp.net,Visual Studio 2008,可能重复: 我已经注意到,当您启动Visual Studio 2008并选择“新项目””->“ASP.NET Web应用程序”而不是“新网站””->“ASP.NET网站”时,您得到的结果明显不同。例如,如果选择“Project”,则可以编译为.dll,每个页面都会获得一个*.aspx.designer.cs代码隐藏文件 1) 为什么我们有这两种不同的项目类型 2) 你喜欢哪一种 3) 为什么我会选择一个而不是另一个 4) *.aspx.designer.cs文件是怎么处理的?1)ASP.NET

可能重复:

我已经注意到,当您启动Visual Studio 2008并选择“新项目””->“ASP.NET Web应用程序”而不是“新网站””->“ASP.NET网站”时,您得到的结果明显不同。例如,如果选择“Project”,则可以编译为.dll,每个页面都会获得一个*.aspx.designer.cs代码隐藏文件

1) 为什么我们有这两种不同的项目类型

2) 你喜欢哪一种

3) 为什么我会选择一个而不是另一个

4) *.aspx.designer.cs文件是怎么处理的?

1)ASP.NET 2.0引入了“网站”模型,“web应用程序”模型是原始.NET framework的项目类型。它们都有不同的用途(见下文)

2) 这取决于上下文。一个很好的例子是,如果您正在销售软件产品,您可能希望使用“web应用程序”项目,因为它自然适合于干净编译的代码

3) 参见上文,个人偏好,维护特征。“网站”允许你做的一件有趣的事情会给你带来很多麻烦,那就是在网站运行时对记事本中的代码隐藏(通常是*.cs或*.vb)文件进行任意更改

4) designer.cs文件用于存储自动生成的代码“此代码是由工具生成的。”


    • 它们有不同的用途

      一个网站的内容可能会随着时间的推移而改变,也就是说网页本身也会改变。没有实际的项目文件,站点只是作为一组文件进行部署

      应用程序是一个站点,其中内容就是应用程序,动态部分主要位于持久性存储中,如数据库。它将具有更复杂的逻辑,因为它可能表示一组用于数据输入的表单,也可能表示一种检查内容的方法。它有一个项目文件来更严格地控制其配置,并将其代码部署为已编译的dll

    • 最初有一个Web应用程序项目(其行为与当前的Web站点项目类似)。他们更改了它以反映一些用户的要求。然而,人们希望恢复旧的功能,所以他们重新引入了Web站点项目,其行为与原始Web应用程序项目类似

    • 我——以及我的工作场所——更喜欢网站项目

    • 我们喜欢网站的文件是文件系统中的文件(无需手动添加)

    • 不知道

    • 以下是我找到的两篇关于这两方面的文章:

      注意:Web部署项目解决了许多网站问题


      更新:修复了第1点,Web应用程序是第一个出现的

      我不会重复第2点的定义,因为刚刚得到回答

      那么为什么要用一个来代替另一个呢

      Web站点允许您将其视为PHP或经典ASP站点,您可以在其中进行内联更改并立即生效

      专业人士

      • 您可以在web服务器上对站点进行调整
      • 部署与复制文件夹一样简单
      缺点

      • 如果您没有在live站点上正确地进行更改,您可能会遇到更改管理问题,忘记同步所有文件
      • 您可以向最终用户显示运行时语法错误,因为检查的唯一方法是手动运行每个页面
      Web应用程序让您更像对待桌面应用程序一样对待它——有一个可部署的应用程序可以在您的机器上编译

      专业人士

      • 清晰、结构化的变更管理。您不能意外地混合使用两个不同版本的代码。当有两个人参与时,这一点很重要——一个人编写代码,另一个人负责将文件放到服务器上

      • 因为您是在计算机上编译的,所以在这一点上会检查所有语法*

      缺点

      • 部署比从开发机器复制文件夹要复杂一些。但是,“Publish”命令的使用大大简化了编译和整理应复制到web服务器的文件的过程

      • 任何更改都需要在您的计算机上完成、编译,并将一个全新的版本发送到web服务器*


      *不过,如果在构建选项中启用此选项,则仅会检查aspx/html文件的语法。也可以在服务器上编辑这些文件,除非它们被编译到您的项目中。

      网站是2003年web开发的原始.NET方式。根据我的经验,它们是非常有问题的,因为缺乏项目定义,它们无法重用,并且存在模块化编码问题,在TeamSystem集成和名称空间方面存在问题。与域的一对一绑定以及缺乏真正的发布抽象会带来维护问题

      古老的“经典”ASP方式!codebehind是一个严重的问题,因为它再次损害了代码重用和测试,并且经常提到的允许热修复的好处(如果需要的话)实际上是一个巨大的信号,表明您的开发过程失败了。热修复的能力当然比不能好,但这是你永远不想调用的


      你可能会说,网站模型的问题太严重了,微软给了我们网络应用。就我个人而言,除了演示代码,我永远不会使用它们。。。不,实际上我甚至不会这么做。

      3)Web应用程序项目可以通过MSBuild构建。网站不是(没有很多调整)。如果您将TeamSystem与自动构建结合使用,那么这是一条可行的道路。

      没有什么区别,我会高度重视