Академический Документы
Профессиональный Документы
Культура Документы
net性能优化
net性能优化
NET �����Ż�������
ܽ
Ŀ¼
1. C#���Է���... 4
1.1 ,�����... 4
1.2.3 ���Ŀմ��ȽϷ���... 6
1.3 ����
߳ ... 6
1.3.1 ����
߳ ��...
ͬ 6
1.3.3 ���̱
߳�̼
���... 7
1.4 ����ϵͳ... 8
1.4.1 ����������ı���ʼ������... 8
1.4.3 ������ʹ������ʵ�����... 9
1.5 �쳣����... 10
1.5.1 ��Ҫ�Ե��쳣��... 10
1.5.2 ��Ҫ�Ե��쳣��Ϣ��. .. 10
1.5.3 ���ⲻ��Ҫ�����׳쳣... 10
1.5.4 ���ⲻ��Ҫ���������׳쳣... 10
1.5.5 ���������
ָ ͨ õ�System.Exception. 10
쳣����Ҫʹ���
1.5.6 Ҫ��finally���ͷ�ռ�õ���Դ... 11
1.6 ����... 11
1.6.1 �������... 12
1.6.2 ��̬
��������... 12
1.6.3 ��̬��������
... 12
1.7 ����뼼��... 13
1.7.1 ѭ��д��
. . . 13
1.7.2 ƴ 13 ...��ַװ
1.7.5����������
ַ ����Ҫ� ַ ��� " "��� ˫��װ档... 14
ֱӰ����
1.7.6 ��StringBuilder����ʹ����
ַl�ӷ� ��+��. 14
1.7.7 ������ѭ�������������
��... 15
1.8 Hashtable. 15
1.8.1 Hashtable����... 15
1.8.2 ʹ��HashTale���������ֵ
伯�����͵����Σ�... 16
1.9 ����ʹ��ArrayList��... 16
1.10��XML�����ȡ���... 17
1.11 ����ʹ�õ����ú�Ƕ��ѭ
� ����... 17
1.12 ʹ���ʵ���Caching����4�������... 17
2. Ado.Net 17
2.2 Connection. 18
2.2.1 �����ڷд��رl��... 18
2.2.2 ��ʽ��رl��... 18
2.2.3 ȷ��l�ӳ�����... 19
2.2.4 ��Ҫ����l��... 19
2.3 Command. 19
2.3.1 ʹ��ExecuteScalar��ExecuteNonQuery. 19
2.3.2 ʹ��Prepare. 19
2.4 DataReader 20
2.4.1 ��ʽ��رDataReader 20
2.4.3 ʹ�����ͻ�������������... 20
2.4.4 ʹ�ö�����...
� 20
2.5 DataSet 21
2.5.1 ��������ⲻ�����е�Ч��... 21
2. ʹ��DataView.. 21
3.ASP.NET. 21
3.1 �������г̣
�Reduce Round Trips��... 21
3.2 ��������ͳ�ʱ�����ҵ... 22
3.3 ʹ�û���... 22
3.4 ����
߳ ... 22
3.5 ϵͳ��Դ... 23
3.6 ҳ�洦��... 23
3.7 ViewState. 23
4.JScript 24
4.2 JScript���Ա�����Ż�... 24
4.3 DOM���... 27
4.4 ����... 28
1. C#���Է���
1.1 ,�����
��,����ս�������������
ֹ Ĺ�������˳���Ľ��׳ԣ��������þ��dz����������
ܶ ������� ���ڶ⡣
��1.1.1 ���ⲻ��Ҫ�Ķ��ⲻ�
��1.1.1.1 ����ѭ���������� ��
�������������
� ÿ� ѭ����ı�����״
̬ ô��ѭ���з����������� �4�����ġ���Ч�����ǽ������ ᵽѭ�����洴
����
֧ д�������
��1.1.1.2 ����Ҫ�����
֮ Ĵ��룬
�������в�Ӧ������ new Decimal(0) ��
��ᵼ��С����Ƶ �����������գ ���ȷ ������ʹ ��D e cimal.Zero �� �������
ַ Ӧ�õ����Ƶij����С�
�����Լ�����ʱ��Ҳ����ѧϰ����������
��1.1.1.4 ʹ��StringBuilder����
ַl��
1.1.2 ��Ҫʹ�ÿ������ ��
֤
��������������ɴ�������ʱ���� Finalize ��������Ӷ�������ã�� Ա� �������
��ɴ�ʱ����Ȼ���Ե��õ� Finalize ������,��������������ڼ䣬
����һ������ȼ����̴���
߳ ֮ £�û�������Ķ����û����Щ��ġ���������Ϊ�գ������ľͺ������ 壬ֻ
ö��С�����
�ᵼ�������
ܽ ͣ ���ˣ ���Ҫʹ �ÿ յ ������
����ʵ������У��������������а�����룬����4��Ϊ����ⲻ������͵�עɾ����ˣ�����
ֻ һ��տǣ���ʱӦ
��͵�ע����������עɾ���
֧
��,�������ʵ�����
ֻ й����ڵĻ��գ ���������ķ��й���Դ ������ Window GDI ������
�l�ӣ�����������ͷ���Щ��Դ�кܴ����⡣����,�������5�������ڽŵ������Ȼ���l������
�� ѱ��ٺľ���
������ڴ滹����
ܳ Ļ���,������Dz ������еġ�
ͨ�
��C#�� IDisposable �ӿ���һ����ʽ�ͷ��� Դ�Ļ��ơ����ṩ using � 䣬������ʹ�÷�ʽ���������Զ����
try ... finally �飬���� finally ���е��� Dispose ������������������й���Դ����ӦΪ��ʵ��
֤ Դһ������ using ��䷶Χ�����õ���ʱ�ͷš�������ڹ콡
IDisposable � ��ڣԱ���
�|��������׳ij���dz������壡
�������
ֹ Dispose �����������õ������һ�䣬 Ҫ�ṩ�����}�
ߵ���һ������Դ�ͷŵĹ���������ʱ��
ͬ� Dispose ���Ӧ����
System.GC.SuppressFinalize(this)������,������������ ���ٴFinalize �����ˡ�
ַ ᵼ�
��String �Dz����ʹ�� + ����l�����
´���һ���µ��������
ַ ַl�Ӵ����ǹ̶��ģ�������һ��
ѭ���У���Ӧ��ʹ�� StringBuilder
��4���� ַռ 䣬ֻ
ַl�ӹ�����Ϊ StringBuilder ����ڲһ�� StringBuffer ��l�Ӳ����ÿ�η����µ���
�е�l�Ӻ������
ַ Buffer ��Сʱ���Ż������µ� Buffer �ռ 䣬���ʹ������£�
sb.Append (Results[i]);
���l�Ӵ����ǹ̶
��IJ��� �
ֻм��Σ���ʱӦ������
ֱ + ��l�ӣ����������
ֳ
a�ʵ���ϣ��������Ѿ������Ż������>ӺŴ�����ò�ͬ�������� String.Concat
���������磺 String str = str1 + str2 + str3 + str4;
��String�Dz��������ToUpper��ToLower�������ᵼ�
´���һ���µ������
ַ Ƶ�����ã�������Ƶ�������������
ַ Υ����ǰ�潲
���ġ�����Ƶ������������һ����
�����磬 bool.Parse���������Ѿ��Ǻ��Դ�Сд�ģ�����ʱ��Ҫ����ToLower������
����һ��dz��ձ�ij������
���������
ַȽϡ���Ч������ʹ�� Compare
�����������������Сд���ԵıȽϣ����Ҳ��ᴴ������
ַ
����
����{
����Console.Write("SAME");
����}
֤
������һ�������ʹ�� HashTable ��ʱ����ʱ���������� key �Ĵ�Сд�Ƿ������ �������ڣkey ǿ��
ͬ
������תд��Сд������ʵ���� HashTable �в��Ĺ�����ʽ����ȫ ֧ ֲ ú��Դ�Сд�� key: new
���
HashTable(StringComparer.OrdinalIgnoreCase)��
��1.2.3 ���Ŀմ��ȽϷ���
����String�����Length������0�Ƚ������ķ�����if (str.Length == 0)
���������String.Empty����
��Ƚ
մ� � ϣ�if (str == String.Empty)��if (str == "")
����עC#����ڱʱ�Ὣ���������������
ַ�
���ŵ�������У�intern pool��������
ͬ ������
����� ����ظ䣬
1.3 ����
߳
1.3.1 ����
߳ ��
߳ ͬ�д���̳
������� DZ�Ϊ����Ҫ���ȿ������
߳� ͬ�
⡣C#��ṩ�� Monitor� Mutex��AutoResetEvent ��
ManualResetEvent ����4���ֱ װWin32 ������⼸������¼����������ٽ ͬ
ֻ �����ơ� C#���ṩ��һ�� lock��
䣬����ʹ�ã���������Զ�����ʵ��� Monitor.Enter �� Monitor.Exit ���á�
��1.3.1.1 ��
� c��
[MethodImpl(MethodImplOptions.Synchronized)]
if (instance == null )
return instance;
ͨ������£�Ӧ��С���ķ�Χ��ʹϵ
ͬ � ø�õ��� ��ܡ䣬�������� Ϊ������һ������
ͳ�� �
�����ȷ�������е�
⣬� ÿ��� 붼
��Ҫ����������
��������
��1.3.1.2 ������
�
��������Type��
ͬ
����Type�����Ӱ��һ��������� AppDomain�����͵�����ʵ��������
������������������ص⣬����� ���һЩ�
� 䣬� ���ڵΪ������һ����
ܲ õ�ϰ�ߡ��������һ���� ͣ
ֻ static����������ҲӦ��� ���һ��
� staticij� Ա
��������
���
ô˳�Ա����Ϊ�����
��������
�������� this
ͬ
�������Ƽ�������ʽ���� new һ�� object ���� �ö�����������Ŀ�ġ�
ͬ ͬ
������ж�������Ҫ���������в���Ŀ�ģ��� ô�Ϳ���ΪЩ�
������� ͬ
ֱb��������Ա��
�����
��
ͬ
1.3.1.4 ������
��C#�����������
ּ ṩ��}�����
ַ ͬ�����ƣ�Synchronized �� ���װSyncRoot ���ԡ�
֤
���� Synchronized �����ⲻ ��һ��ɱ����в������̰ ͬ�
�ȫ�������϶��
߳ ��� mySyncdAL[0] =
mySyncdAL[0] + "test" ��һ��䣬�z�дһ��Ҫ�õ�}����һ�䣬�� Ч�ʲ��ߡ��Ƽ�ʹ�� SyncRoot
��� ԣ�������ȽϾ�ϸ�Ŀ��ơ�
[ThreadStatic]
1.3.3 ���̱
߳�̼
���
get
������������Ǻ����
ܳ һ������
ֱ һ���� lock
����ͻ��ֱӴ��������ˣ��������ȫ����Ϊ�� lock �����֮ǰ�������Ѿ��ж���̽ ߳ 뵽
��
�˵ �һ �� if ����С ����ӵ ���ڶif ��䣬������� 䣬�
��������ظµ�ʵ������ɵ�ʵ������������������������ƻ����
��ʲ ߱� ô����Ӧ����ʹ�� Double Check
1.4 ����ϵͳ
��1.4.1 ����������ı���ʼ������
֤
��CLR����� ж�������ڷǰ�ѳ�ʼ���������ǽ�����������ڴ㡣
��ˣ�����Ҫ�������³�ʼ��Ϊ0��false��null��
������ǴӶѶ��Ǵ�ջ�Ϸ��䣬����C#���������䣬����� ʹ����δ���
����Ҫ ����עǣ������еľֲ ֵľ���
ֲ �������
ڼ伴�ⲻ ������Ҫ��Ϊ�����ӡ����������ij�Ա �� Ҳ��
�������
ֵ ͬ
}�ߵĻ�����ȫ����
1.4.2.1 �����÷�ʽ�������
ֵ Ͳ���
ֵ ʹӵ���ջ���䣬�������ʹ��йܶѷ ��䣬
�����
���������������
ֵ ʱ��Ĭ�ϻ���в���
���ƣ�����������
ֵ ֵ ͷ���Ч���ϵ����ơ���Ϊһ����ɣ��
����÷�ʽ�������
ֵ Ͳ�������������ܡ
ֵ ValueType.Equals ����ʹ���˷��似���?
��.net Ĭ��ʵ��
�����4������г�Ա ����
ֵ Ƚϣ����Ч�ʼ��͡�������DZ�д�������� ֵ Equals
����Ҫ���õ������罫����
ֵ ŵ� HashTable �У�����ô��Ӧ������ Equals ������
if (ob is Rectangle)
else
return false ;
1.4.2.3 �������Ͳ��װ
��C#���������
ֵ ͺ������������ ֮ Զ� ��Ͳ��ת����������װ䣬
����װҪ�Ӷ��Ϸ����� ��� ����
ֵ һ��������ġ������һ��̷
�����ѭ ���л�����Ϊ�ײ㷽
����Ƶ�����ã���Ӧ�þ����ۼƵ�ЧӦ��
��һ�־
��������γ�����ʹ�ü�������ʱ�����磺
���ǵõ��ģ��������ʹ������������ôƵ����ʹ��һ����� ֵ ͵����ƻ�ܿ챻�ľ������磬
ֵ ͵Ļ������
��һ������
ֵ ѹ��һ ���ж������͵ �Ⱥ ��������� �װ䣬��� ܺ ô��������������ڣǵ���Ĵ����
�����ڰΪ�����������
ֵ 䣬 Ͱ�����Ϊ ���� ��
ѧ���� ֮ 4������ʱ��
1.4.3 ������ʹ������ʵ�����
? ������ʹ������ʵ�����4��������ݣӶ������������ת
ͣ�������
? ��C#��ʹ��as,����is������is��4�䣬����� Ƿ���Ա���Ϊij������������� Dz�������
ͨ�
����͵����������תá����ԣ�������� is��һ����Ľ��ʱ��������Ӧ�� cast������Ч����
ִ }��cast�����
�as���ʱ��������ã ��
� castΪ�����͵����� � null������䣬nullȻ������ϲ��������顣
ã ���� Բ
����4˵��As����Ҫ��is������50%��
1.5 �쳣����
���쳣 Ҳ�������
ִ Եĵ��������봫 ͳ��������ķ�ʽ��ȣ��쳣
��ǿ���Եģ�����5���Ƿ�����˱�������������
�д��������Ĵ�� 룩��ǿ���͵ġ������зḻ���쳣
��Ϣ���������ջ����
��1.5.1 ��Ҫ�Ե��쳣��
�������쳣���������Ҫ � ����ǣ���Ҫ�
�� Ե��쳣�����������������أ������ڱд��
�������׳Ŵ�ij ���dz���Ҫ ������ ��һ ��˵ �������Dz�Ҫ ������Щ� 䣬� ����� ܴ 쳣��
���Ե��쳣�Ǽ����õ�ϰ�ߣ���Ϊ������˽�����������һ��������
ִ ��쳣
λ���⽫�dz�'� ѡ����������� ȫ�Ե��
ֻ 쳣��Ϣд����־
�ķ�ʽ�⣬��� ͬ ��ס
�ļ����������ദ�����Ҳ��
��1.5.2 ��Ҫ�Ե��쳣��Ϣ��
����Щ������Ȼ�����׳쳣����ȴ���쳣��Ϣ�Ե��ˡ�
��Ϊ�쳣��¶�꾡����Ϣ�dz���Ա�������
ְ ���ڡ�������ڱ䣬ʼ�쳣
��Ϣ�����ǰ���¸��Ӹ�ḻ�����Ի���������ݣô��ⲻʼ���쳣��Ϣ��
ֱ չʾҲҪǿ�öǧ��Ҫ�Ե��
쳣��
��1.5.3 ���ⲻ��Ҫ�����׳쳣
�����׳쳣�Ͳ����쳣������ıȽϴ�IJ������ڿ ͨ
�����£�Ӧ�����Ƴ���� ��������׳Ҫ����Ҫ���쳣
��������صһ�������������쳣 4���ƴ����
��������ڼ
ܶ �������������� ͨ
ܻ ø�Ϊ���ŵĽ�������������Ӧ� ñ�� �
��1.5.4 ���ⲻ��Ҫ���������׳쳣
�������Ϊ�˰��װ쳣��Ŀ�ģ�����������Ϣ��������װ쳣������ô�Ǻ���ġ������в�� ��ٴ룬�����쳣
û�����κδ����� ��⽫��ٴ��׳ν�����һ�β����쳣�����׳쳣����ģ����������˺���
1.5.5 ���������
ָ 쳣����Ҫʹ���
�õ�System.Exception.���
�
//����
����try
����{
����}
����catch(Exception exc)
����{
��
����}
����//�Ƽ�
����try
����{
����
����}
����catch(System.NullReferenceException exc)
����{
����
����}
����catch(System.ArgumentOutOfRangeException exc)
����{
����
����}
����catch(System.InvalidCastException exc)
����{
����
����}
1.5.6 Ҫ��finally���ͷ�ռ�õ���Դ
ʹ��Try...catch...finallyʱ��
Ҫ��finally���ͷ�ռ�õ���Դ��l�ӣ��ļ���ȣ���Ȼ��Catch�������ռ�õ���Դ�����ͷš�
����try
����{
����...
����}
����catch
����{...}
����finally
����{
����conntion.close()
����}
1.6 ����
��������һ���
ܻ ļ����������ڼľ�̬����תΪ�ӳ �ٵ������ڼĶ�̬
����ܶںೡ���£��������ر
���ƣ������Ի�����
����)չ�ļ�������
ܹ ����ȣ���̬
4���������뾲̬ ����������ɽϴ���˺���
��1.6.1 �������
��member
invocation����Ա���ã���(��̬
���������̬
���ö��������Ҫ��Activator.CreateInstance��Type.In
vokeMember�ȡ�
��1.6.2 ��̬
��������
֧
��C#��Ҫ�� 5 ��
ֶ̬
��������ķ�ʽ��
����1. Type.InvokeMember
����2. ContructorInfo.Invoke
����3. Activator.CreateInstance(Type)
����5. Assembly.CreateInstance(typeName)
��1.6.3 ��̬
��������
���������÷�Ϊ�����ڵ����ڰ䣬������ ڵĶ�̬ ֣
��}���� ΪEarly-Bound Invocation��Late-Bound
Invocation��Early-Bound Invocation��ϸ��ΪDirect-call��Interface-call��Delegate-
call��Late-Bound
Invocation��Ҫ��Type.InvokeMember��MethodBase.Invoke�����������ʹ��LCG� Lightweight
Code Generation���������IL����4ʵ��
ֶ̬
���á�
���Ӳ�� Խ �����Direct
Call��Type.InvokeMemberҪ�ӽ ������������
� MethodBase.Invoke�Ȼ�� Type.InvokeMemberҪ����
���Direct Call����270�����ҡ ��ɼ�̬
�������õ������Ƿdz����µġ����ǵĽ����ǣ����Ҫ�����
������ض䣬��� Ҫʹ�ã�
��1.6.4 �Ƽ��ʹ��ⲻ��
��ģʽ
����3�� ʹ��Activator.CreateInstance(Type)��ʽ��̬
��������
����4�� ʹ��typeof��������GetType����
����ģʽ
����1�� ���ѻ��Type������£�ȴʹ��Assembly.CreateInstance(type.FullName)
1.7 ����뼼��
Ļ���뼼�ɡ��Դ��ڹڸڸڸ
����������һЩӦ�ó����£����������� �·���Ĵ��룬
ͨ�
����������Ż����Ǻ�������ġ���������Բ���Ҫ�
� ���һ� ֺõ�ϰ��Ҳ��������ġ�
��1.7.1 ѭ��д��
����� ��������
ѭ����������þ ֲ ��¼��4������
��� ֲ ����������Ż�Ϊ��
ֱ ʹ�üĴ�����������Ӷ
� ѻջ
���
�
з���ı��ٶȿ 졣�����ʵ��Ǹ��Ӽ������ԵĻ�������Ч������ԡ�for (int i = 0, j
= collection.GetIndexOf(item); i < j; i++)
����Ҫ˵����ǣ�����д������CLR�������Count����û�����壬ⲻ���DZ������Ѿ�������
ַʽ�����
���رŻ���
��1.7.2 ƴ ��װ
ַ
֮
��ƴ ������װ �Ч��д������Щ������ѭ�������ڴ䣬������ Ϊ1������д���ĵ�Ч��Ϊ�����ˣ�
ɾ���Ǻ
�Ƽ������д����
if (str.Length == 0 )
str = vals[i].ToString();
else
��1.7.3 ����}�μ����ⲻ��
����ȡ���� � ��ʱ����ʱ��Ҫ���
��� �Ƿ
�������
��� ��ڡ
���������ȵ���ContainsKey����Contains��������Ȼ���
�ٻȡ����������ءд���dz��������
�������ʾ��
if ( this .idTable.ContainsKey(id.ToString())
return data1;
��1.7.4 ����}��������ת
����������ʾ�����а���}����������ת
if (obj is SomeType)
SomeType st = (SomeType)obj;
st.SomeTypeMethod();
Ч�ʸ�ߵ������£�
st.SomeTypeMethod();
1.7.5����������
ַ ����Ҫ� ַ ���" "���˫��װ档
ֱӰ����
//����
����//
����obj.Status = "ACTIVE";
����//�Ƽ�
����obj.Status = C_STATUS;
����1.7.6 ��StringBuilder����ʹ����
ַl�ӷ� ��+��
����//����
����sXML += "";
����sXML += "Data";
����sXML += "";
����sXML += "";
����//�Ƽ�
����sbXML.Append(" ");
����sbXML.Append("");
����sbXML.Append("Data");
����sbXML.Append("");
����sbXML.Append("");
��1.7.7 ������ѭ�������������
Ӧ����ѭ����������������
�������ʼ����
ѭ� � � � � � � �� � � �
//����
����{
����}
����//�Ƽ�
����{
��
1.8 Hashtable
1.8.1 Hashtable���ⲻ
Hashtable��һ��ʹ�÷dz�Ƶ���Ļ������͡���Ҫ���Ӱ��
Hashtable��Ч����}������أһ��ɢ���루
GetHashCode�����������ǵ��
ֵȽϣ�Equals��������Hashtable����ʹ�ü��ɢ���뽫
���������
ֲ �ͬ Ĵ 洢 Ͱ�У�������ڸ��ضĴ 洢 Ͱ��ʹ�ü��Equals�������в��ҡ�
ͬ ͬ
��|�õ�ɢ�����ǵ�һλ������������������أÿ���ļ��в���ɢ��� 롣
Equals����Ҳ����Ҫ����Ϊɢ����
ֻ Ҫ��һ�Σ���洢
Ͱ�в��Ҽ������Ҫ���Ρ���ʵ�ʾ��䣬��ʹ��Hashtableʱ��Equals���������һ���ռ��һ���
��ϡ�
System.Object���ṩ��Ĭ�ϵ�GetHashCodeʵ�� ֣ ʹ�ö��������ڴеĵ��� ַ Ϊɢ���롣
�������һ����Hashtable4�����������ӣ�ÿ�θ����OQL���ʽ�����һ��ExpressionList��������ٵQ
ueryCompiler�ķ�������õ�CompiledQuery������ExpressionList�����CompiledQuery������Ϊ�
��
ֵԴ 洢��Hashtable�С�ExpressionList����û������GetHashCodeʵ��� ֣ 䣬
��ArrayListҲû�У��������� õľ��� System.Object��� ֡
GetHashCode ʵ������ ExpressionList�����
ÿ�ι��죬
������HashCodeÿ�ζ������������
ͬ CompiledQueryCache���û����������� � á���СС���� ©��4����ش
��������⣬������ڽOQL���ʽƵ��������CompiledQueryCache���������ɷ�������ڴй©������������
֣
�����������ṩһ��ʵ�������� ɢ� � � � Ϊ � � 0 � � � � Ȼ � � ᵼ � � � � � ж � � � � ۵�ͬһ��洢
Ͱ�У�Ч�ʲ����ߣ������ٿԽ�����ڴй©���⡣��Ȼ�����ջ��ǻ�ʵ��һ���Ч��GetHashCode�����ġ�
�
�����Ͻ�����ЩHashtable�����
� �Ҫ��
� �ϣ
������
� ⣺���ʹ��
� Hashtable�Ӧ� ü��һ�¶����Ƿ��ṩ���ʵ�
֡
��GetHashCode��Equals����ʵ������� п�����
ܳ Ч�ʲ�������ⲻ����Ϊ��������
1.8.2 ʹ��HashTale���������ֵ
伯�����͵����Σ�
�����ֵ
伯������(��StringDictionary,NameValueCollection,HybridCollection)���������
�ʱ�����ʹ��HashTable����
ܶ Ƿ��ͼ�����ж�Ӧ�ķ��ͼ���������dz��õķǷԼ
�� ͼ�����������������������
�� ������ ���Ӧ�ķ�� ����
�Ƿ��ͼ����� ���ͼ�����
ArrayList List<T>
HashTable DIctionary<T>
Queue Queue<T>
Stack Stack<T>
SortedList SortedList<T>
1.9 ����ʹ��ArrayList��
������Ϊ�κζ�����ӵ�ArrayList��Ҫ����ΪSystem.Object������
ͣ ArrayListȡ�����ʱ��Ҫ�����ʵ�ʵ��
��͡
�����ʹ���Զ���ļ������ʹ���ArrayList��.net
ͣ ͣ ͣ
2.0�ṩ��һ���µ������з�������һ��ǿ����ʹ� ÷��ͼ��� ˷�� ����
��ϾͿ���ķ�����������
���
Ͳ
Ա ��������� ����������������ܡ
����
1.10��XML�����ȡ���
��������
ֻǴ�XML�����ȡ������ݣ
ֻu�XPathDocument����XMLDocument,�����������
//����
����xmld.LoadXml(sXML);
����txtName.Text = xmld.SelectSingleNode("/packet/child").InnerText;
����.
����//�Ƽ�
����iCount = xpNodeIter.Count;
����while(xpNodeIter.MoveNext())
����{
����sCurrValues += xpNodeIter.Current.Value+"~";
����}
����}
��1.11 ����ʹ�õ����ú�Ƕ��ѭ
� ����
ʹ�����ǻ�����Ӱ�������ܣ��ڲò��õ�ʱ���ʹ�á�
��1.12 ʹ���ʵ���Caching����4�������
��2. Ado.Net
2.1 Ӧ��Ado.net��һЩ˼����
����1. ������ʹ�õķ�ʽ4����������
��ʲ�
����3. ʹ�÷����ʻ�����l��
����4. ��Ҫʱ���룬�����ͷ�
����5. �رտɹرյ���Դ
����6. ������
����7. �����Ҫ�����
����8. ѡ ���ʵ�����������
2.2 Connection
�����l����һ������
ֹ Դ�����Ҵ��رյĿ���ϴ�Ado.netĬ��������l�ӳ ��ƣ���رl�Ӳ�����Ĺ �����رl
�ӣ����
ֻǰ�l�ӷŻ �صl�ӳ��С���Ϊ���й����l����Դʼ������� ģ������ʹ��l�Ӻ���� �رl�ӣ���ô�
���
�������l�ӵ��̱߳�������סӰ�����ϵͳ�������
ܱ �֡
��2.2.1 �����ڷдⲻⲻ�رl��
�����ⲻ���м��㺬 �壺
����1. ��ҪĿ����Ϊ�����Ҫʱ����;����ͷ�
����2. ��Ҫ����Ĺ��캯���д�l�ӡ�����������ͷ�l�ӡ���Ϊ�⽫��5��,�������,��������
ֻ �ڴӰ�죬
����ʱ��
֮ 䣬�� l�ӣ���������l�ӱ���
����3. ��Ҫ�����ڷ ִ ʱ���
֮ 䣬
����ǿ��һ�������ڷ
��l�ӵ�Σ��������ѹf���������һ�������������û���ʱ�������Ҫ�ȱ� İ�����ܾþ��õ�l�ӳ��е�����l�ӡ�
�����������ΪA������һ�� �l�Ӵ�����B��������B����������
ֵ һ�����дⲻⲻ�رl�ӵ�C��������A�����
���������ڼ䣬��������Ҫռ��}��l�Ӳ���� ܹ ɹ �����������е �һ ��l ��ռ ��ʱ � 仹�
ر䣬�������� l�ӳ���Դ���ţ�Ӱ�������ϵͳ�Ŀ������ԣ�
2.2.2 ��ʽ��رl��
ܲ õIJ��ԡ��Ƽ�ʹ��using�����ʽ��رl�ӣ��
��Connection��������,�����ʱ���Ա��رգ�����5,������Ǻ��
�����
conn.Open();
2.2.3 ȷ��l�ӳ�����
ͬ l�Ӵ���bl�ӳ ����أӦ��ȷ��l�Ӵ��������������û������صϢ��
��Ado.net��Ϊÿ����
��� ⣬Ҫ ��עl�Ӵ��Ǵ�Сд��еġ�
��2.2.4 ��Ҫ����l��
��2.3 Command
��2.3.1 ʹ��ExecuteScalar��ExecuteNonQuery
������뷵
����Count(*)��Sum(Price)��Avg(Quantity)����ĵ�������
ֵ ʹ��ExecuteScalar������ExecuteSc
alar����صһ�е�һ�е����������
ֵ ֵ ���ءΪ����һ��������ɣ�����ExecuteScalar������˴��룬
�����
�����������ܡ
��ʹ�ò������е�SQL���ʱ�����������ݣINSERT��UPDATE��DELETE������������ⲻ�����
ֵ ʹ��Execut
eNonQuery�����������������ڴDataReader���κβ���Ҫ���
��2.3.2 ʹ��Prepare
ִ ͬ һSQL����Σ��ɿ���ʹ��Prepare��������Ч�ʡ���Ҫ����עǣ����
������Ҫ����ظ ����
ֻ ִ һ�λ�}�Σ�����ȫû�б
�Ҫ�����磺
cmd.CommandText = "insert into Table1 ( Col1, Col2 ) values ( @val1, @val2 )";
cmd.Parameters[0].Value = 1;
cmd.Parameters[1].Value = "XXX";
cmd.Prepare();
cmd.ExecuteNonQuery();
cmd.Parameters[0].Value = 2;
cmd.Parameters[1].Value = "YYY";
cmd.ExecuteNonQuery();
cmd.Parameters[0].Value = 3;
cmd.Parameters[1].Value = "ZZZ";
cmd.ExecuteNonQuery();
2.3.3 ʹ�ð� ��
��SQL�����Ҫ�ȱ�������ִмƻ���Ȼ�����
ִС����ʹ�ð���ķ�ʽ����ô���� ִмƻ��Ϳ��
�����
Ա������
ִе�SQ
L������á�������ֱӰѲ���ϲ�����SQL����У����ֵ���ڲ
ǧ��� � �
ִмƻ������Ա������ˡ���������Prepare
һ����ڸʾ�����Ѳ�����
ֱ д��insert����У���ô������Ĵε��ý���Ҫ�����Ĵ��
ֵ ִмƻ���
��Ϊ��������������������ʧ��Ҫ��һ��ʹ�ð���ʽ��
��2.4 DataReader
��DataReader���ʺ������ڷ ͬ
ֻuĵ����������DataSet������ �����ȫ�������ڴУ������治
�Ϸ����read����һ��������������е�����ȡ��������Դ����һ����������С������
4����� ⣬DataReader����l�ӣ�DataSet����l�ӶϿ���
��2.4.1 ��ʽ��رDataReader
��2.4.2 ������ŷ��ʴ����������ŷ�������
����Row�з���ij�����ԣ�ʹ������ŵķ�ʽ��ʹ����Ʒ�ʽ��ϸ���
����
ߡ� Ƶ�����
�� ã����� ѭ���У���ô�ɿ��Ǵ
����Ż���ʾ�����£�
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
2.4.3 ʹ�����ͻ�������������
����Row�з���ij�����ԣ���GetString��GetInt32������ʽ�����
ָ ͵ķ�������Ч�ʽ��
�õ�GetValue����
�
�ϸ��ߣ���Ϊ����Ҫ����������ת
��2.4.4 ʹ�ö�����
�
�����������
ֳ Կ���һ�η��4�����������ض罻����������Ч�ʡ�ʾ�����£�
cmd.CommandText = "StoredProcedureName"; // The stored procedure returns multiple
result sets.
SqlDataReader dr = cmd.ExecuteReader();
while (dr.read())
dr.NextResult();
while (dr.read())
//
2.5 DataSet
��2.5.1 ��������ⲻ�����е�Ч��
�������Ҫ���������У��������������}��
ַʽ��
��1. ����DataTable��PrimaryKey
��������ڰPrimaryKey�����е�������עʱӦ����DataTable.Rows.Find������һ�����
õ Select�����
�����������
��2. ʹ��DataView
��������ڰNon-
SortOrder��� ʾ��
PrimaryKey�����е�����ΪDataTable����һ��DataView������� ָ b����˺�ʹ��Find��
FindRows������
3.ASP.NET
3.1 �������г̣
�Reduce Round Trips��
֮
��ʹ������ķ������Լ���Web�������Browser������ ̣
г�
��1. ΪBrowser���û���
�������������
ֵ Ǿ�̬
�Ļ�仯���ڽϳ���Ӧ����Browser���棬���ⲻ �������http����
2. ����ҳ�����
����������ܣԪ����ҳ��������������һ�δ��͵��ͻ��ˣ�����Ա����������������������������
���Ƶ������С����������ɵĶ����� 罻
������������ַʽ��ҳ�洦�����֮ǰ�ͻ���������ҳ������������ݣһ��ҳ��ij
ߴ�ϴ�Ļ����ɿ���ʹ��Response.Flush�������÷���ǿ��������Ϊ�
ֹ������ڻе�������ݣӦ�����ú�����㷨
���Ƶ���Response.Flush�����Ĵ���
3. ʹ��Server.Transfer��������ض
��ʹ��Server.Transfer����������������ضResponse.Redirect������ⲻ����Response.Redirect
����Broswer����һ����Ӧͷ������Ӧͷ����� ֮ Browerʹ���µ�URL���·������ⲻ �Server.T
ָ ����ضURL����
ransfer��������
ֱ �� ˵� ã��ȫ û����Щ����
һ�� ķ���
3.2 ��������ͳ�ʱ�����ҵ
�������Ҫ���������ʱ�����еIJ�����Կ���ʹ���첽���õĻ��ƣ��Ա�Web�����������������������
ܹ
��1. ʹ���첽��ʽ����Web�����Զ�̶���
��ֻҪ�п���
ܾ Ҫ����������Ĵ������ж�Web�����Զ�̶ ͬ�
���������ã��Ϊ�� ռ�õ��ǵ�ASP.NET
�̳
߳��еĹ����̣߳��⽫��
ֱ Ӱ��Web��������Ӧ�����������f��
2. ���Ǹ���Ҫ������
ֵ Web������Զ�̶
���ķ������OneWay����
֮
������ģʽ����Web Server�������b�������ءɸ ��ʵ �������Ƿ �ʹ ����� �����
ַ
3. ʹ�ù������
������ҵ�ύ���������ϵĹ�������С��ͻ�����������
� 4� ѯ��ҵ���
ִн��
3.3 ʹ�û���
�����������ܴں
̶ �Ͼ�ASP.NETӦ�õ���������ܡAsp.net�� ֧ ҳ�������ҳ�沿���
ֻ 棬���ṩCache
API����Ӧ�ó�� ��
�����
Լ ����� ��ݡǷ�ʹ�û���ɿ��������Ҫ�㣺
����2. �9���Ҫ�����������ױ
����3. �9�����������
�ʹ��Ƶ��
����4. ��Ҫ�������������
ױױ Ͳ�������룬���
ֻ 治�����
3.4 ����
߳
��1. �������������������
߳
����������
ִ Ĺ���д�������һ�
߳ ִ۽ϴ�IJ��������Ӱ��Web Server�����
�
�������ܡIJ������������ɣ�������
߳ ͨ� thread pool4��� /�����̡
߳�
2. ��Ҫ��5����
߳ ̾߳��ۻ
�̬
��
�����������������
ִ ߳ ߳�ͬ�һ��
ASP.NET thread pool�еĹ����̣ Client� }������һ������ͬ����
߳�4�� �
3. �����������������
߳
���ο�"��������ͳ�ʱ�����ҵ"С��ڡ
4. �����첽����
�����1��������ơ��첽���ûᵼ�
´����µ��̣
߳���ӷ�����ĸ��������ԣ����û�в�������ҵҪ� ִ 첽���á�
ִУ��Ͳ�Ҫ���
3.5 ϵͳ��Դ
����1. ����ʵ����Դ������������
����2. ��ȷ����صDispose��Close�ͷ�ϵͳ��Դ
����3. ��Ҫ�����ʱ��ռ����Դ���е���Դ
����4. ������������룬����������ͷ�
3.6 ҳ�洦��
��1. �����С
� Pageij ߴ�
�����ơ�CSS��class����ơ�ȥ����ν���кͿ ոԪ ��ò���Ҫ��ViewState
����(��̿
��2. ����ҳ�����Ļ�����Buffer��
�����Buffer�Ļ��Ʊ��رգ�����������ķ���� �
��ʹ�ó����ҳ�����棺
��Response.BufferOutput = true;
ʹ��@Page����شҳ��������ƣ�
ʹ��Web.config��Machine.config�����ļ���<pages>�ڵ㣺
��3. ����Page.IsPostBack�Ż�ҳ�����
ͨ ͬ
��4. �����ҳ��IJ������ ��4����ݣЧ�ʺͼ�����ٳ
ֵʱ��
��5. �Ż����Ӻʹ�۽ϴ��ѭ��
3.7 ViewState
֮ ��Ϣ����Ƶ�һ���
��ViewState��Asp.netΪ����˿���ҳ��ش������̬״ ֻ ơ�
��1. ��رViewState
�������Ҫ����ҳ��������״ҳ�
̬ 治�� ����شPostBack��������Ҫ������˿
��¼�����ÿ��ҳ��ˢ��ʱ�������¼����������ݣô�Ͳ���Ҫ��ViewState4��¼ҳ���״ˡ����
̬ Զ�����ضWebC
ontrol����EnableViewState���ԣ�Ҳ������ҳ��һ�����ã�
2. ��ǡ����ʱ����ʼ��������
ִй��캯���ʼ���������ڼõ����Բ�����
��ASP.NET�Ŀ ���� ֮
���ٱ仯������ڳʼ���������� Ե��
Ķ��ⲻ���٣������ռ�¼��IEҳ���__VIEWSTATE� ֮ С����ԣ�ѡ�����ij�ʼ�������Ե�� ִе
䣬���� Ч�ļ�Сҳ��ߴ硣
���ŵ�ViewState�е��������л�/�����л���Asp.netΪString��Integer��Boolean�Ȼ����͵����л��
����Ż������Array��ArrayList��HashTable�洢���ǻ�����Ч��Ҳ�ϸ ߣ���������������Ҫ�ṩ����
����תType Converter��������ʹ�ô�۰���Ķ��������л�����
4.JScript
4.1 JScript�����Ż��Ļ�ⲻ��
��1. �������ٵڸڸڸ ִд���Ͼ��Խ�������4˵��ÿһ���
���� ִв��裬����Ҫ�ͽ���������һ�ν�����
��3. ������ʹ��ϵͳ�ṩ��API4�����Ż�����Ϊ��ЩAPI�DZ���õĶ����ƴ��룬��
ִ Ч�ʺܸߡ�
ܴ ۵ ġ�
��4. ��д����ȷ�Ĵ��롣�����Ҫ��������
4.2 JScript���Ա�����Ż�
��4.2.1 ��
��1. ��ʹ�þ���
ֲ ��
����Ϊȫ��
ֱ��ʵ��ȫ����
ֶ ij�Ա�������
ֲ ���ջ�϶��壬���Ȳ��ң����������ȫ��
ֱҪ�ߡ�
2. ����
��һ�������������
���
� ��ֵ
3. ʡ�Բ���Ҫ�ı����
���塣
�������Ķ�����
�һ�� ����
����� ������
Ա ֱ ʹ�ó���
4. ʹ��Object��Զ�����
ֵ
��Object�ĸ���
ֵ ����ڲӶ���ʱЧ�ʸ�ߡ�
�����磬���Խ�����Ĵ��룺
car.make = "Honda";
car.model = "Civic";
car.transmission = "manual";
car.miles = 100000;
�滻�ɣ�
car = {
make: "Honda",
model: "Civic",
transmission: "manual",
miles: 100000,
4.2.2 ���ⲻ �
��1. ���������ҵ��м���
����ΪJavaScript�Ľ����ԣ�����a.b.c.d.e����Ҫ��������4�β�ѯ�����ȼ��a���ټa�е�b�����ټb�е�
֣ ֻҪ����ܣӦ�þ���������ٳı��ʽ���������þ���
c��������¡������������ı��ʽ������ظ ֲ ���������
һ����ʱ�ĵ ����طв�ⲻ��
2. ���洴��ʱ��ϳ��Ķ���
���Զ���������Date��RegExp��������ڹʱ������Ĵ��ʱ�䣬�����Ը��ã�Ӧ���û���ķ�ʽ��
4.2.3 �����
ַ
��������������
ַ ʹ��s+=anotherStr�������Ҫʹ��s=s+anotherStr��
ַӦ��ʹ��"+"���磺
�����Ҫl�Ӷ����
����s+=a;
����s+=b;
����s+=c;
����Ӧ��д��
����s+=a + b + c��
ַӦʹ��Array��join������
2. l�Ӵ�����
��������ռ������
ַ ʹ��JavaScript���黺�棬���ʹ��join����l����4�����£�
buf.push(i.toString());
4.2.4 ������ת
��1. ʹ��Math.floor()����Math.round()��������͡�������ת
�
ͣ
�������� ���������������׳�����ת
ܶ ϲ��ʹ��parseInt()����ʵparseInt()�������ַ��ת ֣
����������ڽ
Ǹ������������� ֮ ��������תӦ��ʹ��Math.floor()����Math.round()��
����������е����ⲻһ��Math������������ڲMath.floor()��ʵ��û�ж���ٲѯ�����͵��õ�ʱ�䣬�
������ٶġ�
2. �Զ���Ķ����Ƽ����ʹ��toString()����4�������� ����ת
�������Զ���Ķ����������toString()����4�����������תĻ����Ƽ���ʽ����toString()����Ϊ���ڲ
IJ����������ڳп�������
֮ Զ����toString()���������� ܷ ��תΪString�������
ֱӵ�������Ч
�ʻ��ߡ�
4.2.5 ѭ�����Ż�
��1. ��������ʹ��for(in)ѭ����
����JavaScript�У����ǿ���ʹ��for(;;),while(),for(in)����ѭ������ʵ�ϣ�������
���� ѭ����for(
in)��Ч�ʼ�� ɢ�м�
��Ϊ����Ҫ�� ѯ ���� Ҫ���
ֻ Ծ �Ӧ�þ�� ���
� á�
2. �ȼ���collection��length��
��Ч����ã���������ڴѭ���С�
3. ������
����ѭ���ڵIJ���
��ѭ����ڵÿ�������Ԫ�������
�Ŵ�Ϊѭ ı����� ��� ѭԪ�����
ԣ���� С�ĸĽ������ ����������϶ ��ǿɹ ۵ ġ�
����������
4. ʹ��ѭ������顣
4.2.6 ������
��1. ��ʹ���������õ����
2. ����Ҫʹ��eval��
��ʹ��eval���൱��������ʱ�ٴε��ý������棬�Դ�������������У���Ҫ��Ĵ�ʱ�䣬
3. ʹ��prototype����closure��
��ʹ��closure�������
ܺ �� ϶�����ڴDz � � � ġ � � � � closureʹ �� � �
ͻ � � � � ��
� �����
�Ϊһ�� � �
�⡣���ԣ�������
��this.methodFoo = function()
���滻�ɣ�
��MyClass.protoype.methodFoo = function()
֮ в���
����closure��������ڶʵ��� ͬ prototype���������У�����������еĶ���ʵ����
4. ����ʹ��with��䣬
ֵ¼��ʱ�䣬�������˸ ��� ��
��With�����ʱ) չ������ҵķ�Χ����ʡ������ ִ ʱ�䣬
��Ϊÿ�������ƶ�Ҫ��ȫ��ַΧ���ҡ����ԣ����Խ �����Ĵ �� 룺
with (document.formname)
field1.value = "one";
field2.value = "two";
�����
form.field1.value = "one";
form.field2.value = "two";
4.3 DOM���
��4.3.1 ����DOM��ڵ
����Ƚ���
� document.write4�ҳ�������� ���ݣһ������ⲻ��������أ
ָ һ��div����span�����������ǵ�
innerHTMLЧ�ʸ�ߡ�
��������innerHTML�ķ�ʽ����
� createElement�������� ��ڵЧ�ʸ�ߡ���ʵ�ϣ������� �صinnerHTML�Ǵ�
����ڵЧ����ߵ�һ��
ַʽ��
��������ʹ��createElement������������ĵ��д����ֳ
ɵ����ڵ䣬
֮
Ӧ������cloneNode()��������Ϊʹ��createElement()���������� Ҫ���ö��ⲻ�����صԣ
ͬ���������������
�ʹ��cloneNode()����Լ������Ե����ô����������Ҫ����� ܶ �أӦ������һ�����ڵ㡣
4.3.2 ��������͵�
߲ DOM��
�������һ���ӵ�DOM��ʱ�������ȹ��죬��������������ٽӵ�DOM����ʵ��ڵ㡣������
ܹ ʡ����ˢ�µ�ʱ�䣬
��4.3.3 �����ⲻ
��ʹ��[""]��ⲻҪ��.item()��졣����.item()�����һ�β�ѯ�ͺ���ĵ��á�
4.3.4 ��ʱ��
�������Ե��Dz������еĴ��룬
��Ӧ��ʹ��setTimeout����Ӧ����setInterval��setTimeoutÿ��Ҫ��������һ��ʱ�
�
4.4 ����
��1. �����������
��С�ļ��
ߴ 硣
һ�� ͬ�
��2. �� � ��Ҫ�� Page� ͬʱ����JScript��VBScript����
��3. ��Page��ڵJScript���뵽���5�JS�ļ��С�
��4. ��Page��ڵJScript������Page�������棬���������ҳ�����Ӧ�ٶȡ�
��5. ����cache������JScript�ļ���������ش
��6. ��HTML����дJScript�ļ���URLʱ��
ͳ��עһ��Сд�������������ǰ��URL������ļ���