ASP.NET WebForm中的jQueryMobile

在ASP.Net Web Form应用程序中使用jQueryMobile是否正确?
在ASP.NET Web窗体中使用jQueryMobile或其他Mobile JS库的优缺点是什么?

ASP.NET Web Forms是一个很好的框架,但您不需要将其大部分内容用于使用JavaScript UI框架进行移动开发。 我将首先列出缺点,然后是替代方案,最后在必须使用Web表单时给出一些提示,尽管有缺点。


ASP.NET Web窗体的问题在于您并不总是完全控制HTML。 这可以通过使用控件适配器 ,避免使用某些控件 ,以及在控件和页面上使用EnableViewState属性来缓解。 ASP.NET Web Forms 4.0还可以缓解一些不可预测的客户端ID等问题。 但是,所有这些确实增加了额外的工作,只是为了解决ASP.NET Web窗体的本质。

此外,大多数Web控件都会将JavaScript发送到页面中,以便ASP.NET Web Forms回发模型工作。 例如,使用 。 如果您的开发风格主要是服务器端,并且您很高兴不必担心使其全部工作在客户端,那么这非常好。

是另一个很好的例子:你将它添加到页面,你有神奇的AJAX启用页面。 但它渲染了相当多的JavaScript,所有的视图状态仍然在客户端和服务器之间来回发送,即使是微小的更新,整个页面也会在服务器端处理。

但对于移动开发,您希望针对较小的屏幕和快速加载时间优化页面。 通常,移动JavaScript框架负责维护客户端的状态,异步发送和接收消息以及通过JavaScript更新视图。 这意味着ASP.NET Web Forms中用于维护回发状态(视图状态,页面生命周期)的所有基础结构通常都是无用的,有时甚至会适得其反。


我认为整体ASP.NET MVC更适合移动开发,也适用于jQuery Mobile。


如果必须使用ASP.NET Web窗体,则使用类的来呈现要用于jQuery Mobile UI列表元素的HTML。 此控件使您可以很好地控制HTML。

尽量不要使用控件,因为那样你肯定会混淆隐喻。 一般来说,不要过多依赖邮寄。

相反,您可以在页面上使用可以直接从JavaScript调用的Web方法 。 具有[WebMethod]属性的静态页面方法将返回JSON格式的数据,这非常适合当今的大多数JavaScript框架。 必须将这些方法声明为静态的事实意味着它们不参与页面的生命周期。 这也意味着它们具有更好的性能特征。

最后,即使您使用Web窗体,也可以始终使用.ashx文件(基本IHttpHandler及其异步表兄, IHttpAsyncHandler )或具有ScriptService属性的Web服务。 如果您决定将来使用ASP.NET MVC,这些选项也将很好地迁移。

我希望这不会变成ASP.NET WebForms抨击派对。

答案是ASP.NET WebForms都很好,ASP.NET MVC也是如此。 你今天用的是什么? 你最舒服的是什么? 你有多少时间? 项目截止日期是什么时候?

是的,WebForm生成的控件ID有点烦人,但有一些解决方法。 是的,尝试远离UpdatePanel ,但没有什么能阻止你同时使用jQuery。 UpdatePanel历来被滥用。 期。 它是一款ViewState hogger,不适合移动应用。

在一天结束时,WebForms将正常工作,拥有页面生命周期,并可以执行一些坚实的服务器端逻辑。 在移动环境中,我倾向于远离任何runat=server控件,因为我想主要制作自己的Html并避免使用ViewState 。 此外,页面级别的静态[WebMethod, ScriptMethod]有助于组织代码。