.net 2008
Transcription
.net 2008
2 3 4 5 ... ﺗﻘﺪﻳﻢ . א:אذ א، ! "א و$%&'() *+, 'ل א. אن א01א A$ 9 :ق א<زא1 > אد2343 @( و77) 2343 53 .NET Framework لB $"C 5D E$ ! א،FD G% אو وאHI אJ אKL H'1 M 23 א א+! NOPQ و،:ND E$R S 0QHT3 U :FV : W وאX אY!Z[אH 53'Sو 'لX אY4F 0F 4 אK^> W وאvb4arab 0.'\ 'ل אولJ\ א:] ._א Pא אWS a وbI ،:ND E$R U\ אP אHI אU :.ل دB $" אX' אU ^ אc`Q 3 Qو،:%d93و234\א:%d33efQ'g!،hא$N\אi^و3'\אH`O9א53Kjkدא$א 'g!(Source CodesQH$V\א:אO,$V.)אlS'א%5D3א،א(مn3oوoPאKp5Qא53א$% tوאReal World Cases77Lאh9Lא53 ^Pא1qrgsQt^א39אHIאUع$Qو5NOQ .a7!iPOאvT^3אWOPQ9و، % אمא%D234Fg( אنb'VIو..zFbD.U..z'دא1.${אنGVא53":OQ1אPLאA$'لא7!،XP'صאVx qKM!א${אنGVא53":'لא7אن5P>ND's'}g1وRF!"و, I1.NS5PQ_ $5F!"!, IqCNS'نPQ_אنb'VIو..hqא53IאאWSK&U(.NET~g%'3) ،Java)hN75DمQ9אlWSUQ$Lאbא،gjوgk7377hq4אhq3 אWS و، $ אgNF! g, 4 אhq 'نP د אنP و،(...LINQ ،WPF ،DirectX ،COM،.NET G D'F nD $FD א−:3$73 nD zN– XPא אWS GP! ،: 3H 3 Rb nD K دI XPא v,م$7QKa7!אWS@،.NETN7'لX535PF(א...،VB،C#)OhqE$R !q53^]QH$V\אhאOTא $Q$ دونVisual Studio 2008 XP'אن אN GP א53 (א$% W)אHI9 ن א1N\א אWS 53و NRb(وאY4\אT35)$'$7!،C#2343אوBasic2343:א1V3א'م$$%'Q !،qא .".NET43"لjDאFNB 6 K^3.O30s'א3'א%WI]Q53و،.NET7N9א0sאزא\'אXPאאWS1qQ GP אK F .GQ و و،Windows Forms ذج،Database Programming h א$D'א. .NET KFאHא53^אHא$b9א03hg&t)وאi$Q$אhN7אKS`Q_:א3$ND^א K^et وאWPFN7و،Data Entitieshא03م$7\אK3:%'\ אLINQN7K^3(Framework !' t وאWCF N7 و،Portable User Interfaces K7N . אم$+9 אhg% وא4 دم7 אKא 01Qאאن$%HدNא530s'א3lWSو.Distributed ApplicationsDא\'زh71%א^א9' .$وאXUg*د+, XPאU'Q5'عو%53cqQ9و5FQ9W)אQ$7אאWSizא. U]1IPH'نאP$.، אIC .NET_DKI$ROVאG7C$א5وא3YF^א.و53:sC3OPQW،(:Op3و .gא'א0وC53 א−− al-asiri.COM ﻣﻮﺟﺰ اﻟﻜﺘﺎب ﻣﻘﺪﻣﺔ اﻟﻜﺘﺎب – ﻣﻘﺪﻣﺔ اﻹﺻﺪار اﻟﺜﺎﻧﻲ ﻋﻦ Visual Studio 2010 ﻧﺒﺬة ﻋﻦ اﻟﻤﺆﻟﻒ ﺷﻜﺮ وﻋﺮﻓﺎن ﻫﺬا اﻟﻜﺘﺎب ﻣﺤﺘﻮﻳﺎت اﻟﻜﺘﺎب اﻟﺒﺎب : 02ﺗﺤﻤﻴﻞ ﻧﺴﺨﺘﻚ اﻷوﻟﻰ ﻣﻦ ﻓﻴﺠﻮال ﺳﺘﻮدﻳﻮ 2008 اﻟﺒﺎب : 03اﻟﺠﺪﻳﺪ ﻣﻊ.net 2008 اﻟﺒﺎب : 04ﻣﻔﺎﻫﻴﻢ ﺑﻴﺌﺔ .netاﻟﺮﺋﻴﺴﻴﺔ اﻟﺒﺎب : 05اﻟﻮاﺟﻬﺔ اﻷﺳﺎﺳﻴﺔ ﻟـVisual Studio 2008 اﻟﺒﺎب : 06ﻣﻜﻮﻧﺎت اﻟﻠﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻓﻲ .netاﻟﺠﺰء اﻷول اﻟﺒﺎب : 07ﻣﻜﻮﻧﺎت اﻟﻠﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻓﻲ .netاﻟﺠﺰء اﻟﺜﺎﻧﻲ اﻟﺒﺎب : 08ﻣﻘﺪﻣﺔ إﻟﻰ اﻟﺒﺮﻣﺠﺔ ﻛﺎﺋﻨﻴﺔ اﻟﺘﻮﺟﻪOOP اﻟﺒﺎب : Interfaces - 09اﻟﻮاﺟﻬﺎت اﻟﺒﺎب : 10اﻷﺧﻄﺎء واﻗﺘﻨﺎﺻﻬﺎ اﻟﺒﺎب : 11اﻟﺘﺠﻤﻴﻌﺎتCollections اﻟﺒﺎب : 12اﻟﺒﺮﻣﺠﺔ اﻟﻤﺘﻘﺪﻣﺔ ﻓﻲ.net 2008 اﻟﺒﺎب : 13اﻹدﺧﺎل واﻹﺧﺮاج ﺗﺤﺖSystem.IO اﻟﺒﺎب : 14ﺑﺮﻣﺠﺔ اﻟﻨﻮاﻓﺬWindows Forms اﻟﺒﺎب GDI+: 15 اﻟﺒﺎب : Windows Presentation Foundation16 اﻟﺒﺎب : 17ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺑﺎﺳﺘﺨﺪامADO.net اﻟﺒﺎب LINQ: 18 اﻟﺒﺎب WWF: 19 اﻟﺒﺎب WCF: 20 اﻟﺒﺎب : 21ﻧﻘﺎط ﻣﺘﻘﺪﻣﺔ اﻟﺒﺎب : 22ﺗﻄﻮﻳﺮ اﻟﻤﻮاﻗﻊ ﺑﺎﺳﺘﺨﺪامASP.net ﺧﺎﺗﻤﺔ اﻟﻜﺘﺎب ،وﺷﻜﺮ اﻟﻤﺼﺎدر 7 9 11 12 13 14 15 29 35 45 63 73 97 129 167 183 197 211 277 305 349 361 411 477 499 499 509 509 521 539 539 602 603 8 9 ﻣﻘﺪﻣﺔ اﻟﻜﺘﺎب .YBC:Rbو:nDو$F)N،Y\وאzאf,CnDوא~ مi V~وא،א5"אא .ً gنLאK{C ًوg:%39Kg9gא !`'אلA$N3nDg,CHא$3nDhFوسאH$א530F{5DiHD'SXPאאWg!...$3C 53و، 20084FولCUא$FrgN3zg9א،i$Q$ א.net 2008hN7'لX .א'مQ$QYl${WאXP'אSN3X5FsgDi$Q$%h!sא0sو03gF{ Andrew opF Pro C# 2008 and the .NET 3.5 PlatformXizא.$hz%XPאiP! ،!'وPQ353i$Q$ אC#+N*3KPQ<אqً 3ً%3h$%و، Troelsen GC i%'3iH'V 1CDزCنC01CcC9אq0%3KFF.אDدC9C03و UFא01 MSDN53aوאHC$QFو، VB وC#:q .netلאلUjطא7Nא .i$nDلK Q3K3KV!Qg$fنCً ^3c3(N !،317Nً 3,ً VO${5}HXPאאWSU g'وg37QوiאدאlWSN'لh3'\א53H$.4CnDfא01NPو،hאدوא$] Dh71H'1FDد53^C .netNg!: I5301نf$gQXPאאWg!، KIدא .O+\אqאh'P303g3OوIא$אgNgOنCدون SNFtאSO\א1Q':F'م7FD1AIوאiZOאY$`ذ53و h Y $` אW ... XPא אWS 53 i$jO א53 4C KVR F א1 (N א אa X%'ل.CنCc3(N95Pi qVאh71^وא3א53 د$DXPאאWSUi'د%'\א'אدא .i'1xi'1Iً ^31אאWS ،ن1TوאO5F!]1I53ن3و،א5F!X'אb53:!نF!،ًא$O3XPאאWS'نPQنC]لאC .Kאzد'אkوאא 10 ﻣﻘﺪﻣﺔ اﻟﻨﺴﺨﺔ اﻟﺜﺎﻧﻴﺔ z1Iא53د$Dv b+NאlWSUF.،XPאאWk^א+NאSאنS$STtא+NאlWS אWSA'3YUFSFAICi30F`i'D$אHCو،אو+NאUi'د%'3tא .XPאUi'د%'\אz1IאnDhgNوאhאZ.9لאHא4DXPא ،Visual Studio 2010و.net framework 4.0Hو$b03و،2009NIوאCU]+NאlWSًMQC :NDQ$L!3אVאC9،i$Q$אhN7ضאQgNאU.א!אدUP!CN0.א'אUو n7Qو،Wh אqدونSFqאNbאhאK(وذ5P،K73XPجd ]אROVאUو،gDK3אOوi$Q$אhN7אnD ع0.א\'א0%نאCD .$Q$,HVIi$Q$אhN7وאh.وO\!אaوאH QאgN3W*IC،^Sאوو+Nא7NU$D530F:%'3PTאQgNאUو g^QنC'אDدCوو$D53KPًMQCPTאHC،XPK3FD'وq7Nم$.WאRs .S'دg%nD 11 2010 ﻓﻴﺠﻮال ﺳﺘﻮدﻳﻮ Visual Studio 2010Hא$bא0353אgND!'وPQ3NDCtوא.net framework 4.0+03 Y4Fk I53i h g!'وPQ33$.Microsoft Office 2010 P\א23א4א3و .Windows 7hFو،Zאh71وOffice03K3Pא،IDEאمאل$+א$bnDz'א P3א،ASP.net 4.0032010'Q`'אل'دO7!3WPF 4.053i$Q$%iHא$bو'!אPQ3م$7 53$Q\2010_DU$Q$`3$7\אlWSnD ع9אNP>،:! IوSilverlightאلh71zN :KbOא رابط http://www.vb4arab.com/vb/showthread.php?p=225389 א ع01!sאhאN3$.tوא،i$Q$א+Nא03C# 4.0!قH!אqא$bnD3C :NStو$353kKVOnD رابط http://ahmedgamal-technical.blogspot.com/2009/09/c-40.html .ًMQCKFאHא5FsF#i$Q$אqא23$!s9،vb.netلN3@אO :K3Pi$Q$طא7NאKbO:!!'وPQ353aאאאWSnDא عKM!C،QgNאU رابط http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx ﻋﻦ اﻟﻜﺎﺗﺐ 12 . أﺣﻤﺪ ﺟﻤﺎل ﺧﻠﻴﻔﺔ ﻋﺒﺪاﻟﻌﺎل [email protected] : اﻟﺒﺮﻳﺪ اﻹﻟﻜﺘﺮوﻧﻲ . 00966545663382 – 0020108011792 : اﻟﻤﺤﻮل : اﻟﺴﻴﺮة اﻟﺬاﺗﻴﺔ ﺑﺎﻟﻜﺎﻣﻞ ﺗﺠﺪﻫﺎ ﻫﻨﺎ http://www.vb4arab.com/vb/uploaded/3/01256435433.doc مشرف عام منتديات فيجوال بيسك للعرب www.vb4arab.com ﻣﺪوﻧﺎت ﺷﺨﺼﻴﺔ وﺗﻘﻨﻴﺔ www.AhmedGamal-Space.blogspot.com www.AhmedGamal-Technical.blogspot.com www.AhmedGamal-NET.blogspot.com – English ﻣﻠﺨﺼﺎت ﺳﺎﺑﻘﺔ ﺷﻜﺮ وﻋﺮﻓﺎن ﺷﻜﺮ وﻋﺮﻓﺎن 13 53 ^P'نא7RQص+,]Q'Fj.0.א'אU:Q$XPאאWSop3و،سNאPTQ953אPTQ9 5PQ_XPنאCً3دوWCذن53f$SC،NSSzCدCنCאאW،zD$وאzN^א sא\'אiF^אhz%nص+,אz9pS53iدO9وאfًאIًو9وCDאKM!9'W'نP (:%'אNj')Gb ذא ًbIًאP,م$.CאW،אنQ$QYSאtא زאد،4_אD UH3:%'U א:P (نnet. لI53J,KFDH)א 'نCنCא53'%HCאW،ً^ אF`53 4Cg!1DCFPXPאאWk:>$7c!,نCذnD .c3:.'QF!:j%HGIC9Cو،ذC5&5$ND د$%CF،XPאאWSg{U:97353ً^ אh$O' א3$F)س$NgFًMQC'لb'3PTא W*IC،אא¡لWSUXQ$7g`TnD:!T3وX!`'אلA$N3iHدאPTא ...אمPאi'Iא.و،H$$"Cوא0.'\אQ$3אא$DאذgN3 ،XPאאWS7Ng$D3nD gNא$F)س$Ng\א، 'D$"Cس$Ng\א53KPًMQCPTא XP אizא7 g. و53 z% £QO k P,C ، z1I − אل9 – وI XP א53 אو¢N! .i Iא+NאجאIK.K,\אlWS¤Hא$nD$D3وg%'و ... ﺷﻜﺮ ﺧﺎص ﺟﺪًا 7N U g$D\ a7! @ دلD نSH' $Ng\ وא، YF1 'א$ وG1س א$NgF ًא$% صI P, FV53ًאz$KPTאאWg'نP:%אI'א3.53S33ClאWאXPنא5Pو،XPאhQ') 3ً^ אkH$.CوkP,HC،f qאFVzgوא،N^وא39وאPאضوאX'CوhROVא .ngCUXPאאWSאجI$g%53l'W ،NSlذC!iאWאcI_HWDوא،XPאאWSאدوج$DUgN3h$Oא53KPًMQCمDPTא zN^ אj.$bא0Fو01S،tאHدUوC3אUgN3h$Oא530FًMQCPTא .XPאאWSمe:Dوא:7!'nDًאIًو9وC$FLذאK.و، ﻫﺬا اﻟﻜﺘﺎب 14 `3 QH{ h3 D S S وOffice، Windows K^3 XPא אWS U iH'W\ א23א4 אz א− .gRb9 .gQ')5Dول]لp3 GPنאC9،XPFאiא\دhQ')GאHIא− 53 ذنC ون$ H{ ض:3א$+ אو א:Q אو 'ز:D d 9 و، opF &'O) XP'ق א7 − .op\א gN3$وאl{אXوC 'אدC'د%و0N>9אWS5Pو،XPאKIدאgQ{א'אدGC − .وZPא$QnDH{2jHאً'א$א]'نW،VB.netوCC#a7! .:4+cאH'$Cً]'نQ وCًj 3ًJ1Ih$%'و7Q1@אONو− لK7N אhFD iH, אe'ل و7N3 gN3 K ، GP אo] 53 i'د%'\ א'אد א− .RRbiH'VlH$V\iH,9و_אCs وאK7C5DHWQop\!ذ03و،S'د%و 15 ﻣﺤﺘﻮﻳﺎت اﻟﻜﺘﺎب אWS ، X'لوא'אVO א53 د$D4D .net 2008 ًא$Q$ و.net _D hC 53 D'F XPא אWS MQ :S%'3 XP אG 5D hس وgO وאXP אhQ') 5D 3$73 :' 53 ^C @ Xא אWS : אولXא ..O9وא `'אلO א53 + KFR zא אWS ¤'د7Q net 2008. _D U ق1 אC$ NS : ^ אXא .O+\אhאHא$bאY.ZאO'وאولوQ'د 5DiWiViH'VدQ،net._DU ق1אnD¤OR*VXאאWS:^אXא @ Xא אWg! K. 53 ً 43 5P _ ذא، net. _D مR. אiHوM N7 }H t אi$Q$ אhN7א .a7!$Q$אضא9A'ًVV .O+\אSbNDوjאnet.JSO\ًObو${NS:0אאXא 4z$אOXאאWSضQ،אFVU ق1א01NS53 :@3אXא .bא4אJVisual Studio_DU ق1אO53و C iH'V :%'3 Xא אWS ، g O א وq אbND אضC$N NS : אدسXא .Y!ZRFqאG] Wa7!'SوYj$F .ً3$73iH'V5PאوXHאFא:0אXא OوgQ')وhJOאnDfאNP> OOP:%'אNj4I$3'SlWS :53^אXא .k I53KFא .4אUg3א$+وאgVjVIوInterfaceshg%א'א:0אXא .gR7Nوg3O'دوPאU¤z1ICصN.אK%C53XאאWS:,אXא 16 NאUiHP\אg3א$+ وאCOLLECTIONS'אعאلCKVOXאאWSدQ :TDدLאXא .O+\א _DUو4אqUً3$7^CbNDnDf،i\אlWS3$7\א4 א:TD^אXא .net. .hO\א03K3אOوO+\אجאIلوאIقאد:TD^אXא *jV وאgQ' t אh وאدوאWINDOWS FORMS _ אلD U ق1 א: TD 0 אאXא .:! Iوאو .+GDI لI53אدjNh3'_אDUQHU¤WI]Q:TD@3אXא .O+\אgوאgدوאCو אدوjNh3'V+\אWPFN7Qא$:TDאدسXא 3 وADO.net لI 53 h א$D'א. _D U ق1 אNP> Xא אWS U : TD 0 אXא .:! IوSQL Serverhא$D'א.53مذQ .NSgz$אNP>LINQو'! مPQ353i$Q$אN7א:TD53^אXא .0QHT\אiHدא9!'وPQ353i$Q$אWWFN7_DUא$NS:TD0אXא .!'وPQ353h71وא23א4אHT\WCF_D03ًMQC:ونTאXא K. O+\ אig%9 אnD KqT 3k א0s א\'א53 D'F : ونTد وאL אXא . אXאUGQ'_אDU ق19א .ASP.net لI53DOGQوh71Q'153XאאWSNP>، IאXא:ونTא^وאXא ...0ONوאi$jOאgQ')U'نPQنCא53'%HC 17 ﻟﻤﻦ ﻫﺬا اﻟﻜﺘﺎب A'3f$gQ9XPאאWg!،XPאאWSKFDUH'אT3'אلNGbאSאلpאאWS%א ً نQC Q1ول אC nD MQ و، iS ن زK 53 @7Q نC ولd'g! ، N3 JO ً VV @ وY3 .¤'א3 !3 OP! ً !Z) N ' 3C ، 4 אh} אH s' אوXP אX ًא !]'אz$3 N !¦ذא ق1א17'نPXPאאWg!ً1'3N'3C،ONSH§tאXא'אU ق1وאa7!$Q$א ..net 2008_D53!وعi$DUi$% ،hאUًb'VIsא'אs'وC،XPאUhאHאPאi^53fZ[אK>9نC'%HCאW i\אSlWSذא3C،:N3SSאQtطא7NאUًאH'!'لI$طאوא7N{وزא:NP> SN'لאوVOא،XPאhQ')53ًJ,h'O9CولR!4_אDU ق1אو .ذ$z,KسC 53'نPtאXא'אs'g!،7אROVאUXPאhQ')nD01نCًא$%cFgQ g!(Nא$نC7אROVאh{وزN'ً M!אW.ًMQאfZRFوC،¨$FS{وزKMO\א .AICi3 18 اﻟﺘﻌﺮﻳﺐ K^3Uو،BZאizא.03مאא$D03ًD'$%CN–gCوC–אqgC.tאGPאKU H$.وWאX''אSאWSو،Q<אqb9אFP אnDא عKM!אNh9LאlWS .XPאאWS5Fs:%gعא1\א LoopsوConditionstFPBZHאPאh7وTאKFאK^3،Jو$9hBZא¤NS אلoQ( وJ!) :C nD Class אلoQ K^3 J $ 9 gNP وi'د% K.C و$ }H hB ¤NS ، ذi אدU $` L אlWS U ، אWPS وVariable ً لQ$ q\ א، (g% )وאgC nD Interface !:! Iא(و...h3$g\א،hא$T\)אK^3B3C،i3KUSذ5Dً Q$i$وאi3BZא .7وא3$ًN3:QCH3a7!3$+א،gg3$+و_אggא nDدFD9ولא9ًMQC،نP3CUkbאFPذאQ_DF${5¦KnDو GCBnDXPאYقO9א53א'ع$%'Q9(RאnR!،IDXizא.UtB .4אhR1V3B5DقOאUE$RنC5Dً M!'3'PאhR1V3 اﻟﻔﻬﺮس 19 29 31 32 33 35 37 38 39 41 42 43 45 47 48 49 50 50 52 52 53 54 55 56 56 58 58 59 60 60 63 65 65 66 68 68 69 2008 ﺗﺤﻤﻴﻞ ﻧﺴﺨﺘﻚ اﻷوﻟﻰ ﻣﻦ ﻓﻴﺠﻮال ﺳﺘﻮدﻳﻮ: 02 اﻟﺒﺎب Visual Studio 2008 اﻟﻨﺴﺨﺔ اﻟﻜﺎﻣﻠﺔ ﻣﻦ.1 Visual Studio 2008 اﻟﻨﺴﺦ اﻟﻤﺠﺎﻧﻴﺔ ﻣﻦ.2 VS 2008 إﻟﻰVS 2005 ﺗﺮﻗﻴﺔ ﻣﺸﺮوﻋﻚ اﻟﺬي ﻳﻌﻤﻞ ﻋﻠﻰ.3 net 2008. اﻟﺠﺪﻳﺪ ﻣﻊ: 03 اﻟﺒﺎب SilverLight ﺗﻘﻨﻴﺔ.1 LINQ ﺗﻘﻨﻴﺔ.2 WPF ﺗﻘﻨﻴﺔ.3 Expression ﻣﺠﻤﻮﻋﺔ.4 WCF ﺗﻘﻨﻴﺔ.5 Code Refactoring .6 اﻟﺮﺋﻴﺴﻴﺔnet. ﻣﻔﺎﻫﻴﻢ ﺑﻴﺌﺔ: 04 اﻟﺒﺎب . net. ﻟﻐﺎت.1 . اﻟﻌﻨﺎﺻﺮ اﻷﺳﺎﺳﻴﺔ ﻓﻲ دوت ﻧﺖ.2 Base Class Library .3 net Assemblies. .4 CIL .5 Metadata .6 Mainfest .7 Common Type System .8 CTS Members .8.1 CTS Data Types .8.2 Common Language Specification .9 Common Language Runtime .10 Object Browser اﺳﺘﺨﺪام.11 Name Space ﻣﺠﺎﻻت اﻷﺳﻤﺎء.12 اﺳﺘﻴﺮاد ﻣﺠﺎﻻت اﻷﺳﻤﺎء.12.1 ildasm اﺳﺘﺨﺪام ﺑﺮﻧﺎﻣﺞ.13 Open Source .net ﻫﻞ ﺗﺒﺤﺚ ﻋﻦ.14 Visual Studio 2008 اﻟﻮاﺟﻬﺔ اﻷﺳﺎﺳﻴﺔ ﻟـ: 05 اﻟﺒﺎب ﻛﻴﻒ أﻛﺘﺐ اﻟﻜﻮد ؟.1 VS 2008 Command Prompt اﺳﺘﺨﺪام.1.1 Textpad اﺳﺘﺨﺪام.1.2 ++Notepad .1.3 SharpDevelop .1.4 Viusal Studio 2008 اﻟﺒﺪاﻳﺔ ﻣﻊ. 2 20 .1.2ﺑﺮﻧﺎﻣﺠﻚ اﻷول اﻟﺒﺎب : 06ﻣﻜﻮﻧﺎت اﻟﻠﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻓﻲ net.اﻟﺠﺰء اﻷول .1ﺧﺼﺎﺋﺺ Console .2ﺗﻌﺮﻳﻒ اﻟﻤﺘﻐﻴﺮات .2.1أﻧﻮاع اﻟﻤﺘﻐﻴﺮات .2.2اﻟﺜﻮاﺑﺖ Constants .2.3اﻟﻘﻴﻢ ﻟﻠﻘﺮاءة ﻓﻘﻂ Read Only Dield .3اﻟﻤﺘﻐﻴﺮات اﻟﻨﺼﻴﺔ String .3.1اﻟﺨﺼﺎﺋﺺ واﻟﺪوال اﻟﺮﺋﻴﺴﻴﺔ .3.2ﺗﻘﺴﻴﻢ اﻟﻨﺼﻮص .3.3دﻣﺞ اﻟﻨﺼﻮص .3.4ﻣﻘﺎرﻧﺔ اﻟﻨﺼﻮص - Escape Characters .3.5ﺳﻲ ﺷﺎرب ﻓﻘﻂ .3.6اﻟﺘﺤﻮﻳﻞ ﻣﻦ وإﻟﻰ اﻟﻨﺼﻮص StringBuilder .3.7 .4اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺘﺎرﻳﺦ واﻟﻮﻗﺖ .5اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ اﻟﻤﺘﻐﻴﺮات اﻟﻤﺨﺘﻠﻔﺔ Widening Conversions .5.1 Narrowing Converstions .5.2 Cast .5.3 Convert.To .5.4 .6اﻟﺠﻤﻞ اﻟﺸﺮﻃﻴﺔ ﻓﻲ دوت ﻧﺖ .6.1أﺳﺎﺳﻴﺎت اﻟﺸﺮوط .6.2دﻣﺞ اﻟﺸﺮوط AndAlso .6.3 OrElse .6.4 .6.5اﺳﺘﺨﺪام switch .7اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ For - Next Loop .7.1 While Loop .7.2 For Each Loop .7.3 اﻟﺒﺎب :07ﻣﻜﻮﻧﺎت اﻟﻠﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻓﻰ - .netاﻟﺠﺰء اﻟﺜﺎﻧﻰ .1ﻟﻨﻔﻬﻢ ﺑﺮﻧﺎﻣﺠﻨﺎ اﻷول .2اﻟﺪوال Function .3اﻟﻄﺮق Methods .4اﻟﻮﻇﻴﻔﺔ out .5اﻹرﺳﺎل ﺑﺎﻟﻤﺮﺟﻊ byrefواﻹرﺳﺎل ﺑﺎﻟﻘﻴﻤﺔ byval 71 73 75 75 77 77 79 80 80 81 81 81 82 82 83 85 86 86 87 87 88 89 89 90 91 92 93 94 94 95 96 97 99 103 104 104 106 21 .6اﻟﻤﺼﻔﻮﻓﺎت .1.6ﻣﺎﻫﻰ اﻟﻤﺼﻔﻮﻓﺎت Arrays .2.6ﺗﻜﻮﻳﻦ اﻟﻤﺼﻔﻮﻓﺎت .3.6اﻟﻤﺼﻔﻮﻓﺎت ﻣﺘﻌﺪدة اﻷﺑﻌﺎد .4.6ﻋﻤﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻤﺼﻔﻮﻓﺎت .5.6إرﺳﺎل وإﺳﺘﻘﺒﺎل اﻟﻤﺼﻔﻮﻓﺎت ﻣﻦ وإﻟﻰ اﻟﺪوال .6.6ﺧﺼﺎﺋﺺ اﻟﻤﺼﻔﻮﻓﺎت اﻟﺮﺋﻴﺴﻴﺔ .7اﻟـ Enumeration .8اﻟﺘﺮاﻛﻴﺐ Structure .8.1إﻧﺸﺎء اﻟﺪوال داﺧﻞ اﻟـ Struct .9اﻷﻧﻮاع Valueواﻷﻧﻮاع Reference .10اﻟﻤﻘﺎرﻧﺎت Nullable Types .11 .11.1ﺧﺼﺎﺋﺺ اﻟـ Nullable .11.2اﻟﻤﻌﺎﻣﻞ ؟؟ اﻟﺒﺎب :08ﻣﻘﺪﻣﺔ إﻟﻰ اﻟﺒﺮﻣﺠﺔ ﻛﺎﺋﻨﻴﺔ اﻟﺘﻮﺟﻪ OOP .1ﻣﻘﺪﻣﺔ إﻟﻰ اﻟﻔﺌﺎت Classes .1.1اﻟﻤﺸﻴﺪات Constructors .2.1اﻟﻤﻬﺪﻣﺎت Destructor this .2 .3اﻟﺘﻌﺮف ﻋﻠﻰ Static Static Class .3.1 .4إﻋﺎدة ﺗﺤﻤﻴﻞ OverLoading .5ﻣﻌﺮﻓﺎت اﻟﻮﺻﻮل Access Modifier .6اﻟﻌﻨﺎﺻﺮ اﻷﺳﺎﺳﻴﺔ ﻓﻰ OOP Encapsulation .6.1 Inheritance .6.2 Ploymorphoism .6.3 Encapsulation .7 .7.1إﺳﺘﺨﺪام دوال Publicﻟﻠﻮﺻﻮل إﻟﻰ ﻣﺘﻐﻴﺮات Private .7.2إرﺳﺎل اﻟﻘﻴﻢ ﻛﺠﺰء ﻣﻦ اﻟـ Conctructor .7.3إﺳﺘﺨﺪام اﻟـ Type Property .8اﻟﻮراﺛﺔ Inheritance .8.1ﺗﻌﺮﻳﻒ ﻋﻼﻗﺔ is-a .8.2اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة sealed - NotInheritable .8.3اﻟﻮراﺛﺔ اﻟﻤﺘﻌﺪدة .8.4اﻟﺘﻌﺪﻳﻞ ﻓﻰ اﻟﻜﻼس اﻟﻤﺸﺘﻖ 107 107 108 109 110 111 112 112 114 116 118 120 125 126 127 129 131 134 135 135 137 140 141 144 144 145 145 145 146 147 148 150 152 154 155 157 157 158 22 158 159 161 161 162 164 165 167 167 169 171 174 197 180 183 185 185 186 189 190 192 193 193 193 194 197 201 203 203 206 206 208 211 213 215 216 218 219 has-a اﻟﻌﻼﻗﺔ ﻣﻦ ﻧﻮع.8.5 Casting اﻟﺘﺤﻮﻳﻼت.8.6 is اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة.8.7 Visual Studio Class Diagram .8.8 Polymoriphism اﻟـ.9 Abstract اﻟـ.10 Abstract method .10.1 اﻟﻮاﺟﻬﺎت- Interfaces : 09 اﻟﺒﺎب Interface ﺗﻌﺮﻳﻒ اﻟـ.1 Names Clashes .2 IEnumerable interface .3 ICloneable interface .4 IComparable interface .5 اﻷﺧﻄﺎء واﻗﺘﻨﺎﺻﻬﺎ:10 اﻟﺒﺎب Syntax Errors اﻷﺧﻄﺎء اﻟﻨﺤﻮﻳﺔ.1 Logical Errors اﻷﺧﻄﺎء اﻟﻤﻨﻄﻘﻴﺔ.2 System.Exception اﻟﻔﺌﺔ.3 Throwing Exceptions - رﻣﻰ اﻻﺳﺘﺜﻨﺎءات.4 Catching exceptions - اﻗﺘﻨﺎص اﻷﺧﻄﺎء.5 Finally اﺳﺘﺨﺪام.5.1 break اﺳﺘﺨﺪام.5.2 TargetSite اﺳﺘﺨﺪام.5.3 HelpLink اﺳﺘﺨﺪام.5.4 ﻋﻤﻞ أﺧﻄﺎء ﺧﺎﺻﺔ.6 Collectiona اﻟﺘﺠﻤﻴﻌﺎت:11 اﻟﺒﺎب System.Collections ﻓﻰInterfaces اﻟـ.1 System.Collections اﻟﻔﺌﺎت ﻓﻰ.2 ArrayList .2.1 HashTable .2.2 Queue.3.2 Stack .4.2 .net 2008 اﻟﺒﺮﻣﺠﺔ اﻟﻤﺘﻘﺪﻣﺔ ﻓﻰ:12 اﻟﺒﺎب Generics اﻟـ.1 Structure and Class Generics .1.1 Generic Collection .2.1 Where T اﺳﺘﺨﺪام.3.1 Delegates اﻟـ.2 23 221 223 225 226 227 228 229 232 235 237 238 238 240 243 247 250 250 252 253 255 259 259 261 261 262 263 264 264 265 265 270 271 272 272 273 274 277 Delegates ﺗﻌﺮﻳﻒ اﻟـ.2.1 Events اﻷﺣﺪاث.2.2 C# ﻓﻘﻂ ﻓﻰ- Anonymous Methods اﻟـ.3 اﺳﺘﻨﺘﺎج ﻧﻮع اﻟﻤﺘﻐﻴﺮات.4 Extension Methods اﻟﺪوال اﻟﻤﻤﺘﺪة.5 Automatic Properties .6 Lambda Expressions ﺗﻌﺒﻴﺮات ﻻﻣﺪا.7 Object Initializer Syntax ﺻﻴﻎ إﻧﺸﺎء اﻟﻜﺎﺋﻨﺎت.8 Anonymous Types اﻷﻧﻮاع اﻟﻤﺠﻬﻮﻟﺔ.9 Partial Methods .10 Gerbage Collector .11 GC اﻟﻔﺌﺔ.11.1 Operator Overloading .12 Pointers اﻟﻤﺆﺷﺮات.13 Query Expressions .14 Preprocessor Directives .15 #region , #endregion .15.1 #if , #elif , #else , #endif .15.2 #define , #undef .15.3 XML Commenting .16 .net assemblies .17 namespace اﻟـ.17.1 Default Namespace ﺗﻐﻴﻴﺮ اﻟـ.17.2 Format of a .net Assembly ﺷﻜﻞ ﻣﻠﻒ اﻷﺳﻤﺒﻠﻰ.17.3 Private Assemblies .17.4 Shared Assemblies .17.5 Multithreading اﻟﻤﺴﺎرات اﻟﻤﺘﻌﺪدة.18 ﻣﻘﺪﻣﺔ.18.1 Synchronization اﻟﺠﻮرﻳﺰﻣﺎت اﻟﺘﺰاﻣﻦ.18.2 System.Threading.Thread .18.3 Priority اﻷوﻟﻮﻳﺔ.18.4 ParameterizedThreadStart .18.5 Foreground and Background .18.6 Threads Synchronization .18.7 ThreadPool .18.8 BackgroundWorker .18.9 System.IO اﻹدﺧﺎل واﻹﺧﺮاج ﻓﻰ:13 اﻟﺒﺎب 24 278 278 279 284 284 285 287 289 289 289 289 291 292 293 294 296 297 298 301 301 303 305 307 307 310 311 315 320 320 321 322 323 323 324 325 325 325 System.IO اﻟﻔﺌﺎت اﻷﺳﺎﺳﻴﺔ ﻓﻰ.1 Directory وDirectoryInfo اﻟﻔﻮراق ﺑﻴﻦ.2 DirectoryInfo اﻟﻔﺌﺔ.3 Directory اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺔ.4 DriveInfo اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺔ.5 FileInfo اﻟﺘﻌﺎﻣﻞ ﻣﻊ.6 Open إﻧﺸﺎء وﻓﺘﺢ اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام.6.1 OpenWrite وOpenRead ﻓﺘﺢ وإﻧﺸﺎء اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام.6.2 OpenText ﻓﺘﺢ اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام.6.3 AppendText وCreateText اﻟﻔﺘﺢ ﺑﺈﺳﺘﺨﺪام.6.4 File اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺔ.7 Stream.8 FileStream اﻟﻔﺌﺔ.8.1 اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺎت اﻟﻤﺸﺘﻘﺔ.8.2 StreamWriter, StreamReader .8.3 StringWriter,StringReader .8.4 BinaryWriter,BinaryReader .8.5 FileSystemWatcher .9 Object Serialization .10 Serialization اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟـ.10.1 XmlSerializaer .10.2 Windows Forms ﺑﺮﻣﺠﺔ اﻟﻨﻮاﻓﺬ: 14 اﻟﺒﺎب ﻣﻘﺪﻣﺔ.1 ﺑﺎﻟﻜﻮدWindows Forms ﺑﻨﺎء.2 إﺿﺎﻓﺔ أدوات ﺑﺎﻟﻜﻮد.2.1 إﺿﺎﻓﺔ اﻟﻘﻮاﺋﻢ.2.2 Visual Studio .net إﻧﺸﺎء ﻓﻮرم ﻋﻦ ﻃﺮﻳﻖ.3 Windows.Forms ﻣﺠﺎل اﻷﺳﻤﺎء.4 Windows.Forms اﻟﻔﺌﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻟﻌﻨﺎﺻﺮ.4.1 Form ﺧﺼﺎﺋﺺ اﻟﻔﺌﺔ.4.2 Form دوال اﻟﻔﺌﺔ.4.3 Form دوال اﻟﻔﺌﺔ.4.4 Controls اﻟﻔﺌﺔ.5 Controls ﺧﺼﺎﺋﺺ اﻟﻔﺌﺔ.5.1 Controls أﺣﺪاث اﻟﻔﺌﺔ.5.2 System.Windows.Forms.Control أدوات.6 Button .6.1 25 326 326 326 327 329 329 329 332 333 343 343 343 335 336 338 338 341 342 345 346 347 349 351 351 352 354 355 356 357 361 363 363 363 363 364 365 365 CheckBox .6.2 RadioButton .6.3 ListBox وComboBox .6.4 Textbox .6.5 Label .6.6 Panel وGroupBox .6.7 RichTextBox .6.8 Timer.6.9 TreeView .6.10 ProgressBar.6.11 TrackBar .6.12 DateTimePicker .6.13 Dialogs .7 MessageBox .7.1 Dialogs Controls .7.2 ColorDialog .7.3 FontDialog .7.4 Open And Save Dialogs .7.5 PrintDialog .7.6 أﺣﺪاث اﻟﻤﺎوس.8 أﺣﺪاث اﻟﻜﻴﺒﻮرد.9 +GDI : 15 اﻟﺒﺎب +GDI ﻣﻘﺪﻣﺔ إﻟﻰ.1 System.Drawing ﻣﺤﺘﻮﻳﺎت ﻣﺠﺎل اﻷﺳﻤﺎء.2 Graphics اﻟﻔﺌﺔ.3 Pen .4 Bruch .5 رﺳﻢ اﻷﺷﻜﺎل.6 رﺳﻢ اﻟﻨﺼﻮص.7 Windows Presentation Foundation : 16 اﻟﺒﺎب ﻣﻘﺪﻣﺎت أﺳﺎﺳﻴﺔ.1 WPF .1.1 XAML .1.2 Microsoft Expression .1.3 WPF أﻧﻮاع ﺗﻄﺒﻴﻘﺎت.2 WPF ﻣﺤﺘﻮﻳﺎت وﻣﻜﻮﻧﺎت.3 WPF ﺗﻄﺒﻴﻘﻚ اﻷول ﻓﻲ ﻋﺎﻟﻢ.4 26 367 372 375 376 382 385 387 387 388 389 390 391 398 399 399 400 401 402 403 411 413 414 414 415 415 421 421 429 439 441 443 444 444 445 449 450 اﻟﺒﺪء ﻣﻦ ﺧﻼل ﻓﻴﺠﻮال ﺳﺘﻮدﻳﻮ.5 WPF أدوات.6 Data Binding رﺑﻂ اﻟﺒﻴﺎﻧﺎت.7 WPF 2D .8 WPF اﻟﺤﺮﻛﺔ ﺑﺎﺳﺘﺨﺪام.9 XAML اﻟﺤﺮﻛﺔ ﺑﺎﺳﺘﺨﺪام.10 Styles ﺗﻌﺮﻳﻒ.11 Style ﺗﻐﻴﻴﺮ ﻃﺒﻴﻌﺔ ال.11.1 ﻣﻦ آﺧﺮStyle اﺷﺘﻘﺎق.11.2 Triggers ﺑﺎﺳﺘﺨﺪامStyle ﺗﺼﻤﻴﻢ.11.3 Tamplates اﻟـ.12 WPF 3D .13 XNA .14 Microsoft Expression Studio .15 Microsoft Expression Web .15.1 Microsoft Expression Design .15.2 Microsoft Expression Media .15.3 Microsoft Expression Encoder .15.4 Microsoft Expression Blend .15.5 ADO.net ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام: 17 اﻟﺒﺎب ADO.net اﻟﺒﺪء ﺑﺎﺳﺘﺨﺪام.1 ADO.net Data Provider ﻣﻜﻮﻧﺎت.2 اﻟﻤﺪﻋﻮﻣﺔ ﻣﻦ ﻗﺒﻞ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖData Providers ال.1.2 Third-Party ADO.net Data اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺰودات ﺧﺪﻣﺔ أﺧﺮى2.2 Providers System.Data ﻣﻜﻮﻧﺎت ﻣﺠﺎل اﻷﺳﻤﺎء.3 Sql Server اﻟﺒﺪاﻳﺔ ﻣﻊ.4 إﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت.4.1 Sql Statements .4.2 Stored Procedures .4.3 SQL Injection .4.4 اﻟﻌﻼﻗﺎت.4.5 اﻟﻮﺿﻊ اﻟﻤﺘﺼﻞ.5 ConnectionStringBuilder اﻟﺘﻌﺎﻣﻞ ﻣﻊ.5.1 Command اﻟﺘﻌﺎﻣﻞ ﻣﻊ.5.2 Data Readers اﻟﺘﻌﺎﻣﻞ ﻣﻊ.5.3 Data Access Layers .6 27 459 461 465 465 467 467 468 470 472 473 474 476 477 479 482 487 488 490 494 495 499 501 502 502 503 504 507 509 511 512 513 514 517 517 518 521 523 Asynchronous Data Access .7 Transactions .8 اﻟﻮﺿﻊ اﻟﻤﻨﻔﺼﻞ.9 DataSet .9.1 DataTable .9.2 DataTable اﻧﺸﺎء.9.3 DataColumn اﻟﺘﻌﺎﻣﻞ ﻣﻊ.9.4 DataRow اﻟﺘﻌﺎﻣﻞ ﻣﻊ.9.5 DataTable ﻟﻘﺮاءة اﻟﺒﻴﺎﻧﺎت ﻣﻦDataTableReader اﺳﺘﺨﺪام9.6 XML إﻟﻰSerializing ﻋﻤﻞ.10 DataGrid اﺳﺘﺨﺪام.11 DataAdapter اﺳﺘﺨﺪام.12 LINQ : 18 اﻟﺒﺎب . ﻣﻘﺪﻣﺔ.1 LINQ دوال.2 LINQ To DataSet .3 LINQ To XML .4 LINQ To SQL .5 SubmitChanges .6 ﻣﻦ ﺧﻼل اﻟﻔﻴﺠﻮال ﺳﺘﻮدﻳﻮLINQ To SQL اﻧﺸﺎء ﻓﺌﺎت.7 WWF : 19 اﻟﺒﺎب WF ﻣﻜﻮﻧﺎت وأﺳﺎﺳﻴﺎت.1 WF اﻟﺒﺪأ ﻣﻊ.1.1 Sequential Workflow .1.2 State Machine Workflow .1.3 WWF ﺗﻄﺒﻴﻖ.2 WF Code Library .3 WCF : 20 اﻟﺒﺎب Web Service .1 ﺧﺎﺻﺔ ﺑﻚ ﻣﻦ ﺧﻼل دوت ﻧﺖWeb Service ﻋﻤﻞ.1.1 ﺧﺎﺻﺔ ﺑﻚ ﻓﻲ ﻣﺸﺮوﻋﺎﺗﻚ اﻟﻔﻌﻠﻴﺔWeb Service اﺳﺘﺨﺪام.1.2 اﺳﺘﺨﺪام ﺧﺪﻣﺎت اﻹﻧﺘﺮﻧﺖ اﻟﺠﺎﻫﺰة.1.3 WCF ﻣﻘﺪﻣﺔ إﻟﻰ.2 WCF اﻟﺒﺪاﻳﺔ ﻣﻊ.2.1 Address ﺷﻜﻞ وﻣﺤﺘﻮﻳﺎت ال.2.2 ﻧﻘﺎط ﻣﺘﻘﺪﻣﺔ: 21 اﻟﺒﺎب Debug اﻟﺘﻨﻘﻴﺢ.1 28 526 528 533 535 539 541 548 553 554 557 558 558 561 564 567 572 572 574 574 575 578 579 580 582 585 591 591 592 593 594 ﺗﺠﻬﻴﺰ اﻟﺒﺮﻧﺎﻣﺞ ﻟﻠﺘﻮزﻳﻊ.2 #VB.net vs C .3 Mono ﻣﻘﺪﻣﺔ إﻟﻰ.4 ﺑﺮﻣﺠﺔ اﻷﺟﻬﺰة اﻟﻜﻔﻴﺔ ﻣﻦ ﺧﻼل دوت ﻧﺖ.5 ASP.net ﺗﻄﻮﻳﺮ اﻟﻤﻮاﻗﻊ ﺑﺎﺳﺘﺨﺪام: 22 اﻟﺒﺎب ﻣﻘﺪﻣﺔ إﻟﻰ ﺗﻄﻮﻳﺮ اﻟﻤﻮاﻗﻊ.1 ASP.net ﻣﻘﺪﻣﺔ إﻟﻰ.2 System.Web.UI.Page اﻟﻔﺌﺔ.3 Request .3.1 Response .3.2 ASP.net أدوات.4 اﻟﺨﺼﺎﺋﺺ اﻷﺳﺎﺳﻴﺔ ﻷدوات اﻟﻮﻳﺐ.4.1 MasterPages .5 Sitemaps .6 Validation Controls أدوات اﻟﺘﺤﻘﻖ.7 ﻟﺘﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎتState Managment .8 Control State .8.1 ViewState .8.2 Session .8.3 Cookies .8.4 Application .8.5 Cache .8.6 Global.asax .8.7 وﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎتASP.net .9 DataGrid .9.1 WAP .10 WAP ﻣﺎ ﻫﻲ ال.10.1 WML .10.2 WAP + ASP.net .10.3 اﺟﺎﻛﺲAJAX .11 29 اﻟﺒﺎب 2 ﺗﺤﻤﻴﻞ ﻧﺴﺨﺘﻚ ﻣﻦ ﻓﻴﺠﻮال ﺳﺘﻮدﻳﻮ 2008 30 31 Visual Studio 2008 اﻟﻨﺴﺨﺔ اﻟﻜﺎﻣﻠﺔ ﻣﻦ .1 3P א+N א، !'وPQ3 0.'3 nD Visual Studio 2008 53 KFR 3 ¢ i$D $%'Q S${ ، a7! 'مQ 90 i$\ Q{ iH'V i'د%'3 gNP وiH'V 3 Professional Edition :aאאאWSnD رابط http://msdn.microsoft.com/en-us/vs2008/products/cc268305.aspx م$+Q23'SPower ISO 23*.isoo3KP,nD'نPaאאאWS53gFQtא+Nא .gصאص7'دא%و53$9وgFQtאhO\אU DVD وC CD 'د%وi[ :NS53 Power ISO 23KQNNP> رابط http://www.freedownloadscenter.com/Utilities/Backup_and_Copy_Utilities/PowerISO.ht ml :aאאאWS53!'وPQ353product keyאلG1.،3Pא+N.ZאUGNذא رابط http://msdn.microsoft.com/en-us/vs2008/products/cc263903.aspx HI . 53 و، Visual Studio 2008HI . وAdd or Remove ProgramsHI . 53و .:H!'وPQ33.Wאproduct keyلאلIد....Change/Remove 32 Visual Studio 2008 اﻟﻨﺴﺦ اﻟﻤﺠﺎﻧﻴﺔ ﻣﻦ .2 aאאnDًBS${ ،5QH'1Fً'لMQ'!א، !'وPQ3S!'tא3Pא¢N!sא :א رابط http://www.microsoft.com/express/product/default.aspx ^אKLא$gNP وProfessional Edition3Pא¢Nא53hP39אUK. אExpressאل¢NאlWS :אaאאUא¢Nא${،hو$אH'13K.53ً3א$+א 234א +Nא .net Q'1 J nD Basic אلX'] .net 2008 אل53 + http://go.microsoft.com/?linkid=7653517 Framework .net Q'1 J nD C# אلX'] .net 2008 אل53 + http://go.microsoft.com/?linkid=7653518 Framework .net Q'1 J nD C++ אلX'] .net 2008 אل53 + O+\אh71جא9م$+Framework http://go.microsoft.com/?linkid=7653520 zT9 iH'13 hدوאC !' .net Framework nD N3 Q'1 J 3$73GQوh71 http://go.microsoft.com/?linkid=7653519 gh$D'א.zT9+!'Q،H'gT\אhא$D'א.(م .net53א03K3א http://www.microsoft.com/express/sql/default.aspx 33 وאلgadgets אلzNFDKgtאi$Q$و'!אPQ3hدوאC$C mash-ups http://www.microsoft.com/express/popfly/default.aspx VS 2008 إﻟﻰVS 2005 ﺗﺮﻗﻴﺔ ﻣﺸﺮوﻋﻚ اﻟﺬي ﻳﻌﻤﻞ ﻋﻠﻰ .3 .:VjVI53iدO net 2008.nDKFnet 2005. لI53c\אDوT353+!NP> .i,3.Z©א3g(وnet 2008. لI53وعT\אO. • .NextHI. • >$7 א+N אªO 'دWن אP\ אHI . ، hO\ א53 א+ KFD HI . • .:!ًא .FinishHI. • .KFאzgא$zg9Q7nDKVRو،.Zאzgא • V *jV אKQ$ ، 2005 03 ً 7!'א3 زאل9 :NP و2008 لI 53 KFQ DوT3 ( !¦نR אn :אh'א1.a7!2008037!'א3 .وعT\*אjVIHI.Solution Explorer53 • .ONOption InferHI.CompileGQ'א53 • .net Framework V Target frameworkHI. Advanced Compile Options53و • ..net Framework 2.0.53ً9$3.5 tאhאH}!א.وعT3אU، 200803ًj7$%'tא0%!א\אsאD'نPאن .'1\א0%!א\אs.وReferencesل79.،S$Q 34 35 اﻟﺒﺎب 3 اﻟﺠﺪﻳﺪ ﻣﻊ .net 2008 36 37 ً7z$'دאCSאو17Nא،Y3SY17אضZ!אnD$DXPא53zאאWSU hN7 א5D .' אXא אWS U E$RN ، אوiF 234 _ C ^ א17N א، .net 2008 XאאWShRObG7نC¤ MQ5!אسUً435P_'!، .net 2008Uhg&tאi$Q$א .אXi,31N t אhN7 אK K .net 2008 03 hg& t אi$Q$ א3 אhN7 אa7! @ Xא אWg 'دV7\א USHو$g,tوאa7!hN753.net FrameworkKFDHאKIدאK3PאD$אn7Rbא .3د.وسHدU:Df!א4_אDU$Q$א3C،ً79VON3وسHد SliverLight ﺗﻘﻨﻴﺔ .1 %''NPوאN7 لאUjאO\אGCe)و3و'!אאPQ3h53z` tאh71K^3CKRGQ'شאDnD Flashh)Hא7אiDوRF SilverLightN7 .אجI9لوאIقאدnDدFD9وאCR\אQ$F\مא$+ 53 ، g[ SQ'1 قU }H وC − 1 Flash ¤[ P\ אAdobe , C نC $ }Hو Adobe,hZ,אWN3QHW%h אq$gTQ_W! شא¤[0QאQ'1אUghC$−!H$Q kوC، Action ScriptnD$Fh)E אنAdobeTb]!، MacroMedia,53:.'7 لI53!N\אaInDSun,IدF!،ApolloN7ً אICوFlexN753وFlash'SSg,Cو אلFQ 17N'ن אP }H و، QgN אU NRV3 U GVN $] אWS وJavaFX Script g`N3 _FD$nDt وאHD Video.$אD'Q$!KqT:FD$ شOאh).5D SliverLight .−3'3GnD−$אא¡لWS'لIدgN3,ول :SliverLight0.'3iHQزz%אN7אlWS5D$Q\א5Df رابط http://www.microsoft.com/silverlight/default_ns.aspx hאH$.وhP3`אS$C$، Get SliverLight'عs'\אaאא53 SliverLightKFR.Qא$ .SliverLight 38 SliverLight hP30Fوא،AICi30.'\`א.53و،: SetupKFDو234אKFR. .قOאª9و... :SilverLightN7nDًMQא$Ftאوא0.א\'אX% 0.'\א iH'b http://silverlight.net/samples/1.0/Page Turn/default.html /http://www.yeejie.com/silverlight_magazine LINQ ﺗﻘﻨﻴﺔ .2 z% م9אKQ'N7אlWS،hא$D'א.لU!'وPQ353i$Q$%N7 .4אq لI53i,3iH'VhNjP'لوא7Lאولوא$א03K3אQ}4אq53 :lWS م9אBאضZ!א5P>0Q^لF SQL Server Select companyname from customers ﻛﻮد U م9 א2 ${ 5P و، NNQ 3 אWS @ ... 7Q אم א$+ SWON Q NP> I א مKF ، gzא. 01 ، izא7 א7Q G ً ^3 RS.Fields("FieldName") :Qאد7Q15jPאURא53وizא7QدDLoopKFDNP>،$Q$%53izא7א 39 C# do { Console.WriteLine( Rs.Fields(“CompanyName”)); } while(Rs.Read()); ﻛﻮد VB Do While(Rs.Read()) Console.WriteLine (Rs.Fields("CompanyName")) Loop ﻛﻮد KP,nDg3K3אQhא$D'א7!אن3C،hא$D'א.03K3v\אHI9'אSאWSن KIدא533אאWSضZON،gbI Operators k وfunctions وmethods وMembers k Clases .i,3 .net אل C# var queryResults = from cust in customers _ select cust.CompanyName ﻛﻮد VB Dim queryResults = From cust In customers _ Select cust.CompanyName ﻛﻮد gzא.P3bאtאk'7وgVjVIki,3JO queryResults03K3אP3bوאنא .KVON7אlWS5D9XUfN،i,3 . WPF ﺗﻘﻨﻴﺔ3 Windows presentation لHVIאSوH'NאSH'g&WinFx$g,tאi$Q$אhN7א53i$وא אدnوCjNhg%א'אob'م$+qSوXAMLSAIאN7nD$Ffoundation ًMQ אP3 K(Q F!، QH'! iH'V XAML 'د$' Q net 2008. لI 53 WPF nD FD zN א، 40 hROb U E$d نF 'د אدP وאXAML אلY K3P אKVO אQ . hدHC نXAML X Pא .GQ'א ؟WPFאم$+\ذאא FV א23 א53 3 H'g& د. XAML אم$+ FV אY و4 אq Y K3P אKVOא U'دPאGP! شوnDאو،X',''!nDFVOK§،XAML'د$'tאVV+\א nD FVאFאN'v5P_tאFVאi'.وPRא53ًא$Q3RNFאWS@א، net. t אiSم אL א53 D'F $` ً MQ א، FV'د و@ אP א3$ ً b אFV\ אVisual Studio .234אg(3YوKF{nD¤$D ،net framework 3.5.K.9אnDوCnet 2008.KFRF.$]]!N3ً3Nذא،QgNאK. ج9 }H ، Q$7 אhg% א'אY وgN قO א$S, و، ^3 אlWS nD عKSp3 ]! אW 'ل3'gO3 q א7 و، H'V אو ذج אi'د%'\ אhS'Q$O אnD 0 אa7! 234 אKF :$אhg%لא'אB 0.'\א iH'b http://blogs.msdn.com/tims/archive/2007/02/02/ great-wpf-applications-6-fnac-com.aspx http://blogs.msdn.com/tims/archive/2007/03/05/ great-wpf-applications-12-roxio-central.aspx 41 http://blogs.msdn.com/tims/archive/2007/02/09/ great-wpf-applications-8-notescraps.aspx Expression ﻣﺠﻤﻮﻋﺔ .4 53l شאوOوאCX',''OאnDg%א'אFV\'مא7Q،FVאFDUً .zאH'א$N Flash لI53hLوא3وא9אوא،ROVאUgsووH'Vא017ً79Q،FVא23א .4وאFVאFDYً3ً V!${،אWPSو...4وC.'\g753و ، h71 אFFV3 h%9 lQ'1 5D !'وPQ3 ND א1 Expression 'Q 'د03 אن و3C NP> XAML 'م ج 'د7Q !'وPQ3 אج53 FV 23 אم$+ אP3 אنbC .ً MQC Expression BLEND لI534אNP>F،i,371U:3א$+א − Lאhאp\وאH'VوאQ$F\אQ'1 BLINDS ،jHh710Hא03 MS Expression H$VQ $Q$,−وز$NQ'אh713$س9:%'3'S وDesign'S^א1א، −! ش234:Tא$Q$, 'Sو،ًא$%DA'}Zא0.'א3FVb אWEB אلK%'S^א، −X',''O:Tא Iא، XAML وAJAX D دK% א53 ًא$% 3$73 hP3 5P وMicrosoft FrontPage لH'1א . Expression Media :! I'وQ$OوאQ$\א03K3*V L c 0.'3 وC .'3 KQ' b אBlinds 'S gN ig, ^ א1א :234jא,TאSlWS،'gאQUًא3א:! Iوhאp\و 42 3. – N7 א0.'3 53 و'! א אوPQ3 0.'3 53 'مQ 21 i$\ Q{ + KF NP> N7אlWSnDfNF - .!'وPQ\ Parteners אلhTאA$א53N7אzאT!'وPQ3 .XPאאWSU79وسHد5FsVO3iH'V WCF ﺗﻘﻨﻴﺔ .5 אوhPTאnDz'א،لVא0sوUKFtא23א4مא$§tאi$Q$و'!אPQ3hN7A$אS lWg!FgM5Qزg%aH:!Q23אHVI...:! IووZP9א$Q4אh3$I`وN\אK^323א .ضqאאWkg%'3N7א K%א53i$Q$%N7!'وPQ3Nhz%، .net 03 Sockets J! و6!`'אلU Winsock $ . Windows Communication Foundation لHVIאS وWCF لאV9אhFD K3P3و53 Server And Client دمIوKFD1KFD01HVI!،N7אlWS\ذא3C !!!'دPא53a7!1אiTD53K. لאI53 .hN7א.YوgNhH7Fق1f'WCF5DKVO\אNHدU،7אhN7א53عCgCF 43 Code Refactoring .6 53D'FSHVIiPOא،'Q`'אل'دO אصIDE אلgz%tאi$Q$אhאF\אA$ .:3K3אKg'دوP(אNnDi$D\אKj'א 5FM3 gN3 $ وאbC .net 2008 03 و، i$D3 23 אKP, nD 23א4 אlWS K^3 !' Q i אدU KQ$א،hJ!Uh אq\א23$،Hز1qM q\*jVIzTא53!s9אlWSNPe،sאZ!אiH'V .j3g%א'אWSK:! IوhאZ3HوאhJOאU qوא . Refactor! for Visual Basic 2008!`'אلK%234אאWSK^3AIC23א¤NSًMQא :aאאאWSnD'د%'3234א رابط http://msdn.microsoft.com/en-us/vbasic/bb693327.aspx :'دPאiW!nDgOMQtאh Q$אiH'blWSو bאlWSNPe، 2008UsאZ!אiH'VNFM3S وCode Snippet bIًMQو'!אPQ3!' 5P> Fj. 53 '1\ אFg\ אHI ذQ ، $ وא1 ون$ N3 F K3 אج 'دH אد53 K%א53:ً ^3$`!`'אلوK%א53234אאWSiود،i$Q$%!א'אدsوאg!Q$Rא :XH, رابط http://msdn2.microsoft.com/en-us/vbasic/bb973770.aspx 44 :234iH'blWSو bI gNP و، a7! 2008 ~ ً bI 39 !@ א2005 nD KF hאHא$b א¤NS ًא אذ ]نI @ ًא وIא .Visual Studio 200803ًsאZ!אNFM3אنRbא 45 اﻟﺒﺎب 4 ﻣﻔﺎﻫﻴﻢ ﺑﻴﺌﺔ .netاﻟﺮﺋﻴﺴﻴﺔ 46 47 .net ﻟﻐﺎت .1 53H\אאWSv...hqi$D:3$+.H35DiHDSK،i$وאq .net 49 hq U g. 1 אi$D. 'نP H\א אWS hT א53 $Q$ אN و2000 و'! 'א אمPQ3 K. 9وK@א\אONًאHو3gO%Zو،:OH$V\'دאPאk¦نhqאlWS0BF،4א 5Pو..3 Engine qא¤[9אh'P\אnDf'م7N...Vא7QUA'o§ .net .H3NtאhqאnDfNً . C++/CLI !s א، J#.net ،VB.net ، C# M t وאgON !'وPQ3 SH$V t אhq א$! n ''ل و، Oل ودP K^3 .net QH3 D$ t אAI אhq א¤NS JScript.net ... ًאICو .DN1bאzWאh714LISP.net ..@PNאJ .net QH3D$Qً ^3 mono f، Linux JnDKFtאhאHא$bًאMQאnN9 אض9 }H VB.net ً 79 : MN ، C# 'S .net J 3$ 9 א2N\ ن א$7! QgN אU 5P 4 1.H X'9 א3ً3'Q:®$.D'F`F f# مFMאنאnN9 ،hqא0S$C$و7Q' .net .N7 :NSgNDh VOא03QH\אlWSD$tאhqאKFnD ع9אQgNאU01 رابط http://www.dotnetlanguages.net/DNL/Resources.aspx اﺿﺎﻓﺔ :XU Pro C# 2008 .NET 3.5 Platform -Exploring the .NET universe using curly brackets QgNאUًB''אRدאم3 .net hq53د$אאWSK\ذא،:DG®ًو9¯GPאv1Q :Xאi$אא¯لWSnDG®وmaneged code ؛XPאX'אKMOQgM!،g'dوg'ن4Qtאqًא$%YY4\א53$Q$ אنא− nN9، Visual Basic hq Syntex K^3izא7.^אX'9אIאאKMOQF!...'אس.وא 48 وBasic وC# 4\5P> .net 03KFY4\א0BXW%و)و7Q'אHو$אNS 0F`!sאKgאgNk7אK®3אWSو،i$وאVN3ًBKF אDelphi وFortran وC++ .i$(وא3Y4\א 'ن4QY43$א'אQOאU${אن5P>،iد$3hqY43$א'אQOאHT3 − OQאWS،q@אONY4\'نאPQאنKMO\א53אنن$QgNאU$وא2N3אجIאQوhqi$ .Y4\אHIאUhTمא3^ אًאhאHI9א sQאhFאUihq¤NSً ^F!،g3א$+9سNא1Mi'.ط7NFhq א− 01אWPS...LאhFא\وאh 3אUًMQאi''لPא،אنH'OאK^3h9وא\د .net .JgM03ًBg$وhאF\אlWS53iدO9א .net اﻟﻌﻨﺎﺻﺮ اﻷﺳﺎﺳﻴﺔ ﻟﺒﻴﺌﺔ .2 hN7אlWS، .net JnD$F\א234אiiHدوUPRjHbNDE gY .net م$7 . : CLR, CTS and CLSz]ًאHVIאk3QE ^א :Fg3، Common Language RuntimeلHVIאSو،234 Runtime Layer אلCLR אلK^e U h אq\ و` א− وאل$ وאhP\ א.net - K j אh'P\ א'אع وאU PR אS 9א $Q$,HVI"،ن3אhאHVI!אsאWON وאthreads אل،g3K3وאiאWא7وiאWא .'3'Pزאg%nDSWON و.net 3وאCBZ9 א\אCLR אلKPT 3'D$\ אh א'אع א03 K3 * CTS X lHVI אQ W وאCommon Type System אل U3'D$\'אع א9'دא%وiDא303،gMYوgNK3אQoو، .net J5FsKF Common Language S وi I א3C ، AIC وJ Y h! I אg $%' t وא.net hJ 0B 3'D$\وא7אhא'אعא03a7!K3Vg! CLS 3SHVIאQtوאSpecification . .netJhאHא$bא0B53 'S CLS U \ א'אع אa7! م$+Q^ ً و3 C# אم$+ FV\ א234'ل אن א7 אن01 אWgو جHI%I'3א، mono lF\ אLinux nDKFאK%א53 .net Q@'زOnDKFً3e!'א3 .O+\אF(אKUizOP@אONSWONQאن5FM5! CTS CLSقאل1 49 Base Class Library .3 وאل$وא3אوאnD'd ClassJ!5DiHD'Sو، Base Class Library fQ3 .net N7!' ،7Q1@אON:VjVI03و:3K3אQ و.net hJ0BU'د%'3 JO אlWS، .net JUjא GUI אل، XML אل، Threadsאل،hא$D'א.وhO\א03K3אK^39אbNאClassאلMQ tאhqא53C03K3PK.و.KgCو$'34אX'אK%UP\אlWSSو.:! Iو ..netD$ :!'وPQ353 BCL אلhQ')ول$אאWS אلnD ً MQ' אd ، .net h71 Q'1 :% 3 K nD System 'd ، Q BZو zلאS System אن${$Q$,HVI،א..LאhF9وאلא$ وאDatatypes .hJOא.nDg'tوאjא ob'א JOא SWON'אدو9אPbI System.CodeDom . Lists, Stacks K^3'אع9א53د$DnD' System.Collections Process وאلCounters وאلEvents אلMQ System.Diagnostics 53 O ( nD KqT Q System.Globalization .:! IوF.9אhאدא$D9وאhqא Q5Dz'אhلא7ضوאQ3K '3'P אW!N3 Q 5D אو، hא$¡ وאhO\א Serial PortאلK^3 System.IO 50 KFDQ،234אoVt אResources אل System.Resources א\^لKnDhqאiد$3h71 'صVNא03K3Q3K System.Text RegularExpressionsאل03K3א System.Text.RegularExpressions .Net Assemblies .4 U'لRQ'دP!¦نא، .net h71zN:3$+W אCompiler وאل4אqFg3وQgNאU :sوQو، metadata !אلs9 IL ًאHVIאfQ3'S وintermediate language لQgNא dll KP,nDوC exe KP,nDz'אi,3KFK.אo3U لHVI C 7 !אsאF!אن3א،!'وPQ\HVI אMS وאلMSIL IL K3Qًن7 .7 אMS 53ً9$Common nD'R! metadata אل3א،:,3وא'אدو234אg'م7Qtمאg\ אMSIL وאلC IL אلK^> وאلIL אلMQ W א:O 9 אo3 ، U g3$+ אt אhJO א'אع وא0F obو ${ h9 ¤NS ، D'F¡ אlWk ً MQ אmanifest !s אQ ، ً MQC metadata X :Ob وQ metadata Ua7!$ وאmanifest A'Q$'نPQ5LאlWSUو،אo353^ً13g! .אgM03hO\אaHوQא$אKF'م7QgN3$وא CIL ال .5 Pro.CSharp 2008X53 C# q234אאWSضZON C# // Calc.cs using System; namespace CalculatorExample { // This class contains the app's entry point. class Program { static void Main() ﻛﻮد 51 { Calc c = new Calc(); int ans = c.Add(10, 84); Console.WriteLine("10 + 84 is {0}.", ans); // Wait for user to press the Enter key before shutting down. Console.ReadLine(); } } // The C# calculator. class Calc { public int Add(int x, int y) { return x + y; } } } :'دאPא$`ILDASMK^3GN31Cאم$+'دPאאWS5D2Nא9אOF.' ﻛﻮد .method public hidebysig instance int32 Add(int32 x,int32 y) cil managed { // Code size 9 (0x9) .maxstack 2 .locals init (int32 V_0) IL_0000: nop IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: add IL_0004: stloc.0 IL_0005: br.s IL_0007 IL_0007: ldloc.0 IL_0008: ret } // end of method Calc::Add א\אUذQ،Platform-Specific Instructions'دPאKQ'Q_،\אlWSn ز و(مg אhP39 GN3 'د2N'د אP אBZ 'م7Q W وאJitter fQ 3 لI 53 .234א:DKFQWאKqTא :!'وPQ353aאאאWS53'عs'\אאWS5D$Q\אnDfאP3 رابط http://msdn.microsoft.com/en-us/library/f7dy01k1(VS.80).aspx 52 MetaData اﻟـ .6 ::! Iوhg%ووאhJ!دوאلو53'دPאhQ')Kob'م$+t אMetaData nD^ل3 ﻛﻮد TypeDef #2 (02000003) ------------------------------------------------------TypDefName: CalculatorExample.Calc (02000003) Flags : [NotPublic] [AutoLayout] [Class] [AnsiClass] [BeforeFieldInit] (00100001) Extends : 01000001 [TypeRef] System.Object Method #1 (06000003) ------------------------------------------------------MethodName: Add (06000003) Flags : [Public] [HideBySig] [ReuseSlot] (00000086) RVA : 0x00002090 ImplFlags : [IL] [Managed] (00000000) CallCnvntn: [DEFAULT] hasThis ReturnType: I42 Arguments Argument #1: I4 Argument #2: I42 Parameters (1) ParamToken : (08000001) Name : x flags: [none] (00000000) (2) ParamToken : (08000002) Name : y flags: [none] (00000000) 'م7 אن.net nD KF وאNP> ، ^ل3 ولC U :P NF. W'د אP אob' אz'م א7Q nDو$אKQ$ً3'Qج5}H:א$7Dא،gOvTوRsطوא7NאGא،'دPאאWSnD ع9 .o\אאWS Manifest اﻟـ .7 o\אאWSoVQ، Assembly File 53^א¤NS'نn23KPo\אאWS53a7!i$ وא+ ^ل3אWS،o353^'دא%وUjא9אo3و9א+.H53:O9א :D'NאlWS53'دnD 53 ﻛﻮد .assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) .ver 2:0:0:0 } .assembly Calc { .hash algorithm 0x00008004 .ver 0:0:0:0 } .module Calc.exe .imagebase 0x00400000 .subsystem 0x00000003 .file alignment 512 .corflags 0x00000001 Common Type System .8 JU3'D$\'אعא9אob'*: وذאCTSnDV+\'عאs'\אאWSUN Sא'אعlWS،אgM03g3Oو.net Class - Interface - Struct - Enumeration - Delegate - سאصH$ لאIאنNQ3אن9،XPא53O3UgN3KoQ7QnDfN 3 אCTS אلi$j!53^ج\!א5!QدDh712343Nذא،g3 CTS אلK3O'SN nDf'ن%R! .netQ'1J5Fsq אوCompilerzN'ن3'7Q5QWאوאh'אدوא43 ClassnD ًאVً9^3]ذ،9*אjVא 54 ل:T א$Q$, − א 'دnD 'd 9 Abstract Class אل، Abstract Class fQ 3 ¤NS 'د1nD'd5:א:3א$+אUz$אK.:אHوKFDذ$5P>r interface Abstract Class fQ\^ل3אWS،$وא C# class abst_class { int sum(int x,int y); string name; } ﻛﻮد VB Class abst_class Private Function sum(x As Integer, y As Integer) As Integer End Function Private name As String End Class ﻛﻮد Q3'PאU CTS 03K3אUH'F!gجRt אCTS *אلjVIول$%5Fs53وאن Q$ نCTS HIאK.جR، Is the class abstract or concrete bא$`.ً ^3אص .ط7NאlWSK^}ًMQאl4§אنNSClass ﻣﻼﺣﻈﺔ في دروس قادمة سنشرح بالتفصيل كيفية عمل، ال تقلق لو لم تتضح لديك مثل ھذه الخصائص . وانواعه وطرقة المختلفةClass CTS Members .8.1 gN3K Members אل53د$D!אsאNP>، CTS لI53O+\א'אعאob'F.אن$ :ً MQ'نאPאن5P>، Fields 'ل7LQدDh אq3'نPאن5P> Members אل، constructor, finalizer, static constructor, nested type, operator, method, property, indexer, field, read-only field, constant, event ً ^3 Public 'نPQאن5P>،Q¯HA$3وC ( visibility trait) fQ3:Q$zMDאlWS53$وאK 55 אنfאنNSNNQ3،ًNوHد5Fsً79:DfN א.. ClassJOجאHI53:Q¯H5P>r . CTS UgOb'Q*jVאlWSK CTS DataTypes .8.2 Pro C# 2008 X53ول$אאWS، .net K.533'D$\ אDataTypes אلnDًMQ אCTS 'אلd :E ^א9 א.net hq keywords Ks'03 .net N3א\!א53'عN CTS אلi$j!3'\fدאنDh71234FFgQ3K אWS 53 z$ אNPF! ، CTS 5D $Q\ אnD f אU G وiPO` אD א$. N ذא3C ، 9א :aאא رابط http://msdn2.microsoft.com/en-us/library/zcx1eb1e.aspx 56 Common Language Specification .9 3א زh1\א53nאد$LאoV CTS אل53 subset S CLS אل،א%'\אUذF QHI אCTS hQ') !¦ن، I nN} و، .net J KF q אlWS 'ل אن7 א01N CLS UgF{ CTS hQ')53D'F،IאUS${9 و.net hqUS${אن5P> .Q'1 .net Jم$+qKPQH%'نאP م$+qKPg7153$9وgOb'Qو،QH%9وطאTאlWSnD CLS Rules 1V3א قQو .Q'1 .net J !אذא3P3، CLS אلgFMQ9t*אjVא53i D'F¤NS، VB.net وC# hqN !s لאI53KqTאF(C0BnDgFDiD\א9 אمCLSאل5Fs'د%'3:3$+W'دאPنא :CLS533وאCnDA''d9C'دWאzאnDC'دאPא ﻛﻮد [assembly: System.CLSCompliant(true)] :NS53izא7אb'א3NP> CLS 'عאلs'}ًFg3Nذא رابط http://msdn.microsoft.com/en-us/library/12a7a7h3.aspx Common Language RunTime .10 qزgאnD אص.net 'دאلKF'1\אh3'\!אM CLR !¦نאل،ً7ذF 1M3¦!!`'אل2343Nذא،א\^لGQ7و،b'دאPאgetאqא5D(Nא N '3א،jאh`'אلودوאOFV\אKFزgאnD msvbvm60.dll'د%' 'S CLR !¦نאل،7Q1@אONو...71:DKFWزאgאnD JVM !!¦ج%2343 .'3'زg%אnD .net JFV\א71KF:%Wא$'אo\א 57 Microosft Common ~ ًאHVI אmscoree.dll lF\ אCLR אلP3'د%' ج.net _אلDO! P\אlWS9אo3iH,אQא$03وz$03،Object Runtime Execution Engine U TypesK ً MQ אLoad KFQ ، metadata אلizא. و9 אo\ Load KF CLR 'م אل7Q F platform specific instructions CIL Ui'د%'\א234א3אوאBZ'م7Qً אIوא،H'F\א 'مאل7234אKFD لIو،WON CLR אلz$Qً אIא...¤زg%nDWONא:NPFً7N7Oא .Ug3$+N ذאBase Class Ui'د%'\ א.net K9אhJOא03K3CLR :lWON53 'دوnative :Q'n'دPאKא3s'QQ$PQو53a1+\אאWS :NS53z$אNP>$Q\!א3UGNذא،iود رابط http://msdn2.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx 58 Object Browser اﺳﺘﺨﺪام .11 :א,Tאg(، Object Browser ZI אView Fj.53 hP\אאض!א01،O+\ אVisual Studio hאHא$bא03i!'\ אTool אلlWS لI53 iqV3iWو:3א$+א7Q،gQtא9אhO3و:P3fאن01و، .net UjאhJOوא .:$j!5D אو، Help Fj. U i'د%'\ אz 'אMSDN hP3 z'` אNP> gN3 א5D h3'\ א53 $Q\ . msdn0.'3Ui,3Z9אnDi'د%'\א Name Space ﻣﺠﺎﻻت اﻷﺳﻤﺎء .12 gN3T${tאj אnamespaceאلS System نCª אن01،7وسאH$ لאI53 . AI אname spaces אلGC 59 K^3 hJO א53 $Q$ אg ${ Microsoft I name space ¤NS 03K3a7!bIS Micosoft J!537T\אhJOא0B وMicrosoft.ManagementConsole .ً ^3mono אلKF9g!אWو'!وPQ3h3$I ' g אSystem.Windows.Forms : אname space אلO אنs א'א53 'نP ، ً 79 . Forms zNg%tאjمאg\אnD اﺳﺘﻴﺮاد ﻣﺠﺎﻻت اﻷﺳﻤﺎء .12.1 אKPT'دאصPאo3nDאz9א אدلאNP> C# using System.Data.SqlClient; ﻛﻮد VB Imports System.Data.SqlClient ﻛﻮد :i,3א3אNPF!،NRsאوFz9א\^ل אدلאKnDF.ذא C# SqlConnection sql1=new SqlConnection(); ﻛﻮد VB Dim sql1 as SqlConnection=New SqlConnection() ﻛﻮد i3 K U GZ :'I$ 1M3 אL אlWS O! ، z9 ل אU :OQ 7 _ ' ، K7\ אU :g!:3$+ ﻛﻮد C# System.Data.SqlClient.SqlConnection sql1=new System.Data.SqlClient.SqlConnection(); 60 VB Dim sql1 as System.Data.SqlClient.SqlConnection=New System.Data.SqlClient.SqlConnectionn() ﻛﻮد ildasm اﺳﺘﺨﺪام ﺑﺮﻧﺎﻣﺞ .13 Visual Studio 2008 03 7R\ א23א4 א5Fs 234אאWSNP>، ildasm23GqאU${ F. 23 ] אص9 אnD ع9 א53 CIL אلQ¯H53NP>ًMQא، .net אم$+:F :234א53iH'blWS...234אאWgאص :ND$Q\!א3و234א53+KFNP>و :NS53 رابط http://msdn.microsoft.com/en-us/library/aa730858.aspx ؟open source .net ﻫﻞ ﺗﺒﺤﺚ ﻋﻦ .14 t אprojects אلg,'אS mono project fQ3'S وhttp://www.mono-project.com .O+\'@אNhQ'زnDKF אCIL K .OhVN3nDKFא53 CIL 5P> Portable.NET IوعT3¤NS 61 : NS^وعאTFً1אH${ رابط http://www.dotgnu.org .MONO5D^CVOiH'VfNXPא533د.zא%CU 62 63 اﻟﺒﺎب 5 اﻟﻮاﺟﻬﺔ اﻷﺳﺎﺳﻴﺔ ﻟﻠﻔﻴﺠﻮال ﺳﺘﻮدﻳﻮ 64 65 ﻛﻴﻒ اﻛﺘﺐ اﻟﻜﻮد ؟ .1 FP3%9אlWSنC9، Visual Studio 2008 لI53SאلאpאnDQ$7א%א CnD .net framewrok 3.5 development kit a7!'د% لوI53و:אSRRVא%!،ً3e lWSnD`DnDسH$אאWSUfN، .net 2008 h71Q'1nDًאHد.'نP¦!زg% Visual Studio 2008 لI53g3K3Ntא9א7Q1'لאQ$RK7NאنK.ق1א :aאאאWS53gFNP>ًj$3 رابط http://msdn2.microsoft.com/en-us/library/zcx1eb1e.aspx Visual Studio 2008 Command Prompt اﺳﺘﺨﺪام .1.1 'نP،'1\א3אوאnD عcsc -? 3א: I53NP>، C# 4'م7NNאNsZ!'א אل$Q$RجR،ًQو$Qz,KKF1M5P، C# 'دBZz$א01!3אوאlWS Q3'SوQو$Qz,KKF'م7'i353$OK7\אU، א....hO\وא9 وאout .zאoא53234Q3KUPRSذb! :אKPT:Gcso39CompileKFDNP>،iH'ba] 66 ﻛﻮد csc File.cs :dllo3:Q'RوC ﻛﻮد csc /target:library File.cs :exeo3:Q'RوC ﻛﻮد csc /out:My.exe File.cs :$وא$Ui'د%'3hO3i$CompileKFً אIC ﻛﻮد csc /define:DEBUG /optimize /out:File2.exe *.cs :!'وPQ353aאאאWS53zא$א$Q\!א3NP> رابط http://msdn2.microsoft.com/en-us/library/78f4aasd(VS.80).aspx TextPad اﺳﺘﺨﺪام ال .1.2 + ، z, ] KF *V+ K. وz, אnD KF K. : אnN} ، Jg אiدD9 K. 1 GQوhRObאوq9Qiدאg3א$+אNP>،KQ$وאQ'1:. Notepad אل53iH'13 *jVאKQ$013د3z,....אHאوGZg3א$+אNP>...אn אوHTMLאو .'1\א 67 !sא$،:D vb.net אوC#qoQo3!sא01 אTextPad *אلjVI5Fs53i$وא 53+${ Compile 3!אsאNP>، visual studioUF א'אد5Q''م7Ql$`o\א אa אא0 NP> 'عs'\א אWS 'ل$Q\ \! א، א... C# אلq :3$+\ אRE אل : :N3 ق19وא رابط http://www.eggheadcafe.com/community/aspnet/2/10014016/textpad-and-c.aspx :NS Textpad~אnDgZob'אوא4אhqKhO3${אن01F رابط http://www.textpad.com/add-ons/cliplibs.html 0s'F.'، Reguler Expressions~ אqQ5DhدHنאgO4אqUKQ$אP3 .ً MQ אTextpad אلnDSWOND1!bI4אqY'א. 68 Notepad++ اﺳﺘﺨﺪام .1.3 אلbIK^3 Textpad K!'9}Ht*אjVאQ،K3P:א9،K1 .س'دH'v3:אnN}H$V\אv'O3:אWosא،auto complete :NS$Q\!א3NP> رابط http://notepad-plus.sourceforge.net/uk/about.php : Open Source :אlQ'1Kא303NSl${:O234א رابط http://sourceforge.net/projects/notepad-plus/ SharpDevelop .1.4 :ً MQאFVg%'دوא%'FQ، C# אل3$:%'3 69 :אaאא4D:Dfz$אNP>...hوאدوאg(\אU'Q`'אل'دOX.9'אSو رابط http://www.icsharpcode.net/OpenSource/SD/ Visual Studio 2008 اﻟﺒﺪاﻳﺔ ﻣﻊ .2 $<،:D'N Studio Viusal 'אلS VB.net אوאلC# אلP!'وPQ353$F\ אIDE אل Visual K^3'g!N3q:%'3'نPQW وאExpress3א، 'S وProffessional 'عNא .C# 2008 Express Web Site وCوعT3zTאhאHI${3ولC$`3$+\אqאGو، i3ول234אKqT$ :ً ^3 Project ZI אNew Fj.53،5Q'د%'\אnDKQ$!sא$Q$% 70 $ وאClass nD ً j$3 ' 'دP אP ,, S وConsole Application S א'אعaא OKא3Ukق1N'אع9א..a7!...:ZIאWوعאT\'אאS name space وאلMain . .net 2008 JK3g!: I5301א'אعوaא: Console م$+N،XPא53 ،O+\وعאT\אh'P3YK7NאNP>، Solution Explorer אل${,TאY>nD aqM ل אI 53 i$Q$% h'P3 !s א01 ، !M\ אh'P\ א${ Refernces GQ' . Add aqsوא5>א\وسאH ReferncesnD אل0BضDQr ClassضDHIא01،אضX'אYKQ$אNP>GQ'אאWSKOא : g!*jVقوא1وאDوT3Ui'د%'\אClasses 71 وعT\*אjVI$`Y3:DaqMF.'،وعT\*אjVI${ Properties GQ' .DوT\9*אjVאNP> iH'V FgN h. א$Q$ وClasses hJO אH5P> Class Designer ً MQ א.net אلQ .i,3وعT\אnDFgNaאوא03i,3g71Q53وj3 ﺑﺮﻧﺎﻣﺠﻚ اﻷول .1.2 :'دאPא0s Main lF\ אfunction אلU،Na23אولX`N C# Console.Write("Hello World"); Console.ReadKey(); ﻛﻮد VB Console.Write("Hello World") Console.ReadKey() ﻛﻮد .Visual Studio 2008Uאولh]TC$.אWPS'نP...a7! .234א2X%وF5HزnDaqMאX% 72 73 اﻟﺒﺎب ﻣﻜﻮﻧﺎت اﻟﻠﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ 6 74 75 Console*אلjVInDQ'nDfN،hو$אhq9אh'P\_אDUHr9אK. .NوHدUً79g3$+Ntوא Console ﺧﺼﺎﺋﺺ .1 . ع%Z وאSzD$ دوאل وאKFD و,T אnD P אن א01 ، وسH$ א53 \ אlWS n gDKFt אConsole J9אbNאnDfi V.אHWI]N\אlWS$ND،gDو .ً :Sو،אجI9لوאIد9دوאلאS Console JOאgQ'tوאلא$אSא C# Console.Write(string); // *P . ﻛﻮد Console.WriteLine(string) // zgא$$Q$%1ل79אaqs03*P . string x=Console.ReadLine(); // Zאaqs03izא7א53zg9אQمو$+\א53h I$3izא7 int x=Console.ReadKey(); // Zaqs03izא7אFDzgאQوa7!$وאfizא. ConsoleKeyInfo r= Console.ReadKey(); // QאWً ^3gאHزK^3z,لאIאد5P>،:Iد$izא7א53zg9وאa7!$وאfizא. صI q3U2Nא5Q§ ﻣﻼﺣﻈﺔ . فقط ازل الـ ; من آخر الجملةVB.net لو كنت مبرمج 'نBackgroundColor * وN 'ن אForeGroundColor K^3 א'אنhF bI AIC دوאل :אKPTConsoleColorJOאQ5Dא'نY01،Oא C# Console.ForegroundColor = ConsoleColor.Yellow; ﻛﻮد 76 .iW!Nאg(3$Q$Rg! I وTitle وWindowWidth K^3AIC*jVI¤NS :*אNאD1م7א$QNضאZON،D1א0s'א3$'د Age q\א:F אname – q\א:א :'دאPאQ5DWم7אNNP> C# Console.Write("First Name: " + name + " - Age: " + age); ﻛﻮد :א7Q1،ً MQאKM!אAIC7Q¤NS C# Console.Write("First Name: {0} - Age: {1}" ,name,age); ﻛﻮد KPT exponential K e مو.H d 'ز3Hאم$+*N Format KFDNP>،^א7Q1א1'א :ً ^3א C# Console.WriteLine("E format: {0:E}", 99999); ﻛﻮد ﻣﻼﺣﻈﺔ . فلن تحتاج سوى الزالة الـ ; من آخر الجملةVB.net مجدداً لو كنت مبرمج ﺗﻌﺮﻳﻒ اﻟﻤﺘﻐﻴﺮات .2 :א7Q1h אq\אoQNNP>7وسאH$אUذF C# int x; string name; ﻛﻮد VB Dim x As Integer Dim name As String ﻛﻮد 77 ؟gFg3SF!،h אq\אoQ53 ^U new FP'دא%وª $]NPو،:! Iو U i'د%'\ אsאZ!9 אgH'b S$ 3 'S وnew אم$+ gOQ 5P> 1'אع א9 א 'אعC.W وObم.H9 وאfalse bool 71N\'אعא9אKQ'Q،gאص±TN\א .h אq\א arraylists وobjects אلK^3 new אم$+9g3א$+אNP>9hא53AIא'אعא¤NS5P .:NU:DfN:! Iو : C# U'אع9א7'SאWS ProCSharp 2008 and .net 2008 platform X53iH'Vא 78 .:! I وGetHashCode وEqualsK^39א:.iHوMe Object 537T\'אعא9א0B MinValue وMaxValue K^39*אjVאKFT! long وint K^3F. 'אعא9قא1א3C .h I$\א$Q$R IsLetter وIsDigit K^3*jVInD char 'אلdF!... أﻧﻮاع اﻟﻤﺘﻐﻴﺮات .2.1 $Q$Qو،ً ^3 int , string'عNאGh אq\אoQNNP> Class אلKI دא234א53z%אU .oQא:!'د%'\نאP\א4D'لb'אA$3 لI 9 : 'لb' א$C 01Q 5 q\א אWS ، دאKIא$gOQ q3 ضZON 17N אlWS s' ) א$ج אHI q3 oQ NF. ' 3C ، QHאP 7 KIو دאC ط, KI دא:OQ ' 3@ אO و، א$א .MembernFQLאlWSU،i,3 :'لb'دאא95PF!(i,3ClassJOאKIدא 53:P\ q\ אאTQ:! I وLong وint K^3a'אS'عאولوNא،h אq\א53نD'NQ$ نP3iH,9א:N301نP3 q\ אT! Object of Class وArray K^3G\א3CiאWא .3د.وسHدUKVO'عs'\אאWSnDfN،iאWאU:F. Constant اﻟﺜﻮاﺑﺖ .2.2 5P> ، ^ אو אConstant fQ אW ، ًא$ א:F. q 5P> 9 h א53 ' 'عS Constant ~א :אKPT: C# public const int myNumber = 100; ﻛﻮد VB Public Const myNumber As Integer = 100 ﻛﻮد 79 U T א:3$+ Y3 .H K^3 ، PI=3.14K^3 h9 א\د7 א^'אlWS אم$+ אQ ..אوUl qRنאFM qF:OQ53ً9$^:OQKMOQLאlWSU.א...hLא ...a7!:OQ(LF7אlz1Dوאi$وאi3^ אoQQ Read Only Field اﻟﻘﻴﻢ ﻟﻠﻘﺮاءة ﻓﻘﻂ .2.3 :אKPT:OQQ C# public readonly double PI=3.14; ﻛﻮد VB Public ReadOnly PI As Double = 3.14 ﻛﻮد ط,دونi$وאi3lzTא$F. lz1DאP3אUo:אא$D3،ً3e Constant אلK^3KFQ : ً ^3 אKPToQ(אL@OUF7אlz1Dא C# class MyMathClass { public readonly double PI; public MyMathClass () { PI = 3.14; } ﻛﻮد VB Class MyMathClass Public ReadOnly PI As Double Public Sub New() PI = 3.14 End Sub End Class ﻛﻮد 80 String اﻟﻤﺘﻐﻴﺮات اﻟﻨﺼﻴﺔ .3 String 'عNQ3K'لjאlWSUE$RN String اﻟﺨﺼﺎﺋﺺ واﻟﺪوال اﻻﺳﺎﺳﻴﺔ ﻟﻞ .3.1 אم$+א bوאCא$א *Nد'لא$ Length YVYH7F Compare *Nא5Fsf*אو5DR Contains Y3*אوfrgNQאوC$Q*NאذאنאF!!\ EndsWith StartsWith אوQא$א53z'א،*Nא5FsY3*Qא$אوf'د%نوP3!\ IndexOf QgNא53 LastIndexOf *Nא53Y3z%fW Remove StringאلKIאج*دאHאد Insert *Nא53z%אل$א Replace −)3 DK03*Nא7ً ^3،!'OV3Y3z,G*Nא7 Split i$Q$%!'OV3( small وcapital Yf9אKQ'R ToUpper ToLower 81 : ﺗﻘﺴﻴﻢ اﻟﻨﺼﻮص .3.2 zN*7s'Qא\^لא،!'OV3UbND*NאhQ')7Splitא$אمא$+אNP> ::1وU–h3 DnD C# string[] newarray = g.Split("-"); ﻛﻮد VB Dim newarray As String() = g.Split("-") ﻛﻮد : دﻣﺞ اﻟﻨﺼﻮص.3.3 :אKPT Concatא$אمא$+אو،+אم$+S'صVNא23$a9א7Q1א C# string s3 = String.Concat(s1, s2); ﻛﻮد VB Dim s3 As String = [String].Concat(s1, s2) ﻛﻮد ﻣﻘﺎرﻧﺔ اﻟﻨﺼﻮص .3.4 א$אمא$+אKMO\א53:א9، VB.net U=وC C# U'صVNאH7\==K3\אمא$+א5P> :אKPTEquals C# Console.WriteLine(s1.Equals(s2)); ﻛﻮد 82 VB Console.WriteLine(s1.Equals(s2)) ﻛﻮد – ﺳﻲ ﺷﺎرب ﻓﻘﻂEscape Characters .3.5 Tab KF /t و$Q$%1 /n K^3bאfوL)`'زאًא/f${،אjDhqKU :ً ^3אKPT،l و C# Console.Write("My Name:/nAhmed Gamal"); ﻛﻮد Verbatim fQ 3 אم$+' אS وI K ¤NS ، // GP אن$ ! / GP אنhدHא ذא אW KPT Escape Characters אل53 7ون א$ دD * L אlWS U NP> Strings :ً ^3א C# Console.WriteLine(@"C:\MyApp\bin\Debug"); String اﻟﺘﺤﻮﻳﻞ ﻣﻦ وإﻟﻰ ﻛﻮد .3.6 :ً ^3אKPT،l&N3*N'لאt وאParse א$אnD9'אعא9(א3' C# int x = int.Parse("1"); bool v = bool.Parse("True"); ﻛﻮد VB Dim x As Integer = Integer.Parse("1") Dim v As Boolean = Boolean.Parse("True") ﻛﻮد 83 ً ^3אKPT*gQ'R ToString א$אnDًMQ'אF C# string x = m.ToString(); ﻛﻮد VB Dim x As String = m.ToString() ﻛﻮد StringBuillder .3.7 KPT VB.net U & K3\وאC C# U+K3\אمא$+9N3^ ونP`]אQ،'صVNא23$'م73$ND :وZPא$Q4אدא$3!אs^لא3−א C# // C#: Label1.Text = Text1.Text + "@hotmail.com"; ﻛﻮد VB 'VB.net: Label1.Text = Text1.Text + "@hotmail.com" ﻛﻮد لU ، StringBuilderJOאم א$+ 'صVN א23$ AIC 7Q N 3$. Visual Studio نC 9 :אKPT'صVNא23$g3א$+א5P>، System.Text.StringBuilder zא C# //C#: System.Text.StringBuilder mail = New System.Text.StringBuilder(Text1.Text); mail.Append("@hotmail.com"); ﻛﻮد VB 'VB.net: Dim mail As New System.Text.StringBuilder(Text1.Text) mail.Append("@hotmail.com") ﻛﻮد 84 & وC+h 3\אمא$+א3א،lzT(אLWN3'SFK(Q stringbuilder אنU5FPQYN9אYقHOא .23دFDK03 String אل53$Q$% Object KF'م7Q'g! .Net Gotachas X53i,3H7\אH'VNو،'صVNא53د$D23$'م7 Loop ^ل3ضZONوאن م. و، 23 دFD 1000000 n و23 دhFD 10 53 zא$ א23 دhFD د$ HI אKF م. ، ^WONא53ذز03،Q$7א23$אh 33אم$+ אوאStringBuilder אم$+אYzאدאH7} .gN3KP ...ً Q77.د59.4c3562.933אنnN9 'ص؟؟؟VNא23$+م & אو$+ز3KS...وאن hFD وRemovefW وInsert אجH وאدReplace אل$ אhFD ً MQ אstringbuilder JO'! א aאאאWS لI53'مא3'D$3H7Fi ^:%وCnD ع9אNP>،i ^AIC'صV : Code Project 53 رابط http://www.codeproject.com/KB/cs/StringBuilder_vs_String.aspx 85 اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺘﺎرﻳﺦ واﻟﻮﻗﺖ .4 :Y3¢QH!s9ً ^F!، DateTime P\אU.'وא¢QHQ30B${ C# DateTime dt = new DateTime(2004, 10, 17); ﻛﻮد VB Dim dt as DateTime = New DateTime(2004, 10, 17) ﻛﻮد :Lא¢QHאD1 C# Console.WriteLine(DateTime.Now); ﻛﻮد VB Console.WriteLine(DateTime.Now) ﻛﻮد TimeSpan אم$+ًMQC.'א03K3א5P> C# TimeSpan ts = new TimeSpan(4, 30, 0); ﻛﻮد VB Dim ts as TimeSpan = New TimeSpan(4, 30, 0) ﻛﻮد :אKPT Substract وAdd אول$אمא$+v1!وאs9א C# Console.WriteLine(ts.Subtract(new TimeSpan(0, 15, 0))); ﻛﻮد VB 01.Console.WriteLine(ts.Subtract(New TimeSpan(0, 15, 0))) ﻛﻮد وC 86 C# dt = dt.AddMonths(2); ﻛﻮد VB dt = dt.AddMonths(2) ﻛﻮد :اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ اﻟﻤﺘﻐﻴﺮات اﻟﻤﺨﺘﻠﻔﺔ .5 :YjHYD'h אq\אYh Q'Rא7N،Qא$ Widening Conversions • Narrowing Conversions • Widening Conversions .5.1 nFو،hא53א'عiHIg!5P>9tאh Q'Rאh Q'Rא53'عNאאWg$V7Q :א\^لאU Integer Short53KQ'R^لذא3،upward cast C# Short x=5; power(x); ﻛﻮد VB Dim x As Short = 5 power(x) ﻛﻮد power א$אUو C# int power(int number) { return number^2; } ﻛﻮد 87 VB Private Function power(ByVal number As Integer) As Integer Return number Xor 2 End Function ﻛﻮد LאlWSU، Short 'ع53hkNHאF! Int 'ع53hK7א$אنא$`(9' 07Q Short KA$3و!¦نא، Short אلA$3534 אInteger אلA$3نPT3¤NS'نP5 .$]KP Integerאل5Fs Narrowing Conversions .5.2 Short 'ع532N وאInteger 'ع53 אنq\^ ً'نא3،qbא49א53KQ'Rא،PאLא '5Pو، Short KnV.א$Lא53qb אInteger YF.'عאF'نRRbiH'V39אKF، .PT32N !¦نذShort אلA$3ود${وزgD'FאنNsZ!א :]א1אH1Q'دوPאאWSK^353i,3Q3'PאN>،GאאWk Cannot implicitly convert type 'int' to 'short'. ]`LאlWSU،hعאsذ5D2'n17NאlWS5DًFHKQ'RאUNH'5P Cast ~nFQ\ Cast ﻋﻤﻠﻴﺎت ال .5.3 ،KQ'RאhFDKUg3א$+ א5P>K،a7!qb4א53KQ'RאnD cast אلhFD1N9 :אKPT Short IntegerKQ'R'Skאم$+אaא C# int var=10; short var2 = (short)var; ﻛﻮد 88 VB Dim var As Integer = 10 Dim var2 As Short = CShort(var) ﻛﻮد :א\^لאNsZ!ذא'א35P،10gא$`N var2 `D1NF.'،א\^لאU C# int var=100000; short var2 = (short)var; Console.WriteLine(var2); Console.ReadKey(); ﻛﻮد VB Dim var As Integer = 100000 Dim var2 As Short = CShort(var) Console.WriteLine(var2) Console.ReadKey() ﻛﻮد ، 31072−S`N'نאP234F73iH'V5Pو،KFNg.'5P>5`Nא אو، א. א5D iدQ زK 03 .H ص7 א53 و32768 53 zא$ אhאH,9@ אP Q3'P'م א7 .32767 'S'ع وN nV.9 אA$\ אو אnV.9 א$L א53 2N א. אv1 'م7Q 'g! HVI KVOgDfNtوאTry Catsh אم$+ًאFjدאKMO\א53:¦!،h Q'Rא53'عNאאWSאم$+ .XPא53دم.z%U Convert اﻟﺘﺤﻮﻳﻞ ﺑﺎﺳﺘﺨﺪام .5.4 :ً ^3אKPT Convert JOאمא$+hא53אא'אعYKQ'Rא5P> C# myByte = Convert.ToByte(myInt); ﻛﻮد VB myByte = Convert.ToByte(myInt) ﻛﻮد 89 .6 أﺳﺎﺳﻴﺎت اﻟﺸﺮوط.6.1 .net اﻟﺠﻤﻞ اﻟﺸﺮﻃﻴﺔ ﻓﻲ :אKPTg7Qو، if else م$+tאSTאKFאaא C# if (x==5) Console.WriteLine("five"); else Console.WriteLine("notFive"); ﻛﻮد VB If x = 5 Then Console.WriteLine("five") Else Console.WriteLine("notFive") End If ﻛﻮد אم$+ط,53^א23د5P>،TאKFאU > ==و!=و < وhH7\אم!א'אع א$+אQ :אKPTelse if C# if (x > 90) { Console.WriteLine(";)"ز ﻛﻮد } else if (x >=50) { Console.WriteLine("%"); } else { Console.WriteLine("GאH"); } 90 VB If x > 90 Then Console.WriteLine(")"ز ﻛﻮد ElseIf x >= 50 Then Console.WriteLine("%") Else Console.WriteLine("GאH") End If אhqQ$7(مאNא.^طאTאWONQ9( وTrue) 2N'ن אUאوFא1Q :אFאK^3ًMQא1'وRRbgM7 tوא ﻣﻼﺣﻈﺔ :אKPTNو,P'م7نCCאل0tאhqאh jD03'د$.N C# if (string.lenght) ﻛﻮد ...$XH, א03ًLb$Q_(مNאאWSTrue=طTא7dنCF.:'ن5P> دﻣﺞ اﻟﺸﺮوط .6.2 g' U طT אWON Q r وطT אY 23$ And وC && אم$+ א5P> ط, 53 ^ אKF 'نU`1!||אKPTXH,U:QW وאOr K33אم$+ אوאTrue ً B G@N9 (O)م$DUc!!אKPTGPQW وאNot K3\א،ًRRbgN3 $אوא :ً ^3אKPTوطTאKIא$9nh9LאlWSU'אس.9א C# if ((x < 90 || x>50) && (!name="ahmed")); ﻛﻮد VB If (x < 90 Or x > 50) And (Not name = "ahmed") Then End If ﻛﻮد 91 AndAlso .3.6 :א2Nولא$%k'نPQو،YTאHIאQאنAndK3\אUوnet.hU'دN 2Nא 2KI$3 1KI$3 True False False False True True False False True False True False DدאC$%'Q9و،JI'نPi,3F !¦نאfalseאولf1'نאU:]ªRوא .AndK3\א:OQ93אWSo 5Pو،طTא53^אzא537R .±I 'دא%وUi,3False$Q'g!،o'عs'\!AndAlso035P :'دאPضאZON،i$Q$,ذ؟53$Oذא3 C# if (id > 0 & SearchForID(id)>0) { // do something } ﻛﻮد VB If id > 0 And SearchForID(id)>0 Then ' do something End If ﻛﻮد \אUًא$%$Q$,za2NQ3'SوRא3אWON!،OVא53qbאId'نאلnو0.א'אU :אKPTQ$7א7Q1gDGqאQ،:ج9 C# if (id > 0) { if (SearchForID(id) > 0) { // do something } } ﻛﻮد 92 VB If id > 0 If SearchForID(id)>0 Then ' do something End If End If ﻛﻮد :AndAlso7Q1و C# if (id > 0 && SearchForID(id) > 0) { //do something ﻛﻮد } VB If id > 0 AndAlso SearchForID(id)>0 Then 'do something End If ﻛﻮد OrAlso .6.4 :א2jNولא$%:WوאORK3\א033אHPQ،And03لL'אSF 2Nא 2KI$3 1KI$3 True True True False True True False False True False True False DدאC$%'Q9و،RRb'نPi,3F!¦نאTrueאولf1'نאU:¦ªRوא .OrK3\א:OQ93אWSo 5Pو،طTא53^אzא537R سH$אUلL'אSFh I$3i$D537RאzNDOPQ9W وאOrAlsoK3\אنאWSK%א53 .AndAlso03ًMQאא 93 Switch Case اﺳﺘﺨﺪام ال .6.5 :אKPT Switch Case אم$+אSTאKF`AIא7Q C# switch (x) { case 90: Console.WriteLine(";)"ز ﻛﻮد break; case 50: Console.WriteLine("%"); break; } VB Select Case x Case 90 Console.WriteLine(" )"ز ﻛﻮد Case 50 Console.WriteLine("%") End Select وطT א. HI אUHאF9 א53Q3'P א0N> אن ذG א، طTאI אU break !s@ אN 9 oM !gN3א703 nوطTאKnDlHو3UGNذא3א،ط,אولnD^Q3$ND .M\אlWkض5`'אلOאU،break 94 :اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ .7 :`DnDسH$אאWSUHאPق אvTN،hא3i$D3אوא1HאPQHאPאh7Lمא$+ For - Next Loop .7.1 :'دאPאgD^ل3aא،g!i'1אHא$73وQgNوאQא$א17$Q$ QHאP7 C# for (int i = 0; i < 10; i++) { Console.WriteLine(i); } ﻛﻮد VB For i As Integer = 0 To 9 ﻛﻮد Console.WriteLine(i) Next - :ً ^3%مאو.H9אD1 - אKPTً ^32=O7אHא$73KFD5P> C# for (int i = 0; i < 10; i+=2) { Console.WriteLine(i); } ﻛﻮد VB For i As Integer = 0 To 9 Step 2 Console.WriteLine(i) Next ﻛﻮد 95 While Loop .7.2 :10.Hאد$'لאbوnً ^3ضZON،Y3 ط,7nKFאUFHאP7 C# int x = 0; while (x < 10) { Console.WriteLine(x); X++; } ﻛﻮد VB Dim x As Integer = 0 While x < 10 ﻛﻮد Console.WriteLine(x) X+=1 End While 0MوQא$אU Do oMf'L אlWSU، exit لI אدnhلIאد،F.H AIא .QgNאUWhile C# string inp; do { inp = Console.ReadLine(); Console.WriteLine(inp); } while(inp!="exit"); ﻛﻮد VB Dim inp As String Do inp = Console.ReadLine() Console.WriteLine(inp) Loop While inp <> "exit" ﻛﻮد 96 For Each Loop .7.3 :ً ^3N3!'OV3bNDKnDאنHو$ً ^3 ،Y3z,(K)nDאنHو$ C# int[] arr = { 10, 20, 30, 40 }; foreach (int i in arr) Console.WriteLine(i); ﻛﻮد VB Dim arr As Integer() = {10, 20, 30, 40} For Each i As Integer In arr Console.WriteLine(i) ﻛﻮد Next 97 اﻟﺒﺎب 7 ﻣﻜﻮﻧﺎت اﻟﻠﻐﺔ اﻻﺳﺎﺳﻴﺔ – اﻟﺠﺰء اﻟﺜﺎﻧﻲ 98 99 ﻟﻨﻔﻬﻢ ﺑﺮﻧﺎﻣﺠﻨﺎ اﻷول .1 :אKPTنW وאHello World B D1אولNN(9' C# using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { Console.Write("Hello World"); Console.ReadKey(); } } } ﻛﻮد :אKPTنP!!`'אلU3C VB Module Module1 Sub Main() Console.Write("Hello World") Console.ReadKey() End Sub End Module ﻛﻮد . using אم$+א'אدPg3$+N tאhP\'א אدאSC#Ul$`N3אول Class J! 'S Module אل، i,3 :I א'אد دאP F. Module oQ ! `'אلO אU 3C 'ع53DوT3'نU'Q`'אل'دOאS]TNQ Shared-StaticSgJ!0BنCא$D3QدD .VB K : 0s' W א9' אS وN4 אصname space אلoQ 'S C# 'دU ^ אzא Nj4¨د3אUNFF ... MainNQ$9 אClass אل53و،234אh'P3 100 Main nF\ אClass אلUjאא$א، Classes אل53^אوא$وא53'نPQ23 C!¦ن:%'א .234אUz,אولSWONQt وאmain א$אS !'OV3:qT03K7Q234אאنאWSnN3، args א3א53D'F Main א$אK7 Command nFQ3'Sو،k I53234א$Q3KلHא5P> ، args[n] args[0] 53 .Line Parameters SQe5P>tאh אq\א53D'FS Command Line Args אل،vTאUH35D$9P :א39אPNF.'ً ^3،ط7NאUPR :qT.و234 ﻛﻮد Explorer http://www.vb4arab.com KPT:RO'م7QZא0.'3ذא ن،:HF\* אNאizא7'م7Q، Expolorer 23!Q3אول U234@אOgא03hא$¡אOV3O'م7! C:/ً ^3 H3'ن3א،Z9אOV\'دg\א .QgNא : For Loop Q5D:iF\אh אq\ אizא. لI53nD{ذ01 C# ﻛﻮد for (int i = 0; i < args.Length; i++) Console.WriteLine(args[i]); VB For i As Integer = 0 To args.Length - 1 Console.WriteLine(args(i)) Next ﻛﻮد UGtאhאZ3Hא53!و353 وH3P.، Run XSW.אن : RunUא39ز אg%U،SQe ﻛﻮد C:\Users\Ahmed\Documents\Visual Studio 2008\Projects\ConsoleApplication4\ConsoleApplication4\bin\Debug\consoleapplication4. exe ahmed ali 101 :אKPTنg&Wא2Nא א$DF!و،قHز9 مPאOI5Q'Qً ^3 0'د%وU אولوq\אizא7'م7N،0Q1 :W'دאصP'אSאWS،" مPאOI5Q' Qذ C# if (args[0] == "0") { Console.BackgroundColor = ConsoleColor.Blue; Console.WriteLine("0 enterd"); } else { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("Empty"); } Console.ReadKey(); ﻛﻮد VB If args(0) = "0" Then Console.BackgroundColor = ConsoleColor.Blue ﻛﻮد Console.WriteLine("0 enterd") Else Console.BackgroundColor = ConsoleColor.Red Console.WriteLine("Empty") End If Console.ReadKey() 53 $] %r 5 ذن، ]1I H g( .. h אq3 אQF 7 _ ' ذא3 ، PT3 NS Ng%'א 53$] !א¤NSذאن،h אq3'د%و53$]אQ5DW'م7N،gzא.K. س3H 'د%و :^`]'نאYTא53אKIذאא،Obg' 102 C# if (args.Length > 0) { if (args[0] == "0") { Console.BackgroundColor = ConsoleColor.Blue; Console.WriteLine("0 enterd"); } } else { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("Empty"); } Console.ReadKey(); ﻛﻮد VB If args.Length > 0 Then ﻛﻮد If args(0) = "0" Then Console.BackgroundColor = ConsoleColor.Blue Console.WriteLine("0 enterd") End If Else Console.BackgroundColor = ConsoleColor.Red Console.WriteLine("Empty") End If Console.ReadKey() אKPT$وא1U$]אK< אنNذא'א3،IK¤NS C# if (args.Length >0 && args[0] == "0") ﻛﻮد VB If args.Length > 0 AndAlso args(0) = "0" Then ﻛﻮد 103 i,3ج:¦!S$®_طא^ وذאTK7NS$%ذאو،سZ3H'د%و53$] :אcQאWS ...^طאTאizא.دون W אAndAlsoאم$+9 1MK، VB.net U:715P>5 And K3\אنאWQ$א .7وسHدU:, Function اﻟﺪوال .2 'S:ج3K،h אq\א53د$D]وאل$א53د$DאzTאNNP>، Main دאU$S,F FدאFVN^ ًא3 ضZON،gN3جHא2NًאMQوא،א$KVאنk $Qtאh א3H! א3 :אKPTא$'ن אP، int 2 و§جint YF.HK7،0Fא C# static int sum(int number1, int number2) { int total = number1 + number2; return total; } ﻛﻮد ﻛﻮد VB Private Function sum(ByVal number1 As Integer, ByVal number2 As Integer) As Integer Dim total As Integer = number1 + number2 Return total End Function :ً ^3אKPT gjD$ אMain لI53ولRN،53و C# int result = sum(5, 8); Console.Write(result); Console.ReadKey(); ﻛﻮد VB Dim result As Integer = sum(5, 8) Console.Write(result) Console.ReadKey() ﻛﻮد 104 ؟؟XH,אU Static gאnD sum oQ\ذא static 'ع53S Main و}אندא، static لدאI53 Static دאzD$א5P>9:אGא nDfN،ًMQ אstatic S main لאلI53gjD$ אQAI'نאدאאPאن53$ ! .ً79 !s9אKbOא mehtods اﻟﻄﺮق .3 :אKPTHضD دאK^3،2$9tאא$אSق1א C# void printmsg(string msg) { Console.WriteLine(msg); } ﻛﻮد אKPT 'نP VB.net 03ًMQאF\'אSو، Sub 7Q1אoQQن،6 `'אلOאU VB Private Sub printmsg(ByVal msg As String) Console.WriteLine(msg) End Sub ﻛﻮد Out اﻟﻮﻇﻴﻔﺔ .4 دא53`iدDدאHذא'א3، return لI53`Nعא%H'م7N¦! א\^لאUNFF :אKPT Out א$אمא$+ذQ،void C# static void sum(int number1, int number2, out int total) { total = number1 + number2; } ﻛﻮد 105 ﻛﻮد VB Private Shared Sub sum(ByVal number1 As Integer, ByVal number2 As Integer, ByRef total As Integer) total = number1 + number2 End Sub iH'V 3 KF P 5P و، C# 'د אلP RRV אBZ אS `'אلO b א7א א$א Ydn 'دPאאWS53zא$אgNDzNq9'م7NאW، Shared5DcqنC$9 MoudleURRb .g$j!وSN3v,$D'3 :ً MQ`אNضא: جW אq\אQeQא$אzD$א$NDو C# int result; sum(5, 8,out result); Console.Write(result); Console.ReadKey(); ﻛﻮد VB Dim result As Integer sum(5, 8, result) Console.Write(result) Console.ReadKey() ﻛﻮد ؟return אم$+א53ً9$ 7Q1אlWSאم$+9c!$Q$.WאG'אS35Pو K 33!@א،F7وא0FوאXMא2K^3`53^אiدDאhدH'אcאS، a9א%9א . out אم$+'Sa9אKLא،¤NSgzא.مو.H9!'OV3iدDאA' 106 byval واﻻرﺳﺎل ﺑﺎﻟﻘﻴﻤﺔbyref اﻻرﺳﺎل ﺑﺎﻟﻤﺮﺟﻊ .5 :אKPTv1אFضא\^لאصZON C# int x=5; int y=10; sub(x,y); ﻛﻮد VB Dim x As Integer = 5 Dim y As Integer = 10 sub(x, y) ﻛﻮد א$وא C# ﻛﻮد static void sub(int number1, int number2) { number1 = number1 - number2; return number1; } VB Private Sub [sub](ByVal number1 As Integer, ByVal number2 As Integer) number1 = number1 - number2 Return number1 End Sub ﻛﻮد ، S%א،SNHאt אx F.53אWS qKS5Pو، number1F. q NF.7אא$אU . X F.א و$ אx F.لHLאlWSU'م7F7لאHfQ3אWS ،א$אiאWאU X q\'אنאNDلHאQLאlWSU،^ אLאS ByRef 0%\لH9א . x q\אnDiHوMp number1U qאنאcQ 3אWS :'دאPאGP ByRef 7Q1'دאPאP 107 C# static void sub(ref int number1, ref int number2) { int result = number1 - number2; return result; } ﻛﻮد VB Private Sub [sub](ByRef number1 As Integer, ByRef number2 As Integer) Dim result As Integer = number1 - number2 Return result End Sub ﻛﻮد :3K3 !אClass K^3\ אh אq\א3א،1אh אq\א03a7!:715P>F7لH9א ...ً sאZ!אByRef Arrays اﻟﻤﺼﻔﻮﻓﺎت .6 Arrays ﻣﺎ ﻫﻲ اﻟﻤﺼﻔﻮﻓﺎت .6.1 GPbND 5 k' م.H9 א53 Array oQ ، 'عN@ אO 53 h א53 5D iHD S !'OV\א :'دאPא C# int [] intarray = new int[5]; ﻛﻮد VB Dim intarray As Integer() = New Integer(4) ﻛﻮد : אK^3'دGP!'OV\אbND$אizא7،4nوOVא53h!'OV\אU.Z אC$Q C# Console.WriteLine(intarray[3]); ﻛﻮد 108 VB Console.WriteLine(intarray(3)) ﻛﻮد :אKPTHאPאh7אم$+א5P> bNא0Bizא7و C# for (int i=0;i<5;i++) Console.WriteLine(intarray[i]); ﻛﻮد VB For i As Integer = 0 To 4 Console.WriteLine(intarray(i)) Next ﻛﻮد :ﺗﻜﻮﻳﻦ اﻟﻤﺼﻔﻮﻓﺎت .6.2 :ً ^3אKPT!'OV\ אhلאIد9Kg9א7Q1א C# array[0]=15; array[1]=20; array[2]=13; ﻛﻮد VB array(0) = 15 array(1) = 20 array(2) = 13 ﻛﻮد :ً ^3אKPT!'OV\אhلאIد9AIC7Q¤NS אن9،ًMQאHאP7Q5DوC C# int[] intarray = new int[] { 15, 20, 13 }; ﻛﻮد VB Dim intarray As Integer() = New Integer() {15, 20, 13} ﻛﻮد 109 اﻟﻤﺼﻔﻮﻓﺎت ﻣﺘﻌﺪدة اﻻﺑﻌﺎد .6.3 h!'OV\א53AIא'אعא¤NS، one dimensional $אQ אدh!'OV3S7אh!'OV\א0B : Matrix - nF−د9אjN!'OV3nD^ل3אWS، Multi dimensional د9 אiد$3אوjN C# int matrix = new int[3,3]; ﻛﻮد VB Dim matrix As Integer = New Integer(2, 2) ﻛﻮد :(sאZ!א)אKPT!'OV\אKP,'نP 000 000 0 0 0 :אKPT!'OV\א53 17hلאIאد5P>و C# matrix[1,2]=20; ﻛﻮد VB matrix(1, 2) = 20 ﻛﻮد :ً ^3 אKPTم$+\אQ5D5Pو،hلאIد9HאP7KFD5P> C# int matrix = new int[3, 3]; for(int i=0;i<3;i++) for(int j=0;j<3;j++) matrix[i,j]=Console.ReadLine(); ﻛﻮد 110 VB Dim matrix As Integer = New Integer(2, 2) {} For i As Integer = 0 To 2 For j As Integer = 0 To 2 matrix(i, j) = Console.ReadLine() Next Next ﻛﻮد .ً MQאKPT@אOND1وא ﻋﻤﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻤﺼﻔﻮﻓﺎت :אKPT!'OV3 nDgN3VNDK'd!'OV3KFD5P> C# int[][] complexarray = new int[5][]; ﻛﻮد VB Dim complexarray As Integer()() = New Integer(4)() ﻛﻮد :ً ^3'دאPאQ5Dg!VND'لb'א5P>و C# Console.WriteLine(complexarray[1][4]); ﻛﻮد VB Console.WriteLine(complexarray(1)(4)) ﻛﻮد . complexarray!'OV\א5Fsi'د%'\'!אوאOV\א534.HVN אcQ3אWSو 111 ارﺳﺎل واﺳﺘﻘﺒﺎل اﻟﻤﺼﻔﻮﻓﺎت ﻣﻦ وإﻟﻰ اﻟﺪوال .6.5 :אKPT!'OV3hQ')D1دאKFDNP> C# static void print(int[] arr) { for (int i = 0; i < arr.Length; i++) Console.WriteLine(arr[i]); } ﻛﻮد VB Private Sub print(ByVal arr As Integer()) For i As Integer = 0 To arr.Length - 1 Console.WriteLine(arr(i)) Next End Sub ﻛﻮد .'!אOV\אnDpא$אUKQ$CאW،ًsאZ! אbyref g3K3אQ:ًאnN9 :אKPT'دPאGP، return א$ א53:دD'دא3S array 'نאلU C# static int [] read() { int []arr=new int[3]; for (int i=0;i<3;i++) arr[i]=Console.Read(); return arr; } ﻛﻮد VB Private Function read() As Integer() Dim arr As Integer() = New Integer(2) {} For i As Integer = 0 To 2 arr(i) = Console.Read() Next Return arr End Function ﻛﻮد 112 ﺧﺼﺎﺋﺺ اﻟﻤﺼﻔﻮﻓﺎت اﻟﺮﺋﻴﺴﻴﺔ .6.6 :ً3א$+אS^وאSg,א،gDKFאU¤$D $.*ودوאلjVInDh!'OV\'א אم$+9א bא !'OV\אbNDد 'ل$ Length !'OV\אbNDGZ'م7 Sort !'OV\אbNDG@P'م7 Reverse V q3!'OV\אKQ'R ToString !'OV\אUد9دא$Dد$ Rank Enumeration اﻟـ .7 234אKIدאO. وh9K^ebNא53D'FnD' enumerations - ~HVIאEnum hאH א53א'אعE NQ$ضZON،hאHאh Q\'دUg3א$+'אS Enum אلnD^ل3aא N¦!،ً ^3hאi$D.U2 و1،0.KP,nDgNQ+'م7N'، FIAT ًאIوאNissan ،Toyota ، ً 79 :B W وאgل אI אد:NP> K ، iH K .H لI אدnD 234\א4< אن$Q 9 .:&N\א.א C# enum cars { toyota=0, nissan=1, fiat=2 } ﻛﻮد VB Enum cars toyota = 0 ﻛﻮد 113 nissan = 1 fiat = 2 End Enum 'عN א$Q$5P>،ًMQא\אHVI9 enum אلVNDg!5Q§Qt א\א$Q$ًMQאNNP> :אKPTذnD^لFbyte C# enum cars:byte { toyota=0, nissan=1, fiat=2 } ﻛﻮد VB Enum cars As Byte toyota = 0 nissan = 1 fiat = 2 End Enum ﻛﻮد ، אم$+9' אg N KOPQ } 'ز3و אC م.H9 א53 ً9$ 4 אU i$Q$ אz9אم א$+ אNNP> אن .iHאאnDzNiHدאضא$QN^ ً א3ضZON C# static void printPrice(cars mycar) { if (mycar == cars.fiat) Console.WriteLine("20,000"); else if (mycar==cars.nissan) Console.WriteLine("30,000"); else Console.WriteLine("40,000"); } ﻛﻮد VB Private Sub printPrice(ByVal mycar As cars) If mycar = cars.fiat Then ﻛﻮد 114 Console.WriteLine("20,000") ElseIf mycar = cars.nissan Then Console.WriteLine("30,000") Else Console.WriteLine("40,000") End If End Sub . byte 'ع53S+\אOא7אن אHRsوאzمא$+Nא$<אWPS K^3h Kא0.א'אU،وز$NQ'b אAPI دوאلS enum Ki$jO:§NP> 3sאو ً9$3 q\9$ Local K^3Rsא'אzאKO${0.א'אU5P،وאل$ A127X 00 . 'ز3אBZ'س3. 'د%دونوgFg!DGVtوאi$7\'زא3א53 Structure اﻟﺘﺮاﻛﻴﺐ .8 nD *jVI אK" 01 SzT אNP> h א53 VV א'אعS Structs אوStructure ~א 0NVאKQ'د3$<iHKP،iH^لא3'S Struct nD^ل3aא،:! Iدوאلوnאوh אq3KP, :ً ^3אKPT Struct אلNNP>،ً ^3 'א.HوH\وאא C# struct Car { public int carNumber; public int year; public string factory; }; ﻛﻮد VB Structure Car Public carNumber As Integer Public year As Integer Public factory As String End Structure ﻛﻮد 115 :אKPTgVjVIY'م7N¦!iH53+oQ$Q3$NDوאن C# Car ahmedcar = new Car(); ahmedcar.carNumber = 1000; ahmedcar.factory = "Nissan"; ahmedcar.year = 2007; ﻛﻮد VB Dim ahmedcar As New Car() ahmedcar.carNumber = 1000 ahmedcar.factory = "Nissan" ahmedcar.year = 2007 ﻛﻮد nD'd אVI StructNsZ!'א، Struct lHو$I'אS VNDnD Struct 'אلdאن5P> :אKPT'نذP!،ً ^3VIאzg97\אh'אNم وא$+\אא C# struct Licence { public string UserName; public int yearsToFinish; } ﻛﻮد VB Structure Licence Public UserName As String Public yearsToFinish As Integer End Structure ﻛﻮد :אKPT!ذ،iH*אjVI53 z% אVIHK<دאنHوאن'א C# struct Car { public int carNumber; public int year; public string factory; public Licence carLicence; }; ﻛﻮد 116 VB Structure Car Public carNumber As Integer Public year As Integer Public factory As String Public carLicence As Licence End Structure ﻛﻮد :אKPT 'دGPNiH*אjVI$Q$Rو C# Car ahmedcar = new Car(); ahmedcar.carNumber = 1000; ahmedcar.factory = "Nissan"; ahmedcar.year = 2007; ahmedcar.carLicence.UserName = "Ahmed Gamal"; ahmedcar.carLicence.yearsToFinish = 3; ﻛﻮد VB Dim ahmedcar As New Car() ahmedcar.carNumber = 1000 ahmedcar.factory = "Nissan" ahmedcar.year = 2007 ahmedcar.carLicence.UserName = "Ahmed Gamal" ahmedcar.carLicence.yearsToFinish = 3 Struct اﻧﺸﺎء اﻟﺪوال داﺧﻞ ال ﻛﻮد .6.1 'ذnD^ل3 aא، Struct אאلWSnDhF'مא7 دאzT אStruct אKIدאUNNP> :אKPT Struct אلLאlWSU5P>، אVIH$Q$` renew دאKFDدHא C# struct Licence { public string UserName; public int yearsToFinish; public void renew(int periode) ﻛﻮد 117 { yearsToFinish += periode; } } VB Structure Licence Public UserName As String Public yearsToFinish As Integer Public Sub renew(ByVal periode As Integer) yearsToFinish += periode End Sub End Structure ﻛﻮد .i,3א$אlWS'لb'אQ 5DVIאiZ!$Q${NNP>אWPSو لIאد0N\ دאوذQ5D9i,3bN'لאb'FQ9iאدUO אh71אU Q Struct אل53 + zT א$^ ً و3 Struct אلzT9 Create دאKFD 5P> . ً ^3 'q3 h .h אq\א.Q¯ FQ5hא±\א$אlWSzD$א Qe Struct אل53 + zT א. وNP> ، $T\ אو אConstructor אم$+ I K ¤NS :אKPT$T\אQ،'1\ אhא C# struct Car { private int carNumber; private int year; private string factory; private Licence carLicence; public Car(int p_carNumber, int p_year, string p_factory,Licence p_carLicence) { carNumber = p_carNumber; factory = p_factory; year = p_year; carLicence = p_carLicence; } }; ﻛﻮد 118 ﻛﻮد VB Structure Car Private carNumber As Integer Private year As Integer Private factory As String Private carLicence As Licence Public Sub New(ByVal p_carNumber As Integer, ByVal p_year As Integer, ByVal p_factory As String, ByVal p_carLicence As Licence) carNumber = p_carNumber factory = p_factory year = p_year carLicence = p_carLicence End Sub End Structure h!3، Struct جאلHI:'لb'א5P>9r private 'نP h אq\'لאb'אN'Nאª9 public אنאنOPQ5PوK`9אW OOP _אلDUKI$FNNs'א3 $'نאP'لb'א אلKIدא539 k'لb'א5P> ! private 3א،א$ אوאq\نאP3א53'لb'א. K{ .Struct Reference واﻷﻧﻮاعValue اﻷﻧﻮع .9 nN3، Value Type 537T3h(א'אع א3אن$`N،h אq\سא'אعאHدAICi3$D' :אKPTً9^3NsZ!!'א،:OK^>gN3 q3 K אنValue Type 537T3א'אعlWSאن C# int x=5; int y=x; y=18; Console.WriteLine(x); Console.WriteLine(y); ﻛﻮد VB Dim x As Integer = 5 Dim y As Integer = x y = 18 Console.WriteLine(x) Console.WriteLine(y) ﻛﻮد 119 g! y=x BUNאGא،Qא$ אUgNNQوNא،:bIF.: y وx 53ً אن$`N . x F.nDKVd y q3]TNQאنQ3'Pא ...ً MQ אstruct אلnD ،9אh אq\אnD1NQ(مNאאWS@O אKPTiH^لא3ضZON،א\^لgD1NQ9 Class אلK^3 Refernce Types 'ع53א'אع C# class car { int carNumber; string carName; } ﻛﻮد VB Class car Private carNumber As Integer ﻛﻮد Private carName As String End Class :אKPT'نא\^لP، ints אل03 @א\^لאOGPNوאن C# Car x = new Car(); ﻛﻮد x.carNumber=1; Car y=x; Console.WriteLine (x==y); VB Dim x As New Car() x.carNumber = 1 Dim y As Car = x Console.WriteLine(x = y) ﻛﻮد 120 y وx q\ذאنא، ]1]! gDKQ$אNP> car 53+nD'd y q\אنא5(N' 53ذ53$]אNP>،I³KQ$UGFS$ אUKQ$]!و، q\@אON ونTQ :אK^3 ل'دI C# Car x = newCar(); Car y = x; x.carNumber=1; y.carNumber =2; Console.WriteLine (x.carNumber); Console.ReadKey(); ﻛﻮد VB Dim x As Car = newCar() Dim y As Car = x x.carNumber = 1 y.carNumber = 2 Console.WriteLine(x.carNumber) Console.ReadKey() ﻛﻮد אل1Q Car Class K´ . ، Clone 1 53 $ 9 Car nF\ אClass אل53 77 + KF . CloneدאאلP.وCloneaple Interface اﻟﻤﻘﺎرﻧﺎت .10 ، H7F C# U ==K3\وאC = K3\ אY4\ אGم א$+Q ، Qא$ א17N AIC i3 $N :^ذ3אaא C# if (x==y) { ﻛﻮد } VB if x=y Then End if ﻛﻮد 121 NS و$V7و،مאو$DU False 'نPF!אوU True V[ אF7'نאP .1'אعא9אnDa7!1NQ אWS5Pو، "Ahmed"="Ahmed" وC7=7אو5=5:ً ^3K3Pאوא ﻣﻼﺣﻈﺔ ... وغيرھاInt , Long , String األنواع البسيطة ھي االنوع مثل : ً MQא\^لאא03N,Kb'אN C# string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' }); string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' }); Console.WriteLine(a == b); ﻛﻮد VB Dim a As New String(New Char() {"h"C, "e"C, "l"C, "l"C, "o"C}) Dim b As New String(New Char() {"h"C, "e"C, "l"C, "l"C, "o"C}) Console.WriteLine(a = b) ﻛﻮد :א1 'دPאNFذא'א35Pو،ًMQ אTrue `NאK(LאlWSU C# object c = a; object d = b; Console.WriteLine (c==d); ﻛﻮد VB Dim c As Object = a Dim d As Object = b Console.WriteLine(c = d) ﻛﻮد L אlWSUKLא، False 'نP2N نא−a7!XH,אU − o N&G+א1א : EqualsK3\אمא$+ C# Console.WriteLine (c.Equals(d)); ﻛﻮد VB Console.WriteLine(c.Equals(d)) ﻛﻮد 122 :ض א\^لאZON،ً ^3 Structs אلYH7F Equals K3FIאم$+א C# struct car { public int carNumber; }; ﻛﻮد VB struct car { public int carNumber; }; ﻛﻮد :אh אq\אoQ NF.'،وאن C# Car x = new Car(); x.carNumber=1; Car y=x; Console.WriteLine (x==y); ﻛﻮد VB Dim x As New Car() x.carNumber = 1 Dim y As Car = x Console.WriteLine(x = y) ﻛﻮد False nSo ؟؟؟True SD'1\'نאאPضאنZO\א،:.'Wא2N'אS3 .]1I1אWSن :א7Q1 Equals K3\אمא$+'SRVאKLא C# Console.WriteLine (x.Equals(y)); ﻛﻮد 123 VB Console.WriteLine(x.Equals(y)) ﻛﻮد :אKPTًMQאم==א$+א5P>، Classes oQU C# Console.WriteLine (Class1==Class2); ﻛﻮد VB Console.WriteLine(Class1 = Class2) ﻛﻮد ؟True ً Fjدא2N'نאPQ\ذאfKS،א\^لאUF Equals وC 2NאنאWiאWאUنP\@אON אنTQنNjPאنא4+ CS'عs'\אאWk71N\א%9א : אKPTTrue :ضא\^لאZON،RbאWSو C# Car x = new Car(); Car y = new Car(); x.carNumber=1; y.carNumber = 1; Console.WriteLine (x==y); Console.ReadKey(); ﻛﻮد 124 VB Dim x As New Car() Dim y As New Car() x.carNumber = 1 y.carNumber = 1 ﻛﻮد Console.WriteLine(x = y) Console.ReadKey() :אKPTدאPKL א،i$وאFkIא$*אjV אنאFalse ... S`N'نאP C# bool isthesame(Car c1,Car c2) { if (c1.carNumber==c2.carNumber) return true; return false; } ﻛﻮد VB Private Function isthesame(ByVal c1 As Car, ByVal c2 As Car) As Boolean If c1.carNumber = c2.carNumber Then Return True End If Return False End Function ﻛﻮد ؟q\א53i$Q$%+ KFDUGN'ذא35P :אKPT Clone C$3م$+LאlWSU C# Car doCopy(Car c1) { Car newCar = new Car(); newCar.carNumber=c1.carNumber; // // return newCar; } ﻛﻮد 125 VB Private Function doCopy(ByVal c1 As Car) As Car Dim newCar As New Car() newCar.carNumber = c1.carNumber ' ' Return newCar End Function ﻛﻮد g% א'א53 7T3 J! א، sאZ! אiH'V i'د%'3 Clone א$ א${ 9 אbN א53 ^ U F. وClass JO א4 'م7 53 אN ' ،i,3 אم$+ iS% א$ אlWS $`ICloneaple nD b אJO'ن אP r g4 'م7 i'د%'3 Clone א$ א$`! 7 אJO א53 g.7, . i,3k Clone KFD53JOم$+3א01Q،7 אQ\א Nullable Types .11 'dאن$9ً ^3 Boolean 'ع53 q\!، ً . 'א73 Null F7א$Q$7אh אq\אfDU U،אWPSو...ً ^3 32767وOVאY3م.HאnD'dאن$9 Short q\א، False وC True nD . reference 'ع53g null F7אXא01 String ً ^3VNא7 אY 5QHد. NאnN} ( Null− F.9)F. Boolean 71N3 q3KFdن1Mن9אUNNP 43Gא:%'אtאQ$7אPT\אS^ذ3אaא، False وC True ذאنF!$Q$nD م$+\ض אنאONو،(وج3)K75Pو3K7UF7م$+\لאIمאد$DUh א$D'א. مQن3'Sو، null F7 ªOdK7LאK(LאlWSU،:3$D53ً%و3*+Tد'نא$d_ .ً ^3 bool 'ع53 q3 אUgsوK. Null gאnD CheckKFD null F7אK7F*V q3oQنP39b א.net framework 53^ אiHא$b9א03و5P :א\^لאUF،:9א7!sא C# bool? ismarried = null; ﻛﻮد 126 VB Dim ismarried As System.Nullable(Of Boolean) = Nothing ﻛﻮد Null SLאF7'نא537دونאhאi$D.53i,3F.izא7 lدNאNNP>LאlWSU :MQאא7Q1 אK^3 Null K7Q q3oQAIقאi$D¤NS C# Nullable<bool> nullableBool = null; ﻛﻮد UlN3 nDfN3'Sو، System.Nullable<T> nF\ אgeneric KHVI!ًאS ? אن .XPא533د.zא%C :אKPT'نذP! Nullable k return 'نאلPQدאoQدH'אF! 7Q1@אONو C# public bool? functionName() { ﻛﻮد } VB Public Function functionName() As System.Nullable(Of Boolean) ﻛﻮد End Function Nullable ﺧﺼﺎﺋﺺ ال .11.1 ªOd : אم אF. : q\ ذא ن אF! د$ t وאHasValue bI S nullable * אلjVI Sא :אKPT Null F7 C# if (ismarried.HasValue) { ﻛﻮد } 127 VB If ismarried.HasValue Then ﻛﻮد End If :אKPT`'אلO אU <> وC=!ًMQאH7\אKjאمو$+g5P> C# if (ismarried!=null) ﻛﻮد VB if ismarried<>nothing then ﻛﻮد ﻣﻼﺣﻈﺔ في السي شاربnull خاصة بالفيجوال بيسك بدال ً منnothing ال تنس أن ” اﻟﻤﻌﺎﻣﻞ “؟؟ .11.2 ضZON، null XS'د%وU3F.0s'l4µP nullable אل7א03؟؟K3\אمא$+א5P> אنnN}XD*א+,'g!אوאجhلIد7Q_*+,ضאنאZONو،^لאوאج א3 :ذK%א53'دאPאP'م7N،i,3 False VF7א C# int? ismarried = returnvaluefromdatabase() ?? False; ﻛﻮد VB Dim ismarried As System.Nullable(Of Integer) = IIf(returnvaluefromdatabase() Is Nothing, [False], returnvaluefromdatabase()) ﻛﻮد 128 129 اﻟﺒﺎب 8 اﻟﻔﺌﺎت وﻣﻘﺪﻣﺔ إﻟﻰ اﻟﺒﺮﻣﺠﺔ ﻛﺎﺋﻨﻴﺔ اﻟﺘﻮﺟﻪ 130 131 Classes ﻣﻘﺪﻣﺔ إﻟﻰ اﻟﻔﺌﺎت .1 i$ وאJ! nD 'd Console Application ]TN\ א234 !¦ن א، 7 אNوH دU N(9 F N! 0. א'אU ... وقhאzא% وאh אq3 دوאل وnD gIא$ ' class Program lF3 . Class JO'אS OOP ¨د31Q239א HU،:Iא$hJ!i$DnDًMQאJOאن'א5P>و،hJ! i$DnD234'אdאن5P> . Project 53 New Class !sאNP>KVON3 Class KFD U وCXH,אU{}Y:'P3oQ Q،:א53 وClass iא[`'زFPאمא$+JOאoQQ ، Person gF وi$Q$% J! אجH'م د7N ، VB.net U End Classn oQ אB $ 53 :sאZ! אiH'Vً'دא%'3'دאPא$`N C# namespace ConsoleApplication4 { class Person { } } ﻛﻮد VB Namespace ConsoleApplication4 Class Person ﻛﻮد End Class End Namespace i'د%'\ אClasses hJO א0B א אنWS cQ ، Hوs namespace د אل$d W אول אzא لI53 i$Q$ אJOא03K3א535PFNאW،IאgM Q¯HgNP> namespace @אلO . Program lF\א9אJO אUNbאmain 132 JOאKIدאF وאIאولوא9אh!s^ ًא3NNP>،h אq\אS ClassJ!Ch'P3aא :אKPTClass C# class Person { public string FirstName; public string LastName; public int Age; } ﻛﻮد VB Class Person ﻛﻮد Public FirstName As String Public LastName As String Public Age As Integer End Class :ً ^3אKPTJO אlWS53 Objects hNji$DoQ5P>אن C# Person Ahmed = new Person(); Ahmed.Age = 15; Ahmed.FirstName = "Ahmed"; Ahmed.LastName = "Gamal"; Person Ali = new Person(); Ali.Age = 15; Ali.FirstName = "Ahmed"; Ali.LastName = "Gamal"; ﻛﻮد VB Dim Ahmed As New Person() Ahmed.Age = 15 Ahmed.FirstName = "Ahmed" Ahmed.LastName = "Gamal" Dim Ali As New Person() Ali.Age = 15 Ali.FirstName = "Ahmed" Ali.LastName = "Gamal" ﻛﻮد 133 :אKPT!'OV3 KP,nDgOQ5P>وC C# Person [] MyEmpolyee = new Person[3]; MyEmpolyee[0] = new Person(); MyEmpolyee[0].FirstName = "Ahmed"; MyEmpolyee[0].LastName = "Gamal"; MyEmpolyee[0].Age = 15; ﻛﻮد VB Dim MyEmpolyee As Person() = New Person(2) {} MyEmpolyee(0) = New Person() MyEmpolyee(0).FirstName = "Ahmed" MyEmpolyee(0).LastName = "Gamal" MyEmpolyee(0).Age = 15 ﻛﻮد N$دא4'م7N،ClassJOאKIوאلدא$אoQًMQאNP3 !¦ن، Struct אلUذF :אKPT'نP،Y3*+TK3P א9א C# ﻛﻮد public string getFullName() { return FirstName + LastName; } VB Public Function getFullName() As String Return FirstName + LastName End Function ﻛﻮد 134 Constructors اﻟﻤﺸﻴﺪات .1.1 tאא$אSو، Constructorאאل$אKqT'م7NאcQאWS !¦نnew Person() oQ'م73$ND t אg!3وא9 א0s وNNP> وI א$ אlWS'نP ً sאZ! א، 234 א53 + אKqT 03 KF :ClassJOא53i$Q$%+ zT4§Hً ^3ض،+zTא.وg% C# public Person() { Console.WriteLine("new object"); } ﻛﻮد VB Public Sub New() Console.WriteLine("new object") End Sub ﻛﻮد ﻣﻼﺣﻈﺔ اما في فيجوال بيسك فيتم تسمية الدالة، في السي شارب يتم عمل دالة بنفس اسم الفئة New باسم 03 אول9 אK7Q Constructor אلK ً ^F! ، hאZ3H Constructor אلK7Q ً אنMQ א5P> :אKPT'نذP!،$Q$אP´و9 אoQ C# ﻛﻮد public Person(string userfirstname) { FirstName = userfirstname; } VB Public Sub New(ByVal userfirstname As String) FirstName = userfirstname End Sub ﻛﻮد :'دאP אNDG%'i$Q$%+KFو 135 C# Person MyEmpolyee = new Person("ahmed"); ﻛﻮد VB Dim MyEmpolyee As New Person("ahmed") ﻛﻮد Destructor اﻟﻤﻬﺪﻣﺎت .1.2 ً ^3 Beep h'bHא$b9، Object אمאل$+אzgא03E$LאאWSא قQ، Constructor @אلPD :234אzgא03 C# ~Person() { Console.Beep(); } ﻛﻮد VB Protected Overrides Sub Finalize() End Sub ﻛﻮد 3 ج3ًא،ً3eObject5jP א3$K.hFאWONU Destructor אل53$O q :3א$+ א5P> ً MQ א، E$Lא אWk g,9אم א$+9' אS وiאW אU : 1\ אh אq\ א0B .N3 J!53¢Nא$'م7t^ ًوא3hאدא$א this .2 Wوא،i,3سאH$אU'د א\^لN،XH,אU this iא[`'زFP'مאgO3s' :אKPT Constructor KF:!NF. C# ﻛﻮد public Person(string userfirstname) { FirstName = userfirstname; } 136 VB Public Sub New(ByVal userfirstname As String) FirstName = userfirstname End Sub ﻛﻮد :ً ^3אKPT FirstName 'نPZ3H אאq 'م7NNאنאNsZ!'א C# public Person(string FirstName) { FirstName = FirstName; } ﻛﻮد VB Public Sub New(ByVal FirstName As String) FirstName = FirstName End Sub ﻛﻮد (NQ 5 و، :O وQ Z3H אFirstName K{ אQ3'P אgO o L אlWS U = P´و9 אU 'د%'\ אq\ אن א$V7 ¦ Q3'P אoQ . P´و9 א5Fs qF FirstName U 'د%'\ אq\ אT t وאVB.net U Me وC C# U this FPم א$+N K\ אZ3Hא :LאP´و9א C# public Person(string FirstName) { this.FirstName = FirstName; } ﻛﻮد VB Public Sub New(ByVal FirstName As String) Me.FirstName = FirstName End Sub ﻛﻮد a א، ً Fj دאGN3 'نP this אم$+ !¦ن א، س אH$ אU k N.1 t א7 אL אU n . thisg!GP t(אRאWN34א.وP´و9אUi'د%'\אbNFj.Hg&'אS ذXא 137 Static اﻟﺘﻌﺮف ﻋﻠﻰ .3 S&N\!s אC# אلU static FPم א$+Nא234אUًאi'د%'\ אmain א$אUN(9 ؟FPאlWSnN3F!، VB.net אلUShared Qא$ אوאq\אאWSאنch אq\אnאوhJOوאل אوא$א03g3א$+א5P>t وאstatic FPא Xضא\^لאאصZON، object אلA'353@وi,3 Class אلA'3 nD53k'لb'א :Person C# class Person { public string FirstName; public string LastName; public int Age; static public int counter; } ﻛﻮد VB Class Person Public FirstName As String Public LastName As String Public Age As Integer Public Shared counter As Integer End Class ﻛﻮد :ً ^3'دאPאN NضאZONو C# Person MyEmpolyee = new Person(); MyEmpolyee.Age = 15; MyEmpolyee.counter = 3; ﻛﻮد VB Dim MyEmpolyee As New Person() MyEmpolyee.Age = 15 MyEmpolyee.counter = 3 ﻛﻮد 138 A'3nDi,3:zא.אW وstatic q3'S counter אن،ًRRb 'دPאאWS'نPQ5o :אKPT ClassJOא C# Person MyEmpolyee = new Person(); MyEmpolyee.Age = 15; Person.counter = 3; ﻛﻮد VB Dim MyEmpolyee As New Person() MyEmpolyee.Age = 15; Person.counter = 3; ﻛﻮد ClassJOאKIدא53:b אcounterאلF.ضNF.و،JO@ אO53$Q$% Object oQNF.' 0F Class JO אA'3 nD :N3 i$ وא+ oQ Q static q\ ذ אن א، i,3 3 g א$`N .:N3gFDQtאobjecthNjPא אWS53S]TNt@אP´و9א$'م7tوא،hאدא$אbISbאlWS53 iدO9אnD^ل3 : Destructor UنV7N'دא0MF! ConstructorאلU!s9'دאPא0MN،ClassJOא C# class Person { public string FirstName; public string LastName; public int Age; static public int counter; public string getFullName() { return FirstName + LastName; } public Person() { counter++; } ~Person() { counter--; } } ﻛﻮد 139 VB Class Person Public FirstName As String Public LastName As String Public Age As Integer ﻛﻮد Public Shared counter As Integer Public Function getFullName() As String Return FirstName + LastName End Function Public Sub New() counter += 1 End Sub Protected Overrides Sub Finalize() Try counter -= 1 Finally MyBase.Finalize() End Try End Sub End Class :אد$אF.'مض753و،hNjPא53د$DzT 'م7Nوאن C# Person MyEmpolyee = new Person(); Person MyEmpolyee2 = new Person(); Person MyEmpolyee3 = new Person(); Person MyEmpolyee4 = new Person(); Person MyEmpolyee5 = new Person(); Console.WriteLine(Person.counter); ﻛﻮد VB Dim MyEmpolyee As New Person() Dim MyEmpolyee2 As New Person() Dim MyEmpolyee3 As New Person() ﻛﻮد 140 Dim MyEmpolyee4 As New Person() Dim MyEmpolyee5 As New Person() Console.WriteLine(Person.counter) :'دאPאNsZ!وאن'א C# Person [] MyEmpolyee = new Person[5]; Console.WriteLine(Person.counter); ﻛﻮد VB Dim MyEmpolyee As Person() = New Person(4) {} Console.WriteLine(Person.counter) ﻛﻮد Q_ MyEmpolyee ¢53ًQאن אGوא،:)U@.'o ، 5'نP2Nאنא0.'9 :52Nא153SאLא،$lzTא C# Person [] MyEmpolyee = new Person[5]; for (int i = 0; i < 5; i++) MyEmpolyee[0] = new Person(); Console.WriteLine(Person.counter); ﻛﻮد VB Dim MyEmpolyee As Person() = New Person(4) {} For i As Integer = 0 To 4 MyEmpolyee(0) = New Person() Next Console.WriteLine(Person.counter) ﻛﻮد Static Class .3.1 $9 Static Class Cل!¦نLא1و، Static Class אلC$3دFD א.net framewrok 2.0 WN3 object oQ71N\א53@:¦!ذosא، static 'ع53:!وאل$ وאh אq\א0B'نPאن . New אم$+ClassJOא אWS53 141 MessageBox S ClassאאلWS^3אaא،i,3 ودوאClassJOאم א$+א5P>LאlWSU .gN3+oQدونi,3g3א$+ א5P>tوא C# MessageBox.Show(“Welcome”); ﻛﻮد VB MessageBox.Show(“Welcome”) ﻛﻮد OverLoading اﻋﺎدة اﻟﺘﺤﻤﻴﻞ .4 @ONقאودوאلi$DF 5P>، Overloading ¨אل$31S OOP د¨אل3Sא53 .سZ3HאU q¤NSدאم39א : Windows Forms אلU MessageBox.Show() دאS Overloading אلhFDnD^ل3aא :ً ^33אوאlWS $`%' ﻛﻮد MessageBox.Show(string text) MessageBox.Show(string text,string caption) MessageBox.Show(string text, string caption, MessageBoxButtons buttons) C$35PQ_'H'VN،9@אOًB kوbIدא5DiHDgN3i$وאK،3אوא75FsًMQאS و :אKPT دوאلP1MNN،ً'دא%'3Overloading ﻛﻮد MessageBox.ShowWithString(string text) MessageBox.ShowStringAndCaption(string text,string caption) MessageBox.ShowStringAndCaptionAndButtons(string text, string caption, MessageBoxButtons buttons) . אم$+9'אg GQ3אWSو،9@אONًBS${אم$+9אKgאنو3C 142 אYUً ^30FאF−אKPT'دNP> دوאU OverLoading אلC$31 : double - 'ع53 אوint 'ع53.ClassJOאUH> KSH$9 C# static int Add(int x, int y) { return x + y; } static double Add(double x, double y) { return x + y; } static long Add(long x, long y) { return x + y; } ﻛﻮد VB Private Shared Function Add(ByVal x As Integer, ByVal y As Integer) As Integer Return x + y End Function Private Shared Function Add(ByVal x As Double, ByVal y As Double) As Double Return x + y End Function Private Shared Function Add(ByVal x As Long, ByVal y As Long) As Long Return x + y End Function ﻛﻮد '،م$+\אجאGgN3د$DKFDNPF!، Constructor אل03AIC i3iPא$אن5P> : אKPT Constructors אلoQ5P> Person N^\ $D C# class Person { public string FirstName; public string LastName; public int Age; public Person() { Console.WriteLine("c1"); ﻛﻮد 143 } public Person(string fname,string lname) { FirstName = fname; LastName = lname; Console.WriteLine("c2"); } public Person(string fname,string lname,int myage) { FirstName = fname; LastName = lname; Age = myage; Console.WriteLine("c3"); } } VB Class Person Public FirstName As String Public LastName As String Public Age As Integer ﻛﻮد Public Sub New() Console.WriteLine("c1") End Sub Public Sub New(ByVal fname As String, ByVal lname As String) FirstName = fname LastName = lname Console.WriteLine("c2") End Sub Public Sub New(ByVal fname As String, ByVal lname As String, ByVal myage As Integer) FirstName = fname LastName = lname Age = myage Console.WriteLine("c3") End Sub End Class :قא1א$] hNjzTאNNP>7Q1אlWgو C# Person MyEmpolyee = new Person(); Person MyEmpolyee = new Person("ahmed","gamal"); Person MyEmpolyee = new Person("ahmed", "gamal",22); ﻛﻮد 144 VB Dim MyEmpolyee As New Person() Dim MyEmpolyee As New Person("ahmed", "gamal") Dim MyEmpolyee As New Person("ahmed", "gamal", 22) ﻛﻮد Access Modifier ﻣﻌﺮﻓﺎت اﻟﻮﺻﻮل .5 NQאWSوذאن، public 'S:3א$+ 'م7WאsאZ!9'لאb'אf3ن،7אNوHدU f\ אN3$+ ' אN ً MQ אN. ، Object ل אلI 53 i,3 q\א אWS وC א$ אlWS 'لb'א a7! :O Class JO אKI دא53 A' א$ אlWS אوq\א אWS Q¯H 53 5PF 5! Private .gNh.وOوאO+\'ل אb'אh!3א'אعnDff'سH$אאWSU : Public JOق א7, $C م. ' ً MQ א، i,3 Object אل53 q\و אC א$'ل אb' אf\א אWS Q .k'لb'א$Q$אClassJOא53 objects K5PFوSF public א$אlWS$`!Class : Private .: I53:OQW אStruct אوאلClassJO אKIدא:Q¯Ha7!5P> : Protected .T\אClassJO א53k'لb'א5P>5P وObject אل53k,\'لאb'א5P>9 : internal .a7! Lא9אKIدאk'لb'א5P> : protected internal .9אo3@O لI53k'لb'!sאT\אClass JO لאI53ًMQאk'لb'א5P> 145 OOP اﻟﻌﻨﺎﺻﺮ اﻻﺳﺎﺳﻴﺔ ﻓﻲ .6 :אE ^ط א7Nאنض$9 OOP د¨אل31tא4אhq0B Encapsulation .1 Inheritance .2 Polymorphism .3 : Encapsulation .6.1 nD م$+F QgN אU SHg& وאO+\ وא'אد אh אs وzOI' אS Encapsulation ل$V7Q 'د%'\'دאP'אS3FgQ90.א'אU، PrintReport دאQgNאU$` ، Black Box KP, .QH7אDدאQ$KFSzD$אOPQ،gIدא Structured X'KFאLאU،وعT\אnDDF אKFאUbאlWS53ًMQא$O KFא53z%K'نP! OOP אلU Encapsulation אل033א،$ن وאP3U'دPא0B$` KF אGKgUSQ3אWSو،O Objects Q5DאgNKbא'אQ و:OnDً7q3 .z1IאfTאKg، : Inheritance .6.2 KQ$وCSQ'1K%א53:VjVI@OnD'ClassJOא53 i$Q$%+KFDg$V7Qو،אH'وאC .ً ^3gNb¢QHوiHאאnD'd(iH)ClassJ!NQ$^ ًאن3 ضZON،*jVא ClassJ!KF'م7]אن1א53LאlWSU،ً ^3 BMW אلhאH ClassJ!KFم7א$Qوאن isSport bI!sא03 Car nF\ אClassJOא53$Q$% ClassJ!ق7, א01NNPو،kKVON3 ًMQ א، BMW و אلCar אلY ZT3 *jVI $`N N ذ א53 f$k א، BMW lF\ אClass JO .ZT3hnDlHو$'RW وאGMC KJ! !s9ً3'Q1MN 146 0BUKQ$'م7NKg! ،hאHאKP countofdoors K^3$Q$%VND!sNF.'IאGא .h Q$א1a7!:!KQ$א01N¦! Car JOא53ق7,אKFNF.U،hJOא .hא53 'د%وUi$jO` אK§015Pوi qVאhJOאUFSאg(9}H لP, J! 'د%وUًMQא، BMW is a car אن، is a Inheritance . אoQ Q .Circle is a shape^ ً!¦ن3ijא$AICJ!و LאlWSU، aggregationnF وhas a . DS وClasses אلYh. א53I'ع¤NS ، Wheels iH אh `D K% א53 J! NQ$ ^ ً ' ن3 ، אوJO אnD Q') ^ אJO'ن אP .Car has a wheel'نP : Polymorphism .6.3 H%'אSGوא، Implementationونא$ kوא$ J!P vF'אS OOP ¨د353 IאC$\א ^ل3 aא،z9א:T5FMQ}وאل$אlWk implementation KF JOقא7, 'م7Qم$+3א :אKPT:OQNNP>، Shape ~ClassJ!ذnD C# class Shape { public void Draw() { } public void GetSize() { } } ﻛﻮد VB Class Shape Public Sub Draw() End Sub ﻛﻮد 147 Public Sub GetSize() End Sub End Class ً^ א:TQW وאInterfaceאلC$3ًMQ אC# !'، Abstract Class Class אلfQLאlWSU .gNUgDfNh.!و035P وAbstract Class אل א'אدnDًא4'نP JOאאWS 53:.7,^(א3،03،ij )دאJ!K א!¦نJOאU .gN3KP\אXאو default 'د% وF אU f I9 א03 5P وOverRidding אل4D AIC 7Q1 ذKFD 5P> .Implementation Encapsulation .7 YD א5D J! Iא$ אKbO אzOI אHVI :, W وאEncapsulation אلC$3 f$gQ 53و،VIو،زن+\אiHدא9(م5FMQ¶)ض(مZON$Q$, HVI،Y4\א. .h\ אK%א وאل$ א53 د$) د$D (N אlWS 53 $ وאKP 'نP Encapsulation אلC$3 ¤'D$Q L אlWS U ${ h\مאP(Uً ^F!،k I53Kb(א^ א'אN5P>t(موאNאאWS 53'لوאوجI$ .وאل$א53 ًא$%iود$)D'FUא...(VI)(hQZT3!s()אh3FD!s)א $]وאhאi$D.!5FMQ،3אوא53ًאH'G1h3FD !sאK^3FD(אن9'ً gF{،h אi$D.U2Nא5Q§53وFP'دא%و53$]وאRRbI$\אhאن א53 53ً9$:3א$+مא$+\אhg%وא4 'م7QWאIא3'مز7Q$وא3CKP,nDQgNאU .NOאKbOאlWSKU'صqא ¤'دgOًא1M3א'ن5،ً9אوhD'FU KFtصא+,'عאs'\אאWS$OQ،(9F :Q3CKمSKP,nDًFFV3'نP'دPאنאF،3K3 אofDאنאcOPQوK3P 148 53 ^ ًאK7Q 3 'Sم وkس אCH 'لb' a7! ًאHد. 234\ א3'ن زP 5P ، 3 אوא53 D'F .5QIאY4\ א53]1אQ5Dgא53b אאq3FdF،z1Iא ط7Nא53$Q$א¤NS'مgO\אאWS1و، OOP hqK:b' ولאنW'مאgO\אאWS .سH$אאWSUkق1N tא ً ^3nN}...م$+\'אSI2343¤NSو2343CNSذUgMאن$9 17ولC،Kbאن'אK. .وعT\א53z`JOאWSאم$+234\א3'مز7QوJ!4'م7 א private ﻟﻠﻮﺻﻮل إﻟﻰ ﻣﺘﻐﻴﺮاتpublic اﺳﺘﺨﺪام دوال .7.1 :7وسאH$אA'3nDhא3i$DlzTNF.W אPerson 'صאلVx ضא\^لאZON C# class Person { public int Salary; } ﻛﻮد VB Class Person ﻛﻮد Public Salary As Integer End Class :אFאPم.−'gQ953K%و−Thل אIאصدQOאUQא3ونز C# Person Ahmed = new Person(); Ahmed.Age = 999999999999; ﻛﻮد VB Dim Ahmed As New Person() Ahmed.Age = 999999999999 ﻛﻮد 149 aوא،0.'אX.אz,אUPT\אlWkض$.NNP،KR3:,$Q`Lא אWg.HU'gو'אنא K^3!¦ن- @ - م$+3'د%وUو،i,3g م$+\א53F7אizא7'م7Q:ذ'א53 .ً ًא3C$h I$\ אlWS }H لIد9אh,,23433אنزF، gFF.W אJOK%אH3$אG KI$\אאWSً H'g( א53 אq3 0N3 א، Fjא$ אRVNא ] אW ، لIد9 א53 7R א3 אzND :O oPQ 5 :אKPTgP אوאgzא7دوאلgN3ً9$0sو−Iא234\א−g3$+\ C# class person { private int Age; public string SetAge(int x) { if(x>100 || x<1) return "you can't edit age like that"; ﻛﻮد Age=x; return "done"; } public int GetAge() { return Age; } } VB Class person Private Age As Integer Public Function SetAge(ByVal x As Integer) As String If x > 100 OrElse x < 1 Then Return "you can't edit age like that" End If Age = x Return "done" End Function Public Function GetAge() As Integer Return Age End Function End Class ﻛﻮد 150 وذ− ً ^3 אKPT אWI] אنqNQ Set دא، ً 7 N7O אF 1I'S x h אq\ אF ً :−سאH$אU Me وC this *jVI53NFF C# public string SetAge(int Age) { if(Age>100 || Age<1) return "you can't edit age like that"; ﻛﻮد this.Age=Age; return "done"; } VB Public Function SetAge(ByVal Age As Integer) As String If Age > 100 OrElse Age < 1 Then Return "you can't edit age like that" End If ﻛﻮد Me.Age = Age Return "done" End Function zNq9 א5P>9Q'ً7$Q$א0QHT\אUH'3אlWSK^3:NP،ً Q' ًאو3وא$Q}H .a]1IGYQ 3i$DoPQوعT\'ط7UG$.ggND ﻣﻼﺣﻈﺔ . Mutator فتسمى باسمSetAge أما الدالةAccessor يطلق عليھا اسمGetAge الدالة : Constructor ارﺳﺎل اﻟﻘﻴﻢ ﻛﺠﺰء ﻣﻦ ال .7.2 hאZ3H QFم$+FbOאאSو،7א7Q1א03אوKQ$g3א$+ אNP>AIC7Q אو7Q1אمא$+אDً3'ن אPi P אhJOאU، Constructor $T\א5Fsh אq\א. 151 אل53 Object zT(אLh אq\אK.QF'م7Qم$+\ אH'V5א7Q1אlWSG% .Class :7Q1אlWS^ل3 C# class Person { private int Age; public Person(int Age) { if(Age>100 || Age<1) return "you can't edit age like that"; ﻛﻮد this.Age=Age; return "done"; } } VB Class Person Private Age As Integer Public Sub New(ByVal Age As Integer) If Age > 100 OrElse Age < 1 Then Return "you can't edit age like that" End If Me.Age = Age Return "done" End Sub End Class ﻛﻮد 152 : Type Property اﺳﺘﺨﺪام ال .7.3 و: Set دאنgN3KPbI q\אKQ'nDًدאFDوאAIא7Q1 5Pو،7א7Q1@אON :אKPTذQ ،Get C# class Person { public int Age { get { return Age;} set { if (!(value>100 || value<1)) Age=value; } } } ﻛﻮد VB Class Person ﻛﻮد public Property Age() As Integer Get Return Age End Get Set If Not (value > 100 OrElse value < 1) Then Age = value End If End Set End Property End Class z,G Uو، Set zD$אz,א1K.5Pو، Age ,\'لאb'אNP> وאن hFDnDhF אKFDلאوIد9אh53$]אQ3'Sو، Get 53:D'لVLא אجI9א S Age lF\(אLאlWSU q\)و@אbنא9 public FS Get وSet نCًMQ( א9 153 ،i$nD Get אوSet X'لאصb'אf3UKQ$אP3b א.net 2.0 WN35Pو، public :ً ^3אKPT C# public int Age { get { return Age; } protected set { Age = value; } } ﻛﻮد VB Public Property Age() As Integer ﻛﻮد Get Return Age End Get Protected Set Age = value End Set End Property KF @P אhدH ' א3C ، Set b אزא אNPF! Read Only Property KFD U G N ذא : Read Only Propertyאא\^للWS، Get b!]زلאWrite Only Property C# public int Age { get { return Age; } } ﻛﻮد VB Public ReadOnly Property Age() As Integer Get Return Age End Get End Property ﻛﻮد 154 Inheritance اﻟﻮراﺛﺔ .8 وسHدU Encapsulation 'مאولgO\ אvTNF.،אbNDE k OOP سאنHدUذ . Inheritance אل03$D'3وאن،7 :אصlN, Wضא\^لאאZON،KFא:30^ل3KFC$Nאن C# class Car { private string carName; private int carModel; public Car(string carName, int carNumber) { this.carNme=carName; this.carNumber=carNumber; } public Car() { carName="Unknown"; carNumber=0; } } ﻛﻮد VB Class Car ﻛﻮد Private carName As String Private carModel As Integer Public Sub New(ByVal carName As String, ByVal carNumber As Integer) Me.carNme = carName Me.carNumber = carNumber End Sub Public Sub New() carName = "Unknown" carNumber = 0 End Sub End Class .سH$אאWSKא3 لI:NوlQ'1nD KFא0و،aאא\^لאWgC$N 155 is-a :ﺗﻌﺮﻳﻒ ﻋﻼﻗﺔ .8.1 'عאولNאv,ولאنRN،has-a'نP$. وis-a 'نP$.. !¦ن א،TD0سאH$אUذF : BMW iHضZON،jאJO'عא53'S7T\אJOאنאcQW وאh. א53 C# class BMW: Car { } ﻛﻮد VB Class BMW Inherits Car ﻛﻮد End Class @O وCar X אClassJO*אjVI@OnD'd BMW 59 אClassJO'لאنא7אن01אWPS carName bא,\'لאb'ولא59אJOאUNض אZON5Pو،a7! public אل:.و:دوא :17NאlWSs'Qאא\^لWS ،ذ535PF5! C# BMW ahmedcar=new BMW(); ahmedcar.carName="anyname"; ﻛﻮد VB Dim ahmedcar As New BMW() ahmedcar.carName = "anyname" ﻛﻮد NضאZON،bאlWS'لb'א01r 7T\ אJOאKIوאلدא$ אoQNF.'n :אKPT'نP BMW JOאb $Dא C# class BMW: Car { public changeCarName(string value) { ﻛﻮد 156 carName=value; } } VB Class BMW Inherits Car Public Sub New(ByVal value As String) carName = value End Sub End Class ﻛﻮد 'لb'אf3אنoTP'لb'אh!3سH'عد% א،ً3eًRRbאWS'نPQ5o : אprotected 'لb' אf3 م$+ אWS K% א53 ، 7T\ אJO א53 : 'لb' א5P> 9 private 'لb' א5P>K7\אU:NP، object لאلI53:,\'لאb'א5P>9:'U private אل:TQ : אKPT Car JO^لא3NsZ!'א،7T\אJOאKIدא53: C# class Car { protected string carName; protected int carModel; } ﻛﻮد VB Class Car Protected carName As String Protected carModel As Integer End Class ﻛﻮد 'نPQ f' אW ، h אq\ אlWS izא7 'م7 BMW 7T\ אJO אKI دא دאoQ NNP> L אlWS U :ًRRb'دאPא C# class BMW: Car{ public changeCarName(string value) { carName=value; } } ﻛﻮد 157 VB Class BMW Inherits Car Public Sub New(ByVal value As String) carName = value End Sub End Class ﻛﻮد NotInheritable - sealed اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة .8.2 :אKPTذQ،:N3ق7,9א5P>9JOא אWSאنFPאlWSאم$+אcQ C# sealed class Car { ﻛﻮد } VB NotInheritable Class Car ﻛﻮد End Class ﻣﻼﺣﻈﺔ C# فيsealed تقابلNotInheritable الكلمة اﻟﻮراﺛﺔ اﻟﻤﺘﻌﺪدة .8.3 nN3، managed c++ a7!:71 YU،iد$\אאH' אC$3 VB.net אوאلXH,אq!'9 U،iH J!وN, J!NQ$ضZON، J!53^ א53Tאن3J!نP3אنiد$\אאH'אF 5P و،QאدiHوאNT*אjVInD'd$Q$%'عKFD01N¦!iد$\א אH'3qDد VB.net .אوאلXH,א53Kl!'93אWS 158 FN:DfN3'Sو، interface 53^9 Implementation KFDندqمא$7،WKQ$و .zאאWSKV :s'aאאאWS¦!، VB.net وC# Uiد$\אאH'אDو'!دPQ3م$7_\ذא3C رابط http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx اﻟﺘﻌﺪﻳﻞ ﻓﻲ اﻟﻔﺌﺎت اﻟﻤﺸﺘﻘﺔ .8.4 U، i$Q$ אJOودوאلאEא$C*وقوjVInDi,3KQ$אNNP> ،7وسאH$אUNQCHF د$DnD' BMW JOi$Q$%bI!sאNNP>،9 אqNF!دאsNF.א\^ل א ...אWPSو، BMW'ع53hאHאU!sאiFiHאKI'ندאQOאig%C ' 5P . ¤RF אhROد א$D !s אNNP> L אlWS U ، H ! אAIC J! KFD NNP> Car 9 אJO אU g!s אOP! hאH א0F maxSpeedbI oQ א3 U N`א .ً BzNאhJOאUًj7i'د%'3S$`و ،gT\אbN3Di$D.0sوS אH'אFjא$j'אOא53i$אنوאª אن01NS53 Uًق אOא${5}H،hא3i$DgN3KHאPiدD א53ً9$a7!f I9طא7!s9¢KFDو 03 K3 3 אوאi$D 03 77 ^ل3 U 5P و، a7! *jVI 4 אو3 03 KF Nא\^ل א א Y قHO א¤H$ אن01 L אhF وאض وאD1 وאh אi$D. U ªORم و$+\א .:3$DאوH''مאgO3אم$+א has-a اﻟﻌﻼﻗﺔ ﻣﻦ ﻧﻮع .8.5 JOאنאcQ'عNאאWS،O+\אhJOאY h. א53^'ع אN'אSאWg!NHאولدUNRsאوF :אKPTh `אJ!^ل3NsZ!'א،AIC J!nD' 159 C# class Tires { int TiresType; int TiresSize; } ﻛﻮد VB Class Tires Private TiresType As Integer Private TiresSize As Integer End Class ﻛﻮد אW، car has a tire iHא53z%gNP وtire is not a car iH'ع53hאH9אنאN7Qf : אKPTiH אJ!oQNNP> C# class Car { Tires carTires=new Tires(); } ﻛﻮد VB Class Car Private carTires As New Tires() End Class ﻛﻮد ﻣﻼﺣﻈﺔ وعمل خاصية لھا من اجل القراءة والكتابةprotected اوprivate ال تنس ان بامكانك تعريفھا كـ إليھا Casting اﻟﺘﺤﻮﻳﻼت .8.6 .سHدU:Dوא'א:'مאمgO\אv,،I 'ع53KQ'R'אSً3'FD Casting ل$V7Q ،Q( אدcast) אم$+אSKQ'R אو7Q1א، Classes אلnDSO\@אO1ولRNوאن : BMW iHoQNF.'ً ^3 160 C# BMW ahmedCar=new BMW(); ﻛﻮد VB Dim ahmedCar As New BMW() ﻛﻮد دאkHNF.'ًMQא،RRbiH'VKFf'! BMW ل7'م7 دאq\لאHNF.و RRb PאFאFN، Car 77LאUS BMW KنRRbאWS'نP! Car K7 :אiH'V BMW oQNF.'^א17Nא C# Car ahmedCar=new BMW(); ﻛﻮد VB Dim ahmedCar As Car = New BMW() ﻛﻮد i,3 q\ل אH א5P> وאن، implicit cast nD$Q 3 'S ! ً وRb 'عs'\א אWS . Car K7tאא$א :אKPT BMW oQ:! NF.Iً9^3ضZON C# Object ahmedCar=new BMW(); ﻛﻮد VB Dim ahmedCar As Object = New BMW() ﻛﻮد f'! Car K7tאא$ אq\لאHNF.'5P،ًMQ אObject 'S J!Kً نMQאRbאWS :لאP,9א$] cast KF'م7אW،1IHg( C# functionname((Car)ahmedCar); functionname((BMW)ahmedCar); ﻛﻮد 161 VB functionname(DirectCast(ahmedCar, Car)) functionname(DirectCast(ahmedCar, BMW)) ﻛﻮد is اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة .8.7 : ^ل3،^אf1א53'Sول9אf1ذאن אF!HIFPאlWS'م7 C# if (ahmedCar is BMW) { ﻛﻮد } VB If TypeOf ahmedCar Is BMW Then ﻛﻮد End If ذאF!fאن$Qو،JO@אO537T3א'عi$D53h אq3i$D'د% وUFPאlWS¤$O .ً ^3H אو! אBMW 'ع53 Visual Studio Class Diagram .8.8 :gD^ل3אWS، Class Diagram אلKFiאدא2005Hא$b9א53zא$'אQ`'אل'دO'!אQ 162 ، Q$ t אhאJOض אD אو، i,3 gD KF א53 و، new - class diagram 53 g!s אNP> . modeאאلWSUO+\אh. אzTאNP> Polymorphism اﻟـ .9 اﻵن ﺳﻨﺘﻌﺮف ﻋﻠﻴﻪ، ﺑﺸﻜﻞ ﻋﺎمpolymorphism ﺗﻌﺮﻓﻨﺎ ﻓﻲ درس ﺳﺎﺑﻖ ﻋﻠﻰ ﻣﻌﻨﻰ ال ... ﻼ ً ﺑﺼﻮرة أﻛﺜﺮ ﺗﻔﺼﻴ 5Pً'دوMQ'!אQ ، implementation ونא$ class oQFQWوאs\אoQא fQ 3 'S و، AI وאJO אY א$ אصimplementation אلq FQ K7\ אU .Overriding אنK.iH7\א\!אXrbאא א$'دא%وNsZ!'א،NאصiH^لא3ضZON .Z3'10KPً'%fV(ً ^3) iHوאنא،5QNא$ONQ C# public int calc(int fuel) { return fuel * 10; } ﻛﻮد 163 VB Public Function calc(ByVal fuel As Integer) As Integer ﻛﻮد Return fuel * 10 End Function 5KPً'%fVgذא،i$D7@אOnD 9iHאlWS אنNOT אBMW iHNFD$5Pو fQ 3'SאWS، 7T\ אJOאU calc א$אoQiدDא%r 5LאlWSU ،a7!hאZ3' א$ אoQ Q 5D ذQ . polymorphism د¨ אل3 $' אS وOverriding iد7 אiدD א :אKPT virtual 'ع53 base class אلU9א C# public virtual int calc(int fuel) { return fuel * 10; } ﻛﻮد VB Public Overridable Function calc(ByVal fuel As Integer) As Integer Return fuel * 10 End Function ﻛﻮد م$D5P>F، 7T\ אJOאUgOQiدDא5P>א$אlWS אنc overriddeable אوאلvirtual אل :7T\אJOאU'دאPאGPgOQiدD9 ،ًMQאgOQ C# public override int calc(int fuel) { return fuel * 5; } ﻛﻮد VB Public Overloads Overrides Function calc(ByVal fuel As Integer) As Integer Return fuel * 5 End Function ﻛﻮد 164 f،zN אhJOאU g4.53 وj אJOאUًH! implementation אل¤NP>ًMQC U:D fNW אinterface ' אلS وAbstract class implementation אل53غHO אJOא .3د.3 Abstract اﻟـ .10 ون$ QدD J! دg אN!D و، Abstract Class F nN3 nD N! س אH$ אU i א[`'زFPم א$+ ، :3א$+ אK. :N3 + KFD nD NO א4< P 5P ، implementation :אKPT:OQabstract C# abstract partial class Car { } ﻛﻮد VB MustInherit Partial Class Car ﻛﻮد End Class ﻣﻼﺣﻈﺔ C# فيabstract ھي مناظر كلمةvb.net فيMustInherit الكلمة المحجوزة :]1IoQאאWSN1Qf' LאlWSU C# Car ahmedCar=new Car(); ﻛﻮد VB Dim ahmedCar As Car=new Car() ﻛﻮد 165 Abstract method .10.1 JO אU k overriding KF 'م7 KP virtual وאل$ אoQ 'م7 N ً אMQس א אH$ אU ذ 234\אH%دאH'א5P،:S{אوg'دאصP אiدDאULאN1Q3אWSو،ً79 7T\א :אKPT Abstract method oQW'م7overridingiد7אiدDאnD C# public abstract int calc(int fuel); ﻛﻮد VB Public MustOverride Function calc(ByVal fuel As Integer) As Integer ﻛﻮد 166 167 اﻟﺒﺎب 9 اﻟﻮاﺟﻬﺎت Interfaces 168 169 Interface ﺗﻌﺮﻳﻒ ال .1 +KFD5P> abstract methods and membersnD'd abstract class 'S interface אل ^9 implement KFDP3FQ F، inheritance 53ً9$ implementation 'مgO}אم$+:N3 . multiple inheritance 'مgO3 5DKQ$'אSوi$א'אi\אU interface 53 :ً ^3אKPT interface oQ5P> C# public interface ICar { int carMaxSpeed{get;set;} void AddItem(string Item); } ﻛﻮد VB Public Interface ICar Property carMaxSpeed() As Integer Sub AddItem(ByVal Item As String) ﻛﻮد End Interface :ً ^3אKPTI53 interface ق7,אP3אنnN9 C# public interface ICar:IDisposable { int carMaxSpeed{get;set;} void AddItem(string Item); } ﻛﻮد VB Public Interface ICar Inherits IDisposable Property carMaxSpeed() As Integer Sub AddItem(ByVal Item As String) End Interface ﻛﻮد :'دאPאP 'م7 interface 9 implements KFو 170 C# public class BMW : Car { ﻛﻮد } public class BMW2 : Car, Truck { } VB Public Class BMW Implements Car ﻛﻮد End Class Public Class BMW2 Implements Car, Truck End Class .ً .WNF.FJOאمא$+א53و،i$Q$%!دوאلs א. i'د%'\وאلא$אiدDאNP>אن : ﻫﺬه ﺑﻌﺾ اﻟﻨﻘﺎط اﻟﺘﻲ ﻻ ﻳﻤﻜﻨﻚ ﻋﻤﻠﻬﺎ ﻣﻊ اﻟﻮاﺟﻬﺎت :JIFאlWSK^F!אW، :N3 Object אKFD5P> 9 Interface אل،Qא$ C# ICar x=new ICar(); ﻛﻮد VB Dim x As New ICar() ﻛﻮد :JI interface אلKIدאFאlWSK^3אW، interface אلUدD q3oQ5P>9 C# int number; ﻛﻮد 171 VB Dim number as integer ﻛﻮد :אKPT get وset bIKFD'S،KQ$א C# int x {set;get;} ﻛﻮد VB Private Property x() As Integer Get End Get Set End Set End Property ﻛﻮد . interface אلKI'د دא1CNP>901 . interface K constructor KFD5P>9F Name Clashes .2 :TU KT3E$d}Hو، interface 53^9 implements KF3 struct אوclass 'م7Q3 ً א :ضא\^لאZON،zא C# public interface ICar { void move(); } public interface ITruck { void move(); } public class BMW: ITruck, ICar { } ﻛﻮد 172 VB Public Interface ICar Sub move() End Interface Public Interface ITruck Sub move() End Interface Public Class BMW Implements ITruck Implements ICar End Class ﻛﻮد : BMW i$Q$אJOאU move א$ implementation KFF.'F!PT3${5}H C# public class BMW: ITruck, ICar { void move() { // do something. } } ﻛﻮد VB Public Class BMW Implements ITruck Implements ICar ﻛﻮد Private Sub move() ' do something. End Sub End Class 'م7، truck 53 move א$AI وאcar 53 move א$ implementation KFDhدHC'ذא35Pو :אKPTW 173 C# public class BMW: ITruck, ICar { void ICar.move() { // do something. } void ITruck.move() { // do something. } } ﻛﻮد VB Public Class BMW Implements ITruck Implements ICar Private Sub move() Implements ICar.move ' do something. End Sub Private Sub move() Implements ITruck.move ' do something. End Sub End Class ﻛﻮد :אKPTSzD$אQYא$א53i$א وא$Q$5P>، BMW JOא53 object KFD$و C# BMW ahmedCar=new BMW(); ICar temp= (ICar)ahmedCar; temp.move(); ﻛﻮد VB Dim ahmedCar As New BMW() Dim temp As ICar = DirectCast(ahmedCar, ICar) temp.move() ﻛﻮد 174 IEnumerable interface .3 'م7Q ClassوCJ!KFDO5D3د. وسHدE ^ضאنوN، interfaces אل03NوHאندKb'א 3 وIEnumerable nF\ אinterface XC$NسH$א אWSU،Y3 interface K implement KF .ذzאHوi'%\אi$jOאS ﻣﻼﺣﻈﺔ فھذا واحد من الدروس التي ستالحقنا كثيراً أثناء تطبيق، أرجو منك أن تركز جيداً في ھذا الدرس . Linq مبادئ : אKPThi$DnD 'zC!'OV3J!NQ$ضאنZON C# string[] users = { "Ahmed", "Mohammed" }; ﻛﻮد VB Dim users As String() = {"Ahmed", "Mohammed"} ﻛﻮد :ً 7NFFfor – eachאم$+'دאPمא$+N!'OV\אhQ')izא7وאن C# foreach (string us in users) { Console.WriteLine(us); } ﻛﻮد VB For Each us As String In users Console.WriteLine(us) Next ﻛﻮد ًD' א\^ل0' 'م7N ،bN ! אnD אنHو$ م دא$+ N א${ ، array nD $F N' אWS :אKPTYO&'\אJ!ضZON،J!nDدFD9 'نذP 175 C# public class employee { int emp_number; string emp_name; } ﻛﻮد VB Public Class employee Private emp_number As Integer Private emp_name As String End Class ﻛﻮد 53 D'F 5D iHD 'S م$+\ אن א، Y3$+\ אh nD 'd AIC J! NQ$ 5Pو :ً ^3אKPT YO&'\א C# public class users { employee[] emp = new employee[3]; users() { emp[0] = new employee(10, "Ahmed"); emp[1] = new employee(20, "Khaled"); emp[2] = new employee(30, "Ali"); } } ﻛﻮد VB Public Class users Private emp As employee() = New employee(2) {} Private Sub New() emp(0) = New employee(10, "Ahmed") emp(1) = New employee(20, "Khaled") emp(2) = New employee(30, "Ali") End Sub End Class ﻛﻮد :Bאم$+ًMQ אfor each אم$+ ً MQאYO&'\אאضאNNP> 176 C# foreach (employee e in emp) { } ﻛﻮد VB For Each e As employee In emp ﻛﻮد Next . IEnumerable אل03:nNWאC$\'אSאWS ،Y3VNDD loop K03 : IEnumerable nF\ אinterface K9אKPTא C# public interface IEnumerable { IEnumerator GetEnumerator(); } ﻛﻮد VB Public Interface IEnumerable Function GetEnumerator() As IEnumerator End Interface ﻛﻮد :אKPT IEnumerator 'ع53interfaceg%وאoQ 'م7Q،א\^لאUAFو C# public interface IEnumerator { bool MoveNext (); object Current { get;} void Reset (); } ﻛﻮد VB Public Interface IEnumerator Function MoveNext() As Boolean ReadOnly Property Current() As Object Sub Reset() End Interface ﻛﻮد 177 KF1MN، interfaceg% א'אlWk implements KF 'م7 users J!K< אنUGN'אW :אKPT'نذP، GetEnumerator() א$implement C# public class users:IEnumerable { employee[] emp = new employee[4]; users() { emp[0] emp[1] emp[2] emp[3] = = = = new new new new employee(10, employee(20, employee(30, employee(40, ﻛﻮد "Ahmed"); "Khaled"); "Ali"); "Sami"); } public IEnumerator GetEnumerator() { return emp.GetEnumerator(); } } VB Public Class users Implements IEnumerable Private emp As employee() = New employee(3) {} Private Sub New() ﻛﻮد emp(0) = New employee(10, "Ahmed") emp(1) = New employee(20, "Khaled") emp(2) = New employee(30, "Ali") emp(3) = New employee(40, "Sami") End Sub Public Function GetEnumerator() As IEnumerator Return emp.GetEnumerator() End Function End Class :אKPT ً MQًאQو$QWم7אNNP> 178 C# ﻛﻮد IEnumerator i = emp.GetEnumerator(); i.MoveNext(); employee myCar = (employee)i.Current; VB Dim i As IEnumerator = emp.GetEnumerator() i.MoveNext() Dim myCar As employee = DirectCast(i.Current, employee) ﻛﻮد ﻣﺎذا ﻧﺴﺘﻔﻴﺪ ﻣﻦ ﻫﺬه اﻟﻄﺮﻳﻘﺔ ؟ J!5D^ل3'SNSlد$V53ن،'g. א2NQאن01Qh א$D'א72343]!0.א'אU אم$+g!K7NوאgN3 izא7אنאND1bوא،hi$D7:,אhא53D'FnD' .moveNext : yield اﺳﺘﺨﺪام :'دאPאP.'دאPא53ً9$ C# public IEnumerator GetEnumerator() { yield return emp[0]; yield return emp[1]; yield return emp[2]; yield break; } ﻛﻮد KV n אWPS א^ !^^ و، אوF7 אiدDא א$ zD$ אول א03 وL אlWS U .yield break KOq9CnNeCYLذאnو، Linq KV3$NDOאh3א$+9 אSC53i$وאnDfN .g%א'אlWS 5DND 179 ICloneable interface .4 :'دאPאGP 3$NDNאnN}،5jP¢NאFDg$V7Q clone אلFD C# int x=5; int y=x; ﻛﻮد VB Dim x As Integer = 5 Dim y As Integer = x ﻛﻮد :אKPThJOא03N3U5Pو، y x F.K7N'م7ً! N¦! C# car x=new car("BMW"); car y = x; ﻛﻮد VB Dim x As New car("BMW") Dim y As car = x ﻛﻮد KQ$ א!¦نאWو، x F.:!WنאP\ אTQVQ y نK، y K7N9 x F.אن0.א'אU @P@P وאy F.ل$ x F.U .I אq\ אUgsووF7אUi$Q$%+KFDK%א53 clone אلFDNS53 'دNNP>،ضqאאWkg3א$+א5P>، clone א$אnD 't אICloneable g%א'א : C# public object Clone() { return new car(this.carName); } ﻛﻮد 180 VB Public Function Clone() As Object Return New car(Me.carName) End Function ﻛﻮد :אKPT clone אم$+i$Q$%+ KFDP3bאنא C# car x=new car("BMW"); car y=(car)x.Clone(); ﻛﻮد VB Dim x As New car("BMW") Dim y As car = DirectCast(x.Clone(), car) ﻛﻮد IComparable interface .5 א אلWS KP, 'نPQ אن1 א53 אW و، H7F interface א אلWS م$+Q ، 9 א53 s' وאS F : אKPTinterface C# public interface IComparable { int CompareTo(object o); } ﻛﻮد VB Public Interface IComparable Function CompareTo(ByVal o As Object) As Integer End Interface ﻛﻮد U 1F7א، אوU 07א\دאU$Sً!،F.HF.$א$ (אنא3 NP> .qbC אولf1'نאU1−و،4אولאf1'نא 181 17NאKIא$אgF. وhאHD9@نQو3'نPQYNjP]نא¤ WiدDא53Dدא9ً 53:NF.3אWSو.!H7\جNא،:% 53'Sو،iאWאUنP\@אONgH,אU . equals א$ لאI !3%U5K،9אم¤ذא5jPאאWSوQKS !\%rN!NSNQ$tא17Nא3א .gbאJOא5FsiHא0Nb¢QHضZON و،qbאوא4אFgQא 'אد9אGP، IcomparableJOא1NbאJOאK`N،سאH$אUNF.F :ً ^3 אKPTضאZON، CompareTo א$אU C# int IComparable.CompareTo(object obj) { Car temp = (Car)obj; if(this.year > temp.year) return 1; if(this.year < temp.year) return -1; else return 0; } ﻛﻮد VB Private Function CompareTo(ByVal obj As Object) As Integer Implements IComparable.CompareTo Dim temp As Car = DirectCast(obj, Car) If Me.year > temp.year Then Return 1 End If If Me.year < temp.year Then Return -1 Else Return 0 End If End Function ﻛﻮد א$א،'مgO\ אKgאWS5P،1و0و1−53ً9$94و0و100−iدDא01¤ WDدא9 ً 182 .אאWSF.gNQدونאنa7!4אcQ G%'3.HאووcQOb،qbאcQG.H9$KF .Oא : Sort اﻟﺪاﻟﺔ א3אPNF.'L אlWS U، myNumbers م.H9א53 array !'OV3NQ$ضאنZON :ً3'gO3'دPنאP C# Array.Sort(myNumbers); ﻛﻮد VB Array.Sort(myNumbers) ﻛﻮد .]1IE$R$]אWS !¦نgZ'دPאאWSNو،hאHא53!'OV3NQ$'ن5Pو אWSאم$+אNPFLאlWSO!، IComparable interface אل1 car JO'نאU5P 'نPQ}H،g4 אF.t אCompareTo دאnDًدאFDאH7\'م7f'g א$א ^ ًאوא3 check دא53ً9$א$ و'د אinterface אאلWS1'م7ً!ًאWS 2343g'sًوو79KPbאJOאمא$+אKg!s9ًאWS . Fg\@אONم7Iא I 183 اﻟﺒﺎب 10 اﻷﺧﻄﺎء واﻗﺘﻨﺎﺻﻬﺎ 184 185 5Pو،:! Iوz1I9אg,]وא1אKjH3 ،gQدOوgbN.אOوz1IאnDאWSNHدUfN :23אUKVtאz1Iم א.Cs'جنQא$אK. : اﻷﺧﻄﺎء اﻟﻨﺤﻮﻳﺔ- Syntax Errors .1 Visual אلK^3 Advanced Programming Environments U و، Kg9' אS z1I9 א53 'عNא אWS :אF]א1אאWS^ل3،ًQH'! z1IאlWSfTאQ،Studio , netbeens ... etc ﻛﻮد if x.Nome = somevalue Kg9 אSz1IאlWSK^3،i'د%'3 Nome b]نא¤4§WONאK.]1IH $`01 KjHRb אVisual Studio .net 2008 Uو،gDKFtא4אqJ لI53g!TאQو .7Q1 אlWgg'وgS O5P>وQqRsوא1א : اﻷﺧﻄﺎء اﻟﻤﻨﻄﻘﻴﺔLogical Errors .2 g(Q71N31I:NP]'و1I$%'Q 9}H'دPא$bn!،Gb' אSz1Iא53'عNאאWS :''دS]1אאWSnD^ل3aא،WON א$ND ﻛﻮد Byte x = 100000 ]1Ig(אWS5PQ_>$7אhאHא$b9אU5Pو،$LאאWS53qb אByte 'عNود א$אنfً .AFًQ''P3F אنא .א..: new KFD K. object لF.دN]א1אאWSnD^3א ًD א'א¤NS אنK ، i,3 g( z1I אlWS K^3 Rb א، i$Q$' אQ !`'אل 'دhאHא$b א03 5P . warningsKP,nDg!TאnDHد.'Q`'אل'دOאb אLogic Errors אل53Gbא :'אعאC Sאz1IאS وLogical Errors אل7C$N،ًא$GSW5 186 : User Error 5P،م$+\אFD5Q+:!'م7 Byte א\^لאلNsZ!'א،234אمא$+א532Nz1IC $. 5P _' F! KT\ אU G م$+\ א53 ]1א אWS ، f9 א10 .H لIم د. م$+\א جH$N:! IوFאIUVhلIًאدMQא،Y3$LFم{وز א$D53$]طא,Osא .م$+\אz1IC א : Exceptions iH'V gF Q _ ً ^3 i'د%'3 h i$D. אوo3 ! )و، z1I א53 g,'ع אNא ، nullable type אم$+ونא$ null وgאYUhאi$D.53h izא.)و،RRb .iH'gT\אz1Iא53:! Iو، ReadOnly Vo3P)وא : Bugs g3$+tوزא$NQ'א+g!} 23א4א0BU$%'و،S$D9وSV5P>9،ig,z1Iא^א izא. אوq3fWنGE$$.،ع1\אH$.gQدO ولNNPوgN323'5iאدU، 53٪99لg( 9$.z1IאlWS،א...H!F.gא5(5وiאWאUً bאi'د%'3 F.53 q3 23 א53 Q{ ¢ i$D ¤NS 'نP i אدU אW ، a7! $م وא$+\ g( NP وY3$+\א . א+Nאv K.gQ$وz1IאlWS^ل3א53!א3[و 53hאzN^Nא0sولوRNًMQ'عאولאNא،S'אSوz1Iא53^'عאN אnDNאWSNHدU `!^^אL א3א،אوLאUSאS7RאKB5Pمو$+\אhאHIא53$]אK%א .g7K^3א'אS\وאiF\א System.Exception اﻟﻔﺌﺔ .3 KQ]1IC!¦ن0.א'אU،(مNאUE$tאz1I א03K3 .net _D U V+\ אJOאS 1אאWS03K3 System.Exception 'لlHو$Wوא، CLR אل:H (مN'مא7Q(مN :אKPTJOאlWShQ') ، 187 C# public class Exception : ISerializable, _Exception { // Public constructors public Exception(string message, Exception innerException); public Exception(string message); public Exception(); // Methods public virtual Exception GetBaseException(); public virtual void GetObjectData(SerializationInfo info, StreamingContext context); // Properties public virtual IDictionary Data { get; } public virtual string HelpLink { get; set; } public System.Exception InnerException { get; } public virtual string Message { get; } public virtual string Source { get; set; } public virtual string StackTrace { get; } public MethodBase TargetSite { get; } } ﻛﻮد ﻛﻮد VB Public Class Exception Implements ISerializable Inherits _Exception ' Public constructors Public Sub New(ByVal message As String, ByVal innerException As Exception) End Sub Public Sub New(ByVal message As String) End Sub Public Sub New() End Sub ' Methods Public Overridable Function GetBaseException() As Exception End Function Public Overridable Sub GetObjectData(ByVal info As SerializationInfo, ByVal context As StreamingContext) End Sub ' Properties Public Overridable ReadOnly Property Data() As IDictionary Get End Get End Property Public Overridable Property HelpLink() As String Get 188 End Get Set End Set End Property Public ReadOnly Property InnerException() As System.Exception Get End Get End Property Public Overridable ReadOnly Property Message() As String Get End Get End Property Public Overridable Property Source() As String Get End Get Set End Set End Property Public Overridable ReadOnly Property StackTrace() As String Get End Get End Property Public ReadOnly Property TargetSite() As MethodBase Get End Get End Property End Class :JOאlWk9ق א1*وאjVאnDfولאRN nN\א bא bL] א1אH Message ]1אאWk throw KFم.Wא9אo3 Source :N3iدO9א01،KVOאPT\אvTQ aאHnDbאlWS' HelpLink 3(N IT אلU*V+\مא$+\ א:N3$OQ}Hو234F 189 Throw Exceptions - رﻣﻲ اﻻﺳﺘﺜﻨﺎءات .4 O N.Y3o3'د%مو$DK^33]1 throw KF234'م א7Qאن5P>234 ¤WON لI ضאZON،]1+ throw KFg!אGAIC¤NSK(5P،:3K3]وא1אאWSizא. o\'د א%م و$D U ]1I H 'م ض7 53 وo\'د א%م و$D 53 $] check KF 'م7 :ً ^3אKPT C# if (!System.IO.File.Exists("c:\\ahmed.txt")) { Console.WriteLine("there is no file"); } ﻛﻮد VB If Not System.IO.File.Exists("c:\ahmed.txt") Then Console.WriteLine("there is no file") End If ﻛﻮد !s9،i$'3z1I*אN.iH'bUGو،a7!izא7o\] 'نא1IصN.7_}HNP AIC hאHDو אC ، GQ' א03 ^ i3 وWindows Forms אل5Fs JO@ אO אم$+9 ج$. KFD5P>hאHD9 אlWS53. g3א$+ אJ!234N'ً ^3234F throw KFDUG :אKPT]1throw C# ﻛﻮد if (!System.IO.File.Exists("c:\\ahmed.txt")) { throw new Exception("there is no file"); } VB If Not System.IO.File.Exists("c:\ahmed.txt") Then Throw New Exception("there is no file") End If ﻛﻮد 190 K3]وא1א5jizא.ً7901،gRsאوt]א1IHg&م. 'Q`'אل'دOאنא${אWPS .`'אلOא53ًj72NQW]א1א03K3F:3 catching exceptions - اﻗﺘﻨﺎص اﻷﺧﻄﺎء .5 'د%وU¤'א53234جאr Try אم$+S7Q aא،z1IصאN.אHدوz%אن :ً ^3אKPT،234אo.'UGQ ]دونאن1א C# try { x+=100; console.writeLine("no errror"); } catch { console.writeLine("some error!"); } ﻛﻮد VB Try x += 100 console.writeLine("no errror") Catch console.writeLine("some error!") End Try ﻛﻮد 234אKbאذ'א$DF!، catchل79אi,3! 7א0FאFDU]1I'د%وU .234אf7QאQ5ن9אKUو، gDHدونא\و 7*אjVאمא$+E$W]א1א5DKbOضDًMQ אNNP> C# try ﻛﻮد { x += 100; console.writeLine("no errror"); } 191 catch (Exception e) { Console.WriteLine("Method: {0}", e.TargetSite); Console.WriteLine("Message: {0}", e.Message); Console.WriteLine("Source: {0}", e.Source); } VB Try x += 100 console.writeLine("no errror") Catch e As Exception Console.WriteLine("Method: {0}", e.TargetSite) Console.WriteLine("Message: {0}", e.Message) Console.WriteLine("Source: {0}", e.Source) End Try ﻛﻮد ضא\^لZON،אذ$DF!ضאDوSHIאNNPF! ،E$אن5P>tאz1IאfN' مD]1xHg(Nאذ$DF!و، overflow G'نPQאن5P>]1نאCf N'Uא C# try ﻛﻮد { x += 100; console.writeLine("no errror"); } catch (OverflowException e0) { Console.WriteLine("value of x more than up bound"); } catch (Exception e) { Console.WriteLine("Method: {0}", e.TargetSite); Console.WriteLine("Message: {0}", e.Message); Console.WriteLine("Source: {0}", e.Source); } VB Try x += 100 console.writeLine("no errror") Catch e0 As OverflowException ﻛﻮد 192 Console.WriteLine("value of x more than up bound") Catch e As Exception Console.WriteLine("Method: {0}", e.TargetSite) Console.WriteLine("Message: {0}", e.Message) Console.WriteLine("Source: {0}", e.Source) End Try Finally اﺳﺘﺨﺪام .5.1 UGN'ً ^F!،:3$D]אو1I'د%وUSWONQ وtry - catch ¤'אQg$WONم$+ :'دאPאGP:3$D53 x q\אU]1IEو$5D(Nאq 3*D C# try ﻛﻮد { x += 100; console.writeLine("no errror"); } catch (Exception e) { Console.WriteLine("Method: {0}", e.TargetSite); Console.WriteLine("Message: {0}", e.Message); Console.WriteLine("Source: {0}", e.Source); } finally { Console.WriteLine("somehing"); } VB Try x += 100 console.writeLine("no errror") Catch e As Exception Console.WriteLine("Method: {0}", e.TargetSite) Console.WriteLine("Message: {0}", e.Message) Console.WriteLine("Source: {0}", e.Source) Finally Console.WriteLine("somehing") End Try ﻛﻮد 193 break اﺳﺘﺨﺪام .5.2 .`'אلON Exit Try وC break אم$+ א5P>،33UzN^N9א53وج+ Target Site اﺳﺘﺨﺪام .5.3 UgN3iدO9א5P>،]1+throw KF3.tאא$ وאJO'لאi$Q$Dh3'3bאlWS!' .]1אEو$نP3!\ Debug KFD HelpLink اﺳﺘﺨﺪام .5.4 ً ^3אKPT:N3iدO9א:NP>Y3N0sوQ5D، gم$+\وאCJOمא$+3iא!د01 C# try { m += 100; Console.WriteLine("no errror"); } catch (Exception e) { e.HelpLink = "www.ahmedgamal-space.blogspot.com"; } ﻛﻮد VB Try m += 100 Console.WriteLine("no errror") Catch e As Exception e.HelpLink = "www.ahmedgamal-space.blogspot.com" End Try ﻛﻮد 194 ﻋﻤﻞ أﺧﻄﺎء ﺧﺎﺻﺔ .6 BaseExceptionJOא53g.7,אQאUً79g3א$+אNP>]1I'عNא53J!oQNP> remote אلU g3א$+ אP3 אK% א53 Iserializable g% א'א53 7T3 g ً MQC جC F :ً ^3אKPTصI]1IoQNP>،:! Iو C# public class NewException : BaseException, ISerializable { public NewException() { // something here } public NewException(string message) { // something here } public NewException(string message, Exception inner) { // something here. } // אلF Sterilization ﻛﻮد protected NewException(SerializationInfo info, StreamingContext context) { // Add something here. } } VB Public Class NewException Inherits BaseException Implements ISerializable Public Sub New() ' Add something here. End Sub Public Sub New(ByVal message As String) ' Add something here. End Sub Public Sub New(ByVal message As String, ByVal inner As Exception) ' Add something here. ﻛﻮد 195 End Sub ' אلF Sterilization Protected Sub New(ByVal StreamingContext) ' Add something here. End Sub End Class info As SerializationInfo, ByVal context As :msdn'ع%אNP>gbN.وאz1I9'لא$QF رابط http://msdn.microsoft.com/en-us/library/ms229014(VS.80).aspx 196 197 اﻟﺒﺎب 11 اﻟﺘﺠﻤﻴﻌﺎت Collections 198 199 ذאلK%C53،bNDi$DnD'd container KF]`3iدDO+\א4אN71U ج$!Nא9.OhJ!53nً אI'صوאVNموא.H9 א53 array KFDNP3אنNQCH وarray U، O+\ אcollectionsאلh$%אوWSK%א53، array אلNS!'tא53^9م אg\א .אz,نgDff'אWSNHد System.Collections ﻓﻲinterfaces اﻟـ .1 :אhg%א'א$%' collection אلUi'د%'\ אhg%א'אN%אH' : Icollection אمKPTאk،:! I وIsSynchronized وאلsize אلK^39طא7NאnDg%א'אlWS' :א C# public interface ICollection : IEnumerable { int Count { get; } bool IsSynchronized { get; } object SyncRoot { get; } void CopyTo(Array array, int index); } ﻛﻮد VB Public Interface ICollection Inherits IEnumerable ReadOnly Property Count() As Integer ReadOnly Property IsSynchronized() As Boolean ReadOnly Property SyncRoot() As Object Sub CopyTo(ByVal array As Array, ByVal index As Integer) End Interface ﻛﻮد 200 : Icomparer .7gDN! : Idictionary gNQوNDوYO&'\אhً ^3 5Q+g3א$+א5P>،د9אK%א53gא53s'وאSFم$+ .:! IوfWL!وאs دوאلnD'،:'אND אو:א9$*+TאnDذ$H'^א5P>r :אKPTkאمKPTא C# public interface IDictionary : ICollection, IEnumerable { bool IsFixedSize { get; } bool IsReadOnly { get; } object this[object key] { get; set; } ICollection Keys { get; } ICollection Values { get; } void Add(object key, object value); void Clear(); bool Contains(object key); IDictionaryEnumerator GetEnumerator(); void Remove(object key); } ﻛﻮد VB Public Interface IDictionary Inherits ICollection Inherits IEnumerable ReadOnly Property IsFixedSize() As Boolean ReadOnly Property IsReadOnly() As Boolean Default Property Item(ByVal key As Object) As Object Get End Get Set End Set End Property ReadOnly Property Keys() As ICollection ReadOnly Property Values() As ICollection ﻛﻮد 201 Sub Add(ByVal key As Object, ByVal value As Object) Sub Clear() Function Contains(ByVal key As Object) As Boolean Function GetEnumerator() As IDictionaryEnumerator Sub Remove(ByVal key As Object) End Interface : Ienumerable .ً7g, : Ienumerator .ً7g, : IdictionaryEnumerator ،א$אlWg אصinterface'אلSאWS، GetEnumerator א$א$` IDictionary U(9' :אمאKPTאk C# public interface IDictionaryEnumerator : IEnumerator { DictionaryEntry Entry { get; } object Key { get; } object Value { get; } } ﻛﻮد VB Public Interface IDictionaryEnumerator Inherits IEnumerator ReadOnly Property Entry() As DictionaryEntry ReadOnly Property Key() As Object ReadOnly Property Value() As Object End Interface ﻛﻮد 202 : IhashCodeProvider . GetHashCodeא$אمא$+Y\ אcollection K hash code אلiدD* : Ilist KPTא:! I وfWLوאR!وאs g3K3אKgدوאلi$DnD'،3אU3KאWS ،Fj. :אKPTkאم C# public interface IList : ICollection, IEnumerable { bool IsFixedSize { get; } bool IsReadOnly { get; } object this[ int index ] { get; set; } int Add(object value); void Clear(); bool Contains(object value); int IndexOf(object value); void Insert(int index, object value); void Remove(object value); void RemoveAt(int index); } ﻛﻮد VB Public Interface IList Inherits ICollection Inherits IEnumerable ReadOnly Property IsFixedSize() As Boolean ReadOnly Property IsReadOnly() As Boolean Default Property Item(ByVal index As Integer) As Object Get End Get Set End Set End Property Function Add(ByVal value As Object) As Integer Sub Clear() Function Contains(ByVal value As Object) As Boolean Function IndexOf(ByVal value As Object) As Integer ﻛﻮد 203 Sub Insert(ByVal index As Integer, ByVal value As Object) Sub Remove(ByVal value As Object) Sub RemoveAt(ByVal index As Integer) End Interface System.Collections اﻟﻔﺌﺎت ﻓﻲ .2 :אhJOאnD'd ArrayList Hashtable Queue SortedList Stack ArrayList • • • • • .2.1 !sא،hi$gNQ§ 53 array אلh@ONF،9א53s'وאSF array Fj.S .!'OV\אlWSbNDKIدא:! IوfWLوאGZوאKQ$! وאs9אhFDKgtאFj7אhאF\ אم$+gN3!'OV3fN،gQ'د3 وiHאאnD'tوא7(אiH)J!NQ$ضאنZON :א3א C# Car[] carArray = new Car[4]; ﻛﻮد VB Dim carArray As Car() = New Car(3) ﻛﻮد gN3i$وאfWrG}H،نV7N אوiدQ}جH،a7!hאH0H9אجf5P_}H ،*jVאlWS03K3אKghאHא53 ^P אarray אلN!'9AFP!،א...oVN\א53 .:! IوfWR 3جאوאR 204 oQ 'S D 3 K ، hF אlWS 'صVx KT3 אS 5D 7 array List hz% 5P K3 אnD ًאHد. 'نP System.Collection لusing KF 'م7 نC $ – א7Q1 arrayList .− ً 79g3,\א C# using System.Collections; ArrayList carList = new ArrayList(); ﻛﻮد VB Imports System.Collections Dim carList As New ArrayList() ﻛﻮد :iH!sאNP>وאن C# Car temp = new Car("BMW", 1990); carList.Add(temp); ﻛﻮد VB Dim temp As New Car("BMW", 1990) carList.Add(temp) ﻛﻮد :'دאPאGP^نאP\אUً ^3iH!אs9،Y3z%U insert KFDًMQא01 C# ﻛﻮد carList.Insert(3,temp); VB ﻛﻮد carList.Insert(3,temp) ::.'39$Y3VND3وC،Fj7אK3301ً MQC C# carList.Clear(); carList.RemoveAt(4); ﻛﻮد 205 VB carList.Clear() carList.RemoveAt(4) ﻛﻮد ::OVNא9$nوC C# carList.Remove(temp); ﻛﻮد VB carList.Remove(temp) ﻛﻮد :ً ^3אKPTًB gDאنHو$وא،د$ \!אCount bאمא$+אNNP> C# ﻛﻮد for (int i = 0; i < carList.Count; i++) { temp = (Car)carList[i]; } VB For i As Integer = 0 To carList.Count - 1 temp = DirectCast(carList(i), Car) Next ﻛﻮد אم$+QدD array gQ'NNP>،ً7NFF sort K^3AI* אjVאمא$+אNNP> ،א7Q1R م$+ indexof א$א،Fj7אG@P Reverse א$א، toarray א$א :אKPT'نذP،i'د%'\אhאH א5FsgNDRאUG وtemp iHאNQ$ضZON C# int find=carList.IndexOf(temp, 0); ﻛﻮد VB Dim find As Integer = carList.IndexOf(temp, 0) ﻛﻮد 17$Q$NP>F،$QF:3 K3وאVNنאP3'لb' find q\אمא$+א01אWPSو .ً bאg3א$+م א$DאوS qدאو$F0RאQא$ 206 .2.2 Hash Table _ذא،1\אhא5DR אKg9א:Fg3، data structure hא5Q§ق53$وא :NSQ$PQ لوI53gDfRV! K.53 hash table אلlWSDh3$.5P رابط http://en.wikipedia.org/wiki/Hash_table IndexesKj9$א53g3نkeysO\א53D'F5DiHDShashtable~!نא،$Q$,HVIو .9אvO\א031\א7א.نP3 T Linked list X :! VND K aQ Linked List 5D iHD hashtable אل5Q'P 'م7 N אU 0sوUz$ وאHashtable oQNPF! אن3C،O+\א:אzא%وא:دوאKF'م7Nو،AIא سH$אUlNF:! I وRemove وAdd,AddRange Q$7 א3אمאوא$+i,3:!hא .א Queue .2.3 3 Queue אنאلs'53]س9 5PhBZא£א9א03و،H'1אU:!LאBZא ولC ،Dequeue אم$+ g%אI وאEnqueue אم$+ : h א0! دQ ، ً ! H' 9 'S .77H'5DE$RNS 5RN!Y%H'אولאSYIא$א ً9'ل אوb'9א3H'UgMאن1א5F!،z Fאh7 23234Nذא 207 hFg\אGQ ) ©\)אH'و4'אS Queue ^אل3אg,}אHو،ًMQאhא !אU، h\(אU:@אN95P،iH'baًאWON 'אولSH'1ً9'bאولو،©\אkIאد 9 slides (مאلN!sאQ'و9אK^3h'لאIدUPRtאbN א53$Q$א¤NS^Q$Lא .א...i$وאi3 taskאلWONQ :אKPTz FאH'ضZON،ً^ א$ אن$Q9 C# Queue empQueue = new Queue(); employee temp=new employee(); for (int i = 0; i < 10; i++) { temp.userName = Console.ReadLine(); empQueue.Enqueue(temp); } ﻛﻮد VB Dim empQueue As New Queue() Dim temp As New employee() For i As Integer = 0 To 9 temp.userName = Console.ReadLine() empQueue.Enqueue(temp) Next ﻛﻮد @N9ً.ً%وIkوC'نPً9'IدYO&'\אنאولא$`، Dequeue KFN Loop KFאنNF.' .سאH$אUSN,tא:! I وCountK^3*jVאمא$+אP3 نC א$א3C،H'1א53i,3:!Wr'م7אولوVNא$ Dequeue א$אنאa7! ,אQgNאK. .نFH'1אU:ªOgNPوGZאUVND אول$g!Peek Queue אل1 O وData Structure H د$. N ' W א5&C ، JO אlWS 1 03 JOאlWS03ًא$DV!אنWN3:O2D5 ^P وאcircular queue وאل، linked list ~אمא$+ 208 Stack .2.4 U IאVNאنא، LIFO - Last Input First Output N70Q:אא$DF! Queue אلK^3 Peek אل، pop אم$+g%אIאQ وPush אم$+bNلאIאدQ،אوجU'אولS'لI$א . Stack אل53 :!W دون9 ً 'I دI אN U 'S אول وVNض אD U S F gFg} 'م7 :אKPTQ Stack אلoQ C# Stack jobStack = new Stack(); ﻛﻮد VB Dim jobStack As New Stack() ﻛﻮد : اﻻﺳﺘﺨﺪاﻣﺎت ،ذnD$F3'אNh71(3ذאن، Queue אلK%א53h3א$+ אH'VKgQ NU:71zTًאQ 'نP}Hא$UN\אj$} Stack אل5P،ً9مאو$ً9وCKbא'א .'3'Pאh71nDi אدUV7Q Stack אمאل$+א!¦نאW،77Lא :نא\د،H'و4אUh9א\دK'S Stack Kאم$+אaC A + B : אKPTH'و4אKI$ AB+ Q5SWONאنSWON stack UkIאدQH'و4אUو، postfix X'9אאWSnFQ .ً MQ אCompilers אلBUI^ل3،'لb'אGZ ^^ א.O אU P א0QHT3 $ ن אinfix وpostfix Y KQ'R אO s'Q 23 h7!\ אU HI .،SWON وstack Ugs'H'و4'مא7QOوKQ'RאO234 אs'Q،ND'F¡ FgNF!HI9אNP>'ز و3مאوא.H9אمא$+KLאNP>،h'א1ضאDDאض9 View .KbOًאFg3NאذאWS.iW!NאnDא53 رابط http://vb4arab.com/vb/uploaded/3/21207604046.rar 209 :0.'\אאWS53i,3KQ'RאFD2nDא عNP>وC رابط http://scriptasylum.com/tutorials/infix_postfix/infix_postfix.html :NS MSDN 0.'3US${KbOא53$Q3 رابط http://msdn2.microsoft.com/en-us/library/aa289149(VS.71).aspx Nذא17NאlWS53 ق19אNP>، Data Structure D1NQسH$אאWSU3K nD ً 13 'نP אن¤$O ، \D U ^ ًא3 KIא$Q Wא א_ אWS 5D ^P! א3 U G . Algorithms !אلsא:א 537T3ًVV§^ אAIאhJ!nD'dوSystem.Collections.Specialized fQ3¤NSًMQC .7אhJOא 210 211 اﻟﺒﺎب 12 اﻟﺒﺮﻣﺠﺔ اﻟﻤﺘﻘﺪﻣﺔ ﻓﻲ .net 212 213 .net 200803i3ولg&Wא$Q$אgN3 .netU4אbNDnDff'KVOאאWSU .XאאWSUQ'gF`NF.אW،3ًD'3$73gNP ًو.i'د%'3bNDgN3وa7! Generic .1 generics אلS، .net framework 2.003i$Q$אhאH'1א53i$وא03سH$אאWSUKb'א :אKPTD13ً9^3 ضZON، overloading 'مאلgO\ًא$Q$%ًא$1 C# public static void print(int x) { Console.WriteLine("Print As Integer {0}", x); } public static void print(long x) { Console.WriteLine("Print As Long {0}", x); } public static void print(string x) { Console.WriteLine("Print As String {0}",x); } ﻛﻮد VB Public Shared Sub print(ByVal x As Integer) Console.WriteLine("Print As Integer {0}", x) End Sub Public Shared Sub print(ByVal x As Long) Console.WriteLine("Print As Long {0}", x) End Sub Public Shared Sub print(ByVal x As String) Console.WriteLine("Print As String {0}", x) End Sub ﻛﻮد U01א${אWPSو،OhאZ3Hل799@אONدوאلE KFم.s'وאSF'دPא $S,وO א'אعD1hFDi$DX%،'صVN אوlongs Kمאو.H D1אא$אzD$'د אPא :א3א\^لאوאKnD،D1אB 214 C# print("Ahmed"); print(12); print(1000000000000); ﻛﻮد VB print("Ahmed") print(12) print(1000000000000) ﻛﻮد :אKPTD1א2'نP K،h אq\א53ًN3ًD'K79دאoQאنP3 אن،ًD''مgO\ אq Generics אل אKPT7 אE ^وאلא$אضאZ!א01$.אW،س9אאWSnD:3K3< وT> K7 S C# public static void print<T>(T x) { Console.WriteLine("Print As {0}: {1}",typeof(T), x); ﻛﻮد } VB Public Shared Sub print(Of T)(ByVal x As T) Console.WriteLine("Print As {0}: {1}", GetType(T), x) End Sub ﻛﻮد 215 :2N'نאPQf'،@ א\^لאONN71Uوאن Structure and Class Generics .1.1 Structs وאلClasses ً אلMQ א، Generics אل1 t אmethods אلnD N! س אH$ אU nD1NQ class אلnD1NQ3 وclass ^لאل3ضZON،gh'م אgO\אאWS1gNP> . struct אل Sو9אnD'عאولN'אd0jMא53YD'NQ$ وאن،0jMאnD ' J!ضZON ،'دH אnD'iS%AIC0jMאوאد(و¹א53)א'عK[ אUgNV Qtא0jMא .AIC0jMU.H و0jMאUאnD'd$. Identify K7אن2N7Q1אlWg N3אذא$Q$R71N3F.0sوfא(و5CUوC، ºVON3 YJ!'د% و4ن$7אKLא lWSU، 'مgO\אאWS q Generics אل035P، numbner אلK7 אمname אلK7م$+ :אKPTJOאVLא C# public class product<T> { private T Identify; public product(T val) { ﻛﻮد 216 Identify = val; Console.WriteLine(Identify); } } VB Public Class product(Of T) Private Identify As T ﻛﻮد Public Sub New(ByVal val As T) Identify = val Console.WriteLine(Identify) End Sub End Class :אKPT 'عאولNא535joQcNP>وאن C# product<int> prd = new product<int>(1001); ﻛﻮد VB Dim prd As New product(Of Integer)(1001) ﻛﻮد :אKPT^'عאN א53وC C# product<string> prd2 = new product<string>("Some Product"); ﻛﻮد VB Dim prd2 As New product(Of String)("Some Product") ﻛﻮد Generic Collection .1.2 Generic KFD nD אنHو$ אb א، Generic Class KFD NP3 س א אنH$ אU N! F NFF، Add,Delete ... etc K^3hFDi$'م7Q وhJ! i$D K7 J! KF'م7N، Collection :3 Collection nD^ل3אWS ،ً7 217 C# public class MyCollection<T> { private List<T> myList = new List<T>(); public T GetItem(int pos) { return myList[pos]; } public void AddItem(T it) { myList.Add(c); } public void ClearCars() { myList.Clear(); } } ﻛﻮد VB Public Class MyCollection(Of T) Private myList As New List(Of T)() Public Function GetItem(ByVal pos As Integer) As T Return myList(pos) End Function Public Sub AddItem(ByVal it As T) myList.Add(c) End Sub Public Sub ClearCars() myList.Clear() End Sub End Class ﻛﻮد nFQ3אWS،:! IوRً bאi!'3 q*אjV}אH*وjV א53 ^P!אsאP3ً Q אدColelctions ل אل$ :D دFD9 א79 Kא3 U 5P> Generic Collection ~ : ً ^3 אKPT،hאHא53 ذEmployee .... אوCar K7Qאن5P> C# MyCollection<Car> myCars = new MyCollection<Car>(); myCars.AddItem(temp); MyCollection<Employee> myCars = new MyCollection<Employee>(); myCars.AddItem(tempEmployee); ﻛﻮد 218 VB Dim myCars As New MyCollection(Of Car)() myCars.AddItem(temp) Dim myCars As New MyCollection(Of Employee)() myCars.AddItem(tempEmployee) ﻛﻮد :م.H אnوC C# MyCollection<int> myCars = new MyCollection<int>(); myCars.AddItem(12); ﻛﻮد VB Dim myCars As New MyCollection(Of Integer)() myCars.AddItem(12) ﻛﻮد .name K^3 *jVI nD 'd N אصGeneric Collection 'ن אلP PT3 N hg& NS t وאWhere iא[`'زFP אNhz%NS53،ً ^3م.H אوhJOאKPً ^3!'Q93אWSو،gs .دم7سאH$אUgNDE$RN Where T اﺳﺘﺨﺪام .1.3 $]وطTא0sوNNP>،hJOאA'K79 אنGeneric Collection אلKFDUطTאאWSNQ :قא1א nN\א طTא ValueTpe 'عNא53 h אq3A'K7Q9r where T : struct RefernceType'عNא53A' K7Q9 where T : class Constructor nD'dאن$9 where T : new() interface 1QאوY3 class 53T3'نPQ אن$9 where T : classname where T : Iinterfacename .Y3 :Q'א\^لאAN،gM03وط,i$D23دNNP>7Q1אlWg 219 C# public class Example <T> where T : class, IComparable, new() ﻛﻮد VB Public Class Example(Of T As {Class, IComparable, New}) ﻛﻮد . Constructor nD' وIComparable g%א'א1، reference 'نPאن$9 T אنcQאWS :ًא\^لאMQC C# public class Example<K, T> where K : class, new() where T : IComparable<T> ﻛﻮد VB Public Class Example(Of K As {Class, New}, T As IComparable(Of T)) ﻛﻮد IComparable g%א'א1 אن$9 T F! constructor k وRefernce 'نPאن$9 K אنcQאWS .0F`'O3g%53ً9$ T UzTאPRאP3 bא،وאن Delegates .2 . Delegatesאل03i\אlWS$D'3 ، advanced .net programming אل03NHKb'א .g3א$+'م7 \ذאvT'م7N،g3K3אOوgvTאنK. :אKPT אnDSو،KQ'RאhFbIًMQ אint $ وint K7دوאلi$DضZON C# public int ConvertEGToD(int EG) { return EG * 5.45; } public int ConvertRSToD(int RS) { ﻛﻮد 220 return RS * 3.75; } public int ConvertEGToRS(int EG) { return EG * 1.45; } public int ConvertDToRS(int D) { return D * 3.75; } public int ConvertDToEG(int D) { return D / 5.45; } public int ConvertRSToEG(int RS) { return RS / 1.45; } VB Public Function ConvertEGToD(ByVal EG As Integer) As Integer Return EG * 5.45 End Function Public Function ConvertRSToD(ByVal RS As Integer) As Integer Return RS * 3.75 End Function ﻛﻮد Public Function ConvertEGToRS(ByVal EG As Integer) As Integer Return EG * 1.45 End Function Public Function ConvertDToRS(ByVal D As Integer) As Integer Return D * 3.75 End Function Public Function ConvertDToEG(ByVal D As Integer) As Integer Return D / 5.45 End Function Public Function ConvertRSToEG(ByVal RS As Integer) As Integer Return RS / 1.45 End Function 221 لQ وאV\ אN א، h FD E Y O+\ אh Q'R م$+ دوאلi$D g! ، ً ! (9 F .PQ3אH9و$א'دوא دوאل03ً ^3ذKFD015NNP،KQ'Rא.HK^> q3لHوאi$ دאوאUgFDNNP>ً .s'אא\^لWg!אW،Oو4א א دא$Q$R switch אوif ط, B م$+ 53 و، م$+\ א53 h אC7N N U אن :X'P\'دאPV אWS،ghلאH'م7N C# if (Operation == 0) result = ConvertDToEG(userInput); else if(Operation == 1) result = ConvertRSToD(userInput); ﻛﻮد VB If Operation = 0 Then ﻛﻮد result = ConvertDToEG(userInput) ElseIf Operation = 1 Then result = ConvertRSToD(userInput) End If אWS،ً79SWONNم$+F gsDوSWONدونF!'عא3אن 'دa7!NضאZON5Pو U3O9CًMQא،FאWONi3مو$+\אnD ضi3،Y3HI9אhאW'م7NNאcQ ذאOperation אل.A'ªO93د3و،YOYP3UY3FאWON ج$.א .AICi3طTאKBKF1M . Delegatesאلh$%אوWSK%C53 Delegates ﺗﻌﺮﻳﻒ ال .2.1 hאZ3Hدא$D@O53وאل$ אlWS'نPאن:ج3אول،دوאلD'F¡ Delegates oQدH'א :אKPTNوא$ אصDelegate 'نאلPאW، output وאلinput @אلOkًMQC 222 C# public delegate int myDelegate(int value); ﻛﻮد VB Public Delegate Function myDelegate(ByVal value As Integer) As Integer ﻛﻮد אW ،gNDولp\אא$ א−BZ אRb ن−Q'OאאWkد$אنאTאBUD3Kوאن אKPTiV+\אNو,'نP C# if (Operation == 0) { myDelegate aDelegate = new myDelegate(ConvertDToEG); result = aDelegate(userInput); } else if (Operation == 1) { myDelegate aDelegate = new myDelegate(ConvertRSToD); result = aDelegate(userInput); } ﻛﻮد VB If Operation = 0 Then Dim aDelegate As New myDelegate(ConvertDToEG) result = aDelegate(userInput) ElseIf Operation = 1 Then Dim aDelegate As New myDelegate(ConvertRSToD) result = aDelegate(userInput) End If ﻛﻮد ، AIC i3 g3א$+אHאP אو، QgN Delegate אلWON 'م7Q W אIط אT אI] P3 MQא 'دPאNP>אW، אنF אlWSWON*§אدאfRbא$. aDelegate אنאل :אKPT C# if (Operation == 0) { myDelegate aDelegate = new myDelegate(ConvertDToEG); ﻛﻮد 223 } else if (Operation == 1) { myDelegate aDelegate = new myDelegate(ConvertRSToD); } // NS3אوאWO result = aDelegate(userInput); VB If Operation = 0 Then Dim aDelegate As New myDelegate(ConvertDToEG) ElseIf Operation = 1 Then Dim aDelegate As New myDelegate(ConvertRSToD) End If ‘NS3אوאWO ﻛﻮد result = aDelegate(userInput) $]א$C537دونאن133وאCCWON53gNnא$אzD$ אI]NP>،אWPSو .i$وאlWS،AICi3 KFאUً^ א$OQאWS،WONS% DelegateאلiدDوאVON3دאU$]אKFDNP>^وא .hD'FKP,nD Events اﻷﺣﺪاث .2.2 (א...אم$bאE)دiH9وC( א... ض3)$NDo&'3Y3E$KF'م7אنאنN%' وذא،:E$Lbאא$אQF'م7و،ً ^3 Event DelegatesQ5Dً7W'م7N SWONtאEא$9 ListKFD01!א3nDHد.]! Delegates אلU'$.N . Delegate אאلWSnD ... Event iא[`'زFPאQ5Di$Q$% 7Q13אNאن *K7QDelegateKF ً ^3iHKVtאEא$!א5Dولp3 Delegate Qא$ אUfN :'1\אא 224 C# public delegate void CarEventHandler(string msg); ﻛﻮد VB Public Delegate Sub CarEventHandler(ByVal msg As String) ﻛﻮد :Eא$9אoQ'م7Nوאن C# public event CarEventHandler Exploded; public event CarEventHandler Damaged; ﻛﻮد VB Public Event Exploded As CarEventHandler Public Event Damaged As CarEventHandler ﻛﻮد :אKPTg!E$אWON'دP لאI53NP>אن C# Damaged("my car"); ﻛﻮد VB Damaged("my car") ﻛﻮد ً ^3iHאKS!\، 9مC ذK.:. \!ذאنא9 אمevent==null אHIאNP>ً MQCو .9مCS 3$ :5jP אE$L! دאאs9،17I C# Car.EngineHandler d = new Car.CarEventHandler(CarExploded); ﻛﻮد VB Dim d As Car.EngineHandler = New Car.CarEventHandler(CarExploded) ﻛﻮد 225 WوאK\*אNאnDzNHHg&אS'و1\אFg\אWON CarExplodedא$אoQQ :ً ^3אKPT،DamagedE$LאU:Hא C# public void CarExploded(string msg) { Console.WriteLine(msg); } ﻛﻮد VB Public Sub CarExploded (ByVal msg As String) Console.WriteLine(msg) End Sub ﻛﻮد C# ﻓﻘﻂ ﻓﻲAnonymous Methods اﻟـ .3 q3 אم$+دאzD$אP3نC¤H$]! Delegates אل5DسאH$אD' א$.Nذא . Delegate 'عNא53 :4F.WאE$LאK^F!אدאsאP3אن¤H$Rb אEvents XسאصH$א$و :ً ^3 אKPT C# t.SomeEvent += new SomeDelegate(MyEventHandler); ﻛﻮد 53אو$אoQoP\א53'نP אW،a7!نP\אאWSUA'א$אzD$א$Q9ضאZONوאن oQ P3 Anonymous Methods fQ 3 N g(Q NS ، Delegate U SzD$ א . 'دPאaאو$א :ً ^3'دאPאAN C# t.SomeEvent += delegate{ Console.WriteLine("Some Text"); } ﻛﻮد 226 ، a7! g3א$+ א0.'3 U א$ אoQ P3 אنb אA F . C# 03 a7! 5P وRb אWS :ً ^3אKPThאZ3Hi$DK7א$'ن אPًאنMQא5P> C# t.SomeEvent += delegate(object sender, CarEventArgs e){ Console.WriteLine("Some Text {0}",e.msg); } ﻛﻮد .g!gOQtאא$אUi'د%'\אh אq\אKV אنAnonymous method نאلP3ًMQC اﺳﺘﻨﺘﺎج اﻧﻮع اﻟﻤﺘﻐﻴﺮات .4 :אKPT:D' $Q$ دونq3oQnD5QHد.N،6`'אلOمאQCU VB Dim x x=10 ﻛﻮد UًD'N39אאWSK^3نYU، Object 'عNא53ًj$3gOQ'م7Q `'אلOنא0.א'אU .אjD0tאhqא :ً ^3אKPT:D'$Q$%Lونא$ q3oQXH,نאP3b א،.net 200803 C# var x = 2.3 // double ﻛﻮد VB Dim x = 2.3 ‘ double ﻛﻮد ً ^3NP>5!،ًאHW55P،hא53א 'عK"nDHد. q3oQ'SFאlWS53f$kא نC var K5P>9ً אIC،k return value אلUوCא$אhאZ3HU אو،i,3JOאU var oQ . = null F. KFd :g! var אم$+א5P>9 tאz1Iא0F®א\^لא 227 C# class classname { // i,3JOאU:OQ5P>9 ﻛﻮد private var varInt = 10; // ¤אوZ3HoQא5P>9 return value . var functionname(var x, var y) { } void somefunction() { // F.KFdאن5P>9 null var varNull=null; // F.KFdאن5P>97Q1אlWgn وnull var? varNullable = 12; // F.Y53$9 var m; } } Extension Methods اﻟﺪوال اﻟﻤﻤﺘﺪة .5 nD KQ$ אb אlWS ، i$Q$ א.net 2008 'אصI 53 i$ وאExtension Methods ~א .i$Q$%ودوאلC!دאsًوא73i'د%'3hJ! م$+دאKF'م7N،وZP9א$Q4אRb53$]'م7 string JO!دאsא$QNضאZON :ً ^3אKPTRegex C# public static class Extensions { Public static bool IsValidEmailAddress(this string s) { Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"); return regex.IsMatch(s); } } ﻛﻮد 228 ﻛﻮد VB Imports System.Runtime.CompilerServices Module StringExtensions <Extension()>_ Public Function IsValidEmailAddress(ByVal s As String) As Boolean Dim regex As New Regex("\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*") Return regex.IsMatch(s) End Function End Module :אKPT string q3oQKPNNP>،وאن C# string mailExample = "email@mail. com"; MessageBox.Show(mailExample.IsValidEmailAddress.toString()); ﻛﻮد VB Dim mailExample As String = "email@mail. com" MessageBox.Show(mailExample.IsValidEmailAddress.toString()) Automatic Properties ﻛﻮد .6 :ً ^3אKPTPوאizא7 Get وSet دوאلoQ'م7N Properties zTאK%א53ًو7 C# public class myclass { private string _name; public string name { get {return _name} set {_name=value} } ﻛﻮد VB Public Class [myclass] Private _name As String Public Property name() As String ﻛﻮد 229 Get Return _name End Get Set _name = value End Set End Property End Class :אKPT 'دPאP3bאنא C# public class myclass { public string name{get; set;} } ﻛﻮد VB Public Class [myclass] Public Property name() As String Get End Get Set End Set End Property End Class ﻛﻮد Lambda Expressions ﺗﻌﺒﻴﺮات ﻻﻣﺪا .7 نP3 U א$ 'د א53 NNPe t אAnonymous Methods 5D 'عs'3 U N$ $. N K7tאدא$Dא5DRg!'م7!'OV3ضZON ،a7!i$وאi3A'gD$5N3د3SzD$א :2nDF7א C# static void TraditionalDelegateSyntax() { List<int> list = new List<int>(); list.AddRange(new int[] { 20, 1, 4, 8, 9, 44 }); Predicate<int> callback = new Predicate<int>(IsEvenNumber); ﻛﻮد 230 List<int> evenNumbers = list.FindAll(callback); Console.WriteLine("Here are your even numbers:"); foreach (int evenNumber in evenNumbers) { Console.Write("{0}\t", evenNumber); } } static bool IsEvenNumber(int i) { return (i % 2) == 0; } VB Private Shared Sub TraditionalDelegateSyntax() Dim list As New List(Of Integer)() list.AddRange(New Integer() {20, 1, 4, 8, 9, 44}) Dim callback As New Predicate(Of Integer)(IsEvenNumber) Dim evenNumbers As List(Of Integer) = list.FindAll(callback) Console.WriteLine("Here are your even numbers:") For Each evenNumber As Integer In evenNumbers Console.Write("{0}" & Chr(9) & "", evenNumber) Next End Sub Private Shared Function IsEvenNumber(ByVal i As Integer) As Boolean Return (i Mod 2) = 0 End Function ﻛﻮد :fFאKPTgND1 b אC# 2008 53 Anonymous Methods KN3א$+א03 C# List<int> list = new List<int>(); list.AddRange(new int[] { 20, 1, 4, 8, 9, 44 }); ﻛﻮد List<int> evenNumbers = list.FindAll(delegate(int i) { return (i % 2) == 0; } ); Console.WriteLine("Here are your even numbers:"); foreach (int evenNumber in evenNumbers) { Console.Write("{0}\t", evenNumber); } KPT g 5P> t وא، Lambda Expressions fQ 3 אم$+' אS .net 2008 U $Q$א :א 231 ﻛﻮد X => f(X) :אKPT i%2==0 U True $tوאNbאא$'نאPאW C# (int i) => (i % 2) == 0; ﻛﻮد VB Function(i As Integer) (i Mod 2) = 0 ﻛﻮد f' Lambda نZ3H'عאoQ5DzNq9אnNP>، int :D'و،Z3H אS i אنאل :אKPTK3P'دאP'نאPאW،ًj7:Df C# List<int> list = new List<int>(); list.AddRange(new int[] { 20, 1, 4, 8, 9, 44 }); List<int> evenNumbers = list.FindAll(i => (i % 2) == 0); Console.WriteLine("Here are your even numbers:"); foreach (int evenNumber in evenNumbers) { Console.Write("{0}\t", evenNumber); } ﻛﻮد VB Dim list As New List(Of Integer)() list.AddRange(New Integer() {20, 1, 4, 8, 9, 44}) Dim evenNumbers As List(Of Integer) = list.FindAll(Function(i) (i Mod 2) = 0) Console.WriteLine("Here are your even numbers:") For Each evenNumber As Integer In evenNumbers Console.Write("{0}" & vbTab, evenNumber) Next ﻛﻮد : return value :א\^لאnD ع9אNP>،a7! true , false وCi$وאF.iدDאa7!@NNP> 232 C# List<int> evenNumbers = list.FindAll((i) => { Console.WriteLine("value of i is currently: {0}", i); bool isEven = ((i % 2) == 0); return isEven; }); ﻛﻮد ...א$אGوذ،Z3H53^אQe NNP>ًMQC : Lambda ﻣﻮاﺻﻔﺎت .אbILambdae9− .OverridesوCOverloadsK^3OOPد¨אل3אم$+א5P>9− .ًj7h אq\جאNאQذ539$وiא\دF7'عא$Q$RAS.م$+9− .ًMQCدאzD$א5P>و،IzToQ@'د'دو%و53$9 אKIدא− .i,3א$א.iدDאQKReturnאم$+אQ9− .LambdaU{}وCEnd$%'Q9− .VBUOptinalאم$+א5P>9− .Genericאم$+א5P>9− Object Initializer Syntax ﺻﻴﻎ اﻧﺸﺎء اﻟﻜﺎﺋﻨﺎت .8 9*אjVI'tאYO&'\אJ! 5DQ^3אi$ضNa7!،سH$אאWSUً^ אK15 .G\وאFوא : .net 2008 K.3א\^لאول C# public class Employee { private string _name; private string _age; private string _salary; public string name { get {return _name;} set { _name = value; } ﻛﻮد 233 } public string age { get {return _age;} set { _age = value; } } public string salary { get {return _salary;} set { _salary = value; } } } VB Public Class Employee Private _name As String Private _age As String Private _salary As String Public Property name() As String Get Return _name End Get Set _name = value End Set End Property Public Property age() As String Get Return _age End Get Set _age = value End Set End Property Public Property salary() As String Get Return _salary End Get Set _salary = value End Set End Property End Class ﻛﻮد 234 :سHدUSNFt אautomatic property אم$+ و.net 2008 03^א\^لא C# public class Employee { public string name{get;set;} public string age{get;set;} public string salary{get;set;} } ﻛﻮد VB Public Class Employee Public Property name() As String Get End Get Set End Set End Property ﻛﻮد Public Property age() As String Get End Get Set End Set End Property Public Property salary() As String Get End Get Set End Set End Property End Class 'لb' א$Q ، .net 2008 53 $Q$ אObject Initializer Syntax אم$+ א03א\^ل א^ و : אKPT'دGPNאU،7قא1א$]gOQNt*אjVא C# Employee e = new Employee(); e.Name="Ahmed"; e.Age=15; e.salary=6000; ﻛﻮد 235 VB Dim e As Employee = New Employee() e.Name = "Ahmed" e.Age = 15 e.salary = 6000 ﻛﻮد :NS$Q$א C# Employee e = new Employee { Name = "Ahmed", Age = 15, salary=6000 }; ﻛﻮد ﻛﻮد VB Dim e As Employee = New Employee With {.Name="Ahmed" ,.Age=15,.Salary=1500} Anonymous Types اﻻﻧﻮاع اﻟﻤﺠﻬﻮﻟﺔ .9 nD f f' سH$א אWS U ، .net 2008 U i$Q$* אjV אv, سH$א אWS U Kb'א .Anonymous Types $ !אن3א،XH,אU var FPאمא$+'gh אq3oQNP3 אنNFNאnN9 'دPא(א،3$7\אUً ^ אKא5،ًMQ'אgא'אعoQP3Ka7!Q'k'אgh אq3 : א C# var e = new { Name = "Ahmed", Age = 20 }; ﻛﻮد VB Dim e = New With {.Name = "Ahmed", .Age = 20} ﻛﻮد . ً b אJOאoQون$ e.Age وe.Name izא.P3bאنא :VjVI nD 'd 'g! אW System.Object i,3 lدN אQ Anonymous Types ! ً אل .9א 236 . ﻣﺎذا اﺳﺘﻔﻴﺪ ؟ 9 א م وB 2 izא. 'دNض אZON ، م9 אB 2N a J! oQ NNP> LINQ U :אKPTذQ،2NאKP,ًא$Q$ C# var result = from emp in employee select new { emp.Name, emp.Salary }; ﻛﻮد VB Dim namePriceQuery = From emp In employee Select emp.Name, emp.Salary ﻛﻮد : Key Properties اﻟﺨﺼﺎﺋﺺ اﻟﻤﻔﺘﺎﺣﻴﺔ H'3Ci$Qאد5DO\*אjVאo§ Y'gYD'Yiא\وאH7\a7!O\*אjVمא$+− a7!izא7Fjدאg!O\*אjVא. q5P>9− .'g¡א'אعאK%C53%Z\אl$'QWאHash Code~א5FsgNFMQO\*אjVאa7!− Equality اﻟﻤﺴﺎواة 3} ©\'م א7Q'ل وg¡'ع אN@ אON h אq3 'نP 3$ND Qو3 'g¡ א'אع אh אq3 'نP :وطאTאFg!h!''عذאN@אO535Q qF5Q q3 .Scope@אلOUFgNDQVא− L zאH73'نPوGZ@אONgNDQV'عوאNوא9@אOFgVjVIe − .fא .C*jV+iد$)g!*jV@אO− .K.אnDi$وאCbI'عK>− .a7!:ONQو3'نPQO3bIC>9'لg'ع5DQVوא ...O\*אjVא. q5P>9:C@N9F 237 Partial Methods .10 53^אU JOאP3אنK،i$ وא71N3U JOא0sوnDًא4אن$_،$Q$,HVI J!0Q'SKi$Q$%J!@lWSאنnDل$JOאאUPartialFPمא$+אنOPQ،0s'3 :ً ^3אKPT،IنP3 U!3 C# partial class Car { } ﻛﻮد VB Partial Class Car ﻛﻮد End Class $ _ ، Partial Methods fQ 3 ًאIp3g& ذ$ 5P و، .net 2005 VD 03 אWS ن :אKPTذQ،ًMQא$نوאP3Uא$אPًא1M3 C# partial void methodname(string parm) { ﻛﻮد } VB Private Partial Sub methodname(ByVal parm As String) ﻛﻮد End Sub oQ%Lونא$kودوא9אhJO*אjVIQ'1U 'ع^ ًאs'\אאWS!دC،ª Fً .gN3i$Q$%+ 238 Garbage Collector .11 Qn3وiאWאUgNQ§QoNO_ ]لNNPو،א..hJ!وh אq3fN7אNوH لدI . GC وאلObject lifetime אلSO3 لI53سH$אאWSUgD G<f'J9אlWS،g!W אWS TQ refernce XًPV0. !¦ 'אOBJECT FROM CLASS J!535jPOQ$ND .234صI stack UًMQא$%'Q reference אאلWS، heap אلU'د%'\א5jPא :'אS1'نא¯لאP، stack אل53 reference אلfWQא$אzgאوא234א قא$ garbage אلdQ ، k TQ 53 ${ 9 t אhNjP אhJ} iאW א±e f' L אlWS Uو 77LאUאو،3$+\ אhJOאfWr'م7Qאא¯لWS53 GC ًאHVIא:3QWوאcollector .234אKIدא53g'لb'אP3$Q_tאhJOא0B fWr'م7Q'g! GC 03 אن3 א، אول ]ول3$+3 q א אq3 fWr 'م7 ض אنZO\ א53 نC++ م אلQ אU .T دونאنSWONQمg\אK%Rb! 53NjfWL GC Ki,3iH,א1Q9אWS0.א'אU، =null KF 'م7אنSًD',^9אLא .ً ^3iאWא±e3$ND،gPRאNP>93(LU:!W:NP ،iאWא GC اﻟﻔﺌﺔ .11.1 Pro X 53 iH'b lWS ، g3 ,\ אK3 א53 NPe tאول א$ א53 د$D nD GC JO' א :g3א$+وאلوא$אCsharp 2008 239 : Finalize() K. مg\ אWON و: overriding KFD NP> ، 5jP אfW .ص وN. א53 E$Lא אWS NP> .5jP א3$ :אKPTذQ C# class example { ~example() { Console.Beep(); } } ﻛﻮد 240 VB Class example Protected Overrides Sub Finalize() Try Console.Beep() Finally MyBase.Finalize() End Try End Sub End Class ﻛﻮد Operator Overloading .12 53 q\^ ًאF!،gN37T\אhJOאnDhFD WONO+\אh 3\مא$+،Nj'אعא9אU .א...v:אnD−،0B:אnD + K3\אgOQ Integer 'ع .אWPSو،YV23$:אnDً ^3+ q\אgO String 'ع53h אq\ ً אMQא :ً ^3אKPT Point 'ع53 Structure KFNF.'אن C# public struct Point { private int x, y; public Point(int xPos, int yPos) { x = xPos; y = yPos; } } ﻛﻮد VB Public Structure Point Private x As Integer, y As Integer Public Sub New(ByVal xPos As Integer, ByVal yPos As Integer) x = xPos y = yPos End Sub End Structure ﻛﻮد 241 53، 2N א$STאن:.'3،ط7Nאvو0F −אو+K3\אمא$+وא،ط7i$DoQ X%אن Uא9،ً3FgBوC، y אאلW אوو53^א17NאU x אلv5DiHD'نPQنCضZO\א v1وא0Fאh 33 D$Q9 Point nF\ אstructure ]ن¤$O]1IHnDA'KV 50.א'א : אstructure אلvو0Bh 33!s'م7Nאن C# public struct Point { private int x, y; public Point(int xPos, int yPos) { x = xPos; y = yPos; } public static Point operator + (Point p1, Point p2) { return new Point(p1.x + p2.x, p1.y + p2.y); } public static Point operator - (Point p1, Point p2) { return new Point(p1.x - p2.x, p1.y - p2.y); } } ﻛﻮد VB Public Structure Point Private x As Integer, y As Integer Public Sub New(ByVal xPos As Integer, ByVal yPos As Integer) x = xPos y = yPos End Sub Public Shared Operator +(ByVal p1 As Point, ByVal p2 As Point) As Point Return New Point(p1.x + p2.x, p1.y + p2.y) End Operator Public Shared Operator -(ByVal p1 As Point, ByVal p2 As Point) As Point Return New Point(p1.x - p2.x, p1.y - p2.y) End Operator End Structure ﻛﻮد :אKPT'دNP>אن 242 C# Point p3 = p1 + p2; ﻛﻮد VB Dim p3 As Point = p1 + p2 ﻛﻮد . Points אل0BFRRV`אNאnDKVR :i,3'دNP>ً MQC C# p2-=p1; ﻛﻮد VB p2-=p1 ﻛﻮد 53 Static function oQnD A'ًאHد.'نP5C 'S'عs'\אאWg QF!:DfN3I .K33 overloading KFDK%א 53 ذ 'عKFD NP> K ، overloading KFD 5P> 53 a7! v1 وא0F אh 33 :a7!XH,אU−−و++ً ^F!،h 3\א C# public static Point operator ++(Point p1) { return new Point(p1.x+1, p1.y+1); } public static Point operator --(Point p1) { return new Point(p1.x-1, p1.y-1); } ﻛﻮد א$ overriding KFD 03 ً 7 NF 3 K^3 77 =! وC == KFD وiوאل א\وא$ N 3@ אO :אKPTא$אlWSnDNS$FN،Equals C# public override bool Equals(object o) { return o.ToString() == this.ToString(); } public static bool operator ==(Point p1, Point p2) { return p1.Equals(p2); ﻛﻮد 243 } public static bool operator !=(Point p1, Point p2) { return !p1.Equals(p2); } VB Public Overloads Overrides Function Equals(ByVal o As Object) As Boolean Return o.ToString() = Me.ToString() End Function Public Shared Operator =(ByVal p1 As Point, ByVal p2 As Point) As Boolean Return p1.Equals(p2) End Operator Public Shared Operator <>(ByVal p1 As Point, ByVal p2 As Point) As Boolean Return Not p1.Equals(p2) End Operator ﻛﻮد :h 3\אlWS53 overloading KFDP3אن${אWPSو Pointers اﻟـﻤﺆﺷﺮات .13 !W5P_'3C،W5P_ '3C، pointer nN3¤H$$]]!، C++ 2343Nذא *§t وאpointer type ًאلMQא¤NS، refernce type وאلvalue type !אلs9:אfאن .iאWאUN3 53אiH,9 ذKF unsafe code אم$+91MK،1'دאPאUg3K3 5א:!3ولCQא$ g3א$+ON vFً9אو.אW، pointers אل03K3ًsאZ!אF5XH,ن אC :אKPT 244 :ً ^3אKPT pointers אل03K3Q 'دNP>'دאصP لאI53وאن C# class Program { static void Main(string[] args) { unsafe { // Work with pointer types here! } // Can't work with pointers here! } } ﻛﻮد :^3אU'صqאنK. pointersאل03K3אnDNNtא אhאدوאnDfNאن אم$+9א hאدوא pointeroQم$+ * iאWאU q\'אنאND !\ & t אJO אKI دא3 K7 'لb' م$+ -> pointer אلg TQ .:! IوH7\وאhא,p\א5Fs¤Rא !=،== ،- ،+ ،-- ،++ UKF'אg@ON'نPQ5 unsafe code אل03K3אنאoTPf' سH$אאWSUHאFא03 .QאدXH, لI 53safe code 245 ؟unsafe code وﻟﻜﻦ ﻟﻤﺎذا اﺳﺘﺨﺪم ال .FאضC • . pointers لI53ً bאKFt אCOM Components אوאلdll's אل3א$+א • .iאW,\'لאb' ل אI53N3Fg3DوzאدאY)و • نImage Processing hFD KF 3 iH'b pixels izא. zNC وN ج אص+وع אT3 U Q'FD'نPgNPو،Pوאizא7H'Vb אSetPixel وGetPixel אمدوאل$+אNP3 אل03 K3 وאunsafe code אم$+ نKQ$ אKL א، 7Q1 אlWg pixels ~ אnD HوF ًא$% وGetpixel 7Q1 YH'bv1^ ً'د3X%،iH'Vb אpixels אلnDHوFi,3pointers ... قHO4IC و،pointers אم$+AICi3g%سH$אlWS$و،setpixel ...اﻵن ﺳﻨﻌﻮد ﻣﺮة أﺧﺮى ﻟﻨﺸﺮح ﻣﻦ اﻟﺒﺪاﻳﺔ :אKPT pointer oQאنNP> C# public Node* Left; ﻛﻮد :אKPT unsafe 'عNא53 class אوstructure oQP3K،a7!אWS@ C# public { public public public } ﻛﻮد unsafe struct Node int Value; Node* Left; Node* Right; 246 :ً MQودאאC C# public { public public public } ﻛﻮد unsafe struct Node int Value; Node* Left; Node* Right; VB unsafe static void SquareIntPointer(int* myIntPointer) { // Square the value just for a test. *myIntPointer *= *myIntPointer; } ﻛﻮد :אKPT & אم$+Z3HאKNذن،Z3H אU q\אoQ*N3$+א$.N\و C# SquareIntPointer(&myInt2); ﻛﻮد :ً ^3אKPT -> م$+N Node אلU Left q\'ل אb'ًMQC C# n->Left=5; ﻛﻮد ؟VB.net وﻣﺎذا ﻋﻦ i) Marshal JO '! א5P و، i,3 hא,p\ א53 iدO9 אNP> 5! VB.net 2343 N ' :C#'دאPضאZON،hא,p\_אD53Q. C# unsafe {BitmapData bmpData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ﻛﻮد 247 ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); byte * pixel = (byte*)(void*)bmpData.Scan0;//the last syntax is equivalent to: //byte* pixel = (byte*)bmpData.Scan0.ToPointer(); pixel[0] = 255; pixel += 4; pixel[0] = 0; } :אKPTVBUg71 ﻛﻮد VB Dim width As Integer = bitmap.Width Dim height As Integer = bitmap.Height Dim bmpData As BitmapData = bitmap.LockBits(New Rectangle(0, 0, width, height) _ , System.Drawing.Imaging.ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb) Marshal.WriteByte(bmpData.Scan0, bmpData.Stride, 255) Marshal.WriteByte(bmpData.Scan0, bmpData.Stride + 4, 0) bitmap.UnlockBits(bmpData) .א\^لGb$و PTא03*** Query Expressions .14 HVI NS gD fN ، LINQ _D U אو وאi'1 אS Query Expressions אل4 K3אC$FN3د7'لאVOKbOא. K%pNF! .net 2008 hא53i$Q$%iF$Q$, .hא$D'א.03Oא :ً ^3אא\^لWSAN C# from d in developers where d.Language =="C#" select d.Name; ﻛﻮد VB From d In developers ﻛﻮد 248 Where d.Language ="C#" Select d.Name :אKPTً7gnDh'دt مא9 אBA')'SaMאWS SQL Server select name from developers where language=’C#’ ﻛﻮد إذن ﻟﻤﺎذا ﻫﺬا اﻟﺸﻜﻞ اﻟﺠﺪﻳﺪ ؟ KP, nD 2N و'دh אi$D. U SWON م9 אB لH 'م7 N אU .g4'م7t אqאhQ')53z% م9אKBRbאنא3C،5PQFg3وCDataReader :אWSz لא$QH'53$ ! LINQ nDKF C# using System.Linq; ﻛﻮد VB Imports System.Linq ﻛﻮد nDhF אX`NאW،gN3z%CوC Array 5DiHDShאi$D.אنnD LINQ אل$F :ً ^3אKPTضאZON، Array אل ﻛﻮد C# string[] userNames = {"Ahmed", "Ali","Mohammed", "Ahmed","Ramy", "Khaled"}; VB Dim userNames As String() = {"Ahmed", "Ali", "Mohammed", "Ahmed", "Ramy", "Khaled"} ﻛﻮد ﻣﻼﺣﻈﺔ ' אن אوS قHO א، Query Expressions لS א3 H$. LINQ ~ S א9 NS c] ^ ًא¤ אذ5 ق1 دون אa7! P אO F g! ^ א3 אgD א'אo+} h א$D'א. 03 K3 bI .h א$D'א.*jV 249 BzNولRNאن،I z,C'نP$.، XML o3'نP$.،h i$D.'نP$.!'OV\אlWS "Ahmed"وtאz9אizא7 א م C# IEnumerable<string> subset = from users in userNames where users == "Ahmed" orderby users select users; ﻛﻮد VB Dim subset As IEnumerable = From users In userNames Where users = "Ahmed"OrderBy users Select users ﻛﻮد : אKPTgDאنNP>אW، array ً MQ'نאP2Nא C# foreach (string s in subset) Console.WriteLine("Item: {0}", s); ﻛﻮد VB For Each s As String In subset Console.WriteLine("Item: {0}", s) Next ﻛﻮد E 53א'لz9ضאRRbאF!אW، C# دوאل53אمאدא$+ א01NP> :fو C# IEnumerable<string> subset = from users in userNames where users.Length > 3 orderby users select users; ﻛﻮد VB Dim subset As IEnumerable = From users In userNames Where users.Length > 3 OrderBy users Select users ﻛﻮد 2NאنאK753^א5DN 'ًb'VI،S(אh!'عא3nDًאHد.'نP9$.ًMQC 9}HًMQא،ً7SN,t אData Type ون$ Dim وאلC var אلi$j!Ng(NS،J!'نPQאن$9 سH دUًMQאSN,t وאNullable Types אلi$j!NS0%ZNאW`N م9 אB'د 250 .3د.3UgDfNو، Lambada אم$+KFאlWSPAIC7Q Preprocessor Directives .15 :ً ^3אKPTאnD^3U h دوאnوCiSא0QHTFאو23א4ROV لIً^ א g. وאgR!QrN3ود$5Fs'אد9א53D'F0s' 7QgאfFD$nDNو Regions אلlWSنCسH$אאWSU:!3אن9،'دPאzNC¼Q'Tم א$DنFM'g .سH$א אWSUً VOgDfNt אPreprocessor Directives אل53D'FSg! Iو #region, #endregion .15.1 :ً ^3אKPTg5P>،ً7ذF אصcs o3U 'دPאg(3NiدDم$+ C# #region "Class Employee" public class Employee { private string _name; private string _age; private string _salary; public string name { get { return _name; } set { _name = value; } } public string age { get { return _age; } set { _age = value; } ﻛﻮد 251 } public string name { get { return _salary; } set { _salary = value; } } } #endregion VB #Region "Class Employee" Public Class Employee Private _name As String Private _age As String Private _salary As String Public Property name() As String Get Return _name End Get Set _name = value End Set End Property Public Property age() As String Get Return _age End Get Set _age = value End Set End Property Public Property name() As String Get Return _salary End Get Set _salary = value End Set End Property End Class #End Region ﻛﻮد 252 :ً ^3אKPTًF(N3¤'ن'دPQr ،f1א53g. وאgR!NP>אن #if, #elif, #else, #endif .14.2 N3h9U'دPא53N3zא%אWONم$+و، Conditional Code Compilation אgD1Q 'دPאGP Release אل.وU@ وDebug אل.و9a7!KFQ9'دPא53z%K ً ^F!،a7! אKPT C# #if DEBUG Console.WriteLine("App directory: {0}", Environment.CurrentDirectory); Console.WriteLine("Box: {0}", Environment.MachineName); Console.WriteLine("OS: {0}", ﻛﻮد 253 Environment.OSVersion); Console.WriteLine(".NET Version: {0}", Environment.Version); #endif VB #If DEBUG Then Console.WriteLine("App directory: {0}", Environment.CurrentDirectory) Console.WriteLine("Box: {0}", Environment.MachineName) Console.WriteLine("OS: {0}", Environment.OSVersion) Console.WriteLine(".NET Version: {0}", Environment.Version) #End If ﻛﻮد . elif وelse אم$+א5P>7Q1@אON #define, #undef .15.3 صI symbol oQNP>אو، Debug K symbol oQNP> ً ^3،Y3 symbol oQم$+ KFD Q 'دPא אWS אنcQ Symbol oQ ^ ص3 א\^ل א، ً 79 :3א$+ ] א א . Mono nDa7! :Debug :אKPT'دNP>ً79 C# ﻛﻮد 254 #define DEBUG #define MONO_BUILD using System; namespace PreprocessorDirectives { class Program { static void Main(string[] args) { #if MONO_BUILD Console.WriteLine("Compiling under Mono!"); #else Console.WriteLine("Compiling under Microsoft .NET"); #endif } } } VB #Define DEBUG #Define MONO_BUILD Imports System Namespace PreprocessorDirectives Class Program Private Shared Sub Main(ByVal args As String()) #If MONO_BUILD Then Console.WriteLine("Compiling under Mono!") #Else Console.WriteLine("Compiling under Microsoft .NET") Dim INDEXERS As n, OPERATORS As n, [AND] As n POINTERS 413 #End If End Sub End Class End Namespace ﻛﻮد 255 XML Commenting .16 ،i Pא0QHT\ אUًb'VIFSאQUًא3C$Q'אد Comments KFD!¦ن0.א'אU $ ' وn :D لF9 وא¤! 'د3 $g א53 K7 I *+, א01Q F ¤ 'د.א3 01 . ًא$%Q' iZO'دP@אOUKFא5DO.' אKPT Comment אلKFDQ،وسH$אlWShQא$UN!DFو C# // here we will do something, set x=startvalue x = FirstClass.Default(); ﻛﻮد VB ' here we will do something, set x=startvalue x = FirstClass.Default() ﻛﻮد Qא3 i$D N !'Q } XML X'] Comments אل53 NNPe ، i$Q$% 7Q nD fN אن .سH$ لאIgDfN ﻣﻼﺣﻈﺔ . javadoc من خاللJava من اوائل اللغات التي طبقت ھذه الطريقة كانت W'دوאPbIh3 DC0sو01 3 אlWS0sو$،///0s لوI53Qא$ذQ KMOQtא7אbNא53D'F¤NS، XML ¨د31Q دאم3 XML نCnDً7903K3א .SO\ א$'g3א$+א אم$+9א VNא oax ضQنC$9 אنא$Q$R <c> 'دP :3K3א19دא$אن$Q$R <code> X'P\'دאPאvT^ل3$Q$ <example> אWS 5D 2N אن5P> t אz1I وאhאzN^9 אnD 'd W אo\א <exception> JOو אC'دPא 256 DocumentationאلKIאولدא$%Fj.אجHאد <list> Y3Z3HvT <param> Y3 zQFLאKjوobو <permission> BuildאلhאHI <remarks> return;א$א2obو <returns> Documentationאل53IzIaאH <see> (ً MQ)א(א5Pو،אK^3 <seealso> vوT\ אz`Bאobو <summary> N3bIob' <value> ﻣﺎ ﻫﻲ اﻟﻔﺎﺋﺪة اﻟﺘﻲ ﺳﺘﺠﻨﻴﻬﺎ إذا اﺳﺘﺨﺪﻣﺖ ﻫﺬه اﻟﻄﺮﻳﻘﺔ، واﻵن ﻻ ﻣﻦ اﻟﻄﺮﻳﻘﺔ اﻟﺘﻘﻠﻴﺪﻳﺔ ؟؟؟ ً ﺑﺪ :ً ^3YO&'\אJO Q3ً ^3X%،ً9وC C# /// <summary> /// Employee Class of the company /// </summary> partial class Employee { /// <summary> /// /// </summary> /// <param name="Firstname">first name of the employee</param> /// <param name="Lastname">last name of the employee</param> /// <param name="age">age of the employee</param> public Employee(string Firstname, string Lastname, int age) { } } ﻛﻮد VB ''' <summary> ''' Employee Class of the company ''' </summary> Partial Class Employee ﻛﻮد 257 ''' ''' ''' ''' ''' ''' <summary> </summary> <param name="Firstname">first name of the employee</param> <param name="Lastname">last name of the employee</param> <param name="age">age of the employee</param> Public Sub New(ByVal Firstname As String, ByVal Lastname As String, ByVal age As Integer) End Sub End Class :אiH'Vאª9،'دPאKFDאنX%و ؟W@א،7Q!43.ًRsوאg(Q'دPאbא،قHO(א9 KS : Documentation ﻧﻘﻄﺔ أﺧﺮى lWS nD د ًאFD אDوT\ 3 Documentation אجI אNP> ، Build אلhאHI 5Fs 53 ً وMQא :אKPT XML o3אجHI. وBuild HI.وعT\*אjVI53 אW،א''م 258 :אWSK^3ًJ,$`،lHIF.Wאo\אאWk'لb' אX% : ﻣﺮة أﺧﺮىDocumentation ﻧﻘﻄﺔ ﺛﺎﻟﺜﺔ 5P> 5P ، 3'gO3 qV אXML אلKQ'R sאZ! אi אدאVisual Studio 2008 !'Q 9 o :iH'VאlWSK^3 אo\אKQ'R NDoc K^3iدאCאم$+א 259 ... Comments אل53a7! אWSK :אaאא53SourceforgeאلnD+Kb'אNP> رابط http://ndoc.sourceforge.net/ .net assemblies .17 F! g! 9ط א7N אfN NNP ^ ًא وg! K1 5 ، .net assemblies אل03 iZO אlWS $D'3 msdn لI53gND$Q\אnD ع9אNP> namespace اﻟـ .17.1 i$Q$אQHT3Uًو3אدوW،אgMAאن: h'P\א0F5P> namespace @אلOU h'P30F $'3 namespace K%א C# namespace example { ﻛﻮد 260 class someclass { void method(){ } } } VB Namespace example Class someclass Private Sub method() ﻛﻮد End Sub End Class End Namespace 7אא$א5Fs'دאPאNP>5!،I namespace U classCar J!NQ$'ن3C :method C# void method() { classCar x=new classCar(); } ﻛﻮد VB Private Sub method() Dim x As New classCar() End Sub ﻛﻮد אKPTJOאoQ 535PF example K import KFDNNP>5P C# using example; namespace example { class someclass { void method(){ } classCar x=new classCar(); } } ﻛﻮد 261 VB Imports example Namespace example Class someclass Private Sub method() ﻛﻮد End Sub Private x As New classCar() End Class End Namespace Default Namespace ﺗﻐﻴﻴﺮ ال .17.2 :sאZ!9אz9 لאq Format of a .NET Assembly ﺷﻜﻞ ﻣﻠﻒ اﻻﺳﻤﺒﻠﻲ .17.3 bNא53'نPQ9אoP3نCª אنNP>ً ^3 dumpbin.exe X9אo3OF.ذא :א Win32 file header 53KqT(אnDlWONO وdll אمGUI אمconsole 'SKS،o\אאWS'ع5Dh3'3$`NS . وز$NQو CLR file header 262 אل7Q nD 'd ، gFD$Q אن.net application $ 9 t אh3'\ אnD 'd .:! Iو:3$D53 resources 'دאل%ووmanaged file Q3'zNجN3ذאA'g3K35،Y7 אY17N7אh3'\^ אًאFg9 .net .KFDJ صI CIL code نK73سHدgND'نP،ً7gND N$t אJIT אم$+ًאH'!:BQ،4'دאصPא אz, Type metadata .Ug3$+tא%H'אع א9אKbOnD' An assembly manifest .:! Iو9אHא$bد א$،O+\א9אhO3Yaאא Optional embedded resources .:! Iوh'7QوאH'b TسH'QאhO3 53د$DאnD'dאن5P>אo3א Private Assemblies .17.4 visual אلRQ5،1אو א234אH3 لI53KFQאo3 Private Assemblies אل .:ND 234 אH3 U R a7! ، I نP3 C U אوZ® אU z 'אo\א אWS 5D studio i,3 : setup KFD$1אK7NP>ًMQא،:3hO\אlWSfWQfW U .(مN*אz,C03K3Q9:' .'عNאאWS53SgF'م7t אdll אوאلsאZ!9א9 אhO3 263 Shared Assemblies .17.5 ^א03K3אo\نאP3¦نK،אWS dll אلo3م$+Q53¤$'نوP 5NS،^'عאN'אSאWS 9 אo3 U S${ 3 iدD ، System.Windows.Forms.dl ً ^3 ، زg@ אO nD 1 53 .fW03g!WQ9وزو$NQ'אU'د%'\א 9no\אאWk unique 'د א%وiHوs'S'عNאאWS53אo3zTg3K317ولC COM globally unique fQ 3 ¤NS نCOMم אلQC ، AI אhO\ א. 03 XHMQ fQ 3 lz1D אD b אن א، $Q$% COM KP O z אz1D אQ ، identifier (GUID) :l$Q$Uאh'P\א¤ZTم.H9א53 128 :'و$Q9W وאstrong name .9אo3א • .9אo3+ • AssemblyKeyFile Ui'د%'\א- public key value • . AssemblyCulture UF.אhאد$D'دאא%وU • . public key وאل9אo3 hQ')Y hash אم$+:NQ'PQdigital signature • :ً ^3אKPT SDK’s sn.exe 234مא$+ public key KF ﻛﻮد sn -k MyTestKeyPair.snk 264 Multithreading اﻟﻤﺴﺎرات اﻟﻤﺘﻌﺪدة .18 ﻣﻘﺪﻣﺔ .18.1 @OUFg353^אWONP3אcQ 3'S وmultitasking systems g]^Q$LאKqT(אf ..'@אOU23 אi$DKqTP3نC${אW،.'א 53^אWONnDHد.$א'א234אنא23א4אUª NP،ًsאZ!'ع אNאאWS53 .net 23א . multithreading fQ3אWS،ضH3 ]Fk'نPQنCدون.'@אOUFD *+,53^א03E$R אوא3Pאمא$+وאQ$LوאhO3لH אQ`N\א23אن${אW gM 5D$א'א234אKIمدאg\אlWSKVOQ5PQ_':DًאHد.`N\א5PQ_3 'Sو،.'@אON .LאNH'ندFM3'SאWS، ﻣﻼﺣﻈﺔ لذا قم، System.Threadingجميع األوامر التي سنتعامل معھا ھنا تقع تحت نطاق األسماء ً باستيراده أوال :S אWSz9لאKIدא9אbNא ob'א VNא :3K3وא$Q$% Thread oQ Thread gNF!K3אk5P> Threads אل53D'F ThreadPool Threadh9i$DnD'dEnum ThreadState Thread UWON אz$ ThreadStart Thread אאلWSQ'אو$Q$ ThreadPriority 265 :!s9 Semaphore .1 Mutex .2 Monitor .3 אzאUgDfNtא53אאh3QH'א53D'FSو synchronization اﻟﺠﻮرﻳﺰﻣﺎت اﻟﺘﺰاﻣﻦ .18.2 Thread 53^FQ9r Synchronization 53אאhFم$+h3QH'سא9 אUSو :NS53z$א5P>h3QH'9 אlWSnDfא53$Q\،.'@אOUHدV\@אO'لb' رابط http://en.wikipedia.org/wiki/Semaphore_(programming) http://en.wikipedia.org/wiki/Mutual_exclusion http://en.wikipedia.org/wiki/Monitor_(synchronization) System.Threading.Thread .18.3 JOאlWSh'P3، gD O+\אN3g3WON وthreads zTאN،אWSz9لאU9 אJOא :S9א ob'א 'نP\א .'א53iZO thread אلKFDo.' Sleep() 9אمKFQ زאل3 thread ذאنאلs'F. IsAlive backgroundUKFQ thread ذאنאل IsBackground 266 LאQ'אو Priority Threadאل ThreadState threadאאل Name وجI Abort() joinUE$L אEو$n thread אلKFDo.' Join() :!7Qא$KFאfNJא Resume() אوiF KFאz$ Start() ً .p3KFאf7Qא Suspend() fNJ9S$'د،.'@אOU YFg3WONQאنnN3nDل9$ Q{KFQא$'م7N .'عs'\bאSO\אv, :'دאP`א. C# static void Main(string[] args) { order1(); order2(); Console.ReadKey(); } static void order1() { for (int i = 0; i < 100; i++) { Console.ForegroundColor = ConsoleColor.Green; Console.Write(i.ToString() + " "); } } static void order2() { for (int i = 100; i > 0; i--) { Console.ForegroundColor = ConsoleColor.Red; Console.Write(i.ToString() + " "); } } ﻛﻮد 267 VB Private Shared Sub Main(ByVal args As String()) ﻛﻮد order1() order2() Console.ReadKey() End Sub Private Shared Sub order1() For i As Integer = 0 To 99 Console.ForegroundColor = ConsoleColor.Green Console.Write(i.ToString() + " ") Next End Sub Private Shared Sub order2() For i As Integer = 100 To 1 Step -1 Console.ForegroundColor = ConsoleColor.Red Console.Write(i.ToString() + " ") Next End Sub ،زN א53و$DVאD'S1א2Nא،ًزNًوQ$DVم.HאD1 'م7Qs'وאSF'دPא :ً ^3אKPT2jNא,,'نP QO"^وאMIאאو$א2jDQYU oQ 'م7N אن3C ، zg9 אn ^ א53 وzg9 אn א אو$ אWON Q ، 1א אWSو @OUH'و4 אnDSWONgN3$وאnDدאKWONQrWONO threads :ً ^3'دאPא،.'א C# static void Main(string[] args) { System.Threading.Thread t1 = new System.Threading.Thread(order1); ﻛﻮد 268 t1.Start(); System.Threading.Thread t2 = new System.Threading.Thread(order2); t2.Start(); Console.ReadKey(); } static void order1() { for (int i = 0; i < 100; i++) { Console.ForegroundColor = ConsoleColor.Green; Console.Write(i.ToString() + " "); } } static void order2() { for (int i = 100; i > 0; i--) { Console.ForegroundColor = ConsoleColor.Red; Console.Write(i.ToString() + " "); } } VB Private Shared Sub Main(ByVal args As String()) Dim t1 As New System.Threading.Thread(AddressOf order1) t1.Start() ﻛﻮد Dim t2 As New System.Threading.Thread(AddressOf order2) t2.Start() Console.ReadKey() End Sub Private Shared Sub order1() For i As Integer = 0 To 99 Console.ForegroundColor = ConsoleColor.Green Console.Write(i.ToString() + " ") Next End Sub Private Shared Sub order2() For i As Integer = 100 To 1 Step -1 Console.ForegroundColor = ConsoleColor.Red Console.Write(i.ToString() + " ") Next End Sub 269 .2jNאANאن نC$`،2jNאX%وgN3$^ ً'א3 Priority אلqX%، i3KSF'نP52jNא01 :ً ^3'دאPא،^אK.:N3zg9אQnD אQ'אوGb C# t1.Priority = System.Threading.ThreadPriority.Highest; ﻛﻮد VB t1.Priority = System.Threading.ThreadPriority.Highest ﻛﻮد :אKPT2jNאV ..'אאWSUQ'SWON5Q'دPنאC'S$STא5P ،WONאUh! Iא$` 270 Priority اﻷوﻟﻮﻳﺔ .18.4 ذوthread אنאل،H'و4אnD threads لאلIאدQ3$NDWONאQ'وC Priority دאل$ : NQ$ضאنZO'مgO\אGQ7،WONhא3د$n(dnDאQ'و9א .A'V.Q'אو1Fg3 .1 .A'V.Q'אو2Fg3 .2 .אWPSو1،2،H'و41Fg\لאIאدQL אlWSU :אKPT3'نאPQ،K.אQ'אوh ذא2Fg3ل'نU3C zg9אnאWPSو... 2Fg\א، 1Fg\א، 1Fg\ א، 1Fg\א، 2Fg\א، 1Fg\א، 1Fg\א، 1Fg\א .FS$א53 א'אعi$D${،NS53z$אNP>iدQאhدHC'،H'و4אh3QH' אv,نP3אWS@ : scheduling אل53 رابط http://en.wikipedia.org/wiki/Scheduling_%28computing%29 : אenum مאل$+NQ$Fg3C Priority $Q$R،AICi3'د C# public enum ThreadPriority { AboveNormal, BelowNormal, Highest, Idle, Lowest, Normal, // Default value. TimeCritical ﻛﻮد 271 } VB Public Enum ThreadPriority AboveNormal BelowNormal Highest Idle Lowest Normal ' Default value. TimeCritical End Enum ﻛﻮد :ً ^3אKPT'دPאVQو C# t1.Priority = System.Threading.ThreadPriority.Highest; ﻛﻮد VB t1.Priority = System.Threading.ThreadPriority.Highest ﻛﻮد suspend ، i$\ WON אf7Q9 sleep אم$+ אP3 אنnN 9 ، 9 א0s א\'א5D $ אK. .سH$אאWkN,gC$tطא7Nא53א....p3f7Q9 ParameterizedThreadStart .18.5 5P،KVON3 thread USWONk start KF'م753אو$ אHNא\^لאאU(9 ؟hאZ3HK7א$אlWS 'ذא3 :ً ^3אKPT ParameterizedThreadStart אم$+ ،aKLא C# Thread t = new Thread(new ParameterizedThreadStart(functionname)); t.Start(parms); ﻛﻮد 272 VB Dim t As New Thread(New ParameterizedThreadStar(functionname)) t.Start(parms) ﻛﻮد ﻣﻼﺣﻈﺔ ولكن يمكن استخدامThreadStart لو كنت تود استخدام دالة تعود بقيمة فال يمكن استخدام ()EndInvoke )( وقراءة الناتج فيBeginInvoke foreground and background .18.6 : threads אل53نD'¤NS 0BWON53zg9אQnqQאن5P> 9234אنאcQאWS : Foreground Thread .'عNאאWS53'SlzT'م7 thread sאZ!9'عאN א،:!i'د%'\ אforeground threadsאل !אلWONQ_ 'n:. אQאن5P>234אنאcQאWS : Background Thread :ً ^3אKPT:FDQ،background threads C# t.IsBackground = true; ﻛﻮد VB t.IsBackground = true ﻛﻮد Threads Synchronization .18.7 3אא®دW،O+\אFDhאH3YKIא$KVd9C5FMQ$C ! Threadsאل03KF3$ND .سHدUًאVg,אtא53د¨אא31QWوאSyncLock~fQ ،KIא$CKVd9gI'ددאPאYFMQt وאSyncLock…End SyncLockאم$+אQ KPT ، zg א$ 9 KIא$ z@ ل אO U 'دF 9وH\א אWSHدV3 'م ق7 :ً ^3א 273 C# lock (myLock) { for (i = 0; i <= 1000; i++) { Console.WriteLine(i.ToString()); } Console.Write(number); } ﻛﻮد VB SyncLock myLock For i=0 To 1000 Console.WriteLine(i.ToString()) Next i Console.Write(number) End SyncLock ﻛﻮد .אW،ًMQCD1א3CوHאPא7zgא$9KFQאنmyLock q\مא$+QH3FQ5 .ً ^3number q\אF7KIא$:!KVdنCnT§نP3KUgs' :−אq–سאH$א53hאH\אU53אא5D$Q\!א3NP> رابط http://vb4arab.com/vb/showthread.php?t=6341 ThreadPool .18.8 U ¼Q'T 53 : G 3 وU hאH\ אi^P KQ$ אS – אb – نhאH\ אi r hאH\ א53 D'F 5Q'P ذQ ، :! I وHدV\ وא53 אא3وאC G a א53 ^P وא234א :234אUi^PSWONQ9tאhאH\אUi^א!دC'نذPQو،ZT\א C# for (int i = 1; i <= 5; i++) { ThreadPool.QueueUserWorkItem(sometask.Execute); } ﻛﻮد 274 VB For i As Integer = 1 To 5 ThreadPool.QueueUserWorkItem(AddressOf sometask.Execute) Next ﻛﻮد :−אq–سאH$ لאI53'عs'\אאWS5D$Q\!א3NP> رابط http://vb4arab.com/vb/showthread.php?t=6340 BackgroundWorker .18.9 53،2349אH\א5Dًא$ ً Q'ً.وWI]N3Fg3WON BackgroundWorker مאل$+ 53 h אG% אوH'V א3 hFD وC web service 53 izא7 bوאل א$^ ذ א3C .$3אQ'hFא53D'Fzא%אوא،rFD WONوCI'3' نC 9 ، $7 thread U SWON Q 5D وאل$ אlWS KFD P3¦ نC 03و U G tא א$ thread ~ אHI אNP> ، PR א53 $Q3 1 BackgroundWorker E$ WON Q WON אzg א$ ًאIC ، RunWorkerAsync()Q 5D gqT 53 وSWON .Fg\אlWSWONzg א$2jNضאDً ^3:!NP>tوאRunWorkerCompleted ،Fg\אWONz$3אHز0s53وhدوא9א.، Windows Form KF .KFz$ :ً ^3אKPT BackgroundWorker iدאCGR.ً אIوא 275 RunWorkerCompletedE$L وא، WON אz$ . وlzD$ אQ W وאDoWork NS FS Y دאSC :ً ^3 אKPTWONא53zg9א$:. אQWوא ﻛﻮد C# private void ProcessNumbersBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { } private void ProcessNumbersBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { } ﻛﻮد VB Private Sub ProcessNumbersBackgroundWorker_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) End Sub Private Sub ProcessNumbersBackgroundWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) End Sub :אKPTWONz$אQً79 C# ProcessNumbersBackgroundWorker.RunWorkerAsync(args); ﻛﻮد VB ProcessNumbersBackgroundWorker.RunWorkerAsync(args) ﻛﻮد . DoWork E$LאU'د%'\'دאPאWONQ 276 277 اﻟﺒﺎب 13 اﻻدﺧﺎل واﻻﺧﺮاج ﻓﻲ .net 278 279 System.IO اﻟﻔﺌﺎت اﻻﺳﺎﺳﻴﺔ ﻓﻲ .1 Binary KP,nDوizא. Files نC 5P> t אBuffer h .p3 ن BinaryReader BinaryWriter BufferedStream iאWًא79g7QWI] 7\אh3'\وאhא$¡א03K3* g hא$ و5D h3'\! א3 وK3 * Directory DirectoryInfo DriveInfo Driver¤زg%U5Q+א gQ3KوhO\א03K3* nD hض אD وhOF 'لb' א53 NP> File FileInfo FileStream StreamKP, C1tאh Q$¤HIوא$ אوo3.א3 FileSystemWatcher :D KQ'R VN אh אq\ א03 K3 * Path KqT(مאN3'gO3H'bhאH\א ViH'VhO\אPوאizא7א Reader אن אلf I א03 a7! ، @ אO String אل53lzTאQ Writer وאل StreamReader StreamWriter StringReader StringWriter .ً 3א$+אS^CوSg,CSlWS5Pو،z9 א53אא¡لWSUAIאhJ!¤NS Directory وDirectoryInfo اﻟﻔﻮارق ﺑﻴﻦ .2 3 אObject 53 i,3 7T3 Directory אن، g אصstructure אلU 'S ق אHOא K3אUقHO א3א، Objects אل53SHو$7T\ אFileStreamInfo53 7T3g! DirectoryInfo 280 03 3 א، i,3 g3א$+ א5P> r Static 'عN א53 k دوאf Directory JO' אن אg! .وאل$אمא$+אK. +oQ39אG1Qo39!DirectoryInfo ... FileInfo وFile YقOאnD1NQ39@ אO *jV !s אFileStreamInfoل9*אjVאg3KF FileInfo وDirectoryInfo YJO א :Sو،hא$¡وאhO\א03K3א ob'א bא 5D o\و אC $`F !s א. QF *§ Attributes nF\א enumeration אل Q FileAttributes zT9א¢QHوizא. CreationTime 9مC'د%'3o\אKS!3 Exists o\אدא$3א$ Extension $`FوCoF ً 3H\אnD'لVLא FullName אوo\ אnD 'لI$ ¢QH I وizא. LastAccessTime $¡א LastWriteTime אوo\אאWSUP¢QHIوizא. $¡א Name $¡وאCo\!אא3 DirectoryInfo اﻟﻔﺌﺔ .3 :وאلא$אnDJOאlWS'، FileStreamInfo 537*אjVאnDSz'א9!sא ob'א bوאCא$א د$[אH\אUD!$ אو$zTא Create() CreateSubdirectory() Delete() :Q')K3و$¡אfW 281 DOאhא$¡אzאs'z9א53!'OV3$ GetDirectories() hO\ ! אnD ' FileInfo 53 Array !'OV3 $ GetFiles() $¡אאWSU i'د%'\א $Q$%نP3:Q')!و$¡אK7 MoveTo() $¡אאWS5349א$¡!א3 Parent $¡אאWg אصDriver \!אل Root $T\ אU :N3 z$ 'د אWن אP\ אQe NP> ، JO אlWS 53 + oQ %r א، z$ אK. :( 234אH\)ً ^3אKPTConstructor C# DirectoryInfo dir1 = new DirectoryInfo("."); ﻛﻮد VB Dim dir1 As New DirectoryInfo(".") ﻛﻮد :دDH3وC C# DirectoryInfo dir1 = new DirectoryInfo(@"C:\Ahmed"); ﻛﻮد VB Dim dir1 As New DirectoryInfo("C:\Ahmed") ﻛﻮد ﻣﻼﺣﻈﺔ K^3AICh3א$+אk*نVN אh3 DKIدאS$\و0sمو$D53$ !XH,2343N' .א\^لUF@!sאQ5Di,3g]KIא$ h'عא$Q$NP>5P،:! I\وn \r lzTא53'دو%'3 $aאNP>K،'د%'3$03aאP3a7!@ C# DirectoryInfo dir1 = new DirectoryInfo(@"C:\Ahmed\Test"); dir1.Create(); ﻛﻮد 282 VB Dim dir1 As New DirectoryInfo("C:\Ahmed\Test") dir1.Create() ﻛﻮد :$¡ אKIدאhO\ًאאض!אMQאNP> C# FileInfo[] imageFiles = dir.GetFiles(); ﻛﻮد VB Dim imageFiles As FileInfo() = dir.GetFiles() ﻛﻮد ^ ًضF! ،$¡7\אh3'\!אnD't אFileSystemInfo *jVIאم$+ אNP> :$¡אzT¢QH C# Console.WriteLine(dir1.CreationTime); ﻛﻮد VB Console.WriteLine(dir1.CreationTime) ﻛﻮد @N9،g 53 وGIF a7!VNאhO\אضא9ً ^3،a7!Y3'ع53hO3 אאضNP>وC .gD FileSsystemInfo *jVI15P> وFileInfo 'ع532Nאنא ﻛﻮد C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { DirectoryInfo dir1 = new DirectoryInfo(@"C:\Users\Ahmed\Documents\Visual Studio 2008\WebSites\WebSite4"); 283 FileInfo[] imageFiles = dir1.GetFiles("*.gif"); foreach (FileInfo f in imageFiles) { Console.WriteLine("Name: {0} - Creation Date: {1} . \n\n", f.Name, f.CreationTime); } Console.ReadKey(); } } } ﻛﻮد VB Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Text Imports System.IO Namespace ConsoleApplication7 Class Program Private Shared Sub Main(ByVal args As String()) Dim dir1 As New DirectoryInfo("C:\Users\Ahmed\Documents\Visual Studio 2008\WebSites\WebSite4") Dim imageFiles As FileInfo() = dir1.GetFiles("*.gif") For Each f As FileInfo In imageFiles Console.WriteLine("Name: {0} - Creation Date: {1} . " & Chr(10) & "" & Chr(10) & "", f.Name, f.CreationTime) Next Console.ReadKey() End Sub End Class End Namespace :ً ^3אKPT'نP2Nא 284 Directoryاﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺔ .4 ً%)'نP5K7\אU وFileSystemInfoJO لאI53\* אjVא$7Oa7!،$Q$%z,9 fWLאFً ^3אKPTi,3JOאnDKFאNP>אW،KFz$ אK.+oQ C# System.IO.Directory.Delete(@"C:\ahmed"); ﻛﻮد VB System.IO.Directory.Delete("C:\ahmed") ﻛﻮد DriveInfo اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺔ .5 X53i,3אא\^لWS،gNDh3'\!א3و¤زg%U Drivers אאضאلJOאlWS :Pro.CSharp 2008 C# Console.WriteLine("***** Fun with DriveInfo *****\n"); // Get info regarding all drives. DriveInfo[] myDrives = DriveInfo.GetDrives(); // Now print drive stats. ﻛﻮد 285 foreach(DriveInfo d in myDrives) { Console.WriteLine("Name: {0}", d.Name); Console.WriteLine("Type: {0}", d.DriveType); // Check to see whether the drive is mounted. if (d.IsReady) { Console.WriteLine("Free space: {0}", d.TotalFreeSpace); Console.WriteLine("Format: {0}", d.DriveFormat); Console.WriteLine("Label: {0}", d.VolumeLabel); Console.WriteLine(); } } Console.ReadLine(); VB Console.WriteLine("***** Fun with DriveInfo *****" & Chr(10) & "") ' Get info regarding all drives. Dim myDrives As DriveInfo() = DriveInfo.GetDrives() ' Now print drive stats. For Each d As DriveInfo In myDrives Console.WriteLine("Name: {0}", d.Name) Console.WriteLine("Type: {0}", d.DriveType) ' Check to see whether the drive is mounted. If d.IsReady Then Console.WriteLine("Free space: {0}", d.TotalFreeSpace) Console.WriteLine("Format: {0}", d.DriveFormat) Console.WriteLine("Label: {0}", d.VolumeLabel) Console.WriteLine() End If Next Console.ReadLine() ﻛﻮد FileInfo اﻟﺘﻌﺎﻣﻞ ﻣﻊ .6 : - Q*אدjV+01 !sא−JOאlWSUjوאلא$א ob'א א$אوאbא o\אUP StreamWritter zTא AppendText() 286 o\א¢ CopyTo() FileStream5jiدDوאo3zTא Create() o\אUP StreamWriter zTא CreateText() o\אfW Delete() $¡!א א3 Directory $¡אH3!3 DirectoryName o\!` א3 Length 'ل7N\אoF$Q$%א$Q$NP>،K7Nא MoveTo() o\א א Name :! IوPوאizא7אP3א03o\!א Open() a7!izא7o\!א OpenRead() StreamReaderאم$+o\!א OpenText() a7!Po\!א OpenWrite() nDfN.وسH$אlWS53 9z%Uً VOgDfNt وאStreamReader 'אصI5Dًא$ .*jVא. : Create אم$+ً ^3 o3zT9 C# FileInfo f = new FileInfo(@"C:\Test.txt"); FileStream fs = f.Create(); ﻛﻮد VB Dim f As New FileInfo("C:\Test.txt") Dim fs As FileStream = f.Create() ﻛﻮد bאa7!،F FileSystemInfo Ui'د%'\*אjVא53Cאم$+אP3 نC@N9ً o\ذאنא$Q$ k I53NP>،KbOi$DKFT3ًD'ibISAttributes .א...a7!izא7،S&אمO ؟9مCOo\אKS!\ً ^3 287 C# if ((File.GetAttributes(path) & FileAttributes.Hidden) == FileAttributes.Hidden) { } ﻛﻮد ﻛﻮد VB If (File.GetAttributes(path) And FileAttributes.Hidden) = FileAttributes.Hidden Then End If :ً ^3אKPT OR K3\مא$+o\אzOI93C C# File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden); ﻛﻮد VB File.SetAttributes(path, File.GetAttributes(path) Or FileAttributes.Hidden) ﻛﻮد Open اﻧﺸﺎء وﻓﺘﺢ اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام .6.1 : א$O3S وFileMode.OpenOrCreatebא03 Open א$مא$+Nא$`'د אPאU :lzT.l${_'،:RO.o\אh$%'و C# FileInfo f2 = new FileInfo(@"C:\Test2.txt"); FileStream fs2 = f2.Open(FileMode.OpenOrCreate,FileAccess.ReadWrite, FileShare.None); ﻛﻮد VB Dim f2 As New FileInfo("C:\Test2.txt") Dim fs2 As FileStream = f2.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None) ﻛﻮد 288 :hO\אzTوאOًMQCAICh9¤NS ob'א Lא IOException]1IKF.:$%'و،i,3$Q$%o3]Tא CreateNew 'د%'\!'قאlzT.:$%و'وo3zT. Create FileNotFoundException]1IKF.l${_'وo\א!א Open 'د ًא%'35PQ_ 'l]TوאC'د%'3'نo\!א OpenOrCreate :Q') !3وאo\א!א Truncate ً'دא%'3o\ א5PQ_'،PאFDz$lIK7وאo\אO. Append Ug(9Sً3'FD،:وC53Pz$وא$Q$%$وאO. OpenWriteUa7! وOpen אم$+Oא : enum אאلWSUD'Fh9E : ً MQ אFileAccess אل C# public enum FileAccess { Read, Write, ReadWrite } ﻛﻮد VB public enum FileShare { None, Read, Write, ReadWrite } ﻛﻮد 289 .6.2 وOpenRead ﻓﺘﺢ واﻧﺸﺎء اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام OpenWrite .hFא53a7!$'عوאNً33'نPאא$D ،3K^3 OpenText ﻓﺘﺢ اﻟﻤﻠﻔﺎت ﺑﺎﺳﺘﺨﺪام .6.3 :ً ^3אKPT، FileStream@ وStreamReader 'ع53'نPiא\دF7'אنאS$'قאHOא C# FileInfo f5 = new FileInfo(@"C:\boot.ini"); StreamReader sreader = f5.OpenText(); ﻛﻮد VB Dim f5 As New FileInfo("C:\boot.ini") Dim sreader As StreamReader = f5.OpenText() ﻛﻮد AppendText وCreateText اﻟﻔﺘﺢ ﺑﺎﺳﺘﺨﺪام .6.4 . StreamWritter'ع53'نPi א\دF7אنא5P>a7!قHOא،7אK^3 File اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺔ .7 KFאNP>K Static gً(אgN3+oQnDًא4'نP 5،hא$¡אUذ3@O .i,3gD :SP وאizא7אhFJOאUi$Q$%AICدوאل¤NS ob'א א$א array of bytesKP,nDhאizא. ReadAllBytes() 19א53!'OV3 KP,nDhאizא. ReadAllLines() 290 i$وאhא0Bizא. ReadAllText() byte by byte WriteAllBytes() 1 אKP,nDPא WriteAllLines() i$وאPPא WriteAllText() : ProCSharp 2008X53−ً ^3אKPTg3א$+א5P>و C# string[] myTasks = { "Fix bathroom sink", "Call Dave", "Call Mom and Dad", "Play Xbox 360"}; // Write out all data to file on C drive. File.WriteAllLines(@"C:\tasks.txt", myTasks); // Read it all back and print out. foreach (string task in File.ReadAllLines(@"C:\tasks.txt")) { Console.WriteLine("TODO: {0}", task); } ﻛﻮد ﻛﻮد VB Dim myTasks As String() = {"Fix bathroom sink", "Call Dave", "Call Mom and Dad", "Play Xbox 360"} ' Write out all data to file on C drive. File.WriteAllLines("C:\tasks.txt", myTasks) ' Read it all back and print out. For Each task As String In File.ReadAllLines("C:\tasks.txt") Console.WriteLine("TODO: {0}", task) Next :ﻣﻌﻠﻮﻣﺔ اﺿﺎﻓﻴﺔ g!W 53نوP3UgOQ'م7 אنIDisposable لimplemented ذאJO5P>، .net U :ً ^3אKPTق1NאאWSجHI C# using (CarClass newCare) { // do operations } ﻛﻮد 291 VB Using newCare As CarClass ' do operations End Using ﻛﻮد :ً ^3 אKPTiאWאU73n79nhO\א03ًMQאg3א$+ولאRNאW C# FileInfo f = new FileInfo(@"C:\test.txt"); using(StreamReader reader = f.OpenText()) { // code here } ﻛﻮد VB Dim f As New FileInfo("C:\test.txt") Using reader As StreamReader = f.OpenText() ' code here End Using ﻛﻮد Stream .8 nD5Qزg%YאوYO3Yن ذz'אK73وH$V3Y3hאK7!אو$:$V7Q Stream אل o\אQgnsequance of bytesKP,nDGqאU hאK7Q،:! IوCوCPTא .hوאC '،ً79gJ!G03K3NtאمאJOא4t وאSystem.IO.Stream JOא¤NS، .net U : אj*אjVوאلوא$ אnDJOאlWS ob'א א$وאCbא K7 lWS Stream אلFD ! ذא3 *jVI CanRead, CanWrite S وizא7وאCPאFD 292 :! IوhO353gQ3KوFא قא Close() _'، Buffer Uًi'د%'\אhK7\אhQ$ Flush() z,]'م79 א$אlWg! Buffer 'د%وD$F אlWS5PQ 0.א'אU Q stream `אل$bI Length stream אلUنP\دא$ Position bytes53D'FאوQizא. Read(), ReadByte() streamאאلWSU$Q$%نP3U ,p\א0sو Seek() L אstream 'لאل$Q$ SetLength() bytesאل53D'FאوQ Write(), WriteByte() File Stream اﻟﻔﺌﺔ .8.1 03 streaming אل03 K3 a7! *§ אabstract class Q$D7 אJO א1 t אJO אlWS .hO\א جa7!P אK.−'P\אhאizא.53وo\א5353Ci$DUPאs'Qא\^ل א .i'1אlWS@N9אW bytes אKQ'R C# private void filestreamexample(string msg, string beforeendmsg) { using(FileStream f1 = File.Open(@"C:\test.txt", FileMode.Create)) { byte[] msgArray = Encoding.Default.GetBytes(msg); byte[] beforeendmsgArray = Encoding.Default.GetBytes(beforeendmsg); f1.Seek(0, SeekOrigin.Begin); f1.Write(msgArray , 0, msgArray.Length); f1.Position = f1.Lenght-10; f1.Write(beforeendmsgArray , 0, msgAsByteArray.Length); // view total message. long totalLenght=msgArray.Length + msgAsByteArray.Length; byte[] filemsg = new byte[totalLenght]; ﻛﻮد 293 for (int i = 0; i < totalLenght; i++) filemsg[i] = (byte)f1.ReadByte(); Console.WriteLine(Encoding.Default.GetString(filemsg)); } } ﻛﻮد VB Private Sub filestreamexample(ByVal msg As String, ByVal beforeendmsg As String) Using f1 As FileStream = File.Open("C:\test.txt", FileMode.Create) Dim msgArray As Byte() = Encoding.[Default].GetBytes(msg) Dim beforeendmsgArray As Byte() = Encoding.[Default].GetBytes(beforeendmsg) f1.Seek(0, SeekOrigin.Begin); f1.Write(msgArray, 0, msgArray.Length) f1.Position = f1.Lenght - 10 f1.Write(beforeendmsgArray, 0, msgAsByteArray.Length) ' view total message. Dim totalLenght As Long = msgArray.Length + msgAsByteArray.Length Dim filemsg As Byte() = New Byte(totalLenght - 1) {} For i As Integer = 0 To totalLenght - 1 filemsg(i) = CByte(f1.ReadByte()) Next Console.WriteLine(Encoding.[Default].GetString(filemsg)) End Using End Sub اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺎت اﻟﻤﺸﺘﻘﺔ .8.2 ذstream UPوאizא7א53א'אعi$DNQ$نCאجIلوאIد9'عאs'3UNوHولدCUذ BinaryReader, و StringWriter, StringReaderو StreamWriter, StreamReadergN3 .אنgDfאUC$N3Sو،BinaryWriter 294 StreamWriter, StreamReader .8.3 P אF 9وאل א$ אnD ' ، 7 אE ^ אhJO אY 53 ً 3א$+ وא^ אg, אhJOא : אizא7وא StreamWriter ob'א bوאCא$א א ق Close() bufferאلhQ')!3 Flush() $Q$%1 NewLine QدD Write() $Q$%103 WriteLine() StreamReader :7אi7OאUאوE ^وאلא$!אs9' ob'א bوאCא$א دونLن אPF i,3 אfL אizא. Peek() ,p\نאP3 q izא7א Read() bufferאلUgsאوو$א53D'Fizא. ReadBlock() K31izא. ReadLine() QgNאn,p\نאP353izא. ReadToEnd() :أﻣﺜﻠﺔ :Vo3Pوאizא7אtFD0F® ^ل3 295 C# private void write( string msg) { using(StreamWriter w1 = File.CreateText("test.txt")) { w1.Write("Start"); w1.Write(writer.NewLine); w1.WriteLine(msg); } } private string read() { using (StreamReader s1 = File.OpenText("test.txt")) { string input = null; string msg=""; while ((input = sr.ReadLine()) != null) { Console.WriteLine(input); msg+=input; } return msg; } } ﻛﻮد VB Private Sub write(ByVal msg As String) Using w1 As StreamWriter = File.CreateText("test.txt") w1.Write("Start") w1.Write(writer.NewLine) w1.WriteLine(msg) End Using End Sub Private Function read() As String Using s1 As StreamReader = File.OpenText("test.txt") Dim input As String = Nothing Dim msg As String = "" While (input = sr.ReadLine()) IsNot Nothing Console.WriteLine(input) msg += input End While Return msg ﻛﻮد 296 End Using End Function :o\ אUPאFD2 : ConsoleאلnDizא7אFD2و ﻣﻼﺣﻈﺔ ناتج المتغير النصي سيكون بدون عالمة السطر الجديد والذي سينتج عن الدالة StringWriter, StringReader .8.4 אKPTFD53NP>3'S وstring U'دQ2Nאa7!،FDقH! א$%'Q9ً7ذF :ً ^3 C# StringBuilder stbuilder = strWriter.GetStringBuilder(); stbuilder.Remove(0, 10); stbuilder.Insert(0, "Ahmed Gamal"); ﻛﻮد 297 VB Dim stbuilder As StringBuilder = strWriter.GetStringBuilder() stbuilder.Remove(0, 10) stbuilder.Insert(0, "Ahmed Gamal") BinaryReader, BinaryWriter ﻛﻮد .8.5 nD ' وSystem.ObjectJO א53 7T3 ، binary hO3 U 5Q+ وאizא7 وאP א53 NPe אWS، hQ'['عאG ReadXXXX() א$!אsא.7אhJ!0H9אUi'د%'\وאل א$אGC :JOאlWSאم$+Pوאizא7א\^ل C# FileInfo f = new FileInfo("Binary.dat"); using(BinaryWriter bwriter = new BinaryWriter(f.OpenWrite())) { double dbl = 1234.67; long lng = 34567000; string str = "A, B, C"; // Write differnt data. bwriter.Write(dbl); bwriter.Write(lng); bwriter.Write(str); } // Reading using ReadXXX; using(BinaryReader breader = new BinaryReader(f.OpenRead())) { Console.WriteLine(breader.ReadDouble()); Console.WriteLine(breader.ReadInt64()); // == long as i think , i am not sure. Console.WriteLine(breader.ReadString()); } ﻛﻮد VB Dim f As New FileInfo("Binary.dat") Using bwriter As New BinaryWriter(f.OpenWrite()) Dim dbl As Double = 1234.67 Dim lng As Long = 34567000 Dim str As String = "A, B, C" ' Write differnt data. bwriter.Write(dbl) bwriter.Write(lng) ﻛﻮد 298 bwriter.Write(str) End Using ' Reading using ReadXXX; Using breader As New BinaryReader(f.OpenRead()) Console.WriteLine(breader.ReadDouble()) Console.WriteLine(breader.ReadInt64()) ' == long as i think , i am not sure. Console.WriteLine(breader.ReadString()) End Using FileSystemWatcher .9 h אqא53gD C1Q q!א3وY3o3¤'.א3UNHUًא$%i$O3JO אlWS4 :אh אq א53אG.אQW وאSystem.IO.NotifyFilters enumאلUi'د%'\א C# public enum NotifyFilters { Attributes, CreationTime, DirectoryName, FileName, LastAccess, LastWrite, Security, Size, } ﻛﻮد VB Public Enum NotifyFilters Attributes CreationTime DirectoryName FileName LastAccess LastWrite Security Size End Enum ﻛﻮد א دא،Eא$913SWONQدوאلoQًאH'!جRN،h אq وevents 5D E$RNً}א : אdelegate KP,nD'نPאن$9:! I وqوאKQ$אK^3Eא$אizא7م$+ 299 C# void MyNotificationHandler(object source, FileSystemEventArgs e) { ﻛﻮد } VB Private Sub MyNotificationHandler(ByVal source As Object, ByVal e As FileSystemEventArgs) ﻛﻮد End Sub : אKPT0QنC$99 אqE$3C C# void MyNotificationHandler(object source, RenamedEventArgs e) { ﻛﻮد } VB Private Sub MyNotificationHandler(ByVal source As Object, ByVal e As RenamedEventArgs) ﻛﻮد End Sub $ !234א2jAאنUGNًو،hO\ א.'م}א7Q،دD23oQ'م7Nאن NP3 نwindows Forms U N ' ، ً ^3 q f م$+\ אaqMQ n KFQ 234 אK< אن fWL!وאs9א$L c:\ GVصא7אUVNאhO\!אG.אNאWSN^3U،ًi,3.א\א C# FileSystemWatcher watcher = new FileSystemWatcher(); // monitor files at: watcher.Path = @"c:\"; // monitor files when watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName| NotifyFilters.DirectoryName; // watch files of type watcher.Filter = "*.txt"; // watch events: ﻛﻮد 300 watcher.Created += new FileSystemEventHandler(OnChanged); watcher.Deleted += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; Console.WriteLine("Press 'q' to quit app."); while (Console.Read() != 'q') ; VB Dim watcher As New FileSystemWatcher() ' monitor files at: watcher.Path = "c:\" ' monitor files when watcher.NotifyFilter = NotifyFilters.LastAccess Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName ﻛﻮد ' watch files of type watcher.Filter = "*.txt" ' watch events: AddHandler watcher.Created, AddressOf OnChanged AddHandler watcher.Deleted, AddressOf OnChanged watcher.EnableRaisingEvents = True Console.WriteLine("Press 'q' to quit app.") While Console.Read() <> "q"C End While KP * دאV§ 5P> ، OnChanged א$ אzD$ 'م7 N¦! E$ C E$d 3$ND ، (9 F o\ضאD −ً ^3אKPT OnChanged א$אNNP>،^ل3a7!אWS5PGFوCE$ - : qא. ووqوא ﻛﻮد C# static void OnChanged(object source, FileSystemEventArgs e) { Console.WriteLine("File Changed, File Path: {0} , Change: {1}, DateTime: {2}", e.FullPath, e.ChangeType,DateTime.Now.ToString()); } ﻛﻮد VB Private Shared Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs) Console.WriteLine("File Changed, File Path: {0} , Change: {1}, DateTime: {2}", e.FullPath, e.ChangeType, DateTime.Now.ToString()) End Sub 301 ...234 אX%وאن :( i,3 א53)AICi3:دDאوא53o3fWL0.'3אجiH'Vא Object Serialization .10 . Object Serialization 'مאلgO35DًQسH$אאWSUfN Serialization اﻟﺘﻌﺎﻣﻞ ﻣﻊ ال .10.1 : Serializable ﻋﻤﻞ اﻟﻔﺌﺔ اﻟﺨﺎﺻﺔ ﺑﻚ ﻟﺘﻜﻮن :ً ^3אKPTJOא אnD א: [Serializable] FPא0MنC3אU3K C# [Serializable] public class serial { } ﻛﻮد VB <Serializable()> _ Public Class serial End Class ﻛﻮد 302 ؟Serializable ﻣﺎذا اﺳﺘﻔﻴﺪ ﻣﻦ ﻛﻮن اﻟﻔﺌﺔ اﻟﺨﺎﺻﺔ ﺑﻲ i,\ אP אK^3 *jV א53 iدO Serializable g' 9 אhJO( א3 :אא\^لWS،ً7NFFGVصא7אhO3 C# serial sample =new serial(); using(Stream fs1 = new FileStream("data.txt", FileMode.Create, FileAccess.Write, FileShare.None)) { binFormat.Serialize(fw1, sample ); } ﻛﻮد ﻛﻮد VB Dim sample As New serial() Using fs1 As Stream = New FileStream("data.txt", FileMode.Create, FileAccess.Write, FileShare.None) binFormat.Serialize(fw1, sample) End Using ﻣﺎذا أﻳﻀ ًﺎ ؟ אلgN3، Serializable '9 bאhJOא03K3אK79$.tאhNjPא53 د$D¤NS . ASP.net אلhRObUView State : BinaryFormatter gN3،NjP Serialization KFق1 א53$Q$א¤NS C# BinaryFormatter binFormatter = new BinaryFormatter(); using(Stream fs1 = new FileStream("data.txt", FileMode.Create, FileAccess.Write, FileShare.None)) { binFormat.Serialize(fs1, myobject); } ﻛﻮد ﻛﻮد VB Dim binFormatter As New BinaryFormatter() Using fs1 As Stream = New FileStream("data.txt", FileMode.Create, FileAccess.Write, FileShare.None) 303 binFormat.Serialize(fs1, myobject) End Using : Deserializing KFو C# BinaryFormatter binFormatter = new BinaryFormatter(); using(Stream fs1 = File.OpenRead("data.txt")) { newobject car = (objectclass)binFormatter.Deserialize(fs1); } ﻛﻮد VB Dim binFormatter As New BinaryFormatter() Using fs1 As Stream = File.OpenRead("data.txt") Dim car As newobject = DirectCast(binFormatter.Deserialize(fs1), objectclass) End Using XmlSerializer ﻛﻮد .10.2 53hא$D'א.hP3אY0F® : ( ًאh א5Q§_DUE$'عאN אXML אل$Q KPT XML o33אqVא،VNאhO\אUFg3K3'אgY 0F®و:! IوRא :א ﻛﻮد <root> <Member> <Name>AHmed</Name> <Age>22</Age> </Member> </root> .AttributenF Age وName 3C Element nF22و$"C :NS 53z$אNP> XML 'ل$Q\\!א رابط http://www.w3schools.com/xml/xml_whatis.asp 304 : System.Xml.Serialization اﻟﻌﻨﺎﺻﺮ اﻷﺳﺎﺳﻴﺔ اﻟﻤﻮﺟﻮدة ﻓﻲ ob'א VNא Attribute:אnDVNאאWSKQ'Q XmlAttributeAttribute Element:אnDVNאאWSKQ'Q XmlElementAttribute Rootאل$Q$R XmlRootAttribute XML Text لgQ'Q XmlTextAttribute : Serialization FDQ 5D XML JOאlWSKQ'Rً ^F! C# class Members { [XmlAttribute] string Name; [XmlAttribute] int Age; } ﻛﻮد VB Class Members <XmlAttribute()> _ Private Name As String ﻛﻮد <XmlAttribute()> _ Private Age As Integer End Class o3KP, nD2Nא$` SerializationKFD53وJOאlWSnDhא53!א'عs א$وאن .אXML 305 اﻟﺒﺎب 14 ﺑﺮﻣﺠﺔ اﻟﻨﻮاﻓﺬ ﻓﻲ .net 2008 306 307 ﻣﻘﺪﻣﺔ .1 hg%وאFVKT\RאKLאS4אhqGא03 3 ز3Rbאt אViusal FPא4 303،'دPg%وאHnD4'نPN Visual 4אhqK.3 VDU،م$+FN3 .FVאA'3ضOµ!אsאWONא.وU I]'وb53 ذ:NQ ¤NS،N3g%وאFV:ج3Kم$7 System.Windows.Forms P\אhz% .net U 3אوא53D'F لI533'אzOiدQز53NPe GDI+ f API دوאلD'FًMQC Windows Presentation N7 !'وPQ3 N hz% .net 3.0 03 ًא وIC ،D 2 h3' VV+\א 0O3 $L 4 אh71 5Fs h3' אizO 53 $Q WPF ًאHVI אf 3 אوFoundation . ًא$% ﺑﺎﻟﻜﻮدWindows Forms ﺑﻨﺎء .2 'م7אنKMOQ، Visual Studio 5Fs!'وPQ3Ng!وtאiS אh\אمא$+C$نCK. . Windows Forms KFDOg!01ngNDًא$ 'ذجzNوR} U C$N 53 و، WindowsForms.cs ً ^3 o3 zT . ، Notepad iPO\ אO . אW .'دPא :ً ^3אKPT Forms JOא537T3J!oQ'م7Nً9وC C# class SimpleWindow : Form { } ﻛﻮد VB Class SimpleWindow Inherits Form End Class ﻛﻮد אW، System.Windows.FormshP3!sאnN9، :N3+zD$ Main E$U'م7Nوאن : אKPTK3P'دP'نאP 308 C# using System; using System.Windows.Forms; namespace WindowsForms { class Program { static void Main() { Application.Run(new SimpleWindow ()); } } } class SimpleWindow : Form { } ﻛﻮد VB Imports System Imports System.Windows.Forms Namespace WindowsForms Class Program Private Shared Sub Main() Application.Run(New SimpleWindow()) End Sub End Class End Namespace Class SimpleWindow Inherits Form End Class ﻛﻮد :אK^33C و، אصCmd !'SD3Ka7!אن ﻛﻮد csc /target:winexe *.cs ﻣﻼﺣﻈﺔ .'د!`'אلnDKF3$NDcsc53ً9$vbcم$+א 309 ً J,2N'نאP،نP3CUאم$+ iS%'نP csc oQ$و،234 אH\XSWא$ً :אWSK^3 WONnوC*jVא53 א.... !OTא.'لوאض1אK^3،*jVאUPRאNP3وאن :ً ^3אKPT Object Browser لI53g'لb'א5P>tא3אوא :אKPTمH'O'ن'دאPאW،:1''ل وאضو1 אqً ^3NP3אن$<אW C# class SimpleForm : Form { public SimpleForm (int height, int width, bool center) { ﻛﻮد 310 Width = width; Height = height; if(center) CenterToScreen(); } } ﻛﻮد VB Class SimpleForm Inherits Form Public Sub New(ByVal height As Integer, ByVal width As Integer, ByVal center As Boolean) Me.Width = width Me.Height = height if center=True Then CenterToScreen() End If End Sub End Class :ً ^3אKPT،JOאhאZ3H QF'م7f' Run UC@N95P C# static void Main() { Application.Run(new MainWindow(200, 300,True)); } ﻛﻮد VB Private Shared Sub Main() Application.Run(New MainWindow(200, 300, [True])) End Sub ﻛﻮد ...ً 7NFF Args لI537 אlWSnD'لVLאP3:@ًאN9 اﺿﺎﻓﺔ أدوات ﺑﺎﻟﻜﻮد .2.1 لI530.ذ 'אQ،مH'OאnDO+\אhאدوא0sوnDאنHو$אz%،'دPمH'O אHNF :א3אوא 311 ob'א bوאCא$א Add() !s9אhF AddRange() fWLאhF 0F\א Remove RemoveAt() Clear() Count nDHא\وh9)و$NDًא$%i$O3b אlWS0.א'אU،hدوא9دא$D hאدوא K${، System.Windows.Forms JO'دא%'3gF`!،g!sאNP>t אhאدوא3C ...gQ¯HnDh'دtאhدوא9א اﺿﺎﻓﺔ اﻟﻘﻮاﺋﻢ .2.2 :Fj7אU Exit HزnDaqM אوج5P>אKPT'لb'ولאRN :Fj7אbN ToolStripMenuItem53وFj7 MenuStrip oQ'م7N،ً1'نP'دPא C# private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; ﻛﻮد VB Private menuStrip1 As System.Windows.Forms.MenuStrip Private fileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Private exitToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem ﻛﻮد 312 i,3'אد9א0sو53ً9$، BuildForm g א5P وConstructor אلUدאKFDS^אi'1א . Constructor אلU C# public SimpleForm() { Text="Example. Simple Form"; BuildForm(); } ﻛﻮد VB Public Sub New() Text = "Example. Simple Form" BuildForm() End Sub ﻛﻮد :j אFj7 Add אم$+gOMوbNzא0s''م7N،א$אlWS4 'م7Nאن C# fileToolStripMenuItem.Text = "&File"; menuStrip1.Items.Add(mnuFile); exitToolStripMenuItem.Text = "E&xit"; menuStrip1.DropDownItems.Add(mnuFileExit); ﻛﻮد VB fileToolStripMenuItem.Text = "File" menuStrip1.Items.Add(mnuFile) exitToolStripMenuItem.Text = "Exit" menuStrip1.DropDownItems.Add(mnuFileExit) ﻛﻮد :אKPT Exit VNaqMאE$L Handler !sאS^אi'1א C# exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); ﻛﻮد VB ﻛﻮد 313 AddHandler exitToolStripMenuItem.Click, AddressOf exitToolStripMenuItem_Click :مH'Og!sא$אKPT Form لbאFj7'نאPjאFj7א$FNً אIC C# Controls.Add(this.mnuMainMenu); MainMenuStrip = this.menuStrip1; ﻛﻮد VB Controls.Add(Me.mnuMainMenu) MainMenuStrip = Me.menuStrip1 ﻛﻮد : Exit HزnDaqMאصE$LאP'م7f'אن C# private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } ﻛﻮد VB Private Sub exitToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Application.[Exit]() End Sub ﻛﻮد :אKPTB9'دאP'ن אPQאWg C# class SimpleForm: Form { private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; public SimpleForm() { Text="Example. Simple Form"; BuildForm(); } private void BuildForm() ﻛﻮد 314 { fileToolStripMenuItem.Text = "File"; menuStrip1.Items.Add(mnuFile); exitToolStripMenuItem.Text = "Exit"; menuStrip1.DropDownItems.Add(mnuFileExit); exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); Controls.Add(this.mnuMainMenu); MainMenuStrip = this.menuStrip1; } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } } ﻛﻮد VB Class SimpleForm Inherits Form Private menuStrip1 As System.Windows.Forms.MenuStrip Private fileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Private exitToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Public Sub New() Text = "Example. Simple Form" BuildForm() End Sub Private Sub BuildForm() fileToolStripMenuItem.Text = "&File" menuStrip1.Items.Add(mnuFile) exitToolStripMenuItem.Text = "E&xit" menuStrip1.DropDownItems.Add(mnuFileExit) AddHandler exitToolStripMenuItem.Click, AddressOf exitToolStripMenuItem_Click Controls.Add(Me.mnuMainMenu) MainMenuStrip = Me.menuStrip1 End Sub Private Sub exitToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Application.[Exit]() End Sub End Class 315 Viusal Studio.net اﻧﺸﺎء ﻓﻮرم ﻋﻦ ﻃﺮﻳﻖ .3 :Windows Forms ApplicationHI. File-New Fj.53،Visual Studio 2008!אa7! :אKPTא$`، MenuStrip ZI אTool Box אFj7א53אن 316 ًאS%3 א$` Exit VN אnD Y3 aqM א$ND ، Fj7 אFV و$Q F عO . ! Fאن و :אKPTP .X% وF5 nDaqsא53و،'دPאGאنא ....^ ًאKgCbC0s'نאC3O9C . ﺳﻨﺘﻌﺮف ﻋﻠﻰ ﻣﺤﺘﻮﻳﺎت اﻟﻮاﺟﻬﺔ اﻟﺮﺋﻴﺴﻴﺔ، اﻵن nDfאKb'אNאن، Visual Studiog% وאUط7N אnDN!وسH$א5373U .3' אg%'אbطא7Nא : ToolBox . View - ToolBox 53lHg&אNNP>ًאS&5PQ_'، gجאtאjאhאدوאnD'd !sאNP3زאل3ذ03، All Windows Forms GQ'אi'د%'3gجtאhدوא9אSC WאVNאHI وאChoose Item 53 وAdd Tab Q5D،:AIChدوאC!sوא$Q$%GQ' ::!G 317 : Tabs Group nDaqMאNP>F .gNK7NאNP>، gRO F.tאHدV\ وאhO\א0BnD'd :ً ^3אKPT'O\אh,TאYKQ$Ctrl+Tab : Properties Windows 318 $*אjVIs'iH'VאlWS،مH'OאnDl$Q$QVNDgQ$ UGt*אjVאg!${ . Fj7אbND : Solution Explorer . Resources وH'bn אوClasses hJ!وC Forms W!'א53 DوT3hQ')OV53NP> : Class View 319 .:! IوkودوאgVjVI وQ$i'د%'\אhJOאאضא ﻓﻲ اﻧﺸﺎء اﻟﻨﻤﺎذج ؟Visual Studio.net ﻛﻴﻒ ﻳﻌﻤﻞ ال :hO3 Solution ExplorerFj.53Q$$`،'دPSNFtא7Q1@ אON : Form1.cs -1 אWSUgPF.tא'אدא${ًMQ[ אDesign] 0s' אQ5DًQو$QمH'OאUPRא53NPF אnDY3aqMאوא،Q'אFj7א53K7NYs'אYKQ$Y4\ א53 ^'م7Q،o\א 5>א\وسאHمH'O אnDaqMאQ5D^37Q1ذKFDNP>.g'دאصPאOiאدא . Class DiagramnوC Design - Code 0s'אHIوא : Form1.Designer.cs -2 USN3$+אtאg,ًא'אدא$`:ROF.'،مH'O وאhאدوאzTb'אدא9א${NS :سH$אאWS 53אولzא 320 : Form1.rex -3 .:! Iو3$+\אHدV\אnD'd : Windows.Forms ﻣﺠﺎل اﻷﺳﻤﺎء .4 Windows.Forms اﻟﻔﺌﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻟﻌﻨﺎﺻﺮ .4.1 :אhJOא53T3'Sو،JOאlWSU9 אVN'אSمH'Oא System.Object .net hNjKP9אVNא System.MarshalByRefObject مH'O אbyref 'لb'א535PFN System.ComponentModel.Component IcomponentnF\ אInterface אل53T3 321 System.Windows.Forms.Control .ً 79KVO:وNN System.Windows.Forms.ScrollableControl .b אlWg 0FQ אن5P> gN3 T3 VND א، Scrolls אم אل$+ אK% א53 System.Windows.Forms.ContainerControl nD:Iא$ 'dאن5P>gN3T3VNDא،AIC Controls nD'dאن5P>:%K% א53 .AICbND System.Windows.Forms.Form .ً 79KVO:وNN * ودوאلjVI 0B א !¦نW ، System.Windows.Forms.Form JO א53 T3 Form ن אلC ذ ... אنgDfN3Sو، :K7NJOאlWSEא$Cو Form ﺧﺼﺎﺋﺺ اﻟﻔﺌﺔ .4.2 ob'א bא nDم$+\ אaqs$NDl3وאCWONQWאHא$Q$ AcceptButton Enter aTNא5א$Q$R אWSQ،zNCمH'O'نPQ3$ND ActiveMDIChild AICh3H'O5s مH'OאאWSK%P3א$Q$R IsMDIChildIsMDIContainer XML Text لgQ'Q CancelButton م$+\ אaqMQ 3$ND l3وאC WON Q W אH א$Q$ EscHزnD 9مC Control Box مH'OKS$Q$ ControlBox مH'Oودא$KP,$Q$ FormBorderStyle مH'O jאFj7א$Q$ Menu AICi$وא$`،9مC qV وאPאHضزD MaximizeBox OאaQTאU:sوHضزMinimize 322 9مCوز$NQ'OאaQT אUאض$Q$ ShowInTaskbar Q i3 ولlH'g& $ND مH'O Qא$ א17 $Q$ StartPosition nF\ אenumeration ~ ل אI 53 SHIא FormStartPosition אل53 SHI אQ tم وאH'O א$Q$ WindowState FormWindowStatenF\אenumeration : ﻋﻠﻰ اﻟﻌﻨﺎﺻﺮ اﻟﺘﺎﻟﻴﺔFormStartPosition اﻟﻤﺴﻤﻰenumeration وﻳﺤﺘﻮي اﻟـ : ﻓﻴﺤﺘﻮي ﻋﻠﻰFormWindowState أﻣﺎ Form دوال اﻟﻔﺌﺔ .4.3 ob'א א$א مH'OאaTN Activate() مH'Oא قא Close() ,TאoVN3 UمH'Oא0sو CenterToScreen() S'د%وUzNאh,TضאD(م$Q$ LayoutMDI() $ 9 gOI \ 'ع% א5P> 9 r Dialog iH'V مH'Oض אD ShowDialog() g. א 323 Form أﺣﺪاث اﻟﻔﺌﺔ .4.4 ob'א E$Lא 'م7Q3$ND אوActivate 3]zم'אH'OאaTNQ3$NDE$LאאWS1NQ Activated :P31nD1TNאiW!Nא:´م$+\א א قE$C$Q3$ND Closing א قE$gNQ3$ND Closed مH'O אIz,PRאGSWQ3$ND Deactivate Load nD مH'O אH'g& K. E$Lא אWS 1NQ 5P و، مH'O אKF Q 3$ND: -ً D',z1I^ אC53$وאGN`−ً bC,Tא S'د% وUzNאh,Tא53$وא$Q$$ND MDIChildActive .NSgsNtوאg!אP0FQ'g!אWو، Control JOא53T3 مH'O!¦نא،ً7ًMQذאF Control اﻟﻔﺌﺔ .5 Controls ﺧﺼﺎﺋﺺ اﻟﻔﺌﺔ .5.1 ob'א bא O'نא BackColor Iא$*אN'نא ForeColor iH'bOI BackgroundImage :! Iو:D'و:F`وaא Font مH'OوאCi!'قאدאH' א$NDg(QWא,p\'عא Cursor Fg3مH'OאnDhدوא9نאP3 ^t وאDock אلbI03K3 Anchor مH'O `אq 324 gQ')G i دאj7` AutoSize X 'א$Lא53مH'Oאوאiدא9א0s'3 Top X Qא$Lא53مH'Oאوאiدא9א0s'3 Left X KOא$L א53مH'Oאوאiدא9א0s'3 Bottom X 5>א$Lא53مH'Oאوאiدא9א0s'3 Right ود$Lא Bounds 0353 ClientRectangle 'ل1א Height אض Width :3$D53مH'OאوאiدאPRאP3א$Q$ Enabled zOI9وאH'g(א Visible Shift وCtrl وAlt אلK^3 ModifierKeys אلizא. ModifierKeys (oVN\–אQא−5>C) א\وس53'طqM\אH!א3 MouseButtons TabH ز1'אgNل7 bNאGد$ TabIndex TabH لزI53VN'لb'א0N3 TabStop 1و0Y3!OT א%Hد Opacity iدא9אKI*א\وضدאNא Text nD ًאHد. VN ن אU Iא$ אh'ل دאوאb' א53 NPe Controls :IدאbNDXא Controls أﺣﺪاث اﻟﻔﺌﺔ .5.2 ob'א E$Lא \وسaqMא Click \وسY1qs DoubleClick iقאدא1'لא\وسIد MouseEnter iدא9قא153وجא\وسI MouseLeave KO9 א\وسHزaqs MouseDown א\وسHز1qs5D0b9א0!H MouseUp 325 .MouseHover17א\وس !'قH'D MouseMove WheelאلnDaqM MouseWheel دH'Pא53Hزaqs KeyPress 'طqM\אHא5D0b9א0!H KeyUp KOHאaqs KeyDown Lאiدא9!'قאiאدאGR DragDrop AICi¡لאدאi'لאدאIد DragEnter وجI DragLeave i!'قאدאH'D DragOver אE$ Paint System.Windows.Forms.Control أدوات .6 537T3hאدوאKنCSg!3D17ولC،h'مאض אدوא7NN¦سאH$אUذ .i,3سאH$אUgTNF.tאEא$* وאjV0FiدאC C א!¦نW Controls JOא .NQ$jאhض אدوאNאن Button .6.1 :K^3*jVאnD'd،ًא$%دD3CHز .3אH زg(3$Q$:FlatStyle .3אHز53*Nא0s'3:TextAlign 326 CheckBox .6.2 :K^3!s* אjVInD'd،bNDi$DHIאNNP>،د$\אHI9אHز .HI9 א:CheckState .( ً j%KO3−KO3 −KO3)^bI KFd:'$Q$R :ThreeState RadioButton .6.3 panel U gN3 K 0s i3 53^ :3א$+ א$Q N' ، $ وאHI FQ :NP א وK^3 .o ListBox وComboBox .6.4 327 .X'1\`אLאG^ وא$وאobUو9א،hאHI5Fs53HI Fj. .... Items.Remove وItems.Add K^3 Collection.List USNFt*אjVא0BnD'd Textbox .6.5 : !s9אgVjVI،gIدאPم$+FFViدאC .a7!izא7g% :ReadOnly .لI* دNא03K%Ug(QWא3 א:PasswordChar .1אiد$3 g´vF א:MultiLine .*NnV.9'لא1 א:maxLength .QFא,א:ScrollsBar .ً ^3دHوو23K^3i!אدא:'bو$*NאfOא:WordWrap HI אNP3 'نP אW ،System.Windows.Forms.ScrollableControl JO א53 7T3 g א . ScrollBars nF\ אenumeration אل530sو : ﺗﻄﺒﻴﻘﺎت ﺳﺮﻳﻌﺔ ﻋﻠﻰ ﻣﺮﺑﻊ اﻟﻨﺼﻮص :ً ^3م.HאA'K7Q9'صVNא03K− C# private void TextBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if ((e.KeyChar < '0' | e.KeyChar > '9')) { e.Handled = true; } } ﻛﻮد 328 VB Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If (e.KeyChar < "0"c Or e.KeyChar > "9"c) Then e.Handled = True End If End Sub ﻛﻮد :*Nא03KIدאF5DRא− C# private void Button1_Click(object sender, System.EventArgs e) { // Rن`אP3אولnD'RW אq\א ﻛﻮد int index; //RאF string SearchWord = "Ahmed"; //iدא ل79א TextBox1.Focus(); //Qא$אUlN!DW אq\אUFPאQא$نP30sو index = TextBox1.Text.IndexOf(SearchWord); // k'1وFPאQא$53$Q$R*אjVIאم$+FPא$Q$ TextBox1.SelectionStart = index; TextBox1.SelectionLength = SearchWord.Length; } VB Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Rن`אP3אولnD'RW אq\א Dim index As Integer 'RאF Dim SearchWord As String= "Ahmed" 'iدא ل79א TextBox1.Focus() 'Qא$אUlN!DW אq\אUFPאQא$نP30sو ﻛﻮد 329 index = TextBox1.Text.IndexOf(SearchWord) ' k'1وFPאQא$53$Q$R*אjVIאم$+FPא$Q$ TextBox1.SelectionStart = index TextBox1.SelectionLength = SearchWord.Length End Sub Label .6.6 .a7!–KQ$. 'صVNض אiدאC Panel وGroupBox .6.7 .gIא$AIChدوאC0sو5P>QوhدوאC RichTextBox .6.8 330 Y قHO' אS TextBox Y وgN قHO א، O h7N nD ' אنgQ'[ F * iدאC .H'bوh7NnD'd0\7אiH'Vא، Wordpad وNotepad :!אs9*אjVאnD' .*NאfOא$Q$R :Wordwrap .1دא$D$Q$R:Lines .و'لQא$17אو،QgوQא$17Q 5D*Nא53z%$Q$R :Select .SelectionColorא'نK^3،د$[אz` aIN$Q$R:SelectionXXX .ل7 .g%ًوj7Z9א5QوND$Q$R:DetectUrls :!אs9وאلא$אnD'd F .Y3H353Vo3 O :LoadFile .Y3نP3Uo\אªOL :SaveFile : أﻣﺜﻠﺔ ﺳﺮﻳﻌﺔ :Io3UªOLא53وVo353*NאiאدאhQ')izא7− C# RichTextBox1.LoadFile("C:\Ahmed.txt", RichTextBoxStreamType.PlainText); RichTextBox1.SaveFile("C:\Ahmed2.txt", RichTextBoxStreamType.PlainText); ﻛﻮد VB RichTextBox1.LoadFile("C:\Ahmed.txt", RichTextBoxStreamType.PlainText) RichTextBox1.SaveFile("C:\Ahmed2.txt", RichTextBoxStreamType.PlainText) ﻛﻮد 'عN אaM 'م7N! rtf 'عN א53 h7N nD 'd V o\و' ن א :ً ^3אKPTRichTextBoxStreamType.RichText C# RichTextBox1.LoadFile("C:\Ahmed.rtf ", RichTextBoxStreamType.RichText); ﻛﻮد 331 RichTextBox1.SaveFile("C:\Ahmed2.rtf ", RichTextBoxStreamType.RichText); VB RichTextBox1.LoadFile("C:\Ahmed.rtf ", RichTextBoxStreamType.RichText) RichTextBox1.SaveFile("C:\Ahmed2.rtf", RichTextBoxStreamType.RichText) ﻛﻮد Rא2jK5Q''م7Ni\אlWS5Pو،*Nאiدא:FDWאR^لא31$Nوאن :AIi$وאS$Q$53ً9$ C# ﻛﻮد int index=0; while((index = richTextBox1.Text.IndexOf(textBox1.Text, index))!=-1) { richTextBox1.Select(index, textBox1.Text.Length); richTextBox1.SelectionColor = System.Drawing.Color.Red; index += textBox1.Text.Length; } MessageBox.Show("hFPא5Q'53zg9;)"א VB Dim index As Integer = 0 While (index = richTextBox1.Text.IndexOf(textBox1.Text, index)) <> -1 richTextBox1.[Select](index, textBox1.Text.Length) richTextBox1.SelectionColor = System.Drawing.Color.Red index += textBox1.Text.Length End While ﻛﻮد MessageBox.Show("hFPא5Q'53zg9)"א :אKPTWONא2'نPو 332 Timer .6.9 :QHאP 3 אوאKFD U $O ، Y3 Interval K lWON Q W وאTicker E$ k ، .pF iدאC .N3قزH'אO aM.ًMQא،i$دلوא3S و1000 IntervalbIaM.،^'אDKFD^ل3 :Tick E$LאU'دאPאP.ًوMQאTrueEnabledbא C# label1.Text = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second; ﻛﻮد VB label1.Text = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second ﻛﻮد 333 :אWSK^3ًJ,2N'نאPو TreeView .6.10 .g!WوbNDC!sא: I535P>W وאNodes 'S9אSVND ،i`TאiدאCض :iאدאlWS5Fs:! IوH'b!sאnوNאU qא5P> :אaאא53gND$Q\אnDfאNP> رابط http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.aspx 334 Progressbar .6.11 !s אn وאدnD א$L א$Q$R Minimum - Maximum S 9 א:VjVI ، م$7 א,p3 ض Style b لאI53م$7אF style $Q$NP>،i3Kم$7 אHא$73$Q$R Step b+ . ProgressBarStyle nF\ אenumeration אل53 C7tوא . Value bאمא$+ ً 79bא$Q$5P> Trackbar .6.12 .h'VאOIو0! אصTrackbar K^3،:F7PR53אNP Progressbar K :T3 DateTimePicker .6.13 ¢QH אX' א$Q$R Format b א53 אضX' א$Q$ NP> ، h. وאو¢QH א'אHI9 iدאC $و¢QHnV.א$0sو5P>F Valuebא53א\وض¢QHאnD'لVLא5P>.א\وض .MinDate - MaxDateYbאQ5DnدC 335 0.'3]نאOCאW ... gbOnDfאU.'אDsא53Aو$%9אًو$%i ^hאدوא : iدאCKPًVOً,${!'وPQ3 رابط http://msdn.microsoft.com/en-us/library/aa984065(VS.71).aspx Dialogs .7 'م7N ^ א\ אU ، N صI $ وאFV 9 ً وC 'م7N QH'אL אh\ א5D ND's'3 Qא$ U .jTאQH'אLאh\אh3א$+ אnDf FormBorderStylebI aM . ، resizeable אلbI zq . ، $Q$% مH'! zT . h\אGCFV 'نPQ7Q1אlWg ... MaximizeBox وMinimizeBox zOI.،FixedDialog .QH'אLא bN א53ًא$وא2N'نאPQ Dialog وCH'א03אU،'dFH'אLא0\ אFV.אن :א7אnD'dW وאDialogResultnF\ אenumeration U!\א Abort, Cancel, Ignore, No, None, OK, Retry, Yes .H+\אH אnDمH'O AcceptButton אلbIaM OK F7א$QWאHאaM CancelButton bא$< Cancel b+Na39ًאMQא :ً ^3אKPT ShowDialog 3مא$+ Dialog H'א03iH'VمH'!Hg&9 C# newDialog.ShowDialog(); ﻛﻮد VB newDialog.ShowDialog() ﻛﻮد 336 אKPTN'دאصPאGPN،lHIאH!אز3و:ND{Nא7 אizא7%rNو}א5Pو :א\^لKnD C# if (newDialog.ShowDialog() == DialogResult.Cancel) { // do something } else if (newDialog.ShowDialog() == DialogResult.Ok) { // do something else } ﻛﻮد VB If newDialog.ShowDialog() = DialogResult.Cancel Then ' do something ElseIf newDialog.ShowDialog() = DialogResult.Ok Then ' do something else End If ﻛﻮد KQ$ ً ^3 . אW ، public '1\ א7 אoQ ND ً 3'ن אP Dialog אلhQ') izא. Nو'و : אKPT*Nא03 C# public System.Windows.Forms.TextBox TextBox1; ﻛﻮد VB Public TextBox1 As System.Windows.Forms.TextBox ﻛﻮد MessageBox .7.1 :אKPTaאgH'b، MessageBox QWRאKjH'S Dialogs אل53Kg وאa9'عאNא C# MessageBox.Show("Welcome ..."); ﻛﻮد VB ﻛﻮد 337 MessageBox.Show("Welcome ...") ]PRא، overloads20$` Show א$kHא5P>tאhאZ3H!א3%' :NSgN3 YNضאN،QQWRאjHUKP, :3 QQWHHg&א C# MessageBox.Show("Welcome ...","Title",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); ﻛﻮد VB MessageBox.Show("Welcome ...","Title",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) ﻛﻮد :g(\א : ًsאZ!אgN3$ وאK%03،h9i$DY¤ §QQWHHg&א C# DialogResult reslt = MessageBox.Show("Do you want to save", "Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1); if (reslt = DialogResult.Yes) MessageBox.Show("you want to save."); else if (reslt = DialogResult.No) MessageBox.Show("you don't want to save."); else if (reslt = DialogResult.Cancel) MessageBox.Show("you cancel this operation."); ﻛﻮد 338 VB Dim reslt As DialogResult = MessageBox.Show("Do you want to save", "Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) If reslt = DialogResult.Yes Then MessageBox.Show("you want to save.") ElseIf reslt = DialogResult.No Then MessageBox.Show("you don't want to save.") ElseIf reslt = DialogResult.Cancel Then MessageBox.Show("you cancel this operation.") End If ﻛﻮد aאאאWS لI53ًBgsאאNP>،א...i$D3o3Hg& א،AIChאHIאi$D¤NS رابط http://msdn.microsoft.com/en-us/libr...ebox.show.aspx Dialogs Controls .7.2 OnDאنHو$אz%،SzTאONFوQH'אLאh\ א53a'عאNאnDN!אن$ ...hאدوא5Fsi'د%'\אאQH'אLאh\אم א$+א Color Dialog .7.3 :ً ^3iH'VO 'نאqً1 9 ً ^3]אنTNN وToolBox אل53:!s.،א'אنHIא03 339 :א3א:! Gوא3CH وزpicturebox iH'bosC C# if (colorDialog1.ShowDialog() == DialogResult.OK) pictureBox1.BackColor = colorDialog1.Color; else MessageBox.Show("cancel operation"); ﻛﻮد VB If colorDialog1.ShowDialog() = DialogResult.OK Then pictureBox1.BackColor = colorDialog1.Color Else MessageBox.Show("cancel operation") End If ﻛﻮد t وאAllowFullOpen K^3אم$+9אj, gNPאWSH'אLא03U!s9* אjVא¤NS :ً ^3אKPT7'אنא9 אHIא53م$+\א0N301 340 :ً ^3אKPTi,3K3P Sg(t אfullopen bوא :!'وPQ353VOaאH رابط http://msdn.microsoft.com/en-us/library/ms646375.aspx 341 Font Dialog .7.4 :*03aI q^ل3 KF'مאن7N،'ط1אHI9م$+Q C# fontDialog1.ShowColor = true; fontDialog1.Font = textBox1.Font; fontDialog1.Color = textBox1.ForeColor; if (fontDialog1.ShowDialog() == DialogResult.OK) { textBox1.Font = fontDialog1.Font; textBox1.ForeColor = fontDialog1.Color; } ﻛﻮد VB fontDialog1.ShowColor = True fontDialog1.Font = textBox1.Font fontDialog1.Color = textBox1.ForeColor If fontDialog1.ShowDialog() = DialogResult.OK Then textBox1.Font = fontDialog1.Font textBox1.ForeColor = fontDialog1.Color End If ﻛﻮد 342 :!'وPQ353VOaאH رابط http://msdn.microsoft.com/en-us/library/system.windows.forms.fontdialog(VS.80).aspx Open And Save Dialogs .7.5 g(OنP3 $Q$وChO\!אFD$Q$Rg3א$+אQiאدU،QH'אLאh\א53 YD'g,א ::(O 53 و:D KQ$ א، V o3 O : I 53 'م7 a ^ل3 KF 'م7N ، !s 'م75½ אICو،OIوªORHزos، Multiline=True bIK%وאa *03osא .i,3'دP لאI53gOMNK SaveFileDialog وOpenFileDialog :gN3$وאHIא53وVNאhO\א$Q$RH'אLא0\אمא$+ אSNQ$FDولC C# string fileToOpen=""; OpenFileDialog openFile = new OpenFileDialog(); openFile.DefaultExt = "txt"; openFile.Filter = "Word documents (*.txt)|*.txt"; if (openFile.ShowDialog() == DialogResult.OK) fileToOpen = openFile.FileName; ﻛﻮد VB Dim fileToOpen As String = "" Dim openFile As New OpenFileDialog() openFile.DefaultExt = "txt" openFile.Filter = "Word documents (*.txt)|*.txt" If openFile.ShowDialog() = DialogResult.OK Then fileToOpen = openFile.FileName End If ﻛﻮد :ً 7SNF7Q1*03U:Q')0sوF'م7N، q3Uo\ אH3NQ$bאنא C# if (fileToOpen != "") { using (System.IO.StreamReader s1 = ﻛﻮد 343 System.IO.File.OpenText(fileToOpen)) { string input = null; textBox1.Text = ""; while ((input = s1.ReadLine()) != null) { textBox1.Text += input; } } } VB If fileToOpen <> "" Then Using s1 As System.IO.StreamReader = System.IO.File.OpenText(fileToOpen) Dim input As String = Nothing textBox1.Text = "" While (input = s1.ReadLine()) IsNot Nothing textBox1.Text += input End While End Using End If ﻛﻮد :o\אªO:!'دWنאP\א$Q$RªOL אH'א03م$+Nאن C# string fileToSave = ""; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) fileToSave = saveFileDialog1.FileName; ﻛﻮد VB Dim fileToSave As String = "" Dim saveFileDialog1 As New SaveFileDialog() saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" If saveFileDialog1.ShowDialog() = DialogResult.OK Then fileToSave = saveFileDialog1.FileName End If ﻛﻮد :lHIم$+\مא.WאH\אUVNאo\אªOr'م7 ،ً7NFFو 344 C# if (fileToSave!="") { using (System.IO.StreamWriter w1 = System.IO.File.CreateText(fileToSave)) { w1.WriteLine(textBox1.Text); } } ﻛﻮد VB If fileToSave <> "" Then Using w1 As System.IO.StreamWriter = System.IO.File.CreateText(fileToSave) w1.WriteLine(textBox1.Text) ﻛﻮد End Using End If :אWSK^3ًJ,'نP2Nא :NSFgND$Q\אnD ع9 אNP>،YNjP אP!s9*אjVא¤NS 345 رابط http://msdn.microsoft.com/en-us/library/aa287592(VS.71).aspx http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog.aspx ...Oo353^C$Q$، a7!o\אوאא$¡אאizא.אوhO\א53'ع$Q$NP> .א print Dialog .7.6 :!'وPQ353אaאא¤$OQאن5P> ،D1אFD*jVIUPRم$+Q رابط http://msdn.microsoft.com/en-us/library/system.windows.forms.printdialog.aspx أﺣﺪاث اﻟﻤﺎوس .8 346 Properties 53 MouseDown E$LאGSWN ،א\وس53'طqM\אHً\!א9وC :'دאPאGP53و C# if (e.Button == MouseButtons.Left) MessageBox.Show("Left click"); if (e.Button == MouseButtons.Right) MessageBox.Show("Right click"); if (e.Button == MouseButtons.Middle) MessageBox.Show("Middle click"); ﻛﻮد VB If e.Button = MouseButtons.Left Then MessageBox.Show("Left click") End If If e.Button = MouseButtons.Right Then MessageBox.Show("Right click") End If If e.Button = MouseButtons.Middle Then MessageBox.Show("Middle click") End If ﻛﻮد 347 : MouseMove E$Uً ^3א\وسgD >tא17Nو\!א C# this.Text = "X: " + e.X + ", Y:" + e.Y; ﻛﻮد VB Me.Text = "X: " + e.X + ", Y:" + e.Y ﻛﻮد أﺣﺪاث اﻟﻜﻴﺒﻮرد .9 key_up :E$Uً ^3א3אGP'طqM\אH אصE$Lאizא7 C# this.Text="key: " + e.KeyCode.ToString(); ﻛﻮد VB Me.Text = "key: " + e.KeyCode.ToString() ﻛﻮد U ^ وאkey U אولH א0MN ، L אH א03 ً ^3 'طqM3 I H ز¤NS ذא ن3 !\ 5Pو :אKPTModifier C# this.Text = string.Format("Key: {0} Modifier: {1}",e.KeyCode.ToString(), e.Modifiers.ToString()); ﻛﻮد 348 VB Me.Text = String.Format("Key: {0} Modifier: {1}", e.KeyCode.ToString(), e.Modifiers.ToString()) ﻛﻮد ...gDzNhFאWON وIF אم$+Eא$אizא. P3אن¤HI9Dدא9ً 349 اﻟﺒﺎب GDI+ 15 350 351 GDI+ ﻣﻘﺪﻣﺔ إﻟﻰ .1 مH'O אnDD 2 h3'H K% א53 KM! א9 ً ' !' وSystem.Drawing JO א3 אوאlWS 0 :אjאhJO אnD'،:! Iאوh11+\وא hFDUg3$+tא9شאO موא. אnD'،jאJO א:System.Drawing .1 .א K^3אnD ¤$Dtوאلא$ א53AICD'Fم$7: System.Drawing.Drawing2D .2 geometric transforms وgradient brushes WON وIא$ אh אizא. وH'V אnD FD U ¤$D : System.Drawing.Imaging .3 .O+\אhFא .D1א03K3وאD1H'bh3'HKQ'nD¤$D :System.Drawing.Printing .4 .:! I'طو1א033'HiH'VK3 א:System.Drawing.Tex .5 System.Drawing ﻣﺤﺘﻮﻳﺎت اﻟﻔﺌﺔ .2 :SgQ')SC،ً3א$+ وא^א9אJOאS ob'א VNא iH'Vאh3'3z'א9 Bitmap א'אعi$Dkو،5Q'אFi,! Brush double N7 אم$+ אBuffer א אلWS אم$+ NP> BufferedGraphics buffering 5Q'אوאhFDUg3א$+א5P>tא'אنאSystemColors Color .'صVNאHhFDUg3א$+א5P>t'طא1 אFontFamily Font ً 79gDfN tوא،אhFDU9א5jPא Graphics h'7Q9א03K3אSystemIcons Icon H'VאhFQ3KP abstract class אل Image R\אH'V א03K3 ImageAnimator 352 'אعCi$D:و،אhF. Pen hא$9א03K3 Point K13 Rectangle KPT\אX Size 'صVNאhF Q3KnDJOאlWS' StringFormat . ًא$%i$O3*jVIi$D:و،CلP,9א03K3صI Region : double buffering ، flicker PT3U i$وאi3م$+FlH'g&K73 buffer UلF9 FN7S :NS53gDfא5P>אhN7UiH'gT3N7S'مFאnD رابط http://msdn.microsoft.com/en-us/library/b367a457.aspx :aאאאWS لI53gQ')0B 5D$Q\!א3NP>F رابط http://msdn.microsoft.com/en-us/library/system.drawing.aspx Graphics اﻟﻔﺌﺔ .3 :قi$lzTא5P> ،אFDUא5jP'אS Graphics 5jPא ::! I وpicture box 53'نC$\@אOو،مH'Oא53− C# Graphics myGraphic = Form1.CreateGraphics(); ﻛﻮد VB Dim myGraphic As Graphics = Form1.CreateGraphics() ﻛﻮد :ً ^3אKPT PaintEventArgs 5jPאQ5D،ً ^3 مH'OiאאدאE$53وC- 353 C# private void Form1_Paint(object sender, PaintEventArgs e) { Graphics myGraphic = e.Graphics(); } ﻛﻮد VB Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Dim myGraphic As Graphics = e.Graphics() End Sub ﻛﻮد :א3אوאnDJOאlWS'و ob'א VNא ًi'د%'3iH'b53H5jKFD FromHdc() FromHwnd() FromImage() Clear() 5jP אhQ')3 -. $NSKP, אوiH'bH DrawArc() hNRN3gNPوSN3fDC9 Beziers - H DrawBeziers() nNRN3H DrawCurve() وMKP,H DrawEllipse() '7QאH DrawIcon() 73aI H DrawLine() 'ط1א53D'F H DrawLines() a1H DrawPie() H3H DrawPath() K13H DrawRectangle() h 13H DrawRectangles() *H DrawString() وMKP,5Q' FillEllipse() a15Q' FillPie() 354 0M35Q' FillPolygon() 035Q' FillRectangle() H35Q' FillPath() :kودوאJOאlWS'لh3'\ א53$Q\ رابط http://msdn.microsoft.com/en-us/library/system.drawing.graphics_members.aspx g! FillXXX 5Q'دوאلא3C، Pen 7مא$+ DrawXXX دوאلא0BنC(9وאن .9 ً وCYNjPא5QWSnDfC$NאW، Brush i,Oمא$+ Pen .4 NC9،:! Iق وHאز7 Pen.BlueK^3$Q$Q5Di,3אhFDU Pen אم$+ א5P> :ً ^3אKPTiد$\ א:VjVI53iدO9وא:N35joQnD5QHد.Nز3 C# Pen myPen = new Pen(Color.Black, 3); ﻛﻮد VB Dim myPen As New Pen(Color.Black, 3) ﻛﻮد ً ^3$Q$Q5D7*jV א53$Q\אمא$+אNNP>. 3'دوضC'ن.zTNF. :Qא$א17KP, C# myPen.StartCap = LineCap.ArrowAnchor; ﻛﻮد VB myPen.StartCap = LineCap.ArrowAnchor ﻛﻮد :7*אjVI5D$Q\\!א 355 رابط http://msdn.microsoft.com/en-us/library/system.drawing.pen.aspx Brush .5 :אKPT^ل3a]Ob'نאi,!zTא5P>،7Q1@ אON C# SolidBrush myBrush = new SolidBrush (Color.Yellow); ﻛﻮد VB Dim myBrush As New SolidBrush(Color.Yellow) ﻛﻮد :ً ^3אKPT'ن53^]i,!zTًMQא5P> ﻛﻮد C# HatchBrush myBrush =new HatchBrush(HatchStyle.BackwardDiagonal, Color.Green, Color.White); VB Dim myBrush As New HatchBrush(HatchStyle.BackwardDiagonal, Color.Green, Color.White) ﻛﻮد :i,O*אjVI5D$Q\\!א رابط http://msdn.microsoft.com/en-us/library/system.drawing.brush.aspx 356 اﻟﺮﺳﻢ .6 :ً ^3אKPT73aIHUz$אNNP> ،אصNNj]Tאنא$ C# myGraphic.DrawLine(Pens.Blue, 20, 20, 100, 100); ﻛﻮد VB myGraphic.DrawLine(Pens.Blue, 20, 20, 100, 100) ﻛﻮد :K13وC C# myGraphic.DrawRectangle(Pens.Blue, New Rectangle(20, 20, 100, 100)); ﻛﻮد VB myGraphic.DrawRectangle(Pens.Blue, New Rectangle(20, 20, 100, 100)) ﻛﻮد :nNRN3HوC C# myGraphic.DrawBezier(Pens.Blue, 10, 20, 50, 80, 10, 80, 100, 50); ﻛﻮد VB myGraphic.DrawBezier(Pens.Blue, 10, 20, 50, 80, 10, 80, 100, 50) ﻛﻮد :ً ^3אKPTa7N3:] l$Q$و:OQ.5jאم$+5Pو73aIHNP3 C# Graphics myGraphic = e.Graphics; Pen myPen = new Pen(Color.Blue, 3); myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; myGraphic.DrawLine(myPen, 20, 20, 100, 100); ﻛﻮد VB Dim myGraphic As Graphics = e.Graphics ﻛﻮد 357 Dim myPen As New Pen(Color.Blue, 3) myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot myGraphic.DrawLine(myPen, 20, 20, 100, 100) :ً ^3^3KP,nD'ط1Ii$D53H3وC C# GraphicsPath myGraphicPath = new GraphicsPath(); myGraphicPath.StartFigure(); myGraphicPath.AddLine(10, 10, 30, 60); myGraphicPath.AddLine(30, 60, 60, 10); myGraphicPath.AddLine(60, 10, 10, 10); myGraphicPath.CloseFigure(); myGraphic.DrawPath(myPen, myGraphicPath); ﻛﻮد VB Dim myGraphicPath As New GraphicsPath() myGraphicPath.StartFigure() myGraphicPath.AddLine(10, 10, 30, 60) myGraphicPath.AddLine(30, 60, 60, 10) myGraphicPath.AddLine(60, 10, 10, 10) myGraphicPath.CloseFigure() myGraphic.DrawPath(myPen, myGraphicPath) ﻛﻮد N\ אi,OאQe03 FillPath 'نP Iא1 אqً'3:وC رﺳﻢ اﻟﻨﺼﻮص .7 و'نz"אi,O* 'دאP'אS:D^ل3aC GDI _אلD53I.'S'صVNאH .200و20017NאU"C ﻛﻮد C# myGraphic.DrawString("Hello GDI+", new Font("Times New Roman", 30), Brushes.Red, 200, 200); ﻛﻮد VB myGraphic.DrawString("Hello GDI+", new Font("Times New Roman", 30), Brushes.Red, 200, 200) 358 iH'VًVً ^3P،אh אq3 :!s وאStringFormat 5jPאمא$+אNP3 VQً79 :Q'دFD ﻛﻮد C# Graphics myGraphic = e.Graphics; StringFormat drawFormat = new StringFormat(); drawFormat.FormatFlags = StringFormatFlags.DirectionVertical; myGraphic.DrawString("Hello GDI+", new Font("Times New Roman", 30), Brushes.Red, 100, 20, drawFormat); VB Dim myGraphic As Graphics = e.Graphics Dim drawFormat As New StringFormat() drawFormat.FormatFlags = StringFormatFlags.DirectionVertical myGraphic.DrawString("Hello GDI+", New Font("Times New Roman", 30), Brushes.Red, 100, 20, drawFormat) ﻛﻮد :אWSK^3ًJ,2N'نאP 'SوaאאאWSnD'د%'3א\^ل،NQ$h3'وسאHدnD ً 71'نP$%س}^لH$אIא : אKPTD 359 :א\^لaאH رابط http://www.java2s.com/Tutorial/CSharp/0480__2D/Clockanimation.htm :N3iאد9אNP>،:!Q1ول אCnDsو901_אcאnTIC GDI _אلDUًא$% ^Pא¤NS .NS53 رابط http://msdn.microsoft.com/en-us/library/ms533798(VS.85).aspx 360 361 اﻟﺒﺎب 16 Windows Presentation Foundation 362 363 ﺗﻌﺮﻳﻔﺎت أﺳﺎﺳﻴﺔ WPF .1 .1.1 53 i$Q$% 3'H N7 S WPF ًאHVI אfQ 3 وC Windows Presentation Foundation Extensible Application fQ 3 nD $F .net framework 3.0 03 hC$ !'وPQ3 U !'وPQ3 hN7 53 $Q$ אK א4 S و، XAML ًאHVI وאMarkup Language Windows Media Player API's وDirectX APIs وGDI+ وWindows Forms $j\אhg%א'א .GZאnD'Q$Oو אدوאjNh3'وאhg%'א FV zg وאhg% א'אFV 53 zא$ط א7N אlWS 0F´ PR אP3 b א$7! WPF 03 3C .k I53'Q$Oא^ אدوא XAML .1.2 $، ASP.net hRObUE$dنF^3 3iH'VFV'دوאPאYKVO אXAML f$g (مX.C XAML نאلC –قHOא03 –ROb FV:3$+W אHTML Xg, XAML .א...*jVIوhJ! nD'd4אhq Microsoft Expression .1.3 U،'Q`'אل'دOאU37Q1gOQQ ،h3'אhFD53D'F5DiHDFVنא،ً7 Adobe FlashK^323UAIC7Q1 وphotoshop K^3H'V אQR23UH'bدK(Y Q'1 אJ U gFg! 5P> iH'V h3' א2NQ h3' אU *V+3 23 Q$ אن אنK§ .. ؟bא 364 5Pو،:! Iو¤R\א^وאFVאUVV+323 א4، Expression iP!SlWS .'gO+\א71U:3א$+א5P> XAML KP, nD'نPQنC5P>2Nא . شO:TאوאX',''O:T א3'אgN3وGQ'*V+\אgN323א4אlWS53hאHא$bאi$D¤NS WPF אلnDNFDiZ!¤HDאU234אאWS 0s5Pو،234אאWSv,U0'NNP .: I53:3$+ W אXAML אج5P> .Qא$א53 WPF _אلDz$N'دN،ًא$%Q3$73lWS WPF أﻧﻮاع ﺗﻄﺒﻴﻘﺎت .2 lWS nDfولאRN،KP,53^CnDg(Qאن5P>K،a7!$71 @دWPF 1 .لאنP,א : Traditional Desktop Applications -1 .:! Iوhg%وא'אg(\ אYR7Q دWPF אل، exe $71،ًD',^'عאNא : Navigation-Based -2 وForward Q$OV\*אjVI:Q$5Pد وD1'نP71HI אWPF لI53NP> 1 g'U$Q$%9، pages UCSد$hRObYK7Nمא$+F 5P>Backward .OV¨א$3A'دD : XBAP Applications -3 ، JAVA Applet אلC$}ًא$%:,،OV\ ل אI53KFQ1zN WPF hא53i$Q$%i3 local machine אلU XBAP application KFR'م7Q، URL 'אنND لI53:'لb'אQ .gqT'م7Qو : Silverlight Application -4 X :T אi$Q$, ، i,3 OV\ ل אI 53 g!M אQ h71 zN NP> ً MQ אWPF لI 53 365 g(\אUNhP3 Silverlight אل0FQ،O+\ אZאhRObU'د%'\אembeded flash .z'א$nDWONوא WPF ﻣﺤﺘﻮﻳﺎت اﻟﻔﺌﺔ .3 . WPF KאbN א:System.Windows Tool وאلj'א7אK^371 zN3א زbNא53D'FnD' :System.Windows.Controls .:! IوTips . XAML £bWONوgOb אhJO א:System.Windows.Markup .3D 3VوאR\אH'V'وאQ$Oא03 K3bאhJO א:System.Windows.Media h71 א53 Navigation-Based'عN א03 K3 b אhJO א:System.Windows.Navigation .ً 7lNRsوWא .2D3VאhFhאدوא53D'F :System.Windows.Shapes WPF ﺗﻄﺒﻴﻘﻚ اﻷول ﻓﻲ ﻋﺎﻟﻢ .4 zNOi,3N\אlWS`وزNNNPو، XAML nDدFD9ون א$ WPF h71zNNNP> . XAML אم$+ WPF h71 אوi\אSlWS5\و،\אoV h%א$.'نP]! HTML 03K3ًא7%$.N' :ً ^3אKPT Tags nD$F HTML אل$7!kN ﻛﻮد <a href="Ahmed.html">Ahmed</a> 'Sم$+F*א\وضN אن אYU Ahmed.html ROV אTQ Link aאHcQ'دאPא .Ahmed :ً ^3אKPT HTML 'אدאل9 AIC7Q¤NS 366 ﻛﻮد <img src="ahmed.jpg" alt="ahmed picture" border="0" /> . Qg Tagk@!(9'،ود$k@ وToolTip gQ$iH'bcQ'دPאאWS :אq NS53z$אNP> HTML 5D$Q\}!אG N' رابط http://www.html4arab.com/ ﻣﻼﺣﻈﺔ n+0.א\'אQ'1Uًא$%ًא$O3'نP+:FUYD 53^אWI]5+Qh3'3'نP − gD f אKMO\ א5F! 71 U 'Q`'אل 'دOو אC DreamWaverK^3 hאم אدوא$+ א03 .a7! وNotepad 030.א\'אhz$ ً V+, אWg!،Nbאh אدوאob'7Q1@אON، XAML _DUz$:ج3K'SאWS،g\א :ً ^33CHز ﻛﻮد <Button Height="80" Width="100"> ClickMe </Button> :I'عאNאאWSو ﻛﻮد <Button Height="80" Width="100" Content="ClickMe"/> :^ل3אWS،AICbNDnDIא$'d3CHزNQ$'نPQאن5P> ﻛﻮد <Button Height = "80" Width = "100"> <Button.Content> <ScrollBar Width = "75" Height = "40"/> </Button.Content> </Button> 367 ContentControl!JOא537T3 Scroll (אًنאل±I א\^لא5P ﻛﻮد <ScrollBar Height = "80" Width = "100"> <Button Width = "75" Height = "40"/> </ScrollBar > اﻟﺒﺪء ﻣﻦ ﺧﻼل ﻓﻴﺠﻮال ﺳﺘﻮدﻳﻮ .5 :אKPT WPF ApplicationHI .، New Project zTאHI.، Visual Studio !אنא :אzאnDZ.$Q$R، XAML אل,, ª9،*03و3CHز0s'. 368 Window VNאKIدאgsمووH'OאbND!P XAML 'دzT אKFم.،KOذF:א$` دFD9 אو אXAML 'دP3bאنא،FVאU!s9אbN א${ ً MQא،Grid . - GQو2343Nن−GQ'אh7103KOFFVאnD GSאذ، Title b}א.،مH'O'אنאND q Window *jVIUKQ$ولאنאRN אKPT ="WPF Example" GP53 وTitle HI'م753!و3 PC$א' وאQg :ً ^3 : אKPT XAML B9'دאP'نאP 369 ﻛﻮد <Window x:Class="WpfApplication2.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="300" Width="300" Title="WPF Example"> <Grid> <Button Height="23" Margin="99,0,105,91" Name="button1" VerticalAlignment="Bottom" Click="button1_Click">Button</Button> <TextBox Height="23" Margin="77,80,81,0" Name="textBox1" VerticalAlignment="Top" /> </Grid> </Window> .7Q1@אONhאدوאKP*jVא0BUPRאP3אنª9 g!Gא،FVt'د אP73iW!$` ،Y33אHزnDaqM3CX%אن :ً ^3א3א C# private void button1_Click(object sender, RoutedEventArgs e) { textBox1.Text = "Welcome WPF"; } ﻛﻮد VB Private Sub button1_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) textBox1.Text = "Welcome WPF" End Sub ﻛﻮد :2Nوא 370 :אKPTFV א,,@OU'دPאNP>ًMQא ﻛﻮد <x:Code> <![CDATA[ void CodeExample(object sender, RoutedEventArgs e) { MessageBox.Show("ahmed"); } ]]> </x:Code> :ً ^3אKPT 3אH Click E$LאU:ZIאWא9אnDא$אאK%03 ﻛﻮد <Button Height="23" Margin="99,0,105,91" Name="button1" VerticalAlignment="Bottom" Click="CodeExample">Button</Button> ... VB.net لN(مN@אOو ...i,3$Q$%E$zT אVisual Studio لI53NP> Click E$RzNC ً MQC : - ﻧﻘﺎط ﺳﺮﻳﻌﺔ- ﺧﺎﺗﻤﺔ اﻟﺠﺰء اﻷول :NS53z$אNP>0' XAML X אصSyntax !אل35DRN' رابط http://msdn.microsoft.com/en-us/library/ms788723.aspx :ً ^3 אKPT Window لg!sאNP>:! I وForm_Load אلEא$CدFD9 ﻛﻮد Loaded="Window_Loaded" Closed="Window_Closed" 371 .hאدوאK*jVIوEא$C0B033@אOو لB$QN'5P،g(\ PRא53$Q\אON1]! WPF 037Q1אlWghHF 'אMicrosoft D'F 5Fs 53 Microsoft Expression Blend03 z$ אNPF! :! I وhg%א'א : ً ^3 jאg%'אiH'blWS،Expression ...3د.وسHدUgDfN وi,3 Visual Studio אلU:sوNP> XAML 'نPFFV2 372 WPF أدوات .6 K%C53gאHIوSg(353 q وC،i$Q$אhאدوא53D'F WPF !'،Q$7אh! دوאsא .k3א$+א :Q$7אhאدوאD'F:ً9وC *jV א0F a7! ، Q אدh אدوא. وLable, Button M t אi א\دhدوא9 אD'F . g(\ אYوKF`!sא :مH'OאhدوאC:ً .:! IوQFא,وאj'א7אK^3 : media אلhدوאC:ً^ .:! I'وQ$OوאiH'V وאh'VאhدوאCK^3 :g(\אhدوאC:ًאH . StackPanel وCanvas K^3i$Q$%AIC وPanel وאلGroupbox אلK^39אhدوא9אM :O+\ אWPF hدوאC53D'Fs'iH'Vא :אKPTg אصXAML و'دאل 373 ﻛﻮد <Window x:Class="WpfApplication3.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="240" Width="343"> <Grid> <Button Name="btnPurchaseOptions" Margin="10.5,51,10.5,41"> <StackPanel> <StackPanel Orientation = "Horizontal"></StackPanel> </StackPanel> </Button> <Expander Name="helpExpander" Header="Help" Height="23" HorizontalAlignment="Left" Margin="70,70,0,0" VerticalAlignment="Top" Width="51.757"></Expander> <Expander Name="fileExpander" Header="File" Height="23" HorizontalAlignment="Left" Margin="22,70,0,0" VerticalAlignment="Top" Width="44.95"></Expander> <Slider Height="21" Margin="21.757,0,19,75" Name="slider1" VerticalAlignment="Bottom"> <Slider.BitmapEffect> <DropShadowBitmapEffect /> </Slider.BitmapEffect> </Slider> <ProgressBar Height="15" Margin="23,0,19,50" Name="progressBar1" VerticalAlignment="Bottom" Value="50" /> </Grid> </Window> : WPF ﻧﻘﺎط ﺳﺮﻳﻌﺔ ﺣﻮل أدوات .:! Iوjوא$وאQوMلאP,א$Q$R Ellipse : QوMلאP,א:ً ^3 אKPTgN3KPOOI'نو$Q$نP39b אCombobox وאلC List bND- 374 :ً ^3אKPT*03CU Spell Check ]1אRVbIKO5P> ﻛﻮد <TextBox SpellCheck.IsEnabled="True" Height="23" Margin="20,44,16,0" Name="textBox1" VerticalAlignment="Top" Grid.Row="10" /> :אK^3'دQ5D'د%'\]א1+Kjא$!א35P>و C# string alterWords = ""; SpellingError error = textBox1.GetSpellingError(0); if (error != null) { foreach (string s in error.Suggestions) { alterWords += s + "\n"; } MessageBox.Show("Alternative Words:\n" + alterWords); } ﻛﻮد VB Dim alterWords As String = "" Dim [error] As SpellingError = textBox1.GetSpellingError(0) If [error] IsNot Nothing Then For Each s As String In [error].Suggestions alterWords += s + "" & Chr(10) & "" Next MessageBox.Show("Alternative Words:" & Chr(10) & "" + alterWords) End If ﻛﻮد 375 :אWSK^3ًJ,'نP2Nوא Data-Binding رﺑﻂ اﻟﺒﻴﺎﻧﺎت .7 !s'م7،i,3 TextBox ~ Slider .aً ^3،i,3 7Q1bND.aH01، WPF אلU :g1Hא\אدiدא אzאa7! ﻛﻮد DataContext = "{Binding ElementName=slider1}" Content = "{Binding Path=Value}" :אKPTK3P אXAML 'دVQ ﻛﻮد <Slider Height="27" Margin="20,40,16,0" Name="slider1" VerticalAlignment="Top" /> <Label Height="28" DataContext = "{Binding ElementName=slider1}" Content = "{Binding Path=Value}" Margin="20,72,16,0" Name="label1" VerticalAlignment="Top" BorderThickness="0"> 376 :2Nوא Wpf 2d .8 g,hN7nDfN ،i\אlWS WPF אلU5Pو$אjNh3'_ אAICi3'دN . WPF لI53i\אlWS5P وGDI+ Ug3N3tא :אhJO א53$وאnDאhאHI'Qא$ System.Windows.Shapes System.Windows.Media.Drawing System.Windows.Media.Visual Shapes اﻟﺮﺳﻢ ﺑﺎﺳﺘﺨﺪام .8.1 :ً ^3K13^ل3aC$، System.Windows.Shapes JOلאP,9א0B07 ﻛﻮد <Rectangle Height="100" Width="200" Stroke="Red" StrokeThickness="2" Fill="Aqua" /> 377 :אKPT'نP2Nא :ً ^3אKPT Object Browser Q5Dg'لb' אNP>gHNP>tلאP,א :^لFאKPTא،gN3KP,S$< אن5P>t*אjVאnDfאNNP>و 378 :ً ^3אiH'VאUi'د%'\ אshapes K 3*אjVאnDfאNP>F Pen ﺧﺼﺎﺋﺺ اﻟﻘﻠﻢ .8.2 :ً ^3אiH'VHFDאUم$+\א7 אoQQ ﻛﻮد <Pen Thickness="10" LineJoin="Round" EndLineCap="Triangle" StartLineCap="Round" /> . GDI+ UlNF}(9'ًא$%:, Brush ﺧﺼﺎﺋﺺ اﻟﻔﺮﺷﺎة .8.3 :gN3 ،71Ug3א$+א5P>شOא53א'عi$D¤NS .دD5Q':DrawingBrush .iH'b53z´KPTא53z%5Q' :ImageBrush .א'אنi$1IجH$ :LinearGradientBrush 379 .א'אنi$jج دאH$ :RadialGradientBrush .a7!$'نوאi,! :SolidColorBrush :a7!$ 'نوאSolid i,O אSgD^ل3aC ﻛﻮد <Ellipse Height ="50" Width ="50"> <Ellipse.Fill> <SolidColorBrush Color ="Aqua"/> </Ellipse.Fill> </Ellipse> :jא$جאH$ RadialGradientBrush אم$+^ل3 ﻛﻮد <Ellipse Width ="75" HorizontalAlignment="Left" Margin="28,30,0,96"> <Ellipse.Fill> <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5"> <GradientStop Color="Yellow" Offset="0" /> <GradientStop Color="Red" Offset="0.25" /> <GradientStop Color="Blue" Offset="0.75" /> <GradientStop Color="LimeGreen" Offset="1" /> </RadialGradientBrush> </Ellipse.Fill> </Ellipse> :KP,KIدאiH'b53z%D1^ل3ً אICو ﻛﻮد <Rectangle Height ="100" Width ="300"> <Rectangle.Fill> <ImageBrush> <ImageBrush.ImageSource> <BitmapImage UriSource ="pic.JPG"/> </ImageBrush.ImageSource> </ImageBrush> </Rectangle.Fill> </Rectangle> :O+\شאOאh3א$+9!'وPQ30.'3532 380 : KbOא53$Q\aאאאWSو رابط http://msdn.microsoft.com/en-us/library/aa970904.aspx Transformations ال .8.4 NP>،م$+\אh I$}i]\אوאR\אbN אU*jVאlWSً^ א¤$O .!א\وhFא53:! IوgPD وSQو$لوP,אQ : مH'OאUNQ$i'د%'\אhאدوא53D'FnDhא] אs'Q א\^لא ﻛﻮد <Button Height="23" Margin="72,72,0,0" Name="button1" VerticalAlignment="Top" HorizontalAlignment="Left" Width="75">Button <Button.RenderTransform> <SkewTransform AngleX ="30" AngleY ="20"/> </Button.RenderTransform> </Button> <TextBox Margin="142,11,59,0" Name="textBox1" Height="23" 381 VerticalAlignment="Top">Ahmed <TextBox.RenderTransform> <TransformGroup> <SkewTransform AngleX ="20" AngleY ="20"/> <RotateTransform Angle ="45"/> <SkewTransform AngleX ="5" AngleY ="20"/> </TransformGroup> </TextBox.RenderTransform> </TextBox> :2NiH'blWSو :KP,אnDOH'V ] ًא$%KBWPF1aאאאWSnD رابط http://www.codeproject.com/KB/WPF/TransformationsIntro.aspx :1אiH'blWS 382 WPF ﻓﻲAnimation ال JO א Animation وאلQR אhF .9 7\وאل א$* وאjV ! א07 : *jVIE 53k$9Q$iאدאKV א، System.Windows.Media.Animation :DfN3'Sو،QRאg! QtאbوאQgNوאQא$ א17د$By : ،To ، From ...ً 79 :S lbNDSא، timeline ً MQא¤NSو ob'א VNא LאDUPR AccelerationRatio, DecelerationRatio Lאzgא$o+i'د AutoReverse c 0 F7 א، L אl$ C$ W א.'א BeginTime This 383 ,\אz$א LאFDg.qtאiZOא Duration z 'אL אzg א$ E$R ذא3 $Q$ FillBehavior, RepeatBehavior :! IوCiدD9א : Label Ua `אq،^ل3 C# DoubleAnimation dblAnim = new DoubleAnimation(); dblAnim.From = 10; dblAnim.To = 30; label1.BeginAnimation(Label.FontSizeProperty, dblAnim); ﻛﻮد VB Dim dblAnim As New DoubleAnimation() dblAnim.From = 10 dblAnim.[To] = 30 label1.BeginAnimation(Label.FontSizeProperty, dblAnim) ﻛﻮد :LאQא$ :LאQg :ً ^3 אKPTLאi$3$Q$5P> 384 C# dblAnim.Duration = new Duration(TimeSpan.FromSeconds(4)) ; ﻛﻮد VB dblAnim.Duration = new Duration(TimeSpan.FromSeconds(4)) ﻛﻮد :zg9א$L@אPو C# dblAnim.AutoReverse = true; ﻛﻮد VB dblAnim.AutoReverse = true ﻛﻮد :lzgא$אضiدDא$Q$NNP>و C# dblAnim.RepeatBehavior = RepeatBehavior.Forever; ﻛﻮد VB dblAnim.RepeatBehavior = RepeatBehavior.Forever ﻛﻮد :א\^لKnDa7!hא30H9:دDאوא C# dblAnim.RepeatBehavior = new RepeatBehavior(4); ﻛﻮد VB dblAnim.RepeatBehavior = new RepeatBehavior(4) ﻛﻮد 385 XAML اﻟﺤﺮﻛﺔ ﺑﺎﺳﺘﺨﺪام .10 5D אوXAML Q 5D3وא9 א53 א1 نP39 : א، وسH$ אlWS U ( אوR אWN3 N7O אF K%^ل 'ل3NQ$אن،@P'دوאPא53g'لb'א5P>*jVאlWS0B'د'نP אQ : Pro CSharp 2008X53−\وس:DaqMאU:Oאن'لHو$'م7QButton ﻛﻮد <Button Name="myAnimatedButton" Width="120" Height = "40" RenderTransformOrigin="0.5,0.5" Content = "OK"> <Button.RenderTransform> <RotateTransform Angle="0"/> </Button.RenderTransform> <!-- The animation is triggered when the button is clicked --> <Button.Triggers> <EventTrigger RoutedEvent="Button.Click"> <BeginStoryboard> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="myAnimatedButton" Storyboard.TargetProperty= "(Button.RenderTransform).(RotateTransform.Angle)" Duration="0:0:2" FillBehavior="Stop"> <DoubleAnimationUsingKeyFrames.KeyFrames> <LinearDoubleKeyFrame Value="360" KeyTime="0:0:1" /> <DiscreteDoubleKeyFrame Value="180" KeyTime="0:0:1.5" /> </DoubleAnimationUsingKeyFrames.KeyFrames> </DoubleAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger> </Button.Triggers> </Button> styles ﺗﻌﺮﻳﻒ .11 D'FS وstyles fQ3NQ$אنfNGQ' א53ًא'ع7%$.Nذא ذ$ 5P> r ، darkstyle ً ^3 nF3 :! I'אن و9'ل وאض وא1د א$ *jV א53 .a7! style אאلPi אאدאUg3א$+א 386 ً ^33אH زKPob'א53`LאאWSKP'م75N אWPF אلUًMQC: ج3'SאWS :ً ^3אKPT style oQ'م7NאW، style @אلOk3CHאHאزi$DNQ$نCU ﻛﻮد <Window.Resources> <Style x:Key ="darkstyle"> <Setter Property ="Button.FontSize" Value ="15"/> <Setter Property ="Button.Background"> <Setter.Value> <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> <GradientStop Color="Black" Offset="0" /> <GradientStop Color="Blue" Offset="0.25" /> <GradientStop Color="Brown" Offset="1" /> </LinearGradientBrush> </Setter.Value> </Setter> </Style> </Window.Resources> :אKPToQאOPQ3CHزKPوאن ﻛﻮد <Button Name="b1" Width = "100" Style ="{StaticResource darkstyle}" Content = "Button 1" HorizontalAlignment="Right" Margin="0,61,30,61" /> <Button Name="b2" Width = "100" Style ="{StaticResource darkstyle}" Content = "Button 2" HorizontalAlignment="Left" Margin="25,61,0,61" /> :אKPT'نP2Nא 387 style ﺗﻐﻴﻴﺮ ﻃﺒﻴﻌﺔ ال.11.1 :!:'وa`א3אHز$Q$Rً ^3،م$+\ אstyle אلU'د%'\ אqVVz,אoQNP> :אKPT:OPQKK3P style אلqمQ 9o ﻛﻮد <Button Name="b2" Width = "100" Style ="{StaticResource darkstyle}" Content = "Button 2" HorizontalAlignment="Left" Margin="25,61,0,61" FontSize="30" /> :2Nوא ﻣﻦ آﺧﺮStyle اﺷﺘﻘﺎق .11.2 :אKPT:OQ5P> Q$. style 53lWICQ$Q$% style KF ﻛﻮد <Style x:Key ="darkredstyle" BasedOn = "{StaticResource darkstyle}"> Triggers ﺑﺎﺳﺘﺨﺪامstyle ﺗﺼﻤﻴﻢ .11.3 388 * 03 5Q' ً ^F! ، l א\وس אوHو3 E$r 13 i دאh9 $Q$ 53 Triggers אلNP> :אKPT styleGP$Q$RאnD:'V$NDo 'ن ﻛﻮد <Window.Resources> <Style x:Key ="txtstyle" TargetType = "{x:Type TextBox}"> <Setter Property = "Background" Value = "White"/> <Style.Triggers> <Trigger Property = "IsFocused" Value = "True"> <Setter Property = "Background" Value = "Yellow"/> </Trigger> </Style.Triggers> </Style> </Window.Resources> :$Q$Rא:DW*אNא0\2Nوא : ﺑﺮﻣﺠﻴ ًﺎ style $Q$53 وstyles אل53D'FgFj7 bND!sא، Pro CSharp 2008 53'ل7N3^ل3 :ً ^3אKPT S$CnD'R39אHز C# public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); ﻛﻮد 389 // Add items to our list box. lstStyles.Items.Add("TiltStyle"); lstStyles.Items.Add("GreenStyle"); lstStyles.Items.Add("MouseOverStyle"); } protected void comboStyles_Changed(object sender, RoutedEventArgs args) { // Get the selected style name from the list box. System.Windows.Style currStyle = (System.Windows.Style) FindResource(lstStyles.SelectedValue); // Set the style of the button type. this.btnMouseOverStyle.Style = currStyle; } } VB Public Partial Class MainWindow Inherits Window Public Sub New() InitializeComponent() ' Add items to our list box. lstStyles.Items.Add("TiltStyle") lstStyles.Items.Add("GreenStyle") lstStyles.Items.Add("MouseOverStyle") End Sub Protected Sub comboStyles_Changed(ByVal sender As Object, ByVal args As RoutedEventArgs) ' Get the selected style name from the list box. Dim currStyle As System.Windows.Style = DirectCast(FindResource(lstStyles.SelectedValue), System.Windows.Style) ' Set the style of the button type. Me.btnMouseOverStyle.Style = currStyle End Sub End Class ﻛﻮد :2Nوא 390 Templates ال .12 1 אK3P q אن01 g אstyles Y وgN قHO א5P و، h* אدوאjVI q ً MQم א$+ : TemplatesאلlWSً ^3،iدא 9א ﻛﻮد <Grid.Resources> <!-- A simple template for a round button for items in this grid --> <ControlTemplate x:Key ="roundButtonTemplate" TargetType ="{x:Type Button}"> <Grid> <Ellipse Name ="OuterRing" Width ="75" Height ="75" Fill ="DarkGreen"/> <Ellipse Name ="InnerRing" Width ="60" Height ="60" Fill ="MintCream"/> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </ControlTemplate> </Grid.Resources> :ً ^33CHS$Q$NP>وאن ﻛﻮد <Button Name ="myButton" Foreground ="Black" FontSize ="20" FontWeight ="Bold" Template ="{StaticResource roundButtonTemplate}" Click ="myButton_Click"> Click! </Button> 391 :2Nوא 3D WPF .13 אWS U ولRN ، د9 אjN ( g% و53 WPF _D U 'صq z$ : ج3 K NF אن$ . Avalon ~nFQ3אوWPF Uא_א^ אدh אnDfسאH$א !353 و9 ً وCאOא$NkאSO3ج، 2D_אلD5Dً ^ א3D_אلD o 3!}z$אNP> Graphics ل אلUNS*V+5Nو}א،:! I وProjection K^3SO\א :Qא3$7\אlWS لI53$Q رابط http://developer.nvidia.com/docs/IO/11278/Intro-to-Graphics.pdf ... WPF 03C$Nאن 3D _DUً3دو9אKPT א−مkאنא¤H$]! Graphics אلD03i4 אQ$' Oط7Y'ط1 א53D'F9'S3 Graphics - _אلDU Hello World :TQWא1وא אلhQ(gOجNPو−:% אو3−مk א:%وCد$DK^eh^^\א53D'Fg'لא7א01אو، iH'Vg(r 3DאلUh^^\אlWSN\ אh7دوא9א$Q$Rprojection ._אאWS03K3V+\אSوSystem.Windows.Media.Media3DJO'م אدא7NQא$ C# using System.Windows.Media.Media3D; ﻛﻮد 392 VB Imports System.Windows.Media.Media3D; ﻛﻮد אKPT،:! I אو3Pو'عאQ¯لא$Q$ 53NNP>W وאViewport3D oQً9جאوRN :ً ^3 ﻛﻮد <Viewport3D Name="mainViewport" ClipToBounds="True"> <Viewport3D.Camera> <PerspectiveCamera FarPlaneDistance="100" LookDirection="-11,-10,-9" UpDirection="0,1,0" NearPlaneDistance="1" Position="11,10,9" FieldOfView="70" /> </Viewport3D.Camera> <ModelVisual3D> <ModelVisual3D.Content> <DirectionalLight Color="White" Direction="-2,-3,-1" /> </ModelVisual3D.Content> </ModelVisual3D> </Viewport3D> :3אHزUو C# MeshGeometry3D triangleMesh = new MeshGeometry3D(); Point3D point0 = new Point3D(0, 0, 0); Point3D point1 = new Point3D(5, 0, 0); Point3D point2 = new Point3D(0, 0, 5); triangleMesh.Positions.Add(point0); triangleMesh.Positions.Add(point1); triangleMesh.Positions.Add(point2); triangleMesh.TriangleIndices.Add(0); triangleMesh.TriangleIndices.Add(2); triangleMesh.TriangleIndices.Add(1); Vector3D normal = new Vector3D(0, 1, 0); triangleMesh.Normals.Add(normal); ﻛﻮد 393 triangleMesh.Normals.Add(normal); triangleMesh.Normals.Add(normal); Material material = new DiffuseMaterial( new SolidColorBrush(Colors.DarkKhaki)); GeometryModel3D triangleModel = new GeometryModel3D( triangleMesh, material); ModelVisual3D model = new ModelVisual3D(); model.Content = triangleModel; this.mainViewport.Children.Add(model); VB Dim triangleMesh As New MeshGeometry3D() Dim point0 As New Point3D(0, 0, 0) Dim point1 As New Point3D(5, 0, 0) Dim point2 As New Point3D(0, 0, 5) triangleMesh.Positions.Add(point0) triangleMesh.Positions.Add(point1) triangleMesh.Positions.Add(point2) triangleMesh.TriangleIndices.Add(0) triangleMesh.TriangleIndices.Add(2) triangleMesh.TriangleIndices.Add(1) Dim normal As New Vector3D(0, 1, 0) triangleMesh.Normals.Add(normal) triangleMesh.Normals.Add(normal) triangleMesh.Normals.Add(normal) Dim material As Material = New DiffuseMaterial(New SolidColorBrush(Colors.DarkKhaki)) Dim triangleModel As New GeometryModel3D(triangleMesh, material) Dim model As New ModelVisual3D() model.Content = triangleModel Me.mainViewport.Children.Add(model) ﻛﻮد :'نP2Nوא 394 :GP\א3א C# private Model3DGroup CreateTriangleModel(Point3D p0, Point3D p1, Point3D p2) { MeshGeometry3D mesh = new MeshGeometry3D(); mesh.Positions.Add(p0); mesh.Positions.Add(p1); mesh.Positions.Add(p2); mesh.TriangleIndices.Add(0); mesh.TriangleIndices.Add(1); mesh.TriangleIndices.Add(2); Vector3D normal = CalculateNormal(p0, p1, p2); mesh.Normals.Add(normal); mesh.Normals.Add(normal); mesh.Normals.Add(normal); Material material = new DiffuseMaterial( new SolidColorBrush(Colors.DarkKhaki)); GeometryModel3D model = new GeometryModel3D( mesh, material); Model3DGroup group = new Model3DGroup(); group.Children.Add(model); return group; } private Vector3D CalculateNormal(Point3D p0, Point3D p1, Point3D p2) { Vector3D v0 = new Vector3D( p1.X - p0.X, p1.Y - p0.Y, p1.Z - p0.Z); Vector3D v1 = new Vector3D( p2.X - p1.X, p2.Y - p1.Y, p2.Z - p1.Z); return Vector3D.CrossProduct(v0, v1); ﻛﻮد 395 } ﻛﻮد VB Private Function CreateTriangleModel(ByVal p0 As Point3D, ByVal p1 As Point3D, ByVal p2 As Point3D) As Model3DGroup Dim mesh As New MeshGeometry3D() mesh.Positions.Add(p0) mesh.Positions.Add(p1) mesh.Positions.Add(p2) mesh.TriangleIndices.Add(0) mesh.TriangleIndices.Add(1) mesh.TriangleIndices.Add(2) Dim normal As Vector3D = CalculateNormal(p0, p1, p2) mesh.Normals.Add(normal) mesh.Normals.Add(normal) mesh.Normals.Add(normal) Dim material As Material = New DiffuseMaterial(New SolidColorBrush(Colors.DarkKhaki)) Dim model As New GeometryModel3D(mesh, material) Dim group As New Model3DGroup() group.Children.Add(model) Return group End Function Private Function CalculateNormal(ByVal p0 As Point3D, ByVal p1 As Point3D, ByVal p2 As Point3D) As Vector3D Dim v0 As New Vector3D(p1.X - p0.X, p1.Y - p0.Y, p1.Z - p0.Z) Dim v1 As New Vector3D(p2.X - p1.X, p2.Y - p1.Y, p2.Z - p1.Z) Return Vector3D.CrossProduct(v0, v1) End Function :3אHزUو C# Model3DGroup cube = new Model3DGroup(); Point3D p0 = new Point3D(0, 0, 0); Point3D p1 = new Point3D(5, 0, 0); Point3D p2 = new Point3D(5, 0, 5); Point3D p3 = new Point3D(0, 0, 5); Point3D p4 = new Point3D(0, 5, 0); Point3D p5 = new Point3D(5, 5, 0); Point3D p6 = new Point3D(5, 5, 5); Point3D p7 = new Point3D(0, 5, 5); //front side triangles cube.Children.Add(CreateTriangleModel(p3, p2, p6)); ﻛﻮد 396 cube.Children.Add(CreateTriangleModel(p3, p6, //right side triangles cube.Children.Add(CreateTriangleModel(p2, p1, cube.Children.Add(CreateTriangleModel(p2, p5, //back side triangles cube.Children.Add(CreateTriangleModel(p1, p0, cube.Children.Add(CreateTriangleModel(p1, p4, //left side triangles cube.Children.Add(CreateTriangleModel(p0, p3, cube.Children.Add(CreateTriangleModel(p0, p7, //top side triangles cube.Children.Add(CreateTriangleModel(p7, p6, cube.Children.Add(CreateTriangleModel(p7, p5, //bottom side triangles cube.Children.Add(CreateTriangleModel(p2, p3, cube.Children.Add(CreateTriangleModel(p2, p0, ModelVisual3D model = new ModelVisual3D(); model.Content = cube; this.mainViewport.Children.Add(model); p7)); p5)); p6)); p4)); p5)); p7)); p4)); p5)); p4)); p0)); p1)); VB Dim cube As New Model3DGroup() Dim p0 As New Point3D(0, 0, 0) Dim p1 As New Point3D(5, 0, 0) Dim p2 As New Point3D(5, 0, 5) Dim p3 As New Point3D(0, 0, 5) Dim p4 As New Point3D(0, 5, 0) Dim p5 As New Point3D(5, 5, 0) Dim p6 As New Point3D(5, 5, 5) Dim p7 As New Point3D(0, 5, 5) 'front side triangles cube.Children.Add(CreateTriangleModel(p3, cube.Children.Add(CreateTriangleModel(p3, 'right side triangles cube.Children.Add(CreateTriangleModel(p2, cube.Children.Add(CreateTriangleModel(p2, 'back side triangles cube.Children.Add(CreateTriangleModel(p1, cube.Children.Add(CreateTriangleModel(p1, 'left side triangles cube.Children.Add(CreateTriangleModel(p0, cube.Children.Add(CreateTriangleModel(p0, 'top side triangles cube.Children.Add(CreateTriangleModel(p7, cube.Children.Add(CreateTriangleModel(p7, ﻛﻮد p2, p6)) p6, p7)) p1, p5)) p5, p6)) p0, p4)) p4, p5)) p3, p7)) p7, p4)) p6, p5)) p5, p4)) 397 'bottom side triangles cube.Children.Add(CreateTriangleModel(p2, p3, p0)) cube.Children.Add(CreateTriangleModel(p2, p0, p1)) Dim model As New ModelVisual3D() model.Content = cube Me.mainViewport.Children.Add(model) :2Nوא :אaאאnDسH$אאWShQ'):N37אWאH$V\ א53h71אlWSUbא\'אNP> رابط http://www.kindohm.com/technical/wpf3dtutorial.htm :אKPT2N'نאP א3P אUPRא53NP>23KFDOnDא\ عNP>و 398 :אKPT'نPhsHCHאو XNA ﻋﺎﻟﻢ .14 % $. ]! ، _ א^ אد. D : z, C وC X א03 K3 א% $. N ذא אW،א_א^ אد03K3bאhP\ א53S وC OpenGL 03وC Direct3D 03K3א DirectX nDN3 API's אل53i$Q$%D'FS XNA نאلC.' ً boQ'نאPQ5 399 WON مg\وאل وא$ א53 د$Dg{ DirectX אلhP3 03 K3 אKg f$g .$gא53 ^PאWI]QSWONنtאhFא طZT gNP وS و، DirectX Next Generation Architecture : F` HVI אS XNA אل KFR.،'g XNA وعT3zT אP3'نPً79،KF'Q`'אل'دOא53 Express + :אaאא53XNA :aאאאWS53iدO9אNP>1ولN' رابط http://www.csharpcorner.com/UploadFile/mgold/XNAIntro04192007233237PM/XNAIntro.aspx :אKPT{2'نPو 4ول אR! W 5P _ ' 3C ... قHO אH אد01 ]! DirectX 2343 N אن ذא ...قHOאX% iZO DirectX אم$+ Microsoft Expression Studio .15 Microsoft Expression Web .15.1 400 K^3 i'د%'3 qb ] ROb KFD nD ¤$DQ وi 7Q1 ROb FV 234א אWS Q :אKPT:jאg%א'אXHTML, CSS, XML, XSLT ًMQ א¤NS ، *jV אnD KQ$ وאROb FV Q$ S${ t אhدوא9 א53 אم א$+ אNP> QKa7!אWS@،ً ^3 styles אل03K3אKg*jVI¤NS،z1I א. \אHTML .$3 . php لI53وC Asp.net لI53z'א: I534א234א :NS53z$אNP>$QF رابط http://www.microsoft.com/expression/features/default.aspx?key=web Microsoft Expression Design .15.2 אKPT:jאg%א'א،:! Iوh3'وאH'VאGKgiً9' 234אאWSم$7Q : 401 :NS53:!3NP>$Q\א رابط http://www.microsoft.com/expression/features/default.aspx?key=design Microsoft Expression Media .15.3 :g%'אiH'blWS،O+\א3 !C5Q'PوGوKQ$ 234אאWSQ 402 :NS53:!3NP>$Q\وא رابط http://www.microsoft.com/expression/features/default.aspx?key=media Microsoft Expression Encoder .15.4 53i$Q$אN7 אSilver Light iHدא9א234 אKPTQ،sوD03KDOjאvFאQ .ً Adobe 53ًو7 Micromeida 53 Flash N7 gT\و'!وאPQ3 :234 jאg%א'א 403 :NSKVOא53$Q}z$אNP> رابط http://www.microsoft.com/expression/features/default.aspx?key=encoder Expression Blend .15.5 KVO:ND$Q\!א3ولRN،FViد$3Kj'!وQ ،O+\אhg%وאFV ...سH$אאWSU :qT.،7אaאوא53ً9وC:FR. Expression Blend لI53a1KFDولאنRN :אKPT WPF Application (*.exe)53 وNew Project HIא53و 404 .015Q+نאP3! وs אframework وאلgD KFא$QtאqאHIאNP> وאضXAML ضD 535PF Split 0s'אZIא53 وActive Document View ZI אView 53 :אKPT.'@אOUאد 3אوאHאHزCوC،:! Iوi,Oوא7אz'אFVg جt אhאدوאK$`،,TאG%nD 405 bND I nD aqM אNP> ً MQ א، U g3$+ t אh אدوא53 :! I'ص وVN אh3و :ً ^3אKPThאدوא0BضFj7א g(\PRאgN301،GאnD*jVא53D'Fi אدא$`،אUFD لI ::! Iو bIiH'b:!0MNW אCanvas'אلSאWS،lאد$Q$R. وCanvas !s.،0Q1אن :h א] אgD1وN 406 ﻛﻮد <Canvas> <Canvas x:Name="MainImageCanvas" Canvas.Left="40" Canvas.Top="120"> XAML 2'نP، −i,3iH'b0s'.وC –ً ^3iH'b:!0MN وMediaElement !s.אن :אKPT ﻛﻮد <MediaElement x:Name="MainImage" Source="c:/example/futex.jpg" Width="300" Height="300" > </MediaElement> 'نP،*jV لאI53K\אFD1 Canvas אلnDh א] א1'م7Nوאن :אKPT XAML 2 ﻛﻮد <Canvas.RenderTransform> <TransformGroup> <SkewTransform x:Name="MainSkewTransform" AngleY="-19" AngleX="0" CenterX="0" CenterY="0"/> <ScaleTransform x:Name="MainScaleTransform" ScaleY="1" ScaleX = "1" CenterX="0" CenterY="0"/> </TransformGroup> </Canvas.RenderTransform> </Canvas> :אKPT'نPW ` אضوאF5 nDaqM.אن 407 0MNNSN{UوC،i,O*אjVI53i,3g71NP>، ًMQCiH'VK(אQ(1ولRN i\אlWSOK3Qزوא035PًوMQCiH'Vא:!0M وCanvas KF'م7NאW ،FgMnDYH'b :אKPT XAML 2'نP،iH'Vאfذאאr ﻛﻮد <Canvas x:Name="ReflectionImageCanvas" Canvas.Left="260" Canvas.Top="640"> <MediaElement x:Name="ReflImage" Source="c:/example/futex.jpg" Width="300" Height="300" Volume="0"> </MediaElement> <Canvas.RenderTransform> <TransformGroup> <SkewTransform x:Name="ReflectionSkewTransform" AngleY="19" AngleX="-41" CenterX="0" CenterY="0" /> <ScaleTransform x:Name="ReflectionScaleTransform" ScaleY="-1" ScaleX="1" CenterX="0" CenterY="0" /> </TransformGroup> </Canvas.RenderTransform> </Canvas> : אKPTiH'V2N'نאPو 408 XAML אل2$`אW،ًMQC*jVא5Fs53،K(אiH'V!OT! אsאSg3K3N17I :אKPT QgNאU ﻛﻮد <Canvas x:Name="ReflectionImageCanvas" Canvas.Left="260" Canvas.Top="640"> <MediaElement x:Name="ReflImage" Source="c:/example/futex.jpg" Width="300" Height="300" Volume="0"> </MediaElement> <Canvas.RenderTransform> <TransformGroup> <SkewTransform x:Name="ReflectionSkewTransform" AngleY="19" AngleX="-41" CenterX="0" CenterY="0" /> <ScaleTransform x:Name="ReflectionScaleTransform" ScaleY="-1" ScaleX="1" CenterX="0" CenterY="0" /> </TransformGroup> </Canvas.RenderTransform> <Canvas.OpacityMask> <LinearGradientBrush StartPoint="0.5,0.0" EndPoint="0.5,1.0"> <GradientStop Offset="0.345" Color="#00000000" x:Name="ReflGradientStop1" /> <GradientStop Offset="1.0" Color="#CC000000" x:Name="ReflGradientStop2" /> </LinearGradientBrush> 409 </Canvas.OpacityMask> </Canvas> ،b9אiH'VאnD71N3K(אiH'bK'دPא53 ًאوQو$Q Top وאلLeft אلhאدא$DאaM. :iH'Vא2 'نP : XAML K3P'دאPא ﻛﻮد <Canvas> <Canvas x:Name="MainImageCanvas" Canvas.Left="40" Canvas.Top="120"> <MediaElement x:Name="MainImage" Source="c:/example/FUTEX.JPG" Width="300" Height="300" > </MediaElement> <Canvas.RenderTransform> <TransformGroup> <SkewTransform x:Name="MainSkewTransform" AngleY="-19" AngleX="0" CenterX="0" CenterY="0"/> <ScaleTransform x:Name="MainScaleTransform" ScaleY="1" ScaleX = "1" CenterX="0" CenterY="0"/> </TransformGroup> 410 </Canvas.RenderTransform> </Canvas> <Canvas x:Name="ReflectionImageCanvas" Canvas.Left="267" Canvas.Top="645"> <MediaElement x:Name="ReflImage" Source="c:/example/futex.jpg" Width="300" Height="300" Volume="0"> </MediaElement> <Canvas.RenderTransform> <TransformGroup> <SkewTransform x:Name="ReflectionSkewTransform" AngleY="19" AngleX="-41" CenterX="0" CenterY="0" /> <ScaleTransform x:Name="ReflectionScaleTransform" ScaleY="-1" ScaleX="1" CenterX="0" CenterY="0" /> </TransformGroup> </Canvas.RenderTransform> <Canvas.OpacityMask> <LinearGradientBrush StartPoint="0.5,0.0" EndPoint="0.5,1.0"> <GradientStop Offset="0.345" Color="#00000000" x:Name="ReflGradientStop1" /> <GradientStop Offset="1.0" Color="#CC000000" x:Name="ReflGradientStop2" /> </LinearGradientBrush> </Canvas.OpacityMask> </Canvas> </Canvas> 1NQ ]@אOאن$`'وQ$!0s^ ًو3X% אW،z,'نאPאن5P> MediaElement @אنN9 ...ً 3e:D .iH'V@אONKF'وQ`'אل 'دO'אSF'دPאK7NP>ً Microsoft _D _א אWS 5D ^P ً }! א13 234F ] ¤ אن אذG א، QgN אK. .a7!{N אXAML אل03K3'אSFgQ 3K،YFFVFً bא:%'3'g!Expression :NS53z$אNP>D'F¡אlWS5D$Q3K رابط http://expression.microsoft.com/en-us/cc136522.aspx 411 اﻟﺒﺎب 17 ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ADO.net 412 413 :ﻣﻘﺪﻣﺔ t אADO >$7א+N אد$3אS Active Data Object.net ًאHVIאf3 אوADO.net אل אوhאhودא3_ًMQאدא$3 אSو،!'وPQ353 6!`'אلhאHא$bאUi'د%'3 . DAO, RDO K^3 hN7 א53 $Q$ אh$g, وi$Q$D H'1 K }אh3 tאData Providers אدمY אو234وאhאi$D.YلVאOVVt אADO >$7א+N@ אPDnDو ًא1M3 V 5 r disconnected 3$x iود3 Rb אADO.net !¦نClient/Server KFوא .hאi$D7ًFjل دאV :S%'3אWSYN7אYAICh.!و¤NS . XML لK3PאD$א .3$+\وאل א$وאi$F\אh'אعאCiدQز .D אiدQز .K3P managed code Rbאgא :NSh.وO'لאKbOא53$Q3 nD ع9אNP> رابط http://msdn.microsoft.com/en-us/library/904fck4k(VS.71).aspx ADO.net اﻟﺒﺪء ﺑﺎﺳﺘﺨﺪام .1 'نP S$ ، System.Data ً אB S${، g b אhP\'א אد אS D 3 K a7! L אU ، Disconnected وC Connected 0s' ل אI 53 KF אU G N ذאF! Q7 D 'م7אوhאG` Kא3nDKV!^אLא3אhאi$D7jلدאVאnD'نPאو .Iא0s'ً79'دNF! Connected 03 A'K35ًNوHدQא$U،DFאh Q$א 414 ADO.net Data Provider ﻣﻜﻮﻧﺎت .2 .h אi$D7VאzTא53NP> :Connection−1 .hאi$D.nD SQL א مBWON53NPe:Command−2 א مFD 5D {N אh אizא. 53 NPe : DataReader DbDataReader IdataReader −3 .a7!$وאl{אUوa7!izא7'نP2Nא5P ،א\^لKnD h א53 iH'b nD 'لVL אnD NPe : DataAdapter DbDataAdapter IdataAdapter −4 .:! IوfWوKQ$! وsאKFDوgNK7Nא53NPeא موBولאو$%z''א1\א . م9אKBh אq3QFbI:Parameter DbParameter IdataParameter−5 اﻟﻤﺪﻋﻮﻣﺔ ﻣﻦ ﻗﺒﻞ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖData Providers اﻟـ .2.1 :System.Data.OleDb U 'د%'3 I ود3 h אi$D7 ' ن5P ، h א$D'א. 53 א 'ع03 K3 g3א$+ א5P> .]1' אS'عNאאWS(אًن:3א$+אKMOQFj7א :System.Data.SqlClient مg\ א53 D'F nD ' g אSQL Server h א$D'א. 03 K3 g3א$+ً א3 دوKMOQ .hא$D'א.53'عNא אWS03K3bא :System.Data.SqlServerCe . Pocket PC אل03K3b אSQL Server CE hi$D.03K3אUg3א$+ אKMOQ :System.Data.Odbc .k I53:3K3א5P> Odbc o3א System.Data.OracleClient .k I53KאHوChא$D'א.03K3 אKMOQ 415 .2.2 Third-Party اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺰودات ﺧﺪﻣﺔ أﺧﺮى ADO.NET Data Providers وC FoxPro وC MYSQL hא$D'א.5Dذא35Pو،jאhא$D'א7 hودא3ذ7אi7OאU ^ ً؟3DB2 ً؟iود$[אhP39]وא1אD אh ذאOleDb אم$+9QgNאU1MNKS م$7h, nوC ADO.netXbIg`N\Data Providers Q'1hTאGא3. ،ً 9 :gD^ل3aאאאWS،!s אh3$Iوhوא4אD0FbאhTא53i$F3hودא3 رابط http://www.sqlsummit.com/dataprov.htm System.Data ﻣﻜﻮﻧﺎت اﻟﻔﺌﺔ .3 z1IאKjHn*وjVIدوאلو53g3K3وאh א$D'א.*3KnDJOאlWS' :gVjVInDfאU$OJOאlWShQ')SCًQNS ضN،exceptions : IDbConnection Interface :وאلא$אnD'd،h אi$D7لV9bאJOقא7,אQ:N3 C# public interface IDbConnection : IDisposable { string ConnectionString { get; set; } int ConnectionTimeout { get; } string Database { get; } ConnectionState State { get; } IDbTransaction BeginTransaction(); IDbTransaction BeginTransaction(IsolationLevel il); void ChangeDatabase(string databaseName); void Close(); IDbCommand CreateCommand(); void Open(); } ﻛﻮد 416 VB Public Interface IDbConnection Inherits IDisposable Property ConnectionString() As String ReadOnly Property ConnectionTimeout() As Integer ReadOnly Property Database() As String ReadOnly Property State() As ConnectionState Function BeginTransaction() As IDbTransaction Function BeginTransaction(ByVal il As IsolationLevel) As IDbTransaction Sub ChangeDatabase(ByVal databaseName As String) Sub Close() Function CreateCommand() As IDbCommand Sub Open() End Interface ﻛﻮد : IDbCommand Interface :وאل א$אnD'd، م9אKBWON03ً79K3bאhJOقא7, א:N3Q C# public interface IDbCommand : IDisposable { string CommandText { get; set; } int CommandTimeout { get; set; } CommandType CommandType { get; set; } IDbConnection Connection { get; set; } IDataParameterCollection Parameters { get; } IDbTransaction Transaction { get; set; } UpdateRowSource UpdatedRowSource { get; set; } void Cancel(); IDbDataParameter CreateParameter(); int ExecuteNonQuery(); IDataReader ExecuteReader(); IDataReader ExecuteReader(CommandBehavior behavior); object ExecuteScalar(); void Prepare(); } ﻛﻮد VB Public Interface IDbCommand Inherits IDisposable ﻛﻮد 417 Property CommandText() As String Property CommandTimeout() As Integer Property CommandType() As CommandType Property Connection() As IDbConnection ReadOnly Property Parameters() As IDataParameterCollection Property Transaction() As IDbTransaction Property UpdatedRowSource() As UpdateRowSource Sub Cancel() Function CreateParameter() As IDbDataParameter Function ExecuteNonQuery() As Integer Function ExecuteReader() As IDataReader Function ExecuteReader(ByVal behavior As CommandBehavior) As IDataReader Function ExecuteScalar() As Object Sub Prepare() End Interface : IdbDataParameter :nD' C# public interface IDbDataParameter : IDataParameter { byte Precision { get; set; } byte Scale { get; set; } int Size { get; set; } } ﻛﻮد VB Public Interface IDbDataParameter Inherits IDataParameter Property Precision() As Byte Property Scale() As Byte Property Size() As Integer End Interface ﻛﻮد 418 : IdataParameter C# public interface IDataParameter{ DbType DbType { get; set; } ParameterDirection Direction { get; set; } bool IsNullable { get; } string ParameterName { get; set; } string SourceColumn { get; set; } DataRowVersion SourceVersion { get; set; } object Value { get; set; } } ﻛﻮد VB Public Interface IDataParameter Property DbType() As DbType Property Direction() As ParameterDirection ReadOnly Property IsNullable() As Boolean Property ParameterName() As String Property SourceColumn() As String Property SourceVersion() As DataRowVersion Property Value() As Object End Interface ﻛﻮد : IdbDataAdapter C# public interface IDbDataAdapter : IDataAdapter { IDbCommand DeleteCommand { get; set; } IDbCommand InsertCommand { get; set; } IDbCommand SelectCommand { get; set; } IDbCommand UpdateCommand { get; set; } } ﻛﻮد VB Public Interface IDbDataAdapter Inherits IDataAdapter Property DeleteCommand() As IDbCommand Property InsertCommand() As IDbCommand Property SelectCommand() As IDbCommand Property UpdateCommand() As IDbCommand End Interface ﻛﻮد 419 : IdataAdapter C# public interface IDataAdapter { MissingMappingAction MissingMappingAction { get; set; } MissingSchemaAction MissingSchemaAction { get; set; } ITableMappingCollection TableMappings { get; } int Fill(System.Data.DataSet dataSet); DataTable[] FillSchema(DataSet dataSet, SchemaType schemaType); IDataParameter[] GetFillParameters(); int Update(DataSet dataSet); } ﻛﻮد ﻛﻮد VB Public Interface IDataAdapter Property MissingMappingAction() As MissingMappingAction Property MissingSchemaAction() As MissingSchemaAction ReadOnly Property TableMappings() As ITableMappingCollection Function Fill(ByVal dataSet As System.Data.DataSet) As Integer Function FillSchema(ByVal dataSet As DataSet, ByVal schemaType As SchemaType) As DataTable() Function GetFillParameters() As IDataParameter() Function Update(ByVal dataSet As DataSet) As Integer End Interface : IdataReader C# public interface IDataReader : IDisposable, IDataRecord { int Depth { get; } bool IsClosed { get; } int RecordsAffected { get; } void Close(); DataTable GetSchemaTable(); bool NextResult(); bool Read(); } ﻛﻮد 420 VB Public Interface IDataReader Inherits IDisposable Inherits IDataRecord ReadOnly Property Depth() As Integer ReadOnly Property IsClosed() As Boolean ReadOnly Property RecordsAffected() As Integer Sub Close() Function GetSchemaTable() As DataTable Function NextResult() As Boolean Function Read() As Boolean End Interface ﻛﻮد C# public interface IDataRecord { int FieldCount { get; } object this[ string name ] { get; } object this[ int i ] { get; } bool GetBoolean(int i); byte GetByte(int i); char GetChar(int i); DateTime GetDateTime(int i); Decimal GetDecimal(int i); float GetFloat(int i); short GetInt16(int i); int GetInt32(int i); long GetInt64(int i); //... bool IsDBNull(int i); } : IdataRecord ﻛﻮد VB Public Interface IDataRecord ReadOnly Property FieldCount() As Integer Default ReadOnly Property Item(ByVal name As String) As Object Get End Get End Property Default ReadOnly Property Item(ByVal i As Integer) As Object Get End Get ﻛﻮد 421 End Property Function GetBoolean(ByVal i As Integer) As Boolean Function GetByte(ByVal i As Integer) As Byte Function GetChar(ByVal i As Integer) As Char Function GetDateTime(ByVal i As Integer) As DateTime Function GetDecimal(ByVal i As Integer) As Decimal Function GetFloat(ByVal i As Integer) As Single Function GetInt16(ByVal i As Integer) As Short Function GetInt32(ByVal i As Integer) As Integer Function GetInt64(ByVal i As Integer) As Long '... Function IsDBNull(ByVal i As Integer) As Boolean End Interface SQL Server اﻟﺒﺪاﻳﺔ ﻣﻊ .4 . إﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت .4.1 . אن1א.وz%و، ADO.net _DU9אhJOא53Ngא !`'אل+ KqT . אن، Employee YO&'F ً ^3 h i$D. zT א1 ول אنRN .3א زhوאH\אHI. 53و، Windows Forms i$Q$%'Q'د 03 i'د%'\א+NאK.9אnDאوE$وאC0אHא$b9א53 Sql Server +Q$'نPQ نC$9Qא$ :אaאאnD Express 'Q`'אل'دOא رابط http://msdn.microsoft.com/vstudio/express/sql .!'وPQ353¡אD'F¡א5Fs07tوא HIوא5>אHaqM .،GאnDl$` Server Explorer HI. View Fj.53אن :אKPTCreate New Sql Server Database 422 :אKPT Create aqsא9א$Q$Ra7!. ،hאi$D.zTאP3bאنא م$ 'نPQ PT\ אlWS K Gq אU ، : KV Kb9 אU ! 'د%م و$D PT3 g( $. *** .a7! . X%و−Z9لV'دא%مو$DUn−PTאKb'.a7!،PT Vא 423 : ]א1אHg(5Pא ! وg(Q$.*** An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) 53 وConfiguration Tools53 وMicrosoft SQL Server 2005 HI.23א4א53LאlWSU Surface Area *jV א5Fs 53 $` ، SQL Server 2005 Surface Area Configuration Local and *jVI אن53 $] وאgRO . ، Configuration for Services and connections .KFQ! نאC53$]ًMQא. ،O3remote connections : NS'لLא53D'F3 NP>ًMQא رابط http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=192622&SiteID=1 :אKPTYO&'\ אhول$%!sC$N،KFiS%وhi$D.Q$bאنא 424 אن،l وStored Procedurehאzא%9وאلوא$אK^3KPTא אWghQ')!אsאP3:אª9 :אKPTول$% !sאHINF. Identity KQ$ 'م7 autonumber : وset primary key HI 'م7 jH vO3 Y :אKPTאUF1iدQلא$3'S وIncrement $Q$R'م7 53 وyes Specfications 425 .7Q1@אON:!GK7 *אjVIو.KQ$NP>7Q1@אONو .i,3 אzאUh'אعאCnDfN .ً ^3 Employee_Info ول$אªOr.zg9א$ً אIא KPThلאIאدUz$gR!وQ$tאولא$ אאضאNP>،7אh'א1F.אن$ :א 426 :ً ^3אKPThلאIدF.،:! Iول و$אFViدDאNP>7Q1@אONو :SQL ServerUh'אعאC Exact numerics א¡ل 9,223,372,036,854,775,807 2,147,483,647 32,767 255 1 10^38 –1 53א¡ل 'عNא -9,223,372,036,854,775,808 -2,147,483,648 -32,768 0 0 -10^38 +1 bigint int smallint tinyint bit decimal 427 10^38 –1 +922,337,203,685,477.5807 +214,748.3647 1.79E + 308 3.40E + 38 -10^38 +1 -922,337,203,685,477.5808 -214,748.3648 -1.79E + 308 -3.40E + 38 Dec 31, 9999 Jan 1, 1753 Jun 6, 2079 Jan 1, 1900 numeric money smallmoney float real datetime (3.33 milliseconds accuracy) smalldatetime (1 minute accuracy) f8000nK7Q–`Lאf char f8000nK7Q–non-Unicodef varchar nKFnon-Unicodefو f231 varchar(max) f 2,147,483,647 nKFnon-Unicodefو text f 4,000 nKF Unicode fو nchar f 4,000 nKFUnicode fو nvarchar nKFnon-Unicodefو f 230 nvarchar(max) .f 1,073,741,823 nKFUnicode fو ntext .Q of 8,000 nKFjNh binary nKFi q3jNh of 8,000 Q. varbinary Q 231 nKFi q3jNh varbinary(max) .Q 2,147,483,647 nKFi q3jNh image (s'Q!'وPQ353ول$אאWg!، .netUh'אعאCF(مnDh'د$.Nوذא :.netUh'عK CLR.netUh'عא SQL SERVER SqlInt64 Int64, Nullable<Int64> Bigint SqlBytes, SqlBinary Byte[] Binary SqlBoolean Boolean, Nullable<Boolean> bit CLR h( 'عאSQL Server) 428 $%'Q9 $%'Q9 char $%'Q9 $%'Q9 cursor SqlDateTime DateTime, Nullable<DateTime> date SqlDateTime DateTime, Nullable<DateTime> datetime SqlDateTime DateTime, Nullable<DateTime> datetime2 $%'Q9 DateTimeOffset, Nullable<DateTimeOffset> DATETIMEOFFSET SqlDecimal Decimal, Nullable<Decimal> decimal SqlDouble Double, Nullable<Double> float $%'Q9 $%'Q9 image SqlInt32 Int32, Nullable<Int32> int SqlMoney Decimal, Nullable<Decimal> money SqlChars, SqlString String, Char[] nchar $%'Q9 $%'Q9 ntext SqlDecimal Decimal, Nullable<Decimal> numeric SqlChars, SqlString String, Char[] nvarchar SqlChars, SqlString Char, String, Char[], Nullable<char> nvarchar(1), nchar(1) SqlSingle Single, Nullable<Single> real $%'Q9 Byte[] rowversion SqlInt16 Int16, Nullable<Int16> smallint SqlMoney Decimal, Nullable<Decimal> smallmoney $%'Q9 Object sql_variant $%'Q9 $%'Q9 table $%'Q9 $%'Q9 text TimeSpan TimeSpan, Nullable<TimeSpan> time $%'Q9 $%'Q9 timestamp SqlByte Byte, Nullable<Byte> tinyint 429 SqlGuid Guid, Nullable<Guid> uniqueidentifier $%'Q9 iد$[אJO@אO User-defined type(UDT) SqlBytes, SqlBinary Byte[] varbinary SqlBytes, SqlBinary byte, Byte[], Nullable<byte> varbinary(1), binary(1) $%'Q9 $%'Q9 varchar SqlXml $%'Q9 xml SQL Statements .4.2 5Q'PوאzTאhF!sא:! IوKQ$!وאs9אhFDWONوhאi$D.Uh\א . Structured Query Language~HVIאSوSQLSqאlWS،hא$D'א.gFgOqج .S وAccess - MS sql Server− Oracle : hא$D'א.'אعC0B03KF م9אN7Vو אول$אzTوאKQ$وאfWL!وאs9אUًMQCم$+ gC9−0j,'SF−RFאlWS'م7 .و ذiHدא9وאgPR وא. hא$D'א.nو :lWSא مqUjوאلא$אSlWS 430 :SRg,א مאF3אqVא SQL Server Select Colums_Name From Table_Name; ﻛﻮد :zא%C HC53א مB'نPª .SQL KB 53S 5DRאBetאS و:Select .g(QنC:$QW'د אFوאCK7L אא:Colum_Name .RאF´bIqbًMQCS و:From .ول$א אGPNS :Table_Name :א مKF Syntex ( Q'RN א$D'א7)א:F5P>3nDz$אK.i(Nو .i qVوאi P אfאY!قC$%'Q9* .!3 53^]fZQ9:1CiTD=!ن3=!3* .ً4אh71Ugج9$.NC9'؛7N3bOא مKB0BgN* :7אFאnD^ل3אWSو SQL Server SELECT FName FROM Tb_Main; ﻛﻮد אجאאول+9ً ^F!،bOאgN KVO'אوgsوNNPF!'دFD53^Cאج+א$QNوذא : Iوאא SQL Server SELECT FName,LName FROM Tb_Main; ﻛﻮد : אKPT'لوذ7L אzאK)*0MN¦!hא0Bאج+9و SQL Server SELECT* FROM Tb_Main; ﻛﻮد 431 HאPאfW03אجאאول+9 ً ^F! DISTINCT ... م$+ HאP ون$ 5Pوhאجא+9و SQL Server SELECT DISTINCT FNAme FROM Tb_Main; ﻛﻮد :3مא$+ ً زNوCًQ$DV%+\אhאGZًMQC ORDER BY colum $DV وC ORDER BY colum DESC : אאولG $DVאGZא03 hא0Bאج+9ً ^F! SQL Server SELECT * FROM Tb_Main ORDER BY FName DESC; ﻛﻮد 53אאولوGGZً ^F!،bOאمא$+ وذ−0j,'SF−GZYQ'3KFDNNP>و : Iאא SQL Server SELECT * FROM Tb_Main ORDER BY FName,Lname ; ﻛﻮد :אqVא م אFDUطTiאمא\وא$+אqbWI] SQL Server Select * From Tb_Main Where Field = Value; ﻛﻮد . = ً و >< وC =< وC => وC < وC > אم$+אNNP>و . Between وLike FS ً و79¦ذنאgTNد$%Y33ً אICو : N 18SHFDCو5QWאz.$bא5D^ ً مF! 432 SQL Server SELECT * FROM tb_Main WHERE age = 18; ﻛﻮد :N5053qbCS53zCوض SQL Server SELECT FName,LName FROM tb_Main where age < 50; ﻛﻮد ص+, א5DR−אKPTًوذb'VUiدO3*VNt3 DY Value 0MNو :( $"C)אk5QWوא SQL Server SELECT * FROM tb_Main WHERE Fname = 'ahmed'; ﻛﻮد g,qbWI]gNP،hאi$D.U¢QH^3C $%'9و،¢QH'א5DRא$ND#t3 D0MNF : SQL Server Select * Form Table1 Where Date > #12/03/04#; ﻛﻮد ؟IzOא03ط,7وCS$CوCوط,D'F7R RدאHC'ذא3:وאن .4אhqUNFFOrوAnd1א71N\אh 3\مא$+ضqאאWSK%C53 : Y%و3''אPQ9CطT175DSFD 4PQ5QWصא+,א5DRN،0Q^ل3وאن SQL Server Select Fname from tb_main where age > 17 and marry = false; ﻛﻮد : Like K3\אمא$+א ... Y3 gT\אhFPא5DR Like K3\مא$+ : אqV אLike K3Fم$+و 433 SQL Server ﻛﻮد Select * From Table Where Field Like '%Name٪'; U3אMو.FgوC،QgNوאC،Qא$אU g3$+$.و...3fC'د%وnD9$٪م$+ :^3א :KPTאאWgא مBم$+N ... hm nDאوSzC'$.5QWصא+,ض א SQL Server SELECT * FROM Tb_Main WHERE FName like '%hm%'; ﻛﻮد : RאFK.٪0M5אW A fr SzCC$5QWصא+,א5DRدאHC'3C SQL Server SELECT * FROM Tb_Main WHERE FName like 'A%'; ﻛﻮد .QgNدونאQא$אU٪0MNY3 frgאgNQ5QWصא+,א5DRدאHC'و ﻣﻼﺣﻈﺔ % نستخدم * بدال ً منMS Access في ؟fوLدא$D$Q$دHC'ذא35P ،fوLא53د$DCc٪نC2N .""؟SOא3 D'SAccessUS&N3،"_"م$+'LאlWSU 3א % _ (underscore) [] אم$+א ًא$DV!Ob53zא$אfא53د$DC .a7!$وאf NوאلAאلYfً ^3،Y3A$353a7!$وאf Like '[A-N]ack' [^] Like '[^B]ack' 'نPQ9fً ^3،د$['אS'نPQ9C1Q,a7!$وאf B 434 .a7! 3g!دو$D'نPQنCطT A frSzC C$5QWصא+,א5DRنCدHC'ذא3:ذن SQL Server SELECT * FROM Tb_Main WHERE FName like 'A__'; ﻛﻮد . Between اﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ 5FsRאU:3א$+'אSK3\אאWkلF אg,Cو،Y3ق15FsRK3\אאWSم$+ .¢QHא'א :אqV אbetween אم$+RאWI]Q SQL Server SELECT colum FROM table WHERE field BETWEEN v1 AND v2; ﻛﻮد :60 و20 YSHFDCvوאZ5QWصא+,אجא+9ً ^F! SQL Server SELECT * FROM tb_main WHERE age between 20 and 60; ﻛﻮد .لLא1 ¢QHوא'א،zא037Q1@אOאم$+א5P>و .اﻟﺪوال ﻓﻲ اﻻﺳﺘﻌﻼﻣﺎت −i$وF.$و،d3و،אم$+9אj,Sو، م9 אKBh5Fsوאل$א53$Q$مא$+ .سH$אאWS لI^3א03وאل$אnDfN - ول$%$9 : אKPTאWI]tوאلوא$אمא$+93אqVאQi((NNو SQL Server SELECT func(colum) FROM table WHERE condition; ﻛﻮد : AVG א$א 435 :ًא3CGPً ^3hאi$D.UHFD אa'3XLو،3K7a'3א$אlWSN1 SQL Server Select AVG(Age) from tb_main; ﻛﻮد Kم.Hא0F<h `א0BnDHو$NN،א$אlWSم$+_ 'KONذא3K+وאن - .ً −אWPS אوK7NK` :255DSHFDC$Q95QWصא+,אHFDCa'3XL ً ^F!...طTא$אمא$+אNNP>ًMQC SQL Server SELECT AVG(Age) FROM tb_main where age < 25; ﻛﻮد −$QNذא−.אW...:, 3وC Expr100 אK7Ug(Qא$א2نCh$%' (9' :אKPTًو7NFF As Q5D2NאK7FiدD SQL Server SELECT AVG(Age) as AVGAGE FROM tb_main WHERE age < 25; ﻛﻮد ﻣﻼﺣﻈﺔ ..الحظ أن الدالة سوف تتجاھل السجالت الفارغة : Sum,Max,Min اﻟﺪوال :hאi$D.UFD4CnD^ل3אWSو، א'אnDqbא−4א−'عF¡وאلא$אlWS1 SQL Server SELECT max(Age) AS mxAGE FROM tb_main; ﻛﻮد ﻣﻼﺣﻈﺔ .ال تنس أن بإمكاننا وضع شرط لعملية اإلستعالم 436 : Count اﻟﺪاﻟﺔ :h `دא$Dً ^3$N،h `دא$Dא$אlWS$و SQL Server ﻛﻮد SELECT COUNT(*) FROM Table1; :hאHאPאKS`و SQL Server SELECT COUNT(DISTINCT Title) FROM Table1; ﻛﻮد : اﻟﻌﻼﻗﺎت KFאUGوh. D NQ$ 'ذא3، وאنTSql Uig,^9وא1وאلא$אlWS :אKPTFمא$+f'LאlWSU .gD ﻛﻮد SQL Server SELECT tb_main.Fname, tb_main.lname, Tb_R1.passport, tb_r1.bclass, tb_r1.from FROM tb_main, tb_r1 WHERE tb_main.Number = tb_r1.Number; :7 א7Q1وא7Q1אlWSYوقOאª אنNDد .ول$%53^C03K3N g3وذK7Lאא.ول$אאP'م7:ً9وC .ول$%53^C532'אNא$Q N FromiHD$ول$%53 ^אP'م7:ً .Q'Yو$אUg3.HC:Ttאh3'\ضאQP'S م9אB 53 Iא1א:ً^ : DDL :אKPTول وذ$% zT אqVً9وCC$N،hא$D'א.KS03K3*§DDLنCذ SQL Server CREATE TABLE tb1 ( colum type, colum type,........); ﻛﻮد 437 − *)'ع53 Name א،Y7nD'd Tb2 ًא9و$%±TNN...ذnD^لFو : Number 'ع53 Age I( وאString SQL Server CREATE TABLE tb1 (name text,age number ); ﻛﻮد Y'.Yhدא$D0sذن...a7!hI@Fx Name FאK7`د$نCدHC'ذא3ذن :אKPT وذText ¤9אh'عY 03 SQL Server CREATE TABLE tb1 (name text(6),age number ); ﻛﻮد 03אא\^لWSX`Nو... - Null !אغK7Q9K7LאK< oSאول$אzTאUg,]17I :ً MQCא SQL Server CREATE TABLE tb1 (name text(6) Not Null,age number ); ﻛﻮد :' ًאlzT¦NF.Wولא$אfWr 'م7Q'دPאאWS0.א'אU ... fWL א5Dذא35Pو SQL Server DROP Table tb1; ﻛﻮد אKPT'دوذPאI CASCADE !sg^Q$53 $ !h. ً13ول$אאWSو'ن SQL Server DROP Table tb1 CASCADE; ﻛﻮد hאi$D.ولو$אY قOنאC$7DC−zT9אFD$وذ: 'ل7 !s אUC$Nوאن - .ًRsوאbC'ل7Lوא :א7Q13DqV'ل7L!אsא01 SQL Server ALTER TABLE tb1 ADD colum type; ﻛﻮد 438 :( n^C−'ع)ذN א\ دوא^א¢QH'Sאول:5Q$Q$%Y7oMN! SQL Server ALTER TABLE tb1 ADD birth_Date date,Gender Text; ﻛﻮد Q$R CASCADE FoMًFjدאNCª9 Gender ... K75P'ل و7L אlWS$CfWRN وאن :אKPTوذ،−S'د%لوU - h. א SQL Server ALTER TABLE tb1 DROP gender CASCADE; ﻛﻮد .AICi3DML Tb_Main م$+f'و، h `!אs אنאf'DMLU م9وאRאz%NFאن$ :!sא3 3אqVوאنא،:D3وאCX`Nول$` SQL Server INSERT INTO table VALUES (v1, v2,......); ﻛﻮد ""*VNt3 DY'صVNא0sوiDא303،b!gNKVOא^ وzאHאًو$وא7אHFNNCª9 . ## t3 D Y¢QHوא'א −وZPא$Q4א−'אنNא−Fא−okא.H− I אא- אאول−.א:א7אHFN :אKPTوذ، h( 3−9/وج3−0.'\ א- qא−Nא ﻛﻮد SQL Server Insert into tb_main values(11,'ahmed','gamal',6666666,18,'Cairo','Hammada2091','First Year','','',false,''); :KQ$א :אKPTK`hKQ$3אqVא 439 SQL Server UPDATE table_name SET colum1 = v1 , colum2 = v2 WHERE colum = v; ﻛﻮد ( Ahmed אول:אW*א+T = www.vb4arab.com 0.'\وא25=FאKً9^3אنX`N : ( Gamal ) I9)وא ﻛﻮد SQL Server Update tb_main set age=25 , site='www.vb4arab.com' where fname='ahmed' and lname='Gamal'; :3DqbRאB W+0.א'אU ... fWL א5Dذא35Pو SQL Server DELETE FROM table WHERE colum = value; ﻛﻮد ص+,א0BfWf'א\^لאU..ط, 53^C7 ]fWL'نאPQنC5P>و :YHא5DSHFDC$Q5QWא SQL Server Delete from tb_main where age>40; ﻛﻮد :7Q1אSlWS ... 3ول$%hQ')K3 fW 5Dذא35Pو SQL Server DELETE * FROM table; ﻛﻮد Stored Procedure .4.3 ضN אW و، ًא$% a 'عs'\ א، h אi$D. U א مB 'S Stored Procedure אل :א مBQ' SQL Server select [First Name] from employee_info where age>21; ﻛﻮد 440 :אKPT Procedure ل:Q'Q3'Sو SQL Server Create PROCEDURE dbo.GetAge @firstname char(10) output AS SELECT @firstname =[First Name] from Employee_info where age > 21 ﻛﻮد .Stored ProcedureאאلAlterوCCreateאول1א− .OutputوCInput:7Qو:D'$Q$Qreturn valueوאلChאZ3HאnD'd^א1א− .א مB^א1א− : م9אlWS :!GPو$Q$%$وאzTאH+N وStored Procedure .GSWNوאن אWSK^3ًJ,2N'نאP و، Excute HIאQ5D2N{אNP> 441 :^لFאKPTא،X'1\طאT^ ًא3$Q$RZ3HK7 م9אBK%NP> SQL Server ALTER PROCEDURE dbo.GetAge @condition int, @firstname char(10) output AS SELECT @firstname =[First Name] from Employee_info where age > @condition ﻛﻮد م9אBWON'م7 SQL ServerאلUnאو234א53z'אZ3HQeNP>LאlWSU .:אnD Gو، Select 53ً9$ Insert وC Delete אوUpdate م9אB@OKFDP3نC@N9ً .'1\ مא9אB SQL Injection .4.4 W אz'אSאWg!i,3 م9אKB53ً9$ Stored Procedure م$+!\ذא3$Q N' .ً^ א:gنCD 442 :Hא\وFمو$+\אאQ5D،'لI$אK`F'م7KIدאCضZON ﻛﻮد SQL Server string cmd = "select id from Users where nams like '"+textBox1.Text+"' and pass like '"+textBox2.Text+"'"; ضZONوאن،`N'د5!@PאU3CIDF.א$א$f'!'د%'3'نא:C1א :*אولNא03UאzאPم.3ًV+,نC —('insert into Users values(1,'NewUser','1234 'لI$א:P3'نP7 אi\אU، ول$`م$+\אאWS!s'م7:NPو،i\אlWSKI$Q5 !!!1234.وNewUser :طTא7RאWg!،*Nא3UאFאPم.'،ذ53aوאC a' or 't'='t 'ع؟s'\אאWS:QنC5P>WאHM§`אKS :P'م7QنCًMQC5P> –drop table Tablename !!!a7!و gNP> 9 وa7! q3 33 K3 q\ אKI دאkI אدQ F. C نC U Stored Procedure ~ א¤$O ...ً79gDfNAIC7Q1gFDNNP>و،ًא$CWONא 443 اﻟﻌﻼﻗﺎت .4.5 :אWSK^3 ً J,2N'نאP،o&'3KgDKFQtא0QHT\א:!0Mً ^3D!ول$% KF. 7אGR. وAdd New HI.، Database Diagram $`אFj7א53،h. אa :ً ^3אKPT . אUg1H'دtא SQL _D U $Q\ אnD f אG N ' Sql Server U ^ ًא: جNg א$. 'نP NS :NS53z$אNP>Server رابط http://msdn.microsoft.com/en-us/sqlserver/default.aspx ...4אqAICi3'دNوאن 444 اﻟﻮﺿﻊ اﻟﻤﺘﺼﻞ .5 ConnectionStringBuilder اﻟﺘﻌﺎﻣﻞ ﻣﻊ .5.1 ^ אs'Q א א\^لWS ، אصConnectioString אلzN VO 7Q 5jPא אWS !'Q :ً 3א$+א C# SqlConnectionStringBuilder cnStrBuilder = new SqlConnectionStringBuilder(); cnStrBuilder.InitialCatalog = "Employee"; cnStrBuilder.DataSource = @"(local)\SQLEXPRESS"; cnStrBuilder.ConnectTimeout = 30; cnStrBuilder.Password = "124"; cnStrBuilder.UserID = "Ahmed"; SqlConnection cn = new SqlConnection(); cn.ConnectionString = cnStrBuilder.ConnectionString; cn.Open(); ﻛﻮد VB Dim cnStrBuilder As New SqlConnectionStringBuilder() cnStrBuilder.InitialCatalog = "Employee" cnStrBuilder.DataSource = "(local)\SQLEXPRESS" cnStrBuilder.ConnectTimeout = 30 cnStrBuilder.Password = "124" cnStrBuilder.UserID = "Ahmed" Dim cn As New SqlConnection() cn.ConnectionString = cnStrBuilder.ConnectionString cn.Open() ﻛﻮد :${ hאi$D.א$Q$R- InitialCatalog hאi$D. H3$Q$R- DataSource אوh אi$D. 'لb' )و אK% א53 :.אq א5P> W א.' א$Q$R - ConnectTimeout .lzgא$NDFאf7Qא .h$%نوhאi$D.Hو3F- Password .$%ن وhאi$D7م$+\אא- UserID 445 :NS53gs אאNP>ًMQCAIאbNא53$Q$א¤NS رابط http://msdn.microsoft.com/enus/library/system.data.sqlclient.sqlconnectionstringbuilder_members.aspx Command اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﺌﺔ .5.2 7N،hאi$D.nDhFא53א'عWON g3$+t مא9אBS Command אل :jHא'אعE StoredProcedure− TableDirect− Text− :ً ^3אKPT،Texti,3V א مF` Command אلN3$+א\^لאאU C# string strSQL = "Select * From Employee_Info"; SqlCommand myCommand = new SqlCommand(strSQL, cn); ﻛﻮد VB Dim strSQL As String = "Select * From Employee_Info" Dim myCommand As New SqlCommand(strSQL, cn) ﻛﻮد :KPTאאWgوC C# SqlCommand testCommand = new SqlCommand(); testCommand.Connection = cn; testCommand.CommandText = strSQL; ﻛﻮد VB Dim testCommand As New SqlCommand() testCommand.Connection = cn testCommand.CommandText = strSQL ﻛﻮد 446 :WON قi$Dقi$D¤NS0.א'אU، ExecuteReader אم$+i,3g1NF.WON אzNC : 2N אaH وDataReaderoQ Q ، h א53 د$D 2N 'ن אU : ExecuteReader .7Kא3U:D N!3'Sو،:zא7 2N אDelete אوupdateFDoQ K^3،ً bא2'د'א%مو$DU: ExecuteNonQuery .ً 79:Df א،:3$D53FאWON'S$'א .אGb*+Tאول9א5Da7!5D م9אK^3،$و2N'نאU: ExecuteScalar . xxxxxx 3'7א ،:zא7:2NאaH وXmlReaderoQQ XML KP,nD:دDوא2NאWON:ExecuteXmlReade . XmlReader 5D$Q\ \!אXML وسH'عد%אNP> : Parameterized Command Objects اﺳﺘﺨﺪام الK( م9אKFQ$7א7Q1!¦نא، SQL Injection אل5D:!N$WسאH$ א53(9F Stored 03 K3 5P _ ' n ً MQ אNQ$ م9 אKF Parameters אم$+ C$ אW ، i1I .Procedure :` א\^لאWIC' ﻛﻮد C# string strSQL = "Select [First Name]+[Last Name] as [Full Name], Age From Employee where ID=" + ID; SqlCommand myCommand = new SqlCommand(strSQL, cn); ﻛﻮد VB Dim strSQL As String = "Select [First Name]+[Last Name] as [Full Name], Age From Employee where ID=" + ID Dim myCommand As New SqlCommand(strSQL, cn) אم$+ 'نPQ KQ$א אW ، 'g (مNא אWS אقZI א53 SQL Injection }د¨ אل5QHد. N א$` : SqlParameteroQو ﻛﻮد C# string sql = string.Format("Select [First Name]+[Last Name] as [Full Name], Age From Employee where ID=@ID"); 447 using(SqlCommand cmd = new SqlCommand(sql, this.sqlCn)) { // Fill params collection. SqlParameter param = new SqlParameter(); param.ParameterName = "@ID"; param.Value = 10; param.SqlDbType = SqlDbType.Int; cmd.Parameters.Add(param); // NSKP,] م9אBWON cmd.ExecuteNonQuery(); } ﻛﻮد VB Dim sql As String = String.Format("Select [First Name]+[Last Name] as [Full Name], Age From Employee where ID=@ID") Using cmd As New SqlCommand(sql, Me.sqlCn) ' Fill params collection. Dim param As New SqlParameter() param.ParameterName = "@ID" param.Value = 10 param.SqlDbType = SqlDbType.Int cmd.Parameters.Add(param) ' NSKP,] م9אBWON cmd.ExecuteNonQuery() End Using .234א5FsgP5NF.א مB hאZ3HQFNF.(9FNS Bً ^3NsZ! 'א، Stored Procedure oQSאم$+9אjTאSوNQ$tא^אL א :אKPTNسHولدCUS]TCt مא9א SQL Server ALTER PROCEDURE dbo.GetAge @condition int, @firstname char(10) output AS SELECT @firstname=[First Name] from Employee_info where age > @condition ﻛﻮد 448 :ً ^3אKPT ذQ،234א53SzD$א$Qאن، GetAge g(OrNF.و C# using (SqlCommand cmd = new SqlCommand("GetAge", cn)) { cmd.CommandType = CommandType.StoredProcedure; SqlParameter param = new SqlParameter(); param.ParameterName = "@condition"; param.SqlDbType = SqlDbType.Int; param.Value = myAge; param.Direction = ParameterDirection.Input; cmd.Parameters.Add(param); ﻛﻮد param = new SqlParameter(); param.ParameterName = "@firstname"; param.SqlDbType = SqlDbType.Char; param.Size = 10; param.Direction = ParameterDirection.Output; cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); MessageBox.Show(cmd.Parameters["@firstName"].Value.ToString()); } VB Using cmd As New SqlCommand("GetAge", cn) cmd.CommandType = CommandType.StoredProcedure Dim param As New SqlParameter() param.ParameterName = "@condition" param.SqlDbType = SqlDbType.Int param.Value = myAge param.Direction = ParameterDirection.Input cmd.Parameters.Add(param) param = New SqlParameter() param.ParameterName = "@firstname" param.SqlDbType = SqlDbType.[Char] param.Size = 10 param.Direction = ParameterDirection.Output cmd.Parameters.Add(param) cmd.ExecuteNonQuery() MessageBox.Show(cmd.Parameters("@firstName").Value.ToString()) End Using ﻛﻮد 449 q3oQNF.53و، Text 'SsאZ!9(אًنאNS Command 'عאلoQNF.،(9F .ً MQC אوجq3'لوI$א DataReaders اﻟﺘﻌﺎﻣﻞ ﻣﻊ .5.3 :אKPTאمא$+א5P>،א3 DataReader 53hאizא.دHC' ﻛﻮد C# string listItem = ""; while (myDataReader.Read()) { listItem= "Full Name: " + myDataReader["Full Name"].ToString() + " Age: " + myDataReader["Age"].ToString(); listBox1.Items.Add(listItem); } VB Dim listItem As String = "" While myDataReader.Read() listItem = "Full Name: " + myDataReader("Full Name").ToString() + " Age: " + myDataReader("Age").ToString() listBox1.Items.Add(listItem) End While ﻛﻮد K7NkzD$אK03.'@אOUو،izא7h `¤NS دאم3 true X Read א$'دא ...אK`א GZ אU :F.H $Q$R אوmyDataReader["Age"] :zא. א\אدK7L א$Q$R 'نP izא7 א7Q .ً ^3myDataReader[2] 2jNא5Fsi$FDدא$DN1t وאFieldCount bًאMQC¤NS 450 : NextResult z אYO&'\ אz אiدD9 ً ^F! ، 2N אiدD9 א مtB oQ 53 DataReader אلNPe :0QHT\א C# string strSQL = "Select * From Employee_info;Select * from projects"; SqlCommand myCommand = new SqlCommand(strSQL, cn); do { while (myDataReader.Read()) { for (int i = 0; i < myDataReader.FieldCount; i++) listItem= "Data: " + myDataReader[0].ToString() ; } } while (myDataReader.NextResult()); ﻛﻮد VB Dim strSQL As String = "Select * From Employee_info;Select * from projects" Dim myCommand As New SqlCommand(strSQL, cn) Do While myDataReader.Read() For i As Integer = 0 To myDataReader.FieldCount - 1 listItem = "Data: " + myDataReader(0).ToString() Next End While Loop While myDataReader.NextResult() Data Access Layer ﻛﻮد .6 QK،hא71!sא234אhFD'وQHN03g(\ א03'دPא0sوQ9،Q$אh71אU %א3NP>'عs'\אאWS5D$Q\\!א، Layers fQ3'SوVON37 UgN3KKV! :אaאא رابط http://www.al-asiri.com/ShowRecord.aspx?Action=Open&id=cefa426c-d9e0-4625a66b-87fd6082ff89 451 :NSًMQא1¤NSو رابط http://vb4arab.com/vb/showthread.php?t=10969 :YFg3Y177Rhא$D'א.03K3bI 'نP data layer KFDولRN،\אlWSU .i353^אg3א$+אiدDא .71אlWSnDA'KQ$אQ9KQ$אUو،'g lH$V3$Q$Q]1I'د%وU:Q$3Kאن،hאi$D7لV9אO 234א53z%א2343ق1Q5LאlWSUو دونN3 hאZ3H 03 S$QQ t אhF אK وKQ$ وאfWLل وאV وאل$ א53 D'F S .ً 3ehא$D'א7لV9אOU KI$א KF'م7 وFאlWg'م7tאiSא23א4אمא$+אg1א،قi$71אlWS KFDNP> ، F אlWk 7Q hو$'! אQ ً MQ א، Sد$ t א4 אq G layer אلlWk אج+א ...Qو$א7Q1אS^א7Q1א nDSO\@אO15P>،YO&'\אK%א53F אlWka^ل3nDfNא`אU .79Q$א23א4א : ﻋﻤﻠﻴﺎت ﻓﺘﺢ واﻏﻼق ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت-1 C# private SqlConnection cn = new SqlConnection(); public void OpenConnection(string connectionString) { cn.ConnectionString = connectionString; cn.Open(); } public void CloseConnection() { cn.Close(); } ﻛﻮد 452 VB Private cn As New SqlConnection() Public Sub OpenConnection(ByVal connectionString As String) cn.ConnectionString = connectionString cn.Open() End Sub Public Sub CloseConnection() cn.Close() End Sub ﻛﻮد . ﺳﻴﻨﺎرﻳﻮ ﻋﻤﻠﻴﺔ اﻟﺤﺬف-2 ً ^3 o&'\ אfW אو، :F. o&'\ אfW אو، : o&'\ אfW م$+F N F אlWS U KFDC$3 وOverLoading אلC$3אم$+א03ً ^3وQ אوK.אوא4אz'אhאHIאi$وFא9$ .7وسHدUFg, אنWًوאMQאEnums א234 אU g3א$+ א5P> tوאل א$ אK KFD S \ אlWS U Fg3 אنª9 *** :fא(و53f& C# public void DeleteEmployee(int id) { string sql = string.Format("Delete from Employee where ID = {0}", id); using(SqlCommand cmd = new SqlCommand(sql, this.sqlCn)) { try { cmd.ExecuteNonQuery(); } catch(SqlException ex) { Exception error = new Exception("some error occures: ", ex); throw error; } } } ﻛﻮد 453 public void DeleteEmployee(string name) { string sql = string.Format("Delete from Employee where [First Name] = '{0}'", name); using(SqlCommand cmd = new SqlCommand(sql, this.sqlCn)) { try { cmd.ExecuteNonQuery(); } catch(SqlException ex) { Exception error = new Exception("some error occures: ", ex); throw error; } } } enum deletecondition { morethan=0, lessthan=1, equal=2 } public void DeleteEmployee(int age,deletecondition delcondition) { string sql=""; if(delcondition == deletecondition.morethan) sql = string.Format("Delete from Employee where age > {0}",age); else if(delcondition == deletecondition.lessthan) sql = string.Format("Delete from Employee where age < {0}",age); else sql = string.Format("Delete from Employee where age = {0}",age); using(SqlCommand cmd = new SqlCommand(sql, this.sqlCn)) { try { cmd.ExecuteNonQuery(); } catch(SqlException ex) { Exception error = new Exception("some error occures: ", ex); throw error; } 454 } } ﻛﻮد VB Public Sub DeleteEmployee(ByVal id As Integer) Dim sql As String = String.Format("Delete from Employee where ID = '{0}'", id) Using cmd As New SqlCommand(sql, Me.sqlCn) Try cmd.ExecuteNonQuery() Catch ex As SqlException Dim [error] As New Exception("some error occures: ", ex) Throw [error] End Try End Using End Sub Public Sub DeleteEmployee(ByVal name As String) Dim sql As String = String.Format("Delete from Employee where [First Name] = '{0}'", name) Using cmd As New SqlCommand(sql, Me.sqlCn) Try cmd.ExecuteNonQuery() Catch ex As SqlException Dim [error] As New Exception("some error occures: ", ex) Throw [error] End Try End Using End Sub enum deletecondition { morethan=0, lessthan=1, equal=2 } Public Sub DeleteEmployee(ByVal age As Integer, ByVal delcondition As deletecondition) Dim sql As String = "" If delcondition = deletecondition.morethan Then sql = String.Format("Delete from Employee where age > {0}", age) ElseIf delcondition = deletecondition.lessthan Then sql = String.Format("Delete from Employee where age < {0}", age) Else sql = String.Format("Delete from Employee where age = {0}", age) End If 455 Using cmd As New SqlCommand(sql, Me.sqlCn) Try cmd.ExecuteNonQuery() Catch ex As SqlException Dim [error] As New Exception("some error occures: ", ex) Throw [error] End Try End Using End Sub : ﺳﻴﻨﺎرﻳﻮ ﻋﻤﻠﻴﺎت اﻻﺿﺎﻓﺔ واﻟﺘﻌﺪﻳﻞ-3 .قi$!s9אوאhאHIi$KQ$ א5P>7Q1@אON .a7! Iאولوא9لאI אدnDl4`N!s9אFN .a7!אول9א.א9$ل$N ًN35P و،iH'V@אON'نPQنCًMQCqNQKQ$وא C# public void InsertEmployee(string fname, string lname, int age) { // Format and execute SQL statement. string sql = string.Format("Insert Into Employee_info" + "([First Name], [Last Name]) Values" + "('{0}', '{1}')",fname, lname); using(SqlCommand cmd = new SqlCommand(sql, this.sqlCn)) { cmd.ExecuteNonQuery(); } } ﻛﻮد public void UpdateEmployee(int id, string newFirstName) { string sql = string.Format("Update Employee Set [First Name] = '{0}' Where ID = '{1}'", newFirstName, id); using(SqlCommand cmd = new SqlCommand(sql, this.sqlCn)) { cmd.ExecuteNonQuery(); } } 456 ﻛﻮد VB Public Sub InsertEmployee(ByVal fname As String, ByVal lname As String, ByVal age As Integer) ' Format and execute SQL statement. Dim sql As String = String.Format("Insert Into Employee_info" + "([First Name], [Last Name]) Values" + "('{0}', '{1}')", fname, lname) Using cmd As New SqlCommand(sql, Me.sqlCn) cmd.ExecuteNonQuery() End Using End Sub Public Sub UpdateEmployee(ByVal id As Integer, ByVal newFirstName As String) Dim sql As String = String.Format("Update Employee Set [First Name] = '{0}' Where ID = '{1}'", newFirstName, id) Using cmd As New SqlCommand(sql, Me.sqlCn) cmd.ExecuteNonQuery() End Using End Sub . ﺳﻴﻨﺎرﻳﻮ ﻋﻤﻠﻴﺎت اﻟﺒﺤﺚ-4 אلFD Sم وS z, gV7NQ 7وאل א$ ن אT نC 'د، R אFD 'QHN U z$ אK. U،a7!s'7^א39א5P، Sql Injection אل5D{NאKT\ אU Parameters .PT\אlWSKLlNF31NאنRאFD Data UG13CnN9،Y3 ID .ص+, Iאولوא9 א5Di$وאrFDX`N א مB n P جd 9 P 234 אhFD 2343 g%d $. t אh1 אK KFLayer .i$وא : Stored Procedure KFً9'مאو7N SQL Server ﻛﻮد 457 CREATE PROCEDURE GetFirstNameByID @id int, @fName char(10) output AS SELECT @fName=[First Name] from Employee_info where ID > @id :אKPTRאFbאא$אoQ'م753و C# public string SelectName(int id) { using (SqlCommand cmd = new SqlCommand("GetFirstNameByID", cn)) { cmd.CommandType = CommandType.StoredProcedure; SqlParameter param = new SqlParameter(); param.ParameterName = "@id"; param.SqlDbType = SqlDbType.Int; param.Value = id; param.Direction = ParameterDirection.Input; cmd.Parameters.Add(param); param = new SqlParameter(); param.ParameterName = "@fName"; param.SqlDbType = SqlDbType.Char; param.Size = 10; param.Direction = ParameterDirection.Output; cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); return cmd.Parameters["@fName"].Value.ToString(); } return carPetName; } ﻛﻮد VB Public Function SelectName(ByVal id As Integer) As String Using cmd As New SqlCommand("GetFirstNameByID", cn) cmd.CommandType = CommandType.StoredProcedure Dim param As New SqlParameter() param.ParameterName = "@id" param.SqlDbType = SqlDbType.Int param.Value = id param.Direction = ParameterDirection.Input cmd.Parameters.Add(param) ﻛﻮد 458 param = New SqlParameter() param.ParameterName = "@fName" param.SqlDbType = SqlDbType.Char param.Size = 10 param.Direction = ParameterDirection.Output cmd.Parameters.Add(param) cmd.ExecuteNonQuery() Return cmd.Parameters("@fName").Value.ToString() End Using End Function אم$+9אU،153^א03gqTنFMVON3 dll Un DataLayer אلKV!NP>ً79 -1 و، myDataLayer 9 אKF DataLayer h א71 Class JOאض אن אZ! אnD ً و79 :אK^35Q1'SN3X'1\אKfWLאK^3FD C# myDataLayer example=new myDataLayer(); example.OpenConnection(myconnectionstring); example.DeleteEmployee(10); example.DeleteEmployee("Ahmed"); ﻛﻮد VB Dim example As New myDataLayer() example.OpenConnection(myconnectionstring) example.DeleteEmployee(10) example.DeleteEmployee("Ahmed") ﻛﻮد !!!a7!و .7Q1@אONg3א$+. US אد. dll '(مN@אONو ، hא$D'א.5D$אKًא$:FD.و234'אQHN234\אb א7Q1אlWg،(9' .sوCiH'VKT\א¤Hא$نP39bوאsوCbCKFא7אنF 459 Asynchronous Data Access .7 0N\ .'@ אO U h א$D'א. nD hFD i$D KFD 53 NNe 7Q ولRN j אlWS U NH'عدs'3'SW وאDisconnected KVON\א0s'אU4אiH'VNg% 'אPT\אنא03و،XHMא :א\^لאX%،Qא`אlWSUKLאX`NNא9 ،دم7א C# SqlConnection cn = new SqlConnection(); cn.ConnectionString = @"Data Source=(local)\SQLEXPRESS;Integrated Security=SSPI;" + "Initial Catalog=AutoLot;Asynchronous Processing=true"; cn.Open(); ﻛﻮد ﻛﻮد VB Dim cn As New SqlConnection() cn.ConnectionString = "Data Source=(local)\SQLEXPRESS;Integrated Security=SSPI;" + "Initial Catalog=AutoLot;Asynchronous Processing=true" cn.Open() ConnectioString אلU Asynchronous Processing=true 0s' אoQ S g NF. i'1I ولC :وאلא$א53iدO9אnD5QHد. NRbא7Q1אlWg EndExecuteReader()وBeginExecuteReader() EndExecuteNonQuery()وBeginExecuteNonQuery() EndExecuteXmlReader()وBeginExecuteXmlReader() مאو9אB I]C$Nو، EndExecuteReader وBeginExecuteReader nDאنX`N :ً ^3@ 'אنF C# string strSQL = "WaitFor Delay '00:00:05';Select * From Employee_info"; SqlCommand myCommand = new SqlCommand(strSQL, cn); ﻛﻮد VB Dim strSQL As String = "WaitFor Delay '00:00:05';Select * From Employee_info" ﻛﻮد 460 Dim myCommand As New SqlCommand(strSQL, cn) :I$QnDAIChFDWON'م7NNS ﻛﻮد C# IAsyncResult itfAsynch; itfAsynch = myCommand.BeginExecuteReader(CommandBehavior.CloseConnection); ﻛﻮد VB Dim itfAsynch As IAsyncResult itfAsynch = myCommand.BeginExecuteReader(CommandBehavior.CloseConnection) $Q^אWON53zg9אnhFאWONو C# while (!itfAsynch.IsCompleted) { // ً ^3,p3F. q . ﻛﻮد Thread.Sleep(1000); } VB While Not itfAsynch.IsCompleted ' ً ^3,p3F. q . ﻛﻮد Thread.Sleep(1000) End While .S$QtאFאWON'م7Nאن،אولWONאzgאcQאWg!7 אLoop אل53N%INC}אن C# SqlDataReader myDataReader = myCommand.EndExecuteReader(itfAsynch); while (myDataReader.Read()) { MessageBox.Show(myDataReader[0].ToString()); } myDataReader.Close(); ﻛﻮد VB ﻛﻮد 461 Dim myDataReader As SqlDataReader = myCommand.EndExecuteReader(itfAsynch) While myDataReader.Read() MessageBox.Show(myDataReader(0).ToString()) End While myDataReader.Close() Transactions .8 א\^ل،Q'o.'وCQ'نC$9hFא53D'F'د%'وS$Q$,HVI FאlWSoQ .2KFD1KFD53PNאKQ'RאhFDSFאlWkg,א :אKPT 'نPنC$9hא$D'א.UKFאh'א1IאW .1KFDX53H9دو500GR .2KFDXUH9دو500אع$Qאً ^3لV9ع א179^אFאوو_אFאe'nN}،Q'אن$9 نFنאSو fQ3'SوAIدونאgN3 FDאfWوCYFدאFDאQאن$9אW،'ل73 אWg! .roll back nD DBMS hאi$D.(مUhFא53D'F¡אlWSoQ transaction KFNF. ذא .Q'SWONم$DאوQ'SWONQri$وאi$وKP, z ل א5Fs i'د%'\ אSqlTransaction JO אS NQ$ F אlWS 5D وp\ אJOא :K^3ًMQ א.net zCل5FsFאlWS1gNP> AIChJ!¤NS،System.Data.SqlClient lWSUD$אNم$7t אCOM+ h'P303لV9אJOאlWSN:System.EnterpriseServices .Fא . transactionsאلD$h71zN JOאlWSN :System.Transactions .ً MQ אtransaction د¨אل3 153نJOنאSNNPe : WWF وWCF KF 'م7Q Stored ProcedureoQ Q 5D Fg\ אlWg م7 אNP> h א$D'א. ( U n 462 53'عNאאWSUz$אNP>،COMMIT وROLLBACK وTRANSACTION Q5D transactions :NS رابط http://msdn.microsoft.com/en-us/library/ms187844.aspx W وאIDbTransaction interfaceg% א'א1 t אDBTransaction JO אNQ$ ADO.net U :אjوאلא$אnD'd C# public interface IDbTransaction : IDisposable { IDbConnection Connection { get; } IsolationLevel IsolationLevel { get; } void Commit(); void Rollback(); } ﻛﻮد VB Public Interface IDbTransaction Inherits IDisposable ReadOnly Property Connection() As IDbConnection ReadOnly Property IsolationLevel() As IsolationLevel Sub Commit() Sub Rollback() End Interface ﻛﻮد Ug'ع%אQ17ªONt وאSave Si$Q$% دאSqlTransaction אلNoMQ Kא3nDFو אCFא53zא%א¤NS'ن−K3PFאU'ع%لא$Fمאe אUKTOא (א\'دع£\ א− KF)אאnD'dول$% 'د%אضوZ!'אS ،F אlWS1nD^ل3aא :אKPTF'م7IX53KQ' F'م73$NDو C# SqlCommand cmdGet = new SqlCommand("update customers set total=total-" + totalmoney.ToString() + " where ID" + custID.ToString(), cn); cmdSelect.ExecuteNonQuery(); SqlCommand cmdSet = new SqlCommand("update customers set total=total+" + totalmoney.ToString() + " where ID" + SuppID.ToString(), cn); cmdSelect.ExecuteNonQuery(); ﻛﻮد 463 VB Dim cmdGet As New SqlCommand("update customers set total=total-" + totalmoney.ToString() + " where ID" + custID.ToString(), cn) cmdSelect.ExecuteNonQuery() ﻛﻮد Dim cmdSet As New SqlCommand("update customers set total=total+" + totalmoney.ToString() + " where ID" + SuppID.ToString(), cn) cmdSelect.ExecuteNonQuery() N]h אi$D.(مHIولאRNאW،Fא53^אzאo.'Q$.نG وFאlWSU .i,3AIאzq אFgN3i$وאWONQ_'و،.'@אOUYF אWONN C# SqlCommand cmdGet = new SqlCommand("update customers set total=total-" + totalmoney.ToString() + " where ID" + custID.ToString(), cn); SqlCommand cmdSet = new SqlCommand("update customers set total=total+" + totalmoney.ToString() + " where ID" + SuppID.ToString(), cn); SqlTransaction sqltr = null; try { sqltr = sqlCn.BeginTransaction(); cmdGet.Transaction = sqltr; cmdSet.Transaction = sqltr; cmdGet.ExecuteNonQuery(); cmdSet.ExecuteNonQuery(); if (throwEx) { throw new ApplicationException("all operation canceld, some errors occures"); } sqltr.Commit(); } catch (Exception ex) { MessageBox.Show(ex.Message); tx.Rollback(); } } ﻛﻮد VB Dim cmdGet As New SqlCommand("update customers set total=total-" + totalmoney.ToString() + " where ID" + custID.ToString(), cn) ﻛﻮد 464 Dim cmdSet As New SqlCommand("update customers set total=total+" + totalmoney.ToString() + " where ID" + SuppID.ToString(), cn) Dim sqltr As SqlTransaction = Nothing Try sqltr = sqlCn.BeginTransaction() cmdGet.Transaction = sqltr cmdSet.Transaction = sqltr cmdGet.ExecuteNonQuery() cmdSet.ExecuteNonQuery() If throwEx Then Throw New ApplicationException("all operation canceld, some errors occures") End If sqltr.Commit() Catch ex As Exception MessageBox.Show(ex.Message) tx.Rollback() End Try WONאWطوTאUKI$5!]1ICE$d_3و، transaction אلFDz$'م7،(9F throw Exception 3'م7N!]1IאEو$U3C،FSدFDوאYFאWON Commit دא t אh א] א0B zq אK% א53 rollback א$ אzD$ ¤NS 'م7N Catch i,3 N7NQ Wوא .$ .E$d3X% وthrowEx=trueF.K%X%،:و$O!\אא\^لWS {'دN' ^אFאU]1I'د%مو$DU3C،]_ ً ^3 1KFא£3F.אن$`^אن3%' .2KFD1KFD53g7$.£\ א53iد$[אFPאنא$`! ﻣﻼﺣﻈﺔ ولאو$%¤NS'نPiאدUK ،KPTאאWgfVאعوא$Q9'ن(مאPQ5Q$א71Uً .:! IوGRوfbאعو$Qא53 KFDKPlא¡אhFאnD'dول$%53^א 465 اﻟﻮﺿﻊ اﻟﻤﻨﻔﺼﻞ .9 ]TNQ W'אS وconnected layerKV\ א0s' א5D ADO.net N7 U N^Q$V. א7 אNوH دU N:3$7Wא^אzא،ً(Lg! Q$0B prhאi$D.YوNi,31אH i$D. 03 K3 FQ W وאdisconnected layer KVON\ א0s' א1 P3 אS N7 אlWS .hאi$D. i$وאi3h Q$!אK753وhJOא53D'FQ5DiאWאU hא zT א53 و، 234 אY وh אi$D. Y a'ن وPQ DataAdapter KFD Q 5D ذQ .hאi$D.AICi3kH אgDKFאQDataSet . DataColumn وDataRow hNjnD' DataTable 53د$DCnD DataSet 'אل i$D.gOS DataSet !ل،hi$D.03لV9א53א'ع:!مQ90s'אאWS]نW אن7 אWSQgUAICi3g!'دh i$D7لVدونאאQא$אUNوHدKb'אNאWh .7א DataSet اﻟـ.9.1 hQ'[א،−.p3−iאWאU5Pوh$D'א.(مN iH'b5DiHDS DataSet אل$Q$,HVI :SJOאlWkא : אhJOא .i$D7אlWSUאول$ א:DataTableCollection .O+\אولא$אYh. א:DataRelationCollection DataSet .*אلjVI!s9:PropertyCollection :*אjVא 466 .9א:DataSetName ،hQ'RF serialize KFDgQtא7Q1א$Q$:RemotingFormat .l אوXML אوbinary K^3 :وאلא$א AcceptChanges KFD i3IWN3 DataSet אلnDetאh אqא1:AcceptChanges() .hאi$D.k KFD i3 I WN3 DataSet אلnD e t אh Q$ א0B zq א: RejectChanges() .kAcceptChanges DataSet .אلhQ')!3:Clear() h. אولوא$אg!}hאi$D7 structure KPkא¢:Clone() .hא0B !sאKPkא¢:Copy() AcceptChanges KFDi3IWN3 hאi$D7$tאh אq!!א3: GetChanges() .k KFD i3 I WN3 e $. h אq ¤NS אذאF! $Q$ Boolean F. : HasChanges() .9אمAcceptChanges . DataSet i$D23د:Merge() DataSet אل53 XML KP,nDizא7وאP א: WriteXml() وReadXml() : DataSet اﻧﺸﺎء :אKPT 7Qa'دPאQ5D DataSet zTאNP> C# DataSet empDataSet = new DataSet("My Employee"); ﻛﻮد VB Dim empDataSet as DataSet = New DataSet("My Employee") ﻛﻮد 467 g(وgR. DataSet $` Data hאدوאFj.53، .net hدوאCQ5DSzTאNP>وC :אKPTi,3©\א DataTables اﻟﺘﻌﺎﻣﻞ ﻣﻊ.9.2 :S:אbN*وאjVא،i$FDCوf'ObnD ً 79'RWوא9אVN'אSول$א .ول$אKPS¢:Copy() Table .אאلWSnD'dW אDataSet אل:DataSet .ول$אאWk PrimaryKey אل:PrimaryKey .ول$אא:TableName .ول$אאWSgQ'dtאh. א:ParentRelations DataTable اﻧﺸﺎء.9.3 C# DataTable EmployeeTable=new DataTable(); EmployeeTable.PrimaryKey = new DataColumn[] { EmployeeTable.Columns[0] }; ﻛﻮد VB Dim EmployeeTable As New DataTable() ﻛﻮد 468 EmployeeTable.PrimaryKey = New DataColumn() {EmployeeTable.Columns(0)} : DataSet إﻟﻰDataTable اﺿﺎﻓﺔ C# empDataSet.Tables.Add(EmployeeTable); ﻛﻮد VB empDataSet.Tables.Add(EmployeeTable) ﻛﻮد DataColumns اﻟﺘﻌﺎﻣﻞ ﻣﻊ.9.4 KPT DataColumns אل53 D'F !¦نI nN} و، h אi$D. U $'د وאFD JO אlWS K^e :SJOאlWkאh'P\א،h אi$D.KPSnD'dDataTable ob'א bא F7 אnD 'دFאאWSU7אzمא'א$vFא$Q$R AllowDBNull Null F j7 . bI KFD E ^* אjV אlWS $Q$R م$+ و، SQL Server 5D NH دوQא$ U SNRsאو GZ אnDi3K03iدQאHא$73وQא$א17$Q$وbא AutoIncrement AutoIncrementSeed AutoIncrementStep 'دFאא Caption h'ع א DataType 'دFאאWSU'ل7Lא7sאZ!9אF7א DefaultValue 'دFאאWS:0QW אDataTable אل$Q$ Table Primary keyHאP. F7אlWS د'ن$ Unique : : DataColumns اﻧﺸﺎء 9Fg!Fوא9א3C،j7.ًMQوאjHvO3'S Wא.אnD'hi$D.zTضאZON :ول$אאWSUi$FDאKP,'SאWS'نP،i .CnDنQ'd 469 C# DataColumn EmpIDColumn = new DataColumn("ID", typeof(int)); EmpIDColumn.Caption = "Employee ID"; EmpIDColumn.ReadOnly = true; EmpIDColumn.AllowDBNull = false; EmpIDColumn.AutoIncrement=true; EmpIDColumn.AutoIncrementSeed=1; EmpIDColumn.AutoIncrementStep =1; EmpIDColumn.Unique = true; DataColumn EmpNameColumn = new DataColumn("Name", typeof(string)); EmpNameColumn.Caption = "Employee Name"; DataColumn EmpAgeColumn = new DataColumn("Age", typeof(int)); EmpAgeColumn.Caption = "Employee Age"; ﻛﻮد VB Dim EmpIDColumn As New DataColumn("ID", GetType(Integer)) EmpIDColumn.Caption = "Employee ID" EmpIDColumn.[ReadOnly] = True EmpIDColumn.AllowDBNull = False EmpIDColumn.AutoIncrement = True EmpIDColumn.AutoIncrementSeed = 1 EmpIDColumn.AutoIncrementStep = 1 EmpIDColumn.Unique = True Dim EmpNameColumn As New DataColumn("Name", GetType(String)) EmpNameColumn.Caption = "Employee Name" Dim EmpAgeColumn As New DataColumn("Age", GetType(Integer)) EmpAgeColumn.Caption = "Employee Age" ﻛﻮد :אKPT DataTable אلgOM53و C# EmployeeTable.Columns.AddRange(new DataColumn[] { EmpIDColumn, EmpNameColumn , EmpAgeColumn }); ﻛﻮد VB EmployeeTable.Columns.AddRange(New DataColumn() {EmpIDColumn, EmpNameColumn, EmpAgeColumn}) ﻛﻮد 470 DataRows اﻟﻌﻤﻞ ﻣﻊ.9.5 :SJOאlWkjאh'P\א،f'OVא03K3 JOאlWS*§ ob'א bא objectsאل53 array !'OV3KP,nDoVאאWSh! ItemArray oVאאWSnD'dWولא$א Table oVאאWSnDetאh אq א1 AcceptChanges() zD$ אi3I WN3 oVא אWS nD e t אh אq אzqא RejectChanges() g!AcceptChanges() oVאאWSnDKQ$אFD z$ BeginEdit() h Q$אªOوKQ$אFDzgא EndEdit() KQ$אFDzqא CancelEdit() AcceptChanges()zD$א$NDoVאאWSfW Delete() 9 אمnull SKSوoVאאWSU3'دFDF.!\ IsNull() nF\ אenum אل53 gzא. 5P> t وאoV א RowState DataRowState :א7אnD−DataRowState–'dWوא 471 : DataRows اﻧﺸﺎء :]1I]TNQf'1אאWSK^3،i,3 DataRows zTא5P>9 C# DataRow r = new DataRow(); ﻛﻮد VB Dim r As DataRow = new DataRow(); ﻛﻮد . 0s ووDataRow 53 + zT9 א א\^لWS ، ول$ א53+ 53 DataRow zT א53 $ 9 5P .Qא$אU:FNF.Wولא$אGg!f'OVא C# DataRow EmpRow = EmployeeTable.NewRow(); EmpRow["Name"] = "Ahmed Gamal"; EmpRow["Age"] = 22; EmployeeTable.Rows.Add(EmpRow); EmpRow = EmployeeTable.NewRow(); EmpRow[1] = "Ahmed Essawy"; EmpRow[2] = 23; EmployeeTable.Rows.Add(EmpRow); ﻛﻮد VB Dim EmpRow As DataRow = EmployeeTable.NewRow() EmpRow("Name") = "Ahmed Gamal" EmpRow("Age") = 22 EmployeeTable.Rows.Add(EmpRow) EmpRow = EmployeeTable.NewRow() EmpRow(1) = "Ahmed Essawy" EmpRow(2) = 23 EmployeeTable.Rows.Add(EmpRow) ﻛﻮد 3א9'ل7R 'لb'אg!אوLאنאF،j7. :ً (אID K7Lא0M_N( א9' . Index אل.4!^א وﻣﻌﺮﻓﺔ اﻟﺼﻔﻮفDataSet ﻣﻌﺮﻓﺔ ﻛﻞ اﻟﺠﺪاول ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت: ﻣﺜﺎل ﺷﺎﻣﻞ:واﻷﻋﻤﺪة 472 C# Text1.Text=""; foreach (DataTable dt in empDataSet.Tables) { Text1.Text+=dt.TableName + ":\n\r"; for (int curCol = 0; curCol < dt.Columns.Count; curCol++) { Text1.Text+= (curCol+1).ToString() + dt.Columns[curCol].ColumnName+"\n\r"; } Text1.Text="Rows: \n\r"; for (int curRow = 0; curRow < dt.Rows.Count; curRow++) { for (int curCol = 0; curCol < dt.Columns.Count; curCol++) { Text1.Text+= dt.Rows[curRow][curCol].ToString() + " - "; } } } ﻛﻮد ﻛﻮد VB Text1.Text = "" For Each dt As DataTable In empDataSet.Tables Text1.Text += dt.TableName + ":" & Chr(10) & "" & Chr(13) & "" For curCol As Integer = 0 To dt.Columns.Count - 1 Text1.Text += (curCol + 1).ToString() + dt.Columns(curCol).ColumnName + "" & Chr(10) & "" & Chr(13) & "" Next Text1.Text = "Rows: " & Chr(10) & "" & Chr(13) & "" For curRow As Integer = 0 To dt.Rows.Count - 1 For curCol As Integer = 0 To dt.Columns.Count - 1 Text1.Text += dt.Rows(curRow)(curCol).ToString() + " - " Next Next Next ﻟﻘﺮاءة اﻟﺒﻴﺎﻧﺎت ﻣﻦDataTableReader اﺳﺘﺨﺪام.9.7 DataTable C# Text1.Text=""; DataTableReader dtReader = dt.CreateDataReader(); ﻛﻮد 473 while (dtReader.Read()) { for (int i = 0; i < dtReader.FieldCount; i++) { Text1.Text+= dtReader.GetValue(i).ToString(); } } VB Text1.Text = "" Dim dtReader As DataTableReader = dt.CreateDataReader() While dtReader.Read() For i As Integer = 0 To dtReader.FieldCount - 1 Text1.Text += dtReader.GetValue(i).ToString() Next End While ﻛﻮد XML إﻟﻰSerializing ﻋﻤﻞ .10 C# EmpDataSet.WriteXml("Employee.xml"); ﻛﻮد VB EmpDataSet.WriteXml("Employee.xml") ﻛﻮد :@PوאC C# EmpDataSet.ReadXml("Employee.xml"); ﻛﻮد VB EmpDataSet.ReadXml("Employee.xml") ﻛﻮد :ً Q7KPTאאWg Employee.xml o\א2'نP ﻛﻮد <?xml version="1.0" standalone="yes"?> <Employee_XML> 474 <Employee> <ID>1</ID> <Name>Ahmed Gamal</Name> <Age>22</Age> </Employee> <Employee> <ID>2</ID> <Name>Ahmed Essawy</Name> <Age>23</Age> </Employee> </Employee_XML> DataGrid اﺳﺘﺨﺪام ال .11 DataGridView iאدאGR'SD3K،YO&'\ولא$%:!Ns ً وو7lzTNF.WאNDوT3U :אKPTi'د%'\ אhאدوא5Fs53 New !s אHI . ، Choose DataSource Q 5D H$V\ h אi$D. aH 'S ND 3 K .Nbאh אi$D.HI'م753 وDataBase !sא،©\א0.و،DataSource ﻣﻼﺣﻈﺔ وאض אلDataSource KF 'م. אConnectionString אل5D r א53 9 ً $ i אدU gjq 'م.א،ConnectionString t مא9אBوCول$אHI¤4§,, g(،سH'א$אHIbא,Tאzgא$ X`N9^ل3Uو،YO&'\ولא$%'S وi,3ول$%HIאX`N ،ول$אUg(نCk'د . א مBHIא 475 :אWSK^3ًJ,2N'نאP .ول$א53!s9وאKQ$bOאאNP> 01 =אول9אktאA'hضאDQ9rRط,1N،ًא$% a KQ$X`Nאن א مB G א53 وAdd Query ZI אdataGrid אل53 ، * 03 U 'د%'\א אول א : 476 :2jNא$S,وQgNאn9אX%،אKPTnDאU,,H'g& ª ؟KאWPS53Kgא$%'Q KS DataAdapter اﺳﺘﺨﺪام .12 :لאPT DataAdapter oQ.،i$Q$, C# string connectionString = @"Data Source=AHMED-PC\SQLEXPRESS;Initial Catalog=Employee;Integrated Security=True;Pooling=False"; ﻛﻮد DataSet ds = new DataSet("Employee"); SqlDataAdapter dAdapt = new SqlDataAdapter("Select * From Employee_info", connectionString); dAdapt.Fill(ds, "Employee_info"); ﻛﻮد VB Dim connectionString As String = "Data Source=AHMED-PC\SQLEXPRESS;Initial Catalog=Employee;Integrated Security=True;Pooling=False" Dim ds As New DataSet("Employee") Dim dAdapt As New SqlDataAdapter("Select * From Employee_info", connectionString) dAdapt.Fill(ds, "Employee_info") 477 اﻟﺒﺎب 18 LINQ .O+\אhא$D'א.03g3gNi\אlWS،LINQ03AICi3'دN 478 479 ﻣﻘﺪﻣﺔ .1 Language Integrated N7nDfNHو$אz%، ADO.net _DUط7NאnDN!אن$ سHدUNOאFf$g!'وPQ3 53i$Q$%N7Sو، LINQ ًאHVIאfQ3 אوQuery B $' ذos א، 'Q !`'אل 'دJ لI 53 g! PR א5P> Q'. h3 אzN o3وC XML File وChi$D.نz'א:3K3Wאhא$D'א.H$V3 D'5PFg3 م9א .:! IوCKאo3 אوV :Sgjא%C nDfولאRNjHא'אعE LINQ K LINQ to SQL −1 LINQ to XML −2 LINQ to Objects−3 U lN, Wض א\^ل אZON ، Array 'ع53 q3 i,3 م9 אS م9'אع אC aC :אKPTوسHدi$DK. LINQ N3$73 ﻛﻮد from d in developers where d.Language =="C#" select d.Name; : אKPTgPNt مא9אBgOSlWS ﻛﻮد select name from developers where language=’C#’ nDg71 NP3Hb K،gDlWS م9אBWONhi$D.'د%' ج$_אن5Pو :אKPT!'OV3 480 C# public class Developer { public string Name; public string Language; } Developer[] developers = new Developer[] { new Developer { Name = " Ahmed", Language="C#" }, new Developer { Name="Khaled", Language="Java", new Developer { Name="Ali", Languag="C++"} }; ﻛﻮد ﻛﻮد VB Public Class Developer Public Name As String Public Language As String End Class Dim developers As Developer() = new With { New Developer { .Name = " Ahmed", .Language="C#" }, New Developer { .Name="Khaled", .Language="Java", New Developer { .Name="Ali", .Languag="C++"} } :אKPT1 א مBGP 53و C# IEnumerable<string> LINQresult = from d in developers where d.Language =="C#" select d.Name; ﻛﻮد VB Dim LINQresult As IEnumerable(Of String) = From d In developers Where d.Language ="C#" Select d.Name ﻛﻮد :אKPT2NאDKPP3bCو C# foreach ( string s in LINQresult ) { MessageBox.Show(s); } ﻛﻮد 481 VB For Each s As String In LINQresult MessageBox.Show(s) Next ﻛﻮد ج93د3RRbF`! ،:3$Dאو7אh 3\א53K33אمא$+אNP>ª F :طTא C# IEnumerable<string> LINQresult = from d in developers select d.Name; ﻛﻮد VB Dim LINQresult As IEnumerable(Of String) = From d in developers Select d.Name ﻛﻮد :אKPT'ل1 دאאK^3طTא5FsQدD.netאمدא$+ًאMQאNP>F C# IEnumerable<string> LINQresult = from d in developers where d.Name.Length > 3 select d.Name orderby d.Name; ﻛﻮد VB Dim LINQresult As IEnumerable(Of String) = From d in developers Where d.Name.Length > 3 Select d.Name Orderby d.Name ﻛﻮد : ﺗﺮﺗﻴﺐ ﺟﻤﻞ اﻻﺳﺘﻌﻼم S'نP Select م$+ LINQUNNPو، Select From Where GnD م9 אKBU'د `'אلO אnD $F 'د אنN אIntelliSense fQ 3 'S KP G א، ً Fj دאi Iא 482 `'אلO א01Q 5! From K. Select N ' F! ، N H'g( אgNP> t אi$FD אN g( 'Q'د .$:N3C7نC$Qول$%אfQ9:i'د%'\אhאHא$Q$U$D3 'Q'د :3P مא9אB ﻛﻮد from id in source { from id in source / Join id in source on expr equals expr [into id] | Let id = expr | Where condition | Orderby ordering, ordering, … [Ascending | Descending] } Select expr | Group expr by key [into id query] …אz,وسنH$אlWSUNFD لIgDfN،a7!U3אqVאlWS0s LINQ دوال .2 53D'F¡אlWShو,و3nD fولאنאRN،OO& دوאوو51nD LINQ' .NوH لدIgN3ًMم$+Ntوאلوא$א ob'א א$א وCgsوCم.HCi$D0Bً ^3،LאhFHP\א1 Aggregate :א\^لא،FDC int product=ints.Aggregate(1, (a,b)=> a* b ); .م.Hא53!'OV3SintsنC KS!3'دCً ^3ضZON،KPאnDط,1A$3!\ All :9مCY%و3YO&'\אK bool isMarried=employees.All(emp=>emp.statues==1); a7!$'نوאURRbF.$g!،7@אPDnD Any 483 :אא\^لWS،طTא7dD'F¡א53K.אnD bool isMarried=employees.Any(emp = > employees.statues==1); :אא\^لWS،7א53D'F¡a'\א Average double avg=ints.Average(); .م.Hא53D'FSintsنC :אא\^لWS،د$)'عbNא53D'FKQ'R Cast var newString=ints.Cast<string>(); .م.Hא53D'FSintsنC : query2 ` و: query1 NQ$ ^ ً ' نF! ، 5QVND 23$ Concat :א3אمא$+א5P>gو'ددAIC` var result=query1.Concat(query2); $F): אo&'35DRً ^3،!'OV3KIدאRم$+ Contains :א1אGP bool find=employees.Contains(new employee(“Mohammed”); .دDQueryQ5DذKF:gT3Sو :5PQ3ًQCوC!'OV\אbNDد$DوCא م2j$'م7Q Int count = employees.Count(); :ksאZ!אF.0s!وH!F.¤NSذא Count DefualtIfEmpty var result=ints.DefualtIfEmpty(100); ً ^3 ، h'ع אN sאZ!9 אF7 א0s ! وS$Q$ Q _ ' .Objectnull'صوVN""مو.H Ob :ً ^3،hאHאPCون$hאiدD'م7Q Distinct var pure=query.Distinct(); :ً ^3،Y3نP3UF7אiدD'م7Q ElementAt Employee newemp=query.ElementAt(4); ` אنYU 4.HGP$.Cא\^لאU(9' ElementAtOrDefualt U :C אF א4§ אW ، ً bC f'Ob 0HC $ _ א م وCJOsאZ!9א7:NDs9אQ'د%'3 .'نא :h'عאN Employee newemp=query.ElementAtOrDefualt(4); :ً ^3אKPT،bNא53H!D'F'مج7Q Var newresult=System.Query.Sequence.Empty<employee Empty 484 >(); :ن713FgC53$]א موאt`YH7\א EqualAll bool iseuql=query1.EqualAll(query2); D'F¡אUi'د%'\א7عא%ZوאbNא53YD'FH73 Except :^אD'F¡אU'نPنCאودون var result=query1.Except(query2); ...hאHאPون$'نP2Nא :D'F¡אUVNDولCiدD'م7Q First employee firstone=employees.First(); .H!lWSbNאD'F'نP9نC$9*** ولCiدD!،D!א مUVNDولC$QنCًMQC5P>F :وج3o&'3 employee firstone=employees.First(emp => emp.ismarried==1); م9وאCH!D'F¡'نאU:Cא$D3אK^3 FirstOrDefault :sאZ!9אF7א$QنC`N$Q_DOא employee firstone=employees.FirstOrDefault(emp => emp.ismarried==1); AggregateאلK^3 Sql אلU1אGroupByK^3،$Q$RאGbNא0F{ Fold GroupBy :אא\^لWS،Statement var newGroup=employees.GroupBy(emp => emp.Countery); .bאlWS4D:'لb'א5P>وkeynFQو .JoinאلFD GroupJoin :a7!YD'F¡ אUi'د%'\אbNא،YD'F07 Intersect var inter=query1.Intersect(query2); .Sql StatementsUinnerjoinאلFD Join :VNDI$gNPوFirstK^3 Last Employee lastone=employees.Last(); Employee lastone=employees.Last(emp => emp.Countery==”Egypt”); م9وאCH!D'F¡'نאU:Cא$D3אK^3 LastOrDefault 485 :sאZ!9אF7א$QنC`N$Q_DOא employee firstone=employees.LastOrDefault(emp => emp.ismarried==1); :אא\^لWSLong'عNא53'نPQ2Nא5PوCountK^3 LongCount long empCount=employees.LongCount(); :D'F¡אUF.VND4C Max int num=ints.Max(); وسHدUNFFhJOאYhH7\\!א7Q$Q$5P>و 7 :D'F¡אUF.VNDqbא Min int num=ints.Min(); وسHدUNFFhJOאYhH7\\!א7Q$Q$5P>و 7 a7!intאلbNאجא+9،a7!Y3'ع53bNאجא+א OfType :GPً ^3 var newResult=list.OfType<int>(); :^لF'دPאאWS(ًQ$DV)N37QG2jNאGZ OrderyBy Var orderlist=employees.OrderBy(emp => emp.Age); :אא\^لWS،زNiH'V5PوGZא OrderyByDescending Var orderlist=employees. OrderyByDescending (emp => emp.ID); :YN35Q$YRRVمא.Hא53D'F$' Range var newlist=System.Query.Sequence.Range(1,5); :hא3@¾"1".HHאPً ^3،hא3i$DY3.HHאP Repeat var list=System.Query.Sequence.Repeat(1,5); :D'FCG@PD Reverse Var revList=list.Reverse(); :KPא5DQنC5P>،QאدRאB Select var newSelect=list.Select( emp => emp); a7!N3zא%CوC var newSelect=employees.Select( emp => new {emp.Name , emp.Age}); ،a7!ًא$ًوאOb'نPQ52N!¦نאGroupلN3א$+אU :אKPTSelectManyم$+W var newSelect=groupedlist.Select( l => l); SelectMany 486 :l nDD'F¡'א9CطTa7!i$وאF.iدDא Var result=query.Single(); C'د%مو$DUsאZ!9אF7א$Q:Cא$D@אO Single SingleOrDefault :bND Var result=query.SingleOrDefault(); bND10ولC^ ً`وز3،.אiدDوאbNא53د$D{وز Skip :7אiدDوא var newResult=query1.Skip(10); ً ^35PوY3ط,7nbNאKS`Q:NPאوK^3 SkipWhile :100אل$3.H{وز var newResult=query1.SkipWhile(x => x < 100); :D'F.0B Sum :Qא$א53Y3د$bNDع%Z'م7Q Take Double sum=ints.Sum(); var top=ints.Take(3); .Hא®دnع%Z9^ ًא3،3ط,Eو$nbNDع%Zא TakeWhile :100534א var top=ints.TakeWhile(x => x < 100); nDzNGZGZ'دאصPאUً ^3،hQ'אو$Q$R ThenBy :ً ^3G\אnDFא var orderemp=employees.OrderBy(emp => emp.Age ThenBy emp => emp.Salary); :ًزN'نPQf'i\אlWSGZنאCא$D3@אO var orderemp=employees.OrderBy(emp => emp.Age ThenByDesecnding emp => emp.Salary); :!'OV3KQ' ThenByDesecnding ToArray Employee[] emps=query.ToArray(); .אدjN!'OV3UgNQ§035P@אوO ToDictionary List<T>5jUgNQ§ ToList Lookup<K, V>5jU2Nא5Q§ ToLookup UhsHאPT3Kd03Sequence2NאKQ' ToSequence .'ل7LאzCوאلو$אYzא KKFTD'FnD2N'אd،sQدא9אFD :YD'F¡אbND Union 487 var result=query1.Union(query2); .QطאدTRאB Where ﻣﻼﺣﻈﺔ :aאאאWS53:FNP>،(LINQC$)X53אzאUً^ אh$Oא http://www.vb4arab.com/vb/uploaded/2730/11202261862.pdf : اﻟﻤﺘﻐﻴﺮات ﻏﻴﺮ اﻟﻤﻌﺮﻓﺔ: * ﺗﺬﻛﻴﺮ ﺳﺮﻳﻊ N7$j !'א53i$وאSlWS،K.53gOQ7_J!g!2N'نאPQא مBKF 'م7ًא :^لF FאlWS،ً7g,tאImplicitly Typed Local Variables ﻛﻮد var subset = from i in numbers where i < 10 select i; : LINQ ﻣﻊLambda Expressions اﺳﺘﺨﺪام: * ﺗﺬﻛﻴﺮ آﺧﺮ 7Q1 LINQ א م53ً9$ Lambda Expressions دא39hאم א$+אhD1نCW .Qאد LINQ TO DATASET .3 i$%17KPg!אW،iאWאUhאi$D.53+وCiH'bKPT NOאF dataset אل .Nb אLINQ h3 אgDم$+N hאnD'لVL وאDataTable~g1H53 وDataSetאم$+hi$D.aHX`Nً ^F! :gN3 C# DataSet ds = LoadDataSetSomeway(); ﻛﻮد 488 DataTable employees = ds.Tables["Employee"]; var query = from emp in employees.AsEnumerable() where emp.Field<Long>( "Age" ).Year >= 40 select emp; VB Dim ds As DataSet = LoadDataSetSomeway() Dim employees As DataTable = ds.Tables("Employee") ﻛﻮد Dim query = From emp In employees.AsEnumerable() Where emp.Field<Long>( "Age" ).Year >= 40 Select emp; LINQ TO XML .4 53I'عC03g3K^3 XML03K3 LINQو،ًD',h^زنאC$C אنXMLRbC .Q'gDfNtوאa7!XMLX*§t!אs*אjV!אsא،hא$D'א. :אKPTh`N\אnD'dXMLo3NsZ!^ ً'אF! ﻛﻮد <?xml version="1.0"?> <Items> <Item Number="122"> <ItemName>Item1</ItemName> <Quantity>100</Quantity> <Price>23</Price> </Item> <Item Number="123"> <ItemName>Item2</ItemName> <Quantity>10</Quantity> <Price>14.5</Price> </Item> <Item Number="124"> <ItemName>Item3</ItemName> <Quantity>31</Quantity> 489 <Price>1000</Price> </Item> <Item Number="125"> <ItemName>Item4</ItemName> <Quantity>22</Quantity> <Price>97</Price> </Item> </Items> </Items> :אKPTXMLאلo\LoadKF'م7NQא$ ﻛﻮد C# XElement purchaseOrder = XElement.Load("Items.xml", LoadOptions.SetBaseUri | LoadOptions.SetLineInfo); VB Dim purchaseOrder As XElement = XElement.Load("Items.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo) ﻛﻮد :אKPT:PW'دאP'نאP،NQ$i'د%'\אfNbאD'F'دאאضNCNsZ!'א،אن C# var newSearch = from item in Items.<Item> select item.@Number ﻛﻮد VB Dim newSearch = From item In Items.<Item> Select item.@Number ﻛﻮد ^ ً؟3H9دو100534CStאD'F¡אnDH'^و C# var newSearch = from item In Items.<Item> where item.<Price>.Value > 100 select item.@Number ﻛﻮد 490 VB Dim newSearch = From item In Items.<Item> Where item.<Price>.Value > 100 Select item.@Number ﻛﻮد LINQ TO SQL .5 gDfولאRNو3א$+א^אS iאدU، SQL Server D$ًVVIg%'3 LINQ hJ!53J! .سH$אאWSUًQ : اﻟﺒﺤﺚ واﻻﺳﺘﻌﻼم $QQ 5QWص א+, i$Q$% J! KP, nD ج+ א¢QH و9 אiدD9 ً ^3 א א\^لWS ، ً 7 :D N! :V3U'نN17Q وN305DSFD C# var query = from c in Employee where c.Age > 30 && c.Countery == "Egypt" select new { c.Name, c.GraduationDate}; ﻛﻮد VB Dim query = from c in Employee Where c.Age > 30 And c.Countery = "Egypt" Select New { c.Name, c.GraduationDate}; ﻛﻮد : Stored Procedures اﺳﺘﺪﻋﺎء `'אلO אg 'م7Q 3 S و، Attributes @ אلO k Procedure :T دאoQ a7! 'S D 3 K : ( $ وאq3K7Q)א مKPTאאWg3C'S D3Kאن،ًsאZ!'אQ'د 491 C# var c = db.ProceduresName("Egypt"); ﻛﻮد VB Dim c = db.ProceduresName("Egypt") ﻛﻮد : Compiled Query 53 fQ h א$D'א. (مK% 71N\ א53 @! hא3 i$ g3$+ א مB ¤NS ذא ن hذאNم$7 LINQ ً MQC،17NאlWkKLאh א$D'א.(N!'אW،i3K م9אnD$Q$% . Compiled Query nFQ34DQ(Nא Compile KF CompiledQuery.Compileאمدא$+אnD$F Compiled Query אلiP! :^لFאKPTא، م9אF C# var c = CompiledQuery.Compile( ( DataContext context, string counteryName, int age) => from c in Employee where c.Age > age && c.Countery == counteryName select new { c.CustomerID, c.CompanyName, c.City } ); ﻛﻮد VB Dim c = CompiledQuery.Compile( ( DataContext context, string counteryName, int age) => From c in Employee Where c.Age > age And c.Countery = counteryName select New { c.CustomerID, c.CompanyName, c.City } ) ﻛﻮد KFD W م א9 אU R وא، a7! Z3H אq i3 53 ^ g3א$+ { אNP> وאن ::Compile 492 C# foreach ( var row in query(dc, "Egypt",22)) {} foreach ( var row in query(dc, "USA",28)) {} foreach ( var row in query(dc, "Saudi",38)) {} ﻛﻮد VB For Each row As var In query(dc, "Egypt", 22) Next For Each row As var In query(dc, "USA", 28) Next For Each row As var In query(dc, "Saudi", 38) Next ﻛﻮد : اﺳﺘﺨﺪام دوال ﻓﻲ ﺟﻤﻠﺔ اﻻﺳﺘﻌﻼم : مא9אBNs! ' ﻛﻮد SQL Server SELECT SUM( emp.salary ) AS TotalSalary FROM Employee emp Join Department dem ON emp.DepartmentID = dep.ID Group By dep.ID :אKPT LINQ KPTg 01 C# var c = from emp in db.Employee join dep in db.Department on emp.DepartmentID equals dep.ID into TotalSalary select TotalSalary.Sum( emp => emp.Salary ); ﻛﻮد VB Dim c = From emp In db.Employee Join dep In db.Department On emp.DepartmentID Equals dep.ID Into TotalSalary Select TotalSalary.Sum( emp => emp.Salary ); ﻛﻮد 493 : LINQ اﺳﺘﺨﺪام ﺟﻤﻞ اﻻﺳﺘﻌﻼم داﺧﻞ nD، PIVOT 3אK^3Q$7 مא9 אKBhא53i$אموא$+9ًאًא1M3O${$. : LINQ אلKI دאSQLBWONאمqVאSlWSK : - 'ل7N3^ل3 ﻛﻮد C# var query = db.ExecuteQuery<EmployeeInfo>(@" With EmployeeHierarchy (EmployeeID, LastName, FirstName, ReportsTo, HierachyLevel) AS ( SELECT EmployeeID, LastName, ForstName, ReportsTo, 1 as HierarchyLevel FROM Employees WHERE ReportsTo IS NULL UNION ALL SELECT e.EmployeeID, e.LastName, e.FirstName, e.ReportsTo, eh.HierarchyLevel + 1 AS HierarchyLevel FROM Emplyees e INNER JOIN EmployeeHierarchy eh ON e.ReportsTo = eh.EmplyeeID ) SELECT * FROM EmployeeHierarchy ORDER BY HierarvhyLevel, LastName, FirstName" ); : LINQ ﻓﻲInseret اﺳﺘﺨﺪام C# var NewEmp = new Employee { [First Name] = "Ahmed", Age = 25, Countery="Egypt"}; db.Employee.Add( NewEmp ); ﻛﻮد ﻛﻮد VB Dim NewEmp = New With { .[First Name] = "Ahmed", .Age = 25, .Countery="Egypt"} db.Employee.Add( NewEmp ) .V353وN25Fو$"C $Q$%o&'3!sNF.א\^لאU : Update اﺳﺘﺨﺪام C# var EditEmp = db.Employee.Single ( c => c.Countery == "Egypt" ); EditEmp.Age = 30; ﻛﻮد 494 VB Dim EditEmp = db.Employee.Single ( c => c.Countery == "Egypt" ) ﻛﻮد EditEmp.Age = 30 .N30VV3 53ص+,9אKFKQ$NF.א\^لאU : Delete اﺳﺘﺨﺪام C# var deleteEmp = db.Employee.Single ( c => c.Age > 50 ); db.Employee.Remove( deleteEmp ); ﻛﻮد VB Dim deleteEmp = db.Employee.Single ( c => c.Age > 50 ) ﻛﻮد db.Employee.Remove( deleteEmp ) .N505DSHFDא$Q5QW אYO&'\אfWrNF.א\^لאU SubmitChanges .6 h אqאKO db.SubmitChanges()א$אzD$א53$ 9KQ$وאCfWRوC!s FDא$ .hאi$D.U :اﻟﺘﺤﺪﻳﺚ ﺑﺎﻟﺘﺰاﻣﻦ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت W وאChangeConflictExeption5jP א:$`אW،KV\و@אKVON\א0s'K3 LINQ *אل KPT]1אHאאض5P>،Y3$+3i$DYh אi$D.nDKQ$אhFDضH5D2NQ :א 495 C# try { Db2.SubmitChanges(); break; } catch ( ChangeConflictExeption ex) { MessageBox.Show( ex.Message ); Db2.Refresh( somequery, RefreshMode.KeepChanges ); } ﻛﻮد VB Try Db2.SubmitChanges() Exit Try Catch ex As ChangeConflictExeption MessageBox.Show(ex.Message) Db2.Refresh(somequery, RefreshMode.KeepChanges) End Try ﻛﻮد .AICi3 Refresh 3C03 ولd]و1אHg(Q01Q_'،WON مא9ولאdNS :אKPTאK^3ضHEو$U234 א¤'$Q$ SubmitChanges 3אUًMQא5P> C# Db.SubmitChanges(ConflictMode.FailOnFirstConflict); Db.SubmitChanges(ConflictMode.ContinueOnConflict); ﻛﻮد VB Db.SubmitChanges(ConflictMode.FailOnFirstConflict) Db.SubmitChanges(ConflictMode.ContinueOnConflict) ﻛﻮد .5QVNא5QWSnDA''9t وאConflictMode JOא53وذ 496 ﻣﻦ ﺧﻼل اﻟﻔﻴﺠﻮال ﺳﺘﻮدﻳﻮLINQ TO SQL اﻧﺸﺎء ﻓﺌﺎت .7 ,T א53، ً 79 g PR אNP> LINQ TO SQL Classes zT א53 2008'Q`'אل 'دO אNP> :אو .אW، Server Explorer אل53hi$D.GRאوi$Q$%אول$%وh. DzTאNP>،lHI א$ :אمאKPT א$`،אول$אGRz$.وNbאhאi$D.O N ' Data Access Layer -zT אU $D} م. 'Q`'אل 'دO אن אª KP אن :ً ^3وאلא$hOQ$`،−SW 497 C# partial void InsertEmployee_info(Employee_info instance); partial void UpdateEmployee_info(Employee_info instance); partial void DeleteEmployee_info(Employee_info instance); ﻛﻮد VB Private Partial Sub InsertEmployee_info(ByVal instance As Employee_info) ﻛﻮد End Sub Private Partial Sub UpdateEmployee_info(ByVal instance As Employee_info) End Sub Private Partial Sub DeleteEmployee_info(ByVal instance As Employee_info) End Sub }H3$F)س$Ng\אXP! LINQ5D$Q\!א3'دN'، LINQXאصKVOאgCنCK. :aאאאWSnDl${،אא¡لWSUi$%Qא$ًN3'نPQ رابط http://www.vbcoffee.net/SamerSelo/linqcourseebook.pdf 498 499 اﻟﺒﺎب 19 WWF 500 501 ، WWF ًאHVI אfQ وWindows Workflow Foundation ~nFQ3!s א.net 3.0 Hא$b9אWN3 نhF אو אworkflow ~ אWON و.א3 وiH دאF API وאل$م وאg\ א53 D'F Sو . BZאRb viusal אلKIدאg!sאetאh4א$Ng\*jVא0O א53i$وאbאlWS$ً .i,3OאWONوאC'دPא03 workflows אل23ندP39 bאstudio 53234'ن אPQ،gDzN234אKPTQtאhFאD'FS Workflow אوאلWF אل مg\א53D'FnDSHو$ 't وאBusiness Process אل53אgM0313D'F .Q'KFtאوאgMYوgNVאhذא : ﻣﺜﺎل hאi$D.nD Check KFDو:F.HلIلوאدVQ9אGnD234א אWS'd:2N\Vא3$I .bلVQאDVא3$IQ$7l'د% و53$] i$D 53 'نPQ 234 وאtasks nF Iא$ אbN وאBusiness Process nF g F אlWS .Business Process 'دPً7ًوHא13gאNSi\ א5Pو، Workflow אلiאدא3$Iم$7tא23א4א53$Q$א¤NS KQ$א:P3ذאosא،h$%نوz1Iא0 وi$ nDi$وאKP trace KFD5P>r .Q'وgA4P אhjאUً79 WFﻣﻜﻮﻧﺎت واﺳﺎﺳﻴﺎت .1 hאHאP وאTאKF!אW، visio K^3Rs'h3'Hدa7!@وWONK.'دS WF אل .ً !SWONQ WF אلUi'د%'\א:! Iو .net .Kh'P3]نא,g],:! I وassemblies وnamespaces nD' WF !لGאאWkو 502 : Workflow Activity gNل79وאaKj'وQ`'אل'دOאNQ وActivities KP,nDN אصKFאob'Q :N3h'א1I KP,nDSWONQאوY3 Invoke 'لVوCiZO delay وC if else K^3אYو WF اﻟﺒﺪأ ﻣﻊ .1.1 : Empty WorkflowZI אWorkflow وعT\'عאK%א،$Q$% وعT3zT. hא$ t'אعאوא !sא،bIh7NאnD'd9غH!وعT3: Empty Workflow :h4אFV_D Sequential Workflow .1.2 KP, nD :! KF אs' Q ، N אصUML אلs' t אDiagrams א'אع אل53 'ع אولNא :ً 3א$+وא^אg,'عאN'אS و،hFאK3PאمKPTאs'37 3hFD 503 State Machine Workflow .1.3 :h אqوאh1א53D'F Q5DEא$g3^אg 504 WWF ﺗﻄﺒﻴﻖ .2 Hא\وF'نU،Hא\وFلIمאد$+\א53G1 'م7N،a1KF'مאن7N .AICi3Hא\وFلIد9א[وiدDא9وGH'م ض7f'RRb g( ، $Q F : وSequential Workflow Console Application $Q$% وعT3 z$ . אW :Qא$אKPTFV\א,, : codeActivity1_ExecuteCodeE$LאUא3א0MN وCode Activity אجH'مد7N אن C# private void codeActivity1_ExecuteCode(object sender, EventArgs e) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("***** First WPF Example *****\n\n"); Console.ForegroundColor = ConsoleColor.White; } ﻛﻮد 505 ﻛﻮد VB Private Sub codeActivity1_ExecuteCode(ByVal sender As Object, ByVal e As EventArgs) Console.ForegroundColor = ConsoleColor.Yellow Console.WriteLine("***** First WPF Example *****" & Chr(10) & "" & Chr(10) & "") Console.ForegroundColor = ConsoleColor.White End Sub While GR.אW،RRbHو3FلI د9אgN3אوجQ9QHאP7!sאSאi'1א :nDzN3א:N3ج+W אCondition אل$Q$R'م7Nو،Loop وC o.' false $ وLoop K 03 gjD$ אQ r Boolean 71N3 F7 'دfunction دא .HאF true .bIBQ5D אdeclarative rule condition nD zN אو$F!אلpאiدD9אFאU True N$t وאAskAgain دאfNאWSN^3U .RRVאאFP'لb'אU false N Hא\وFPbIoQ$−אKPT Condition طTאUא$ אאGאא,Tא53אW - :9 ً אو :א$و'د א C# public string Password { get; set; } private void AskAgain(object sender, ConditionalEventArgs e) { Console.Write("Enter Password: "); Password = Console.ReadLine(); if (Password == "Ahmed Gamal") ﻛﻮد 506 e.Result = false; else e.Result = true; } VB Public Property Password() As String Get End Get Set End Set End Property Private Sub AskAgain(ByVal sender As Object, ByVal e As ConditionalEventArgs) Console.Write("Enter Password: ") Password = Console.ReadLine() If Password = "Ahmed Gamal" Then e.Result = False Else e.Result = True End If End Sub ﻛﻮد This FDg!،RRbHو3FلI אدQ_'F! Activity !sאSi IאN'1Iאن :g!'دPאאWS0s وActivity GR .אW،Password is Wrong C# private void codeActivity2_ExecuteCode(object sender, EventArgs e) { Console.WriteLine("This Password is Wrong..."); } ﻛﻮد ﻛﻮد VB Private Sub codeActivity2_ExecuteCode(ByVal sender As Object, ByVal e As EventArgs) Console.WriteLine("This Password is Wrong...") End Sub :אKPT Sequential WF KK3PאKPT'نאPאWPS 507 :2jN א,,و a'لI (مدUلL' אSFًא$%$73'لI(مدnD:715P> WF אאلWSK^3אنª9*** KgUً^ א$OQ3'SوRsوא3אiH'Vא5P،FgN3KP'دP אhQ')f Iא03KPk@אO، . Debug وאلtrace אلhF!s'دאPאhQ') g!وizא. WF Code Liabrary .3 a7!@ وWindows Forms 03وC ASP.net 03KFא:NP> WF zTאNP3bאD'NאlWSU .I1אUg3א$+א53 و.dll o3gQ' ،Console 508 509 اﻟﺒﺎب WCF 20 510 511 h71g%'3i$Q$%N7g¦ذXPא013U .net_DUi$Q$אhN7Ns لאאI53 ًאz$i$Q$אhN7אل$אgCًNFsوذ،:! IوDא\'زh71وאChPTאnDKFtא .Sockets~zgوאWinsock53 .Qא$אWN3Web Services_DnDQi(NWCF_z$אK.و Web Service .1 K nD وC .net 23 א5D iHD S Web Service אgD 1Q 3 وC GQ وh3$I ً j$3 Interface אمو$+9אg%وאSg%'אNS'دV7\)אg% وאk@gNP وASP.net g!$Q$Rא G`Q Request GوC3CQ،Y3 Interface 1'אk'لb''نא3$+\ א01Q( و 23א4אYQ 3gFgOوCgFgOQ نC53ptوאXML ¿ Q3nDًدאFD אhttp protocol Q5Dk .3Zא0.'א3وig%وא 235DiHDGQو3$+!، AIC7Q1'عs'\אgOولאنRNو3$7\אوאoQאnNNوאن ، h3'\ אlWg 3$ א:D د53 و:N3 h3'\ אG و:دאN} م$+\'م א7Q g%ون وא$ N3NQ$3U@71אgN3G1،@71bאGQوh3$I SWh71אg,C53$ووא nD i'د%'3 'نP gC !sאم א$+ אg% وאk 'نPQ نC ذK و، ً ^3 iHאL א%H$ 'د .Zא 53א0BU23א4א0BنCcQ3 ،hאK^FHF XML nD$FGQوh3$+!NOCFو .4אqوCKqT(مא5D (NאqgFg!وg3K3אnDiHد. 'عNאאWSD$QنC$9ZאnDgOMW!¦نא !א، ً 7NOCF23אh3$نאC}و 23KFR F.C53$]!V+Tא¤زg%nDbא3$IX{نChدHC وذא،4א53 .^C وWindows 2000 !'وPQ353zא$א53IIS 512 .net ﺧﺎﺻﺔ ﺑﻚ ﻣﻦ ﺧﻼلWeb Service ﻋﻤﻞ .1.1 %H )دi$ و53 iHאL א%H دgj1D 'م7 Web Service KF 'م7 f' 0Qس אH$א אWS U :S3وא\دא،(Q'J3%H)دi$وgQ'R'م7(Qgg! result=(input-32) * 5/9 U k ً אZI وא، ASP.net Web Service ZI وאNew Project $Q$% وعT3 HI . z$و :ً ^3،V+T אnDg{QPlocalhost http://localhost/ConvertWebService $` F ، ASP.net U F ً 3e Web Config o3 gN3 hO\ אzT 'Q'م !`'אل 'د7 . Service1.asmx ]TNf'!jאhROVא3CGlobal.asax 9 אW ، אصWebService'ل אلb' אg Q t א7Q1 אS Service1 9'ن אP ً 79 ..ً ^3 ConvertWS5PوGN3אS qnN Web نC @N 9 5P ، 7 א\د א1 . .net אم$+ 1 C 4 'م7 F ً 3e وאن .ً ^3 TextBox j3hدوאCnD'9C$9Service :ً ^3 VB.net אKPT!'دs.אWو C# ﻛﻮد <Webmethod(Description:="iHאLאh%HدKQ'F^ل3"> public decimal Convert(decimal degree) { result = (degree - 32) * 5 / 9; return result; } VB ﻛﻮد <Webmethod(Description:="iHאLאh%HدKQ'F^ل3"> Function Convert(ByVal degree As Decimal) As Decimal result=(degree-32) * 5/9 Return result End Function .¤زg%nDً'دא%'3 IIS 'نPQنC@N9و،3$אlWS1X`Nوאن 513 :א1אP. وInternet Explorer 5PوOV\אO. http://localhost/ConvertWebService/ConvertSW.asmx .RRbiH'VKFg'53$]وאbא3$אن{א01 زg%nD3$`אa7!م$+7Q1אlWS و،KPTאאWg3$אمא$+אQ5!0.א'אUو .izOPKF gC53$]موא$+\א :`אK nDgN3W،GQ'א3$*jVא53د$D0sوU Webmethod אم$+אQ ،م$+FلH9אK. buffering KFDذאنF!د$bאlWSو: BufferResponse −1 . False وC True F.kو د$^وF.HF.WI] وCash KFD: I53QWא.'دא$Sو: CacheDuration −2 .$Q$% 53 hא لHא iدDא K. قq\א .'א .9مC Session bIKOذאF! د$:EnableSession−3 ﺧﺎﺻﺔ ﺑﻚ ﻓﻲ ﻣﺸﺮوﻋﺎﺗﻚ اﻟﻔﻌﻠﻴﺔWebService اﺳﺘﺨﺪام .1.2 Web Service م$+نC$Qو،LאhFً ^323UGQو3$I53iدO9 א$QNCضZON א: نW وאQ'J3 %H دQgg! 53 KQ'R 'م7Q Wس א وאH$ אU : NF. Wא .ConvertSW . Add Web RefernceZI אProject Fj.53 و،دDوز$NQو1zTאن. 3$+ و، س אH$ אU :4 NF. W אConvertSW.asmx HI . H 'א03 g( .3$אlWSgQ'tوאلא$*وאjVضאD! Viusal Studio 53!sא :'دP ً אQK7Nوאن C# LocalHost.ConvertSW conv = new LocalHost.ConvertSW(); ﻛﻮد 514 VB Dim conv As New LocalHost.ConvertSW() ﻛﻮد P (N אول وU iHאL א%Hل دI'م د7 C Label1 وTextbox1 0s' ً ^3 . وאن ، conv P´אوoQ אאص3אnD'dFאlWkK3P'دאPא،^אUض :א1!sא C# Label1.Text = Convert.toString(conv.Convert(textBox1.text)); ﻛﻮد VB Label1.Text = Convert.toString(conv.Convert(textBox1.text)) ﻛﻮد ﻣﻼﺣﻈﺔ g3$+Q Wא234אU.،3$אUKQ$KFF.'אذאSسH$אlWSzgאK. Iא:Nא Update Web HI א53 و5> א\وس אH gD aqM אQ 5D k Update Q$ KF .Reference اﺳﺘﺨﺪام ﺧﺪﻣﺎت اﻹﻧﺘﺮﻧﺖ اﻟﺠﺎﻫﺰة .1.3 R א$و،ZאnDi'د%'\ אWeb Service אلh3$I$Cم$+QوعT3KF'مאن7 f' : h3$مא$7QWאא0.'\אnDh^D رابط http://www.webservicex.net/WCF/ : SوgN3i$وאHIF.،3$I70 'אnD0.'\אאWS'd رابط http://www.webservicex.net/ValidateEmail.asmx م$7tאhT אUK>9אאWS5DRو9مCKPTאאWgK>א¤NSذאنF!3$אlWS 4§و . False אوTrue F7 و'د: IsValidEmail gدאאQ5Dوذ،وZPא$Q4אh3$I 515 'م7N53و،ً7:!sNF.WאH\وعTF$Q$% Web Refernce !s'م7،$DאFوאن *03 'م7f'Wو،'g3$אlWS03K3مא$+F5P>rمH'OאnD H ضD 53ط وT אF. HI אQ r 3C H ز53 و، وZP א$Q4ل אI אد:! Q .K>9אg!MessageBox :'S3אHزU:s وW'دאPא C# net.webservicex.www.ValidateEmail x = new WindowsApplication1.net.webservicex.www.ValidateEmail(); bool r = x.IsValidEmail(textBox1.Text); if (r) MessageBox.Show("RbK>;)" א ﻛﻮد else MessageBox.Show("±IK>;)" א VB Dim x As net.webservicex.www.ValidateEmail = New WindowsApplication1.net.webservicex.www.ValidateEmail() Dim r As Boolean = x.IsValidEmail(textBox1.Text) If r Then MessageBox.Show("RbK>)" א ﻛﻮد Else MessageBox.Show("±IK>)" א End If S و، אم$+9 אj, \ ( وiQ$% AIC 3$I h$% و0.'\א אWS U R אU HאF א03 :NS3$א${،:! IوN\@وא71אnDfbא رابط http://www.webservicex.net/globalweather.asmx اﻟﻤﺜﺎل اﻷول ﻻﺳﺘﺨﺪام ﻫﺬه اﻟﺨﺪﻣﺔ ﻫﻲ ﻣﻌﺮﻓﺔ اﻟﻤﺪن اﻟﻤﻮﺟﻮدة ﻓﻲ دوﻟﺔ ﻣﻌﻴﻨﺔ :ﻼ ﻫﺬا اﻟﻜﻮد ً ﻣﺜ، GetCitiesByCountry ﺑﺎﺳﺘﺨﺪام C# ﻛﻮد 516 net.webservicex.www1.GlobalWeather m = new WindowsApplication1.net.webservicex.www1.GlobalWeather(); MessageBox.Show(m.GetCitiesByCountry("Egypt")); VB MessageBox.Show(“Welcome”) Dim m As net.webservicex.www1.GlobalWeather = New WindowsApplication1.net.webservicex.www1.GlobalWeather() MessageBox.Show(m.GetCitiesByCountry("Egypt")) ﻛﻮد ن$\! א3 $Q tول א$ אX% وTextBox KFD אنX% ، V3 U A4Pن א$\ אzC N ضQ ...kA4Pא ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ، GetWeather اﻟﺪاﻟﺔ اﻷﺧﺮى ﻫﻲ ﻣﻌﺮﻓﺔ ﺣﺎﻟﺔ اﻟﻄﻘﺲ ﺑﺎﺳﺘﺨﺪام :ﻼ ً ﻣﺜ C# ﻛﻮد net.webservicex.www1.GlobalWeather m = new WindowsApplication1.net.webservicex.www1.GlobalWeather(); MessageBox.Show(m.GetWeather("Asyut", "Egypt")); VB Dim m As net.webservicex.www1.GlobalWeather = New WindowsApplication1.net.webservicex.www1.GlobalWeather() MessageBox.Show(m.GetWeather("Asyut", "Egypt")) ﻛﻮد ، \ אh Q'R 7\ אS N אnD i'د%'\ אh3$ אg,ن אC ,C نC 7 وאن nDدFD9א53ً9$h FאKQ'RUg3א$+אNP> rًQH'!h3$אlWS.E$ .HאF qtوאL אh9א\د N אg3$7Q 3$I אم$+ 234 אQ 5D 0!$ وא¤'N لV9 אK^3 ًא$7 ^C h3$I ً MQC ¤NS .:T3l{אU gNPQ' V.Sو.:! Iو ،@71אnDfא3$ISوiTN3 AIC3$I،:T3 l{אU S وRSS 3$I¤NSًMQC Tא53 ISPN h3'3nDf'אSوI'ع،:! IنوP وאFولوאوא$*אjVIو،N\א 517 h7 وאh Q'R א53 1 3 KP GQ وh3$I $` ً MQC ، 23א4 אU ¤$OQ $. .!א\و wcfﻣﻘﺪﻣﺔ إﻟﻰ .2 Windows Communication N7 .NET 3.0 H'g& وאt אi$Q$ אhN7 א53 i$وא لوאلV9§*_אt אAPI's وאل$א53D'FSو، WCF ًאHVIאk3Qt وאFoundation .:! I وremote access وאلweb services n y وx 5Qزg%nDY YG+אO'SNSKTאNq,'نPوgNDE$Rtא17Nא 23 وא$ 5D ig% 'لb' وאhPT אnD h71 אKF F אlWS N F r x=y U .LאZאVDetאh71א53 א... hO\אK7א[دو h! و، D'N אlWS 53 23 אQ'1 U 234F FD$ hg& t אhN7 א53 ^P א¤NS ، MSMQ ، DCOM K^3،:! IوhPTאhFb אAPI's אل03K3אKg'لL א53D'F ًMQא¤NS،hFאlWS K^}b אSystem.Runtime.Remoting JOאQ$7 .net N7H'g&03و ون،ًא$%i iH'VD'ز3(KFDhFD Kg53hN7אlWSNPe، XML Web Services N7 K730وאو4אhאHInDH'^وאiدQ*زV+אNPF! אمA'\אאWSUKFאUG9N Yً!g,9אS وNamed Pipes, Sockets, and P2P אم$+אQ5D$7 אU1iدQز 53 ^P '!אg א- 7 אhN7 אig, م$ א ( ًאNN وU K. אnD .net אلY3$+3 - .^لFسאH$א53z$אNP>،ً!.'א .N7אlWSnDf C$Nدم7سאH$אU، WCF _DK. .net 234FiLאlWS WCF اﻟﺒﺪاﻳﺔ ﻣﻊ .2.1 KPT WCF Service Library WCF وعT\'عאHI.، Visual Studio 2008KqT$ :ً ^3א 518 ¤NS،ًsאZ! אWWF N7وC RSS 3$I03g71 NP>r WCF g3$7AIChאHI¤NS .אنND's'3'SאWS@5P وWCF Service${$Q$% Web Site zTאhאHIא5FsًMQא :S assembly hO3E zTًsאZ!אF.$.O${אن WCF Service− WCF Service host− WCF client− :אE ^אh3'\'א!א53$9aو .:لV9אQW'אنאNدא$d'S:Address− .aقא:Binding− . WCF لI53SWONQtمאg\אob:Contract− Address ﺷﻜﻞ وﻣﺤﺘﻮﻳﺎت ال .2.2 :א3אqV א:،:KVW'אنאNאS WCF h3'353אو17Nא scheme://<MachineName>[:Port]/Path 519 i'د%'\אh9''و4אY3: I53KFf'Wو''لא4دא$ scheme نC Path ًאICو،: I 53لV9אWאWON\'אS Port :KVWنאP\دא$.MachineName .:لV9'دאWزאgאU Services אلH3'Sو :א\^لKnDאWS net.tcp://localhost:8080/MyWCFService :ﺗﺠﺮﺑﺔ ﺑﺴﻴﻄﺔ : IService1.csUא$oQ!s.SzTא$،i$Q$% WCF Liabrary zT . C# [OperationContract] int Add(int x, int y); ﻛﻮد VB <OperationContract()> _ Private Function Add(ByVal x As Integer, ByVal y As Integer) As Integer End Function ﻛﻮد :אא$אP. Service1.cs U53و C# public int Add(int x, int y) { return x + y; } ﻛﻮد VB Public Function Add(ByVal x As Integer, ByVal y As Integer) As Integer Return x + y End Function ﻛﻮد . YF.H $ ، ً ^3 אKPT WCF Test Client لI 53 g` . وRun KF . ، a7!و .KL `אInvoke nDaqM ؟Web Services سא'لH$א53 ^PKgCאWS@C 520 :YN7אYSY!'وPQ30.'353H7\אlWSK7]K،a7!אWS@ :אaאא4DgDא عNP>H7\א:%وC!'دאאضNذא رابط http://msdn.microsoft.com/en-us/library/bb310550.aspx 521 اﻟﺒﺎب ﻧﻘﺎط ﻣﺘﻘﺪﻣﺔ 21 522 523 0.א\'אQ'1_Dل7אK.وسH$ ل אIgs_t!אsطא7NאQ'NSض Debug - اﻟﺘﻨﻘﻴﺢ.1 WنאP\!א3nDًאHد.'نP9،CHGTz1ICi$DًCg(234אnDFDzNC i$j!hg&NS53،g.'NtאF7א5DO q3F.i]`!${CوC،ًא$Q$]1א:N3g& .KM!CiH'Vj1IC0Debugאل : BreakPoints Visual אل¤$Q وg 'لb' אH'! WON אo.'Q r 'دP א53 N3 53C nD gs وQ ط7 fNJאiدDאNP>،KT\א53S'I53$]وאgsوאאh אq\א..א3NP>،Studio .F5nDaqMQgNWONאb'א3وCF11nDaqM11WONא : ^3אKPT'دPאG%nDaqMوאC،د$[א1אUF9nDaqMBreakPoint!sאNP> FאنאG2N'نאPً3]دو%!אC9،hi$Dizא7'م7אN^3UAF،وאن ؟؟؟PT\אS3AQ،i 7و%'3'نPنC$9h I$\אKאن.'אنHXs 524 AIوאi'1אYK7Nא53و234אKqTz$F.و،.אF17NאlWSsאوWSK%א53 .F11 lWSUgh אq\אQ¯HNPFو،1אאWS'لb'א.وo.'i,3'م7234אنא$` :אKPTzNא ؟E$ذא3Ah'א1I6$،h'א1אUFאنא _ q\א،G'لRQ.אC$Q3$L.אKVQ3$NDً !،PT\אGK§UhC$אنאl .אWS534ًאF.HGD'Q$Q :X'1\א2NאnD'لVLאNP3CوFאgא...DoubleXMאFD2oQKLذنא 525 ًא$7'وb^C'عs'\'نאPi PאQHT3U، DebugאلFD53gN<tאi$jOאSlWS .hאدوאlWSnDدFD9K^3אKL'نאPאW،دوאلi$DYh אq\א..}ج\אHو iW!$`:אجh$%و3f$k،h אq\א. q5P>\אlWSUK،a7!אWS@ :ً ^3אKPT q :אKPT.א3i'د%'\אhJOوאh אq\אKًMQC :אKPTAdd WatchbI.א3!sאHIאNPF!:N q3.א3UH'و 526 :אKPTl$و:bI.א3iW!O'م7 ﺗﺠﻬﻴﺰ اﻟﺒﺮاﻣﺞ ﻟﻠﺘﻮزﻳﻊ .2 9 $. م$+\ز אg% و\ ن، م$+\ אg7N %r אن5 ، N א53 Ng א$. 'نP אن$ 'م7 Setup KP, nD 234 Publish KF 'م אن7 KF N 3 א زh'P\ ! אnD 'd .Build-PublishFj7א53ذQ،i,3:qTم$+\א .ً ^3C:\ahmed5P،:TN'دאWنאP\א$Q$R.Qא$− .CD-DVDH+N،:N3234א+KFY3$+F'دWنאP\א$Q$R.אi'1אU− .i'1אlWSKS{9وW7!Y3نP3Uh^Q$Rא5D234אRQنCUGNذא− .Finishaqsא− 527 ً ^3 ، Publish وعT\ אhאHI Q 5D h אq אKFD NP> ، lg{ z, K $` − .:! IوC!sאhO3YFM Program FilesU234אKFQf' وSetupnDaqM.،KFًאS%b אنא− . ًא$%دD234:3K3אNP>و ًMQC ، setup factory وinstallshild K^3 'عs'\ אlWS K%C 53 ً 3$7 ^C hدوאC אم$+ אNP> − Fj7א53'Q`'אل'دOאU SetupאلhDوT3S!'tא3$7\*אjVא53iدO9אNP> ::! Iوh.O9وאKFRאFDh,, وUPRאnDًאHد.'نPNew Project 528 C# vs Vb.net .3 :Tא:%وCوCقH'אOאSF!، Vb.net وC#tqnD'אز3KPTدFDאNوHدiZ!('אل9' ..net قאل19Qא$א17ً9وC$N.FgN hذאqe!'وPQ3\و،i$F\אqאS C# .netد¨אل3H'g&Qא$U :g,Q'אز3qQ'1g43§9C!'وPQ3hCH،!`'אلSو.'ذאU0'قوא +4 t وאVB.net hz% NS 53 ، .net د¨ אل3 1 gNP`'אل وO א03 Syntex אلU a7!PאX'א،>$7אqאYوgN$'א:T'אSאWSو، VBאلX']5P وC#אل53AIC .9@ Fg!h! I9'دאSNSKgא،lzOא015!VB.netوC#Y:Tא5DE$RאNאنوWو ...PאX'CUh.وOدאC$N،i$وאqQgNאU 529 1KIU؛0MنC@N9XH,2343':ً9وC* :h אq\אoQ7Q:ً* C# int x; ClassName x=new ClassName() ﻛﻮد VB Dim X as Integer Dim X as ClassName=new ClassName() ﻛﻮد 53ً9$iمא\وא$=!3 א$`F،==Gא#CU3C=GאVB.netUوطTאU:ً^* .<> :ً ^3S وhJOوאhאzא%9אUg3$+وEndK^3KBnDVB.netq$F:ًאH* VB if x=1 Then End if ﻛﻮد :'אس.אمא$+#CUS${FN C# if(x==1) { } ﻛﻮد :ًMQChאzא%9وאhJOאUWو C# using System Namespace MyNameSpace { class HelloWorld { static void Main(string[] args) { System.Console.WriteLine("Hello World") ﻛﻮد 530 } } } VB Imports System Namespace MyNameSpace Class HelloWorld 'Entry point which delegates to C-style main Private Function Public Overloads Shared Sub Main() Main(System.Environment.GetCommandLineArgs()) End Sub Overloads Shared Sub Main(args() As String) System.Console.WriteLine("Hello World") End Sub 'Main End Class 'HelloWorld End Namespace 'MyNameSpace ﻛﻮد .!||&&م$+f'#CUFNAnd,Or,Not,OrElseم$+f'net.!`'אلU،ً3I* .+م$+א#CU5PوVB.netU&م$+'صאVNא0B$ND:ً*د VB.netUElseIfS#CUelse if:ً* :ًMQC'אس.אnD#C$FQHאPאh7LאO!،End'عs'3UNOאF:ًN3* C# for (i = 2; i < = 10; i += 2) { System.Console.WriteLine(i); System.Console.WriteLine(i*10); } ﻛﻮد :'אس.א5DzNq9א5P>$وא1g'Uو C# for (i = 2; i < = 10; i += 2) System.Console.WriteLine(i); ﻛﻮد :ًא$'3ً P,WI]g!VB.netU3C 531 VB For c = 2 To 10 Step 2 System.Console.WriteLine(c) Next ﻛﻮد .:! Iوfor eachوWhileQHאPאh7Lא.N3@אOو .VB.netU()53ً9$[]'س7مא$+Q:! Iوh!'OVFN:ً* C# int[] nums = {1, 2, 3}; for (int i = 0; i < nums.Length; i++) Console.WriteLine(nums[i]); ﻛﻮد VB Dim nums() As Integer = {1, 2, 3} For i As Integer = 0 To nums.Length - 1 Console.WriteLine(nums(i)) Next ﻛﻮد nD XML CommentsWو، #CU/**/K^3 VB.netU153^ Commentً7${5* .3د7אiHא$b9אU3'D$3'نP$.gאhC.cC53א .F7א.nD'لVRVB.netUMod53ً9$٪Q'J\א3 مא$+f'#CU* #C@אلPDnDAssignmentUBitwise Operationsאم$+אVB.netD$5* .ذ h ذאh.!وSو،Q'qh.!وg'A$9h.وOאlWS !¦ن−3(9F −Kא5 وﻟﻜﻦ اﻵن ﻟﻨﺤﺎول اﺳﺘﻌﺮاض اﻟﻨﻘﺎط،سH$אQgU3gsaאHnD،i\F. . ﻏﻴﺮ ﺗﻠﻚ اﻟﻤﻬﺘﻤﺔ ﺑﺄﺳﻠﻮب اﻟﻜﺘﺎﺑﺔ 93'S وahmedgOS Ahmed !¦نVB.netU:C، case sensitiveSh.وOولאC* .GDمCi3אWSذאنF!د$CنC01C9و،BasicA'_אUqCU$%'Q :−HVI−VB.netUhא .#CU'د%'3@وVB.netU'د%'3optional parametersאلD*د .#CU'د%'3@وVB.netU'د%'3with* 532 z1IאiZOKM!Cً3(SوVB.netUi'د%'3Catch ... When* UGDgNPوi qVאh71אUi3lWSو، BackGroundU'دP CompileKF VB.net'م7Q* .'Q`'אل'دOאzaª i Pאh71א :−HVIא−#CUhא ًאz% @ :NP وVB.net U ً MQC :3א$+ אNP> 3 'S و، unsigned types fQ 3 #C D$Q * .qא53ًא 3 unmaneged codeوC unsafeאم$+vFאS VB.netU!'9t وא#CUA'.אi\*א image H'Vא3K^3h9 i$DUًوא.!OQ3،:! I وPointers nDKFאQ .:! Iوprocessing Low Level CodeA'\אO+N3'د03g353++C53Q. #CK%i\אlWSKو .5Q ^PK^3אHI9אXH,K®3'Sو :אKPT'د1MVB.netUdecrementوincrement${5* VB A=A+1 A-=1 ﻛﻮد :אKPTWم7אNP>#CUFN C# A++ A— ﻛﻮد .VB.netUS${5FN#CUsizeofbא${نCNP>* F. h ذאgC U g! (9 F و، ^ ًאg3 K3 t وאh! I9 אs ًא و%'3 אWS ن .i ﻣﺎذا أﺧﺘﺎر ؟: ﻓﻲ اﻟﻨﻬﺎﻳﺔ وذא#CX! C/C++/JavaXi4IQ$ذא3C VB.netX! VB 6.053ً 7N3Nذא .a7!V+,CC#,HCNونNQ3HIאU]!4لאUًא$Q$%N 533 :h.وOK3s'!'وPQ30.'353o\אאWS رابط http://support.microsoft.com/kb/308470 Monoﻣﻘﺪﻣﺔ إﻟﻰ .4 אو!ن% 'نn VM :DنP3 אnDKF.g®W وאVM nD$F!_אDU hאSC53لKnD:NPא!وWONUza'ع אs'\אאWSGQK7\אU،oQوPQ3 .!א nDA'KF . MFC وC C# وVisual Basic h`N3 Microsoft _DK7\ א_אUو .!'وPQ353KqT(א Mono 'SSg,C،iد$3KqT(nDKFא4FhدوאCمق و$7.'א035Pو .LאNH'ع دs'3'Sو 037!'א3gNPو، .net 2008037!'א3 Rb אMono ]ن$OQH$V3$%C_(Rאn0.א'אU aوאHi$Dh$%وذو،:! Iوh$D'א.وC71 23وאC ASP.net KP,nDz'א.net 2.0 nD 'لI$אNP>KnD،−g@−g7GC1k'b'$O! 'אLאh9وRF :HI9\אaאאאWS رابط http://www.mono-project.com/plans لGtאhN7אHI.KFRאKא3 لIو، Mono K Download KF .א0.'\א53 .g3KFMono $`،23א4אFj.Ul$` W وאMono אصلCommand Line אلKqTS^א\א :אhא\אدوאhאدوא5Fs53 534 XH,Q3' :mcs/gmcs `'אلOQ3' :Vbnc CILKQ3':ilasm/ilasm2 Visual Studio אل03 ً 7 K3 NF. F g3 K3 אQ - ^لF XH, א− gN3 i$ وאK i'د%'\אi$Q$אhN7אD$Q gmcs نC'S mcs وgmcsY$'قאHOא،ً7Command Line ..net 2.0_D03 X אصCommand Line אلO. ،ًא$%دD C# 'دnD'd sample.cs o3ضZON א3אGאMono : ﻛﻮد gmcs /target:library /out:Sample.dll Sample.cs !a7!و 4D gqT ً وMQ אexe ¤ build KFD NP> ، KqT א (مnD KF . P3 Q$ Rbאن א ...ً ^3@PNUmono :VISUAL STUDIOאلnDF MonoDevelop لFDوT3!NP>@PNאnD 535 .net ﺑﺮﻣﺠﺔ اﻷﺟﻬﺰة اﻟﻜﻔﻴﺔ ﻣﻦ ﺧﻼل .5 ig%אS3،Qא$אK.5Pو،'F[אig%'אSGQ'א''ج_אK.3$7\אNs'א3I ؟Pocket PCOPא KqT53gNP>QدوHS!sمא$73KqTאم(م$+F7N\אo'אkאig%C53D'FS Windows CE (مN!sنאFKqTو(مאWindows MobileKqTא3(KPTQو،(مNאאWSمg3 .OPאig%אnDKFtאKqT(אg,C:.3و2003 536 gN3 ً M 5P ، H'gT\ אnN\ Hard Disk Qد دHS e 9 OP אig%! QدوHk א$b nD 3C 'عC ¤NS و، زg אKqT iدD א$ :D 53 h א3 Q 9 Qد دHg RAM אل53 z% م$+Q .:,3وKqTو(مא23א4א5Q+ROMم$+AIC ؟net. لI53Pocket PCOPאig% :FDcNP>ذא3و نCzم'א$+Fh3$I7Rزgא53N3zא%Cم$+23!אsא4אq لI5301 * 3و ن אC ، h א$D'א. 5Q§ وSWON و23א4 א5Q+ (iאWאم א$+ )אa אم$+א .زgאU'Vאig%^ ًوא3 א3Pאمא$+ ؟C$Co .3CHزnDaqMא5DGHg(Q23KF'م7N،KP .Visual Studio .net'Q`'אل'دOאKqT.−1 .k I534'دאtאqوאCVBHI.−2 وC Smartphone 2003 وC Pocket PC 2003 HI . 53 و، Smart Device HI . −3 .:DKF'دאWزאgאGWindows CE 5.0 .Device ApplicationHI.GN\א7אHIא$−4 :IدאU'دPאאWSP.و،hאدوא53ButtonGR.−5 C# MessageBox.Show("Welcome..."); ﻛﻮد VB MessageBox.Show("Welcome...") ﻛﻮد HI.وC،:DKF'دאWزאgאG:!GWאdeploy'عאلHIאF5nDaqM.−6 .a7!`PC~אnDKFQ'ع 9،i,3:qTزوg אexeWONאo\אK7ًMQCNP>،אول23KFF.$7،¤و43−7 .Pocket PCOPزאgאnDً'دא%'3net framework.'نPQאنLאlWSU$ زgאN03K3V+\אSQ$7א4אUgDh'دtمא– אg\א−8 :,Tאg!G7NنC5P>tאig%אU,Tאl{א$Q$Rً ^F!،:! Iو 537 C# SystemSettings.ScreenOrientation = ScreenOrientation.Angle90; ﻛﻮد VB SystemSettings.ScreenOrientation = ScreenOrientation.Angle90 ﻛﻮد :Touch KeyboardYPFو C# InputPanel1.Enabled = True; ﻛﻮد VB InputPanel1.Enabled = True ﻛﻮد :coredll.dllא אد$زg`ResetKFً ^3و ﻛﻮد C# private int CTL_CODE(int DeviceType, int Func, int Method, int Access) { return (DeviceType << 16) | (Access << 14) | (Func << 2) | Method; } private int ResetPocketPC() { const int FILE_DEVICE_HAL = 257; const int METHOD_BUFFERED = 0; const int FILE_ANY_ACCESS = 0; int bytesReturned = 0; int IOCTL_HAL_REBOOT; IOCTL_HAL_REBOOT = CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS); return KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0, bytesReturned); } VB Private Function CTL_CODE(ByVal DeviceType As Integer, ByVal Func As Integer, ByVal Method As Integer, ByVal Access As Integer) As Integer Return (DeviceType << 16) Or (Access << 14) Or (Func << 2) Or Method ﻛﻮد 538 End Function Private Function ResetPocketPC() As Integer Const FILE_DEVICE_HAL As Integer = &H101 Const METHOD_BUFFERED As Integer = 0 Const FILE_ANY_ACCESS As Integer = 0 Dim bytesReturned As Integer = 0 Dim IOCTL_HAL_REBOOT As Integer IOCTL_HAL_REBOOT = CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) Return KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0, bytesReturned) End Function ؟net. ﻛﻴﻒ اﻛﻤﻞ اﻟﺒﺮﻣﺠﺔ ﻣﻦ ﺧﻼل 1M F! ، Pocket PC nD KFQ 234 NPF\ א£V אaC 53 $Q 7 א23א4 !¦ن א$] KP VN אhO\אم א$+ אNP> h א$D'א. 03 K3 وאQ$ א23א4 אU 5Q+אم א$+9 .SQL Server CE'ع53hא$D'א.nوXMLhO3وC،h$D'א7 ::N3z$!'وPQ353aאאאWSnDi,3ًMQC'لI$אNP> رابط http://msdn2.microsoft.com/en-us/library/aa458721.aspx 539 اﻟﺒﺎب 22 اﻟﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام ASP.net 540 ﻣﻘﺪﻣﺔ إﻟﻰ ﺗﻄﻮﻳﺮ اﻟﻤﻮاﻗﻊ .1 lWS لI و، Desktop Applications ~ وאConsole _ אلD U E$R N ، وسH$ א53 nM3 F! nD $FQ 0s' ن א$7! P, 'د% وU n و، WON $ز وאg% 'د% وnD $F N Kא\א ،NQCHF web serviceXلV9אوאHدV\אUHT\ אوא5QزgאYhل7لوאHאhFD Qא$ אK.אWو،ًo0s'!ً3'FD server side languages_אلD אوASP.net _אلD033א :Zא0.'א3א'אعnDfאنG h, !وH'bאم$+ א5P>،HTML אم$+hOb'א53D'F5DiHD0.א\'אlWS:0.'א3 .0.'\אאWSU\א'אعא53א'ع$%'Q95Pو:! Iو KFאG%UK(gNPא'אع א\و0FQ0.א\'א53'عNאאWS :KFא$NDP3NQد0.'3 KF33אSאtאROVא5P، VBScript وJava K^3 Scripts אم$+א0.א\'אlWSUQ،a7! .a7!א¤$ND אن5P>W א2NאnDa7!אKVא !وU:3KFDQ 'عNאאWS :P3NQ د0.'א3 .Zא0.'3 @وZא1nFQLאlWSU،^'عאولوאNא53'نPQ :ﻣﺜﺎل ! א3 אوאnD ' ^'ع אN א53 ROb S 33 אS אtو אZP9 א¤$Q ROb lWg ROV אlWS KPT !¦ن0. א'אU 5P ، HTML 53 :! I'لو7Lאول وא$! אs אQP tאولא$אP,وhא$D'א. izא73.tא !אhFDQ5Dz%qVא .:! IدوHא'א$Q4אnD' i$ST301NPو،g ! אetאqא'אدאQ¯HnD Hد. אROVאlWSUאW .a7!! אnD\אhFDאنa7!2jNא :دورة ﺣﻴﺎة ﺗﻄﺒﻴﻖ اﻹﻧﺘﺮﻧﺖ 'م7Q http - م و''ل$+ אcQ 3 'S وhttp:// - X C$Q 3 0.'3 'אنN I}`د אد אאلWS'م7Q، DNS ًאHVI وאDomain Name ServerXfQ3'אنNא אWSلHو''ل4א 541 KP,،0.'\ אGb IP صلIZאnD Physical 'אنNgPF.tאPאKQ'R DNS :^لFאKPT'نPQ DNS אل GلHאQ و− 80'نPQ3ً port - !Qאن،0.'\אאWkF\ אIP !3نP39bאنא .http Request:D13'Sو0.'\אאWS\א 3Q dynamic ROV'نאU3א،a7!'1\ אROVאدQ، static 0.'\'نאU . http Response :D13'Sمو$+\א2jNאRObلH' وא1\אhא ﻣﻼﺣﻈﺔ a7! http 'SNS NFgQ3و،KFDiHدوK'وKP : Client Side Web Sites ﻣﻮاﻗﻊ اﻟﻌﻤﻴﻞ DoV53K. لאIgDfאNP>ًא$%gq Sو، HTML X!3Qא$'عNאאWS مQ :ً ^3aאאאWSQ5D رابط www.html4arab.com دونא0.'\אKFDP3bא، Dream Waver Xzg وאFront Page Xzא$א23אH'g&03و .a7!hدوא9אQ5D HTML !ل3 W אForms _אلD${ HTML אل5FsًMQא،*jVא4 vbscript אوJava ًجلMQא سH$א%א3NP>،'عs'\אאWSU!\وجא،%Hא_א03 Kbא'א53NPF :−tو$353–vbscript~Qא$א 542 رابط http://ahmedgamal-technical.blogspot.com/2008/08/vbscript.html : javascript KQא$سאH$وא رابط http://www.w3schools.com/JS/default.asp ...ً אא¡لWSU ^PאN3GC9،a7!h93א0.'وאنא : Web Service وﺧﺪﻣﺔ اﻟﻮﻳﺐWeb Application اﻟﻔﺮق ﺑﻴﻦ ﺗﻄﺒﻴﻖ اﻟﻮﻳﺐ bIiiHدوktאhא$D'א.'אدو9אhO3 وhROVא53D'F5DiHD 'SGQ'א1 :! IوEא$אWONوg. وאgR! Q،23אK^3g^3 K3אQ،\אhFD$S$وh אK73$I5DiHDg!GQ'א3$I3 א .a7!hH'א.Hوg'لאb'אnDiHد. qא53g3 : IIS اﻟـ nDz 'אASP.net אل¤'دKFطא,l'د%وو، ASP.net وASP h4'א !אصS .ً 79.'3:DoMW א !אnDوCV+Tא¤زg% KFRF.]!.$ אوIIS אلKFRF.אcQ visual studio K setup KFF.' ً ^3 Notepad iPO\אnD4'دאNذא3א، IIS אلKFTQ W وאWebDev.WebServer.exe Add 23!وאزאאs אControl Panel - PR'אHIאQ5Dوذ،: setup KFD53$ ! 53$` ، Add Windows Compomnent وز$NQوh'P3!sאZI وאAnd Remove Programmes .−KqT(مאG7Q1 אq–IIS'אلS وInternet Inforamtion Services gNFs :ﺗﺠﺎرب ﺑﺴﻴﻄﺔ 543 :g! אhQ'[אP.ً ^3 index.html 'نPgF.،$Q$% Notepad O . ﻛﻮد <html> <head> <title>My First Pgae</title> </head> <body> <center><img src="http://l.yimg.com/a/i/ww/beta/y3.gif"></centeR> <br> <font color=red size=3>Yahoo!</font> <br> <a href="http://www.yahoo.com">Link Here</a> </body> </html> .ZאRObאولlWS،¤و43،gDא\دوجaqMi,3gqTX% :hلאIد9مאH'O'مא7Nאن :مH'OאאWg'دאصPא ﻛﻮد <html><head> <title>My First Pgae</title> </head> <body> <h2>Welcome !!</h2> <br> <form name="form1"> <table border=0> <tr> <td> 544 Name </td> <td> <input type=text name=textname size=10> </td></tr> <tr> <td> Password </td> <td> <input type=password name=textpass size=10> </td></tr> </table> <br> <input name="button1" type=button value="do anything"();"> <input type=reset value="Clear"> </form> </body></html> Sg(f'!hلIمد.' ،مH'OאUhلIمد.م$+\نאC53$]'م7אن$Qوאن :אKPTVl q وButton1 H GSWNאW،ًMQא,TאnDوVHU: ﻛﻮد <input name="button1" type=button value="do anything" onClick="doCheck();"> : אScript אلP'م7f'ROVאIU53و ﻛﻮد <script language="javascript"> function doCheck() { if(form1.textname.value!="" || form1.textpass.value!="") { alert(form1.textname.value); document.write(form1.textpass.value); } else alert("enter data first !"); } </script> 545 : Visual Studio اﺳﺘﺨﺪام `'אلO אO . ، Visual Studio لI 53 ASP.net אم$+ 5P و1 א` אlWS @O K7NN : ASP.net Web Site ZI אWebsite $Q$%GQوHI.'وQ'د : אhدوא9א535PموH'O@אO.אن 546 ﻣﻼﺣﻈﺔ ال تنس اننا حتى اللحظة نتعامل مع ادوات HTMLوليست ادوات ASP.net و'73$NDم'0sא'PدaqM.،א\دوج Button nDوP.אوא:i,3 3 547 :ROVאKOאGQ'אQ5DFgN3i$ وאKאوQ''دPوאFVאאضאNP> . ASP.net 03K3C$Nدم7سאH$ אU،1אN{SlWS...a7! ASP.net ﻣﻘﺪﻣﺔ إﻟﻰ .2 X`NسH$אאWSU،:DO GQوhRObKFD وVisual Studio 03K3אN%אNHدU .DOא0.א\'א03אوN{ : ASP.net ﺗﺠﺮﺑﺔ H زU ، Button 3CH وزLabel 'אنND i وאدאTextBox * 03 . ، Standerd h אدوאO . :'دאPאP.3א C# Label1.Text= TextBox1.Text; ﻛﻮد 548 VB Label1.Text= TextBox1.Text ﻛﻮد . ASP.net RObאولKFF.$70.א'אU...X%و ﻣﺎذا ﺣﺪث ﻓﻌﻠﻴ ًﺎ ؟ 'S3!¦ن0.א'אU،مH'!nD'dدD HTML 'دQ$ نC$` HTML אلRObR!' 3 e! אnD¤NSو،! א3مH'OאhلHم.! אSubmit Eو$ 03A')ًنQ אو אAhmed A'[אnD'd Label nD'tאROVאiدDوאhא :'دPא53אzא$`{N אROV אصHTML 'دPאi$ST3%'،لH9אK.*Nא ﻛﻮد <p> <span id="Label1">Ahmed</span> </p> <p> <input name="TextBox1" type="text" value="Ahmed" id="TextBox1" /> </p> <p> <input type="submit" name="Button1" value="Button" id="Button1" /> </p> .a7!! אUg!:! I'אدو9 א3א، Label12NאiدDوא،hא3e،ذF .اﻧﻮاع ارﺳﺎل اﻟﺒﻴﺎﻧﺎت Q sאZ!9 אS אو و7Q1 אU ، GET وPOST S hل אH9 Y7Q ¤NS Form C U N مאصH'OאKQ$X%،OV\'אنאNDUkH !אGETU3א،i,3 Form אلhلHא :אKPTV ﻛﻮد <form id="form1" runat="server" method="get"> :אiH'Vאª9،AICi30.'\`א. 549 3CمH'O'لאnDًودא$0MhROV\(א3ً،'אنNאU مH'OאhQ')!لHאQ،AF .'د.א¤NS! POST U z,ن3د.hא3U:Df$.3'Sو،'دPVON3gzא.hدH 'אF!izא.7QgN3i$وאKP . א : Code Behind U،FVא5D'دP אKV!S>$7 אASP 5D ASP.net 03hg&tאi$Q$אhאF\א5Fs53 :ً ^3'دPא אWSAN>$. ASP Classic ROb ﻛﻮد <% v_Id = request.querystring("id") response.write "<form action=test7.asp?id=" & v_id & " method=post>" response.write("<font color=red><b><center>Write your C.V.</center></b></font><br>") %> <table> <tr><td>Computer Skills :</td><td> <input type=text name=v_cs size=30></td></tr> <tr><td>Characteristics :</td><td> <input type=text name=v_char size=30></td></tr> <tr><td>Interest's :</td><td> 550 <input type=text name= v_inter size=30></td></tr> <tr><td>Language Skills :</td><td> <input type=text name=v_ls size=30></td></tr> <tr><td>Education :</td><td> <textarea name=v_edu cols =30 rows=6>write your Study Field here</textarea></td</tr> <tr><td>Experince :</td><td> <textarea name=v_exp cols =30 rows=6>write your Experiences here</textarea></td</tr> </table><br> <hr width=75%> <center> <font color=red><b><center>Join Demand</center></b></font><br> <textarea name=v_Join cols=40 rows=9 WRAP=physical></textarea><br><br> <input type=submit value= Continue> <input type=reset value=Erase> </center> </form> אد$3لN3o3 U FVאbאYU *.cs אد$3o3U¤'אدCRb! ASP.net U3C :*.aspx ًMQوא،^ ونPאgMOQزאل37QSنאذو$ وאo3UgدnDًאHد.ز3وذ .T\א0QHT\אUًb'VI ASP א'אدאلaspx אلo31ن9 אUج$. X'אK(Q ذ5Pو،234\אnD39אKgوKIא$KFDم$Fbً !،'دPאzOI'صאVx :ط7i$Gאi$وאRObUPא U KFQ W* وא.cs - ROb لI 53 gD KF א01 9 t'אد א9 א0s' ج3 ً C - .ذ¤H$Qאن01Q وعT3 .Y4\אYK7Nوא0Qא'زUKgאVisual אنH−a7! $وאo3UKQ$אG1QK7אKQ$!،KQ$אUKgא.'@אOUو . { 5DFIوg.'אDאن9,\אKQ$אi3م$7QStudio 551 NH'ع دs'3'S א وgM nD i$F3 hO3'د%م و$ Deploy אلFD U Kg אS W و.א : ASP.net ﻣﻜﻮﻧﺎت ﻣﺸﺮوع ال hO\ !s' אd : א$` ، OV\ אY> nD 'د%'\ אWebsite Directory אلOV F. ' :− gP7אz9אlWg!i'د%'35P_'n− אhא$¡אnDDوT3 .:P3אnDzNOV3K03K3وOV\*'عאN7tאhO\ אnD'd:App_Browsers .GQ'אhROb*§t אClasses hJO'אدوא9אhO3nD'd:App_Code .hא$D'א.hO3nD'd:App_Data . *.resx HدV\אhO3nD ':App_GlobalResources .وعT\bאh Q وאg(\ctאhO\אnD'd:App_Themes g3$+Q Web Service אل53 אو א 'عProxy 'د و% وU : App_WebReferences .NSgsوQ71 .Ug3א$+אQt* وא.dll אلhO3K^3iSאhO\ אnD'd:Bin : دورة اﻟﺘﺮﺟﻤﺔCompilation Cycle 53 7T3 ClassJ! :Q') K3P o\ אB Q ، Single File o\ 'ن אU _aspx .!لsאROV@אOSystem.Web.UI.Page 552 23$5Pوh'א1@אOKFD!، Code Behind KF אصMode K3א$+ אU3C ،: Compile KFDQ InitializeComponent() אلnD'dWאnF\אo\א،Q'hO3E .i,3 System.Web.UI.Page53@و:N3 CS + ASPX 53'نP\אo\قא7,ًא79 …'7N3H'V***א System.Web.UI.Page اﻟﻔﺌﺔ .3 :gN3،FDU¤$OtאhJO*وאjVא53D'F nDJOאlWS' ob'א JOא 0.'\*3و1אh אq303K3א Application 0.'\אאWgشאصPא03K3 Cache zNk Load KFDQ:مאC$Q$%53k Load KFDQROVאKS!\ IsPostBack ROVא53$ Submit FDnD 553 ً 79gDfN،Z\אROVא$Q$ MasterPageFile سאH$אUgDfN، Http Rquest אل Request سאH$אUgDfN ، Http Response אل Response HttpServerUtility5Fs! א03K3bوאلא$'لאb'א Server ً 79gDfNو7א5Q+ م$+، Session אل03K3א Session ROVאlWgאص−: BfDא9−^א$Q$R Theme Request اﻟﺘﻌﺎﻣﻞ ﻣﻊ .3.1 gD01QhلאHאFD،gD3Fg3WON! אhلHאFDS Request אلFD . Request א . Request Fg}'م7QHאאWS(لH)אHزnDaqM 'م7V+TאhلאIאد$:^ل3 لH9אX'א$Q$QF، ghلאHאQtאROVאS وAction אلoQQ،iאدU :ً ^3אKPTمH'O אoQUًوذ7SN,t אPost وCGet ﻛﻮد <form name="form1" id="form1" action="Process.asp" method = "GET"> ... </form> :ً .O7Q1مH'OאoQQ5Pو،ًMQ(مאN@אO .net U ﻛﻮد <form id="form1" runat="server"> . POST SsאZ!9لאH9 א7QאنFROV@אOSg!'دtאROVًאنאsאZ!אcQאWS 5Fs b אlWS RNe gNP و، Http Rquest i,3 'لb' א9 ASP.net אن :*אjVوאلوא$אg!${tوאSystem.Web.UI.Page.Request 554 ob'א bא−א$א ! אnD 0.'\אH3 ApplicationPath h3'\א53 د$DnD'J!Sو،م$+\אOV3 'ع Browser م$+\אK.53kHאt'אP אhO3!3 Cookies Get אوSet لH9אD' HttpMethod PostلH9 'نאU! :HאWمאH'OאhQ') Form ، Get لH9 'ن אU ! :H אWم אH'O אhQ') QueryString hQ') 5Fs 53 5P _ ' n i,3 URL אلhQ') izא7 'م7Q مH'Oא 9אم53 Http لVא1QKS !\ IsSecureConnection h!sونאא$ URL !אل3 RawUrl ! אh אq3D'F03K3'لوאb'א ServerVariables KF אIP !3 UserHostAddress KFoM\!אא3 UserHostName ! אnD77H3X'1\אH\אKQ'R'م7دא MapPath() ! אnDo3nD http אلhQ') ªO SaveAs() ... Request אم$+א5D^39ض אNو : Form ﻗﺮاءة ﺑﻴﺎﻧﺎت اﻟﺘﻲ ﺗﻢ ارﺳﺎﻟﻬﺎ ﻓﻲ : Post X'مא$+N' C# firstName = Request.Form("txtFirstName"); ﻛﻮد VB firstName = Request.Form("txtFirstName") ﻛﻮد : GET X'مא$+N'و C# ﻛﻮد 555 firstName = Request.QueryString ["txtFirstName"]; VB firstName = Request.QueryString ("txtFirstName") ﻛﻮد 7Q1אlWkجRא9 ،وسH$ولאCUN,F ID אمאل$+i,3gzא.01وא .!sאAIChFDU :ﻣﻌﺮﻓﺔ اﺣﺼﺎﺋﻴﺎت اﻟﻤﺘﺼﻔﺢ اﻟﻤﺮﺳﻞ ﻛﻮد C# string theInfo = ""; string isAOL = string.Format("Is AOL? {0} <br/>",Request.Browser.AOL); string isActivex = string.Format("Support ActiveX? {0} <br/>",Request.Browser.ActiveXControls); string isBeta= string.Format("Is Beta? {0} <br/>",Request.Browser.Beta); string isJava = string.Format("Support Java Applets? {0} </br>",Request.Browser.JavaApplets); string isCookies = string.Format("Support Cookies? {0} <br/>",Request.Browser.Cookies); string isVB = string.Format("Support VBScript? {0} <br/>",Request.Browser.VBScript); ﻛﻮد VB Dim theInfo As String = "" Dim isAOL As String = String.Format("Is AOL? {0} <br/>", Request.Browser.AOL) Dim isActivex As String = String.Format("Support ActiveX? {0} <br/>", Request.Browser.ActiveXControls) Dim isBeta As String = String.Format("Is Beta? {0} <br/>", Request.Browser.Beta) Dim isJava As String = String.Format("Support Java Applets? {0} </br>", Request.Browser.JavaApplets) Dim isCookies As String = String.Format("Support Cookies? {0} <br/>", Request.Browser.Cookies) Dim isVB As String = String.Format("Support VBScript? {0} <br/>", Request.Browser.VBScript) 556 Response اﻟﺘﻌﺎﻣﻞ ﻣﻊ .3.2 ، AIC i3 KF א ! א53 h אK7 FD K^e ، Request F P אFא :وאلא$*وאjVאnD'و،م$+F:H אWא2NאKPT ob'א א$وאCbא 2NאUم$+\א3Z(مא ContentEncoding PאFאU5P وRequest אلUF CacheوCookies (Rאnم$+\لאVאQHאFא53$] IsClientConnected Headers وאلBody אلhQ')!3 Clear() a7!lzgא3لHא\وאhFDzgא End() **ًא$%i$O3**\אFDf7QدونאKFlא<ز3لHא Flush() $Q$% URL KFאKQ' Redirect() ROVאnD Write() : Write אم$+PאnD ^ل3 C# Response.Write("<u>This is javascript code</u>"); Response.Write("<script>alert('hiiiii');</script>"); ﻛﻮد VB Response.Write("<u>This is javascript code</u>") Response.Write("<script>alert('hiiiii');</script>") ﻛﻮد 557 ASP.net أدوات .4 F!و، *.aspx UX'P3 HTML لI53Q ASP.net hدوאC 53iאدאCoQ!¦ن،7N(9F g א9 ، 234F g3 3 وg(\ א53 N71 U Q אدh دوא:T אi$Q$, g! א ذ$D .1.KPT'دPאzאHو3وzאدאUo§ K7 Q Event א03 و، GQ'_ אD 03 GN k aqs KFD t ً وאMQ אEא$ N 3א אWو .i,3! אhא : AutoPostBack ﺧﺎﺻﻴﺔ Text *Nאh3UbאlWS${،g!Q$א03 i,3! אK7NאbאlWS Combo وList Box gD'אj'א7 وאCheck Box & Radio Buttons $Q$R وאHI9אh وאدوאBox . false SksאZ!9אF7 وא،Box اﻟﺨﺼﺎﺋﺺ اﻷﺳﺎﺳﻴﺔ ﻷدوات اﻟﻮﻳﺐ .4.1 :وאل א$*وאjVאk$<t وאSystem.Web.UI.Control JOא53GQ'אhدوאC0B T ob'א א$وאCbא iאدאlWkzNאh אدوא0B$ Controls iאدאlWSKIدאhدوאC'د%م و$DوC'د%'71N3F.$ HasControls() -lHאP5P>9−iאدאKP$'\א9א ID iدא9אlWS'tאROVאnD q}'د Page iאدאlWkNsL אiאدא Parent iدא9אlWSzOIאوאH'g& Visible *jV אgN3 7T\ אhدوא System.Web.UI.WebControls.WebControl JOم א$7 F :gN3،وאضg(\ 7\א 558 ob'א bא O'نא BackColor ود$L'نא BorderColor ود$LאKQ BorderStyle ود$LضאD BorderWidth iאدאKOم$DوCKO Enabled iאدאlWk styles אصلclass אل CssClass iدא9אlWk:! Iو9`وאLא53 aאh3'3 Font PאaI'ن ForeColor 'ل1א Height אض Width Tabאم$+K7Nא53g.'3 TabIndex i دאTips 'د%وU ToolTip : اﺳﺘﻌﺮاض اﺳﻤﺎء ﺟﻤﻴﻊ اﻷدوات ﻓﻲ اﻟﻔﻮرم: ﻣﺜﺎل hدوאC 'د% \! وHasControls()א$ !sאControls b א5D 2N אCollection אم אل$+ 'دאP אNP>،:3$D53 C# string Information=""; if(myPanel.HasControls()) { foreach (Control c in PanelName.Controls) { if (!object.ReferenceEquals(c.GetType(),typeof(System.Web.UI.LiteralControl))) { Information+= string.Format("Control Name: {0} <br/>", c.ToString()); Information+= string.Format("ID: {0} <br/>", c.ID); Information+= string.Format("Control Visible: {0} <br/>", c.Visible); Information+= string.Format("ViewState: {0} <br/>", c.EnableViewState); Information+= "<br/><hr/><br/>"; Response.Wite(Information); } } } ﻛﻮد 559 VB Dim Information As String = "" If myPanel.HasControls() Then ﻛﻮد For Each c As Control In PanelName.Controls If Not Object.ReferenceEquals(c.[GetType](), GetType(System.Web.UI.LiteralControl)) Then Information += String.Format("Control Name: {0} <br/>", c.ToString()) Information += String.Format("ID: {0} <br/>", c.ID) Information += String.Format("Control Visible: {0} <br/>", c.Visible) Information += String.Format("ViewState: {0} <br/>", c.EnableViewState) Information += "<br/><hr/><br/>" Response.Wite(Information) End If Next End If : اﻧﺸﺎء أدوات وﻗﺖ اﻟﺘﺼﻤﻴﻢ: ﻣﺜﺎل C# TextBox t1 = new TextBox(); t1.ID = string.Format("dynamict1"); myPanel.Controls.Add(t1); ﻛﻮد VB Dim t1 As New TextBox() t1.ID = String.Format("dynamict1") myPanel.Controls.Add(t1) ﻛﻮد : ASP.net أﻗﺴﺎم اﻷدوات ﻓﻲ :jH'אعCi$ ASP.net Ui'د%'\אhאدوא7N : Simple controls Label 'אنN وאTextBox *N אh3K^3ً אHTML bND53gNP وASP.net 0tאhאدوא .:! I وButtons 3אHאHزCو 560 : Rich controls i وאدאCalendar Q'7 אi אدאg^3 א53، *jVIًوT^ אgNP وQ אدASP.net hدوאC 53 D'F :! I وMenu j'א7 وאTreeView i`TضאD : Data controls GridView g^3אg,א53،hאi$D7aאnD$FhאدوאS : Validation controls g! JavaScript hQ')1 Q،KFא$NDSWONQ5P !وhאدوאS،7Rאhאدوא .7RאhFDWON : Login Controls .:! I'لوI$אK` 3P\אhدوא9א53D'F : Web part controls .ROVאzא%* אjVI'نوUPR.'3م$+\bOא9VVhאدوאD'F .7gND N$t وאHTML Controls 01¤NS אאل$D3אوiFNDFtאbאhאدوאlWS nDfא3د7وسאH$א5FsولRN .hא$D'א. + ASP.net אل.ngNDQ$L אK%pNtوאGridView MasterPages .5 z`و$Q،hROVאKU l qQ90.'\א53ًًאz%אن0.א\'א53 د$DUª .hROV אKUًאHP3و$Q:NPوg3KDOQوROVא53 z@אOKFF.وROb 100:0.'\אنאK+،hROVאKUً'دא%'3@zאאWS0.א'אU .3 ROb 100 אلU KQ$ 1M! ، :VjVI $ אq U H ، i3 K U 53 z% אU gN ROV Include KFD Q نW وאASP U include אلC$3g& NS 53 hROVאKPjHROb3ROb53K{t وאMaster PagesאلNhg& ASP.net 03و،ROb :אKPT Master Page ZI وאNew Item !s.،Q'C$\אאWSX`N 561 :א$Q$אVN'دא%'وS'دP אRObU:( 3אول،k¤zTא$ ﻛﻮد <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> lWS$وK.O+\ א¤א'אد0s'.،k Master Page KFDtאROVאY'א5QWSK^> .g!jאROVضאD!71N\אlWS3א،71N\א א\^لU،a7!ROV!'قوאK(gאcQ 9''د!'قوאPنאCא،a7!אWS@ nD'AI9אh3 9אلF!ROVאaوa7! qb03U g(jאROVאK`Nא :ً ^3אiH'V ،3h 562 : אKPT'نPROVאlWg'دאصPא ﻛﻮد <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div> <center> <table border="1" width=80%> <tr> <td>hiiii, i am here</td> <td><img src="http://vb4arab.com/vb/attachments/logo.jpg" /></td> <td>any thing</td> </tr> <tr> <td>hii again</td> <td> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </td> <td><input type="button" /></td> </tr> <tr> <td colspan=2>large TD :)</td> <td>bye</td> </tr> </table> </center> </div> </form> </body> </html> 563 RObzT.FVא53 zg9א$،a7!'دPא53@ وDesigner لאلI53gFFV5P>ًو : אKPT:S$Q$R. Master Page G,,Uو،i$Q$% 'م7KPT@אOnDk'VUGRObא03 وאن،AIא,,US$Q$N3G1ً79 Page :UאbאKQ$NP>>$.ROb 'n،F7@אOSz1D : ًא$Q$'אאWS'د%وiDא3و ﻛﻮد <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content> . html ووhead אلK^3hאHאPnD'9@אنN95P Sitemap اﻟﺘﻌﺎﻣﻞ ﻣﻊ .6 KPTً7901،gو.'3hQ')oQ t وאSiteMap אل5j033 لI53 :אKPT sitemap !sً9אوz$N،.'3 hROV`,ضDوj'א. 564 :ً sאZ!'دאאPא$` ﻛﻮد <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="" title="" description=""> <siteMapNode url="" title="" description="" /> <siteMapNode url="" title="" description="" /> </siteMapNode> </siteMap> :YO YRObgوQא$אRObً ^3ضZON، Nodes אلlWSoQNFg3אن ﻛﻮد <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="Default1.aspx" title="Qא$אROb" description=""> <siteMapNode url="Default2.aspx" title="'وS'א%'ROb !" description="" /> <siteMapNode url="Default3.aspx" title="A$N\'א%'ROb" description="" /> </siteMapNode> </siteMap> 565 Menu !s'م7NوN b אMasterPage אلK7NN،h3'\אlWS53iدO9ولאRNאن : sitemapאאلWS'نPk DataSource אل$Q$و Site map ZIא، DataSource 'عאل$Q$N3G1אi'1אU : אKPT'نPWوא.'3KqTX%،אن : SiteMapPath :ً ^3אKPTنP\ א$Q$gFg3،D'F¡@אO0AIאiدאC 566 iH'VROb K303KFو، masterpage אلUgs'. أدوات اﻟﺘﺤﻘﻖ .7 hאدوאnD 'و، Client SideKFאg%gאKFQh I$\א537Rאhאدوא53D'F S :א F $] iدD אU ً ^3 $O ، AIC h I$} g% U h I$\ אH7\ :CompareValidator − 7RאאWS1UiאدאlWS aH،Hא\و l$Q$QY3ق15Fs07 h I$\אنא53$]:RangeValidator− .hلIمد. م$+\نאC53$]:RequiredFieldValidator− ¤$O Regular ExpressionnDzN 7Rא53'ع$Q$NP>: RegularExpressionValidator− Regular אل5D $Q\ \! א، oS .H و אوZP א$Q وC 0.'3 Rb 53 7R אU ً ^3 :−D− سH$א אWS%א3NP>Expressions رابط http://www.arabteam2000-forum.com/index.php?showtopic=77787 ::G RegularExpression אجא+9Y.'\א5QWS53iدO9אNP>ًMQC رابط http://regexlib.com/DisplayPatterns.aspx http://www.regular-expressions.info/ .bא7Rאhאzא%אzN :CustomValidator− .مH'Oא אWS U e t א7R אhFD %'3 ض: ValidationSummary − :*אjVאnDD'F¡אlWS' gN37RאX'1\لאIد9אiدאC:ControlToValidate 567 .]1אEو$Uאض:Display .]1אH:ErrorMessage .]1אH 'ن:ForeColor $]وHא\و.Hو،9אnD'،1h K`مH'!FV'م7N،D'F¡אlWS`אن . FووאZP9 א$Q4وא،Hא\وF RequiredFieldValidator : ً I'نPQאن5P>99א CompareValidator :Y71N3''אPQאن$9S$]وHא\وF RegularExpressionValidator : ً RRb'نPQאن$9K>9א RangeValidator : 50و10Y'نPQنC$9Fא ...gB7Rא2j ضNQgNאUو :אKPT'نאPg אصK7LאG´iאدאK0sو،مH'OאFV. :'دPوא ﻛﻮد <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %> 568 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> Name:<br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="you must eneter Name"></asp:RequiredFieldValidator> <br /> <br /> Age:<br /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox2" ErrorMessage="Age must be between 10 and 50" MaximumValue="50" MinimumValue="10"></asp:RangeValidator> <br /> <br /> Password:<br /> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> <br /> <br /> Retype Password:<br /> <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox3" ControlToValidate="TextBox4" ErrorMessage="The passwords must be the same"></asp:CompareValidator> <br /> <br /> E-mail:<br /> <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox5" ErrorMessage="invalid email address" ValidationExpression="^((?>[a-zA-Z\d!#$%&'*+\/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[04]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01- 569 \x7f])+)\])(?(angle)>)$"></asp:RegularExpressionValidator> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="Go On" /> <br /> <br /> Summery:r /> <asp:ValidationSummary ID="ValidationSummary1" runat="server" /> </div> </form> </body></html> .g!i$وאKP ControlToValidateאل$Q$RF.و،gN3KP Error Message qF.ً :'S7وسאH$א%אH$.5P_'K>9אF א زمRegularExpression ~א ﻛﻮد ^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zAZ\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$ Range אلUو، ControlToValidateb!s אControlToCompare bI¤Ng!،H7FNو . Maximum Value وMinimum Value *jVI :`N א$S,و،IאzאH]و1Iz1I9אXPHאX%وאن 570 :ﻧﻘﺎط ﺳﺮﻳﻌﺔ :NS 53 Web Parts 5D$Q\!א3NP> رابط http://msdn.microsoft.com/en-us/library/e0s9t4ck.aspx Q$7אKLא، F3VYRY7Q¤NS،ًא$% jא$(Rאng'م7tא3V!A F :NSgND$Q\!א3NP>lWSو، CSS Kאم$+אnD$FQ رابط http://www.w3.org/Style/CSS/learning 571 :NS53g!z$אNP>، Themes fQ3אم$+'אS ASP.net 53zא$א$Q$אKLא رابط http://msdn.microsoft.com/en-us/library/ykzx33wh.aspx State Management .8 אWS K(! 3 q\ OQ . א و¤H$ Desktop Application Q'1 U H{ لI 53 و 0s'אאWS نC9، q\אאWg אصScope جאلHIوאوجC234אzgאn:F7 ً (O) q\א 'م7 نC D א زم53 א نW ، KQ$ ولC 03 h אq\ א. 0M ASP.net U ً 3e o .سH$אאWSU:N7nD fN3'Sو،gD%ZאNP>r. אوq35Q+ :قא53i$'א7א5Q§NP> .View state− .Control state− .Application-Level Variable− .Cache− .Session− .Cookies− Control state .8.1 'وniدאC EnableViewState F7 אq'SD3K،h&O Kgא7Q1 אS א قngF7(O)K( ]و5دوאC53CUi'د%'\א7אLאlWSU،KPROV .ROVא אلªOdאzא$` View State م$+ROVOV\ א5D2N אHTML אلR!' .:F7ViewState 572 ﻛﻮد <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTIxNDIyOTM0Mg9kFgICAw9kFgICAQ8PFgIeBFRleHQFBWFobWVkZ GRkCq8FGqyXBP0pBDpvdnycvM5zSQE=" /> :ﺧﻄﺄ ﺷﺎﺋﻊ م$+ 5QH'1\אGא، Form_Load אلE$U Q$Fj.hQ')zK}'م7جن3ًC :אX'9א C# ﻛﻮد ListBox1.Items.Add("Ahmed"); ListBox1.Items.Add("Mohammed"); ListBox1.Items.Add("Ali"); VB ListBox1.Items.Add("Ahmed") ListBox1.Items.Add("Mohammed") ListBox1.Items.Add("Ali") ﻛﻮد !!!hאi$D. لI53QFj7אzK3ً 'نb'VI،ًא$%37Q1אlWS0.א'אU 53 $] IsPostBack bאم א$+ وא، EnableViewState bI nD دFD9' אS ، KQ$ אKLא אKPTa7!אوi\אUS }'م7 NC C# if (!IsPostBack) { ListBox1.Items.Add("Ahmed"); ListBox1.Items.Add("Mohammed"); ListBox1.Items.Add("Ali"); } ﻛﻮد VB If Not IsPostBack Then ListBox1.Items.Add("Ahmed") ListBox1.Items.Add("Mohammed") ListBox1.Items.Add("Ali") End If ﻛﻮد 573 View state .8.2 5Q+'دאP^ ًא3NP> ،hאدوא5Dًא$5P'موgO\@אOnD$FAIC7Q :7Q1@אON3F. C# ViewState["CustomViewStateItem"] = "Ahmed"; ﻛﻮد VB ViewState("CustomViewStateItem") = "Ahmed" ﻛﻮد ::د9و C# Label1.Text = (string)ViewState["CustomViewStateItem"]; ﻛﻮد VB Label1.Text = DirectCast(ViewState("CustomViewStateItem"), String) ﻛﻮد Session .8.3 :P،a7!NPאf Iא037 אView State 7Q@ONو،ًא$%K3 אg7Q C# Session["mySession"] = "Ahmed"; ﻛﻮد VB Session("mySession") = "Ahmed" ﻛﻮد :iد9وא 574 C# string name = (string) Session["mySession"]; ﻛﻮد VB Dim name As String = DirectCast(Session("mySession"), String) ﻛﻮد :אKPT Session Remove KFD NP> C# Session.Remove["mySession"]; ﻛﻮد VB Session.Remove("mySession") ﻛﻮد 7.د20SًsאZ!وא،j.$:F7 Session &אلO אiZ!د$t وאTimeout bI¤NSنCF C# Session.Timeout = 5; ﻛﻮد VB Session.Timeout = 5 ﻛﻮد Cookies .8.4 )VhO3 U7אlWg&O9אQ،KFزאg%$ND5Pو7&O9אKjو53 AIC7Q ^א7Q1אSو،FאlWS K^}FQKFאOV3'نPQאنiDא3qNQ5Pن(و9אGאU JO א53 7T3 S و، O+\ א0. א\'אU K`'ل وאI$ אh3'} &O9 אU ig, . System.Web.HttpCookie "وאCMI9 א'ن א−א'אن53م$+\אHIאK`'م7N،'PאnDً9^3 אنX`N 'نz'` אQ 9 و، KMO\אم א'ن א$+ אQ ' 'د% وU 0.'F KqT K 03 و،− ً ^3 .ً ^3Ob'אSوsאZ!9א :ObאsאZ!9ً'نא9אوROV'م א7N 575 :g'د אصPא ﻛﻮد <asp:Panel ID="Panel1" runat="server" Height="134px" Width="446px" BackColor="Yellow"> X'1\א'نאHI. :<br /> <br /> <asp:RadioButton ID="RadioButton1" runat="server" Text="MIC" GroupName="colors" /> <br /> <asp:RadioButton ID="RadioButton2" runat="server" oncheckedchanged="RadioButton2_CheckedChanged" Text=""C" GroupName="colors"/> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="1" onclick="Button1_Click1" /> </asp:Panel> ،(1)H زnDaqMאE$UאKPTًH+\א'نא:!نµ'zT'م7N ،وאن :zg ًH'PאאWS1Nو 576 C# string color; if (RadioButton1.Checked) { color = "Green"; Panel1.BackColor = System.Drawing.Color.Green; } else if (RadioButton2.Checked) { color = "Red"; Panel1.BackColor = System.Drawing.Color.Red; } else color = ""; HttpCookie Cookie = new HttpCookie("myColor", color); Cookie.Expires = DateTime.Parse("01/01/2009"); Response.Cookies.Add(Cookie); ﻛﻮد VB Dim color As String If RadioButton1.Checked Then color = "Green" Panel1.BackColor = System.Drawing.Color.Green ElseIf RadioButton2.Checked Then color = "Red" Panel1.BackColor = System.Drawing.Color.Red Else color = "" End If Dim Cookie As New HttpCookie("myColor", color) Cookie.Expires = DateTime.Parse("01/01/2009") Response.Cookies.Add(Cookie) ﻛﻮد !3! myColor 'د%وUو،'Pאizא7'م7N ،KqT Form_Load אلE$Uوאن ::F. C# if (Request.Cookies["myColor"]!=null) { string color = Request.Cookies["myColor"].Value; if (color=="Green") Panel1.BackColor = System.Drawing.Color.Green; else if (color=="Red") Panel1.BackColor = System.Drawing.Color.Red; } ﻛﻮد 577 VB If Request.Cookies("myColor") IsNot Nothing Then Dim color As String = Request.Cookies("myColor").Value If color = "Green" Then Panel1.BackColor = System.Drawing.Color.Green ElseIf color = "Red" Then Panel1.BackColor = System.Drawing.Color.Red End If End If ﻛﻮد Application .8.5 QK، $وאKFhא5Q§Q9k I535Pو، HttpApplicationState 537T3 AIC7Q $NDًאp3'نPQ אنqNQ W وאHدאوא$D'Sk^ل3aא،z Fא0FKV אن5P>h5Q§ .a7!$وאKFD@وz Fא0B :*אjVوאلوא$אnDJO אlWS' ob'א א$وאCbא Fj7$Q$%$Q$%VND !sא Add() i'د%'\אbNא0Bאאض AllKeys i'د%'\אbNدא$D!3 Count D'F¡אKQ$vFم א$DאوvFא Lock(), Unlock() KPאfWوC،Y3وC،N317U VNDfWLم$+ RemoveAt() Remove() RemoveAll() :אKPT$Q$% Application !sאNP> C# Application["Visitors"] = 1; ﻛﻮد VB Application("Visitors") = 1 ﻛﻮد 578 :ً ^3'אنND03Ug אد5P>و C# labelVistor.Text=(string)Application["Visitors"]; ﻛﻮد VB labelVistor.Text = DirectCast(Application("Visitors"), String) ﻛﻮد :ً ^3F. KQ$و C# Application["Visitor"]= ((int)Application["Visitor"])+1; ﻛﻮد VB Application("Visitor") = CInt(Application("Visitor")) + 1 ﻛﻮد ﻣﻼﺣﻈﺔ ... ً بل قد تكون مصفوفة من الفئات مثال، قد ال تكون نص فقطApplication التنس ان محتويات ال Cache .8.6 SzT9 ، k a7! N3 iZ! $Q$ NP> 5P و، z F אig%C 0B $ND 1 V AIC N7 :ً ^3א3مא$+ C# Context.Cache["myCache"] = "hii, my first cache"; ﻛﻮد 579 VB Context.Cache("myCache") = "hii, my first cache" ﻛﻮد :iو د C# string myCache = (string)Context.Cache["myCache"]; ﻛﻮد VB Dim myCache As String = DirectCast(Context.Cache("myCache"), String) ﻛﻮد Global.asax .8.7 5P> ودوאلGlobal h אq35Q+ Global.asax o3אم$+ אS 5Q+'عאs'3UNQ$j%I :אKPTSHI.و$Q$%VND!s.، RObא53g'لb'א :ًא'אدאsאZ!אg$`،ROVאlWk!s א$ 580 C# <%@ Application Language="C#" %> <script runat="server"> void Application_Start(object sender, EventArgs e) { // Code that runs on application startup } ﻛﻮد void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown } void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs } void Session_Start(object sender, EventArgs e) { // Code that runs when a new session is started } void Session_End(object sender, EventArgs e) { // Code that runs when a session ends. // Note: The Session_End event is raised only when the sessionstate mode // is set to InProc in the Web.config file. If session mode is set to StateServer // or SQLServer, the event is not raised. } </script> VB <%@ Application Language="VB" %> <script runat="server"> Private Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs on application startup End Sub Private Sub Application_End(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs on application shutdown End Sub Private Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) ﻛﻮد 581 ' Code that runs when an unhandled error occurs End Sub Private Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs when a new session is started End Sub Private Sub Session_End(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs when a session ends. ' Note: The Session_End event is raised only when the sessionstate mode ' is set to InProc in the Web.config file. If session mode is set to StateServer ' or SQLServer, the event is not raised. End Sub </script> State ! א'אع אل03 K3 bI jH وאل$ hOQ nD ROV אlWS ' ، (9 Fو K3 iH אدאU $O دوאل53 S وApplication_Errorz1I אEو$ L !s א، Management O+\ אState Management bN 3א$+ א0B U gN3 iدO9 אNP> و، وعT\ אhROb .سH$אאWSUgD N!tא وﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎتASP.net .9 tאh3'\א53^ ج50.א'אU، ASP.net 03hא$D'א._DUQ'%אنWI]N .NSg71Ntوא، ADO.net وسHدUgF م$+N ، م$+F gD وh אi$D. 53 zC izא7 a7! 'م7Q a 0.'3 KF Qא$ 'م7N אW :K.א9^وC@'دP' אSאWSa7!،lو2N\אאnDًj$3'hi$D. C# SqlConnection cn = new SqlConnection(@"Data Source=AHMEDPC\SQLEXPRESS;Initial Catalog=Items;Integrated Security=True;Pooling=False"); cn.Open(); SqlCommand cmd = new SqlCommand("select * from Items",cn); SqlDataReader dr= cmd.ExecuteReader(); while (dr.Read()) { Response.Write("<b><font color=blue> Item Number: </font></b>" + dr.GetInt64(0).ToString() + "<br/>"); Response.Write("<b><font color=blue> Item Name: </font></b>" + ﻛﻮد 582 dr.GetString(1) + "<br/>"); Response.Write("<b><font color=blue>Item Price: </font></b>" + dr.GetInt64(2).ToString() + "<hr/>"); } VB Dim cn As New SqlConnection("Data Source=AHMED-PC\SQLEXPRESS;Initial Catalog=Items;Integrated Security=True;Pooling=False") cn.Open() Dim cmd As New SqlCommand("select * from Items", cn) Dim dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() ﻛﻮد Response.Write("<b><font color=blue> Item Number: </font></b>" + dr.GetInt64(0).ToString() + "<br/>") Response.Write("<b><font color=blue> Item Name: </font></b>" + dr.GetString(1) + "<br/>") Response.Write("<b><font color=blue>Item Price: </font></b>" + dr.GetInt64(2).ToString() + "<hr/>") End While :2Nوא ، iH'V אaאH K7 h אi$D7 oMN F אول$م א$+N ، ً . אضFD KF`N אن 'نP 'دP א− 2N3 KP gsN t وא234 אH3 @O U iamges $ U H'V אoMN :אKPT 583 ﻛﻮد C# SqlConnection cn = new SqlConnection(@"Data Source=AHMEDPC\SQLEXPRESS;Initial Catalog=Items;Integrated Security=True;Pooling=False"); cn.Open(); SqlCommand cmd = new SqlCommand("select * from Items",cn); SqlDataReader dr= cmd.ExecuteReader(); Response.Write("<center><table border=1><tr valign=center align=center bgcolor=#AAAAAA><td><b>Item No.</b></td><td><b>Item Name</b></td><td><b>Item Price</b></td><td><b>Sample</b></td></tr>"); while (dr.Read()) { Response.Write("<tr><td><b>" + dr.GetInt64(0).ToString() + "</b></td>"); Response.Write("<td>" + dr.GetString(1) + "</td>"); Response.Write("<td>" + dr.GetInt64(2).ToString() + "</td>"); Response.Write(@"<td><img src='images/" + dr.GetString(3) + "'></td></tr>"); } Response.Write("</table></center>"); ﻛﻮد VB Dim cn As New SqlConnection("Data Source=AHMED-PC\SQLEXPRESS;Initial Catalog=Items;Integrated Security=True;Pooling=False") cn.Open() Dim cmd As New SqlCommand("select * from Items", cn) Dim dr As SqlDataReader = cmd.ExecuteReader() Response.Write("<center><table border=1><tr valign=center align=center bgcolor=#AAAAAA><td><b>Item No.</b></td><td><b>Item Name</b></td><td><b>Item Price</b></td><td><b>Sample</b></td></tr>") While dr.Read() Response.Write("<tr><td><b>" + dr.GetInt64(0).ToString() + "</b></td>") Response.Write("<td>" + dr.GetString(1) + "</td>") Response.Write("<td>" + dr.GetInt64(2).ToString() + "</td>") Response.Write("<td><img src='images/" + dr.GetString(3) + "'></td></tr>") End While Response.Write("</table></center>") :ً ^3 אKPT'نP2Nوא 584 ﻣﻼﺣﻈﺔ gRtאh g אnDfNאن، ASP CLassic _DUg71Ntא7Q1@אOSlWS ..net~אN DataGrid .9.1 ...g3K3אنאX`N، ASP.net 03ig,hאhא^אدوאiدא9 אlWS4 SqlDataSource GR. 53و،RאFDK%א533CH*وز03.، DataGrid . :אKPTNو$´g1'م7و 585 . Next aqsא، Connection String אلªOً79N3 G1 :K7LאhQ')!HI.،hאH$V3$Q$N3 G1^^אi'1אU :D'د$ ًא وq3oMNאW،a7!Y30jMאHg&אULمא$+Fطאن,ًMQ א0MN :אKPT*Nא03א0M وControl :] 586 .zgאaqsא، Query {אلNP> a7! NF.W אSqlDataSource 'نאلPk DataSource HI. ، DataGrid אلi'م'د7Nאن :אKPT K.WN3lzT :אWkًgT3ًJ, 'نP2Nא، Enter HزnDaqMوאOم.HאHI.،234`א. ،a7!و 587 : ﺧﺼﺎﺋﺺ اﺿﺎﻓﻴﺔ g(\אSkאو،iאدאlWg7!\! אs9*אjVא5DאنE$RN :אKPT'د%'\אYHI9אNP> و،صI CSS لI53g(\אKQ$NP> ، hROV'د א%' vF אNP> ، GridView iدאC nD O+\ אhF vF אS ، ^ א17Nא :ًMQאGZوאHI9وא 588 :אKPTًJ,'نP 2Nא :אم$+د$¡אK`אizא.NP>،HI E$0sوX`N אن C# string something=GridView1.SelectedRow.Cells[0].ToString(); ﻛﻮد VB Dim something As String something=GridView1.SelectedRow.Cells(0).ToString() ﻛﻮد :*א'אصאjVא5Fs$`N אن :ً ^3אKPT،!s9وאKQ$وאfWLאhF*jVאlWSN F 589 .:! IًضوMQمא$+t وאdetails view وFormView K^3AIאhًאدوאMQ א¤NS :ً ^3 אKPT$Q3Ggjوאi$FD*אjVIUKQ$א5P>،hدوא9אlWSKP K9وس אH$אUS${KbOא.، ASP.net 03hא$D'א._DUQ'%lWS ...ADO.net 590 WAP .10 ft وאProtocol Wireless Application!א\وN7אnDQ'ff'،سH$אאWSU لI53N7אlWS03K3אOسH$אאWS53^אzאUق1NF، WAPًאHVIא .net. ؟WAP ﻣﺎ ﻫﻲ.10.1 : Mobile Application ﺗﻄﺒﻴﻘﺎت اﻟﻤﻮﺑﺎﻳﻞ 3אH'1،lH'g&.و:N3f$kنאF^3Okאh\P\אzא%91لVوאKQ'\א$Q_ K h\P\ אK%C 53 م$+Q KQ'\ א$Q _ و، ً MQC F وg! و3$I وKQ'\ אV אن . S وQ$F\ وא3$7\ אh71אم א$+ وאZ9 אnD 'لI$ אU م$+Q bC ،:אصKqTو(א:وאKQ'\אh71nDل$i$Q$%hR1V3hg&l وGאאWkو aQWوאV+TאhLאnD WEB1V\ً!دא3 WAP1V3hR1V\אlWS5Fs53ون .:3$IوZ_א ؟WAP ﻣﺎ ﻫﻮ ال 9א53s'وאSFو،Wireless Application ProtocolFPHVIאSWAPFP!ً7NOאF طHMobiles7Nאo'אkאig%CaHf$gQ\DStanderdوCH3SWAPאنcQאWS!¦ن . مVN\א ن7א hN 53 ^א oVNא U lQ'1 و ، Z iدON3KFgN3K tوאA4P'لאF[אh,HP!Ch,$'\و''لא4אאWSz%$.و .5QIא5Dol{אUو ؟WAP ﻛﻴﻒ ﺗﻌﻤﻞ ` qViHوMمQ3אWSو،'F[אo'אkאhP3אHאUKFg] WEB5D WAPF V+Tאig%H73'F[אig%bאh\אhאH$.osوDאos03K3وאhא .ًMQCk I53hضאDQtא,T`אqbو 591 l{אUi$Q! gN3KtوאA4P'لאF[אh,h,K_WAPאلN7 لI53و .'F[אgg%CnDZ9אh3$IلIد9ًo :¦!RObGUو،:! Iوo\وC3ROVY3URLلKFאG لI53WAPאلV.C$و WAP و''لאل5Fsg3א$+אQ HTMLKi&N3ضD7QS وWML HTML BQ .אi7OאUgTf'و ...ًMQCHTMLD$RbC'F[אo'אkنאCWQ$وא WML .10.2 U HTML5Do§و، XML Q3nDgNP وHTML KFD7Q1ًא$%gT3hאob'7QS :gN3ط7Nא53د$D אضKg Cardsh.1$N\א7NQ − <html>53ً9$ <wml>'Sj אTag'א− .</card>~ًMQCgN<وcard>~.1KC$ :−Q$PQو53−ً ^3אKPTوذWMLOs'Qً9^3ضNQא$ ﻛﻮد <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://www.phone.com/dtd/wml11.dtd" > <wml> <card id="main" title="First Card"> <p mode="wrap">This is a sample WML page.</p> </card> </wml> : ﻗﺮاءة اﻟﻘﻴﻢ اﻟﻤﺨﺘﻠﻔﺔ وﺗﺨﺰﻳﻨﻬﺎ وﻋﺮﺿﻬﺎ ﻟﻠﻤﺴﺘﺨﺪم :אKPTk.دNوאh אq\אoQNP>KP ﻛﻮد <setvar name="First_Name" value="Ahmed"/> <setvar name="Age" value="21"/> 592 :ً ^3אKPTgsDNP>ً79و ﻛﻮد <p>First Name: $(First_Name)</p> . q\אא53ً9$iאאدא0sوQً3e7Q1@אONSelectوC*03F.izא.ًMQא5P>و :−'ل7N3^ل3–م$+FgsDوHIאiدאC.izא7^ل3 ﻛﻮد <card id="card1" title="Tutorial"> <do type="accept" label="Answer"> <go href="#card2"/> </do> <p> <select name="name"> <option value="HTML">HTML Tutorial</option> <option value="XML">XML Tutorial</option> <option value="WAP">WAP Tutorial</option> </select> </p> </card> <card id="card2" title="Answer"> <p> You selected: $(name) </p> </card> </wml> WAP + ASP.net .10.3 :אKPTنWوא−Q$PQو53'ل7N\א−7\ولאCUlNsDWא1אKQ'RNF.ذא ﻛﻮد <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://www.phone.com/dtd/wml11.dtd" > <wml> <card id="main" title="First Card"> <p mode="wrap">This is a sample WML page.</p> </card> </wml> 593 :אKPT'نPQf'!net.:Q'RNF.و ﻛﻮد <%@ Page Inherits="System.Mobile.UI.MobilePage" Language="C#" %> <%@ Register TagPrefix="mobile" Namespace="System.Mobile.UI" %> <mobile:Form runat="server"> <mobile:Label runat="server"> This is a sample WML page. </mobile:Label> </Mobile:Form> :אKPTVa7!אول1 אVB.net1'אK3אUHU ﻛﻮد <%@ Page Inherits="System.Mobile.UI.MobilePage" Language="C#" %> oSزg%53G1نאUwmlROVאKQ'ً9وCQ،KFאK.53ROVאG$NDوאن .O'3'وCV+,زg%530.'\אGUHTMLi,3KQ'RאQوC،'لF) U א א¡لWS U ^P אKFD P3 زאل3 5P و، NET. لI 53 WAP 1 ^ل3 aC אWS ن 3$7\ אhאH א53 و ذgP3 وאij אאig% אnD f אU و، ً 3'FD 0.'\'ع אs'3 .ًb'VI 594 Ajax .11 ! א\وZ אN7 h3$I 53 iدO9 אO ً Q ضN ASP.net 'لIس אH$א אWS U .net . لI53 AJAX AJAX اﺟﺎﻛﺲ.11.1 وCi$Q$%qg!0.א'אUو، Asynchronous JavaScript and XML FP HVIאS z{ nD @% א$F ، و، AIC 7Q1 i'د%'\د אH'אF אم$+ אS 3 H$. i$Q$% N7 'نPQ53zKFאG$ND:¦! LאlWSUو،i$nD.K3م.אi$DROVא .K3PROVאQ$H(9ًא1M3 وZPא$Q4א53i$Q$ א+N!אs אGmail وZPא$Q4'אS AJAX אم$+^א3Cg,CKو . Hotmail وYahoo ~ :N7אlWS5DQ$PQوRObiHQز01 }H$Q\\!א رابط http://en.wikipedia.org/wiki/Ajax_%28programming%29 ؟.net ﻛﻴﻒ أﺑﺪأ ﻣﻦ ﺧﻼل U \ אhאF\ אnD 'لVL אKg و¤$D t אh אدوא53 ¢ i$D Hא$b !'وPQ3 3. Atlas nFQ3אم$+وC،ًQو$QlH'baCU3א אWgم7א01لQאnDNP،AJAX . AJAX XbI!'وPQ3 53+Sو 595 h אدوא53 D'F S و، Asp.net Ajax ToolKit Hא$b !'وPQ3 3. Kg א53 $QFو aאאאWS لI 53gsאא5P>tאO+\א رابط http://ajax.asp.net/ajaxtoolkit/ :a لאאI53hאدوאlWSKF و0.'\אiHQز01 رابط http://ajax.asp.net/ 4Dg'لb'א5P>،ً3'FD Asp.net ولhאدوאlWkF א\'אدא53F+sP30.'\'!אQF :aא אאWS رابط http://www.asp.net/learn/default.aspx?tabid=63 : ًא$Q$'Q$OאאWS لI53z$ אNP> رابط http://download.microsoft.com/downlo...List-Video.zip . Atlas אم$+אO5DQא$אWN3vT 'م7و :'Q$OאאWSgN3i,3 Ajax ToolKit אم$+z$ אOvTAICوسHد¤NSو رابط http://www.asp.net/learn/videos/view...tabid=63&id=75 http://www.asp.net/learn/videos/view...tabid=63&id=76 ...אولN71KFDUC$N ،وאن 596 53و،ROVאQ$Fe01iH'b!s.ًMQ א،Lא.'א:!*ض03KFDX% : 3אHزU 'دאPאP. C# TextBox1.Text = DateTime.Now.ToString(); ﻛﻮد VB TextBox1.Text = DateTime.Now.ToString() ﻛﻮد Q 9 r z$\@ אO 1 ولRN אن، K3P ROV אQ$ Q KO ، E$d 3 (9 KS . :!KQ$אWאz אnDA' ]א :אKPT@% אhאدوא5Fs53 ScriptManager !sQא$.אW ، جH אU a7! iH'V א¤ 03 gIא$3אH* وزN א03 0s' . و، UpdatePanel GR . אن :אKPTROV'ن'دאP ﻛﻮد <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default6.aspx.cs" Inherits="Default6" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> 597 <form id="form1" runat="server"> <div> <img src="images/food.jpg" /> <asp:UpdatePanel runat="server"><ContentTemplate> <br /> <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="ShowTime" /> </ContentTemplate></asp:UpdatePanel> </div> </form> </body> </html> ق! ً؟؟HO(א9 KS،X%وאن update panel ج אلHI39אH ز0s و$Q N אNsZ!ذא 'א3I 'عs'3 1 ولRN אن، KB .5PאWS،:^Q$Q9r : update panel אلKI'دאدאPאP.و، update Panel جאلHI3אHزGRאa7! ﻛﻮد <Triggers> <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /> </Triggers> :אKPTً 3'دP אV ﻛﻮد <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default6.aspx.cs" Inherits="Default6" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <div> 598 <img src="images/food.jpg" /> <asp:UpdatePanel runat="server"><ContentTemplate> <br /> <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /> </Triggers> </asp:UpdatePanel> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="ShowTime" /> </div> </form> </body> </html> ؟AIC i3قHO(א9KS :ﻋﻮدة ﻟﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت אK7UF.א0sوX%و،ROV אUiH'b0sوX%،hא$D'א. 'لIאN71'دN . Enter nDaqM.وnV.א ل אل1Q Q$R אK`N אN71 U ، K3P ROV אQ$ Q ً MQ א، E$d 3 (9 KS . :Q').]نCدونa7!GridView osא53و،3אHزosא، GridView אلg!0sو، update panel 0s ،lN%Fًא$%a'عs'\א :אKPTK3P'دאPאV،s\سאH$אU 'دF Triggers אل ﻛﻮد <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> 599 <body> <form id="form1" runat="server"> <center> <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ItemsConnectionString %>" SelectCommand="SELECT * FROM [Items] WHERE ([ItemPrice] < @ItemPrice)"> <SelectParameters> <asp:ControlParameter ControlID="TextBox1" DefaultValue="0" Name="ItemPrice" PropertyName="Text" Type="Int64" /> </SelectParameters> </asp:SqlDataSource> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="Button" /> <asp:TextBox ID="TextBox1" runat="server">1000</asp:TextBox> <asp:Label ID="Label1" runat="server" Text="0jMא5DRא "></asp:Label> <br /> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"> </asp:ScriptManager> <br /> <asp:UpdatePanel ID="UpdatePanel1" runat="server" > <ContentTemplate> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" AutoGenerateSelectButton="True" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Horizontal" onselectedindexchanged="GridView1_SelectedIndexChanged"> <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /> <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" /> <Columns> <asp:CommandField ShowSelectButton="True" /> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="ItemName" HeaderText="ItemName" SortExpression="ItemName" /> <asp:BoundField DataField="ItemPrice" HeaderText="ItemPrice" 600 SortExpression="ItemPrice" /> <asp:BoundField DataField="ItemPicture" HeaderText="ItemPicture" SortExpression="ItemPicture" /> </Columns> <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" /> <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" /> <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" /> <AlternatingRowStyle BackColor="#F7F7F7" /> </asp:GridView> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger EventName="Click" ControlID="Button1" /> </Triggers> </asp:UpdatePanel> <br /> <br /> <br /> </div> </center> </form> </body> </html> .قHOאª9و،ROV` א.a7!אن : AJAX Toolkit אאضNP> ، AJAX ¨د3 1 nD ¤$D t אh אدوא53 B D'F !'وPQ3 !' :NS3$7\אhدوא9א رابط http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ :NSS${،FאhS'Q$OאQ5Dg!i$אوא5Dz,K!3 NP> رابط http://www.asp.net/ajax/ajaxcontroltoolkit/ 601 ﺧﺎﺗﻤﺔ اﻟﻜﺘﺎب 602 _DUطא7NאnD'dW وא.net 2008_D03N'%QgNNbو$.'نP$LאאWS . QzT'א\!وiدQزUFS$.'نCنCאًو$O3'نPQنCא53'%HC،.net 2008 :وZPאtو$3nDXPאRObQ5DXPא+InDא عb'א3NP> www.AhmedGamal-Technical.blogspot.com ]1InوC3'\אUوC'دPאU]1ICh$% ً'وM!،QgNאUHC'دوDCQא$אUhذFو Q$ ًא ' ن$ ً ]'نMQ א، وZP א$Q nD : cאH ' i אدQ U !]'نj 3 .XPאאWS537\א¢NאYوQ'1hאZ.א .XPאאWSUcFDودC$DوCS53KPAICi3P,HC .Y\אXH$FLوא .YBC:Rbو:nDو$F)NnDאnbو اﻟﻤﺼﺎدر 603 .Pro C# 2008X− Pro C# 2008 and the .NET 3.5 Platform, Exploring the .NET universe using curly brackets. Aouther: Andrew Troelsen. Edition: Fourth Edition .MSDN− MSDN – Microsft Developer Network, http://msdn2.microsoft.com/en-us/default.aspx .X!`'אلA$N353.O3h973− http://www.vb4arab.com .4אQOאA$N353.O3h973− http://www.arabteam2000-forum.com/ 604 605