前文描述:

随着.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. (linux)安装redis---简装

    redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括strin ...

  2. n皇后问题_回溯法

    具体问题如下图 先看一下4*4的回溯过程 程序结束条件: 一组解:设标志,找到一解后更改标志,以标志做为结束循环的条件. 所有解:k=0 判断约束函数判断第k个后能不能放在x[k]处 两个皇后不能放在 ...

  3. BZOJ 3211【线段树】

    题意: n个数,m个操作. 1,L,R  询问[L , R] 的总和. 2,L,R  将区间所有数都开根号. 思路: 区间和简单. 主要就是一个 区间所有元素相同的标记Same ,但是这样是不是要求太 ...

  4. 洛谷P3819 松江1843路

    P3819 松江1843路 题目描述 涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为x[i]的地方,其中住了r[i]人. 松江1843路公交车要在这条路上建一 ...

  5. centos 7 安装python3

    centos系统默认已安装python2.7,python3需要手动安装.以上是安装步骤 一.备份原来的2.7版本 首先看一下默认的python2.7在哪里 [root@apple ~]# cd / ...

  6. Python中print()函数不换行的方法

    一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...

  7. 10分钟了解什么是BFC

    BFC对于已经是一个耳熟能详的词汇了,而且在前端面试中,这题也是一个高频题.虽然我们平时在开发的时候知道如何利用BFC来解决问题,但是我们要具体说出BFC的概念和怎么触发BFC,我相信很多小伙伴也是和 ...

  8. win下rabbitmq的安装

    安装erlang 10.4 和 rabbitmq 3.7.5 然后关闭rabbitmq服务 然后设置 erlang和rabbitmq的环境变量 ERLANG_HOME=erlang安装目录 RABBI ...

  9. 消息中间件 | 消息协议 | MQTT3.1.1 -- 《分布式 消息中间件实践》笔记

    1999年,IBM和合作伙伴共同发明MQTT协议 14年,MQTT正式成为推荐的物联网传输协议标准 常应用于很多机器计算能力有限.底带宽.网络不可靠的远程通信应用场景中.   主要概念     MQT ...

  10. DateAdapter

    import java.text.SimpleDateFormat;import java.util.Date; import javax.xml.bind.annotation.adapters.X ...