网上看了很多理论,然而知易行难。在实际工作中还是存在很多问题。

下面是使用webform过程中的总结。

1.不使用服务端控件

表单有post和get两种方法,可以通过 form methed='post/get' action='login.aspx'的方式将表单的形式直接提交到动态页面。

但是碰到要回传的页面 我现在还是要依赖 botton控件。

还有一种是用ajax调用后台文件,但是这样在html提交到一般处理程序和webservice就够了,不需要.aspx页面。

研究了下.net的回传机制,没有理解清楚。

想起了mvc模式,才明白为什么webform大家都不用了,跟ajax配合太好用了。以后看有没有机会用mvc重写一次,现在用的三层,应该重写ui层就可以了吧。

 2.SqlCommand需要using吗

用了using 不用 cmd.Parameters.Clear();

没有add parameter可以不要using。

关于using(百度的)

一般支持Dispose()方法的类型的对象,都可以被using起来。
using(A a = new A())
{
}
代表a这个对象的生存期仅仅在两个花括号之间,出了这个括号就会销毁。
为了支持自动销毁,所以需要有Dispose方法。

 3.iis的托管管道模式

经典模式和集成模式

区别:1.上述两种管道模式使用的web.config文件存在重大的区别,许多在经典管道模式下能够正常工作的web.config文件都无法在集成管道模式下正常工作。

据说 利用AppCmd.exe,我们可以将经典管道模式下的配置文件格式自动转换为集成管道模式下的配置文件格式。暂时还没搞懂,先记下来。

2.经典模式缺少许多集成模式才能提供的特性。

3.在集成模式中,httpmodule模块和httphandler不再定义于<system.web>中,而是定义于<system.webServer>中。

4.url重写

http://www.cnblogs.com/knowledgesea/archive/2012/10/08/2715350.html

iis配置错误请参照第二条

5.handler的应用

1)图片防盗链   2)写验证码

具体实现,网上有很多,我就不复制粘贴了。现在我的验证码还是用的aspx页面做的,因为用起方便写。

6.model层的意义

1)感觉意义就是 三层之间要传递数据库中的数据,增删改查都需要传递各种不同的参数 ul->bll->dal 都需要定义很多参数,有model层后,就只用传递一个model就行了。

2)如果性别在数据库中表示的0,1,可以在model层中新增一个属性用get方法转化为 男,女 再传递到ui层显示。因为赋值都是在构造函数,所用用了只读属性

private string _sex;
public string Sex{
get{return _sex;}
}
public string SexShow{
get{ return _sex==""?"男":"女"}
}

7.Cache

学习中。。。

http://www.cnblogs.com/fish-li/archive/2011/12/27/2304063.html

暂时用不到,中断中。。。

8.异常总结

1)null值的处理

容易存在null值的地方:request获得的数据 request.querystring[] request.form[] ...,  sql查询结果

调用前应该判断null值的地方:.tostring() , .length

string 类型null值和""的判断方法 !String.IsNullOrEmpty(someString)

思考:为什么null.tostring()会报错,string a=null,表示a 未实例化,null.tostring()报错是因为,一个不存在的东西没有tostring()方法。

2)另一个 SqlParameterCollection 中已包含 SqlParameter。

异常分析:1、在方法外定义了 sqlparameter,而调用sqlhelper时不是new 了一个 sqlparameter,而是直接对sqlparameter赋值后传入。造成每一次cmd.parameter.add()都是添加的同一参数

2、sqlhelper第一次执行后,垃圾回收机制尚未未将cmd释放,在第二次调用时又新增了一个cmd,出现异常 两个cmd同时引用同一个sqlparameter。

解决方法,针对第一步,每次new一个sqlparameter。针对第二部,cmd每次使用完将参数释放掉。cmd.Parameters.Clear();

9.更高的性能

1).使用List类

 

如果我们只是遍历List容器中的所有内容的话,那么,使用IEnumerable接口会更好一些。因为函数参数传递一个List对象要比一个IEnumerable接口要花费更多的开销。

public void SomeMethod(IEnumerable<SomeItem> items)
{
foreach(var item in items)
{
// do something with the item…
}
}

2)直接使用数字

 

为什么不给你的这些数字取个名字呢?比如使用Enumerations。

public enum SomeEnumerator
{
DefaultMode = ,
SafeMode = ,
NormalMode =
} if(mode == SomeEnumerator.DefaultMode) { … }
else if(mode == SomeEnumerator.SafeMode) { … }
else if(mode == SomeEnumerator.NormalMode) { … }

说明:当需要在数据库中存 汽车类别时,可以存int类型,在程序中定义枚举

public enum CarCategory{
qiche=,
jiaoche=,
huoce=
}

但是最近model层我比较喜欢直接全部用string类型做变量类型,而枚举好像是对应 int 类型,所以平时我也没有用 枚举,有空要研究下枚举的类型转换。

该条见:http://coolshell.cn/articles/1375.html

 10.基础
1)抽象类和接口
抽象类是父类,类中的其他普通方法在子类中不用重写。只重写父类中的抽象方法就行。
接口是一种标准,适用于多个程序员工作写的程序最后能接到一起,比如网站 客户端 服务器之间对同一种数据要求是一样的格式,定义同样的名称。

2)先执行父类的构造函数-子类的构造函数-父类的方法

11、session

在webform和mvc类库外使用session需要实现接口IRequiresSessionState

未完待续

webfrom 总结的更多相关文章

  1. 使用WebFrom来模拟一些MVC的MODEL与View的数据交互功能

    MVC中有一点非常闪瞎人眼的功能就是,可以根据Model与View视图来直接将页面也数据模型进行绑定,那么我们在想客户端发送页面时不需要进行各种控件赋值,不需要操心怎么渲染,当客户提交表单给服务器时也 ...

  2. WebFrom与MVC异同

    一.共同点 它们共用一套管道机制. 二.不同点: 1.开发方式: webform开发方式 第一步:前台页面(*.aspx)+后置代码类(*.cs) 第二步:前台页面(*.aspx)+一般处理程序(*h ...

  3. winfrom中上传文件保存在webFrom里面

    winfrom里面的代码 private void button1_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(text ...

  4. .NET WebFrom跨时区项目时间问题处理方法

    前段时间因为公司的一个 WebFrom 项目设计到跨时区的问题,处理了一段时间,终于解决了,写个博客记录一下,方便以后回顾以及给他人提供一个参考的方法. 本次的项目因为跨越了多个时区,在一些时间上会受 ...

  5. 省市县三级联动(webFrom...DropdownList)

    编辑页面 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"&g ...

  6. WebFrom 的js日期控件

    1.WdatePicker.js /* * My97 DatePicker 4.7 Release * License: http://www.my97.net/dp/license.asp */ v ...

  7. ValidationSugar表单验证框架-支持ASP.NET MVC ASP.NET WebFroM

    ValidationSugar表单验证框架的优点: 1.支持javascript端和后端的双重验证 (前端目前依赖于jquery.validate.js,也可以自已扩展) 2.代码简洁 3.调用方便 ...

  8. 【Asp.Net WebFrom】分页

    Asp.Net WebForm 分页 一. 前言 Asp.Net WebForm 内置的DataPager让人十分蛋疼 本文使用的分页控件是第三方分页控件 AspNetPager,下载地址: 链接: ...

  9. [转]log4net使用(WinForm/WebFrom)

    原来的一篇文章,今天用 WLW 转到页面上,原文章以及附件下载地址:http://zhq.ahau.edu.cn/blog/article.asp?id=366 http://www.cnblogs. ...

随机推荐

  1. Java三大框架之——Hibernate中的三种数据持久状态和缓存机制

    Hibernate中的三种状态   瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候是没有OID. 持久状态:对象经过 ...

  2. java类与实例

    最近在看设计模式,感觉自己对java的三大特性的理解不够清晰,搞不清楚抽象类.接口.泛型的用处和优缺点.设计模式学了一半,想着还是停下来脑补一下java的基础,就从java对象开始吧. 一.java对 ...

  3. 升级Centos的python为2.7(centos python 升级)

    1.首先下载python的2.7.8版本的tar包.为什么没有选择最新版本的3.4呢?因为3版本的兼容性不好.很多一些成熟的项目都是基于2.7开发的. https://www.python.org/d ...

  4. BFC布局

    这几天都没有写博客,自己的懒惰又要跑出来了,发觉不能再这样下去了,不然就什么都不想干了,然后将之前已经写得差不多的博客重新检视了一遍.这篇博客已经写得挺久的了,但是一直没有发布,现在补充了一些,也让自 ...

  5. 《.NET开发资源大全》

    目录 API 应用框架(Application Frameworks) 应用模板(Application Templates) 人工智能(Artificial Intelligence) 程序集处理( ...

  6. RunLoop 总结:RunLoop的应用场景(二)

    上一篇讲了使用RunLoop保证子线程的长时间存活,而不是执行完任务后就立刻销毁的应用场景.这一篇就讲述一下RunLoop如何保证NSTimer在视图滑动时,依然能正常运转. 参考资料 好的书籍都是值 ...

  7. [原创]Linux-day1

    原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html 一.Linux的基本原则 由目的单一的小程序组成:组合小程序完成复杂任务 一切皆文件 尽量避 ...

  8. java保留两位小数4种方法

    import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public c ...

  9. python写红包的原理流程包含random,lambda其中的使用和见简单介绍

    Python写红包的原理流程 首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机 ...

  10. RHEL6和RHEL7恢复root用户密码

    一.RHEL6恢复root密码 将系统重启,出现如下界面按上下键选择会停住,并输入e键 选中下图红框选项,再输入e键 再输入1,进入单用户模式 输入b进行启动   修改密码,然后重启 二.RHEL7恢 ...