.net笔记二

本文深入探讨了信息技术领域的核心内容,包括前端开发、后端开发、移动开发、游戏开发、大数据开发、开发工具等细分技术领域的重要概念及实践方法。同时,介绍了安全性、测试、基础运维、DevOps等关键环节的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



2014.08.04
两个表引用的时候一定要引用主键
数据的软删除,真正项目中一般不要真正delete掉,而是将数据表中加一个字段isDeleted


真正项目中,数据库一般都是随着项目会改变的,表会增加字段。
<appSetings>里面存取数据。

asp.net路线
互联网开发(全网访问) 管理系统开发(内部访问)(技术没有什么区别) 

只是大多数中小型系统对技术要求不高
.net是类库是工具。
Chrome调试开发工具好,支持好。
页面中的图片,脚本等都需要服务器来返回给浏览器。需要多次交互。
HttpHander:ProcessRequest()
vs2010有内置web服务器,默认是没有使用IIS服务器。
<form action='' method='get'><input name=''><input type='submit'>,

提交只能input textarea select这三种标签的value值 如果是相同的name那么提交的回事字符串相加。


2014.08.05
get会把参数放入地址栏中post请求将表单值隐藏到http报文中以formData的形式把数据传输出去。
get有长度限制,post无法通过url在其他用户中还原。

http协议,是server与browser传输使用的协议。不保持连接。(网游需要长
连接)请求:标头,正文。(socket报文)响应:标头,正文。


响应200 302 404 500
code=html.replace("{username}",username)
模板引擎Nvelocity.dll,可以将htm放在单独目录下面由美工处理。可以将对象传到htm中


2014.08.06


模板文件:CommonHelper.cs

RenderHtml(string templates,object data)用data数据填充templateName模板,渲染生成html返回,

这个data一般不要是datatable,要传dt.Rows,用来foreach遍历。

#foreach($person in $Data) $person.Name
(数据和界面分离)
增删改查模板页:PersonList.htm,PersonEdit.htm(add的展示保存,edit
的展示保存,要存放隐藏按钮提交参数)
Person.Edit.ashx
- - - - - - - - - - - - - - - 
DateGrid:拒绝自动 
IsReadOnly="true"
AutoGenerateCOlumns="false"
CanUserAddRows="falsse"

<Colunms><DataGridTextColumn  IsReadOnly="false" Binging="{binding 
Gender}"></Columns>


2014.08.08
状态传递:http是无状态的,要另外把数据保存传递。
两页面最好的数据的传递方式是url,但是不保密。
状态信息尽量不要保存在隐藏字段中,会加大网站流量,降低访问速度,不安全。
url和表单传递数据,不自由。可用cookie,cookie存在客户端本地硬盘中,
只有自身网站可以读取。浏览器每次请求该网站都会把cookie以报文形式发送



给服务器。
写cookieresponse.SetCookie(new HttpCookie("Age","33"))
读取request.Cookies["Age"].value
cookie不能跨不同浏览器。几k的大小限制。
cookie生命周期是浏览器的生命周期,重启就自动删除了。


cookie1.Expires=DateTime.Nw.AddHours(3),可以设置过期时间。
cookie记住用户名。
若要存储稍微机密的数据,可以保存一个Guid带Cookie中,服务器中建立一个


以Guid为Key,复杂数据位Valuede 的全局Dictionary,放到Application中。
用户可以直接修改cookie的值。
static在.net f运行时一直存在。
private static Dictionary<Guid,string> account=new 


Dictionary<Guid,string>


secction机制,实际上是用了cooke存了一个guid键名在客户端,把数据存到server中。
不同的浏览器是不同的键cokkie

Context.Session["name"]=username;
session自动销毁机制,防止访问很大是占用过多内存


2014.08.11
AJAX
<input type="hidden" name="IsPostBack" value="true">
bool isPostBack=Convert.ToBoolean(Request["IsPostBack"])如果是TRUE的


话就是提交了页面。提交页面后要重新定向页面。
AJAX:js中创建XMLHTTPRequest对象来想server发出请求,并返回数据。
不同的IE创建xmlHttp的方法不同。xmlhttp.open("post","zan.ashx?


action=zan",true)准备工作。
ajax异步的并不是等到server返回才继续指向。xmlhttp.readystate==4表示


服务器返回数据,xmlhttp.status==2表示成功,xmlhttp.responsetext


封装ajax代码:
function ajax(url,onsuccess){onsuccess(xmlhttp.responsetext)}
执行js:ajax("...",function(resText){...})


相对路径是根据浏览器来看的,访问的是viewvidio.ashx这个页面。string html=CommonHelper.RenderHtml("video.htm",null);context.Response

(html);(渲染htm页面) video.htm这个页面浏览器是不知道的。路径是根据ashx这个路径来判断的。

ajax检查用户名:
onblur="checkUserName"
ajax("CheckuserName.ashx?username=li",function(resText){if
(resText=="ok"){...}})
ashx页面中返回resText,
context.Response.Write("ok")


Json

ajax服务器端需返回很复杂的数据。ajax规定了数据传输标准Json,xml格式的文档太大,要尽量降低网络流量。

json讲数据简化体积更小,传递结构化话数据。

List<person> list=new List<person>()'
list.add(new person{name="li",age=22});list.add(new person


{name="li",age=22});
要引用这个类。
JavaScriptSerializer jss=new JavaScriptScrializer();
string json=jss.serialize(list);生成的是{{"name":"li","age":22},{}}
json字符串可以转换成js对象,使用json.parse;(ie67没有,可印用json.js)

var p=json.parse(tesText);
for(var i=0;i<p.lenth,i++){var per=person[i];alert(p.name)}


2014.08.12
练习无刷新评论ajax,需用到js动态创建html元素。


网站安全。
客户端不可信!
修改url参数可以直接向服务器发请求,跳过客户端js校验。使用post的会,写个socket程序照样可以跳过客户端校验向服务器发送报文。
必须进行服务器端校验。

默认asp.net4.0会对请求数据进行校验。(跨站脚本攻击XSS)不允许在提交数据中加html标签。

需加ValidateRequest="false"或者<systerm.web>中把asp.net改为2.0。

可视化编辑器CKEditor:
/js/ckeditor放入源文件


<textarea name="msg" id="editor"></textarea>
JSONload: CKEDITOR.replace(doc.getbyID("editor"))会把textarea变成编
辑器。提交给服务器的是html内容。

编辑器探秘:js在客户端浏览器动态生成了很多东西



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值