[1]隔离存储(isolated storage);即存储每个用户的数据。
功能:由传统windows的*.ini文件和更新一些windows注册表中 HKEY_CURRENT_USER 键。
形式:通常是文件系统中的一个目录实现数据隔离;可信度小的代码无法调用可信度要求高的代码。
重要性:CLR提供了一种标准的空间存储程序的数据,无需要求数据有特定布局或语法;可将任何数据保存在隔离存储中。隔离存储主要用于保存用户的配置信息、各个窗口及其部件的位置、用户专有的信息等;每个用户的数据可以保存在单独的文件中,按配件或所源自的应用域进行区分。
基本操作:
a)向隔离存储写入:创建配置文件流IsolatedStorageFileStream("Tester.cfg",FileMode.Create)-------写入流StreamWriter--------刷新缓冲并清除Flush()
b) 向隔离存储读取:打开配置文件流IsolatedStorageFileStream-------读取流StreamReader--------读取整个文件ReadLine()
[2]串行化 、格式化器(二进制或SOAP格式)、反串行化
定义:当对象以流的形式被写入到硬盘时,它的各种成员数据均被串行化Serialize。即以一串字节形式写到流中。
适用:对象在存入数据或跨场景Context、应用域Appdomain、进程process或机器边界列集时,也要被串行化。
[串行化对象映像object graph]对象及其所有成员数据;[Serializable]属性信息显示声明。
如何在没有知名端口情况下调用对象? 服务端
/******************************************************************************************************
* 思路:Marshal()返回了一个ObjectRef对象,它存有激活对象并与之通信所需的所有信息;当有端口时,服务器会
* 创建一个表,将端口与ObjectRef联系起来,故在客户请求时,服务器可以创建代理;ObjectRef会有客户创建代理
* 的所有信息,而ObjectRef本身是可串行化的。
*
* 方式:文件流-----------SOAP格式化器--------将对象串行化写入磁盘文件中
* ****************************************************************************************************/
不知名端口列集对象,客户端
/*******************************************************************************************************************
* 思路:当客户端启动时,文件从磁盘读出,代理被散集;这是服务器列集和串行化对象的镜像操作。散集代码后,即调 用服务器上运行的Con_Remoting对象了。
*
*
* *****************************************************************************************************************/
本质:端点其实只是为了方便访问列集对象。
趋势:业务集中化;用户界面及中间件分布化。
涉及概念:按值列集、按引用列集、应用域、跨场景列集、跨应用域列集、跨进程或机器边界列集(远程化)
远程调用RPC、汇点、信道、格式化器、知名(单体singletom、单调用singlecall)、激活、服务器群集、负载平衡、SOAP格式化器、透明代理TP、串行化
HttpChanel、ChannelServices、MarshalByRefObject、WellKnownObjectMode、RegisterWellKnownServiceType()、Marshal()、Unmarshal()、Serialize()、Deserialize()等
function Submit1_onclick()
{
document.Form1.hide_content.value=editor.data();//隐藏文本框存放内容;便于服务器端获取
}
#######################################################################
#
# KindEditor 2.5 自述文件
#
#######################################################################
一 简单使用方法
1. 把所有文件上传到程序所在目录下,例如:http://你的域名/editor/。
2. 在此目录下创建attached文件夹,并把权限改成777。
3. 要添加编辑器的地方加入以下代码。(原来的TEXTAREA或其它编辑器可以先注释。)
这里[]里的内容要根据你的实际情况修改。
-----------------------------------------------------------------------
<input type="hidden" name="[原TEXTAREA名字]" value="[这里放你要编辑的内容]">
<script type="text/javascript" charset="utf-8" src="[JS路径]/KindEditor.js"></script>
<script type="text/javascript">
var editor = new KindEditor("editor"); //创建编辑器对象
editor.hiddenName = "[原TEXTAREA名字]";
editor.editorWidth = "[编辑器宽度,例如:700px]";
editor.editorHeight = "[编辑器高度,例如:400px]";
editor.show(); //显示
//提交时获得最终HTML代码的函数
function KindSubmit() {
editor.data();
}
</script>
-----------------------------------------------------------------------
4. FORM的onsubmit属性里添加KindSubmit()函数。
<form name="formname" onsubmit="javascript:KindSubmit();">
或可以放在提交按钮的onclick属性里。
<input type="button" value="Submit" onclick="javascript:KindSubmit();">
5. 如果KindEditor文件放在其它目录下,那就需要通过skinPath、iconPath属性指定图片、笑脸目录。
* 使用方法可以参考demo文件。
进入后台管理页面惯用方式:
string tt="oa = window.open('"+Request.ApplicationPath+"Admin/index.aspx"+"'"
+",'','toolbar=no,menubar=no,titlebar=yes,directories=no,resizable=yes,status=yes,fullscreen=no,top=0;left=0,width=900,height=700');";
Response.Write("<script language=javascript>");
Response.Write(tt);
Response.Write("oa.moveTo(0,0);");
Response.Write("oa.resizeTo(screen.availWidth,screen.availHeight);");
Response.Write("window.opener=null;");
Response.Write("window.close();");
Response.Write("</script>");
登录页面请求时,直接以窗口重绘的方式进入管理界面.
1》生成*.dbml数据库实体类文件;即主要用于LINQ TO SQL框架与数据库实体间的访问与操作;详细到可以将数据库表间的关系,如1:1,1:M,M:N等表达得淋漓尽致。
着重是运用LINQ TO SQL的基础概念、知识点作为缓冲文件与业务逻辑层的编码文件进行合理运用。
具体操作:VS2008环境下,选中web项目右击---添加新项----LINQ TO SQL 类
即,在App_Code文件夹中存在,DBTest.dbml(DBTest.dbml.layout、DBTest.designer.cs)
界面中,直接拖曳数据库中表、存储过程、视图到相应地方即可生成相应的DBTest.dbml实体类文件
2》数据库基本操作:RCUD 查录更删
DataClassesDataContext data = new DataClassesDataContext(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString());
//基本查询 R
var cus_1 = from n2 in data.Customers
select n2;
//条件查询R
var s = from n1 in data.Orders
where n1.OrderID % 10 == 0
select new { ID = n1.OrderID, Name = n1.ShipName };
//基本录入C
//若要执行 SQL Insert,只需向您已创建的对象模型添加对象,然后对 DataContext 调用 SubmitChanges 即可。
/*new出一个对象,使用Add方法将其加入到其对应的实体Entity集合中后,使用SubmitChanges函数提交 */
var t=new Tbl_A{value="hwnet130"};
db.Tbl_A.InsertOnSubmit(tbl_a);//提交录入实体对象
db.SubmitChanges();//刷新数据
//基本更新U
var L = from L1 in db.Tbl_A
where L1.Value == "hwn"
select L1;
foreach (var I in L)
{
I.Value = "linq to sql";//修改值
}
db.SubmitChanges();//刷新数据
[学习ing...........]