Asp.net mvc 关于使用web窗体或MVC的web应用程序体系结构的建议

Asp.net mvc 关于使用web窗体或MVC的web应用程序体系结构的建议,asp.net-mvc,web-applications,architecture,webforms,Asp.net Mvc,Web Applications,Architecture,Webforms,我想就以下设计web应用程序的方法发表一些意见 用户将导航到登录页面。登录后,用户将被发送到我称之为主页的位置。这样做的目的是让主页在页面顶部包含一些常见的材料,并带有一个菜单。占据页面大部分的菜单下方是IFrame。选择每个菜单项时,都会将相应的页面加载到IFrame中。这里是要点。用户可以使用各种菜单选择在应用程序中导航,并在整个会话期间(即,直到用户注销或关闭浏览器)主页保持加载状态时,执行这些选择所允许的任何操作。这种方法并没有遵循更常见的模式,即当用户浏览网站时,浏览器完全用其他网页替

我想就以下设计web应用程序的方法发表一些意见

用户将导航到登录页面。登录后,用户将被发送到我称之为主页的位置。这样做的目的是让主页在页面顶部包含一些常见的材料,并带有一个菜单。占据页面大部分的菜单下方是IFrame。选择每个菜单项时,都会将相应的页面加载到IFrame中。这里是要点。用户可以使用各种菜单选择在应用程序中导航,并在整个会话期间(即,直到用户注销或关闭浏览器)主页保持加载状态时,执行这些选择所允许的任何操作。这种方法并没有遵循更常见的模式,即当用户浏览网站时,浏览器完全用其他网页替换网页。在整个会话期间,没有页面保持加载状态。在整个会话期间保持主页加载是一个好主意吗

如果没有,主要关注点是什么?另外,您是否可以定位对不同方法的任何引用,以实现相同的应用程序行为

如果可以的话,使用MCV而不是Web表单来获得这种行为有什么好处吗

页面的大部分是IFrame

如果框架不好。他们一直都很坏,将来也会如此。有一个肮脏的黑客

不要使用iframe

温泉 如果你有一个很好的理由不使用实际的页面和重定向,你可以尝试一个看起来很流行的单页面应用程序

然而,我会提醒你,如果你依赖javascript,你基本上不能做SEO

渐进增强 作为旁白,请仔细阅读。你应该这么做

局部视图 如果您喜欢网站的大部分是静态的,那么您可以通过ajax加载部分视图,并在客户端呈现它们

当然,因为你做的是渐进式增强,你做的是整版重定向和加载。客户端上的局部视图渲染只是简单的

.NET 至于使用C#框架,我个人会推荐

如果你想使用ASP(天知道为什么),我想你可以使用ASP.NETMVC,当然它远不是最佳的,但至少它不是ASP.NETWebForms

页面的大部分是IFrame

如果框架不好。他们一直都很坏,将来也会如此。有一个肮脏的黑客

不要使用iframe

温泉 如果你有一个很好的理由不使用实际的页面和重定向,你可以尝试一个看起来很流行的单页面应用程序

然而,我会提醒你,如果你依赖javascript,你基本上不能做SEO

渐进增强 作为旁白,请仔细阅读。你应该这么做

局部视图 如果您喜欢网站的大部分是静态的,那么您可以通过ajax加载部分视图,并在客户端呈现它们

当然,因为你做的是渐进式增强,你做的是整版重定向和加载。客户端上的局部视图渲染只是简单的

.NET 至于使用C#框架,我个人会推荐


如果你想使用ASP(天知道为什么),我想你可以使用ASP.NET MVC,当然它远不是最佳的,但至少它不是ASP.NET webforms,我不认为这是绝对的邪恶,但你的解决方案实际上没有遵循HTML站点的“正常”行为,浏览可能不那么直观

  • 例如,用户在使用书签或“后退”按钮时会遇到问题
  • 您将无法根据当前显示的内容调整菜单(或将出现大量同步问题!),例如显示您所在的区域
web的常见解决方案是使用布局或两步视图模式(请参阅)


我不太熟悉webforms,但MVC是大多数web应用程序和框架的事实标准。这很好,因为角色和组织的分离。我不认为这是绝对的邪恶,但你的解决方案实际上没有遵循HTML网站的“正常”行为,浏览可能不那么直观

  • 例如,用户在使用书签或“后退”按钮时会遇到问题
  • 您将无法根据当前显示的内容调整菜单(或将出现大量同步问题!),例如显示您所在的区域
web的常见解决方案是使用布局或两步视图模式(请参阅)


我不太熟悉webforms,但MVC是大多数web应用程序和框架的事实标准。这很好,因为角色和它所实施的组织是分开的。

总是在Web表单上使用MVC,因为前者是较小的邪恶。如果你想.Net隐藏Web的本质,那么就使用Web表单,否则就使用MVC…@Xander我听说你在某种程度上喜欢@Raynos-谢谢你的文章…总是在Web表单上使用MVC因为前者是较小的邪恶如果你想.Net隐藏网络的本质,那么就使用webforms,或者使用MVC…@Xander我听说你在某种程度上喜欢@Raynos-谢谢你的文章。。。