您的位置:首页 > 其它

最近关于mvc,xml,事物的学习笔记

2010-01-04 11:46 274 查看
第一节 八一八xml学习笔记

----八一八,精神爽

以前并没有系统的学习过XML,只是需要时就去临时看一下,这次学了感觉xml中有很多东西还是值得学习的,下面就xml的一些基本的东西总结了一下:

1.什么是xml?

· XML 指可扩展标记语言(EXtensible Markup Language)

· XML 是一种标记语言,很类似 HTML

· XML 的设计宗旨是传输数据,而非显示数据

· XML 标签没有被预定义。您需要自行定义标签。

· XML 被设计为具有自我描述性。

· XML 是 W3C 的推荐标准

2. XML与html的区别:xml和html是为了不同的目的而设计的,xml是为了传输信息,特地为了传输和存储数据,html是为了显示信息,在xml中空格会被保留,而html中的空格只会裁剪到一个

3.xml与html的相同点:都兼容于主浏览器,xml 与html都不进行任何操作,是不作为的,xml与html的注释形式是相同的,都是<!-- 注释-->

4.xml的形式如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

其中<?xml ver…?>为xml的声明格式,版本为1.0版本,采用的编码方式为ISO-8859-1编码,

<note>…</note>为根节点,<to>..</to><from>…</from>…为子节点,子节点之间的文本为文本节点,文本节点也可以作为<to></to>的属性出现,例如:<to text=”Geroge”></to>

XML 文档必须包含根元素。该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。所有元素均可拥有子元素, 父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。所有元素均可拥有文本内容和属性(类似 HTML 中)。

5.xml文档必须注意以下几点:

a. 在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签,例如:<note> 就必须有</note>结尾

b.xml标签对大小写敏感

c.xml必须正确嵌套

d.xml的属性值必须加双引号

e.xml文档必须有根节点

f. 在 XML 中,字符 "<" 和 "&" 是非法,”&”在出现的地方必须用&代替,”<”必须用<替换

6. xml命名规则:

XML 元素必须遵循以下命名规则:

· 名称可以含字母、数字以及其他的字符

· 名称不能以数字或者标点符号开始

· 名称不能以字符 “xml”(或者 XML、Xml)开始

· 名称不能包含空格

· 可使用任何名称,没有保留的字词。

7.xml也可以定义自己的样式,可引入css样式文件,例如如下形式:

<?xml-stylesheet type="text/css" href="cd_catalog.css"?>

还可以使用XSLT作为xml的样式文件,XSLT比css更加完善,它的功能之一是在浏览器显示xml文件之前将之转换为html,在xml中引入XSLT的形式为

<?xml-stylesheet type="text/xsl" href="simple.xsl"?>

8.xml在解析之后可以对它的内容进行读取,删除,修改,增加操作

所有现代浏览器都有读取和操作 XML 的内建 XML 解析器。解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的xml dom对象。

通用解析函数为:

function loadXMLDoc(dname)
{
if("\v"=="v")
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
else
{
xmlDoc=document.implementation.createDocument("","",null);
}
xmlDoc.async=false;
xmlDoc.load(dname);
return(xmlDoc);
}

1.其中"\v"=="v"是判断是否为IE浏览器的标志,只有在IE浏览器中,此表达式的值才为true,其他都为false;

2.xmlDoc.async=false,在默认情况下,XML文档的装载和解析不是同步发生的,为了同步装载XML文档,应把async特性设置为false;

其中特别指出XMLHttpRequest 对象提供了在网页加载后与服务器进行通信的方法, 也就是我们现在通常用到的ajax异步调用方式,如何操作xml就省略总结了

第二粗略八一八事物学习笔记

---八一八,在爽一次

引用一下李天平的关于事物的描述:

事务是一组组合成逻辑工作单元的数据库操作,在系统执行过程中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。事务处理的主要特征是,任务要么全部完成,要么都不完成。在写入一些记录时,要么写入所有记录,要么什么都不写入。如果在写入一个记录时出现了一个失败,那么在事务处理中已写入的其他数据就会回滚。事务可能由很多单个任务构成。

事物具有以下几个特点:原子性,一致性,隔离性,持久性

.net中可以用到以下几种事物:sql和存储过程级别的事物,ado.net级别的事物,asp.net级别的事物,企业级服务COM+事物,System.Transactions 事务处理

这5种事务机制有着各自的优势和劣势,分别表现在性能、代码数量和部署设置等方面。开发人员可以根据项目的实际情况选择相应的事务机制

在实际中我用到了两个,sql和存储过程级别的事物和ado.net级别的事物,下面给出sql级别的事物的例子及讲解:

begin TRANSACTION
insert into CourseHour(Ctitle,TtitleID,Sort,WordCount,Keycount)
values('1',1,1,2,2)
insert into Grade(ID,Gname)
values(2,1)
if(@@ERROR =0)
COMMIT TRANSACTION
else
ROLLBACK TRANSACTION

上面是一个Sql语句事物的例子,当@@ERROR为0时,执行提交执行操作,当@@ERROR不为0时,执行回滚操作,@@ERROR必须为紧接上面插入语句之后,且只能用一次,一次之后会复原成0

注意:a.当事物内嵌套事物时,根据最外部事务结束时采取的操作,将提交或者回滚内部事务。如果提交外部事务,也将提交内部嵌套事务。如果回滚外部事务,也将回滚所有内部事务,不管是否单独提交过内部事务。

b.在ado.net级别用到事物时,它内部最好不要在用到存储过程级别事物,否则会产生不可预期的后果

第三粗略八一八MVC

最近几天在尝试着学习MVC,暂时还停留在菜鸟阶段,就菜鸟感受而言:MVC比winform有几个优点:页面产生的源代码比较干净,耐看;地址映射方式更加便捷,高效;MVC框架已经搭建好,比较规范,低耦合,易维护,有利于软件工程化管理;将业务层和表示层真正实现了分离,当你想改变表示方式时,你只要改变视图即可,模型和控制器是可以复用的,例如:你将表示层由html改成xml时,你仅仅只需要改变数据的展示方式而已,因为从模型中获取的数据没有被规范的;

但它也有几个令人不可忍受的地方,缺少了后置文件,必须将静态代码和服务器端代码写到一起,好像回到了ASP时代一样,好不容易把客户端和服务器端分开,现在又揉到一起;在就是即使视图中和控制器中都引用了强类型,但在读取数据时,读取的仍旧是object,必须经过转换;还有就是在Models中写好实体类,在视图中引用时,非得加上类名的前缀命名空间;在就是通过控制器传递数据时,应是要将数据存储于缓存中,这相对于数据量大而内存又小的电脑来说是一个致命伤,不过在硬件飞速发展的今天,这个弱点可以忽略不计;

在视图中向服务器端传递数据暂时菜鸟还只知道传递form一种方式,还有没有其他方式还有待进一步学习;还有就是它的内部原理比较复杂,你必须花费一些时间去思考,而且调试起来也不是很方便。

这几天的学习中,还是发现了有几个用得比较爽的东西,第一个就是ActionLink,这个东西作用其实和a是一样的,但它写起来好看一点,而且灵活性更大:

例如:<%=Html.ActionLink("首页", "doIndex", "User", new { id = 1234 }, new { @onclick = "alert1()" })%>

产生的源代码为 <a href="/User/doIndex/1234" onclick="alert1()">首页</a>

第二个是提交form的放是与以前有所不同,不过原理还是一样的,以下是例子:

<%SelectList showlist =ViewData["nei"] as SelectList; %>

<%Html.BeginForm("doIndex", "User", FormMethod.Post);%>

标题: <%=Html.TextBox("title") %>

分类:<%=Html.DropDownList("show",showlist) %>

<input type="submit" value="发布" />

<%Html.EndForm(); %>

其中Html.BeginForm代表form开始,Html.EndForm()代表form的结束

第三个就是SelectList,这个东西的作用就是为了绑定下拉框而来的,例如:

控制器中: ViewData["nei"] = new SelectList(showlist, "id", "name");

视图中: <%SelectList showlist =ViewData["nei"] as SelectList; %>

<%=Html.DropDownList("show",showlist) %>

还有很多好东西就不一一列举,好东西还在发掘中

但就具体感受而言,MVC并不适合中小型应用程序,比较适合业务复杂的大型应用程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐