前文描述:

随着.net  推出 MVC框架以来,webform 与 mvc 的争论一直没有停止过,一直以来 mvc 的 拥护者远远高于 webform,但是webfrom的有些优势又是mvc而无法替代的。下面我们来看一下webform相比与MVC的劣势在什么地方,而我们要做的是如何解决这些劣势,同时在性能上要超过MVC。

1.大量的服务器控件,大量的垃圾代码,导致页面加载速度慢。

2.每次点击按钮或者一些操作 界面都会刷新,又不想写 ajax 。

3.每次调用后台前想先执行前台很难写, 前台  传参数到后台很困难

4.webfrom 自定义控件 效果很不好,也很难写

5.前台页面与后台代码紧密相连,无法分离,需要写很多重复的页面

6.没有像MVC那样的视图 引擎机制

7.没有mvc 那样的路由机制

.   *****

当然 webform 的坏处还远不止这些,而作为一个开发人员这些问题我们都是知道的,但是我们依然在使用webform开发大型网站,下面来看下我们公司是如何避免这些问题的?在了解框架之前,我们得必须知道我们公司的框架的思想!!!!

什么样的前端架构才是最好的?

      其实作为一个开发人员,除了关心性能之外,你最关心的是扩展性以及代码的可维护性,还有代码的简单易懂。而作为前端开发,你需要能控制到 每行代码都能自己去控制,下面是我的个人观点!

       我认为 最接近原生 的 html 的代码 是最好的 前端,比如大家所谓的 easyui,bootstrap 等框架,虽然能减少你的开发周期,减少控件开发,但是问题也很多,如果需要扩展功能很难,整个页面的加载速度很慢,而且很难去控制,因为很多js代码不是你写的,里面一旦出现BUG很难去纠正,如果有条件 可以去自己开发控件,我推荐使用 jquery控件(jquery能很好的兼容各种浏览器)和 C#控件(这里指的是纯cs 输出 html代码的控件)。

问题一:  .大量的服务器控件,大量的垃圾代码,导致页面加载速度慢。   如何解决?

      我们要打招高性能的 webform,我们要明确一个思想,我们要抛弃一切服务器控件,界面布局全部使用 最原生的html,这样的好处很多,能很好的与美工 做出来的效果保证一致,但是我们依然要使用的 runat="server" ,还要写上id ,这样我们才能在后台获取到值。

有人会问,那分页控件怎么办(我推荐使用 c# 输出html 控件),很多特殊的控件怎么办?比如日历控件(我推荐使用js 日历控件),

我们常用repeater 控件怎么办?(我推荐 后台写写一个全局变量,前台 使用<% %>  的方式来进行 前台页面输出),例如:

<table>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<%
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
%>
<tr>
<td>
<%=dt.Rows[i]["name"].ToString() %></td>
<td>
<%=dt.Rows[i]["age"].ToString() %></td>

</tr>
<%
}

}

%>
</table>

同样我们可以用  <%  %>   的方式代替   razor 的视图引擎。

好了这样 ,这样的页面是否会觉得跟html 的原生页面很相似呢?这样你的页面 还会加载速度很慢吗?除非数据量很大,后期我们会讨论大数据的分页!!!

这样还会引来一个问题,我们如何与后台打交道啊,我可不想写 什么 ajax   和一般处理程序啊!!!!怎么办??

这个问题我们会在下期界面中去讲如何实现 js 直接与后台打交道!!!!

打造颠覆你想象中的高性能,轻量级的webform框架-----如何替换webform的垃圾控件(第一天)的更多相关文章

  1. 打造颠覆你想象中的高性能,轻量级的webform框架---js直接调后台的封装(第三天)

    如果你没有看我第二天写的内容的,我想你是看不懂的!!!! 好了,废话不多说,怎么才能让我们的代码变得牛逼起来呢?怎么封装我们的代码呢?我们不可能 每个页面都需要那样写吧,那我们来一步一步来封装 我们的 ...

  2. 打造颠覆你想象中的高性能,轻量级的webform框架---无刷新提交后台并返回参数(第五天)

    问题5:  使用aspx 页面执行后台方法,总是要刷新整个页面?我想提交后台不刷新页面,同时返回参数 执行前台的js 脚本,就是说类似于像 ajax 的效果一样,那我们该怎么做呢? 大家是否已经看了前 ...

  3. ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证

    ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...

  4. 在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件

    Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web ...

  5. XAF 框架中,自定义参数动作(Action),输入参数的控件可定义,用于选择组织及项目

    XAF 框架中,如何生成一个自定义参数动作(Action),输入参数的控件可定义? 参考文档:https://documentation.devexpress.com/eXpressAppFramew ...

  6. QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)

    QT中获取选中的radioButton的两种方法   QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...

  7. PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系

    在界面程序开发中,数据的展示主要包括表格.简单列表.树状列表以及纯文本等多种方式,在Qt中将界面表格.简单列表.树状列表称为"表项视图类(item view class)",并提供 ...

  8. .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件

    系列目录     [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...

  9. 将展示内容(div、iframe)放在Expand控件中

    Expand是ArcGIS JavaScript API 4.3推出的一个widget(控件),用于承载一个HTML DOM元素,可以把一个自己编写的div或者是一个其他的Esri widget控件放 ...

随机推荐

  1. superset 错误解决

    访问superset localhost:8088   securety->list Role 报错 xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxx ...

  2. mobile web页面调试方法

    此文已由作者张含会授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 开发过程问题排查 Chrome Emulation关键词:使用方便 模拟各种设备尺寸.像素比.自定义user ...

  3. SpringBoot应用篇(一):自定义starter

    一.码前必备知识 1.SpringBoot starter机制 SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在mave ...

  4. Exception异常处理

    1.java异常类: 都是Throwable的子类: 1.Exception(异常) :是程序本身可以处理的异常. 2.Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或 ...

  5. HDP3.1 中配置 YARN 的 timeline server 使用外部的 HBase

    HDP3.1 中的 YARN 的 timeline server 默认使用内置的 HBase,不知道为什么,总是过几天就挂掉,暂时还没找到原因.后来想着让它使用外部的 HBase 看看会不会还有此问题 ...

  6. hdu6070(分数规划/二分+线段树区间更新,区间最值)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意: 给出一个题目提交序列, 从中选出一个正确率最小的子串. 选中的子串中每个题目当且仅当最 ...

  7. Glusterfs冗余镜像(AFR)修复原理以及脑裂分析

    研究Glusterfs半年多了,通过实际操作以及源代码分析,对它有了越来越深的了解,由衷的赞叹Gluster的整体架构.今天时间不早了,想写点关于Glusterfs的冗余镜像产生脑裂的原因. 首先,简 ...

  8. 洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle

    P1607 [USACO09FEB]庙会班车Fair Shuttle 题目描述 Although Farmer John has no problems walking around the fair ...

  9. 2017-10-1 清北刷题冲刺班p.m

    一道图论好题 (graph) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图 ...

  10. jzoj3208. 【JSOI2013】编程作业(kmp)

    题面 Description Will相信,很多同学都有过这样的经历:大牛已经写好了编程作业,而作为菜鸟的自己不会写怎么办呢?拿大牛的代码抄一下嘛!但是提交一模一样的作业是不是不太好?于是就改一改变量 ...