如果给出选择,您将采用哪条路径?ASP.NET webforms + ASP.NET Ajax与ASP.NET MVC和Ajax框架自由
ASP.NET Web表单+ ASP.NET AJAX
或
ASP.NET MVC + JavaScript的你选择的框架
是否有任何限制ASP.NET Webforms/ASP.NET AJAX与MVC有关吗?
如果给出选择,您将采用哪条路径?ASP.NET webforms + ASP.NET Ajax与ASP.NET MVC和Ajax框架自由
ASP.NET Web表单+ ASP.NET AJAX
或
ASP.NET MVC + JavaScript的你选择的框架
是否有任何限制ASP.NET Webforms/ASP.NET AJAX与MVC有关吗?
我喜欢webforms,但ASP.NET AJAX是一堆废话。
我更喜欢使用WebForms +自定义HTTPHandlers处理任何AJAX调用的服务器端。
嘿,downvoted ...
ASP.NET AJAX是废话一堆,因为回调需要整个页面类被重新实例,你是不是调用一个方法,要重建整个页面每次在服务器上。
此外,UpdatePanels返回整个页面,只有更新面板中的部分被弹出,其总带宽浪费。
我明白为什么它会这样做,因为WebForms控件不能很容易地以其他方式实现,但它仍然非常糟糕。
现在我很好奇。 WebForms + ASHX的示例实现会是什么样的? – Bullines 2008-09-19 02:51:56
您不仅限于使用处理程序实现的ASHX,还可以在类文件中对处理程序进行分组,并将处理程序添加到您的webconfig中。非常高效,但它取决于你想完成什么。举个例子,在有限的开销下进行一个调用来锁定数据库中的记录。 – 2008-09-19 02:54:21
你能详细谈谈“一堆废话”吗? – 2008-09-19 03:22:10
我用ajax.net以及prototype/ext/jquery使用了asp.net winforms。我想要考虑的是该网站的目标.. MVC是一种流行模式。我无法对ASP MVC发表任何评论,因为我没有机会使用它,但是我想确保你知道,如果你选择了webforms,你并不局限于ajax.net。
我想澄清一下。我期待着做一个MVC项目,但还没有一个启动的项目。不想听起来像我是令人沮丧的MVC发展。 – 2008-09-19 02:51:50
ASP.NET MVC仍处于“预览”形式,因此直到成熟时才会考虑它。你可以很容易地滚动你自己的MVP模式,而不需要太多管道。
在Ajax方面,我会说试图找到你所要找的库(商业或其他)。基础知识(网格,树,自动完成文本框等)已经完成。不要重新发明轮子。
ASP.NET MVC可能在RC中,但有趣的是Stackoverflow完全基于ASP.NET MVC构建。 – Notorious2tall 2009-02-06 16:10:33
当然,这并不意味着我会相信它是用来支付账单的系统。 StackOverflow.com开始时只是一种玩物。 – 2009-02-09 15:31:36
我最近做了两次,我会在十次中选择九次MVC。
有一次,我会选择使用asp.net表单开发将使用gridview控件。我们使用jQuery的MVC和我们的JavaScript框架,还没有找到一个很好的gridview像控制。我们有一些功能强大的功能,但是使用asp.net服务器端控件进行学习,调整和调试的时间相当长。一个失去了微软提供的非asp.net表单开发的所有好的小部件。这些小部件的损失是免费的,而且在你第一次启动的同时也很可怕。
在一天结束时,我很高兴我们正在做MVC开发。我和我的团队学到了一个新的框架(我们之前只是asp.net开发者),并且已经用html和javascript弄脏了我们的手。如果我们需要的话,这些技能可以用于其他项目或其他语言。
我同意你的观点,完全是这样的...好点:) – Marko 2009-08-26 21:59:58
当我设计一个网站时,我更喜欢的是DRY原则。 IMO ASP.NET MVC比Web表单更干燥。
我最近从webforms转移到MVC,我希望我永远不必回去!
带有ASP.NET Ajax的Webforms是天堂。 2之间的整合只是令人惊叹,感觉很自然。
使用webforms而不是mvc将使您能够利用生命周期来开发非常好的和可重用的控件。
但我仍然想添加一些jQuery到遍历dom和添加动画的混合中,我只是喜欢使用asp.net ajax来获得与服务器端的集成。
我同意asp.net ajax UpdatePanels不是一个理想的解决方案。
我们避免使用它们,而是一直使用客户端库来与服务器进行任何通信。我喜欢我在PDC上看到的关于asp.net ajax 4.0中的特性,包含声明性组件和客户端模板 - 非常好!将JQuery与现有的库结合起来提供了相当多的内容 - 我唯一的问题是使用JQuery,而不是使用JQuery,因为它的占用空间更小,并且能够完成与asp.net ajax客户端库很多相同的功能。
就服务器堆栈而言 - 我还没有使用MVC,但我们已经成功地使用了使用webforms的自制MVP方法。
MVC背后的概念非常棒,但准备好几乎可以释放您使用了多年的所有服务器控件的所有功能。我只看了一个多星期的MVC实现,但页面生命周期和视图状态都消失了,所以这些控件不能正常工作。
我也惊呆了,发现一些包含很多逻辑代码的例子。这是正确的,aspx文件中的'if'和'foreach'语句 - 向后imho的可怕步骤。我非常高兴地离开了传统的asp,但是在当前的asp.net mvc模式实现中,您可以回到代码中,需要在任何地方使用助手,并且几乎没有任何可用的服务器控件。
如果您现在开始一个新项目,我建议坚持使用asp.net webforms,并根据需要使用内置的asp.net ajax,工具包和jQuery。 asp.net ajax实现可能不是绝对最好的或者最有效的实现,但是除非你在第一天获得了一百万个唯一身份验证,或者你的服务器是一个商业维客20,那么性能并没有那么明显。
这当然取决于您的项目大小。如果你开始一个5年的企业级应用程序,预计有数百万的页面浏览量,UpdatePanel可能不会削减它,但如果你正在建立一个普通的网站,抛出一个原型,或者只是需要快速移动,asp.net阿贾克斯工作得很好,学习曲线极低。
而且很明显,每次进行ajax调用时都不会返回整个页面。 /只有/需要更新的面板的内容通过电线发送。任何http监控器都会证明这一点。是的,页面/生命周期/执行,但知道你可以建立相当高效的asp.net ajax应用程序。
如果您需要更新面板,我建议您使用开源和Lite MagicAjax或ComfortASP。如果你需要框架帮助开发自定义ajax,我建议jQuery。
不要让人们愚弄你,认为这是一个明确的选择。你可以得到两全其美的好处。我的做法是落后创建一个MVC项目,但不是添加视图中添加标准asp.net页面,但修改代码,从MVC.ViewPage继承像这样:如果你把自己定格单
public partial class SamplePage : System.Web.Mvc.ViewPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
在前面的代码中使用表单标签(runat =“server”),那么在访问标准的asp.net服务器控件后,您将拥有完整的代码。这意味着您可以完全控制演示文稿的服务器端(例如,使用数据绑定和中继器),而无需执行旧的ASP式编码。
protected void Page_Load(object sender, EventArgs e)
{
IObjectDefinition instance = (IObjectDefinition)ViewData["definition"];
_objectName.Text = instance.DisplayName;//textbox or label
DataTable itemVals = new DataTable();
itemVals .Columns.Add("itemName");
itemVals .Columns.Add("itemValue");
IDictionary<string, string> items = (IDictionary<string, string>)ViewData["items"];
foreach (KeyValuePair<string, string> datum in items)
{
conditions.Rows.Add(new object[] { datum.Key, datum.Value});
}
_itemList.DataSource = itemVals;//repeater
_itemList.DataBind();
}
任何控件的帖子都不会回发到页面,而是发回到控制器。如果您记得在您的服务器控件上使用name属性,那么它们最终会在FormControls集合中访问按照标准MVC的页面变量。
所以,你得到了什么?:介绍
你会失去什么?
哦,对于AJAX-jQuery肯定。向一个返回JsonResult的控制器方法发出请求确实简化了一些事情。
我看到大部分响应都是在MVC 1.0之前发布的。由于我们现在处于2.0预览版,所以我认为可以重新访问。
我是一个ASP。在我去年3月份转向MVC之前,大约五年时间,.NET开发人员已经完成了这个任务我没有后悔一秒钟。我现在意识到,我在ASP.NET WebForms中获得的越强,学习其他技术(如JavaScript和AJAX的非Microsoft实现)就越困难。微软利用他们的WinForms开发方法提供的ASP.NET开发方法,如果您是从WebForms开发而来的,这对开发学习曲线有帮助,但如果您了解这两种方法之间的差异,则不是开发Web应用程序的好方法。
我的工作要求我学习ASP.NET MVC,JavaScript的,jQuery的,CSS 2和AJAX(非Microsoft)最新的项目。仅仅9个月后,我觉得比经过5年的ASP.NET开发后,我的网站开发项目的准备工作要好得多。 ASP.NET实现使事情变得更加难以长期维护。 MVC让事情变得更容易,因为你不太依赖快捷方式。学习框架需要一段时间,但您对框架了解得越多,对框架的依赖就越少,并且越多您开始学习和理解已建立的标准,如JavaScript和AJAX。
对于我来说,这是一个明确的选择。我将永远不会回到ASP.NET。如果我不能使用ASP.NET MVC,我会学习Ruby或PHP。我希望我的网站开发工具的进步和进步受到开发者社区的需求驱动,而不是利润。
我的经验是用php和ruby编写apache服务器的web应用程序。当我找到维护用asp.net(webforms)编写的web应用程序的工作时,我深入了解构建web应用程序的微软方法。我将不得不说我已经完全屈服了!我在想,WTF是所有这些视图状态的垃圾被送回来的?这甚至是必要的吗?
然后,我决定看看做与AJAX和jQuery一些简单的事情,这导致我更新所产生的面板和的ClientID,而不是我的视图设置。多么浪费我的时间!为什么我不能在一个页面上有多个表单?为什么我不能使用常规的ajax调用?为什么我的观点有服务器逻辑?这些都是很多web程序员面临asp.net webforms的问题。然后,我发现了.NET MVC。我的生活变得更容易了。
我习惯了使用MVC框架,如Rails和CakePHP创建了一个网络应用程序,他们要被编程的方式。技术实际上是为了网络。
我的建议是这样,离开的WebForms为用于编程的WinForms型应用程序,因为它试图抽象的事实,你在网络上编程的人。如果你想有真正的自由去开发网络应用程序,这对网络程序员来说真的很有意义,那么使用.NET MVC或者类似的东西,这些都不会妨碍你。
那是我的两分钱......
恭维@本的答案,我用ASP.Net Web表单进行简单的数据绑定,和JQuery为所有的Ajax事务。说实话,由于其简单性,我仍然无法放弃数据绑定。 Viewstate几乎没用,所以我基本关闭它。尽管您可以使用MVC,但需要注意的是,您需要花大部分时间来开发您在Forms中认为理所当然的功能。祝你好运!
自原来的问题已经很长时间了。现在我们有MVC3和.NET 4
MVC现在是比以前更好的解决方案吗?
怎么样ASP.NET Webforms + JavaScript框架或ASP.NET Webforms + ASP.NET AJAX + JavaScript框架? – Sharique 2010-09-24 11:26:48