pub*_*tic 21 .net asp.net ajax asp.net-mvc asp.net-ajax
如果给出选择,你会选择哪条路径?
ASP.NET Webforms + ASP.NET AJAX
要么
您选择的ASP.NET MVC + JavaScript框架
ASP.NET Webforms/ASP.NET AJAX是否存在与MVC相比的限制?
ben*_*ben 29
我最近都做过,我会在十分之九的时间内接受MVC九次.
有一次我会选择使用asp.net表单开发将使用gridview控件.我们正在使用jquery用于我们的MVC javascript框架,还没有找到一个非常好的gridview像控件.我们有一些功能性的东西,但是我们沉迷于学习,调整和调试它与使用asp.net服务器端控件的时间相当长.一个人放弃了微软提供的所有非常好的小部件,开箱即用非asp.net表单开发.这些小部件的丢失正在释放,并且在您第一次启动的同时也很可怕.
在一天结束时,我很高兴我们正在进行MVC开发.我的团队和我已经学会了一个新的框架,(之前我们只是asp.net开发人员),并且已经弄脏了html和javascript.如果我们需要,这些是我们可以用于其他项目或其他语言的技能.
Mik*_*ike 11
不要让人们欺骗你认为这是一个明确的选择.你可以充分利用这两个世界.我的方法是创建一个MVC项目,但不是添加视图,而是添加标准的asp.net页面,但改变后面的代码继承MVC.ViewPage,如下所示:
public partial class SamplePage : System.Web.Mvc.ViewPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Run Code Online (Sandbox Code Playgroud)
如果您将自己限制在前面代码中的单个表单标记(使用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();
}
Run Code Online (Sandbox Code Playgroud)
任何控件的帖子都不会回发到页面,而是回发到控制器.如果您记得在服务器控件上使用name属性,那么它们最终会在FormControls集合中根据标准MVC访问您的页面变量.
那么你得到了什么?:
你输了什么?
哦,对于AJAX - 绝对是jQuery.向返回JsonResult的控制器方法发出请求确实简化了事情.
我喜欢webforms,但ASP.NET AJAX是一堆垃圾.
我更喜欢使用WebForms +自定义HTTPHandler来处理任何AJAX调用的服务器端.
嘿,downvoted ......
ASP.NET AJAX是一堆垃圾,因为回调需要重新实例化整个页面类,而不是调用单个方法,而是每次都在服务器上重建整个页面.
此外,UpdatePanels返回整个页面,只会弹出更新面板中的部分,这样就完全浪费了带宽.
我理解为什么它这样做,因为WebForms控件实际上不是很容易的其他方式,但它仍然是非常糟糕的.
我看到大多数响应都是在MVC 1.0之前发布的.由于我们现在处于2.0预览版,我认为重新访问可能会很好.
在我去年三月转向MVC之前,我是一名ASP.NET开发人员已有五年了.我没有后悔一秒钟.我现在意识到,我在ASP.NET WebForms中得到的强大,学习其他技术(如JavaScript和非Microsoft的AJAX实现)变得越困难.Microsoft从他们的WinForms开发方法中利用了他们的ASP.NET开发方法,如果您来自WebForms开发,这有助于学习曲线,但如果您了解这两种方法之间的差异,那么开发Web应用程序并不是一个好方法.
我正在工作的最新项目要求我学习ASP.NET MVC,JavaScript,jQuery,CSS 2和AJAX(非Microsoft).仅仅九个月之后,我觉得接受Web开发项目的准备比我在ASP.NET开发五年后做的更好.ASP.NET实现使得长期维护变得更加困难.MVC让事情变得如此简单,因为你对快捷方式的依赖程度较低.学习框架需要一段时间,但是您对框架的了解越多,您对框架的依赖程度就越低,您开始学习和理解已建立的标准(如JavaScript和AJAX)的次数就越多.
对我来说,这是一个明确的选择.我永远不会回到ASP.NET.如果我不能使用ASP.NET MVC,我将学习Ruby或PHP.我希望我的Web开发工具的进步和进步能够受到开发人员社区需求的激励,而不是利润.
| 归档时间: |
|
| 查看次数: |
10359 次 |
| 最近记录: |