本文并非作者原创,但是作者发表!
不知道十年后,会用多少人收益我的文章,哈哈!
各位,来加个关注!【注*】改文章总结了ASP.Net从入门到高级的知识!
朱磊:2012 - 0212
--------------
【朱磊是本文的原创大神,据说当年在黑马刚毕业,月薪税前1W】
-------------
01.Main函数是什么?在程序中使用Main函数有什么需要注意的地方?
02.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情?
03.值类型的默认值是什么?(情况一:字段或全局静态变量变量;情况二:局
部变量)
04.声明一个变量时在内存中做了什么事情?初始化一个变量的时候又在内存中
做了什么事情?
05.new关键字做的事情?
06.数组
061.数组一旦创建后,能不能修改数组的长度?
07.多维数组
071.如何声明一个多维数组?
072.如何获取多维数组的总长度?
08.交错数组
081.如何声明一个交错数组?
082.交错数组的本质是什么?
2012 - 0213
-------------
01.为什么要有方法?
02.如何实现方法的重载?
03.引用参数(ref)和输出参数(out)的相同点与不同点?
04.在什么情况下使用引用参数(ref)和输出参数(out)?
05.可变参数与普通数组参数的区别?
2012 - 0215
-------------
01.面向对象的三大特征是什么?
02.类和对象的关系?
03.创建某一个类的对象的时候,在内存中做了什么事情?例如 Person p = new
Person();
04.属性存在的目的是什么?
05.访问修饰符有哪些并分别每一个访问修饰符?
06.为什么要有构造函数呢?
07.什么是封装?封装的目的是什么?
08.类的命名规则是什么?
2012 - 0216
-------------
01.什么是类型?
02.this关键字在方法中使用时,它代表什么?
03.值类型变量的初始化(内存分配)?(两种情况:一是类的成员变量,二是
:方法的局部变量)
04.继承
041.继承的好处?
042.继承的单根性
043.当存在继承关系的时候,在子类中如何访问父类的非私有成员?
05.什么是历史替换原则?
06.子类与父类对象之间的转换?
07.is 和 as 操作符的用处和区别?
08.override可以重写哪些 "类型" 的方法?
09.什么是多态?
10.抽象方法只能定义在抽象类中吗?
2012 - 0217
-------------
01.CLR什么时候加载类?
02.当存在继承关系的时候,创建子类对象的时候会不会创建父类对象呢?
03.如果子类和父类存在同名但没有重写关系的方法的时候,那么会调用哪个方
法?(两种情况:一是使用子类对象,而是使用父类对象)
04.如果子类和父类存在同名且有重写关系的方法,那么会调用那个方法?(两
种情况:一是使用子类对象,而是使用父类对象)
05.虚方法和抽象方法的相同点与不同点?
06.子类中的base关键字指向的是子类对象还是父类对象?它本身的类型是子类
类型还是父类类型呢?
07.为什么要有抽象类?
08.使用多态的好处是什么?
09.什么情况下的类不能被实例化?
10.什么情况下抽象类的子类不需要实现父类的抽象成员?
11.虚方法(虚拟成员)和抽象方法(抽象成员)能不能被私有化?
12.静态成员能不能被标记为virtual、override 或 abstract?
13.接口的命名规则?
14.什么是接口?
15.接口能包含的成员有哪些?
16.接口的访问权限修饰符只能是哪两种?
17.接口能不能继承接口?
18.如果一个抽象类继承了一个接口,那么将继承的方法设置为抽象方法,还是
去实现该方法?
--------------------------------------------------------------------
付炯 2月19日
1、使用接口的注意事项
向上转型
单一职责原则
2、接口与抽象类的区别
3、类型转换
转换分类
转换条件
ToString()方法
Parse()和TryParse()方法
4、静态成员
加载时机
适用情形
在普通类和静态类中的区别
5、静态类的继承
6、类和成员的访问修饰符
7、结构
本质是值类型
值类型和引用类型的选择
new关键字的作用
8、类和结构的区别
9、值类型和引用类型作为参数传递的区别
10、访问级别约束
11、析构函数
12、字符串
属性
静态方法
实例方法
13、==运算符和Equals()方法的区别
14、字符串的恒定性
15、StringBuilder对象
16、枚举
本质是类
枚举项的相关问题
17、IEnumerable接口
2月20日
1、集合
概念理解
常用方法
2、哈希表
内部机制
存取操作
3、泛型集合
System.Collections.Generic
List<T>
Dictionary<K, V>
4、List<T>和ArrayList的性能比较
5、应该使用try语句块的情况
2月22日
1、Windows Form程序相关文件
2、Path类
3、操作目录
4、操作文件
5、文件流
6、using语句的本质
7、序列化和反序列化
Serializable特性
二进制格式化器
2月23日
1、委托
概念理解
适用情形
委托作用
Delegate类
2、集合排序
3、匿名方法
4、多播委托
2月24日
1、事件
事件本质
内部机制
2、委托和事件的区别
-----------------------------------------------------------------
整理时间:4-14 整理人:周红军
课程日期:2-24,2-26,2-27,2-29,3-1
1. 2-24知识点:(课程签名:事件)
1.1事件的定义
1.2事件和委托的关系
1.3事件出现的意义
1.4事件的简单使用
2. 2-26知识点:(课程签名:SQL初级)
2.1数据库的概念
2.2数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程)
2.3主键的概念
2.4业务主键,逻辑主键
2.5主外键关系的概念以及使用
2.6数据库的分离附加,脱机联机操作
2.7数据库的主要类型
2.8使用SQL语句来创建数据库和表(知道有这回事,不要求掌握)
2.9数据库的简单增删改查
2.10约束:(会使用)
2.10.1非空约束
2.10.2主键约束
2.10.3唯一约束
2.10.4默认约束
2.10.5检查约束
2.10.6外键约束
3. 2-27知识点:(课程签名:SQL常见内置函数和关键字)
3.1 top的使用
3.2 Distinct的使用(去除重复数)
3.3 聚合函数:
3.3.1 Max
3.3.2 MIN
3.3.3 AVG
3.3.4 SUM
3.3.5 COUNT
3.4 between and 和 in 的使用
3.5 like, not like 通配符(%,_,[],^)
3.6 空值处理:null 是什么?(记住这句话,就记住了所有的变换)
3.7 排序(order by id asc / desc)(默认是哪一种排序?)
3.8 分组(group by ),单条件分组,多条件分组(分组时,要注意的事情[位
置,列])
3.9 筛选(Having的使用),它和where的区别
3.10 类型转换(CAST,CONVERT)
3.11 数据库的导入导出功能
3.12 union,union all
3.13 一次插入多条数据
3.14 字符串函数
3.14.1 LEN()
3.14.2 datalength()
3.14.3 LOWER()
3.14.4 UPPER()
3.14.5 LTRIM()
3.14.6 RTRIM()
3.14.7 LEFT()
3.14.8 RIGHT()
3.14.9 SUBSTRING(string,start,length)
4. 2-29知识点(课程签名:ADO.NET)
4.1 什么是ADO.NET
4.2 连接数据库的相关类:
4.2.1 SqlConnection
4.2.2 SqlCommand
4.2.3 SqlDataReader
4.2.4 SqlDataAdapter
4.2.5 SqlDataSet
4.2.6 SqlParameter
4.2.7 DataTable
4.3 数据库连接字符串
4.4 SqlConnection类的State属性
4.5 SqlCommand类的方法:ExecuteNonQuery()
ExecuteScalar()
ExecuteReader()
4.6 StatementCompleted事件的触发
4.7 获得刚刚插入数据库的自增id
4.8 Sql注入攻击(避免方式?)
4.9 参数化查询
5. 3-1(课程签名:ADO.NET练习)
5.1 打开文件选择框的类:OpenFileDialog以及判断用户是否点击确定
5.2 如何使用迭代生成树形菜单
5.3 文件读取类File,StreamReader的使用
6. 3-2(课程签名:ADO.NET_SQL练习)
6.1 单例模式(单例模式的创建)
6.2 DataTable的使用
6.3 类SqlDataAdapter的使用(重点)
6.4 类SqlCommandBuilder的使用(注意:他必须操作的是有主键的数据库)
6.5 提取查询语句,封装SqlHelper类(不仅要会,而且要理解思想)
*难免有错误,如有,敬请指正。
请大家相信并坚持自己,一直走下去,等回头的时候,你会发现,你在别人眼中
,已经成功了。
----------------------------------------------------------------
何旭
1.简单SQL
1.1 T-SQL中的Switch语句
select *,
(case TotalMoney
when TotalMoney>6000 then ‘金牌‘
when TotalMoney>5000 then ‘银牌‘
else ‘普通‘
end)
from table
1.2 T-SQL中的子查询
在结果集的基础上,再次查询,注意:一定以要给结果集取别名
,否则会报错
select * from (selec * from bc) as temp
1.3 T-SQL中的Exists用法
1.3.1 先执行 的是主查询,然后再执行子查询,将匹配行的
数据显示出来
select * from tbl where exists(select * from phonTYpe
where tbl.pId = phonType.pId)
1.3.2 判断结果集是否存在(效率低)
if exists(select * from tbl where ptId)
select 1
else
select 2
1.4 T-SQL中的Any
/*Any or的意思*/
select * from PhoneNum where pTypeId = any(select
pTypeId from b)
select * from PhoneNum where pTypeId = 1 or pTypeId =
2 ....
1.5 T-SQL中的All
/*ALL and的意思*/
select * from PhoneNum where pTypeId = all(select
pTypeId from b)
select * from PhoneNum where pTypeId = 1 and pTypeId =
2 ....
2.SQL分页
2.1 SQL2008 微软官方推荐分页方式
select * from
(
select ROW_NUMBER() over (order by ar_id) as rnum,*
from Area
) as t
where runm between 10 and 14
3.SQL中表连接查询
3.1 等值连接(内连接) inner join
任何一方都必须满足连接条件,如果有一方不满足连接条件就不显示
select * from PhoneNum n inner join PhoneType t on n.pTypeId =
t.ptId
3.2 左连接(左外连接) left join
保证左边的数据都有,根据左边数据匹配
select * from PhoneNum n left join PhoneType t on n.pTypeId =
t.ptId
3.3 右连接(右外连接) right join
保证右边的数据都有,根据右边数据匹配
select * from PhoneNum n right join PhoneType t on n.pTypeId =
t.ptId
3.4 交叉连接(两张表的乘积)
select * from student cross join Score
3.5 全连接 full join
左右两边的数据都进行匹配,相当于左连接和右连接相加
和inner join刚好相反
select * from PhoneNum n full join PhoneType t on n.pTypeId =
t.ptId
4. SQL进阶
4.1 SQL中变量
4.1.1 声明变量
declare @age int
4.1.2 变量赋值
set @age=3
4.1.3 声明并赋值
select @age = 29
4.1.4 如果表数据出现多行,则将最后一行的列赋值给变量
select @age=age from Student
4.1.5 输出变量的值
print @age
5. SQL中的事务
begin transaction 开始事务
rollback transaction 回滚事务
commit transaction 提交事务
银行事务转账列子:
declare @err int
set @err = 0
begin transaction
begin
print ‘开始事务‘
update bank set balance=balance-1000 where cid=‘0001‘
set @[email protected][email protected]@ERROR
update bank set balance=balance + 1000 where
cid=‘0002‘
set @[email protected][email protected]@ERROR
if(@err>0)
begin
rollback transaction
print ‘回滚事务‘
end
else
begin
commit transaction
print ‘提交事务‘
end
end
6. SQL中存储过程
6.1 创建存储过程
create procedure usp_transferMoney
@intPerson varchar(20)
@outPerson varchar(20) ‘123‘ --可以给默认值,当参数有默认值的
时候,执行的时候可以不传该参数
@abcPerson varchar(20)
as
select @intPerson,@outPerson,@abcPerson
6.2 存储过程带输出参数
create procedure usp_outPut
@maxEnglish int output
as
begin
select * from Score
select @maxEnglish = Max(English) from Score
end
declare @maxEnglish int
select @maxEnglish = 0
exec usp_outPut @maxEnglish output
print @maxEnglish
6.3 调用存储过程
exec usp_transferMoney --不带参数
exec usp_transferMoney --带参数
exec usp_transferMoney @abcPerson=‘234‘ --指定参数
6.4 C#中如果参数是一个整型值,那么最好通过如下方式创建和赋值
SqlParameter p = new SqlParameter("@id",SqldbType.Int);
p.Direction = ParameterDirection.OutPut;
return p.value;
7. SQL中触发器
7.1 触发器定义
(1)触发器是一种特殊的 存储过程
(2)触发器不能传参数,通过事件进行触发执行
7.2 触发类型:
(1)after和for是在执行操作后触发
(2)instead of 是执行操作之前触发(替换触发器),但是不会
执行原语句
7.3 触发器触发条件:
(1)update
(2)insert
(3)delete
7.4 触发器实例
---针对tbL_abc表的新增之后的触发器
Create Trigger triggerName on tbL_abc
after
insert
as
begin
select * from inserted --保存了引发新增触发器的新增数
据,只能在触发器中访问
end
8. 索引
8.1 什么是索引
就是为某个表,某个列建立一个查找目录
如果没有目录,汉语词典就要一页一页的翻。
有了目录直接翻目录,快速定位到查找位置。
8.2 索引类型
8.2.1 聚集索引(拼音目录):
数据的排列顺序,按照聚集索引排列(控制表的物理顺序)
每个表只能建立一个聚集索引
8.2.2 非聚集索引(偏旁部首目录):
非聚集索引不会改变表的物理顺序
每个表可以建立多个非聚集索引
9. 填充因子
索引树的基本单位是索引页
填充因子 就是为每页索引设置预留空间,
在将来加入新索引的时候,就只需要更新
当前索引页,而不需要更新索引树
如每页索引 1M 大小,当填充因子设置为60%,
在每页只存放60%的数据,剩下40%留给将来加入索引
项使用。
10. 临时表
10.1 临时表是存在缓存中,而不是写在文件中
可以在系统数据库-->tempdb-->中查找
10.2 局部临时表
生命周期在当前会话,当前会话结束就销毁临时表
相当于C#的局部成员
创建时表名前加一个 ,#号
create table #tempUsers
(
id int identity(1,1),
name varchar(20)
)
10.3 全局临时表
多个用户可以共享这个全局临时表
当所有会话都退出的时候,这个全局临时表才会被销毁
相当于C#的static 静态成员
创建时表名前加两个 ,##号
create table ##tempUsers
(
id int identity(1,1),
name varchar(20)
)
11. 三层结构
11.1 什么是三层结构.
通常意义上的三层架构就是将整个业务应用划分为:表现层(
UI)、业务逻辑层(BLL)、数据访问层(DAL)。
11.2 三层结构的目的
区分层次的目的即为了“高内聚,低耦合”的思想。
11.3 具体的三层是哪三层
表现层(UI):通俗讲就是展现给用户的界面,即用户在使用
一个系统的时候的所见所得。
业务逻辑层(BLL):针对具体问题的操作,也可以说是对数
据层的操作,对数据业务逻辑处理。
数据访问层(DAL):该层所做事务直接操作数据库,针对数
据的增添、删除、修改、更新、查找等每层之间
11.4 三层之间的关系
是一种垂直的关系。
三层结构是N 层结构的一种,一般来说,层次之间是向下依赖
的,下层代码未确定其接口(契约)前,上层代
码是无法开发的,下层代码接口(契约)的变化将使上层的代
码一起变化。
11.5 三层结构的优缺点
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性
。
缺点: 增加成本。
12. 邮件发送
//邮件发送方法
public void Send() {
//创建邮件对象
MailMessage mailMessage = new MailMessage();
//设置邮件字符集编码
mailMessage.SubjectEncoding = Encoding.Default;
mailMessage.BodyEncoding = Encoding.Default;
mailMessage.HeadersEncoding = Encoding.Default;
//设置邮件发件人
mailMessage.From = new MailAddress("[email protected]");
//设置邮件收件人
mailMessage.To.Add(new MailAddress
("[email protected]"));
//设置邮件主题
mailMessage.Subject = "主题";
//设置邮件正文
mailMessage.Body = "你好呀!";
//创建SMTP客户端
//SMTP服务端地址
SmtpClient smtpClient = new SmtpClient("127.0.0.1");
//SMTP客户端 通信凭证
smtpClient.Credentials = new NetworkCredential
("[email protected]", "123");
//发送
smtpClient.Send(mailMessage);
}
13. Excel导入导出
ExecelHelper 类帮助说明
1.将对象集合导出到Excel + void ObjectCollectionsToExcel<T>(List<T>
objectCollections, string path)
学要创建实体类对象集合,选中一个路径,导出即可
2.将Excel数据导入为对象集合 +List<T> ExcelToObjectCollections<T>
(string path)
将Excel文档导入为ObjectCollection对象集合,是采用反射方式,去调用实体
类 构造函数 ,以下为实体类写法
重点在public Person(IRow row)构造函数
using NPOI.SS.UserModel;
namespace MyLibrary.Test
public class Person
{
public Person(IRow row) {
this.A = row.GetCell(0).ToString();
this.B = row.GetCell(0).ToString();
this.C = row.GetCell(0).ToString();
}
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
源代码:
using System;
using System.Collections.Generic;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Reflection;
using System.IO;
namespace MyLibrary.Offices
{
public class ExcelHelper
{
#region 将对象集合导出到Excel + void
ObjectCollectionsToExcel<T>(List<T> objectCollections, string path)
/// <summary>
/// 将对象集合导出到Excel
/// </summary>
/// <typeparam name="T">集合类型</typeparam>
/// <param name="objectCollections">集合对象</param>
/// <param name="path">导出路径</param>
public void ObjectCollectionsToExcel<T>(List<T>
objectCollections, string path)
{
//判断对象集合是否为空,或者集合元素个数是否小于等于0
if (objectCollections == null || objectCollections.Count
<= 0)
return;
//创建一个工作薄
HSSFWorkbook workbook = new HSSFWorkbook();
//创建一个表
ISheet sheet = workbook.CreateSheet();
sheet.SetColumnWidth(1, 100);
//声明行
IRow row;
//声明单元格
ICell cell;
//声明元素类型信息
Type type;
//声明元素属性集合
PropertyInfo[] propertyInfos;
//根据集合元素个数创建行
for (int i = 0; i < objectCollections.Count; i++)
{
//创建一行
row = sheet.CreateRow(i);
//取得元素类型信息
type = typeof(T);
//取得元素属性集合
propertyInfos = type.GetProperties();
//获取到当前对象
T currentObject = objectCollections[i];
//遍历元素属性
for (int j = 0; j < propertyInfos.Length; j++)
{
//创建一个单元格
cell = row.CreateCell(j);
//给单元格赋值
cell.SetCellValue(propertyInfos[j].GetValue
(currentObject, null).ToString());
}
}
//创建数据流
using (FileStream stream = new FileStream(path,
FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
//将数据流写入
workbook.Write(stream);
}
}
#endregion
#region 将Excel数据导入为对象集合 +List<T>
ExcelToObjectCollections<T>(string path)
/// <summary>
/// 将Excel数据导入为对象集合
/// </summary>
/// <typeparam name="T">对象</typeparam>
/// <param name="path">Excel路径</param>
/// <returns>对象集合</returns>
public List<T> ExcelToObjectCollections<T>(string path)
{
//创建文件流读取Xls文件
using (FileStream fs = new FileStream(path, FileMode.Open,
FileAccess.Read))
{
//创建Excel文档
HSSFWorkbook workbook = new HSSFWorkbook(fs);
//获取第一个表
ISheet sheet = workbook.GetSheetAt(0);
//获取最后一行的下标
int rowCount = sheet.LastRowNum;
//定义行
IRow row;
//获取T类型信息
Type type = typeof(T);
//定义List<T>泛型集合
List<T> list = new List<T>();
//遍历行集合
for (int i = 0; i <= rowCount; i++)
{
//取得行
row = sheet.GetRow(i);
//根据行信息,调用T对象最高级别构造函数
T t = (T)Activator.CreateInstance(type, row);
list.Add(t);
}
return list;
}
}
#endregion
}
}
------------------------------------------------------------
王兴 3月9日
1.MD5加密
2.读取数据库后,判断dataset里列的值是否为空
3.B/S , C/S
4.WebForm 的 Visible属性
3月11日
1.可空值类型
非重点:
2.项目术语:CRM,OA,MIS,ERP
3.中文转拼音
4.Excel导出、写入、读取数据
5.邮件发送过程
6.C#发送邮件
3月12日
HTML部分:
1.静态页面 动态页面
2.URL:/ ../ ./ 分别代表什么目录
3.设置缩略图可以用width,height吗
3.有序列表,无序列表
4.表格
5.表单元素
6.input标签
7.select标签
8.textarea标签 label、fieldset标签
9.div span 及其区别
10.CSS常见样式
11.样式选择器:
11.1 标签选择器
11.2 class选择器
11.3 标签+class选择器
11.4 id选择器
11.5 伪选择器
12.DIV+CSS布局
JS部分
13.变量与全局变量
14.判断变量是否初始化
3月14日
JS基础语法部分
1.函数的声明与匿名函数
2.JS的面向对象
3.String对象
4.Array对象
5.JS中的Dictionary
6.Array的简化声明
7.遍历数组: for, for-in
DOM部分
8.事件注册,动态设置事件
9.window对象:
9.1 alert方法,confirm方法
9.2 重新导航到指定的地址:navigate方法
9.3 setInterval,clearInterval,setTimeout
3月15日
1.Window对象
1.1 window.onload事件
1.2 location
1.3 window.event
1.4 history操作历史记录
2.document
2.1 write方法
2.2 getElementById getElementByName
getElementByTagName
2.3 dom的动态创建 createElement
3月16日
1.DOM元素的innerText innerHTML
2.事件冒泡机制,如果阻止事件冒泡
3.事件中的this
4.修改元素的样式是设置class属性,className属性?
5.动态修改元素的样式
6.控制层的显示:style.display
7.元素样式的position:各种值的含义和效果
8.设置元素的宽
9.parseInt方法
10.js显示居中的DIV
11.form对象
11.1 submit()/onsubmit
11.2 不同浏览器js差异
11.3 表单默认的提交方式
11.4 表单JS提交方式
----------------------------------------------------------------------
王伟 3.18-3.23 第一部分:jquery
一、 查:当你想在页面中找到某个元素的时候,就要想到他们
(^ω^)
1.1基本选择器:
Id选择器 ,Calss选择器,tag选择器,* ,组合选
择器
1.2层次选择器:
后代选择器,子代选择器,匹配选择器,~选择器
1.3节点遍历:
next(),nextAll(),prev(),prevAll(),siblings()
1.4过滤器:
:first,:last,:not,:even,:odd,:eq,:gt,:lt,
1.5属性过滤器:
$(“div[id]”),$(“div[title=text]”),
1.6表单对象过滤器:
#form1:enabled,#form1:disabled,input:checked,select
option:select,
1.7表单选择器
:input,:text,:password……
二、修改:修改页面元素就用我吧 (*^__^*) 嘻嘻……
2.1jqury对象的方法
html(),val(),text(),css(),attr(),removeAttr()
2.2样式操作:
attr(),addClass(),removeClass(),toggleClass(),hasClass()
2.3复制节点:
clone(),clone(true)
2.4替换
replaceWith(),replaceAll(),wrap(),
三、新增:当你要新增元素时就用它们吧!O(∩_∩)O哈哈~
3.1创建Dom节点 例:$(“<a href=’#’>传智播客官网</a>”)
3.2 append(),appendTo()
3.3外部插入节点
after,before,insertAfter,insertBefore
四、删除:你不要我们了吗? ( ^_^ )/~~ 拜拜
remove()
empty()
五、批量处理
5.1隐式迭代
5.2$.map,$.each
5.3元素的map和each
六、其他内容:
jquery动画
jquery cookie
第二部分:Dom补充
放在这里是不是有点莫名奇妙 (⊙_⊙?)
ChildNodes(NodeList类型-有序类数组对象),
length属性是实时的计算元素个数
insertBefore,appendChild,removeChild,replaceChild
parentNode(父元素),firstChild(第一个子元素),lastChild(最后一个子元
素),ownerDocument
nextSibling(下一个兄弟节点) , previousSibling(上一个兄弟节点)
cloneNode(bool)-复制节点(true-深拷贝,false-浅拷贝)
style.cssText设置元素的style属性值
第三部分:js高级
1. Js面向对象编程(继承)
2. 闭包
3. apply和call
4. 函数的属性(arguments)
5. Eval()方法
6. 数据类型(array,object,function(不是)……)
7. Instanceof,typeof
8. 声明式和表达式执行顺序
--------------------------------------------------------------
张连印 3.25-3.30
一:反射
1.同过反射动态调用方法 Invoke
2.Type.IsAssignableFrom(Type t);判断type是否是T的父类,可判断接口
3.Type.IsSubclassOf(Type T)//与上面方法的区别
4.通过反射获得Type的方法,如私有方法、共有方法、静态方法????
5.开发一个基于插件的记事本
6.特性,通过反射获得特性信息,如何定义特性。
二.多线程:
1.多线程的概念
2.多线程的实现
3.线程重入
4.前台线程和后台线程
5.线程的调度方式
三.
1.什么是socket?
2.Socket的常用两种通信协议:Tcp/Udp
3.Tcp、Udp的区别?
4.编写基于Socket Tcp协议的一个简单即使通信软件
5.Http服务器的运行方式。
6.长连接和短连接的区别?
7.Web服务器的工作过程
7.1.监听请求
7.2.处理请求
7.3.生成响应报文
7.4.关闭通信套接字Socket
四.一般处理程序
1.IIS Web服务器的处理过程:映射表、外部扩展程序、静态文件、动态文件、能处理、不能处理
2.HttpContext上下文对象的作用,其中包含哪些内容?
3.Asp.net系统对象:
Page、response、request、application、session、server、cookies
4.浏览器提交表单的两种方式
5.Get/Post的区别是什么?
6.使用一般处理程序制作用户登录程序。
7.Request获取Get、Post请求参数的方式分别是什么?Params
8.Response.Redirect() 方法作用。
9.Response中的写出器
10.浏览器能够提交表单需满足什么条件?
11.哪些Html标签的值能够被表单提交?
12.若Html标签的disabled属性有设置
13.读取Html模板文件,处理Html字符串
14.页面的跳转:window.location,window.parent.location,window.top.location
15.一般处理程序进行增删查改
-----------------------------------------------------------------
李荣壮 4.1-4.6
----------4.1 一般处理程序
1. 上传图片
2. 添加水印
3. 生成缩略图
4. 生成验证码
5. 设置浏览器打开文件打式为下载
----------4.2 - 4.5 WebForm和状态保持
1.Ashx与Aspx的关系
2.Aspx前台页与后台页的关系
CodeBehind(代码后置)
3.前台页与后台页之间传递数据
4.Aspx、cs、dll文件之间的关系
5.WebForm的运行流程
ASP.NET 运行图
控件树
6.Request
6.1 常用成员
UrlReferrer
UserHostAddress
MapPath(Server.MapPath调用的是Request.MapPath)
7.Response
7.1 常用成员
End()
ContentType
8.Servers
8.1 常用成员
8.2 Transfer与Redirect区别
Transfer不能内部重定向到ashx,否则会报错“执行子请求出错”
9.无状态Http
9.1 其根本原因 :Http协议是无状态的
9.2 对网站的影响
10.ASP.NET中的状态保持方案(有哪些,各自的特点,应用场景)
10.1 客户端:
10.1.1 ViewState
10.1.1.1 特点:WebForm特有,页面级的
10.1.1.2 两种使用方式
10.1.1.2.1 用户数据保存方式
10.1.1.2.2 非单值服务器控件的状态自动保存于ViewState
10.1.1.3 使用ViewState的前提
10.1.1.4 ViewState的禁用(WebForm的IsPostBack依赖于__ViewState)
10.1.2 HiddenField
10.1.3 Cokies
10.1.3.1 保存Cookie的两种方式
1. 保存于内在中
2. 保存于浏览器所在的电脑的硬盘中。
10.1.3.2 使用场景
10.1.3.3 原理
10.1.4 ControlState
10.1.5 QueryString
10.2 服务器:
10.2.1 Session
每个客户端的Session是独立的
开发场景
如何使用
一般处理程序如果使用Session需要 实现RequiresSessionState接口
与Cookies的区别
10.2.2 Application 服务器端保存共享数据的一种方式
10.2.3 Caching
10.2.4 Database
11. Web应用程序与网站的区别
12. Iframe
13. 控制父页跳转
14. 反射方式生成sql查询条件
15. MD5加密
--------4.5 AJAX
1. 优点
2. 使用步骤
3. 浏览器兼容方式创建异步对象
4. post 设置 ContentType
5. get 设置 不读取浏览器缓存
6. 地区级联选择
7. 服务器端与客户端通过json交换数据
8. 将对象序列化为json字符串。
---------------------------------------------------------------
姚羽 4.8-4.13
1.Ajax的使用
1.1四个步骤(核心!重要!)
1.1.1 创建异步对象:Create XMLHttpRequest
1.1.2 设置访问方式:open (...)---get 和 post (各自的
请求头设置语法)
1.1.3 设置回调函数:onreadystatechange = function()
{...}
1.1.4 发送请求:send (传参)
1.2处理ajax请求响应的结果responseText。 处理json格式的字符串,
注意引号问题
2.Ajax完成 增删改查 一套功能,注意一些细节
2.1 细节一:查询时Js创建表格
2.2 细节二:新增时Js创建行和删除行的操作
3.Ajax简单分页
3.1 自己利用row_number写一个简单的分页存储过程(带参数)
3.2 C#内部的事务操作(自己做成规范的方法自己将来在需要的时候可
以直接拿来用)
3.3 照片上传 和 异步上传(原理:利用Iframe)
3.4 JS自执行函数的使用和JS匿名函数的使用
4.服务器控件
4.1 三种控件的区别(html控件,有runat=server的html控件,服务器
控件)
4.2 Jsonp 的作用以及怎么实现跨域
4.3 主要掌握服务器控件的 Repeater (Eval和Bind的区别)
4.4 掌握服务器控件的ListView(各个模板的使用,以及内置分页功能
,高效分页做法)
4.5 页面生命周期 (表述这个过程和原理)
5. 缓存 (有哪几种缓存(页面级别缓存,数据源缓存,自定义缓存)---各自
用法,回忆)
5.1 缓存的条件 (为什么要有缓存?)
5.2 缓存的缺点(脏数据)
5.3 如何解决这个缺点 (缓存依赖) (原理)
5.4 Session和Cache的相同点 和 不同点
5.5 自定义缓存的 绝对失效时间 和 相对失效时间 (那两句代码,不
同的写法)
6.母版页
6.1 母版页的使用(占位符PlaceHolder),以及母版页和子页面的关系,
先执行母版页还是先执行子页面
6.2 关于这阶段的最重要的那张图(请求流行执行图),只要在面试过
程中设计到这阶段的问题,就可以想办法口述出那张图的流程,需要流利表达和
自信