SlideShare uma empresa Scribd logo
1 de 103
Baixar para ler offline
‫اﺣﻤﺪی‬ ‫ﺣﺴﯿﻦ‬
‫ﺑﻨﯿﺎﻧﮕﺬار‬
‫و‬ ‫ﺗﻮﺳﯿﻨﺴﻮ‬
‫و‬ ‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬
‫دﻫﻨﺪه‬ ‫ﺗﻮﺳﻌﻪ‬
‫وب‬ ‫ارﺷﺪ‬
‫ﻣﻘﺪﻣﺎﺗﯽ‬ (#C) ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫راﯾﮕﺎن‬ ‫آﻣﻮزش‬ ‫ﮐﺎﻣﻠﺘﺮﯾﻦ‬
.‫آﻣﺪﯾﺪ‬ ‫ﺧﻮش‬ ‫ﮔﺎم‬ ‫ﺑﻪ‬ ‫ﮔﺎم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ (#C) ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫راﯾﮕﺎن‬ ‫آﻣﻮزش‬ ‫ﮐﺎﻣﻠﺘﺮﯾﻦ‬ ‫ﺑﻪ‬
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺑﺮای‬ ‫ﮐﺎﻣﻞ‬ ‫اﻟﺒﺘﻪ‬ ‫و‬ ‫راﯾﮕﺎن‬ ‫ﻣﺮﺟﻊ‬ ‫ﯾﮏ‬ ‫دﻧﺒﺎل‬ ‫ﺑﻪ‬ ‫اﮔﺮ‬
‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫ﺷﻤﺎ‬ ‫ﻣﻄﻠﺐ‬ ‫اﯾﻦ‬ ‫در‬ .‫اﺳﺖ‬ ‫ﺷﻤﺎ‬ ‫ﻣﻨﺎﺳﺐ‬ ‫ﻣﻄﻠﺐ‬ ‫اﯾﻦ‬ ‫ﻫﺴﺘﯿﺪ‬ (#C)
.‫ﺷﺪ‬ ‫ﺧﻮاﻫﯿﺪ‬ ‫آﺷﻨﺎ‬ ‫اون‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫ﮔﺎم‬ ‫ﺑﻪ‬ ‫ﮔﺎم‬ ‫و‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬
‫از‬ ‫ﺑﻌﺪ‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺷﻤﺎ‬ ، ‫راﯾﮕﺎن‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺟﺎﻣﻊ‬ ‫ﻣﻘﺎﻟﻪ‬ ‫اﯾﻦ‬ ‫ﺑﺮ‬ ‫ﻋﻼوه‬
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﺒﺎﺣﺚ‬ ‫ﺗﮑﻤﯿﻞ‬ ‫ﺑﺮای‬ ‫زﯾﺮ‬ ‫ﻫﺎی‬ ‫ﻟﯿﻨﮏ‬ ‫ﺑﻪ‬ ، ‫ﻣﻘﺎﻟﻪ‬ ‫اﯾﻦ‬ ‫ﻣﻄﺎﻟﻌﻪ‬
.‫ﮐﻨﯿﺪ‬ ‫ﻣﺮاﺟﻌﻪ‬
‫ﻣﻄﻠﺐ‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬ ‫ﺳﺮﻓﺼﻞ‬
‫ﻫﺎ‬ ‫ﺳﺮﻓﺼﻞ‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﻌﺮﻓﯽ‬ .1
‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫ﺑﺨﺶ‬ .1 .1
‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬ .1 .2
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺨﺶ‬ .1 .3
‫دوره‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬ .2
‫اﺳﺖ؟‬ ‫ﺑﻬﺘﺮ‬ ‫ﮐﺪام‬ 10 ‫وﯾﻨﺪوز‬ ‫ﯾﺎ‬ 8.1 ‫ﯾﺎ‬ 8 ،7 ‫وﯾﻨﺪوز‬ .2 .1
‫ﭼﯿﺴﺖ؟‬ ‫اﺳﺘﻮدﯾﻮ‬ ‫وﯾﮋوال‬ | Visual Studio ‫ﻣﻌﺮﻓﯽ‬ .2 .2
NET Framework. ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3
NET Framework. ‫ﺗﺎرﯾﺨﭽﻪ‬ .3 .1
‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﻠﯽ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮ‬ ‫ﻣﺮوری‬ .3 .2
NET Framework. ‫ﻧﻘﺶ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3 .3
‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ JIT ‫و‬ CLR ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .4
‫ﻫﺎ‬ ‫ﮐﺪ‬ ‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ‫و‬ JIT ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ .4 .1
GC ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ .4 .2
Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .5
‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ .6
‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫و‬ ‫ﮐﻨﺴﻮل‬ ‫دﺳﺘﻮرات‬ .7
Console ‫ﻣﺤﯿﻂ‬ ‫اوﻟﯿﻪ‬ ‫دﺳﺘﻮرات‬ .7 .1
Console.Write ‫دﺳﺘﻮر‬ .7 .2
Console.WriteLine ‫دﺳﺘﻮر‬ .7 .3
Console.ReadKey ‫دﺳﺘﻮر‬ .7 .4
‫آﻧﻬﺎ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ ‫ﺗﻌﺮﯾﻒ‬ ‫ﺷﯿﻮه‬ ‫و‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ .7 .5
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫دﺳﺘﻮرات‬ .7 .6
‫ﮐﺪﻫﺎ‬ ‫ﺑﺮای‬ Comment ‫ﯾﺎ‬ ‫ﯾﺎدداﺷﺖ‬ ‫ﻧﻮﺷﺘﻦ‬ .7 .7
‫ﺧﻄﯽ‬ ‫ﺗﮏ‬ ‫ﯾﺎدداﺷﺖ‬ .7 .8
‫ﺧﻄﯽ‬ ‫ﭼﻨﺪ‬ ‫ﻫﺎی‬ ‫ﯾﺎدداﺷﺖ‬ .7 .9
‫اوﻟﯿﻪ‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ .8
‫ای‬ ‫رﺷﺘﻪ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .1
‫ﻋﺪدی‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ .8 .2
‫ﮐﺎراﮐﺘﺮ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .3
Boolean ‫ﯾﺎ‬ ‫ﻣﻨﻄﻘﯽ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .4
object ‫ﯾﺎ‬ ‫ﺷﺊ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .5
var ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﻪ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ .8 .6
const ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﻪ‬ .8 .7
‫ﻋﻤﻠﮕﺮﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .9
‫ﻣﺤﺎﺳﺒﺎﺗﯽ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .1
‫ای‬ ‫راﺑﻄﻪ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .2
‫ﻣﻨﻄﻘﯽ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .3
‫ﺑﯿﺘﯽ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .4
‫اﻧﺘﺴﺎب‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .5
‫ﻋﻤﻠﮕﺮﻫﺎ‬ ‫ﺗﻘﺪم‬ ‫ﺣﻖ‬ .9 .6
if ‫دﺳﺘﻮر‬ .10
‫ﮐﻨﺘﺮﻟﯽ‬ ‫دﺳﺘﻮرات‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .10 .1
if ‫دﺳﺘﻮر‬ .10 .2
if else ‫دﺳﺘﻮر‬ .10 .3
1 ‫ﻋﻤﻠﯽ‬ ‫ﻣﺜﺎل‬ .10 .4
if - else if ‫دﺳﺘﻮر‬ .10 .5
2 ‫ﻋﻤﻠﯽ‬ ‫ﻣﺜﺎل‬ .10 .6
switch ‫دﺳﺘﻮر‬ .11
(for ‫)دﺳﺘﻮر‬ ‫ﻫﺎ‬ ‫ﺣﻠﻘﻪ‬ .12
(Nested Loops) ‫ﺗﻮ‬ ‫در‬ ‫ﺗﻮ‬ ‫ﻫﺎی‬ ‫ﺣﻠﻘﻪ‬ .12 .1
break ‫دﺳﺘﻮر‬ .12 .2
continue ‫دﺳﺘﻮر‬ .12 .3
for ‫دﺳﺘﻮر‬ ‫از‬ ‫دﯾﮕﺮ‬ ‫ﻣﺜﺎل‬ ‫ﭼﻨﺪ‬ .12 .4
(do-while ‫و‬ while ‫)دﺳﺘﻮر‬ ‫ﻫﺎ‬ ‫ﺣﻠﻘﻪ‬ .13
‫ﻧﺎﻣﺤﺪود‬ ‫ﻫﺎی‬ ‫ﺣﻠﻘﻪ‬ .13 .1
do-while ‫ﺣﻠﻘﻪ‬ .13 .2
foreach ‫دﺳﺘﻮر‬ ‫و‬ ‫ﻫﺎ‬ ‫آراﯾﻪ‬ .14
Length ‫ﺧﺎﺻﯿﺖ‬ .14 .1
‫ﺑﻌﺪی‬ ‫ﭼﻨﺪ‬ ‫ﻫﺎی‬ ‫آراﯾﻪ‬ .14 .2
Jagged Arrays ‫ﯾﺎ‬ ‫ﻧﺎﻣﻨﻈﻢ‬ ‫ﻫﺎی‬ ‫آراﯾﻪ‬ .14 .3
foreach ‫دﺳﺘﻮر‬ .14 .4
‫ﯾﮏ‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .15
‫ﻣﺘﺪﻫﺎ‬ ‫ﺗﻌﺮﯾﻒ‬ ‫ﺷﯿﻮه‬ .15 .1
‫ﻣﺘﺪﻫﺎ‬ ‫در‬ ‫ﻫﺎ‬ ‫ﭘﺎراﻣﺘﺮ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ .15 .2
‫ﭘﺎراﻣﺘﺮﻫﺎ‬ ‫ﺑﺮای‬ ‫ﻓﺮض‬ ‫ﭘﯿﺶ‬ ‫ﻣﻘﺎدﯾﺮ‬ .15 .3
‫ﻧﺎم‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺎ‬ ‫ﻫﺎ‬ ‫ﭘﺎراﻣﺘﺮ‬ ‫دﻫﯽ‬ ‫ﻣﻘﺪار‬ .15 .4
‫ﻣﺘﺪﻫﺎ‬ ‫از‬ ‫ﺑﺎزﮔﺸﺘﯽ‬ ‫ﻣﻘﺎدﯾﺮ‬ .15 .5
‫دو‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .16
ref ‫و‬ out ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﺎت‬ .16 .1
‫ﻣﺘﺪ‬ ‫ﺧﺮوﺟﯽ‬ ‫و‬ ‫ورودی‬ ‫ﻋﻨﻮان‬ ‫ﺑﻪ‬ ‫آراﯾﻪ‬ .16 .2
params ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﻪ‬ .16 .3
Method Overloading ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .16 .4
Recursive Methods ‫ﯾﺎ‬ ‫ﺑﺎزﮔﺸﺘﯽ‬ ‫ﻣﺘﺪﻫﺎی‬ .16 .5
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﺷﺒﮑﻪ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ .1
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﮔﺮا‬ ‫ﺷﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ .2
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﻣﻮازی‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ .3
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ LINQ ‫آﻣﻮزش‬ .4
‫آﻣﻮزﺷﯽ‬ ‫)دوره‬ ‫دﻧﯿﺎ‬ ‫در‬ ‫ﺻﺪ‬ ‫ﺗﺎ‬ ‫ﺻﻔﺮ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫دوره‬ ‫ﮐﺎﻣﻠﺘﺮﯾﻦ‬ .5
(‫وﯾﺪﯾﻮﯾﯽ‬
‫ﻫﺎ‬ ‫ﺳﺮﻓﺼﻞ‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﻌﺮﻓﯽ‬
‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﺑﺎ‬ ‫و‬ ‫ﺑﭙﺮدازﯾﻢ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺑﻪ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫آﻣﻮزﺷﯽ‬ ‫ﻣﻘﺎﻟﻪ‬ ‫اﯾﻦ‬ ‫در‬
‫و‬ ‫ﮐﺎﻣﻞ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫از‬ ‫ﻫﺪف‬ ..‫ﺑﺸﯿﻢ‬ ‫آﺷﻨﺎ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ ‫ﻣﺮﺑﻮط‬
‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﻫﺴﺖ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﮐﺎرﺑﺮدی‬
‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺎر‬ ‫ﺳﺎل‬ ‫ﭼﻨﺪﯾﻦ‬ ‫ﻣﺪت‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺗﺠﺮﺑﯿﺎﺗﯽ‬ ‫ﮐﻨﻢ‬ ‫ﻣﯽ‬ ‫ﺳﻌﯽ‬ ، ‫دوره‬ ‫اﯾﻦ‬ ‫ﻃﻮل‬ ‫در‬
.‫ﺑﺪم‬ ‫ﻗﺮار‬ ‫دوﺳﺘﺎن‬ ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫رو‬ ‫آوردم‬ ‫دﺳﺖ‬ ‫ﺑﻪ‬ ‫ﻧﻮﯾﺴﯽ‬
‫ﻫﺴﺘﯿﺪ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ ‫ﭘﺎﯾﻪ‬ ‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﯾﺎدﮔﯿﺮی‬ ‫ﺑﺎ‬ ‫ﻣﻨﺪ‬ ‫ﻋﻼﻗﻪ‬ ‫ﮐﻪ‬ ‫ﺻﻮرﺗﯽ‬ ‫در‬
:‫ﮐﻨﯿﺪ‬ ‫ﻣﻄﺎﻟﻌﻪ‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫را‬ ‫زﯾﺮ‬ ‫ﻣﻄﻠﺐ‬
‫ﮐﺎرﺑﺮدی‬ ‫و‬ ‫ﺳﺎده‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬
‫زﯾﺮ‬ ‫ﻣﻮارد‬ ‫از‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫آﻣﻮزش‬ ‫ﺑﺮای‬ ‫ﺑﻨﺪه‬ ‫ﮐﻪ‬ ‫ﮐﻨﻨﺪ‬ ‫ﺗﻮﺟﻪ‬ ‫ﻋﺰﯾﺰ‬ ‫دوﺳﺘﺎن‬
‫اﺑﺰارﻫﺎ‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ ‫ﻧﯿﺎز‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ ‫رﻓﺘﻦ‬ ‫ﭘﯿﺶ‬ ‫ﺑﺮای‬ ‫دوﺳﺘﺎن‬ ‫ﮐﻪ‬ ‫ﮐﺮد‬ ‫ﺧﻮاﻫﻢ‬ ‫اﺳﺘﻔﺎده‬
: ‫داﺷﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬
‫اﯾﻦ‬ ‫رﺳﺎﻧﯽ‬ ‫روز‬ ‫ﺑﻪ‬ ‫آﺧﺮﯾﻦ‬ ‫ﮐﻪ‬ Update 2 ‫ﻫﻤﺮاه‬ ‫ﺑﻪ‬ Visual Studio 2013 ‫ﻣﺤﯿﻂ‬ .1
‫ﻫﺴﺖ‬ ‫ﻧﺴﺨﻪ‬
8.1 ‫وﯾﻨﺪوز‬ .2
‫اﺳﺘﻔﺎده‬ NET Framework. ‫و‬ Visual Studio ‫ﺗﺮ‬ ‫ﭘﺎﯾﯿﻦ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫از‬ ‫اﮔﺮ‬ ‫دوﺳﺘﺎن‬
‫ﻧﺴﺨﻪ‬ .‫ﻧﺒﺎﺷﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ ‫ﺑﺮاﺷﻮن‬ ‫ﻣﻄﺎﻟﺐ‬ ‫از‬ ‫ﺑﺮﺧﯽ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﻣﻤﮑﻦ‬ ،‫ﮐﻨﻨﺪ‬ ‫ﻣﯽ‬
‫ﺑﺮ‬ ‫ﻫﺎ‬ ‫دوره‬ ‫ﺗﻤﺎﻣﯽ‬ ‫ﮐﺪﻫﺎی‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﻫﺴﺖ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ ‫ﻧﯿﺰ‬ SQL Server 2012
‫از‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﮔﻔﺘﻢ‬ ‫ﮐﻪ‬ ‫ﻫﻤﻮﻧﻄﻮر‬ ‫اﻣﺎ‬.‫ﻫﺴﺘﻨﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ ‫ﻫﻢ‬ 7 ‫و‬ 8 ‫وﯾﻨﺪوز‬ ‫روی‬
:‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫ﺗﺸﮑﯿﻞ‬ ‫زﯾﺮ‬ ‫ﺑﺨﺶ‬ ‫ﺳﻪ‬
‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫ﺑﺨﺶ‬
‫آﺷﻨﺎ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫و‬ NET Framework. ‫ﻣﻘﺪﻣﺎت‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬
:‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫دوره‬ ‫ﻫﺎی‬ ‫ﺳﺮﻓﺼﻞ‬ ‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ ‫و‬ NET Framework. ‫ﻣﻌﻤﺎری‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .1
Visual Studio 2013 ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫آﺷﻨﺎﯾﯽ‬ .2
Visual Studio 2013 ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫آﺷﻨﺎﯾﯽ‬ .2
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3
‫ﻫﺎ‬ ‫ﻧﻮع‬ ‫و‬ ‫ﻋﺒﺎرات‬ ،‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫ﻣﺒﺤﺚ‬ .4
‫ﻫﺎ‬ ‫ﺷﺮط‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺣﻠﻘﻪ‬ ‫ﮐﻨﺘﺮﻟﯽ‬ ‫دﺳﺘﻮرات‬ .5
‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .6
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﻫﺎ‬ Namespace .7
‫ﮔﺮا‬ ‫ﺷﺊ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .8
‫ﻫﺎ‬ ‫ﺷﺊ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .9
‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫در‬ ‫ﻫﺎ‬ ‫اون‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﻣﺒﺎﺣﺚ‬ .10
‫ﻫﺎ‬ ‫اﯾﻨﺪﮐﺴﺮ‬ .11
‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺮی‬ ‫ارث‬ ‫و‬ ‫وارﺛﺖ‬ ‫ﻣﺒﺤﺚ‬ .12
Polymorphism ‫ﻣﺒﺤﺚ‬ .13
‫ﮔﺮا‬ ‫ﺷﺊ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ Abstraction ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .14
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫در‬ ‫ﻫﺎ‬ Access Modifier ‫و‬ Encapsulation ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .15
‫آﻧﻬﺎ‬ ‫از‬ ‫ﺻﺤﯿﺢ‬ ‫اﺳﺘﻔﺎده‬ ‫ﭼﮕﻮﻧﮕﯽ‬ ‫و‬ Interface ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .16
‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺎ‬ ‫آن‬ ‫ﻓﺮق‬ ‫و‬ ‫ﻫﺎ‬ Struct .17
Type Casting ‫و‬ Operator Overloading .18
Value Types ‫و‬ Reference Type ‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﺑﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .19
Anonymous) ‫ﻧﺎم‬ ‫ﺑﺪون‬ ‫ﻣﺘﺪﻫﺎی‬ ‫و‬ ‫ﻫﺎ‬ Event ،‫ﻫﺎ‬ Delegate ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .20
(Methods
Lambda Expressions ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .21
#C ‫زﺑﺎن‬ ‫در‬ ‫ﻫﺎ‬ ‫رﺷﺘﻪ‬ ‫ﺑﺎ‬ ‫ﮐﺎر‬ .22
Generics ‫ﻣﺒﺤﺚ‬ ‫و‬ (Collections) ‫ﻫﺎ‬ ‫ﻣﺠﻤﻮﻋﻪ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .23
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﺧﻄﺎﻫﺎ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﻫﺎ‬ Exception .24
‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬
‫ﻣﺒﺎﺣﺚ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫دوره‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫ﺑﺨﺶ‬ ‫اﺗﻤﺎم‬ ‫ﺑﺎ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬
‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫اراﺋﻪ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﺪﻣﺖ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫ﭘﯿﺸﺮﻓﺘﻪ‬
:‫ﻫﺴﺘﻨﺪ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬ ‫ﻫﺎ‬ ‫ﺳﺮﻓﺼﻞ‬
Aspect ‫ﻣﺒﺤﺚ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ ‫و‬ Reflection ‫ﻣﺒﺤﺚ‬ ‫و‬ ‫ﻫﺎ‬ Attribute ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .1
Oriented Programming
‫ﻫﺎ‬ ‫ﺷﺊ‬ ‫از‬ ‫ﮔﺮﻓﺘﻦ‬ ‫ﮐﻮﺋﺮی‬ ‫و‬ LINQ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .2
DLR ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫داﯾﻨﺎﻣﯿﮏ‬ ‫ﻫﺎی‬ ‫ﻗﺎﺑﻠﯿﺖ‬ .3
DLR ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫داﯾﻨﺎﻣﯿﮏ‬ ‫ﻫﺎی‬ ‫ﻗﺎﺑﻠﯿﺖ‬ .3
Thread ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ :1 ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫ﺷﺎﻣﻞ‬ ‫ﮐﻪ‬ Asynchronous ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .4
‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ await ‫و‬ async ‫ﻗﺎﺑﻠﯿﺖ‬ :3 ‫و‬ ‫ﻫﺎ‬ Task :2 ،‫ﻫﺎ‬
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﻫﺎ‬ AppDomain ‫و‬ ‫ﻫﺎ‬ Process ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .5
(Pointers) ‫ﻫﺎ‬ ‫ﮔﺮ‬ ‫اﺷﺎره‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ .6
Authentication، ‫ﻣﺒﺎﺣﺚ‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﮐﻪ‬ NET Framework. ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫ﻣﺒﺤﺚ‬ .7
.‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫آﺷﻨﺎ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ ‫ﻧﯿﺰ‬ Hashing ‫و‬ Encryption ‫و‬ Authorization
Registery ‫و‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫ﺑﺎ‬ ‫ﮐﺎر‬ .8
(Interop) ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ COM ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ .9
‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺨﺶ‬
‫ﺷﺎرپ‬
Data-Centric ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻣﺒﺎﺣﺜﯽ‬ ،‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬ ‫ﭘﺎﯾﺎن‬ ‫ﺑﺎ‬
‫ﺧﻮاﻫﻨﺪ‬ ‫آﺷﻨﺎ‬ ‫زﯾﺮ‬ ‫ﻣﻮارد‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺮوع‬ ‫را‬ ‫ﻫﺴﺘﻨﺪ‬
:‫ﺷﺪ‬
‫و‬ NET Framework. ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .1
#C ‫زﺑﺎن‬
(Relational Databases) ‫ای‬ ‫راﺑﻄﻪ‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .2
‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻃﺮاﺣﯽ‬ ‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .3
Visual Studio ‫و‬ SQL Server Management Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫اوﻟﯿﻪ‬ ‫آﺷﻨﺎﯾﯽ‬ .4
SQL Server Data Tools
SQL Server 2014 ‫در‬ ‫ﻫﺎ‬ ‫راﺑﻄﻪ‬ ‫و‬ ‫ﺟﺪاول‬ ،‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫اﯾﺠﺎد‬ .5
(Insert - Update - Delete ‫)دﺳﺘﻮرات‬ ‫ﺟﺪاول‬ ‫ﻫﺎی‬ ‫داده‬ ‫در‬ ‫ﺗﻐﯿﯿﺮ‬ ‫اﯾﺠﺎد‬ .6
SQL ‫در‬ SELECT ‫دﺳﺘﻮر‬ ‫ﺑﺎ‬ ‫اوﻟﯿﻪ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫و‬ ‫ﺟﺪاول‬ ‫از‬ ‫ﮔﺮﻓﺘﻦ‬ ‫ﮐﻮﺋﺮی‬ .7
‫آﻧﻬﺎ‬ ‫از‬ ‫ﺻﺤﯿﺢ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ ‫و‬ ‫ﻫﺎ‬ Stored Procedure ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .8
ADO.NET ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .9
‫ﻫﺎ‬ Command ‫و‬ ‫ﻫﺎ‬ Connection ‫از‬ ‫اﺳﺘﻔﺎده‬ .10
Data Readers ‫ﺑﺎ‬ ‫ﺟﺪاول‬ ‫از‬ ‫اﻃﻼﻋﺎت‬ ‫ﺧﻮاﻧﺪن‬ .11
ADO.NET ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻫﺎی‬ ‫داده‬ ‫ﺑﻪ‬ Asynchronous ‫دﺳﺘﺮﺳﯽ‬ .12
Data Sets ‫و‬ Data Adapters ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .13
ADO.NET ‫در‬ ‫ﻫﺎ‬ Transaction ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ .14
‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﺑﻪ‬ ‫دﺳﺘﺮﺳﯽ‬ ‫ﺟﻬﺖ‬ Entity Framework ‫از‬ ‫اﺳﺘﻔﺎده‬ .15
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬
‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬
‫ﻣﻮاردی‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺎ‬ ‫ﺳﺎده‬ ‫ﻧﺴﺒﺘﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﯾﮏ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺎ‬ ،‫دوره‬ ‫ﺳﻪ‬ ‫ﭘﺎﯾﺎن‬ ‫و‬ ‫اﻧﺘﻬﺎ‬ ‫در‬
‫ﯾﺎدﮔﯿﺮی‬ ‫ﺑﺎ‬ ‫ﻣﺎﯾﻞ‬ ‫ﮐﻪ‬ ‫دوﺳﺘﺎﻧﯽ‬ ‫اﻣﯿﺪوارم‬ .‫رﺳﻮﻧﯿﻢ‬ ‫ﻣﯽ‬ ‫ﭘﺎﯾﺎن‬ ‫را‬ ‫دوره‬ ،‫آﻣﻮﺧﺘﯿﻢ‬ ‫ﮐﻪ‬
.‫ﺑﺎﺷﻨﺪ‬ ‫ﻫﻤﺮاه‬ ‫ﻣﺎ‬ ‫ﺑﺎ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫ﺗﺎ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬
‫دوره‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬
‫ﺟﻬﺖ‬ ‫ﻣﻘﺪﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫اﺑﺰارﻫﺎﯾﯽ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫آﻣﻮزش‬ ‫دوم‬ ‫ﻗﺴﻤﺖ‬ ‫در‬
‫ﺑﻬﺘﺮ‬ ‫ﺟﻬﺖ‬ ‫اﺑﺰارﻫﺎ‬ ‫اﯾﻦ‬ ‫از‬ ‫ﺑﺮﺧﯽ‬ .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺪﻧﺪ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫دوره‬ ‫ﮔﺬراﻧﺪن‬
‫ﻧﺴﺨﻪ‬ ‫داﻧﻠﻮد‬ ‫ﻟﯿﻨﮏ‬ ،‫اﺑﺰارﻫﺎ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫و‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺿﻤﻦ‬ .‫ﻫﺴﺘﻨﺪ‬ ‫ﮐﺎر‬ ‫ﻣﺤﯿﻂ‬ ‫ﺷﺪن‬
‫ﺧﻮب‬ .‫ﮔﺮﻓﺖ‬ ‫ﺧﻮاﻫﺪ‬ ‫ﻗﺮار‬ ‫دوﺳﺘﺎن‬ ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫ﺷﺪه‬ ‫ﻣﻌﺮﻓﯽ‬ ‫اﺑﺰارﻫﺎی‬ ‫آزﻣﺎﯾﺸﯽ‬ ‫ﻫﺎی‬
.‫ﺑﭙﺮدازﯾﻢ‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻪ‬ ‫ﺑﻬﺘﺮه‬
‫اﺳﺖ؟‬ ‫ﺑﻬﺘﺮ‬ ‫ﮐﺪام‬ 10 ‫وﯾﻨﺪوز‬ ‫ﯾﺎ‬ 8.1 ‫ﯾﺎ‬ 8 ،7 ‫وﯾﻨﺪوز‬
‫اﯾﻦ‬ ‫ﺑﻪ‬ ،‫دارﻧﺪ‬ ‫ﺑﺎﻻ‬ ‫ﺑﻪ‬ 7 ‫ﻧﺴﺨﻪ‬ ‫وﯾﻨﺪوز‬ ‫ﺑﻪ‬ ‫ﻧﯿﺎز‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﮔﺬراﻧﺪن‬ ‫ﺟﻬﺖ‬ ‫دوﺳﺘﺎن‬
‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫روی‬ 4.5.1 ‫ﻧﺴﺨﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﺤﺖ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﻪ‬ ‫ﺧﺎﻃﺮ‬
‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﻪ‬ ‫ﻋﻼﻗﻪ‬ ‫اﮔﺮ‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﺷﺪ‬ ‫ﻧﺨﻮاﻫﻨﺪ‬ ‫اﺟﺮا‬ ‫وﯾﻨﺪوز‬ ‫ﺗﺮ‬ ‫ﭘﺎﯾﯿﻦ‬
‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﮐﻪ‬ Visual Studio ،‫دارﯾﺪ‬ RT ‫ﻫﻤﻮن‬ ‫ﯾﺎ‬ 8.1 ‫و‬ 8 ‫وﯾﻨﺪوز‬
.‫ﮐﻨﯿﺪ‬ ‫ﻧﺼﺐ‬ 8.1 ‫ﯾﺎ‬ 8 ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫روی‬ ‫رو‬ ‫ﻣﯿﺸﻪ‬
‫ﭼﯿﺴﺖ؟‬ ‫اﺳﺘﻮدﯾﻮ‬ ‫وﯾﮋوال‬ | Visual Studio ‫ﻣﻌﺮﻓﯽ‬
‫ﺑﺘﻮﻧﯿﻢ‬ ‫ﮐﻪ‬ ‫دارﯾﻢ‬ ‫ﻧﯿﺎز‬ ‫ﻣﺤﯿﻄﯽ‬ ‫ﺑﻪ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫ﻣﺎ‬
‫ﺑﻪ‬ ‫و‬ ‫ﮐﻨﯿﻢ‬ ‫اﺟﺮا‬ ‫رو‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ،‫ﮐﻨﯿﻢ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫رو‬ ‫ﻫﺎﻣﻮن‬ ‫ﻓﺎﯾﻞ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﭘﺮوژه‬ ،‫داﺧﻠﺶ‬
Integrated Development Environment ‫اﺑﺰارﻫﺎ‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ .‫ﺑﭙﺮدازﯾﻢ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺧﻄﺎﯾﺎﺑﯽ‬
‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫اﺑﺰار‬ ‫ﺑﻬﺘﺮﯾﻦ‬ ‫و‬ ‫ﻣﻌﺮوﻓﺘﺮﯾﻦ‬ .‫ﻣﯿﮕﻦ‬ IDE ‫اﺧﺘﺼﺎر‬ ‫ﺑﻪ‬ ‫ﯾﺎ‬
.‫ﺷﺪه‬ ‫اراﺋﻪ‬ ‫ﻣﺨﺘﻠﻔﯽ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﺴﺖ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ،‫ﺷﺎرپ‬
‫روی‬ ‫ﺑﺮ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫و‬ 4.5.1 ‫ﻧﺴﺨﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ، Visual Studio ‫ﻧﺼﺐ‬ ‫ﺑﺎ‬
‫اراﺋﻪ‬ ‫ﻣﺨﺘﻠﻔﯽ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫در‬ Visual Studio .‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﻧﺼﺐ‬ ‫ﺷﻤﺎ‬ ‫ﺳﯿﺴﺘﻢ‬
‫ﺑﻪ‬ Express ‫ﻧﺴﺨﻪ‬ .‫ﮐﺮدم‬ ‫اﺳﺘﻔﺎده‬ Ultimate ‫ﻧﺴﺨﻪ‬ ‫از‬ ‫ﻣﻦ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﺷﺪه‬
Ultimate ‫ﻧﺴﺨﻪ‬ ‫ﺑﻪ‬ ‫ﻧﺴﺒﺖ‬ ‫ﮐﻤﺘﺮی‬ ‫اﻣﮑﺎﻧﺎت‬ ‫دارای‬ ‫ﮐﻪ‬ ‫ﺷﺪه‬ ‫ﻋﺮﺿﻪ‬ ‫راﯾﮕﺎن‬ ‫ﺻﻮرت‬
:‫ﮐﻨﯿﺪ‬ ‫داﻧﻠﻮد‬ ‫زﯾﺮ‬ ‫ﻟﯿﻨﮏ‬ ‫ﻃﺮﯾﻖ‬ ‫از‬ ‫ﻣﯿﺘﻮﻧﯿﺪ‬ ‫رو‬ Visual Studio .‫ﻫﺴﺖ‬
Visual Studio 2022 ‫داﻧﻠﻮد‬
‫ﺑﺮای‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫و‬ ‫اﺑﺰارﻫﺎ‬ ‫ﺑﺎ‬ ‫اوﻟﯿﻪ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﻮب‬
‫دات‬ ‫ﻣﻌﻤﺎری‬ ‫و‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﺧﺪا‬ ‫اﻣﯿﺪ‬ ‫ﺑﻪ‬ .‫ﺑﻮد‬ ‫دوره‬ ‫ﺷﺮوع‬
‫ﺷﻤﺎ‬ ‫ﻫﻤﻪ‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫ﺗﺎ‬ ‫ﭘﺲ‬ .‫داد‬ ‫ﺧﻮاﻫﻢ‬ ‫اراﺋﻪ‬ ‫رو‬ ‫ﻣﻄﺎﻟﺒﯽ‬ ‫ﺷﻤﺎ‬ ‫ﺧﺪﻣﺖ‬ ‫ﻧﺖ‬
.‫ﺳﭙﺎرم‬ ‫ﻣﯽ‬ ‫ﺑﺰرگ‬ ‫ﺧﺪای‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻋﺰﯾﺰان‬
NET Framework. ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬
‫ﺧﻮاﻫﯿﻢ‬ NET Framwork. ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺳﺮی‬ ‫اداﻣﻪ‬ ‫در‬
،‫دارﻧﺪ‬ ‫ﺗﺌﻮری‬ ‫ﺟﻨﺒﻪ‬ ‫ﺑﯿﺸﺘﺮ‬ ،‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻣﻄﺮح‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻣﻮاردی‬ .‫ﭘﺮداﺧﺖ‬
‫ﻗﺼﺪ‬ ‫ﮐﻪ‬ ‫ﻣﺤﯿﻄﯽ‬ ‫از‬ ‫درﺳﺘﺮی‬ ‫درک‬ ‫ﮐﻪ‬ ‫ﻣﯿﮑﻨﻪ‬ ‫ﮐﻤﮏ‬ ‫ﻣﺎ‬ ‫ﺑﻪ‬ ‫ﻣﺒﺎﺣﺚ‬ ‫ﯾﺎدﮔﯿﺮی‬ ‫اﻣﺎ‬
‫در‬ ،‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫ﻣﻄﺎﻟﺐ‬ ‫ﺑﻮدن‬ ‫زﯾﺎد‬ ‫دﻟﯿﻞ‬ ‫ﺑﻪ‬ .‫ﺑﺎﺷﯿﻢ‬ ‫داﺷﺘﻪ‬ ‫ﮐﻨﯿﻢ‬ ‫ﮐﺎر‬ ‫اون‬ ‫ﺑﺎ‬ ‫دارﯾﻢ‬
‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﻣﻄﺮح‬ ‫ﮐﻪ‬ ‫ﻣﻄﺎﻟﺒﯽ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬.‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫اراﺋﻪ‬ ‫ﺑﺨﺶ‬ ‫ﺳﻪ‬ ‫ﯾﺎ‬ ‫دو‬
:‫ﻫﺴﺘﻨﺪ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬
NET Framework. ‫ﺗﺎرﯾﺨﭽﻪ‬ .1
‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﻠﯽ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮ‬ ‫ﻣﺮوری‬ .2
‫آن‬ ‫ﮐﺎرﺑﺮد‬ ‫و‬ CLR ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3
‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫در‬ JIT ‫ﮐﺎر‬ ‫ﻧﺤﻮه‬ .4
‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ .5
‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺎرﺑﺮدی‬ ‫اﺑﺰارﻫﺎی‬ ‫ﺑﺮﺧﯽ‬ .6
NET Framework. ‫ﺗﺎرﯾﺨﭽﻪ‬
،‫ﺑﺎﺷﻨﺪ‬ ‫داده‬ ‫اﻧﺠﺎم‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺎر‬ NET Framework. ‫ﻋﺮﺿﻪ‬ ‫از‬ ‫ﻗﺒﻞ‬ ‫ﮐﻪ‬ ‫اﻓﺮادی‬
Component Object Model ‫ﯾﺎ‬ COM .‫دارﻧﺪ‬ ‫آﺷﻨﺎﯾﯽ‬ COM ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﻔﻬﻮﻣﯽ‬ ‫ﺑﺎ‬
‫داده‬ ‫اراﺋﻪ‬ ‫وﯾﻨﺪوز‬ ‫ﺗﺤﺖ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ‬ ‫ﮐﻪ‬ ‫ﺑﻮد‬ ‫ﺗﮑﻨﻮﻟﻮژی‬
‫ﺗﮑﻨﻮﻟﻮژی‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ ‫ﺑﺎﺷﯿﺪ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻗﺒﻞ‬ ‫ﺑﻪ‬ 6 ‫ﻧﺴﺨﻪ‬ Visual Basic ‫ﺑﺎ‬ ‫اﮔﻪ‬ .‫ﺑﻮد‬
.‫دارﯾﺪ‬ ‫آﺷﻨﺎﯾﯽ‬
‫ارﺗﺒﺎط‬ ‫ﻫﻤﺪﯾﮕﻪ‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﻣﯿﺪاد‬ ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫ﻣﺨﺘﻠﻒ‬ ‫اﺟﺰای‬ ‫ﺑﻪ‬ ‫رو‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫اﯾﻦ‬ COM
‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫ﮐﺮدن‬ ‫ﻟﯿﻨﮏ‬ ‫و‬ Re-Usable ‫ﻫﺎی‬ ‫ﮐﺎﻣﭙﻮﻧﻨﺖ‬ ‫ﻧﻮﺷﺘﻦ‬ .‫ﺑﺎﺷﻨﺪ‬ ‫داﺷﺘﻪ‬
C++، ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ .‫ﺑﻮد‬ COM ‫ﻫﺎی‬ ‫ﮐﺎرﺑﺮد‬ ‫از‬ ‫ﻫﻤﺪﯾﮕﻪ‬ ‫ﺑﻪ‬ ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫ﻣﺨﺘﻠﻒ‬
‫ﻧﻮﯾﺴﺎﻧﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﻣﺎ‬ .‫ﮐﺮدﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻓﺮاﻫﻢ‬ ‫رو‬ COM ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻠﯿﺖ‬ Visual Basic
.‫داﺷﺖ‬ ‫ﻗﺮار‬ ‫روﺑﺮوﺷﻮن‬ ‫ﻫﻢ‬ ‫ﻣﺸﮑﻼﺗﯽ‬ ‫ﮐﺮدﻧﺪ‬ ‫ﻣﯽ‬ ‫اﺳﺘﻔﺎده‬ COM ‫از‬ ‫ﮐﻪ‬
‫ﺑﺎﻫﺎش‬ ‫ﻫﺎ‬ ‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﻪ‬ ‫ﺑﻮد‬ ‫ﻣﺴﺎﺋﻠﯽ‬ ‫از‬ ‫ﯾﮑﯽ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ،‫ﻣﺜﺎل‬ ‫ﺑﺮای‬
‫در‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﻦ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ DLL ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﻣﺸﮑﻼت‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﺑﻮدﻧﺪ‬ ‫درﮔﯿﺮ‬
‫ﻣﻘﺎﻻت‬ ‫ﺳﺮی‬ ‫اداﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺑﻮد‬ COM ‫ﺗﮑﻨﻮﻟﻮژی‬ ‫ﻣﺸﮑﻼت‬ ‫دﯾﮕﺮ‬ ‫از‬ ‫ﻣﻘﺼﺪ‬ ‫ﺳﯿﺴﺘﻢ‬
.‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ NET. ‫ﻫﺎی‬ ‫ﺣﻞ‬ ‫راه‬ ‫و‬ COM ‫ﻣﺴﺎﺋﻞ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬
‫اﺳﺘﺎرت‬ COM ‫ﻣﺸﮑﻼت‬ ‫رﻓﻊ‬ ‫ﺑﺮای‬ ‫رو‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﭘﺮوژه‬ ‫ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ‬ 1990 ‫ﺳﺎل‬ ‫در‬
NET. ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫داد‬ ‫اراﺋﻪ‬ ‫رو‬ NET. ‫رﺳﻤﯽ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ 2002 ‫ﺳﺎل‬ ‫در‬ ‫و‬ ‫زد‬
‫ﺑﻪ‬ ‫دﺳﺘﺮﺳﯽ‬ ‫و‬ ‫ﮔﺮﻓﺘﻪ‬ ‫ﻗﺮار‬ COM ‫روی‬ ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﻪ‬ ‫ﻫﺴﺖ‬ ‫ای‬ ‫ﻻﯾﻪ‬ Framework
‫ﻟﺤﻈﻪ‬ ‫اﯾﻦ‬ ‫ﺗﺎ‬ .‫ﮐﺮده‬ ‫ﺗﺮ‬ ‫راﺣﺖ‬ ‫و‬ ‫اون‬ ‫ﻫﺎی‬ ‫ﮐﺎﻣﭙﻮﻧﻨﺖ‬ ‫و‬ ‫وﯾﻨﺪوز‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬
:‫ﺷﺪه‬ ‫اراﺋﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫از‬ ‫زﯾﺮ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬
2002 ‫ﺳﺎل‬ ‫در‬ 1.0 ‫ﻧﺴﺨﻪ‬ .1
2003 ‫ﺳﺎل‬ ‫در‬ 1.1 ‫ﻧﺴﺨﻪ‬ .2
2005 ‫ﺳﺎل‬ ‫در‬ 2.0 ‫ﻧﺴﺨﻪ‬ .3
2006 ‫ﺳﺎل‬ ‫در‬ 3.0 ‫ﻧﺴﺨﻪ‬ .4
2007 ‫ﺳﺎل‬ ‫در‬ 3.5 ‫ﻧﺴﺨﻪ‬ .5
2010 ‫ﺳﺎل‬ ‫در‬ 4.0 ‫ﻧﺴﺨﻪ‬ .6
2012 ‫ﺳﺎل‬ ‫در‬ 4.5 ‫ﻧﺴﺨﻪ‬ .7
2013 ‫ﺳﺎل‬ ‫در‬ 4.5.1 ‫ﻧﺴﺨﻪ‬ .8
2014 ‫ﺳﺎل‬ ‫در‬ 4.5.2 ‫ﻧﺴﺨﻪ‬ .9
‫ﻫﻤﺮاه‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﻫﺴﺖ‬ 4.5.2 ‫ﯾﻌﻨﯽ‬ ‫آﺧﺮ‬ ‫ﻧﺴﺨﻪ‬ ،‫ﺳﺮی‬ ‫اﯾﻦ‬ ‫در‬ ‫اﺳﺘﻔﺎده‬ ‫ﻣﻮرد‬ ‫ﻧﺴﺨﻪ‬
.‫ﺷﺪه‬ ‫اراﺋﻪ‬ Visual Studio 2013
‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﻠﯽ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮ‬ ‫ﻣﺮوری‬
NET. ‫ﯾﺎ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ،‫ﺷﺪه‬ ‫ﺗﺸﮑﯿﻞ‬ ‫اﺻﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫دو‬ ‫از‬ NET Framework.
‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬.CLR ‫ﯾﺎ‬ Common Language Runtime ‫و‬ Framework Class Library
‫در‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﭘﯿﺶ‬ ‫از‬ ‫آﻣﺎده‬ ‫ﻫﺎی‬ ‫ﮐﻼس‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﻪ‬ ‫ﻧﺖ‬ ‫دات‬
.‫ﻫﺴﺘﻨﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ NET. ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﺗﻤﺎﻣﯽ‬
‫ﺗﺒﺪﯾﻞ‬ .‫داره‬ ‫رو‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﺤﺖ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫اﺟﺮا‬ ‫وﻇﯿﻔﻪ‬ CLR ‫اﻣﺎ‬
‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ،‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬ ،‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪﻫﺎی‬
‫در‬ .‫ﻫﺴﺖ‬ CLR ‫وﻇﺎﯾﻒ‬ ‫از‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬
‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﻬﺘﺮ‬ ‫درک‬ ‫ﺑﺮای‬ .‫ﻫﺴﺖ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﭙﻨﺪه‬ ‫ﻗﻠﺐ‬ CLR ‫ﮔﻔﺖ‬ ‫ﻣﯿﺸﻪ‬ ‫ﺣﻘﯿﻘﺖ‬
:‫ﮐﻨﯿﺪ‬ ‫ﺗﻮﺟﻪ‬ ‫زﯾﺮ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫ﺑﻪ‬ ‫ﻧﺖ‬ ‫دات‬
‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻧﻬﺎ‬ ‫ﺑﻮﺳﯿﻠﻪ‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺷﻤﺎ‬ ‫ﮐﻪ‬ ‫دارﻧﺪ‬ ‫ﻗﺮار‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺎﻻ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫اﺑﺘﺪای‬ ‫در‬
،‫ﻣﻮﺑﺎﯾﻞ‬ ،‫وﯾﻨﺪوز‬ ،‫وب‬ ‫ﺗﺤﺖ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .‫ﺑﻨﻮﯾﺴﯿﺪ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﻫﺎی‬
‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫اﯾﻦ‬ .‫داره‬ ‫ﻗﺮار‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ،‫ﺑﻌﺪ‬ ‫ﻣﺮﺣﻠﻪ‬ ‫در‬ ،... ‫و‬ ‫وب‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬
‫ﺷﻤﺎ‬ ‫ﺑﺮای‬ ‫رو‬ ‫ﮐﺪﻫﺎ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﭘﯿﺶ‬ ‫از‬ ‫ﮐﺪﻫﺎی‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﻪ‬
.‫ﮐﻨﻪ‬ ‫ﻣﯽ‬ ‫ﺗﺮ‬ ‫راﺣﺖ‬
‫و‬ ‫ﻣﺎﺷﯿﻦ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﺷﻤﺎ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺗﺒﺪﯾﻞ‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫داره‬ ‫ﻗﺮار‬ CLR ،‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫از‬ ‫ﺑﻌﺪ‬
‫ﻗﺮار‬ ‫وﯾﻨﺪوز‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ،‫ﻻﯾﻪ‬ ‫ﺗﺮﯾﻦ‬ ‫ﭘﺎﯾﯿﻦ‬ ‫در‬ .‫داره‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫رو‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬
.‫ﻫﺴﺖ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫و‬ CLR ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ،‫ﻻﯾﻪ‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫داره‬
NET Framework. ‫ﻧﻘﺶ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬
‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫ﯾﻌﻨﯽ‬ ‫اﺻﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫دو‬ ‫از‬ ‫ﻧﺖ‬ ‫دات‬ ،‫ﺷﺪ‬ ‫اﺷﺎره‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬
‫وﻇﺎﯾﻒ‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻣﺒﻨﺎی‬ ‫و‬ ‫ﭘﺎﯾﻪ‬ CLR .‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﺗﺸﮑﯿﻞ‬ CLR ‫و‬ ‫ت‬
‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﮐﺮدﯾﻢ‬ ‫ﻣﻄﺮح‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫اﺧﺘﺼﺎر‬ ‫ﺑﻪ‬ ‫رو‬ CLR
.‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬
Reusable ‫ﮐﺪﻫﺎی‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﻪ‬ ،‫ﺷﺪ‬ ‫اﺷﺎره‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫اﻣﺎ‬
‫ﮐﻪ‬ ‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﯽ‬ (‫دارﻧﺪ‬ ‫را‬ ‫ﻣﺠﺪد‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﯾﮑﺒﺎر‬ ‫ﮐﻪ‬ ‫)ﮐﺪﻫﺎﯾﯽ‬
‫ﮐﻠﯿﻪ‬ ‫در‬ ‫ﺗﻮاﻧﺪ‬ ‫ﻣﯽ‬ ‫ﮐﺪﻫﺎ‬ ‫اﯾﻦ‬ ‫از‬ .‫اﻧﺪ‬ ‫ﮔﺮﻓﺘﻪ‬ ‫ﻗﺮار‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺧﺘﯿﺎر‬ ‫در‬
،‫وب‬ ،‫وﯾﻨﺪوز‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺗﺎ‬ ‫ﮔﺮﻓﺘﻪ‬ Console ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬
.‫ﮐﺮد‬ ‫اﺳﺘﻔﺎده‬ ‫وﯾﻨﺪوز‬ ‫و‬ ‫وب‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬
Common Language Specification ‫ﯾﺎ‬ CLS ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫اﺻﻄﻼﺣﺎت‬ ‫از‬ ‫ﯾﮑﯽ‬ ‫اﻣﺎ‬
،ECMA ‫ﯾﺎ‬ European Computer Manufacturers Assoscian ‫ﻣﻮﺳﺴﻪ‬ .‫ﻫﺴﺖ‬
‫ﺷﺪه‬ ‫ﺳﺎزی‬ ‫ﭘﯿﺎده‬ ‫اﺳﺘﺎﻧﺪارد‬ ‫اﯾﻦ‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ CLS ‫ﮐﻪ‬ ‫ﮐﺮده‬ ‫ﺗﺪوﯾﻦ‬ ‫رو‬ ‫اﺳﺘﺎﻧﺪاردی‬
‫ﻫﺴﺖ‬ ‫اﺳﺘﺎﻧﺪاردی‬ CLS ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫اﺳﺖ‬
،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﮐﻠﯿﻪ‬ ،‫اﺳﺘﺎﻧﺪارد‬ ‫اﯾﻦ‬ ‫رﻋﺎﯾﺖ‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬
#C ‫و‬ VB.NET ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫داﺷﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫را‬ ‫ﯾﮑﺪﯾﮕﺮ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﻗﺎﺑﻠﯿﺖ‬
#C ‫و‬ VB.NET ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫داﺷﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫را‬ ‫ﯾﮑﺪﯾﮕﺮ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﻗﺎﺑﻠﯿﺖ‬
،‫اﯾﺪ‬ ‫ﻧﻮﺷﺘﻪ‬ #C ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫را‬ ‫ﮐﺪی‬ ‫ﺷﻤﺎ‬ ‫ﮐﻪ‬ ‫زﻣﺎﻧﯽ‬ .‫ﻫﺴﺘﻨﺪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫زﺑﺎن‬ ‫دو‬
#C ‫زﺑﺎن‬ ‫در‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪ‬ ‫از‬ ‫ﺑﺘﻮﻧﯿﺪ‬ ‫ﮐﻪ‬ ‫ﻣﯿﺸﻪ‬ ‫داده‬ ‫ﺷﻤﺎ‬ ‫ﺑﻪ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫اﯾﻦ‬ CTS ‫ﺑﺎ‬
.‫ﮐﻨﯿﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﯿﺰ‬ VB.NET ‫زﺑﺎن‬ ‫در‬
‫ﮐﺪ‬ ‫ﯾﮏ‬ ‫ﺑﻪ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ،‫ﺑﺎﺷﻨﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺗﻄﺎﺑﻖ‬ CLS ‫اﺳﺘﺎﻧﺪارد‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﮐﺪﻫﺎﯾﯽ‬
.‫ﻫﺴﺖ‬ Assembly ‫ﮐﺪ‬ ‫ﺑﻪ‬ ‫ﺷﺒﯿﻪ‬ ‫ﮐﺪی‬ IL ‫ﮐﺪ‬ ،‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫ﺗﺮﺟﻤﻪ‬ IL ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﯿﺎﻧﯽ‬
‫ﺷﺪه‬ ‫ﺗﺮﺟﻤﻪ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ CLR ‫ﺗﻮﺳﻂ‬ IL ‫ﮐﺪ‬ ،‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ IL ‫ﮐﺪ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬
.‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫و‬
‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫دﯾﮕﺮی‬ ‫و‬ #C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﯾﮑﯽ‬ ‫ﮐﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫دو‬ ‫ﮐﺮدن‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﺣﻘﯿﻘﺖ‬ ‫در‬
‫ﮐﻪ‬ ‫ﻣﯿﺎﻧﯽ‬ ‫ﮐﺪی‬.‫ﻫﺴﺖ‬ IL ‫ﮐﺪ‬ ‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﮐﻪ‬ ‫ﮐﺪی‬ ،‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ VB.NET
Microsoft Intermediate ‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮﻫﺎی‬ ‫ﺗﻮﺳﻂ‬
‫را‬ ‫ﯾﮑﺪﯾﮕﺮ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﺑﺮﻗﺮاری‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫دارﻧﺪ‬ ‫ﻧﺎم‬ MSIL ‫ﯾﺎ‬ Language
.‫دﻫﺪ‬ ‫ﻣﯽ‬
Common ‫ﯾﺎ‬ CLI ‫اﺳﺘﺎﻧﺪارد‬ ،‫ﺷﺪه‬ ‫ﺗﺪوﯾﻦ‬ ECMA ‫ﺗﻮﺳﻂ‬ ‫ﮐﻪ‬ ‫دﯾﮕﺮی‬ ‫اﺳﺘﺎﻧﺪارد‬
‫ﻣﺸﺘﺮک‬ ‫ﺧﺼﻮﺻﯿﺎت‬ ‫ﺳﺮی‬ ‫ﯾﮏ‬ ‫اﺳﺘﺎﻧﺪارد‬ ‫اﯾﻦ‬ .‫ﻫﺴﺖ‬ Language Infrastructure
‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﻣﯿﮑﻨﺪ‬ ‫ﺗﻌﺮﯾﻒ‬ ‫رو‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮﻫﺎ‬ ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﻣﯿﺎﻧﯽ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺑﯿﻦ‬ ‫در‬
Common) ‫ﻣﺸﺘﺮک‬ ‫داده‬ ‫ﻧﻮع‬ ‫ﺳﯿﺴﺘﻢ‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫اﺳﺖ‬ ‫ﻧﯿﺎز‬ ‫آﻧﻬﺎ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪ‬ ‫اﺟﺮای‬
‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ‫و‬ Type Safety ‫ﻗﺒﯿﻞ‬ ‫از‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫ﯾﺎ‬ (Type System
‫اﺳﺘﺎﻧﺪارد‬ ‫از‬ ‫ای‬ ‫ﺧﻼﺻﻪ‬ ‫زﯾﺮ‬ ‫ﻟﯿﺴﺖ‬ .‫ﻫﺴﺘﻨﺪ‬ ‫ﺷﺪه‬ ‫ﺗﺪوﯾﻦ‬ ‫ﺧﺼﻮﺻﯿﺎت‬ ‫از‬ ‫ﮐﺪﻫﺎ‬
:‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﺤﺖ‬ ECMA ‫ﻫﺎی‬
Common Language Specification ‫ﯾﺎ‬ CLS .1
Common Type System ‫ﯾﺎ‬ CTS .2
Type Safety ‫ﯾﺎ‬ TS .3
Intermediate Language ‫ﯾﺎ‬ IL .4
‫ﺑﺨﺶ‬ ‫در‬ .‫ﭘﺮداﺧﺘﯿﻢ‬ ‫اون‬ ‫ﺳﺎﺧﺘﺎر‬ ‫و‬ NET Framework. ‫اوﻟﯿﻪ‬ ‫ﺑﻪ‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫در‬
‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﻧﺤﻮه‬ ،CLR ‫ﺧﺼﻮﺻﯿﺎت‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺳﺮوﯾﺲ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺑﻌﺪی‬
‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﺪﻫﺎ‬ ‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ،JIT ‫ﺳﺮوﯾﺲ‬ ‫و‬
.‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬
‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ JIT ‫و‬ CLR ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬
‫ﻧﺖ‬ ‫دات‬ ‫ﺗﭙﻨﺪه‬ ‫ﻗﻠﺐ‬ CLR ،‫ﮔﻔﺘﯿﻢ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﺪﻣﺖ‬ ‫ﻗﺒﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬
‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ CLR ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫زﻣﺎن‬ ‫وﻇﺎﯾﻒ‬ ‫اﮐﺜﺮ‬ ‫و‬ ‫ﺑﻮده‬
‫ﻣﺮﺑﻮﻃﻪ‬ ‫ﻧﺴﺨﻪ‬ ‫ﺑﺎﯾﺪ‬ "‫ﺣﺘﻤﺎ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ،‫ﺣﻘﯿﻘﺖ‬
‫ﻗﺼﺪ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﺷﺪه‬ ‫ﻧﺼﺐ‬ ‫ﻣﻘﺼﺪ‬ ‫ﺳﯿﺴﺘﻢ‬ ‫روی‬ ‫ﺑﺮ‬ NET Framework.
‫ﻣﻮرد‬ ‫در‬ ‫و‬ ‫ﮐﺮده‬ ‫ﻣﻌﺮﻓﯽ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﺪﻣﺖ‬ ‫را‬ CLR ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫از‬ ‫ﺑﺮﺧﯽ‬ ‫ﺗﺎ‬ ‫دارﯾﻢ‬
‫ﮐﻠﯽ‬ ‫ﻧﻤﺎی‬ ‫زﯾﺮ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫در‬ .‫ﮐﻨﯿﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ GC ‫و‬ JIT ‫ﯾﻌﻨﯽ‬ ،‫ﺳﺮوﯾﺲ‬ ‫دو‬
:‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫را‬ CLR ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫از‬
‫در‬ ‫اﺟﺮا‬ ‫زﻣﺎن‬ ‫در‬ ‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺎرﮔﺬاری‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ :Class Loader .1
‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ CLR ‫ﻣﺤﯿﻂ‬
‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫در‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﮐﻪ‬ ‫ﮔﻔﺘﯿﻢ‬ ‫ﻗﺒﻞ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ :IL to Native .2
‫ﻣﯽ‬ ‫ﺗﺒﺪﯾﻞ‬ IL ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﯿﺎﻧﯽ‬ ‫زﺑﺎن‬ ‫ﯾﮏ‬ ‫ﺑﻪ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬
‫اﺟﺮای‬ ‫ﺟﻬﺖ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪﻫﺎی‬ ‫ﺗﺒﺪﯾﻞ‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺷﻮﻧﺪ‬
‫ﻣﯽ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺑﺮﻧﺎﻣﻪ‬
.‫ﭘﺮدازﯾﻢ‬
‫ﺑﻪ‬ ‫را‬ ‫اﺟﺮا‬ ‫زﻣﺎن‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ :Code Manager .3
.‫دارد‬ ‫ﻋﻬﺪه‬
‫را‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫ﮐﺎر‬ CLR ،‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ :Garbage Collector .4
‫ﻣﯽ‬ GC ‫وﻇﺎﯾﻒ‬ ‫از‬ ‫ﺑﻼاﺳﺘﻔﺎده‬ ‫اﺷﯿﺎء‬ ‫از‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬ ،‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬
‫ﻣﯽ‬ GC ‫وﻇﺎﯾﻒ‬ ‫از‬ ‫ﺑﻼاﺳﺘﻔﺎده‬ ‫اﺷﯿﺎء‬ ‫از‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬ ،‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬
.‫ﭘﺮدازﯾﻢ‬ ‫ﻣﯽ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬
‫ﯾﺎﺑﯽ‬ ‫ﺧﻄﺎ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﻣﮑﺎﻧﺎت‬ ‫از‬ ‫ﯾﮑﯽ‬ :Debug Engine .5
Debugging ‫ﻫﻤﺎن‬ ‫ﯾﺎ‬ ‫ﺧﻄﺎﯾﺎﺑﯽ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬
.‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻪ‬ ‫را‬
‫ﺑﺪﯾﻦ‬ ،‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Type Safety ،‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫از‬ ‫ﯾﮑﯽ‬ :Type Checker .6
‫ﺑﺮای‬ .‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﺸﺨﺺ‬ ‫ﺑﺎﯾﺪ‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ ‫ﯾﺎ‬ ‫ﻫﺎ‬ Data Type ‫ﺗﻤﺎم‬ ‫ﮐﻪ‬ ‫ﻣﻌﻨﯽ‬
‫را‬ ‫ای‬ ‫رﺷﺘﻪ‬ ،‫ﻋﺪدی‬ ‫ﻧﻮع‬ ‫از‬ ‫ﻣﺘﻐﯿﺮ‬ ‫ﯾﮏ‬ ‫در‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻧﻤﯽ‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺷﻤﺎ‬ ‫ﻣﺜﺎل‬
‫ﺑﻪ‬ ‫را‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ ‫ﮐﻨﺘﺮل‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺑﺎاﻟﻌﮑﺲ‬ ‫ﯾﺎ‬ ‫ﮐﻨﯿﺪ‬ ‫ذﺧﯿﺮه‬
!‫دارد‬ ‫ﻋﻬﺪه‬
‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ CLR ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫از‬ ‫دﯾﮕﺮ‬ ‫ﯾﮑﯽ‬ :Security Engine .7
‫اﯾﻦ‬ ‫ﻣﻮرد‬ ‫در‬ .‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻣﺤﯿﻂ‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫اﻣﻨﯿﺖ‬
‫ﺻﺤﺒﺖ‬ ‫آﺗﯽ‬ ‫ﻫﺎی‬ ‫ﻓﺼﻞ‬ ‫در‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫و‬ ‫ﺳﺮوﯾﺲ‬
.‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬
‫ﺧﻄﺎﯾﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻨﮕﺎﻣﯽ‬ :Exception Manager .8
،‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﺧﻄﺎ‬ ‫آن‬ ‫ﺑﺮای‬ Exception ‫ﯾﺎ‬ ‫اﺳﺘﺜﻨﺎ‬ ‫ﯾﮏ‬ CLR ،‫اﻓﺘﺪ‬ ‫ﻣﯽ‬ ‫اﺗﻔﺎق‬
.‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫اﺳﺘﺜﻨﺎﻫﺎ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬ ‫وﻇﯿﻔﻪ‬
‫ﮐﻪ‬ COM ‫اﺟﺰای‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﻣﺰاﯾﺎی‬ ‫از‬ ‫ﯾﮑﯽ‬ :COM Marshaler .9
‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﮐﺮدﯾﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫آن‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﻗﺒﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫در‬
.‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ COM ‫اﺟﺰای‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﯿﻦ‬ ‫اﻃﻼﻋﺎت‬ ‫اﻧﺘﻘﺎل‬
Multi- ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫اﻣﺮوزی‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫از‬ ‫ﯾﮑﯽ‬ :Thread Support .10
‫ﺑﺎﻋﺚ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻫﺎ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫و‬ ‫وﻇﺎﯾﻒ‬ ‫اﻧﺠﺎم‬ ‫ﻫﻤﺰﻣﺎﻧﯽ‬ ‫ﺟﻬﺖ‬ Threading
‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺎراﯾﯽ‬ ‫ﺑﺎﻻرﻓﺘﻦ‬
.‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ Multi-Thread ‫ﺻﻮرت‬ ‫ﺑﻪ‬
‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﭘﺎﯾﻪ‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫ﺑﻪ‬ ‫دﺳﺘﺮﺳﯽ‬ ‫اﻣﮑﺎن‬ :Base Class Library .11
.‫دادﯾﻢ‬ ‫ﺗﻮﺿﯿﺢ‬ ‫ﻗﺒﻠﯽ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ BCL ‫ﻣﻮرد‬ ‫در‬ .‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻫﺎ‬
‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ‫و‬ JIT ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬
‫ﻫﺎ‬ ‫ﮐﺪ‬ ‫ﺷﺪه‬
‫ﮐﺎراﻣﺪ‬ ‫ﺑﺴﯿﺎر‬ ،‫ﺣﺎل‬ ‫ﻋﯿﻦ‬ ‫در‬ ‫وﻟﯽ‬ ‫ﭘﯿﭽﯿﺪه‬ ‫ﮐﻤﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫روﻧﺪ‬
‫ﮐﻪ‬ ‫ﺷﺪه‬ ‫اﻧﺠﺎم‬ ‫ﻃﻮری‬ ‫ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ‬ ‫ﺷﺮﮐﺖ‬ ‫ﺗﻮﺳﻂ‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫ﻃﺮاﺣﯽ‬ ‫زﯾﺮا‬ .‫اﺳﺖ‬
‫ﻗﺴﻤﺖ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ .‫ﺷﻮد‬ ‫اﻧﺠﺎم‬ ‫ﻣﻤﮑﻦ‬ ‫ﺷﮑﻞ‬ ‫ﺗﺮﯾﻦ‬ ‫ﺑﻬﯿﻨﻪ‬ ‫ﺑﻪ‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬
‫ﯾﺎ‬ JIT ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ،‫دارد‬ ‫را‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫ﺳﺮوﯾﺴﯽ‬ ،‫ﮔﻔﺘﯿﻢ‬ ‫ﻗﺒﻠﯽ‬
‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫روﻧﺪ‬ ‫ﺗﺸﺮﯾﺢ‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫زﯾﺮ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Just-In-Time
‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫روﻧﺪ‬ ‫ﺗﺸﺮﯾﺢ‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫زﯾﺮ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Just-In-Time
‫اﺟﺮای‬ ‫زﻣﺎن‬ ‫ﺗﺎ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫زﻣﺎن‬ ‫از‬ ،‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬
:‫ﭘﺮدازﯾﻢ‬ ‫ﻣﯽ‬ JIT ‫ﺗﻮﺳﻂ‬ ‫ﮐﺪ‬
‫ﻧﻈﺮﺗﺎن‬ ‫ﻣﻮرد‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫ﮐﺪ‬ ‫ﺷﻤﺎ‬ ‫اول‬ ‫ﻗﺪم‬ ‫در‬ .1
.‫ﻧﻮﯾﺴﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻣﺎﻧﻨﺪ‬
IL ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﺷﺘﯿﺪ‬ ‫ﺷﻤﺎ‬ ‫ﮐﻪ‬ ‫ﮐﺪی‬ ،‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ ،‫اداﻣﻪ‬ ‫در‬ .2
.‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻗﺮار‬ Assembly ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻓﺎﯾﻞ‬ ‫ﯾﮏ‬ ‫داﺧﻞ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﺗﺮﺟﻤﻪ‬
‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﺪﻫﺎ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﮐﻪ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﻫﺎﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫ﻫﺎ‬ Assembly
‫ﮐﻪ‬ ‫ﻫﺎ‬ Metadata ،‫ﺑﺮﻧﺎﻣﻪ‬ IL ‫ﮐﺪ‬ ‫ﺷﺎﻣﻞ‬ ‫ﻫﺎ‬ Assembly .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬
‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻗﺮار‬ CLR ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫ﺷﻤﺎ‬ ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪ‬ ‫ﻣﻮرد‬ ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬
... ‫و‬ ‫ﻧﺴﺨﻪ‬ ‫ﻣﺎﻧﻨﺪ‬ ‫اﺳﻤﺒﻠﯽ‬ ‫ﻣﻮرد‬ ‫در‬ ‫اوﻟﯿﻪ‬ ‫اﻃﻼﻋﺎت‬ ‫ﮐﻪ‬ Assembly Manifest ‫و‬
‫ﺑﻪ‬ Reflection ‫ﺑﺨﺶ‬ ‫در‬ Manifest ‫ﻫﺎ‬ Metadata ‫ﻣﻮرد‬ ‫)در‬ .‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﯽ‬
(‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫ﺗﻔﻀﯿﻞ‬
‫ﺻﺤﻨﻪ‬ ‫وارد‬ CLR ،‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺑﺎ‬ ،‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ Assembly ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .3
‫ﺑﺨﺶ‬ ‫در‬ ‫ﮐﻪ‬ Class Loader ‫ﺳﺮوﯾﺲ‬ ‫ﺗﻮﺳﻂ‬ ‫اﺑﺘﺪا‬ ‫ﮐﻪ‬ ‫ﺻﻮرت‬ ‫ﺑﺪﯾﻦ‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬
‫ﮐﺪ‬ ‫اﺟﺮای‬ ‫ﺟﻬﺖ‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اوﻟﯿﻪ‬ ‫اﻃﻼﻋﺖ‬ ،‫دادﯾﻢ‬ ‫ﺗﻮﺿﯿﺢ‬ ‫آن‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﻗﺒﻠﯽ‬
‫ﮐﺪ‬ ‫ﺳﭙﺲ‬ ‫و‬ ،‫ﺷﺪه‬ ‫ﺑﺎرﮔﺬاری‬ ‫ﺣﺎﻓﻈﻪ‬ ‫داﺧﻞ‬ ‫را‬ Metadata ‫و‬ IL ‫ﮐﺪ‬ ‫ﻣﺎﻧﻨﺪ‬
‫و‬ ‫ﺷﺪه‬ ‫ﺗﺒﺪﯾﻞ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ JIT ‫ﺗﻮﺳﻂ‬ Class Loader ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫ﺑﺎرﮔﺬاری‬
.‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬
Entiry Point ‫ﯾﺎ‬ ‫ﺷﺮوع‬ ‫ﻧﻘﻄﻪ‬ ‫ﯾﮏ‬ ‫ﺑﻪ‬ ‫ﻧﯿﺎز‬ ‫اﺟﺮا‬ ‫ﺑﺮای‬ ‫ﻧﺖ‬ ‫دات‬ ‫اﺳﻤﺒﻠﯽ‬ ‫ﻫﺮ‬ :1 ‫ﻧﮑﺘﻪ‬
‫ﺣﺎﻓﻈﻪ‬ ‫در‬ ‫را‬ Entry Point ‫ﯾﻌﻨﯽ‬ ،‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫اﺑﺘﺪا‬ ‫در‬ Class Loader ‫ﮐﻪ‬ ‫دارد‬
.‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫آن‬ JIT ‫و‬ ‫ﮐﺮده‬ ‫ﺑﺎرﮔﺬاری‬
‫ﻫﺰار‬ ‫ﭼﻨﺪﯾﻦ‬ ‫ﺷﺎﻣﻞ‬ ‫ﺗﻮاﻧﻨﺪ‬ ‫ﻣﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ :2 ‫ﻧﮑﺘﻪ‬
،‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫اﯾﻦ‬ JIT ‫ﻫﺎی‬ ‫ﻣﺰﯾﺖ‬ ‫از‬ ،‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﺠﺰا‬ ‫ﺑﺨﺶ‬ ‫و‬ ‫ﺧﻂ‬
‫ﺑﺮای‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫ﺑﺨﺶ‬ ‫ﺗﻨﻬﺎ‬ ‫ﺑﻠﮑﻪ‬ ،‫ﮐﻨﺪ‬ ‫ﻧﻤﯽ‬ ‫ﺗﺒﺪﯾﻞ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ ‫ﯾﮑﺠﺎ‬ ‫را‬ ‫ﮐﺪﻫﺎ‬ ‫ﮐﻞ‬
.‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ JIT ‫ﺗﻮﺳﻂ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﺑﺎرﮔﺬاری‬ ‫ﺣﺎﻓﻈﻪ‬ ‫در‬ Class Loader ‫ﺗﻮﺳﻂ‬ ‫اﺟﺮا‬
.‫رود‬ ‫ﻣﯽ‬ ‫ﺑﺎﻻ‬ ‫ﺑﺴﯿﺎر‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻪ‬ ‫ﺑﺎﮔﺬاری‬ ‫ﺳﺮﻋﺖ‬ ‫ﮐﺎر‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬
‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ ‫ﻣﻌﻨﺎﺳﺖ؟‬ ‫ﭼﻪ‬ ‫ﺑﻪ‬ "‫دﻗﯿﻘﺎ‬ Managed Code Execution ‫ﯾﺎ‬ MCE ‫اﻣﺎ‬
:‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫دارد‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ‫ای‬ ‫ﭘﺮوﺳﻪ‬ CLR ،‫ﮔﻔﺘﯿﻢ‬
‫ﻣﺮﺑﻮﻃﻪ‬ ‫ﻫﺎی‬ Meta Data ‫و‬ IL ‫ﮐﺪ‬ ‫ﺑﺎرﮔﺬاری‬ .1
‫آن‬ ‫اﺟﺮای‬ ‫و‬ Native ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪ‬ ‫ﺗﺒﺪﯾﻞ‬ .2
‫آن‬ ‫اﺟﺮای‬ ‫و‬ Native ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪ‬ ‫ﺗﺒﺪﯾﻞ‬ .2
‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫زﻣﺎن‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬ .3
Type Safety ‫اﻋﻤﺎل‬ .4
‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫ﮐﻨﺘﺮل‬ .5
‫ﻫﺎ‬ Exception ‫ﻣﺪﯾﺮﯾﺖ‬ .6
‫ﻫﻤﻮن‬ ‫ﯾﺎ‬ MCE ‫ﺑﻪ‬ ‫ﺷﺪ‬ ‫ذﮐﺮ‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫اﯾﯽ‬ ‫ﭘﺮوﺳﻪ‬
‫ﻣﻮﺿﻮع‬ ‫اﯾﻦ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﻣﻄﺎﻟﺐ‬ ‫اﻟﺒﺘﻪ‬ .‫ﻣﯿﺸﻪ‬ ‫ﺷﻨﺎﺧﺘﻪ‬ Managed Code Execution
‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬ ‫در‬ ،‫ﻣﻄﺎﻟﺐ‬ ‫ﺑﻮدن‬ ‫ﺗﺨﺼﺼﯽ‬ ‫دﻟﯿﻞ‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﺑﺴﯿﺎر‬
.‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫و‬ CLR ‫ﺑﻪ‬ ‫ﻣﺮﺑﻮط‬ ‫ﻣﻮﺿﻮﻋﺎت‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﺷﺎرپ‬
GC ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬
‫و‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ،‫ﮐﺎﺑﻮس‬ ‫ﺑﺰرﮔﺘﺮﯾﻦ‬ ‫ﺑﮕﯿﻢ‬ ‫ﺑﻬﺘﺮه‬ ،‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫ﮐﺎﺑﻮس‬ ‫از‬ ‫ﯾﮑﯽ‬
‫اﺳﺘﻔﺎده‬ ‫ﺣﺎﻓﻈﻪ‬ ‫از‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫از‬ ‫ﺑﻬﯿﻨﻪ‬ ‫اﺳﺘﻔﺎده‬
‫ﮐﻪ‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫ﺷﻤﺎ‬ ‫اﮔﺮ‬ .‫دارد‬ ‫ﺑﻬﺘﺮی‬ ‫ﻋﻤﻠﮑﺮد‬ ‫و‬ ‫اﺟﺮا‬ ‫ﺳﺮﻋﺖ‬ ،‫ﺑﺎﺷﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺑﻬﯿﻨﻪ‬
‫واژه‬ "‫ﺣﺘﻤﺎ‬ ،‫ﺑﺎﺷﯿﺪ‬ ‫ﮐﺮده‬ ‫ﮐﺎر‬ ،‫ﻧﺒﺎﺷﺪ‬ ‫ﺧﻮدﮐﺎر‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫آﻧﻬﺎ‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬
.‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺗﺎﺋﯿﺪ‬ ‫را‬ ‫ﮐﺎﺑﻮس‬
GC ‫ﺳﺮوﯾﺲ‬ ‫ﺑﻮﺳﯿﻠﻪ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫از‬ ‫ﺑﻬﯿﻨﻪ‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫ﻣﺴﺌﻠﻪ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫اﻣﺎ‬
GC ‫ﺳﺮوﯾﺲ‬ ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﺣﻞ‬ ‫ﮐﺎﻣﻞ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ Garbage Collector ‫ﯾﺎ‬
‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ ‫آن‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬ ‫و‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺣﯿﻦ‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﮐﺮدن‬ ‫ﻣﺎﻧﯿﺘﻮر‬ ‫وﻇﯿﻔﻪ‬
‫ﻣﻮرد‬ ‫در‬ ‫ﻧﮕﺮاﻧﯽ‬ ‫ﮔﻮﻧﻪ‬ ‫ﻫﯿﭻ‬ ،‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻋﻨﻮان‬ ‫ﺑﻪ‬ ‫ﺷﻤﺎ‬ ‫دﻟﯿﻞ‬ ‫ﻫﻤﯿﻦ‬ ‫ﺑﻪ‬ .‫دارد‬
.‫داﺷﺖ‬ ‫ﻧﺨﻮاﻫﯿﺪ‬ ‫را‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬
‫در‬ ،‫ﮐﻠﯽ‬ ‫ﻃﻮر‬ ‫ﺑﻪ‬ ‫اﻣﺎ‬ ،‫اﺳﺖ‬ ‫ﭘﯿﭽﯿﺪه‬ ‫ﮐﻤﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫آزاد‬ ‫ﭘﺮوﺳﻪ‬
‫آزاد‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺗﺨﺼﯿﺺ‬ .‫دارد‬ ‫وﺟﻮد‬ ‫ﮐﻠﯽ‬ ‫وﻇﯿﻔﻪ‬ ‫دو‬ ،CLR ‫ﺗﻮﺳﻂ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬
‫در‬.‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬ CLR ‫ﺗﻮﺳﻂ‬ ‫ﺧﻮدﮐﺎر‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫وﻇﺎﯾﻒ‬ ‫اﯾﻦ‬ ‫ﮐﻪ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬
‫ﺑﺨﺶ‬ ‫آن‬ ‫در‬ ‫ﮐﻪ‬ ‫داد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫اﺧﺘﺼﺎص‬ GC ‫ﺳﺮوﯾﺲ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺑﺨﺸﯽ‬ ‫آﻣﻮزش‬ ‫اداﻣﻪ‬
‫و‬ ‫ﻫﺎ‬ Finalizer ،‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫آزاد‬ ‫و‬ ‫ﺗﺨﺼﯿﺺ‬ ‫ﻫﺎی‬ ‫ﭘﺮوﺳﻪ‬ ‫ﺑﺎ‬ ‫ﮐﺎﻣﻞ‬ ‫ﻃﻮر‬ ‫ﺑﻪ‬
.‫ﺷﺪ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫آﺷﻨﺎ‬ GC ‫در‬ ‫ﻫﺎ‬ Generation
‫ﭘﺎﯾﺎن‬ ‫ﺑﻪ‬ ‫ﻧﯿﺰ‬ ‫ﻧﺖ‬ ‫دات‬ ‫اﺑﺘﺪاﯾﯽ‬ ‫ﻣﻔﺎﻫﯿﻢ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﭼﻬﺎم‬ ‫ﺑﺨﺶ‬ ‫ﭘﺎﯾﺎن‬ ‫ﺑﺎ‬
‫ﮐﺪﻫﺎ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺷﺮوع‬ ‫ﯾﻌﻨﯽ‬ ،‫ﻣﺎ‬ ‫اﺻﻠﯽ‬ ‫ﮐﺎر‬ ،‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫از‬ ‫ﺧﺪا‬ ‫اﻣﯿﺪ‬ ‫ﺑﻪ‬ .‫رﺳﺪ‬ ‫ﻣﯽ‬
Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ .‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫آﻏﺎز‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬
.‫ﻧﻮﺷﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫و‬ ‫ﺷﺪه‬ ‫آﺷﻨﺎ‬
.‫ﻧﻮﺷﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫و‬ ‫ﺷﺪه‬ ‫آﺷﻨﺎ‬
Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬
Visual ‫ﻣﺤﯿﻂ‬ ‫اوﻟﯿﻪ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺗﺎ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﺒﺎﺣﺚ‬ ‫اداﻣﻪ‬ ‫در‬
‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﯾﺠﺎد‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﻣﺤﯿﻂ‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬ ‫ﻗﺴﻤﺖ‬ ‫از‬ ‫ﺑﻌﻀﯽ‬ ‫ﺑﺎ‬ ‫و‬ ‫ﭘﺮداﺧﺘﻪ‬ Studio
‫روﻧﺪ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺤﯿﻄﯽ‬ Visual Studio .‫ﺷﻮﯾﻢ‬ ‫آﺷﻨﺎ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﻻزم‬ ‫ﻣﺎ‬ ‫ﻫﺎی‬
‫اﯾﻦ‬ ‫ﺑﻪ‬ .‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ ‫ﺳﺎده‬ ‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺮای‬ ‫را‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺧﻄﺎﯾﺎﺑﯽ‬ ‫و‬ ‫ﻧﻮﺷﺘﻦ‬
Integrated Development ‫ﮐﻠﻤﺎت‬ ‫ﻣﺨﻔﻒ‬ IDE .‫ﮔﻮﯾﻨﺪ‬ ‫ﻣﯽ‬ ‫ﻧﯿﺰ‬ IDE ‫ﻣﺤﯿﻂ‬
‫ﻗﺮار‬ ‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫را‬ ‫اﺑﺰارﻫﺎ‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﯽ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Environment
"‫ﻣﻌﻤﻮﻻ‬ .‫ﺷﻮد‬ ‫ﺗﺮ‬ ‫آﺳﺎن‬ ‫آﻧﻬﺎ‬ ‫ﺑﺮای‬ ‫ﻫﺎ‬ ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫ﺗﻮﺳﻌﻪ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫ﺗﺎ‬ ‫دﻫﺪ‬ ‫ﻣﯽ‬
:‫از‬ ‫ﻋﺒﺎرﺗﻨﺪ‬ ‫ﻫﺎ‬ IDE ‫در‬ ‫راﯾﺞ‬ ‫اﺑﺰارﻫﺎی‬
Source Code Editor ‫ﯾﺎ‬ ‫ﮐﺪ‬ ‫وﯾﺮاﯾﺸﮕﺮ‬ .1
Build Automation Tools ‫ﯾﺎ‬ Build ‫ﺧﻮدﮐﺎرﺳﺎزی‬ ‫اﺑﺰارﻫﺎی‬ .2
Debugger ‫ﻫﻤﺎن‬ ‫ﯾﺎ‬ ‫ﺧﻄﺎﯾﺎب‬ .3
‫دﯾﮕﺮ‬ ‫ﺗﻮﺳﻌﻪ‬ ‫ﻫﺎی‬ ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﺑﺎﺷﯿﺪ‬ ‫ﮐﺮده‬ ‫ﮐﺎر‬ ++C ‫ﯾﺎ‬ ‫و‬ ‫ﺟﺎوا‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫ﺷﻤﺎ‬ ‫اﮔﺮ‬
‫و‬ EClips ‫ﯾﺎ‬ ‫و‬ NetBeans ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ IDE ‫از‬ ‫ﺟﺎوا‬ ‫ﺑﺮای‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫دارﯾﺪ‬ ‫آﺷﻨﺎﯾﯽ‬
Visual .‫ﮐﺮد‬ ‫اﺳﺘﻔﺎده‬ ‫ﺗﻮان‬ ‫ﻣﯽ‬ Code::Blocks ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ ‫ﻣﺤﯿﻂ‬ ‫از‬ ++C ‫زﺑﺎن‬ ‫ﺑﺮای‬
‫و‬ C++ ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﺗﻮان‬ ‫ﻣﯽ‬ ‫آن‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ IDE ‫ﯾﮏ‬ ‫ﻧﯿﺰ‬ Studio
.‫ﻧﻮﺷﺖ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ... ‫و‬ #C ‫و‬ Visual Basic
‫ﻣﻨﻈﻮر‬ ،‫ﺑﺮﺧﻮردﯾﺪ‬ IDE ‫ﮐﻠﻤﻪ‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﺟﺎﯾﯽ‬ ‫ﻫﺮ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫از‬
‫ﻟﯿﻨﮏ‬ ،‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫اﻣﺎ‬.‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Visual Studio ‫ﻫﻤﺎن‬
‫ﻟﯿﻨﮏ‬ ‫ﻫﻤﺎن‬ ‫ﻃﺮﯾﻖ‬ ‫از‬ ‫ﺗﻮاﻧﻨﺪ‬ ‫ﻣﯽ‬ ‫دوﺳﺘﺎن‬ ‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫داده‬ ‫ﻗﺮار‬ Visual Studio ‫داﻧﻠﻮد‬
‫ﻣﺸﺎﻫﺪه‬ ‫را‬ ‫زﯾﺮ‬ ‫ﻣﺤﯿﻂ‬ VS ‫اﺟﺮای‬ ‫و‬ ،‫ﻧﺼﺐ‬ ‫و‬ ‫داﻧﻠﻮد‬ ‫از‬ ‫ﺑﻌﺪ‬ .‫ﮐﻨﻨﺪ‬ ‫داﻧﻠﻮد‬ ‫را‬ VS
:‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﺪ‬
‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫آن‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﺑﻪ‬ ‫اﯾﻦ‬ ‫از‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﻣﺤﯿﻄﯽ‬ ،‫ﺷﺪه‬ ‫ﻇﺎﻫﺮ‬ ‫ﭘﻨﺠﺮه‬
‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ای‬ ‫ﭘﻮﺷﻪ‬ ‫ﻫﺎ‬ ‫دراﯾﻮ‬ ‫از‬ ‫ﯾﮑﯽ‬ ‫در‬ ‫ﺷﺮوع‬ ‫ﺑﺮای‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻫﺎﯾﻤﺎن‬
‫ﮐﺎر‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﻃﻮل‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﺎﯾﯽ‬ ‫ﭘﺮوژه‬ ‫ﮐﻠﯿﻪ‬ .‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬ C# 2013 Tutorials
‫ﭘﺮوژه‬ ‫ﺑﺎﯾﺪ‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .‫ﮔﺮﻓﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﻗﺮار‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﻦ‬ ‫در‬ ،‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬
‫ﺑﺮای‬ .‫ﺑﻮد‬ ‫ﺧﻮاﻫﺪ‬ #C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻣﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫ﭘﺮوژه‬ ‫اﯾﻦ‬ .‫ﮐﻨﯿﻢ‬ ‫اﯾﺠﺎد‬ ‫ﺟﺪﯾﺪی‬
‫ﺑﺎ‬ .‫ﮐﻨﯿﺪ‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ Project ‫ﺳﭙﺲ‬ ‫و‬ New ‫ﺗﺮﺗﯿﺐ‬ ‫ﺑﻪ‬ File ‫ﻣﻨﻮی‬ ‫از‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬
:‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫ﻇﺎﻫﺮ‬ New Project ‫ﭘﻨﺠﺮه‬ ‫ﮔﺰﯾﻨﻪ‬ ‫اﯾﻦ‬ ‫اﻧﺘﺨﺎب‬
‫ﺑﺮ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﻣﻮﺟﻮد‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫اﻧﻮاع‬ ‫از‬ ‫ﻟﯿﺴﺘﯽ‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ ‫در‬
‫ﻧﻮع‬ ‫ﺑﺎﯾﺪ‬ New Project ‫ﭘﻨﺠﺮه‬ ‫در‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬ ‫ﺑﻪ‬ ‫اﻗﺪام‬ ‫ﻧﯿﺎز‬ ‫اﺳﺎس‬
‫اﯾﺠﺎد‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﭘﺮوژه‬ .‫ﮐﻨﯿﻢ‬ ‫ﻣﺸﺨﺺ‬ ‫را‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬ ‫ﻣﺴﯿﺮ‬ ‫و‬ ‫ﭘﺮوژه‬ ‫ﻧﺎم‬ ،‫ﭘﺮوژه‬
CSharp-Course03-01 ‫آن‬ ‫ﻧﺎم‬ ‫و‬ ‫ﺑﻮده‬ Console Application ‫ﻧﻮع‬ ‫از‬ ‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬
‫ﭘﻮﺷﻪ‬ ‫ﮐﻪ‬ ‫ﮐﻨﯿﺪ‬ ‫دﻗﺖ‬ .‫ﺑﺎﺷﺪ‬ ‫زﯾﺮ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫ﻣﻄﺎﺑﻖ‬ ‫ﺑﺎﯾﺪ‬ New Project ‫ﭘﻨﺠﺮه‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬
‫ﺑﻮدﯾﺪ‬ ‫ﻣﺎﯾﻞ‬ ‫ﮐﻪ‬ ‫دراﯾﻮی‬ ‫ﻫﺮ‬ ‫در‬ ‫ﺷﻤﺎ‬ ،‫ﺳﺎﺧﺘﻢ‬ G ‫دراﯾﻮ‬ ‫در‬ ‫ﻣﻦ‬ ‫را‬ C# 2013 Tutorials
:‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬ ‫را‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﻦ‬
‫اﯾﻦ‬ ‫ﮐﻪ‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﻣﺎ‬ ‫ﺑﺮای‬ Solution ‫ﯾﮏ‬ OK ‫دﮐﻤﻪ‬ ‫روی‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫از‬ ‫ﺑﻌﺪ‬
Solution .‫ﮐﻨﯿﻢ‬ ‫ﮐﺎر‬ ‫آن‬ ‫روی‬ ‫ﺑﺮ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ای‬ ‫ﭘﺮوژه‬ ‫ﺣﺎوی‬ Solution
‫ﭘﺮوژه‬ ‫اﯾﻦ‬ ،‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ Visual Studio ‫در‬ ‫ﭘﺮوژه‬ ‫ﯾﮏ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫زﻣﺎﻧﯽ‬ ‫ﭼﯿﺴﺖ؟‬
‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﻓﻀﺎﯾﯽ‬ Solution ‫ﯾﮏ‬ ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ Solution ‫ﯾﮏ‬ ‫ﺗﺤﺖ‬
‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ sln ‫ﭘﺴﻮﻧﺪ‬ ‫ﺑﺎ‬ Solution ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .‫ﺑﺎﺷﺪ‬ ‫ﭘﺮوژه‬ ‫ﭼﻨﺪﯾﻦ‬ ‫ﺷﺎﻣﻞ‬ ‫ﺗﻮاﻧﺪ‬ ‫ﻣﯽ‬
‫ﮐﻨﯿﻢ‬ ‫ﻣﺮاﺟﻌﻪ‬ G:C# 2013 TutorialsCSharp-Course03-01 ‫ﭘﻮﺷﻪ‬ ‫ﺑﻪ‬ ‫اﮔﺮ‬ .‫ﺷﻮﻧﺪ‬
:‫ﺷﺪ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫روﺑﺮو‬ ‫زﯾﺮ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﻣﺸﺎﺑﻪ‬ ‫ﺳﺎﺧﺘﺎری‬ ‫ﺑﺎ‬
،‫ﺷﻮﯾﻢ‬ ‫دارد‬ ‫ﻗﺮار‬ ‫ﭘﻮﺷﻪ‬ ‫ﻫﻤﯿﻦ‬ ‫داﺧﻞ‬ ‫ﮐﻪ‬ CSharp-Course03-01 ‫ﭘﻮﺷﻪ‬ ‫وارد‬ ‫اﮔﺮ‬
:‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫را‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﺘﻮﯾﺎت‬
‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ csproj ‫ﭘﺴﻮﻧﺪ‬ ‫ﺑﺎ‬ #C ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬
#C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻣﺎ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺣﺎوی‬ ‫ﮐﻪ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﻫﺎﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ cs ‫ﭘﺴﻮﻧﺪ‬ ‫ﺑﺎ‬
Visual Studio ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫از‬ ‫ﻧﻮع‬ ‫ﺳﻪ‬ ‫ﺑﺎ‬ ‫اﯾﻨﺠﺎ‬ ‫ﺗﺎ‬ ‫ﭘﺲ‬ .‫ﻫﺴﺘﻨﺪ‬
:‫ﺷﺪﯾﻢ‬ ‫آﺷﻨﺎ‬
‫ﻫﺴﺘﻨﺪ‬ Visual Studio ‫ﻫﺎی‬ Solution ‫ﻫﻤﺎن‬ ‫ﮐﻪ‬ sln ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .1
‫ﻫﺴﺘﻨﺪ‬ #C ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﮐﻪ‬ csproj ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .2
‫ﻫﺴﺘﻨﺪ‬ #C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﮐﻪ‬ cs ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .3
.‫ﺷﻮﯾﻢ‬ ‫آﺷﻨﺎ‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫ﺑﺎ‬ ‫اﺳﺖ‬ ‫ﺑﻬﺘﺮ‬ ،‫ﻧﻮﯾﺴﯽ‬ ‫ﮐﺪ‬ ‫ﺷﺮوع‬ ‫از‬ ‫ﻗﺒﻞ‬ ‫اﻣﺎ‬
‫از‬ ‫ﻟﯿﺴﺘﯽ‬ ،‫دارد‬ ‫ﻗﺮار‬ Visual Studio ‫راﺳﺖ‬ ‫ﺳﻤﺖ‬ ‫در‬ ‫ﻣﻌﻤﻮل‬ ‫ﻃﻮر‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬
‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﻣﺎ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻫﺎ‬ ‫ﭘﺮوژه‬ ‫در‬ ‫ﻣﻮﺟﻮد‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫و‬ ‫ﺟﺎری‬ Solution ‫ﻫﺎی‬ ‫ﭘﺮوژ‬
:‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫زﯾﺮ‬ ‫ﺷﮑﻞ‬ ‫در‬ ‫را‬ ‫آن‬ ‫ﺗﺼﻮﯾﺮ‬ ‫ﮐﻪ‬ ‫دﻫﺪ‬
‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫و‬ Solution ‫از‬ ‫ﺳﺎﺧﺘﺎری‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ ‫در‬ ‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬
‫ﻫﺮ‬ ‫روی‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫دوﺑﺎر‬ ‫ﺑﺎ‬ .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ Solution ‫اﯾﻦ‬ ‫در‬ ‫ﻣﻮﺟﻮد‬
‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺷﻤﺎ‬ ‫ﺑﻪ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫در‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ،‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫از‬ ‫ﯾﮏ‬
،‫ﮐﻨﯿﺪ‬ ‫ﮐﻠﯿﮏ‬ ‫دوﺑﺎر‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫روی‬ ‫ﺑﺮ‬ ‫اﮔﺮ‬ ،‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬
:‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺷﻤﺎ‬ ‫ﺑﻪ‬ ‫زﯾﺮ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬
‫ﮔﺰﯾﻨﻪ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﺷﺪ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ،‫ﻓﺎﯾﻞ‬ ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﻠﯿﮏ‬ ‫ﺑﺎر‬ ‫ﯾﮏ‬ ‫ﺑﺎ‬ ‫اﮔﺮ‬
‫ﺧﺎرج‬ ‫اﻧﺘﺨﺎب‬ ‫ﺣﺎﻟﺖ‬ ‫از‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫در‬ ‫را‬ Preview Selected Items
:‫ﮐﻨﯿﺪ‬
‫ﻣﻨﻮی‬ ‫از‬ ،‫ﮐﻨﯿﺪ‬ ‫ﻧﻤﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫را‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫ﮐﻪ‬ ‫ﺻﻮرﺗﯽ‬ ‫در‬ ‫ﻫﻤﭽﻨﯿﻦ‬
.‫ﺷﻮد‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﺪ‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ Solution Explorer ‫ﮔﺰﯾﻨﻪ‬ View
Auto ‫ﻗﺎﺑﻠﯿﺖ‬ ‫اﺳﺖ‬ ‫ﺑﻬﺘﺮ‬ ،Visual Studio ‫ﻓﻀﺎی‬ ‫از‬ ‫ﺗﺮ‬ ‫ﺑﻬﯿﻨﻪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺮای‬ ‫ﻫﻤﭽﻨﯿﻦ‬
‫زﻣﺎﻧﯽ‬ ‫ﺗﻨﻬﺎ‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫ﮐﺎر‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ .‫ﮐﻨﯿﻢ‬ ‫ﻓﻌﺎل‬ ‫را‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ Hide
:‫ﺑﺎﺷﯿﻢ‬ ‫داﺷﺘﻪ‬ ‫ﻧﯿﺎز‬ ‫آن‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬
‫ﮐﻠﯿﮏ‬ ‫ﺑﺎ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫آن‬ ‫ﭘﻨﺠﺮه‬ Solution Explorer ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫ﺑﺎ‬
،‫اﺳﺖ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫زﻣﺎن‬.‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫ﻧﺎﭘﺪﯾﺪ‬ ‫دوﺑﺎره‬ ،‫آن‬ ‫از‬ ‫ﺧﺎرج‬ ‫ﺟﺎﯾﯽ‬ ‫ﮐﺮدن‬
‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫ﺑﺎز‬ ‫را‬ ‫آن‬ Program.cs ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫دوﺑﺎر‬ ‫ﺑﺎ‬
:‫ﺑﻨﻮﯾﺴﯿﻢ‬ ‫را‬ ‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫ﮐﺪ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬
‫ﻧﻤﺎﯾﺶ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺑﻪ‬ Hello ITPro.ir ‫ﭘﯿﺎم‬ ‫ﮐﻪ‬ ‫ﺑﻨﻮﯾﺴﯿﻢ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫اﯾﻨﺠﺎ‬ ‫در‬
‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ .‫ﺷﻮد‬ ‫ﺧﺎرج‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﻠﯿﺪی‬ ‫زدن‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬
‫ﺧﺮوﺟﯽ‬ .‫اﺳﺖ‬ Console Application ‫ﻧﻮع‬ ‫از‬ ،‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮔﻔﺘﯿﻢ‬
‫ﭘﻨﺠﺮه‬ ‫ﺑﻪ‬ ‫ﺷﺒﯿﻪ‬ ‫ای‬ ‫ﭘﻨﺠﺮه‬ ‫ﮐﻪ‬ Console ‫ﭘﻨﺠﺮه‬ ‫در‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮع‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬
‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﯿﺸﺘﺮ‬ .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫اﺳﺖ‬ ‫وﯾﻨﺪوز‬ Command Prompt
‫ﻓﺎﯾﻞ‬ ‫ﮐﺪ‬ .‫ﺑﻮد‬ ‫ﺧﻮاﻫﺪ‬ Console Application ‫ﻧﻮع‬ ‫از‬ ‫ﻣﺎ‬ ‫آﻣﻮزﺷﯽ‬ ‫اول‬ ‫ﺑﺨﺶ‬
‫ﻓﺎﯾﻞ‬ ‫ﮐﺪ‬ .‫ﺑﻮد‬ ‫ﺧﻮاﻫﺪ‬ Console Application ‫ﻧﻮع‬ ‫از‬ ‫ﻣﺎ‬ ‫آﻣﻮزﺷﯽ‬ ‫اول‬ ‫ﺑﺨﺶ‬
:‫دﻫﯿﺪ‬ ‫ﺗﻐﯿﯿﺮ‬ ‫زﯾﺮ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫را‬ Program.cs
‫ﻣﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺮدن‬ ‫اﺟﺮا‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﺑﺎﻻ‬ ‫ﮐﺪﻫﺎی‬ ‫ﻧﻮﺷﺘﻦ‬ ‫از‬ ‫ﺑﻌﺪ‬
:‫ﮐﻨﯿﻢ‬ ‫اﺳﺘﻔﺎده‬ ‫روش‬ ‫ﺳﻪ‬ ‫از‬ ‫ﺗﻮاﻧﯿﻢ‬
:‫دارد‬ ‫ﻗﺮار‬ Visual Studio ‫اﺑﺰار‬ ‫ﻧﻮار‬ ‫در‬ ‫ﮐﻪ‬ Start ‫دﮐﻤﻪ‬ ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﻠﯿﮏ‬ .1
Debug ‫ﻣﻨﻮی‬ ‫از‬ Start Debugging ‫ﮔﺰﯾﻨﻪ‬ ‫اﻧﺘﺨﺎب‬ .2
.‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫ﺑﺮای‬ ‫روش‬ ‫ﺳﺮﯾﻌﺘﺮﯾﻦ‬ ‫راه‬ ‫اﯾﻦ‬ ‫ﮐﻪ‬ F5 ‫ﮐﻠﯿﺪ‬ ‫دادن‬ ‫ﻓﺸﺎر‬ 3
‫ﻧﻤﺎﯾﺶ‬ ‫ﺻﻔﺤﻪ‬ ‫روی‬ ‫ﺑﺮ‬ ‫زﯾﺮ‬ ‫ﺧﺮوﺟﯽ‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﺑﺮﻧﺎﻣﻪ‬ F5 ‫ﮐﻠﯿﺪ‬ ‫زدن‬ ‫ﺑﺎ‬
:‫ﺷﻮد‬ ‫داده‬
‫و‬ ‫ﺷﻮﯾﻢ‬ ‫ﺧﺎرج‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ‫ﺗﺎ‬ ‫زده‬ ‫را‬ ‫ﮐﻠﯿﺪی‬ ‫ﺧﺮوﺟﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫و‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫از‬ ‫ﺑﻌﺪ‬
‫ﻣﯽ‬ ‫ﺑﺮرﺳﯽ‬ ‫را‬ ‫ﻧﻮﺷﺘﯿﻢ‬ ‫ﮐﻪ‬ ‫ﮐﺪی‬ ‫از‬ ‫ﺧﻂ‬ ‫ﺳﻪ‬ .‫ﺑﺮﮔﺮدﯾﻢ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﻪ‬
:‫ﮐﻨﯿﻢ‬
‫ﺑﺮ‬ ‫را‬ Hello ITPro.ir ‫ﻣﺘﻦ‬ WriteLine ‫دﺳﺘﻮر‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ ‫ﺧﻂ‬ ‫اﯾﻦ‬ ‫در‬ :13 ‫ﺧﻂ‬
.‫دﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺧﺮوﺟﯽ‬ ‫روی‬
Press any key to ‫ﻣﺘﻦ‬ WriteLine ‫دﺳﺘﻮر‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ ‫ﺧﻂ‬ ‫اﯾﻦ‬ ‫در‬ :14 ‫ﺧﻂ‬
‫را‬ ‫ﮐﻠﯿﺪی‬ ‫ﺑﺎﯾﺪ‬ ‫ﺧﺮوج‬ ‫ﺑﺮای‬ ‫ﺑﺪاﻧﺪ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺗﺎ‬ ‫دﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺧﺮوﺟﯽ‬ ‫در‬ ...exit
.‫دﻫﺪ‬ ‫ﻓﺸﺎر‬
‫ﺗﺎ‬ ‫ﻣﺎﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻣﻨﺘﻈﺮ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ReadKey ‫دﺳﺘﻮر‬ ‫ﺑﻪ‬ ‫رﺳﯿﺪن‬ ‫و‬ ‫اﯾﻦ‬ ‫در‬ :15 ‫ﺧﻂ‬
‫و‬ ‫رﺳﯿﺪه‬ ‫اﻧﺘﻬﺎ‬ ‫ﺑﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ،‫ﮐﻠﯿﺪ‬ ‫ﯾﮏ‬ ‫دادن‬ ‫ﻓﺸﺎر‬ ‫ﺑﺎ‬ ،‫دﻫﺪ‬ ‫ﻓﺸﺎر‬ ‫را‬ ‫ﮐﻠﯿﺪی‬ ‫ﮐﺎرﺑﺮ‬
.‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫ﺧﺎرج‬
‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺧﺮوﺟﯽ‬ ‫ﺗﻨﻬﺎ‬ ‫و‬ ‫ﺑﻮده‬ ‫ﺳﺎده‬ ‫ﺑﺴﯿﺎر‬ ‫ﻧﻮﺷﺘﯿﻢ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬
‫درﯾﺎﻓﺖ‬ ‫ﮐﺎرﺑﺮ‬ ‫از‬ ‫ورودی‬ ‫ﮐﻪ‬ ‫ﻧﻮﯾﺴﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻫﺎﯾﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻌﺪی‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫در‬ ،‫دﻫﺪ‬
‫ﺑﺎ‬ ‫ﮐﺮدﯾﻢ‬ ‫ﺳﻌﯽ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬.‫دﻫﺪ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺧﺮوﺟﯽ‬ ‫ورودی‬ ‫اﺳﺎس‬ ‫ﺑﺮ‬ ‫و‬ ‫ﮐﺮده‬
:‫ﺷﻮﯾﻢ‬ ‫آﺷﻨﺎ‬ ‫زﯾﺮ‬ ‫ﻣﻮارد‬ ‫ﺑﺎ‬ ‫ﺳﺎده‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﯾﮏ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫و‬ ‫ﭘﺮوژه‬ ‫ﯾﮏ‬ ‫اﯾﺠﺎد‬
IDE ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫و‬ Visual Studio ‫ﻣﺤﯿﻂ‬ .1
Visual Studio ‫در‬ ‫ﺟﺪﯾﺪ‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬ ‫ﻧﺤﻮه‬ .2
Project ‫و‬ Solution ‫ﻣﯿﺎن‬ ‫ﺗﻔﺎوت‬ .3
‫آن‬ ‫ﮐﺎرﺑﺮد‬ ‫و‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ .4
Visual Studio ‫ﻣﺤﯿﻂ‬ ‫در‬ ‫آن‬ ‫اﺟﺮای‬ ‫و‬ ‫ﺳﺎده‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﯾﮏ‬ ‫ﻧﻮﺷﺘﻦ‬ .5
‫ﻗﺮار‬ ‫ﺑﺮرﺳﯽ‬ ‫ﻣﻮرد‬ ‫وار‬ ‫ﺗﯿﺘﺮ‬ ‫و‬ ‫ﺳﺮﯾﻊ‬ ‫ﺧﯿﻠﯽ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ،‫ﺷﺪ‬ ‫ذﮐﺮ‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻣﻮاردی‬
‫ﺑﺎﻻ‬ ‫ﻣﻮارد‬ ،‫ﺑﻌﺪی‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫ﺑﻪ‬ ‫رﺳﯿﺪن‬ ‫و‬ ‫آﻣﻮزﺷﯽ‬ ‫دوره‬ ‫رﻓﺘﻦ‬ ‫ﭘﯿﺶ‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﮔﺮﻓﺘﻨﺪ‬
‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫را‬
.‫داد‬ ‫ﺧﻮاﻫﻢ‬ ‫ﺗﻮﺿﯿﺢ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫ﻧﺤﻮه‬ ‫و‬ #C
‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬
‫اﺟﺮای‬ ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫ﻧﺤﻮه‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫اداﻣﻪ‬ ‫در‬
‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫روﻧﺪ‬ ‫ﺑﺎ‬ ‫ﺷﻤﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ﻣﻮﺿﻮع‬ ‫اﯾﻦ‬ ‫دﻟﯿﻞ‬ .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬
‫را‬ ‫ﮐﺪﻫﺎﯾﯽ‬ ‫ﻗﺒﻞ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ .‫اﺳﺖ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫در‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﮐﺪ‬ ‫ﺷﺮوع‬ ‫از‬ ‫ﻗﺒﻞ‬
‫و‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﻦ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﻧﻮﺷﺘﯿﻢ‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫در‬
‫ﻓﺎﯾﻞ‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ‫ﺑﺎﺷﯿﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺧﺎﻃﺮ‬ ‫ﺑﻪ‬ ‫اﮔﺮ‬ .‫ﮐﻨﯿﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫ﺑﯿﺸﺘﺮ‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬
:‫ﺑﻮد‬ ‫زﯾﺮ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp_Course03_01
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello ITPro.ir");
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
:‫اﺳﺖ‬ ‫زﯾﺮ‬ ‫ﺑﺨﺶ‬ ‫ﮐﻨﯿﻢ‬ ‫ﺗﻮﺟﻪ‬ ‫آن‬ ‫ﺑﻪ‬ ‫ﺑﺎﯾﺪ‬ ‫ﮐﻪ‬ ‫اﺻﻠﯽ‬ ‫ﻗﺴﻤﺖ‬ ‫ﺣﺎﺿﺮ‬ ‫ﺣﺎل‬ ‫در‬
static void Main(string[] args)
{
}
‫ﺗﻮﺿﯿﺢ‬ ‫ﺑﯿﺸﺘﺮ‬ ‫آﯾﻨﺪه‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎره‬ ‫در‬ .‫اﺳﺖ‬ ‫ﻣﺘﺪ‬ ‫ﯾﮏ‬ ،‫ﺑﺎﻻ‬ ‫ﮐﺪ‬ ‫ﻗﻄﻌﻪ‬
‫ﺗﻌﺮﯾﻒ‬ ‫را‬ ‫ﻣﺘﺪی‬ ‫ﺑﺎﻻ‬ ‫ﮐﺪ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﯿﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺧﺎﻃﺮ‬ ‫ﺑﻪ‬ ‫ﺣﺎﺿﺮ‬ ‫ﺣﺎل‬ ‫در‬ ‫اﻣﺎ‬ ،‫داد‬ ‫ﺧﻮاﻫﯿﻢ‬
‫ﻣﯽ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﭼﯿﺴﺖ؟‬ Main ‫ﻣﺘﺪ‬ ‫ﮐﺎر‬ .‫اﺳﺖ‬ Main ‫آن‬ ‫ﻧﺎم‬ ‫ﮐﻪ‬ ‫ﮐﻨﺪ‬ ‫ﻣﯽ‬
.‫ﺑﺎﺷﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺷﺮوع‬ ‫ﻧﻘﻄﻪ‬ ‫ﯾﮏ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﻧﻮﯾﺴﯿﻢ‬
‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫زﻣﺎﻧﯽ‬ ‫ﯾﻌﻨﯽ‬ .‫اﺳﺖ‬ ‫ﻣﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺷﺮوع‬ ‫ﻧﻘﻄﻪ‬ Main ‫ﻣﺘﺪ‬
‫دﻧﺒﺎل‬ ‫ﻣﺎ‬ ‫اﺟﺮاﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫در‬ NET Framework. ،‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ #C
‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﻣﺘﺪ‬ ‫اﯾﻦ‬ ‫داﺧﻞ‬ ‫ﮐﺪﻫﺎی‬ ،‫آن‬ ‫ﮐﺮدن‬ ‫ﭘﯿﺪا‬ ‫ﺑﺎ‬ ‫و‬ ‫ﮔﺸﺘﻪ‬ Main ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﺘﺪی‬
‫ﮐﻪ‬ ‫ﺧﻄﯽ‬ ‫دو‬ ،‫ﻗﺒﻠﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻧﻮﺷﺘﻪ‬ { ‫و‬ } ‫ﺑﯿﻦ‬ ‫ﮐﻪ‬ ‫ﮐﺪﻫﺎﯾﯽ‬ .‫ﮐﻨﺪ‬
‫ﻣﯽ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﻠﯿﺪی‬ ‫زدن‬ ‫ﻣﻨﺘﻈﺮ‬ ‫ﮐﻪ‬ ‫ﺧﻄﯽ‬ ‫و‬ ‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫را‬ ‫ﺧﺮوﺟﯽ‬
‫از‬ ،‫آن‬ ‫اﺟﺮای‬ ‫و‬ ‫ﻣﺘﺪ‬ ‫ﺧﻂ‬ ‫آﺧﺮﯾﻦ‬ ‫ﺑﻪ‬ ‫رﺳﯿﺪن‬ ‫ﺑﺎ‬ .‫ﻫﺴﺘﻨﺪ‬ Main ‫ﻣﺘﺪ‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ،‫ﺷﻮد‬
.‫رﺳﺪ‬ ‫ﻣﯽ‬ ‫اﺗﻤﺎم‬ ‫ﺑﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﺧﺎرج‬ Main ‫ﻣﺘﺪ‬
‫ﺧﻮاﻫﻨﺪ‬ ‫ﻗﺮار‬ ‫ﺑﺮرﺳﯽ‬ ‫ﻣﻮرد‬ ‫ﺑﻌﺪی‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫در‬ ،‫ﻓﺎﯾﻞ‬ ‫ﻫﺎی‬ ‫ﻗﺴﻤﺖ‬ ‫ﺑﻘﯽ‬ ‫ﻣﺎ‬
Visual Studio ‫ﻣﺤﯿﻂ‬ ‫از‬ ،‫دوره‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﮔﻔﺘﯿﻢ‬ ‫ﻣﺎ‬ .‫ﮔﺮﻓﺖ‬
‫را‬ ‫ﻫﺎﯾﻤﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺘﻮاﻧﯿﻢ‬ ‫ﮐﻪ‬ ‫دارد‬ ‫وﺟﻮد‬ ‫اﻣﮑﺎن‬ ‫اﯾﻦ‬ ‫اﻣﺎ‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫اﺳﺘﻔﺎده‬
.‫ﮐﻨﯿﻢ‬ ‫اﺟﺮا‬ ‫و‬ ‫ﻧﻮﺷﺘﻪ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺪون‬
‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫اﺳﺖ‬ ‫ﻓﺎﯾﻠﯽ‬ #C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ .‫دارﯾﻢ‬ ‫ﻧﯿﺎز‬ #C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺑﻪ‬ ‫ﮐﺎر‬ ‫اﯾﻦ‬ ‫ﺑﺮای‬
‫ﺑﻪ‬ ‫را‬ ‫اﺟﺮاﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫و‬ IL ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺗﺮﺟﻤﻪ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫ﮐﻪ‬ csc.exe
‫ﺑﻪ‬ ‫را‬ ‫اﺟﺮاﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫و‬ IL ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺗﺮﺟﻤﻪ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫ﮐﻪ‬ csc.exe
‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺳﺎده‬ ‫ﺗﻤﺮﯾﻦ‬ ‫ﯾﮏ‬ ،#C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ﺑﺮای‬ .‫دارد‬ ‫ﻋﻬﺪه‬
.‫دﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬ ‫ﻫﻢ‬ ‫ﺑﺎ‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬
CSharp-Course04-01 ‫ﻧﺎم‬ ‫ﺑﺎ‬ ‫ﺟﺪﯾﺪ‬ ‫ﭘﻮﺷﻪ‬ ‫ﯾﮏ‬ C# 2013 Tutorials ‫ﭘﻮﺷﻪ‬ ‫در‬ .1
.‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬
‫ﮐﻠﯿﺪ‬ ‫ﺗﺮﮐﯿﺐ‬ ‫از‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫وﯾﻨﺪوز‬ File Explorer ‫در‬ ‫ﺟﺪﯾﺪ‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﺠﺎد‬ ‫ﺑﺮای‬
New > ‫اﻧﺘﺨﺎب‬ ‫ﺳﭙﺲ‬ ‫و‬ ‫ﻣﻮس‬ ‫ﮐﻠﯿﮏ‬ ‫راﺳﺖ‬ ‫ﯾﺎ‬ ‫و‬ Ctrl+Shif+N ‫ﻫﺎی‬
.‫ﮐﻨﯿﺪ‬ ‫اﺳﺘﻔﺎده‬ Folder
.‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬ txt ‫ﻓﺎﯾﻞ‬ ‫ﯾﮏ‬ ‫آن‬ ‫داﺧﻞ‬ ،CSharp-Course04-01 ‫ﭘﻮﺷﻪ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .2
New > Text ‫ﮔﺰﯾﻨﻪ‬ ،‫راﺳﺖ‬ ‫ﺳﻤﺖ‬ ‫دﮐﻤﻪ‬ ،‫ﻣﺘﻨﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫ﺑﺮای‬
.‫ﮐﻨﯿﺪ‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ Document
.‫دﻫﯿﺪ‬ ‫ﺗﻐﯿﯿﺮ‬ Program.cs ‫ﺑﻪ‬ ‫را‬ ‫آن‬ ‫ﻧﺎم‬ ،‫ﻣﺘﻨﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .3
‫ﮐﻪ‬ ‫ﮐﻨﯿﺪ‬ ‫دﻗﺖ‬ .‫دﻫﯿﺪ‬ ‫ﻓﺸﺎر‬ ‫را‬ F2 ‫ﮐﻠﯿﺪ‬ ‫و‬ ‫ﮐﺮده‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ ‫ﻓﺎﯾﻞ‬ ،‫ﻧﺎم‬ ‫ﺗﻐﯿﯿﺮ‬ ‫ﺑﺮای‬
‫ﻧﻤﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫وﯾﻨﺪوز‬ ‫در‬ ‫ﻣﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﻣﺎﻧﻨﺪ‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫ﺑﺮﺧﯽ‬ ‫ﭘﺴﻮﻧﺪ‬
‫ﺑﻪ‬ ‫ﻓﺎﯾﻞ‬ ‫ﻧﺎم‬ ،‫آن‬ ‫ﻧﺎم‬ ‫ﺗﻐﯿﯿﺮ‬ ‫و‬ ‫ﻓﺎﯾﻞ‬ ‫ﭘﺴﻮﻧﺪ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﻋﺪم‬ ‫ﺻﻮرت‬ ‫در‬ .‫ﺷﻮﻧﺪ‬
File ‫در‬ ،‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫ﭘﺴﻮﻧﺪ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺗﻐﯿﯿﺮ‬ Program.cs.txt
:‫ﺑﺰﻧﯿﺪ‬ ‫ﺗﯿﮏ‬ View ‫ﺗﺐ‬ ‫از‬ ‫را‬ ‫زﯾﺮ‬ ‫ﮔﺰﯾﻨﻪ‬ 8.1 ‫وﯾﻨﺪوز‬ Explorer
‫و‬ ‫ﮐﺮده‬ ‫ﺑﺎز‬ Noetpad ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺎ‬ ‫را‬ Program.cs ‫ﻓﺎﯾﻞ‬ ،‫ﻓﺎﯾﻞ‬ ‫ﻧﺎم‬ ‫ﺗﻐﯿﯿﺮ‬ ‫از‬ ‫ﺑﻌﺪ‬ .4
:‫دﻫﯿﺪ‬ ‫ﺗﻐﯿﯿﺮ‬ ‫زﯾﺮ‬ ‫ﮐﺪ‬ ‫ﻣﻄﺎﺑﻖ‬ ‫را‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬
using System;
namespace CSharpCourse0401
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello ITPro.ir!");
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
‫ﻓﺎﯾﻞ‬ ‫و‬ ‫ﮐﺮده‬ ‫ﺗﺮﺟﻤﻪ‬ #C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺑﺎ‬ ‫را‬ ‫ﺑﺎﻻ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻓﺎﯾﻞ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﺣﺎل‬ .5
‫ﻓﺎﯾﻞ‬ .‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﺳﺘﻔﺎده‬ csc.exe ‫دﺳﺘﻮر‬ ‫از‬ ‫اﯾﻨﮑﺎر‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫ﺗﻮﻟﯿﺪ‬ ‫را‬ ‫ﺧﺮوﺟﯽ‬
:‫دارد‬ ‫ﻗﺮار‬ ‫زﯾﺮ‬ ‫ﻣﺴﯿﺮ‬ ‫در‬ csc.exe
c:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe
‫ﺑﺮ‬ Command Prompt ‫ﮐﺮدن‬ ‫ﺑﺎز‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫ﺑﺎ‬ ‫را‬ Command Prompt ‫اﺑﺘﺪا‬
‫را‬ (Command Prompt (Admin ‫ﮔﺰﯾﻨﻪ‬ ‫و‬ ‫ﮐﺮده‬ ‫ﮐﻠﯿﮏ‬ ‫راﺳﺖ‬ Start ‫دﮐﻤﻪ‬ ‫روی‬
:‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﻧﺘﺨﺎب‬
cmd ‫دﺳﺘﻮر‬ ‫و‬ (Windows+R ‫ﻫﺎی‬ ‫)ﮐﻠﯿﺪ‬ Run ‫ﻗﺴﻤﺖ‬ ‫از‬ ‫ﺗﻮاﻧﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻫﻤﭽﻨﯿﻦ‬
File Explorer ‫ﻗﺴﻤﺖ‬ ‫از‬ ‫ﺗﻮاﻧﯿﻢ‬ ‫ﻣﯽ‬ ‫ﯾﺎ‬ .‫ﮐﻨﯿﻢ‬ ‫ﺑﺎز‬ ‫را‬ Command Prompt ‫ﭘﻨﺠﺮه‬
‫داﺷﺘﻦ‬ ‫ﻧﮕﻪ‬ ‫و‬ ‫دارد‬ ‫ﻗﺮار‬ ‫آن‬ ‫در‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﭘﻮﺷﻪ‬ ‫ﺑﻪ‬ ‫رﻓﺘﻦ‬ ‫ﺑﺎ‬ ‫وﯾﻨﺪوز‬
‫اﻧﺘﺨﺎب‬ ‫را‬ Open command window here ‫ﮔﺰﯾﻨﻪ‬ ‫ﻣﻮس‬ ‫ﮐﻠﯿﮏ‬ ‫راﺳﺖ‬ ‫و‬ Shift ‫ﮐﻠﯿﺪ‬
:‫ﺷﻮد‬ ‫ﺑﺎز‬ ‫ﭘﻮﺷﻪ‬ ‫ﻫﻤﺎن‬ ‫در‬ Command Prompt ‫ﭘﻨﺠﺮه‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﻢ‬
‫وارد‬ ‫زﯾﺮ‬ ‫دﺳﺘﻮرات‬ ‫ﺑﺎ‬ ،‫ﻧﺒﻮدﯾﻢ‬ CSharp-Course04-01 ‫ﭘﻮﺷﻪ‬ ‫داﺧﻞ‬ ‫ﮐﻪ‬ ‫ﺻﻮرﺗﯽ‬ ‫در‬
:‫ﺷﻮﯾﻢ‬ ‫ﻣﯽ‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﻦ‬
g:
cd "C# 2013 TutorialsCSharp‐Course04‐01"
‫ﭘﻨﺠﺮه‬ ‫در‬ ‫را‬ ‫زﯾﺮ‬ ‫دﺳﺘﻮر‬ ‫اﯾﻨﮑﺎر‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫را‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫ﺑﺎﯾﺪ‬ ‫ﺣﺎل‬
:‫ﻧﻮﯾﺴﯿﻢ‬ ‫ﻣﯽ‬ Command Prompt
c:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe Program.cs
Program.cs ‫ﻓﺎﯾﻞ‬ ‫ﮐﻨﺎر‬ ‫در‬ Program.exe ‫ﻧﺎم‬ ‫ﺑﺎ‬ ‫ﻓﺎﯾﻠﯽ‬ ،‫ﺑﺎﻻ‬ ‫دﺳﺘﻮر‬ ‫اﺟﺮای‬ ‫از‬ ‫ﺑﻌﺪ‬
‫ﻣﺎ‬ ‫ﺑﺮای‬ Console ‫ﭘﻨﺠﺮه‬ ‫در‬ ‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫ﺧﺮوﺟﯽ‬ ،‫آن‬ ‫اﺟﺮای‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬
:‫ﺷﻮﯾﻢ‬ ‫ﻣﯽ‬ ‫ﺧﺎرج‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ‫ﮐﻠﯿﺪی‬ ‫زدن‬ ‫ﺑﺎ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬
‫ﻗﺴﻤﺖ‬ ‫در‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺪون‬ ،‫ﺑﺎﻻ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬
‫ﺑﺮای‬ Visual Studio ‫ﮐﻪ‬ ‫ﮐﺎری‬ .‫ﮐﺮدﯾﻢ‬ ‫اﺟﺮا‬ ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ،‫ﻧﻮﺷﺘﻪ‬ ‫را‬ ‫ﺑﻮدﯾﻢ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻗﺒﻞ‬
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ
آموزش رایگان سی شارپ

Mais conteúdo relacionado

Mais de miladdel

روانشناس گیشا
روانشناس گیشاروانشناس گیشا
روانشناس گیشاmiladdel
 
چارتر ترکیه دیجیتال
چارتر ترکیه دیجیتالچارتر ترکیه دیجیتال
چارتر ترکیه دیجیتالmiladdel
 
سایت گاندی شاپ
سایت گاندی شاپسایت گاندی شاپ
سایت گاندی شاپmiladdel
 
خلوص سنج اکسیژن
خلوص سنج اکسیژنخلوص سنج اکسیژن
خلوص سنج اکسیژنmiladdel
 
بهترین کرم ضد چروک روز
بهترین کرم ضد چروک روزبهترین کرم ضد چروک روز
بهترین کرم ضد چروک روزmiladdel
 
تعمیرکار درب اتوماتیک
تعمیرکار درب اتوماتیکتعمیرکار درب اتوماتیک
تعمیرکار درب اتوماتیکmiladdel
 
آمازون
آمازون آمازون
آمازون miladdel
 
قطعات آسانسور
قطعات آسانسورقطعات آسانسور
قطعات آسانسورmiladdel
 
تعمیر کرکره برقی
تعمیر کرکره برقیتعمیر کرکره برقی
تعمیر کرکره برقیmiladdel
 
مهدی رسولی
مهدی رسولیمهدی رسولی
مهدی رسولیmiladdel
 
چراغ دفنی
چراغ دفنیچراغ دفنی
چراغ دفنیmiladdel
 
لوله بازکنی
لوله بازکنیلوله بازکنی
لوله بازکنیmiladdel
 
کارواش خانگی
کارواش خانگیکارواش خانگی
کارواش خانگیmiladdel
 
پیش فروش آپارتمان
پیش فروش آپارتمانپیش فروش آپارتمان
پیش فروش آپارتمانmiladdel
 
پنجره دوجداره هافمن
پنجره دوجداره هافمنپنجره دوجداره هافمن
پنجره دوجداره هافمنmiladdel
 
نمونه کد ارسال پیامک
نمونه کد ارسال پیامکنمونه کد ارسال پیامک
نمونه کد ارسال پیامکmiladdel
 
‎دربهای اتوماتیک
‎دربهای اتوماتیک‎دربهای اتوماتیک
‎دربهای اتوماتیکmiladdel
 
مریم عراقی
مریم عراقیمریم عراقی
مریم عراقیmiladdel
 
دستگاه فشارسنج
 دستگاه فشارسنج دستگاه فشارسنج
دستگاه فشارسنجmiladdel
 
زوج درمانگر
زوج درمانگرزوج درمانگر
زوج درمانگرmiladdel
 

Mais de miladdel (20)

روانشناس گیشا
روانشناس گیشاروانشناس گیشا
روانشناس گیشا
 
چارتر ترکیه دیجیتال
چارتر ترکیه دیجیتالچارتر ترکیه دیجیتال
چارتر ترکیه دیجیتال
 
سایت گاندی شاپ
سایت گاندی شاپسایت گاندی شاپ
سایت گاندی شاپ
 
خلوص سنج اکسیژن
خلوص سنج اکسیژنخلوص سنج اکسیژن
خلوص سنج اکسیژن
 
بهترین کرم ضد چروک روز
بهترین کرم ضد چروک روزبهترین کرم ضد چروک روز
بهترین کرم ضد چروک روز
 
تعمیرکار درب اتوماتیک
تعمیرکار درب اتوماتیکتعمیرکار درب اتوماتیک
تعمیرکار درب اتوماتیک
 
آمازون
آمازون آمازون
آمازون
 
قطعات آسانسور
قطعات آسانسورقطعات آسانسور
قطعات آسانسور
 
تعمیر کرکره برقی
تعمیر کرکره برقیتعمیر کرکره برقی
تعمیر کرکره برقی
 
مهدی رسولی
مهدی رسولیمهدی رسولی
مهدی رسولی
 
چراغ دفنی
چراغ دفنیچراغ دفنی
چراغ دفنی
 
لوله بازکنی
لوله بازکنیلوله بازکنی
لوله بازکنی
 
کارواش خانگی
کارواش خانگیکارواش خانگی
کارواش خانگی
 
پیش فروش آپارتمان
پیش فروش آپارتمانپیش فروش آپارتمان
پیش فروش آپارتمان
 
پنجره دوجداره هافمن
پنجره دوجداره هافمنپنجره دوجداره هافمن
پنجره دوجداره هافمن
 
نمونه کد ارسال پیامک
نمونه کد ارسال پیامکنمونه کد ارسال پیامک
نمونه کد ارسال پیامک
 
‎دربهای اتوماتیک
‎دربهای اتوماتیک‎دربهای اتوماتیک
‎دربهای اتوماتیک
 
مریم عراقی
مریم عراقیمریم عراقی
مریم عراقی
 
دستگاه فشارسنج
 دستگاه فشارسنج دستگاه فشارسنج
دستگاه فشارسنج
 
زوج درمانگر
زوج درمانگرزوج درمانگر
زوج درمانگر
 

آموزش رایگان سی شارپ

  • 1. ‫اﺣﻤﺪی‬ ‫ﺣﺴﯿﻦ‬ ‫ﺑﻨﯿﺎﻧﮕﺬار‬ ‫و‬ ‫ﺗﻮﺳﯿﻨﺴﻮ‬ ‫و‬ ‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫دﻫﻨﺪه‬ ‫ﺗﻮﺳﻌﻪ‬ ‫وب‬ ‫ارﺷﺪ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ (#C) ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫راﯾﮕﺎن‬ ‫آﻣﻮزش‬ ‫ﮐﺎﻣﻠﺘﺮﯾﻦ‬ .‫آﻣﺪﯾﺪ‬ ‫ﺧﻮش‬ ‫ﮔﺎم‬ ‫ﺑﻪ‬ ‫ﮔﺎم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ (#C) ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫راﯾﮕﺎن‬ ‫آﻣﻮزش‬ ‫ﮐﺎﻣﻠﺘﺮﯾﻦ‬ ‫ﺑﻪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺑﺮای‬ ‫ﮐﺎﻣﻞ‬ ‫اﻟﺒﺘﻪ‬ ‫و‬ ‫راﯾﮕﺎن‬ ‫ﻣﺮﺟﻊ‬ ‫ﯾﮏ‬ ‫دﻧﺒﺎل‬ ‫ﺑﻪ‬ ‫اﮔﺮ‬ ‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫ﺷﻤﺎ‬ ‫ﻣﻄﻠﺐ‬ ‫اﯾﻦ‬ ‫در‬ .‫اﺳﺖ‬ ‫ﺷﻤﺎ‬ ‫ﻣﻨﺎﺳﺐ‬ ‫ﻣﻄﻠﺐ‬ ‫اﯾﻦ‬ ‫ﻫﺴﺘﯿﺪ‬ (#C) .‫ﺷﺪ‬ ‫ﺧﻮاﻫﯿﺪ‬ ‫آﺷﻨﺎ‬ ‫اون‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫ﮔﺎم‬ ‫ﺑﻪ‬ ‫ﮔﺎم‬ ‫و‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺷﻤﺎ‬ ، ‫راﯾﮕﺎن‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺟﺎﻣﻊ‬ ‫ﻣﻘﺎﻟﻪ‬ ‫اﯾﻦ‬ ‫ﺑﺮ‬ ‫ﻋﻼوه‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﺒﺎﺣﺚ‬ ‫ﺗﮑﻤﯿﻞ‬ ‫ﺑﺮای‬ ‫زﯾﺮ‬ ‫ﻫﺎی‬ ‫ﻟﯿﻨﮏ‬ ‫ﺑﻪ‬ ، ‫ﻣﻘﺎﻟﻪ‬ ‫اﯾﻦ‬ ‫ﻣﻄﺎﻟﻌﻪ‬ .‫ﮐﻨﯿﺪ‬ ‫ﻣﺮاﺟﻌﻪ‬ ‫ﻣﻄﻠﺐ‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬ ‫ﺳﺮﻓﺼﻞ‬ ‫ﻫﺎ‬ ‫ﺳﺮﻓﺼﻞ‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﻌﺮﻓﯽ‬ .1 ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫ﺑﺨﺶ‬ .1 .1 ‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬ .1 .2 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺨﺶ‬ .1 .3 ‫دوره‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬ .2 ‫اﺳﺖ؟‬ ‫ﺑﻬﺘﺮ‬ ‫ﮐﺪام‬ 10 ‫وﯾﻨﺪوز‬ ‫ﯾﺎ‬ 8.1 ‫ﯾﺎ‬ 8 ،7 ‫وﯾﻨﺪوز‬ .2 .1 ‫ﭼﯿﺴﺖ؟‬ ‫اﺳﺘﻮدﯾﻮ‬ ‫وﯾﮋوال‬ | Visual Studio ‫ﻣﻌﺮﻓﯽ‬ .2 .2 NET Framework. ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3 NET Framework. ‫ﺗﺎرﯾﺨﭽﻪ‬ .3 .1 ‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﻠﯽ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮ‬ ‫ﻣﺮوری‬ .3 .2 NET Framework. ‫ﻧﻘﺶ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3 .3 ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ JIT ‫و‬ CLR ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .4 ‫ﻫﺎ‬ ‫ﮐﺪ‬ ‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ‫و‬ JIT ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ .4 .1 GC ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ .4 .2 Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .5
  • 2. ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ .6 ‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫و‬ ‫ﮐﻨﺴﻮل‬ ‫دﺳﺘﻮرات‬ .7 Console ‫ﻣﺤﯿﻂ‬ ‫اوﻟﯿﻪ‬ ‫دﺳﺘﻮرات‬ .7 .1 Console.Write ‫دﺳﺘﻮر‬ .7 .2 Console.WriteLine ‫دﺳﺘﻮر‬ .7 .3 Console.ReadKey ‫دﺳﺘﻮر‬ .7 .4 ‫آﻧﻬﺎ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ ‫ﺗﻌﺮﯾﻒ‬ ‫ﺷﯿﻮه‬ ‫و‬ ‫ﻣﺘﻐﯿﺮﻫﺎ‬ .7 .5 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫دﺳﺘﻮرات‬ .7 .6 ‫ﮐﺪﻫﺎ‬ ‫ﺑﺮای‬ Comment ‫ﯾﺎ‬ ‫ﯾﺎدداﺷﺖ‬ ‫ﻧﻮﺷﺘﻦ‬ .7 .7 ‫ﺧﻄﯽ‬ ‫ﺗﮏ‬ ‫ﯾﺎدداﺷﺖ‬ .7 .8 ‫ﺧﻄﯽ‬ ‫ﭼﻨﺪ‬ ‫ﻫﺎی‬ ‫ﯾﺎدداﺷﺖ‬ .7 .9 ‫اوﻟﯿﻪ‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ .8 ‫ای‬ ‫رﺷﺘﻪ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .1 ‫ﻋﺪدی‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ .8 .2 ‫ﮐﺎراﮐﺘﺮ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .3 Boolean ‫ﯾﺎ‬ ‫ﻣﻨﻄﻘﯽ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .4 object ‫ﯾﺎ‬ ‫ﺷﺊ‬ ‫داده‬ ‫ﻧﻮع‬ .8 .5 var ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﻪ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ .8 .6 const ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﻪ‬ .8 .7 ‫ﻋﻤﻠﮕﺮﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .9 ‫ﻣﺤﺎﺳﺒﺎﺗﯽ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .1 ‫ای‬ ‫راﺑﻄﻪ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .2 ‫ﻣﻨﻄﻘﯽ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .3 ‫ﺑﯿﺘﯽ‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .4 ‫اﻧﺘﺴﺎب‬ ‫ﻋﻤﻠﮕﺮﻫﺎی‬ .9 .5 ‫ﻋﻤﻠﮕﺮﻫﺎ‬ ‫ﺗﻘﺪم‬ ‫ﺣﻖ‬ .9 .6 if ‫دﺳﺘﻮر‬ .10 ‫ﮐﻨﺘﺮﻟﯽ‬ ‫دﺳﺘﻮرات‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .10 .1 if ‫دﺳﺘﻮر‬ .10 .2 if else ‫دﺳﺘﻮر‬ .10 .3 1 ‫ﻋﻤﻠﯽ‬ ‫ﻣﺜﺎل‬ .10 .4 if - else if ‫دﺳﺘﻮر‬ .10 .5 2 ‫ﻋﻤﻠﯽ‬ ‫ﻣﺜﺎل‬ .10 .6 switch ‫دﺳﺘﻮر‬ .11 (for ‫)دﺳﺘﻮر‬ ‫ﻫﺎ‬ ‫ﺣﻠﻘﻪ‬ .12 (Nested Loops) ‫ﺗﻮ‬ ‫در‬ ‫ﺗﻮ‬ ‫ﻫﺎی‬ ‫ﺣﻠﻘﻪ‬ .12 .1 break ‫دﺳﺘﻮر‬ .12 .2
  • 3. continue ‫دﺳﺘﻮر‬ .12 .3 for ‫دﺳﺘﻮر‬ ‫از‬ ‫دﯾﮕﺮ‬ ‫ﻣﺜﺎل‬ ‫ﭼﻨﺪ‬ .12 .4 (do-while ‫و‬ while ‫)دﺳﺘﻮر‬ ‫ﻫﺎ‬ ‫ﺣﻠﻘﻪ‬ .13 ‫ﻧﺎﻣﺤﺪود‬ ‫ﻫﺎی‬ ‫ﺣﻠﻘﻪ‬ .13 .1 do-while ‫ﺣﻠﻘﻪ‬ .13 .2 foreach ‫دﺳﺘﻮر‬ ‫و‬ ‫ﻫﺎ‬ ‫آراﯾﻪ‬ .14 Length ‫ﺧﺎﺻﯿﺖ‬ .14 .1 ‫ﺑﻌﺪی‬ ‫ﭼﻨﺪ‬ ‫ﻫﺎی‬ ‫آراﯾﻪ‬ .14 .2 Jagged Arrays ‫ﯾﺎ‬ ‫ﻧﺎﻣﻨﻈﻢ‬ ‫ﻫﺎی‬ ‫آراﯾﻪ‬ .14 .3 foreach ‫دﺳﺘﻮر‬ .14 .4 ‫ﯾﮏ‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .15 ‫ﻣﺘﺪﻫﺎ‬ ‫ﺗﻌﺮﯾﻒ‬ ‫ﺷﯿﻮه‬ .15 .1 ‫ﻣﺘﺪﻫﺎ‬ ‫در‬ ‫ﻫﺎ‬ ‫ﭘﺎراﻣﺘﺮ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ .15 .2 ‫ﭘﺎراﻣﺘﺮﻫﺎ‬ ‫ﺑﺮای‬ ‫ﻓﺮض‬ ‫ﭘﯿﺶ‬ ‫ﻣﻘﺎدﯾﺮ‬ .15 .3 ‫ﻧﺎم‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺎ‬ ‫ﻫﺎ‬ ‫ﭘﺎراﻣﺘﺮ‬ ‫دﻫﯽ‬ ‫ﻣﻘﺪار‬ .15 .4 ‫ﻣﺘﺪﻫﺎ‬ ‫از‬ ‫ﺑﺎزﮔﺸﺘﯽ‬ ‫ﻣﻘﺎدﯾﺮ‬ .15 .5 ‫دو‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .16 ref ‫و‬ out ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﺎت‬ .16 .1 ‫ﻣﺘﺪ‬ ‫ﺧﺮوﺟﯽ‬ ‫و‬ ‫ورودی‬ ‫ﻋﻨﻮان‬ ‫ﺑﻪ‬ ‫آراﯾﻪ‬ .16 .2 params ‫ﮐﻠﯿﺪی‬ ‫ﮐﻠﻤﻪ‬ .16 .3 Method Overloading ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .16 .4 Recursive Methods ‫ﯾﺎ‬ ‫ﺑﺎزﮔﺸﺘﯽ‬ ‫ﻣﺘﺪﻫﺎی‬ .16 .5 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﺷﺒﮑﻪ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ .1 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﮔﺮا‬ ‫ﺷﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ .2 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﻣﻮازی‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ .3 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ LINQ ‫آﻣﻮزش‬ .4 ‫آﻣﻮزﺷﯽ‬ ‫)دوره‬ ‫دﻧﯿﺎ‬ ‫در‬ ‫ﺻﺪ‬ ‫ﺗﺎ‬ ‫ﺻﻔﺮ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫دوره‬ ‫ﮐﺎﻣﻠﺘﺮﯾﻦ‬ .5 (‫وﯾﺪﯾﻮﯾﯽ‬
  • 4. ‫ﻫﺎ‬ ‫ﺳﺮﻓﺼﻞ‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﺑﺎ‬ ‫و‬ ‫ﺑﭙﺮدازﯾﻢ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺑﻪ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫آﻣﻮزﺷﯽ‬ ‫ﻣﻘﺎﻟﻪ‬ ‫اﯾﻦ‬ ‫در‬ ‫و‬ ‫ﮐﺎﻣﻞ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫از‬ ‫ﻫﺪف‬ ..‫ﺑﺸﯿﻢ‬ ‫آﺷﻨﺎ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ ‫ﻣﺮﺑﻮط‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﻫﺴﺖ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﮐﺎرﺑﺮدی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺎر‬ ‫ﺳﺎل‬ ‫ﭼﻨﺪﯾﻦ‬ ‫ﻣﺪت‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺗﺠﺮﺑﯿﺎﺗﯽ‬ ‫ﮐﻨﻢ‬ ‫ﻣﯽ‬ ‫ﺳﻌﯽ‬ ، ‫دوره‬ ‫اﯾﻦ‬ ‫ﻃﻮل‬ ‫در‬ .‫ﺑﺪم‬ ‫ﻗﺮار‬ ‫دوﺳﺘﺎن‬ ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫رو‬ ‫آوردم‬ ‫دﺳﺖ‬ ‫ﺑﻪ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﻫﺴﺘﯿﺪ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ ‫ﭘﺎﯾﻪ‬ ‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﯾﺎدﮔﯿﺮی‬ ‫ﺑﺎ‬ ‫ﻣﻨﺪ‬ ‫ﻋﻼﻗﻪ‬ ‫ﮐﻪ‬ ‫ﺻﻮرﺗﯽ‬ ‫در‬ :‫ﮐﻨﯿﺪ‬ ‫ﻣﻄﺎﻟﻌﻪ‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫را‬ ‫زﯾﺮ‬ ‫ﻣﻄﻠﺐ‬ ‫ﮐﺎرﺑﺮدی‬ ‫و‬ ‫ﺳﺎده‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻣﻮزش‬ ‫زﯾﺮ‬ ‫ﻣﻮارد‬ ‫از‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫آﻣﻮزش‬ ‫ﺑﺮای‬ ‫ﺑﻨﺪه‬ ‫ﮐﻪ‬ ‫ﮐﻨﻨﺪ‬ ‫ﺗﻮﺟﻪ‬ ‫ﻋﺰﯾﺰ‬ ‫دوﺳﺘﺎن‬ ‫اﺑﺰارﻫﺎ‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ ‫ﻧﯿﺎز‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ ‫رﻓﺘﻦ‬ ‫ﭘﯿﺶ‬ ‫ﺑﺮای‬ ‫دوﺳﺘﺎن‬ ‫ﮐﻪ‬ ‫ﮐﺮد‬ ‫ﺧﻮاﻫﻢ‬ ‫اﺳﺘﻔﺎده‬ : ‫داﺷﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫اﯾﻦ‬ ‫رﺳﺎﻧﯽ‬ ‫روز‬ ‫ﺑﻪ‬ ‫آﺧﺮﯾﻦ‬ ‫ﮐﻪ‬ Update 2 ‫ﻫﻤﺮاه‬ ‫ﺑﻪ‬ Visual Studio 2013 ‫ﻣﺤﯿﻂ‬ .1 ‫ﻫﺴﺖ‬ ‫ﻧﺴﺨﻪ‬ 8.1 ‫وﯾﻨﺪوز‬ .2 ‫اﺳﺘﻔﺎده‬ NET Framework. ‫و‬ Visual Studio ‫ﺗﺮ‬ ‫ﭘﺎﯾﯿﻦ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫از‬ ‫اﮔﺮ‬ ‫دوﺳﺘﺎن‬ ‫ﻧﺴﺨﻪ‬ .‫ﻧﺒﺎﺷﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ ‫ﺑﺮاﺷﻮن‬ ‫ﻣﻄﺎﻟﺐ‬ ‫از‬ ‫ﺑﺮﺧﯽ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﻣﻤﮑﻦ‬ ،‫ﮐﻨﻨﺪ‬ ‫ﻣﯽ‬ ‫ﺑﺮ‬ ‫ﻫﺎ‬ ‫دوره‬ ‫ﺗﻤﺎﻣﯽ‬ ‫ﮐﺪﻫﺎی‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﻫﺴﺖ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ ‫ﻧﯿﺰ‬ SQL Server 2012 ‫از‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﮔﻔﺘﻢ‬ ‫ﮐﻪ‬ ‫ﻫﻤﻮﻧﻄﻮر‬ ‫اﻣﺎ‬.‫ﻫﺴﺘﻨﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ ‫ﻫﻢ‬ 7 ‫و‬ 8 ‫وﯾﻨﺪوز‬ ‫روی‬ :‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫ﺗﺸﮑﯿﻞ‬ ‫زﯾﺮ‬ ‫ﺑﺨﺶ‬ ‫ﺳﻪ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫ﺑﺨﺶ‬ ‫آﺷﻨﺎ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫و‬ NET Framework. ‫ﻣﻘﺪﻣﺎت‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ :‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫دوره‬ ‫ﻫﺎی‬ ‫ﺳﺮﻓﺼﻞ‬ ‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ ‫و‬ NET Framework. ‫ﻣﻌﻤﺎری‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .1 Visual Studio 2013 ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫آﺷﻨﺎﯾﯽ‬ .2
  • 5. Visual Studio 2013 ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫آﺷﻨﺎﯾﯽ‬ .2 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3 ‫ﻫﺎ‬ ‫ﻧﻮع‬ ‫و‬ ‫ﻋﺒﺎرات‬ ،‫ﻣﺘﻐﯿﺮﻫﺎ‬ ‫ﻣﺒﺤﺚ‬ .4 ‫ﻫﺎ‬ ‫ﺷﺮط‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺣﻠﻘﻪ‬ ‫ﮐﻨﺘﺮﻟﯽ‬ ‫دﺳﺘﻮرات‬ .5 ‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .6 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ ‫ﻫﺎ‬ Namespace .7 ‫ﮔﺮا‬ ‫ﺷﺊ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .8 ‫ﻫﺎ‬ ‫ﺷﺊ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .9 ‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫در‬ ‫ﻫﺎ‬ ‫اون‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﻣﺒﺎﺣﺚ‬ .10 ‫ﻫﺎ‬ ‫اﯾﻨﺪﮐﺴﺮ‬ .11 ‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺮی‬ ‫ارث‬ ‫و‬ ‫وارﺛﺖ‬ ‫ﻣﺒﺤﺚ‬ .12 Polymorphism ‫ﻣﺒﺤﺚ‬ .13 ‫ﮔﺮا‬ ‫ﺷﺊ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ Abstraction ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .14 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫در‬ ‫ﻫﺎ‬ Access Modifier ‫و‬ Encapsulation ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .15 ‫آﻧﻬﺎ‬ ‫از‬ ‫ﺻﺤﯿﺢ‬ ‫اﺳﺘﻔﺎده‬ ‫ﭼﮕﻮﻧﮕﯽ‬ ‫و‬ Interface ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .16 ‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺎ‬ ‫آن‬ ‫ﻓﺮق‬ ‫و‬ ‫ﻫﺎ‬ Struct .17 Type Casting ‫و‬ Operator Overloading .18 Value Types ‫و‬ Reference Type ‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﺑﺎ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .19 Anonymous) ‫ﻧﺎم‬ ‫ﺑﺪون‬ ‫ﻣﺘﺪﻫﺎی‬ ‫و‬ ‫ﻫﺎ‬ Event ،‫ﻫﺎ‬ Delegate ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .20 (Methods Lambda Expressions ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .21 #C ‫زﺑﺎن‬ ‫در‬ ‫ﻫﺎ‬ ‫رﺷﺘﻪ‬ ‫ﺑﺎ‬ ‫ﮐﺎر‬ .22 Generics ‫ﻣﺒﺤﺚ‬ ‫و‬ (Collections) ‫ﻫﺎ‬ ‫ﻣﺠﻤﻮﻋﻪ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .23 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﺧﻄﺎﻫﺎ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﻫﺎ‬ Exception .24 ‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬ ‫ﻣﺒﺎﺣﺚ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫دوره‬ ‫ﻣﻘﺪﻣﺎﺗﯽ‬ ‫ﺑﺨﺶ‬ ‫اﺗﻤﺎم‬ ‫ﺑﺎ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫اراﺋﻪ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﺪﻣﺖ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫ﭘﯿﺸﺮﻓﺘﻪ‬ :‫ﻫﺴﺘﻨﺪ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬ ‫ﻫﺎ‬ ‫ﺳﺮﻓﺼﻞ‬ Aspect ‫ﻣﺒﺤﺚ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ ‫و‬ Reflection ‫ﻣﺒﺤﺚ‬ ‫و‬ ‫ﻫﺎ‬ Attribute ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .1 Oriented Programming ‫ﻫﺎ‬ ‫ﺷﺊ‬ ‫از‬ ‫ﮔﺮﻓﺘﻦ‬ ‫ﮐﻮﺋﺮی‬ ‫و‬ LINQ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .2 DLR ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫داﯾﻨﺎﻣﯿﮏ‬ ‫ﻫﺎی‬ ‫ﻗﺎﺑﻠﯿﺖ‬ .3
  • 6. DLR ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫داﯾﻨﺎﻣﯿﮏ‬ ‫ﻫﺎی‬ ‫ﻗﺎﺑﻠﯿﺖ‬ .3 Thread ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ :1 ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫ﺷﺎﻣﻞ‬ ‫ﮐﻪ‬ Asynchronous ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .4 ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ await ‫و‬ async ‫ﻗﺎﺑﻠﯿﺖ‬ :3 ‫و‬ ‫ﻫﺎ‬ Task :2 ،‫ﻫﺎ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﻫﺎ‬ AppDomain ‫و‬ ‫ﻫﺎ‬ Process ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .5 (Pointers) ‫ﻫﺎ‬ ‫ﮔﺮ‬ ‫اﺷﺎره‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ .6 Authentication، ‫ﻣﺒﺎﺣﺚ‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﮐﻪ‬ NET Framework. ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫ﻣﺒﺤﺚ‬ .7 .‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫آﺷﻨﺎ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ ‫ﻧﯿﺰ‬ Hashing ‫و‬ Encryption ‫و‬ Authorization Registery ‫و‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫ﺑﺎ‬ ‫ﮐﺎر‬ .8 (Interop) ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫در‬ COM ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ .9 ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺨﺶ‬ ‫ﺷﺎرپ‬ Data-Centric ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻣﺒﺎﺣﺜﯽ‬ ،‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬ ‫ﭘﺎﯾﺎن‬ ‫ﺑﺎ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫آﺷﻨﺎ‬ ‫زﯾﺮ‬ ‫ﻣﻮارد‬ ‫ﺑﺎ‬ ‫دوﺳﺘﺎن‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺮوع‬ ‫را‬ ‫ﻫﺴﺘﻨﺪ‬ :‫ﺷﺪ‬ ‫و‬ NET Framework. ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .1 #C ‫زﺑﺎن‬ (Relational Databases) ‫ای‬ ‫راﺑﻄﻪ‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .2 ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻃﺮاﺣﯽ‬ ‫ﻣﻔﺎﻫﯿﻢ‬ ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .3 Visual Studio ‫و‬ SQL Server Management Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫اوﻟﯿﻪ‬ ‫آﺷﻨﺎﯾﯽ‬ .4 SQL Server Data Tools SQL Server 2014 ‫در‬ ‫ﻫﺎ‬ ‫راﺑﻄﻪ‬ ‫و‬ ‫ﺟﺪاول‬ ،‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫اﯾﺠﺎد‬ .5 (Insert - Update - Delete ‫)دﺳﺘﻮرات‬ ‫ﺟﺪاول‬ ‫ﻫﺎی‬ ‫داده‬ ‫در‬ ‫ﺗﻐﯿﯿﺮ‬ ‫اﯾﺠﺎد‬ .6 SQL ‫در‬ SELECT ‫دﺳﺘﻮر‬ ‫ﺑﺎ‬ ‫اوﻟﯿﻪ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫و‬ ‫ﺟﺪاول‬ ‫از‬ ‫ﮔﺮﻓﺘﻦ‬ ‫ﮐﻮﺋﺮی‬ .7 ‫آﻧﻬﺎ‬ ‫از‬ ‫ﺻﺤﯿﺢ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ ‫و‬ ‫ﻫﺎ‬ Stored Procedure ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .8 ADO.NET ‫ﺑﺮ‬ ‫ای‬ ‫ﻣﻘﺪﻣﻪ‬ .9 ‫ﻫﺎ‬ Command ‫و‬ ‫ﻫﺎ‬ Connection ‫از‬ ‫اﺳﺘﻔﺎده‬ .10 Data Readers ‫ﺑﺎ‬ ‫ﺟﺪاول‬ ‫از‬ ‫اﻃﻼﻋﺎت‬ ‫ﺧﻮاﻧﺪن‬ .11 ADO.NET ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﻫﺎی‬ ‫داده‬ ‫ﺑﻪ‬ Asynchronous ‫دﺳﺘﺮﺳﯽ‬ .12 Data Sets ‫و‬ Data Adapters ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .13 ADO.NET ‫در‬ ‫ﻫﺎ‬ Transaction ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﺤﻮه‬ .14 ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﺑﻪ‬ ‫دﺳﺘﺮﺳﯽ‬ ‫ﺟﻬﺖ‬ Entity Framework ‫از‬ ‫اﺳﺘﻔﺎده‬ .15 ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬
  • 7. ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻣﻮاردی‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺎ‬ ‫ﺳﺎده‬ ‫ﻧﺴﺒﺘﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﯾﮏ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺎ‬ ،‫دوره‬ ‫ﺳﻪ‬ ‫ﭘﺎﯾﺎن‬ ‫و‬ ‫اﻧﺘﻬﺎ‬ ‫در‬ ‫ﯾﺎدﮔﯿﺮی‬ ‫ﺑﺎ‬ ‫ﻣﺎﯾﻞ‬ ‫ﮐﻪ‬ ‫دوﺳﺘﺎﻧﯽ‬ ‫اﻣﯿﺪوارم‬ .‫رﺳﻮﻧﯿﻢ‬ ‫ﻣﯽ‬ ‫ﭘﺎﯾﺎن‬ ‫را‬ ‫دوره‬ ،‫آﻣﻮﺧﺘﯿﻢ‬ ‫ﮐﻪ‬ .‫ﺑﺎﺷﻨﺪ‬ ‫ﻫﻤﺮاه‬ ‫ﻣﺎ‬ ‫ﺑﺎ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﭘﺎﯾﺎن‬ ‫ﺗﺎ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫دوره‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬ ‫ﺟﻬﺖ‬ ‫ﻣﻘﺪﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫اﺑﺰارﻫﺎﯾﯽ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫آﻣﻮزش‬ ‫دوم‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ ‫ﺑﻬﺘﺮ‬ ‫ﺟﻬﺖ‬ ‫اﺑﺰارﻫﺎ‬ ‫اﯾﻦ‬ ‫از‬ ‫ﺑﺮﺧﯽ‬ .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺪﻧﺪ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫دوره‬ ‫ﮔﺬراﻧﺪن‬ ‫ﻧﺴﺨﻪ‬ ‫داﻧﻠﻮد‬ ‫ﻟﯿﻨﮏ‬ ،‫اﺑﺰارﻫﺎ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫و‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺿﻤﻦ‬ .‫ﻫﺴﺘﻨﺪ‬ ‫ﮐﺎر‬ ‫ﻣﺤﯿﻂ‬ ‫ﺷﺪن‬ ‫ﺧﻮب‬ .‫ﮔﺮﻓﺖ‬ ‫ﺧﻮاﻫﺪ‬ ‫ﻗﺮار‬ ‫دوﺳﺘﺎن‬ ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫ﺷﺪه‬ ‫ﻣﻌﺮﻓﯽ‬ ‫اﺑﺰارﻫﺎی‬ ‫آزﻣﺎﯾﺸﯽ‬ ‫ﻫﺎی‬ .‫ﺑﭙﺮدازﯾﻢ‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻪ‬ ‫ﺑﻬﺘﺮه‬ ‫اﺳﺖ؟‬ ‫ﺑﻬﺘﺮ‬ ‫ﮐﺪام‬ 10 ‫وﯾﻨﺪوز‬ ‫ﯾﺎ‬ 8.1 ‫ﯾﺎ‬ 8 ،7 ‫وﯾﻨﺪوز‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ ،‫دارﻧﺪ‬ ‫ﺑﺎﻻ‬ ‫ﺑﻪ‬ 7 ‫ﻧﺴﺨﻪ‬ ‫وﯾﻨﺪوز‬ ‫ﺑﻪ‬ ‫ﻧﯿﺎز‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﮔﺬراﻧﺪن‬ ‫ﺟﻬﺖ‬ ‫دوﺳﺘﺎن‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫روی‬ 4.5.1 ‫ﻧﺴﺨﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﺤﺖ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﻪ‬ ‫ﺧﺎﻃﺮ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﻪ‬ ‫ﻋﻼﻗﻪ‬ ‫اﮔﺮ‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﺷﺪ‬ ‫ﻧﺨﻮاﻫﻨﺪ‬ ‫اﺟﺮا‬ ‫وﯾﻨﺪوز‬ ‫ﺗﺮ‬ ‫ﭘﺎﯾﯿﻦ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﮐﻪ‬ Visual Studio ،‫دارﯾﺪ‬ RT ‫ﻫﻤﻮن‬ ‫ﯾﺎ‬ 8.1 ‫و‬ 8 ‫وﯾﻨﺪوز‬ .‫ﮐﻨﯿﺪ‬ ‫ﻧﺼﺐ‬ 8.1 ‫ﯾﺎ‬ 8 ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫روی‬ ‫رو‬ ‫ﻣﯿﺸﻪ‬
  • 8. ‫ﭼﯿﺴﺖ؟‬ ‫اﺳﺘﻮدﯾﻮ‬ ‫وﯾﮋوال‬ | Visual Studio ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﺘﻮﻧﯿﻢ‬ ‫ﮐﻪ‬ ‫دارﯾﻢ‬ ‫ﻧﯿﺎز‬ ‫ﻣﺤﯿﻄﯽ‬ ‫ﺑﻪ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫ﻣﺎ‬ ‫ﺑﻪ‬ ‫و‬ ‫ﮐﻨﯿﻢ‬ ‫اﺟﺮا‬ ‫رو‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ،‫ﮐﻨﯿﻢ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫رو‬ ‫ﻫﺎﻣﻮن‬ ‫ﻓﺎﯾﻞ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﭘﺮوژه‬ ،‫داﺧﻠﺶ‬ Integrated Development Environment ‫اﺑﺰارﻫﺎ‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ .‫ﺑﭙﺮدازﯾﻢ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺧﻄﺎﯾﺎﺑﯽ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫اﺑﺰار‬ ‫ﺑﻬﺘﺮﯾﻦ‬ ‫و‬ ‫ﻣﻌﺮوﻓﺘﺮﯾﻦ‬ .‫ﻣﯿﮕﻦ‬ IDE ‫اﺧﺘﺼﺎر‬ ‫ﺑﻪ‬ ‫ﯾﺎ‬ .‫ﺷﺪه‬ ‫اراﺋﻪ‬ ‫ﻣﺨﺘﻠﻔﯽ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﺴﺖ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ،‫ﺷﺎرپ‬ ‫روی‬ ‫ﺑﺮ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫و‬ 4.5.1 ‫ﻧﺴﺨﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ، Visual Studio ‫ﻧﺼﺐ‬ ‫ﺑﺎ‬ ‫اراﺋﻪ‬ ‫ﻣﺨﺘﻠﻔﯽ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬ ‫در‬ Visual Studio .‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﻧﺼﺐ‬ ‫ﺷﻤﺎ‬ ‫ﺳﯿﺴﺘﻢ‬ ‫ﺑﻪ‬ Express ‫ﻧﺴﺨﻪ‬ .‫ﮐﺮدم‬ ‫اﺳﺘﻔﺎده‬ Ultimate ‫ﻧﺴﺨﻪ‬ ‫از‬ ‫ﻣﻦ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﺷﺪه‬ Ultimate ‫ﻧﺴﺨﻪ‬ ‫ﺑﻪ‬ ‫ﻧﺴﺒﺖ‬ ‫ﮐﻤﺘﺮی‬ ‫اﻣﮑﺎﻧﺎت‬ ‫دارای‬ ‫ﮐﻪ‬ ‫ﺷﺪه‬ ‫ﻋﺮﺿﻪ‬ ‫راﯾﮕﺎن‬ ‫ﺻﻮرت‬ :‫ﮐﻨﯿﺪ‬ ‫داﻧﻠﻮد‬ ‫زﯾﺮ‬ ‫ﻟﯿﻨﮏ‬ ‫ﻃﺮﯾﻖ‬ ‫از‬ ‫ﻣﯿﺘﻮﻧﯿﺪ‬ ‫رو‬ Visual Studio .‫ﻫﺴﺖ‬ Visual Studio 2022 ‫داﻧﻠﻮد‬ ‫ﺑﺮای‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫و‬ ‫اﺑﺰارﻫﺎ‬ ‫ﺑﺎ‬ ‫اوﻟﯿﻪ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﻮب‬ ‫دات‬ ‫ﻣﻌﻤﺎری‬ ‫و‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﺧﺪا‬ ‫اﻣﯿﺪ‬ ‫ﺑﻪ‬ .‫ﺑﻮد‬ ‫دوره‬ ‫ﺷﺮوع‬ ‫ﺷﻤﺎ‬ ‫ﻫﻤﻪ‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫ﺗﺎ‬ ‫ﭘﺲ‬ .‫داد‬ ‫ﺧﻮاﻫﻢ‬ ‫اراﺋﻪ‬ ‫رو‬ ‫ﻣﻄﺎﻟﺒﯽ‬ ‫ﺷﻤﺎ‬ ‫ﺧﺪﻣﺖ‬ ‫ﻧﺖ‬ .‫ﺳﭙﺎرم‬ ‫ﻣﯽ‬ ‫ﺑﺰرگ‬ ‫ﺧﺪای‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻋﺰﯾﺰان‬ NET Framework. ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ﺧﻮاﻫﯿﻢ‬ NET Framwork. ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﺳﺮی‬ ‫اداﻣﻪ‬ ‫در‬ ،‫دارﻧﺪ‬ ‫ﺗﺌﻮری‬ ‫ﺟﻨﺒﻪ‬ ‫ﺑﯿﺸﺘﺮ‬ ،‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻣﻄﺮح‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻣﻮاردی‬ .‫ﭘﺮداﺧﺖ‬ ‫ﻗﺼﺪ‬ ‫ﮐﻪ‬ ‫ﻣﺤﯿﻄﯽ‬ ‫از‬ ‫درﺳﺘﺮی‬ ‫درک‬ ‫ﮐﻪ‬ ‫ﻣﯿﮑﻨﻪ‬ ‫ﮐﻤﮏ‬ ‫ﻣﺎ‬ ‫ﺑﻪ‬ ‫ﻣﺒﺎﺣﺚ‬ ‫ﯾﺎدﮔﯿﺮی‬ ‫اﻣﺎ‬ ‫در‬ ،‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫ﻣﻄﺎﻟﺐ‬ ‫ﺑﻮدن‬ ‫زﯾﺎد‬ ‫دﻟﯿﻞ‬ ‫ﺑﻪ‬ .‫ﺑﺎﺷﯿﻢ‬ ‫داﺷﺘﻪ‬ ‫ﮐﻨﯿﻢ‬ ‫ﮐﺎر‬ ‫اون‬ ‫ﺑﺎ‬ ‫دارﯾﻢ‬
  • 9. ‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﻣﻄﺮح‬ ‫ﮐﻪ‬ ‫ﻣﻄﺎﻟﺒﯽ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬.‫ﺷﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫اراﺋﻪ‬ ‫ﺑﺨﺶ‬ ‫ﺳﻪ‬ ‫ﯾﺎ‬ ‫دو‬ :‫ﻫﺴﺘﻨﺪ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬ NET Framework. ‫ﺗﺎرﯾﺨﭽﻪ‬ .1 ‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﻠﯽ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮ‬ ‫ﻣﺮوری‬ .2 ‫آن‬ ‫ﮐﺎرﺑﺮد‬ ‫و‬ CLR ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ .3 ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫در‬ JIT ‫ﮐﺎر‬ ‫ﻧﺤﻮه‬ .4 ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ .5 ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺎرﺑﺮدی‬ ‫اﺑﺰارﻫﺎی‬ ‫ﺑﺮﺧﯽ‬ .6 NET Framework. ‫ﺗﺎرﯾﺨﭽﻪ‬ ،‫ﺑﺎﺷﻨﺪ‬ ‫داده‬ ‫اﻧﺠﺎم‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺎر‬ NET Framework. ‫ﻋﺮﺿﻪ‬ ‫از‬ ‫ﻗﺒﻞ‬ ‫ﮐﻪ‬ ‫اﻓﺮادی‬ Component Object Model ‫ﯾﺎ‬ COM .‫دارﻧﺪ‬ ‫آﺷﻨﺎﯾﯽ‬ COM ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﻔﻬﻮﻣﯽ‬ ‫ﺑﺎ‬ ‫داده‬ ‫اراﺋﻪ‬ ‫وﯾﻨﺪوز‬ ‫ﺗﺤﺖ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ‬ ‫ﮐﻪ‬ ‫ﺑﻮد‬ ‫ﺗﮑﻨﻮﻟﻮژی‬ ‫ﺗﮑﻨﻮﻟﻮژی‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ ‫ﺑﺎﺷﯿﺪ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻗﺒﻞ‬ ‫ﺑﻪ‬ 6 ‫ﻧﺴﺨﻪ‬ Visual Basic ‫ﺑﺎ‬ ‫اﮔﻪ‬ .‫ﺑﻮد‬ .‫دارﯾﺪ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ارﺗﺒﺎط‬ ‫ﻫﻤﺪﯾﮕﻪ‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﻣﯿﺪاد‬ ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫ﻣﺨﺘﻠﻒ‬ ‫اﺟﺰای‬ ‫ﺑﻪ‬ ‫رو‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫اﯾﻦ‬ COM ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫ﮐﺮدن‬ ‫ﻟﯿﻨﮏ‬ ‫و‬ Re-Usable ‫ﻫﺎی‬ ‫ﮐﺎﻣﭙﻮﻧﻨﺖ‬ ‫ﻧﻮﺷﺘﻦ‬ .‫ﺑﺎﺷﻨﺪ‬ ‫داﺷﺘﻪ‬ C++، ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ .‫ﺑﻮد‬ COM ‫ﻫﺎی‬ ‫ﮐﺎرﺑﺮد‬ ‫از‬ ‫ﻫﻤﺪﯾﮕﻪ‬ ‫ﺑﻪ‬ ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫ﻣﺨﺘﻠﻒ‬ ‫ﻧﻮﯾﺴﺎﻧﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﻣﺎ‬ .‫ﮐﺮدﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻓﺮاﻫﻢ‬ ‫رو‬ COM ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻠﯿﺖ‬ Visual Basic .‫داﺷﺖ‬ ‫ﻗﺮار‬ ‫روﺑﺮوﺷﻮن‬ ‫ﻫﻢ‬ ‫ﻣﺸﮑﻼﺗﯽ‬ ‫ﮐﺮدﻧﺪ‬ ‫ﻣﯽ‬ ‫اﺳﺘﻔﺎده‬ COM ‫از‬ ‫ﮐﻪ‬ ‫ﺑﺎﻫﺎش‬ ‫ﻫﺎ‬ ‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﻪ‬ ‫ﺑﻮد‬ ‫ﻣﺴﺎﺋﻠﯽ‬ ‫از‬ ‫ﯾﮑﯽ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ،‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ ‫در‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﻦ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ DLL ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﻣﺸﮑﻼت‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﺑﻮدﻧﺪ‬ ‫درﮔﯿﺮ‬ ‫ﻣﻘﺎﻻت‬ ‫ﺳﺮی‬ ‫اداﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺑﻮد‬ COM ‫ﺗﮑﻨﻮﻟﻮژی‬ ‫ﻣﺸﮑﻼت‬ ‫دﯾﮕﺮ‬ ‫از‬ ‫ﻣﻘﺼﺪ‬ ‫ﺳﯿﺴﺘﻢ‬ .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ NET. ‫ﻫﺎی‬ ‫ﺣﻞ‬ ‫راه‬ ‫و‬ COM ‫ﻣﺴﺎﺋﻞ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫اﺳﺘﺎرت‬ COM ‫ﻣﺸﮑﻼت‬ ‫رﻓﻊ‬ ‫ﺑﺮای‬ ‫رو‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﭘﺮوژه‬ ‫ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ‬ 1990 ‫ﺳﺎل‬ ‫در‬ NET. ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫داد‬ ‫اراﺋﻪ‬ ‫رو‬ NET. ‫رﺳﻤﯽ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ 2002 ‫ﺳﺎل‬ ‫در‬ ‫و‬ ‫زد‬ ‫ﺑﻪ‬ ‫دﺳﺘﺮﺳﯽ‬ ‫و‬ ‫ﮔﺮﻓﺘﻪ‬ ‫ﻗﺮار‬ COM ‫روی‬ ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﻪ‬ ‫ﻫﺴﺖ‬ ‫ای‬ ‫ﻻﯾﻪ‬ Framework ‫ﻟﺤﻈﻪ‬ ‫اﯾﻦ‬ ‫ﺗﺎ‬ .‫ﮐﺮده‬ ‫ﺗﺮ‬ ‫راﺣﺖ‬ ‫و‬ ‫اون‬ ‫ﻫﺎی‬ ‫ﮐﺎﻣﭙﻮﻧﻨﺖ‬ ‫و‬ ‫وﯾﻨﺪوز‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ :‫ﺷﺪه‬ ‫اراﺋﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫از‬ ‫زﯾﺮ‬ ‫ﻫﺎی‬ ‫ﻧﺴﺨﻪ‬
  • 10. 2002 ‫ﺳﺎل‬ ‫در‬ 1.0 ‫ﻧﺴﺨﻪ‬ .1 2003 ‫ﺳﺎل‬ ‫در‬ 1.1 ‫ﻧﺴﺨﻪ‬ .2 2005 ‫ﺳﺎل‬ ‫در‬ 2.0 ‫ﻧﺴﺨﻪ‬ .3 2006 ‫ﺳﺎل‬ ‫در‬ 3.0 ‫ﻧﺴﺨﻪ‬ .4 2007 ‫ﺳﺎل‬ ‫در‬ 3.5 ‫ﻧﺴﺨﻪ‬ .5 2010 ‫ﺳﺎل‬ ‫در‬ 4.0 ‫ﻧﺴﺨﻪ‬ .6 2012 ‫ﺳﺎل‬ ‫در‬ 4.5 ‫ﻧﺴﺨﻪ‬ .7 2013 ‫ﺳﺎل‬ ‫در‬ 4.5.1 ‫ﻧﺴﺨﻪ‬ .8 2014 ‫ﺳﺎل‬ ‫در‬ 4.5.2 ‫ﻧﺴﺨﻪ‬ .9 ‫ﻫﻤﺮاه‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﻫﺴﺖ‬ 4.5.2 ‫ﯾﻌﻨﯽ‬ ‫آﺧﺮ‬ ‫ﻧﺴﺨﻪ‬ ،‫ﺳﺮی‬ ‫اﯾﻦ‬ ‫در‬ ‫اﺳﺘﻔﺎده‬ ‫ﻣﻮرد‬ ‫ﻧﺴﺨﻪ‬ .‫ﺷﺪه‬ ‫اراﺋﻪ‬ Visual Studio 2013 ‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﻠﯽ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮ‬ ‫ﻣﺮوری‬ NET. ‫ﯾﺎ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ،‫ﺷﺪه‬ ‫ﺗﺸﮑﯿﻞ‬ ‫اﺻﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫دو‬ ‫از‬ NET Framework. ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬.CLR ‫ﯾﺎ‬ Common Language Runtime ‫و‬ Framework Class Library ‫در‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﭘﯿﺶ‬ ‫از‬ ‫آﻣﺎده‬ ‫ﻫﺎی‬ ‫ﮐﻼس‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﻪ‬ ‫ﻧﺖ‬ ‫دات‬ .‫ﻫﺴﺘﻨﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻞ‬ NET. ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﺗﻤﺎﻣﯽ‬ ‫ﺗﺒﺪﯾﻞ‬ .‫داره‬ ‫رو‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﺤﺖ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫اﺟﺮا‬ ‫وﻇﯿﻔﻪ‬ CLR ‫اﻣﺎ‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ،‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬ ،‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪﻫﺎی‬ ‫در‬ .‫ﻫﺴﺖ‬ CLR ‫وﻇﺎﯾﻒ‬ ‫از‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﻬﺘﺮ‬ ‫درک‬ ‫ﺑﺮای‬ .‫ﻫﺴﺖ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﭙﻨﺪه‬ ‫ﻗﻠﺐ‬ CLR ‫ﮔﻔﺖ‬ ‫ﻣﯿﺸﻪ‬ ‫ﺣﻘﯿﻘﺖ‬ :‫ﮐﻨﯿﺪ‬ ‫ﺗﻮﺟﻪ‬ ‫زﯾﺮ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫ﺑﻪ‬ ‫ﻧﺖ‬ ‫دات‬
  • 11. ‫ﺑﺮﻧﺎﻣﻪ‬ ‫آﻧﻬﺎ‬ ‫ﺑﻮﺳﯿﻠﻪ‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺷﻤﺎ‬ ‫ﮐﻪ‬ ‫دارﻧﺪ‬ ‫ﻗﺮار‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺎﻻ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫اﺑﺘﺪای‬ ‫در‬ ،‫ﻣﻮﺑﺎﯾﻞ‬ ،‫وﯾﻨﺪوز‬ ،‫وب‬ ‫ﺗﺤﺖ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .‫ﺑﻨﻮﯾﺴﯿﺪ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﻫﺎی‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫اﯾﻦ‬ .‫داره‬ ‫ﻗﺮار‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ،‫ﺑﻌﺪ‬ ‫ﻣﺮﺣﻠﻪ‬ ‫در‬ ،... ‫و‬ ‫وب‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫ﺷﻤﺎ‬ ‫ﺑﺮای‬ ‫رو‬ ‫ﮐﺪﻫﺎ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﭘﯿﺶ‬ ‫از‬ ‫ﮐﺪﻫﺎی‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﻪ‬ .‫ﮐﻨﻪ‬ ‫ﻣﯽ‬ ‫ﺗﺮ‬ ‫راﺣﺖ‬ ‫و‬ ‫ﻣﺎﺷﯿﻦ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﺷﻤﺎ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺗﺒﺪﯾﻞ‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫داره‬ ‫ﻗﺮار‬ CLR ،‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﻗﺮار‬ ‫وﯾﻨﺪوز‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ،‫ﻻﯾﻪ‬ ‫ﺗﺮﯾﻦ‬ ‫ﭘﺎﯾﯿﻦ‬ ‫در‬ .‫داره‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫رو‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ .‫ﻫﺴﺖ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫و‬ CLR ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ،‫ﻻﯾﻪ‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫داره‬ NET Framework. ‫ﻧﻘﺶ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫ﯾﻌﻨﯽ‬ ‫اﺻﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫دو‬ ‫از‬ ‫ﻧﺖ‬ ‫دات‬ ،‫ﺷﺪ‬ ‫اﺷﺎره‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ ‫وﻇﺎﯾﻒ‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻣﺒﻨﺎی‬ ‫و‬ ‫ﭘﺎﯾﻪ‬ CLR .‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﺗﺸﮑﯿﻞ‬ CLR ‫و‬ ‫ت‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫دوره‬ ‫اﯾﻦ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﮐﺮدﯾﻢ‬ ‫ﻣﻄﺮح‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫اﺧﺘﺼﺎر‬ ‫ﺑﻪ‬ ‫رو‬ CLR .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫آن‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ Reusable ‫ﮐﺪﻫﺎی‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﻪ‬ ،‫ﺷﺪ‬ ‫اﺷﺎره‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫اﻣﺎ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﯽ‬ (‫دارﻧﺪ‬ ‫را‬ ‫ﻣﺠﺪد‬ ‫اﺳﺘﻔﺎده‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﯾﮑﺒﺎر‬ ‫ﮐﻪ‬ ‫)ﮐﺪﻫﺎﯾﯽ‬ ‫ﮐﻠﯿﻪ‬ ‫در‬ ‫ﺗﻮاﻧﺪ‬ ‫ﻣﯽ‬ ‫ﮐﺪﻫﺎ‬ ‫اﯾﻦ‬ ‫از‬ .‫اﻧﺪ‬ ‫ﮔﺮﻓﺘﻪ‬ ‫ﻗﺮار‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺧﺘﯿﺎر‬ ‫در‬ ،‫وب‬ ،‫وﯾﻨﺪوز‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺗﺎ‬ ‫ﮔﺮﻓﺘﻪ‬ Console ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .‫ﮐﺮد‬ ‫اﺳﺘﻔﺎده‬ ‫وﯾﻨﺪوز‬ ‫و‬ ‫وب‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺎﻧﮏ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ Common Language Specification ‫ﯾﺎ‬ CLS ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫اﺻﻄﻼﺣﺎت‬ ‫از‬ ‫ﯾﮑﯽ‬ ‫اﻣﺎ‬ ،ECMA ‫ﯾﺎ‬ European Computer Manufacturers Assoscian ‫ﻣﻮﺳﺴﻪ‬ .‫ﻫﺴﺖ‬ ‫ﺷﺪه‬ ‫ﺳﺎزی‬ ‫ﭘﯿﺎده‬ ‫اﺳﺘﺎﻧﺪارد‬ ‫اﯾﻦ‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ CLS ‫ﮐﻪ‬ ‫ﮐﺮده‬ ‫ﺗﺪوﯾﻦ‬ ‫رو‬ ‫اﺳﺘﺎﻧﺪاردی‬ ‫ﻫﺴﺖ‬ ‫اﺳﺘﺎﻧﺪاردی‬ CLS ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫اﺳﺖ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﮐﻠﯿﻪ‬ ،‫اﺳﺘﺎﻧﺪارد‬ ‫اﯾﻦ‬ ‫رﻋﺎﯾﺖ‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ #C ‫و‬ VB.NET ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫داﺷﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫را‬ ‫ﯾﮑﺪﯾﮕﺮ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﻗﺎﺑﻠﯿﺖ‬
  • 12. #C ‫و‬ VB.NET ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫داﺷﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫را‬ ‫ﯾﮑﺪﯾﮕﺮ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫اﯾﺪ‬ ‫ﻧﻮﺷﺘﻪ‬ #C ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫را‬ ‫ﮐﺪی‬ ‫ﺷﻤﺎ‬ ‫ﮐﻪ‬ ‫زﻣﺎﻧﯽ‬ .‫ﻫﺴﺘﻨﺪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫زﺑﺎن‬ ‫دو‬ #C ‫زﺑﺎن‬ ‫در‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪ‬ ‫از‬ ‫ﺑﺘﻮﻧﯿﺪ‬ ‫ﮐﻪ‬ ‫ﻣﯿﺸﻪ‬ ‫داده‬ ‫ﺷﻤﺎ‬ ‫ﺑﻪ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫اﯾﻦ‬ CTS ‫ﺑﺎ‬ .‫ﮐﻨﯿﺪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻧﯿﺰ‬ VB.NET ‫زﺑﺎن‬ ‫در‬ ‫ﮐﺪ‬ ‫ﯾﮏ‬ ‫ﺑﻪ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ،‫ﺑﺎﺷﻨﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺗﻄﺎﺑﻖ‬ CLS ‫اﺳﺘﺎﻧﺪارد‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﮐﺪﻫﺎﯾﯽ‬ .‫ﻫﺴﺖ‬ Assembly ‫ﮐﺪ‬ ‫ﺑﻪ‬ ‫ﺷﺒﯿﻪ‬ ‫ﮐﺪی‬ IL ‫ﮐﺪ‬ ،‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫ﺗﺮﺟﻤﻪ‬ IL ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﯿﺎﻧﯽ‬ ‫ﺷﺪه‬ ‫ﺗﺮﺟﻤﻪ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ CLR ‫ﺗﻮﺳﻂ‬ IL ‫ﮐﺪ‬ ،‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ IL ‫ﮐﺪ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫و‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫دﯾﮕﺮی‬ ‫و‬ #C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﯾﮑﯽ‬ ‫ﮐﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫دو‬ ‫ﮐﺮدن‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻣﯿﺎﻧﯽ‬ ‫ﮐﺪی‬.‫ﻫﺴﺖ‬ IL ‫ﮐﺪ‬ ‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﮐﻪ‬ ‫ﮐﺪی‬ ،‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ VB.NET Microsoft Intermediate ‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮﻫﺎی‬ ‫ﺗﻮﺳﻂ‬ ‫را‬ ‫ﯾﮑﺪﯾﮕﺮ‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﺑﺮﻗﺮاری‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫دارﻧﺪ‬ ‫ﻧﺎم‬ MSIL ‫ﯾﺎ‬ Language .‫دﻫﺪ‬ ‫ﻣﯽ‬ Common ‫ﯾﺎ‬ CLI ‫اﺳﺘﺎﻧﺪارد‬ ،‫ﺷﺪه‬ ‫ﺗﺪوﯾﻦ‬ ECMA ‫ﺗﻮﺳﻂ‬ ‫ﮐﻪ‬ ‫دﯾﮕﺮی‬ ‫اﺳﺘﺎﻧﺪارد‬ ‫ﻣﺸﺘﺮک‬ ‫ﺧﺼﻮﺻﯿﺎت‬ ‫ﺳﺮی‬ ‫ﯾﮏ‬ ‫اﺳﺘﺎﻧﺪارد‬ ‫اﯾﻦ‬ .‫ﻫﺴﺖ‬ Language Infrastructure ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﻣﯿﮑﻨﺪ‬ ‫ﺗﻌﺮﯾﻒ‬ ‫رو‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮﻫﺎ‬ ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﻣﯿﺎﻧﯽ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺑﯿﻦ‬ ‫در‬ Common) ‫ﻣﺸﺘﺮک‬ ‫داده‬ ‫ﻧﻮع‬ ‫ﺳﯿﺴﺘﻢ‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫اﺳﺖ‬ ‫ﻧﯿﺎز‬ ‫آﻧﻬﺎ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪ‬ ‫اﺟﺮای‬ ‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ‫و‬ Type Safety ‫ﻗﺒﯿﻞ‬ ‫از‬ ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫ﯾﺎ‬ (Type System ‫اﺳﺘﺎﻧﺪارد‬ ‫از‬ ‫ای‬ ‫ﺧﻼﺻﻪ‬ ‫زﯾﺮ‬ ‫ﻟﯿﺴﺖ‬ .‫ﻫﺴﺘﻨﺪ‬ ‫ﺷﺪه‬ ‫ﺗﺪوﯾﻦ‬ ‫ﺧﺼﻮﺻﯿﺎت‬ ‫از‬ ‫ﮐﺪﻫﺎ‬ :‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﺤﺖ‬ ECMA ‫ﻫﺎی‬ Common Language Specification ‫ﯾﺎ‬ CLS .1 Common Type System ‫ﯾﺎ‬ CTS .2 Type Safety ‫ﯾﺎ‬ TS .3 Intermediate Language ‫ﯾﺎ‬ IL .4 ‫ﺑﺨﺶ‬ ‫در‬ .‫ﭘﺮداﺧﺘﯿﻢ‬ ‫اون‬ ‫ﺳﺎﺧﺘﺎر‬ ‫و‬ NET Framework. ‫اوﻟﯿﻪ‬ ‫ﺑﻪ‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫در‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﻧﺤﻮه‬ ،CLR ‫ﺧﺼﻮﺻﯿﺎت‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺳﺮوﯾﺲ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺑﻌﺪی‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﺪﻫﺎ‬ ‫ﺷﺪه‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ،JIT ‫ﺳﺮوﯾﺲ‬ ‫و‬ .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ JIT ‫و‬ CLR ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬
  • 13. ‫ﻧﺖ‬ ‫دات‬ ‫ﺗﭙﻨﺪه‬ ‫ﻗﻠﺐ‬ CLR ،‫ﮔﻔﺘﯿﻢ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﺪﻣﺖ‬ ‫ﻗﺒﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ CLR ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫زﻣﺎن‬ ‫وﻇﺎﯾﻒ‬ ‫اﮐﺜﺮ‬ ‫و‬ ‫ﺑﻮده‬ ‫ﻣﺮﺑﻮﻃﻪ‬ ‫ﻧﺴﺨﻪ‬ ‫ﺑﺎﯾﺪ‬ "‫ﺣﺘﻤﺎ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ،‫ﺣﻘﯿﻘﺖ‬ ‫ﻗﺼﺪ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﺷﺪه‬ ‫ﻧﺼﺐ‬ ‫ﻣﻘﺼﺪ‬ ‫ﺳﯿﺴﺘﻢ‬ ‫روی‬ ‫ﺑﺮ‬ NET Framework. ‫ﻣﻮرد‬ ‫در‬ ‫و‬ ‫ﮐﺮده‬ ‫ﻣﻌﺮﻓﯽ‬ ‫دوﺳﺘﺎن‬ ‫ﺧﺪﻣﺖ‬ ‫را‬ CLR ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫از‬ ‫ﺑﺮﺧﯽ‬ ‫ﺗﺎ‬ ‫دارﯾﻢ‬ ‫ﮐﻠﯽ‬ ‫ﻧﻤﺎی‬ ‫زﯾﺮ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫در‬ .‫ﮐﻨﯿﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ GC ‫و‬ JIT ‫ﯾﻌﻨﯽ‬ ،‫ﺳﺮوﯾﺲ‬ ‫دو‬ :‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫را‬ CLR ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫از‬ ‫در‬ ‫اﺟﺮا‬ ‫زﻣﺎن‬ ‫در‬ ‫ﻫﺎ‬ ‫ﮐﻼس‬ ‫ﺑﺎرﮔﺬاری‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ :Class Loader .1 ‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ CLR ‫ﻣﺤﯿﻂ‬ ‫ﻫﺎی‬ ‫زﺑﺎن‬ ‫در‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﮐﻪ‬ ‫ﮔﻔﺘﯿﻢ‬ ‫ﻗﺒﻞ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ :IL to Native .2 ‫ﻣﯽ‬ ‫ﺗﺒﺪﯾﻞ‬ IL ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﯿﺎﻧﯽ‬ ‫زﺑﺎن‬ ‫ﯾﮏ‬ ‫ﺑﻪ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫اﺟﺮای‬ ‫ﺟﻬﺖ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪﻫﺎی‬ ‫ﺗﺒﺪﯾﻞ‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .‫ﭘﺮدازﯾﻢ‬ ‫ﺑﻪ‬ ‫را‬ ‫اﺟﺮا‬ ‫زﻣﺎن‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ :Code Manager .3 .‫دارد‬ ‫ﻋﻬﺪه‬ ‫را‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫ﮐﺎر‬ CLR ،‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ :Garbage Collector .4 ‫ﻣﯽ‬ GC ‫وﻇﺎﯾﻒ‬ ‫از‬ ‫ﺑﻼاﺳﺘﻔﺎده‬ ‫اﺷﯿﺎء‬ ‫از‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬ ،‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬
  • 14. ‫ﻣﯽ‬ GC ‫وﻇﺎﯾﻒ‬ ‫از‬ ‫ﺑﻼاﺳﺘﻔﺎده‬ ‫اﺷﯿﺎء‬ ‫از‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬ ،‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬ .‫ﭘﺮدازﯾﻢ‬ ‫ﻣﯽ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﯾﺎﺑﯽ‬ ‫ﺧﻄﺎ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﻣﮑﺎﻧﺎت‬ ‫از‬ ‫ﯾﮑﯽ‬ :Debug Engine .5 Debugging ‫ﻫﻤﺎن‬ ‫ﯾﺎ‬ ‫ﺧﻄﺎﯾﺎﺑﯽ‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺑﺪﯾﻦ‬ ،‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Type Safety ،‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫از‬ ‫ﯾﮑﯽ‬ :Type Checker .6 ‫ﺑﺮای‬ .‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﺸﺨﺺ‬ ‫ﺑﺎﯾﺪ‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ ‫ﯾﺎ‬ ‫ﻫﺎ‬ Data Type ‫ﺗﻤﺎم‬ ‫ﮐﻪ‬ ‫ﻣﻌﻨﯽ‬ ‫را‬ ‫ای‬ ‫رﺷﺘﻪ‬ ،‫ﻋﺪدی‬ ‫ﻧﻮع‬ ‫از‬ ‫ﻣﺘﻐﯿﺮ‬ ‫ﯾﮏ‬ ‫در‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻧﻤﯽ‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺷﻤﺎ‬ ‫ﻣﺜﺎل‬ ‫ﺑﻪ‬ ‫را‬ ‫داده‬ ‫ﻫﺎی‬ ‫ﻧﻮع‬ ‫ﮐﻨﺘﺮل‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺑﺎاﻟﻌﮑﺲ‬ ‫ﯾﺎ‬ ‫ﮐﻨﯿﺪ‬ ‫ذﺧﯿﺮه‬ !‫دارد‬ ‫ﻋﻬﺪه‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ CLR ‫ﻫﺎی‬ ‫ﺳﺮوﯾﺲ‬ ‫از‬ ‫دﯾﮕﺮ‬ ‫ﯾﮑﯽ‬ :Security Engine .7 ‫اﯾﻦ‬ ‫ﻣﻮرد‬ ‫در‬ .‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻣﺤﯿﻂ‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫اﻣﻨﯿﺖ‬ ‫ﺻﺤﺒﺖ‬ ‫آﺗﯽ‬ ‫ﻫﺎی‬ ‫ﻓﺼﻞ‬ ‫در‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫و‬ ‫ﺳﺮوﯾﺲ‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺧﻄﺎﯾﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺑﺮ‬ ‫ﻣﺒﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻨﮕﺎﻣﯽ‬ :Exception Manager .8 ،‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﺧﻄﺎ‬ ‫آن‬ ‫ﺑﺮای‬ Exception ‫ﯾﺎ‬ ‫اﺳﺘﺜﻨﺎ‬ ‫ﯾﮏ‬ CLR ،‫اﻓﺘﺪ‬ ‫ﻣﯽ‬ ‫اﺗﻔﺎق‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫اﺳﺘﺜﻨﺎﻫﺎ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ COM ‫اﺟﺰای‬ ‫ﺑﺎ‬ ‫ارﺗﺒﺎط‬ ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﻣﺰاﯾﺎی‬ ‫از‬ ‫ﯾﮑﯽ‬ :COM Marshaler .9 ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﮐﺮدﯾﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫آن‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﻗﺒﻠﯽ‬ ‫ﺑﺨﺶ‬ ‫در‬ .‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ COM ‫اﺟﺰای‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﯿﻦ‬ ‫اﻃﻼﻋﺎت‬ ‫اﻧﺘﻘﺎل‬ Multi- ‫ﻗﺎﺑﻠﯿﺖ‬ ،‫اﻣﺮوزی‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫وﯾﮋﮔﯽ‬ ‫از‬ ‫ﯾﮑﯽ‬ :Thread Support .10 ‫ﺑﺎﻋﺚ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻫﺎ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫و‬ ‫وﻇﺎﯾﻒ‬ ‫اﻧﺠﺎم‬ ‫ﻫﻤﺰﻣﺎﻧﯽ‬ ‫ﺟﻬﺖ‬ Threading ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫وﻇﯿﻔﻪ‬ ‫ﺳﺮوﯾﺲ‬ ‫اﯾﻦ‬ ،‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺎراﯾﯽ‬ ‫ﺑﺎﻻرﻓﺘﻦ‬ .‫دارد‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ Multi-Thread ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﭘﺎﯾﻪ‬ ‫ﮐﺘﺎﺑﺨﺎﻧﻪ‬ ‫ﺑﻪ‬ ‫دﺳﺘﺮﺳﯽ‬ ‫اﻣﮑﺎن‬ :Base Class Library .11 .‫دادﯾﻢ‬ ‫ﺗﻮﺿﯿﺢ‬ ‫ﻗﺒﻠﯽ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ BCL ‫ﻣﻮرد‬ ‫در‬ .‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻫﺎ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫اﺟﺮای‬ ‫و‬ JIT ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﻫﺎ‬ ‫ﮐﺪ‬ ‫ﺷﺪه‬ ‫ﮐﺎراﻣﺪ‬ ‫ﺑﺴﯿﺎر‬ ،‫ﺣﺎل‬ ‫ﻋﯿﻦ‬ ‫در‬ ‫وﻟﯽ‬ ‫ﭘﯿﭽﯿﺪه‬ ‫ﮐﻤﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫روﻧﺪ‬ ‫ﮐﻪ‬ ‫ﺷﺪه‬ ‫اﻧﺠﺎم‬ ‫ﻃﻮری‬ ‫ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ‬ ‫ﺷﺮﮐﺖ‬ ‫ﺗﻮﺳﻂ‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫ﻃﺮاﺣﯽ‬ ‫زﯾﺮا‬ .‫اﺳﺖ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ .‫ﺷﻮد‬ ‫اﻧﺠﺎم‬ ‫ﻣﻤﮑﻦ‬ ‫ﺷﮑﻞ‬ ‫ﺗﺮﯾﻦ‬ ‫ﺑﻬﯿﻨﻪ‬ ‫ﺑﻪ‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﯾﺎ‬ JIT ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ،‫دارد‬ ‫را‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫وﻇﯿﻔﻪ‬ ‫ﮐﻪ‬ ‫ﺳﺮوﯾﺴﯽ‬ ،‫ﮔﻔﺘﯿﻢ‬ ‫ﻗﺒﻠﯽ‬ ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫روﻧﺪ‬ ‫ﺗﺸﺮﯾﺢ‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫زﯾﺮ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Just-In-Time
  • 15. ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫روﻧﺪ‬ ‫ﺗﺸﺮﯾﺢ‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬ ‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫زﯾﺮ‬ ‫در‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Just-In-Time ‫اﺟﺮای‬ ‫زﻣﺎن‬ ‫ﺗﺎ‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫زﻣﺎن‬ ‫از‬ ،‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ :‫ﭘﺮدازﯾﻢ‬ ‫ﻣﯽ‬ JIT ‫ﺗﻮﺳﻂ‬ ‫ﮐﺪ‬ ‫ﻧﻈﺮﺗﺎن‬ ‫ﻣﻮرد‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫ﮐﺪ‬ ‫ﺷﻤﺎ‬ ‫اول‬ ‫ﻗﺪم‬ ‫در‬ .1 .‫ﻧﻮﯾﺴﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻣﺎﻧﻨﺪ‬ IL ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﺷﺘﯿﺪ‬ ‫ﺷﻤﺎ‬ ‫ﮐﻪ‬ ‫ﮐﺪی‬ ،‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ ،‫اداﻣﻪ‬ ‫در‬ .2 .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻗﺮار‬ Assembly ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻓﺎﯾﻞ‬ ‫ﯾﮏ‬ ‫داﺧﻞ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﺗﺮﺟﻤﻪ‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﺪﻫﺎ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﮐﻪ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﻫﺎﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫ﻫﺎ‬ Assembly ‫ﮐﻪ‬ ‫ﻫﺎ‬ Metadata ،‫ﺑﺮﻧﺎﻣﻪ‬ IL ‫ﮐﺪ‬ ‫ﺷﺎﻣﻞ‬ ‫ﻫﺎ‬ Assembly .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻗﺮار‬ CLR ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫ﺷﻤﺎ‬ ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪ‬ ‫ﻣﻮرد‬ ‫در‬ ‫اﻃﻼﻋﺎﺗﯽ‬ ... ‫و‬ ‫ﻧﺴﺨﻪ‬ ‫ﻣﺎﻧﻨﺪ‬ ‫اﺳﻤﺒﻠﯽ‬ ‫ﻣﻮرد‬ ‫در‬ ‫اوﻟﯿﻪ‬ ‫اﻃﻼﻋﺎت‬ ‫ﮐﻪ‬ Assembly Manifest ‫و‬ ‫ﺑﻪ‬ Reflection ‫ﺑﺨﺶ‬ ‫در‬ Manifest ‫ﻫﺎ‬ Metadata ‫ﻣﻮرد‬ ‫)در‬ .‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﯽ‬ (‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫ﺗﻔﻀﯿﻞ‬ ‫ﺻﺤﻨﻪ‬ ‫وارد‬ CLR ،‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺑﺎ‬ ،‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺗﻮﺳﻂ‬ Assembly ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .3 ‫ﺑﺨﺶ‬ ‫در‬ ‫ﮐﻪ‬ Class Loader ‫ﺳﺮوﯾﺲ‬ ‫ﺗﻮﺳﻂ‬ ‫اﺑﺘﺪا‬ ‫ﮐﻪ‬ ‫ﺻﻮرت‬ ‫ﺑﺪﯾﻦ‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫ﮐﺪ‬ ‫اﺟﺮای‬ ‫ﺟﻬﺖ‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اوﻟﯿﻪ‬ ‫اﻃﻼﻋﺖ‬ ،‫دادﯾﻢ‬ ‫ﺗﻮﺿﯿﺢ‬ ‫آن‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﻗﺒﻠﯽ‬ ‫ﮐﺪ‬ ‫ﺳﭙﺲ‬ ‫و‬ ،‫ﺷﺪه‬ ‫ﺑﺎرﮔﺬاری‬ ‫ﺣﺎﻓﻈﻪ‬ ‫داﺧﻞ‬ ‫را‬ Metadata ‫و‬ IL ‫ﮐﺪ‬ ‫ﻣﺎﻧﻨﺪ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﺗﺒﺪﯾﻞ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ JIT ‫ﺗﻮﺳﻂ‬ Class Loader ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫ﺑﺎرﮔﺬاری‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ Entiry Point ‫ﯾﺎ‬ ‫ﺷﺮوع‬ ‫ﻧﻘﻄﻪ‬ ‫ﯾﮏ‬ ‫ﺑﻪ‬ ‫ﻧﯿﺎز‬ ‫اﺟﺮا‬ ‫ﺑﺮای‬ ‫ﻧﺖ‬ ‫دات‬ ‫اﺳﻤﺒﻠﯽ‬ ‫ﻫﺮ‬ :1 ‫ﻧﮑﺘﻪ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫در‬ ‫را‬ Entry Point ‫ﯾﻌﻨﯽ‬ ،‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫اﺑﺘﺪا‬ ‫در‬ Class Loader ‫ﮐﻪ‬ ‫دارد‬ .‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫آن‬ JIT ‫و‬ ‫ﮐﺮده‬ ‫ﺑﺎرﮔﺬاری‬ ‫ﻫﺰار‬ ‫ﭼﻨﺪﯾﻦ‬ ‫ﺷﺎﻣﻞ‬ ‫ﺗﻮاﻧﻨﺪ‬ ‫ﻣﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ :2 ‫ﻧﮑﺘﻪ‬ ،‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫اﯾﻦ‬ JIT ‫ﻫﺎی‬ ‫ﻣﺰﯾﺖ‬ ‫از‬ ،‫ﺑﺎﺷﻨﺪ‬ ‫ﻣﺠﺰا‬ ‫ﺑﺨﺶ‬ ‫و‬ ‫ﺧﻂ‬ ‫ﺑﺮای‬ ‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫ﺑﺨﺶ‬ ‫ﺗﻨﻬﺎ‬ ‫ﺑﻠﮑﻪ‬ ،‫ﮐﻨﺪ‬ ‫ﻧﻤﯽ‬ ‫ﺗﺒﺪﯾﻞ‬ ‫ﻣﺎﺷﯿﻦ‬ ‫ﮐﺪ‬ ‫ﺑﻪ‬ ‫ﯾﮑﺠﺎ‬ ‫را‬ ‫ﮐﺪﻫﺎ‬ ‫ﮐﻞ‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ JIT ‫ﺗﻮﺳﻂ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﺑﺎرﮔﺬاری‬ ‫ﺣﺎﻓﻈﻪ‬ ‫در‬ Class Loader ‫ﺗﻮﺳﻂ‬ ‫اﺟﺮا‬ .‫رود‬ ‫ﻣﯽ‬ ‫ﺑﺎﻻ‬ ‫ﺑﺴﯿﺎر‬ ‫ﻧﺖ‬ ‫دات‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻪ‬ ‫ﺑﺎﮔﺬاری‬ ‫ﺳﺮﻋﺖ‬ ‫ﮐﺎر‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ ‫ﻣﻌﻨﺎﺳﺖ؟‬ ‫ﭼﻪ‬ ‫ﺑﻪ‬ "‫دﻗﯿﻘﺎ‬ Managed Code Execution ‫ﯾﺎ‬ MCE ‫اﻣﺎ‬ :‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫زﯾﺮ‬ ‫ﺷﺮح‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫دارد‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ‫ای‬ ‫ﭘﺮوﺳﻪ‬ CLR ،‫ﮔﻔﺘﯿﻢ‬ ‫ﻣﺮﺑﻮﻃﻪ‬ ‫ﻫﺎی‬ Meta Data ‫و‬ IL ‫ﮐﺪ‬ ‫ﺑﺎرﮔﺬاری‬ .1 ‫آن‬ ‫اﺟﺮای‬ ‫و‬ Native ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪ‬ ‫ﺗﺒﺪﯾﻞ‬ .2
  • 16. ‫آن‬ ‫اﺟﺮای‬ ‫و‬ Native ‫ﮐﺪ‬ ‫ﺑﻪ‬ IL ‫ﮐﺪ‬ ‫ﺗﺒﺪﯾﻞ‬ .2 ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫زﻣﺎن‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﮐﻨﺘﺮل‬ .3 Type Safety ‫اﻋﻤﺎل‬ .4 ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫در‬ ‫اﻣﻨﯿﺖ‬ ‫ﮐﻨﺘﺮل‬ .5 ‫ﻫﺎ‬ Exception ‫ﻣﺪﯾﺮﯾﺖ‬ .6 ‫ﻫﻤﻮن‬ ‫ﯾﺎ‬ MCE ‫ﺑﻪ‬ ‫ﺷﺪ‬ ‫ذﮐﺮ‬ ‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫ﺑﺮای‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫اﯾﯽ‬ ‫ﭘﺮوﺳﻪ‬ ‫ﻣﻮﺿﻮع‬ ‫اﯾﻦ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﻣﻄﺎﻟﺐ‬ ‫اﻟﺒﺘﻪ‬ .‫ﻣﯿﺸﻪ‬ ‫ﺷﻨﺎﺧﺘﻪ‬ Managed Code Execution ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﭘﯿﺸﺮﻓﺘﻪ‬ ‫ﺑﺨﺶ‬ ‫در‬ ،‫ﻣﻄﺎﻟﺐ‬ ‫ﺑﻮدن‬ ‫ﺗﺨﺼﺼﯽ‬ ‫دﻟﯿﻞ‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﺑﺴﯿﺎر‬ .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫و‬ CLR ‫ﺑﻪ‬ ‫ﻣﺮﺑﻮط‬ ‫ﻣﻮﺿﻮﻋﺎت‬ ‫ﺑﻪ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫ﺷﺎرپ‬ GC ‫ﺳﺮوﯾﺲ‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫و‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ،‫ﮐﺎﺑﻮس‬ ‫ﺑﺰرﮔﺘﺮﯾﻦ‬ ‫ﺑﮕﯿﻢ‬ ‫ﺑﻬﺘﺮه‬ ،‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻫﺎی‬ ‫ﮐﺎﺑﻮس‬ ‫از‬ ‫ﯾﮑﯽ‬ ‫اﺳﺘﻔﺎده‬ ‫ﺣﺎﻓﻈﻪ‬ ‫از‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﮐﺎﻣﭙﯿﻮﺗﺮ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫از‬ ‫ﺑﻬﯿﻨﻪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﮐﻪ‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫ﺷﻤﺎ‬ ‫اﮔﺮ‬ .‫دارد‬ ‫ﺑﻬﺘﺮی‬ ‫ﻋﻤﻠﮑﺮد‬ ‫و‬ ‫اﺟﺮا‬ ‫ﺳﺮﻋﺖ‬ ،‫ﺑﺎﺷﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺑﻬﯿﻨﻪ‬ ‫واژه‬ "‫ﺣﺘﻤﺎ‬ ،‫ﺑﺎﺷﯿﺪ‬ ‫ﮐﺮده‬ ‫ﮐﺎر‬ ،‫ﻧﺒﺎﺷﺪ‬ ‫ﺧﻮدﮐﺎر‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫آﻧﻬﺎ‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ .‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺗﺎﺋﯿﺪ‬ ‫را‬ ‫ﮐﺎﺑﻮس‬ GC ‫ﺳﺮوﯾﺲ‬ ‫ﺑﻮﺳﯿﻠﻪ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫از‬ ‫ﺑﻬﯿﻨﻪ‬ ‫اﺳﺘﻔﺎده‬ ‫و‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫ﻣﺴﺌﻠﻪ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫اﻣﺎ‬ GC ‫ﺳﺮوﯾﺲ‬ ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫اﺳﺖ‬ ‫ﺷﺪه‬ ‫ﺣﻞ‬ ‫ﮐﺎﻣﻞ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ Garbage Collector ‫ﯾﺎ‬ ‫ﻋﻬﺪه‬ ‫ﺑﻪ‬ ‫را‬ ‫آن‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬ ‫و‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫ﺣﯿﻦ‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﮐﺮدن‬ ‫ﻣﺎﻧﯿﺘﻮر‬ ‫وﻇﯿﻔﻪ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﻧﮕﺮاﻧﯽ‬ ‫ﮔﻮﻧﻪ‬ ‫ﻫﯿﭻ‬ ،‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻋﻨﻮان‬ ‫ﺑﻪ‬ ‫ﺷﻤﺎ‬ ‫دﻟﯿﻞ‬ ‫ﻫﻤﯿﻦ‬ ‫ﺑﻪ‬ .‫دارد‬ .‫داﺷﺖ‬ ‫ﻧﺨﻮاﻫﯿﺪ‬ ‫را‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫ﭘﺎک‬ ‫در‬ ،‫ﮐﻠﯽ‬ ‫ﻃﻮر‬ ‫ﺑﻪ‬ ‫اﻣﺎ‬ ،‫اﺳﺖ‬ ‫ﭘﯿﭽﯿﺪه‬ ‫ﮐﻤﯽ‬ ،‫ﻧﺖ‬ ‫دات‬ ‫در‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫آزاد‬ ‫ﭘﺮوﺳﻪ‬ ‫آزاد‬ ‫و‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺗﺨﺼﯿﺺ‬ .‫دارد‬ ‫وﺟﻮد‬ ‫ﮐﻠﯽ‬ ‫وﻇﯿﻔﻪ‬ ‫دو‬ ،CLR ‫ﺗﻮﺳﻂ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﻣﺪﯾﺮﯾﺖ‬ ‫در‬.‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬ CLR ‫ﺗﻮﺳﻂ‬ ‫ﺧﻮدﮐﺎر‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫وﻇﺎﯾﻒ‬ ‫اﯾﻦ‬ ‫ﮐﻪ‬ ‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫ﺑﺨﺶ‬ ‫آن‬ ‫در‬ ‫ﮐﻪ‬ ‫داد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫اﺧﺘﺼﺎص‬ GC ‫ﺳﺮوﯾﺲ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺑﺨﺸﯽ‬ ‫آﻣﻮزش‬ ‫اداﻣﻪ‬ ‫و‬ ‫ﻫﺎ‬ Finalizer ،‫ﺣﺎﻓﻈﻪ‬ ‫ﺳﺎزی‬ ‫آزاد‬ ‫و‬ ‫ﺗﺨﺼﯿﺺ‬ ‫ﻫﺎی‬ ‫ﭘﺮوﺳﻪ‬ ‫ﺑﺎ‬ ‫ﮐﺎﻣﻞ‬ ‫ﻃﻮر‬ ‫ﺑﻪ‬ .‫ﺷﺪ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫آﺷﻨﺎ‬ GC ‫در‬ ‫ﻫﺎ‬ Generation ‫ﭘﺎﯾﺎن‬ ‫ﺑﻪ‬ ‫ﻧﯿﺰ‬ ‫ﻧﺖ‬ ‫دات‬ ‫اﺑﺘﺪاﯾﯽ‬ ‫ﻣﻔﺎﻫﯿﻢ‬ ،‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﭼﻬﺎم‬ ‫ﺑﺨﺶ‬ ‫ﭘﺎﯾﺎن‬ ‫ﺑﺎ‬ ‫ﮐﺪﻫﺎ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺷﺮوع‬ ‫ﯾﻌﻨﯽ‬ ،‫ﻣﺎ‬ ‫اﺻﻠﯽ‬ ‫ﮐﺎر‬ ،‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫از‬ ‫ﺧﺪا‬ ‫اﻣﯿﺪ‬ ‫ﺑﻪ‬ .‫رﺳﺪ‬ ‫ﻣﯽ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ .‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫آﻏﺎز‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ .‫ﻧﻮﺷﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫و‬ ‫ﺷﺪه‬ ‫آﺷﻨﺎ‬
  • 17. .‫ﻧﻮﺷﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺧﻮد‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫و‬ ‫ﺷﺪه‬ ‫آﺷﻨﺎ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ Visual ‫ﻣﺤﯿﻂ‬ ‫اوﻟﯿﻪ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫ﺗﺎ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻣﺒﺎﺣﺚ‬ ‫اداﻣﻪ‬ ‫در‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﯾﺠﺎد‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﻣﺤﯿﻂ‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬ ‫ﻗﺴﻤﺖ‬ ‫از‬ ‫ﺑﻌﻀﯽ‬ ‫ﺑﺎ‬ ‫و‬ ‫ﭘﺮداﺧﺘﻪ‬ Studio ‫روﻧﺪ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺤﯿﻄﯽ‬ Visual Studio .‫ﺷﻮﯾﻢ‬ ‫آﺷﻨﺎ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﻻزم‬ ‫ﻣﺎ‬ ‫ﻫﺎی‬ ‫اﯾﻦ‬ ‫ﺑﻪ‬ .‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ ‫ﺳﺎده‬ ‫ﻧﻮﯾﺴﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺮای‬ ‫را‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺧﻄﺎﯾﺎﺑﯽ‬ ‫و‬ ‫ﻧﻮﺷﺘﻦ‬ Integrated Development ‫ﮐﻠﻤﺎت‬ ‫ﻣﺨﻔﻒ‬ IDE .‫ﮔﻮﯾﻨﺪ‬ ‫ﻣﯽ‬ ‫ﻧﯿﺰ‬ IDE ‫ﻣﺤﯿﻂ‬ ‫ﻗﺮار‬ ‫ﻧﻮﯾﺲ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺧﺘﯿﺎر‬ ‫در‬ ‫را‬ ‫اﺑﺰارﻫﺎ‬ ‫از‬ ‫ای‬ ‫ﻣﺠﻤﻮﻋﯽ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Environment "‫ﻣﻌﻤﻮﻻ‬ .‫ﺷﻮد‬ ‫ﺗﺮ‬ ‫آﺳﺎن‬ ‫آﻧﻬﺎ‬ ‫ﺑﺮای‬ ‫ﻫﺎ‬ ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫ﺗﻮﺳﻌﻪ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫ﺗﺎ‬ ‫دﻫﺪ‬ ‫ﻣﯽ‬ :‫از‬ ‫ﻋﺒﺎرﺗﻨﺪ‬ ‫ﻫﺎ‬ IDE ‫در‬ ‫راﯾﺞ‬ ‫اﺑﺰارﻫﺎی‬ Source Code Editor ‫ﯾﺎ‬ ‫ﮐﺪ‬ ‫وﯾﺮاﯾﺸﮕﺮ‬ .1 Build Automation Tools ‫ﯾﺎ‬ Build ‫ﺧﻮدﮐﺎرﺳﺎزی‬ ‫اﺑﺰارﻫﺎی‬ .2 Debugger ‫ﻫﻤﺎن‬ ‫ﯾﺎ‬ ‫ﺧﻄﺎﯾﺎب‬ .3 ‫دﯾﮕﺮ‬ ‫ﺗﻮﺳﻌﻪ‬ ‫ﻫﺎی‬ ‫ﻣﺤﯿﻂ‬ ‫ﺑﺎ‬ ‫ﺑﺎﺷﯿﺪ‬ ‫ﮐﺮده‬ ‫ﮐﺎر‬ ++C ‫ﯾﺎ‬ ‫و‬ ‫ﺟﺎوا‬ ‫زﺑﺎن‬ ‫ﺑﺎ‬ ‫ﺷﻤﺎ‬ ‫اﮔﺮ‬ ‫و‬ EClips ‫ﯾﺎ‬ ‫و‬ NetBeans ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ IDE ‫از‬ ‫ﺟﺎوا‬ ‫ﺑﺮای‬ ‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫دارﯾﺪ‬ ‫آﺷﻨﺎﯾﯽ‬ Visual .‫ﮐﺮد‬ ‫اﺳﺘﻔﺎده‬ ‫ﺗﻮان‬ ‫ﻣﯽ‬ Code::Blocks ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ ‫ﻣﺤﯿﻂ‬ ‫از‬ ++C ‫زﺑﺎن‬ ‫ﺑﺮای‬ ‫و‬ C++ ‫ﻣﺜﻞ‬ ‫ﻫﺎﯾﯽ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﺗﻮان‬ ‫ﻣﯽ‬ ‫آن‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ IDE ‫ﯾﮏ‬ ‫ﻧﯿﺰ‬ Studio .‫ﻧﻮﺷﺖ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ... ‫و‬ #C ‫و‬ Visual Basic ‫ﻣﻨﻈﻮر‬ ،‫ﺑﺮﺧﻮردﯾﺪ‬ IDE ‫ﮐﻠﻤﻪ‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﺟﺎﯾﯽ‬ ‫ﻫﺮ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫از‬ ‫ﻟﯿﻨﮏ‬ ،‫ﻧﯿﺎز‬ ‫ﻣﻮرد‬ ‫اﺑﺰارﻫﺎی‬ ‫ﻣﻌﺮﻓﯽ‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫اﻣﺎ‬.‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ Visual Studio ‫ﻫﻤﺎن‬ ‫ﻟﯿﻨﮏ‬ ‫ﻫﻤﺎن‬ ‫ﻃﺮﯾﻖ‬ ‫از‬ ‫ﺗﻮاﻧﻨﺪ‬ ‫ﻣﯽ‬ ‫دوﺳﺘﺎن‬ ‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫داده‬ ‫ﻗﺮار‬ Visual Studio ‫داﻧﻠﻮد‬ ‫ﻣﺸﺎﻫﺪه‬ ‫را‬ ‫زﯾﺮ‬ ‫ﻣﺤﯿﻂ‬ VS ‫اﺟﺮای‬ ‫و‬ ،‫ﻧﺼﺐ‬ ‫و‬ ‫داﻧﻠﻮد‬ ‫از‬ ‫ﺑﻌﺪ‬ .‫ﮐﻨﻨﺪ‬ ‫داﻧﻠﻮد‬ ‫را‬ VS :‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﺪ‬
  • 18. ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫آن‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﺑﻪ‬ ‫اﯾﻦ‬ ‫از‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﻣﺤﯿﻄﯽ‬ ،‫ﺷﺪه‬ ‫ﻇﺎﻫﺮ‬ ‫ﭘﻨﺠﺮه‬ ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ای‬ ‫ﭘﻮﺷﻪ‬ ‫ﻫﺎ‬ ‫دراﯾﻮ‬ ‫از‬ ‫ﯾﮑﯽ‬ ‫در‬ ‫ﺷﺮوع‬ ‫ﺑﺮای‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫اﺳﺘﻔﺎده‬ ‫ﻫﺎﯾﻤﺎن‬ ‫ﮐﺎر‬ ‫دوره‬ ‫اﯾﻦ‬ ‫ﻃﻮل‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﺎﯾﯽ‬ ‫ﭘﺮوژه‬ ‫ﮐﻠﯿﻪ‬ .‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬ C# 2013 Tutorials ‫ﭘﺮوژه‬ ‫ﺑﺎﯾﺪ‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .‫ﮔﺮﻓﺖ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﻗﺮار‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﻦ‬ ‫در‬ ،‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺑﺮای‬ .‫ﺑﻮد‬ ‫ﺧﻮاﻫﺪ‬ #C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻣﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫ﭘﺮوژه‬ ‫اﯾﻦ‬ .‫ﮐﻨﯿﻢ‬ ‫اﯾﺠﺎد‬ ‫ﺟﺪﯾﺪی‬ ‫ﺑﺎ‬ .‫ﮐﻨﯿﺪ‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ Project ‫ﺳﭙﺲ‬ ‫و‬ New ‫ﺗﺮﺗﯿﺐ‬ ‫ﺑﻪ‬ File ‫ﻣﻨﻮی‬ ‫از‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬ :‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫ﻇﺎﻫﺮ‬ New Project ‫ﭘﻨﺠﺮه‬ ‫ﮔﺰﯾﻨﻪ‬ ‫اﯾﻦ‬ ‫اﻧﺘﺨﺎب‬
  • 19. ‫ﺑﺮ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﻣﻮﺟﻮد‬ ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫اﻧﻮاع‬ ‫از‬ ‫ﻟﯿﺴﺘﯽ‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ ‫در‬ ‫ﻧﻮع‬ ‫ﺑﺎﯾﺪ‬ New Project ‫ﭘﻨﺠﺮه‬ ‫در‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬ ‫ﺑﻪ‬ ‫اﻗﺪام‬ ‫ﻧﯿﺎز‬ ‫اﺳﺎس‬ ‫اﯾﺠﺎد‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﭘﺮوژه‬ .‫ﮐﻨﯿﻢ‬ ‫ﻣﺸﺨﺺ‬ ‫را‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬ ‫ﻣﺴﯿﺮ‬ ‫و‬ ‫ﭘﺮوژه‬ ‫ﻧﺎم‬ ،‫ﭘﺮوژه‬ CSharp-Course03-01 ‫آن‬ ‫ﻧﺎم‬ ‫و‬ ‫ﺑﻮده‬ Console Application ‫ﻧﻮع‬ ‫از‬ ‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﭘﻮﺷﻪ‬ ‫ﮐﻪ‬ ‫ﮐﻨﯿﺪ‬ ‫دﻗﺖ‬ .‫ﺑﺎﺷﺪ‬ ‫زﯾﺮ‬ ‫ﺗﺼﻮﯾﺮ‬ ‫ﻣﻄﺎﺑﻖ‬ ‫ﺑﺎﯾﺪ‬ New Project ‫ﭘﻨﺠﺮه‬ .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫ﺑﻮدﯾﺪ‬ ‫ﻣﺎﯾﻞ‬ ‫ﮐﻪ‬ ‫دراﯾﻮی‬ ‫ﻫﺮ‬ ‫در‬ ‫ﺷﻤﺎ‬ ،‫ﺳﺎﺧﺘﻢ‬ G ‫دراﯾﻮ‬ ‫در‬ ‫ﻣﻦ‬ ‫را‬ C# 2013 Tutorials :‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬ ‫را‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﻦ‬
  • 20. ‫اﯾﻦ‬ ‫ﮐﻪ‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﻣﺎ‬ ‫ﺑﺮای‬ Solution ‫ﯾﮏ‬ OK ‫دﮐﻤﻪ‬ ‫روی‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫از‬ ‫ﺑﻌﺪ‬ Solution .‫ﮐﻨﯿﻢ‬ ‫ﮐﺎر‬ ‫آن‬ ‫روی‬ ‫ﺑﺮ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ای‬ ‫ﭘﺮوژه‬ ‫ﺣﺎوی‬ Solution ‫ﭘﺮوژه‬ ‫اﯾﻦ‬ ،‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ Visual Studio ‫در‬ ‫ﭘﺮوژه‬ ‫ﯾﮏ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫زﻣﺎﻧﯽ‬ ‫ﭼﯿﺴﺖ؟‬ ‫ﮐﻪ‬ ‫اﺳﺖ‬ ‫ﻓﻀﺎﯾﯽ‬ Solution ‫ﯾﮏ‬ ‫ﺣﻘﯿﻘﺖ‬ ‫در‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ Solution ‫ﯾﮏ‬ ‫ﺗﺤﺖ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ sln ‫ﭘﺴﻮﻧﺪ‬ ‫ﺑﺎ‬ Solution ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .‫ﺑﺎﺷﺪ‬ ‫ﭘﺮوژه‬ ‫ﭼﻨﺪﯾﻦ‬ ‫ﺷﺎﻣﻞ‬ ‫ﺗﻮاﻧﺪ‬ ‫ﻣﯽ‬ ‫ﮐﻨﯿﻢ‬ ‫ﻣﺮاﺟﻌﻪ‬ G:C# 2013 TutorialsCSharp-Course03-01 ‫ﭘﻮﺷﻪ‬ ‫ﺑﻪ‬ ‫اﮔﺮ‬ .‫ﺷﻮﻧﺪ‬ :‫ﺷﺪ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫روﺑﺮو‬ ‫زﯾﺮ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﻣﺸﺎﺑﻪ‬ ‫ﺳﺎﺧﺘﺎری‬ ‫ﺑﺎ‬ ،‫ﺷﻮﯾﻢ‬ ‫دارد‬ ‫ﻗﺮار‬ ‫ﭘﻮﺷﻪ‬ ‫ﻫﻤﯿﻦ‬ ‫داﺧﻞ‬ ‫ﮐﻪ‬ CSharp-Course03-01 ‫ﭘﻮﺷﻪ‬ ‫وارد‬ ‫اﮔﺮ‬ :‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫را‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﭘﺮوژه‬ ‫ﻣﺤﺘﻮﯾﺎت‬
  • 21. ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ csproj ‫ﭘﺴﻮﻧﺪ‬ ‫ﺑﺎ‬ #C ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ #C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻣﺎ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺣﺎوی‬ ‫ﮐﻪ‬ ‫ﻫﺴﺘﻨﺪ‬ ‫ﻫﺎﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ cs ‫ﭘﺴﻮﻧﺪ‬ ‫ﺑﺎ‬ Visual Studio ‫ﺗﻮﺳﻂ‬ ‫ﺷﺪه‬ ‫اﯾﺠﺎد‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫از‬ ‫ﻧﻮع‬ ‫ﺳﻪ‬ ‫ﺑﺎ‬ ‫اﯾﻨﺠﺎ‬ ‫ﺗﺎ‬ ‫ﭘﺲ‬ .‫ﻫﺴﺘﻨﺪ‬ :‫ﺷﺪﯾﻢ‬ ‫آﺷﻨﺎ‬ ‫ﻫﺴﺘﻨﺪ‬ Visual Studio ‫ﻫﺎی‬ Solution ‫ﻫﻤﺎن‬ ‫ﮐﻪ‬ sln ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .1 ‫ﻫﺴﺘﻨﺪ‬ #C ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﮐﻪ‬ csproj ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .2 ‫ﻫﺴﺘﻨﺪ‬ #C ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﮐﻪ‬ cs ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ .3 .‫ﺷﻮﯾﻢ‬ ‫آﺷﻨﺎ‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫ﺑﺎ‬ ‫اﺳﺖ‬ ‫ﺑﻬﺘﺮ‬ ،‫ﻧﻮﯾﺴﯽ‬ ‫ﮐﺪ‬ ‫ﺷﺮوع‬ ‫از‬ ‫ﻗﺒﻞ‬ ‫اﻣﺎ‬ ‫از‬ ‫ﻟﯿﺴﺘﯽ‬ ،‫دارد‬ ‫ﻗﺮار‬ Visual Studio ‫راﺳﺖ‬ ‫ﺳﻤﺖ‬ ‫در‬ ‫ﻣﻌﻤﻮل‬ ‫ﻃﻮر‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﻣﺎ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﻫﺎ‬ ‫ﭘﺮوژه‬ ‫در‬ ‫ﻣﻮﺟﻮد‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫و‬ ‫ﺟﺎری‬ Solution ‫ﻫﺎی‬ ‫ﭘﺮوژ‬ :‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫زﯾﺮ‬ ‫ﺷﮑﻞ‬ ‫در‬ ‫را‬ ‫آن‬ ‫ﺗﺼﻮﯾﺮ‬ ‫ﮐﻪ‬ ‫دﻫﺪ‬
  • 22. ‫ﻫﺎی‬ ‫ﭘﺮوژه‬ ‫و‬ Solution ‫از‬ ‫ﺳﺎﺧﺘﺎری‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ ‫در‬ ‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ ‫ﻫﺮ‬ ‫روی‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫دوﺑﺎر‬ ‫ﺑﺎ‬ .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ Solution ‫اﯾﻦ‬ ‫در‬ ‫ﻣﻮﺟﻮد‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺷﻤﺎ‬ ‫ﺑﻪ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫در‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ،‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫از‬ ‫ﯾﮏ‬ ،‫ﮐﻨﯿﺪ‬ ‫ﮐﻠﯿﮏ‬ ‫دوﺑﺎر‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫روی‬ ‫ﺑﺮ‬ ‫اﮔﺮ‬ ،‫ﻣﺜﺎل‬ ‫ﺑﺮای‬ .‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ :‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺷﻤﺎ‬ ‫ﺑﻪ‬ ‫زﯾﺮ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ‫ﮔﺰﯾﻨﻪ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﺷﺪ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ،‫ﻓﺎﯾﻞ‬ ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﻠﯿﮏ‬ ‫ﺑﺎر‬ ‫ﯾﮏ‬ ‫ﺑﺎ‬ ‫اﮔﺮ‬ ‫ﺧﺎرج‬ ‫اﻧﺘﺨﺎب‬ ‫ﺣﺎﻟﺖ‬ ‫از‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫در‬ ‫را‬ Preview Selected Items :‫ﮐﻨﯿﺪ‬
  • 23. ‫ﻣﻨﻮی‬ ‫از‬ ،‫ﮐﻨﯿﺪ‬ ‫ﻧﻤﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫را‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫ﮐﻪ‬ ‫ﺻﻮرﺗﯽ‬ ‫در‬ ‫ﻫﻤﭽﻨﯿﻦ‬ .‫ﺷﻮد‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﺪ‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ Solution Explorer ‫ﮔﺰﯾﻨﻪ‬ View Auto ‫ﻗﺎﺑﻠﯿﺖ‬ ‫اﺳﺖ‬ ‫ﺑﻬﺘﺮ‬ ،Visual Studio ‫ﻓﻀﺎی‬ ‫از‬ ‫ﺗﺮ‬ ‫ﺑﻬﯿﻨﻪ‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺮای‬ ‫ﻫﻤﭽﻨﯿﻦ‬ ‫زﻣﺎﻧﯽ‬ ‫ﺗﻨﻬﺎ‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ ‫ﮐﺎر‬ ‫اﯾﻦ‬ ‫ﺑﺎ‬ .‫ﮐﻨﯿﻢ‬ ‫ﻓﻌﺎل‬ ‫را‬ ‫ﭘﻨﺠﺮه‬ ‫اﯾﻦ‬ Hide :‫ﺑﺎﺷﯿﻢ‬ ‫داﺷﺘﻪ‬ ‫ﻧﯿﺎز‬ ‫آن‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ﺷﺪ‬ ‫ﺧﻮاﻫﺪ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬
  • 24. ‫ﮐﻠﯿﮏ‬ ‫ﺑﺎ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫آن‬ ‫ﭘﻨﺠﺮه‬ Solution Explorer ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫ﺑﺎ‬ ،‫اﺳﺖ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اوﻟﯿﻦ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫زﻣﺎن‬.‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫ﻧﺎﭘﺪﯾﺪ‬ ‫دوﺑﺎره‬ ،‫آن‬ ‫از‬ ‫ﺧﺎرج‬ ‫ﺟﺎﯾﯽ‬ ‫ﮐﺮدن‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫ﺑﺎز‬ ‫را‬ ‫آن‬ Program.cs ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﺮدن‬ ‫ﮐﻠﯿﮏ‬ ‫دوﺑﺎر‬ ‫ﺑﺎ‬ :‫ﺑﻨﻮﯾﺴﯿﻢ‬ ‫را‬ ‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫ﮐﺪ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺑﻪ‬ Hello ITPro.ir ‫ﭘﯿﺎم‬ ‫ﮐﻪ‬ ‫ﺑﻨﻮﯾﺴﯿﻢ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫دارﯾﻢ‬ ‫ﻗﺼﺪ‬ ‫اﯾﻨﺠﺎ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻫﻤﺎﻧﻄﻮر‬ .‫ﺷﻮد‬ ‫ﺧﺎرج‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﻠﯿﺪی‬ ‫زدن‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬ ‫ﺧﺮوﺟﯽ‬ .‫اﺳﺖ‬ Console Application ‫ﻧﻮع‬ ‫از‬ ،‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮔﻔﺘﯿﻢ‬ ‫ﭘﻨﺠﺮه‬ ‫ﺑﻪ‬ ‫ﺷﺒﯿﻪ‬ ‫ای‬ ‫ﭘﻨﺠﺮه‬ ‫ﮐﻪ‬ Console ‫ﭘﻨﺠﺮه‬ ‫در‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮع‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﯿﺸﺘﺮ‬ .‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫اﺳﺖ‬ ‫وﯾﻨﺪوز‬ Command Prompt ‫ﻓﺎﯾﻞ‬ ‫ﮐﺪ‬ .‫ﺑﻮد‬ ‫ﺧﻮاﻫﺪ‬ Console Application ‫ﻧﻮع‬ ‫از‬ ‫ﻣﺎ‬ ‫آﻣﻮزﺷﯽ‬ ‫اول‬ ‫ﺑﺨﺶ‬
  • 25. ‫ﻓﺎﯾﻞ‬ ‫ﮐﺪ‬ .‫ﺑﻮد‬ ‫ﺧﻮاﻫﺪ‬ Console Application ‫ﻧﻮع‬ ‫از‬ ‫ﻣﺎ‬ ‫آﻣﻮزﺷﯽ‬ ‫اول‬ ‫ﺑﺨﺶ‬ :‫دﻫﯿﺪ‬ ‫ﺗﻐﯿﯿﺮ‬ ‫زﯾﺮ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫را‬ Program.cs ‫ﻣﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﮐﺮدن‬ ‫اﺟﺮا‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﺑﺎﻻ‬ ‫ﮐﺪﻫﺎی‬ ‫ﻧﻮﺷﺘﻦ‬ ‫از‬ ‫ﺑﻌﺪ‬ :‫ﮐﻨﯿﻢ‬ ‫اﺳﺘﻔﺎده‬ ‫روش‬ ‫ﺳﻪ‬ ‫از‬ ‫ﺗﻮاﻧﯿﻢ‬ :‫دارد‬ ‫ﻗﺮار‬ Visual Studio ‫اﺑﺰار‬ ‫ﻧﻮار‬ ‫در‬ ‫ﮐﻪ‬ Start ‫دﮐﻤﻪ‬ ‫روی‬ ‫ﺑﺮ‬ ‫ﮐﻠﯿﮏ‬ .1
  • 26. Debug ‫ﻣﻨﻮی‬ ‫از‬ Start Debugging ‫ﮔﺰﯾﻨﻪ‬ ‫اﻧﺘﺨﺎب‬ .2 .‫ﺑﺎﺷﺪ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫ﺑﺮای‬ ‫روش‬ ‫ﺳﺮﯾﻌﺘﺮﯾﻦ‬ ‫راه‬ ‫اﯾﻦ‬ ‫ﮐﻪ‬ F5 ‫ﮐﻠﯿﺪ‬ ‫دادن‬ ‫ﻓﺸﺎر‬ 3 ‫ﻧﻤﺎﯾﺶ‬ ‫ﺻﻔﺤﻪ‬ ‫روی‬ ‫ﺑﺮ‬ ‫زﯾﺮ‬ ‫ﺧﺮوﺟﯽ‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﺑﺮﻧﺎﻣﻪ‬ F5 ‫ﮐﻠﯿﺪ‬ ‫زدن‬ ‫ﺑﺎ‬ :‫ﺷﻮد‬ ‫داده‬ ‫و‬ ‫ﺷﻮﯾﻢ‬ ‫ﺧﺎرج‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ‫ﺗﺎ‬ ‫زده‬ ‫را‬ ‫ﮐﻠﯿﺪی‬ ‫ﺧﺮوﺟﯽ‬ ‫ﻣﺸﺎﻫﺪه‬ ‫و‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﻣﯽ‬ ‫ﺑﺮرﺳﯽ‬ ‫را‬ ‫ﻧﻮﺷﺘﯿﻢ‬ ‫ﮐﻪ‬ ‫ﮐﺪی‬ ‫از‬ ‫ﺧﻂ‬ ‫ﺳﻪ‬ .‫ﺑﺮﮔﺮدﯾﻢ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﻪ‬ :‫ﮐﻨﯿﻢ‬ ‫ﺑﺮ‬ ‫را‬ Hello ITPro.ir ‫ﻣﺘﻦ‬ WriteLine ‫دﺳﺘﻮر‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ ‫ﺧﻂ‬ ‫اﯾﻦ‬ ‫در‬ :13 ‫ﺧﻂ‬ .‫دﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺧﺮوﺟﯽ‬ ‫روی‬ Press any key to ‫ﻣﺘﻦ‬ WriteLine ‫دﺳﺘﻮر‬ ‫ﮐﻤﮏ‬ ‫ﺑﺎ‬ ‫ﺧﻂ‬ ‫اﯾﻦ‬ ‫در‬ :14 ‫ﺧﻂ‬ ‫را‬ ‫ﮐﻠﯿﺪی‬ ‫ﺑﺎﯾﺪ‬ ‫ﺧﺮوج‬ ‫ﺑﺮای‬ ‫ﺑﺪاﻧﺪ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺗﺎ‬ ‫دﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺧﺮوﺟﯽ‬ ‫در‬ ...exit .‫دﻫﺪ‬ ‫ﻓﺸﺎر‬
  • 27. ‫ﺗﺎ‬ ‫ﻣﺎﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻣﻨﺘﻈﺮ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ReadKey ‫دﺳﺘﻮر‬ ‫ﺑﻪ‬ ‫رﺳﯿﺪن‬ ‫و‬ ‫اﯾﻦ‬ ‫در‬ :15 ‫ﺧﻂ‬ ‫و‬ ‫رﺳﯿﺪه‬ ‫اﻧﺘﻬﺎ‬ ‫ﺑﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ،‫ﮐﻠﯿﺪ‬ ‫ﯾﮏ‬ ‫دادن‬ ‫ﻓﺸﺎر‬ ‫ﺑﺎ‬ ،‫دﻫﺪ‬ ‫ﻓﺸﺎر‬ ‫را‬ ‫ﮐﻠﯿﺪی‬ ‫ﮐﺎرﺑﺮ‬ .‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫ﺧﺎرج‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺧﺮوﺟﯽ‬ ‫ﺗﻨﻬﺎ‬ ‫و‬ ‫ﺑﻮده‬ ‫ﺳﺎده‬ ‫ﺑﺴﯿﺎر‬ ‫ﻧﻮﺷﺘﯿﻢ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫درﯾﺎﻓﺖ‬ ‫ﮐﺎرﺑﺮ‬ ‫از‬ ‫ورودی‬ ‫ﮐﻪ‬ ‫ﻧﻮﯾﺴﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻫﺎﯾﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﻌﺪی‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫در‬ ،‫دﻫﺪ‬ ‫ﺑﺎ‬ ‫ﮐﺮدﯾﻢ‬ ‫ﺳﻌﯽ‬ ‫ﺑﺨﺶ‬ ‫اﯾﻦ‬ ‫در‬.‫دﻫﺪ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺧﺮوﺟﯽ‬ ‫ورودی‬ ‫اﺳﺎس‬ ‫ﺑﺮ‬ ‫و‬ ‫ﮐﺮده‬ :‫ﺷﻮﯾﻢ‬ ‫آﺷﻨﺎ‬ ‫زﯾﺮ‬ ‫ﻣﻮارد‬ ‫ﺑﺎ‬ ‫ﺳﺎده‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﯾﮏ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫و‬ ‫ﭘﺮوژه‬ ‫ﯾﮏ‬ ‫اﯾﺠﺎد‬ IDE ‫ﻣﻔﻬﻮم‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫و‬ Visual Studio ‫ﻣﺤﯿﻂ‬ .1 Visual Studio ‫در‬ ‫ﺟﺪﯾﺪ‬ ‫ﭘﺮوژه‬ ‫اﯾﺠﺎد‬ ‫ﻧﺤﻮه‬ .2 Project ‫و‬ Solution ‫ﻣﯿﺎن‬ ‫ﺗﻔﺎوت‬ .3 ‫آن‬ ‫ﮐﺎرﺑﺮد‬ ‫و‬ Solution Explorer ‫ﭘﻨﺠﺮه‬ .4 Visual Studio ‫ﻣﺤﯿﻂ‬ ‫در‬ ‫آن‬ ‫اﺟﺮای‬ ‫و‬ ‫ﺳﺎده‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﯾﮏ‬ ‫ﻧﻮﺷﺘﻦ‬ .5 ‫ﻗﺮار‬ ‫ﺑﺮرﺳﯽ‬ ‫ﻣﻮرد‬ ‫وار‬ ‫ﺗﯿﺘﺮ‬ ‫و‬ ‫ﺳﺮﯾﻊ‬ ‫ﺧﯿﻠﯽ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ،‫ﺷﺪ‬ ‫ذﮐﺮ‬ ‫ﺑﺎﻻ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﻣﻮاردی‬ ‫ﺑﺎﻻ‬ ‫ﻣﻮارد‬ ،‫ﺑﻌﺪی‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫ﺑﻪ‬ ‫رﺳﯿﺪن‬ ‫و‬ ‫آﻣﻮزﺷﯽ‬ ‫دوره‬ ‫رﻓﺘﻦ‬ ‫ﭘﯿﺶ‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﮔﺮﻓﺘﻨﺪ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺑﻌﺪی‬ ‫ﺑﺨﺶ‬ ‫در‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺗﻔﺼﯿﻞ‬ ‫ﺑﻪ‬ ‫را‬ .‫داد‬ ‫ﺧﻮاﻫﻢ‬ ‫ﺗﻮﺿﯿﺢ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫اﺟﺮای‬ ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫ﻧﺤﻮه‬ ‫و‬ #C ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫و‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫اﺟﺮای‬ ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫ﻧﺤﻮه‬ ‫و‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺳﺎﺧﺘﺎر‬ ‫ﺑﺮرﺳﯽ‬ ‫ﺑﻪ‬ ‫اداﻣﻪ‬ ‫در‬ ‫ﮐﺪﻫﺎ‬ ‫اﺟﺮای‬ ‫روﻧﺪ‬ ‫ﺑﺎ‬ ‫ﺷﻤﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ﻣﻮﺿﻮع‬ ‫اﯾﻦ‬ ‫دﻟﯿﻞ‬ .‫ﭘﺮداﺧﺖ‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﻫﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫را‬ ‫ﮐﺪﻫﺎﯾﯽ‬ ‫ﻗﺒﻞ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ .‫اﺳﺖ‬ ‫ﺷﺎرپ‬ ‫ﺳﯽ‬ ‫آﻣﻮزش‬ ‫در‬ ‫ﻧﻮﯾﺴﯽ‬ ‫ﮐﺪ‬ ‫ﺷﺮوع‬ ‫از‬ ‫ﻗﺒﻞ‬ ‫و‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﻦ‬ ‫ﻣﻮرد‬ ‫در‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻗﺴﻤﺖ‬ ‫اﯾﻦ‬ ‫در‬ .‫ﻧﻮﺷﺘﯿﻢ‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫در‬ ‫ﻓﺎﯾﻞ‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ‫ﺑﺎﺷﯿﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺧﺎﻃﺮ‬ ‫ﺑﻪ‬ ‫اﮔﺮ‬ .‫ﮐﻨﯿﻢ‬ ‫ﺻﺤﺒﺖ‬ ‫ﺑﯿﺸﺘﺮ‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ :‫ﺑﻮد‬ ‫زﯾﺮ‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp_Course03_01
  • 28. { class Program { static void Main(string[] args) { Console.WriteLine("Hello ITPro.ir"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } } } :‫اﺳﺖ‬ ‫زﯾﺮ‬ ‫ﺑﺨﺶ‬ ‫ﮐﻨﯿﻢ‬ ‫ﺗﻮﺟﻪ‬ ‫آن‬ ‫ﺑﻪ‬ ‫ﺑﺎﯾﺪ‬ ‫ﮐﻪ‬ ‫اﺻﻠﯽ‬ ‫ﻗﺴﻤﺖ‬ ‫ﺣﺎﺿﺮ‬ ‫ﺣﺎل‬ ‫در‬ static void Main(string[] args) { } ‫ﺗﻮﺿﯿﺢ‬ ‫ﺑﯿﺸﺘﺮ‬ ‫آﯾﻨﺪه‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫در‬ ‫ﻣﺘﺪﻫﺎ‬ ‫ﺑﺎره‬ ‫در‬ .‫اﺳﺖ‬ ‫ﻣﺘﺪ‬ ‫ﯾﮏ‬ ،‫ﺑﺎﻻ‬ ‫ﮐﺪ‬ ‫ﻗﻄﻌﻪ‬ ‫ﺗﻌﺮﯾﻒ‬ ‫را‬ ‫ﻣﺘﺪی‬ ‫ﺑﺎﻻ‬ ‫ﮐﺪ‬ ‫ﮐﻪ‬ ‫ﺑﺎﺷﯿﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺧﺎﻃﺮ‬ ‫ﺑﻪ‬ ‫ﺣﺎﺿﺮ‬ ‫ﺣﺎل‬ ‫در‬ ‫اﻣﺎ‬ ،‫داد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﭼﯿﺴﺖ؟‬ Main ‫ﻣﺘﺪ‬ ‫ﮐﺎر‬ .‫اﺳﺖ‬ Main ‫آن‬ ‫ﻧﺎم‬ ‫ﮐﻪ‬ ‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ .‫ﺑﺎﺷﺪ‬ ‫داﺷﺘﻪ‬ ‫ﺷﺮوع‬ ‫ﻧﻘﻄﻪ‬ ‫ﯾﮏ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﻧﻮﯾﺴﯿﻢ‬ ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻣﺎ‬ ‫ﮐﻪ‬ ‫زﻣﺎﻧﯽ‬ ‫ﯾﻌﻨﯽ‬ .‫اﺳﺖ‬ ‫ﻣﺎ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺷﺮوع‬ ‫ﻧﻘﻄﻪ‬ Main ‫ﻣﺘﺪ‬ ‫دﻧﺒﺎل‬ ‫ﻣﺎ‬ ‫اﺟﺮاﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫در‬ NET Framework. ،‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ #C ‫ﻣﯽ‬ ‫اﺟﺮا‬ ‫را‬ ‫ﻣﺘﺪ‬ ‫اﯾﻦ‬ ‫داﺧﻞ‬ ‫ﮐﺪﻫﺎی‬ ،‫آن‬ ‫ﮐﺮدن‬ ‫ﭘﯿﺪا‬ ‫ﺑﺎ‬ ‫و‬ ‫ﮔﺸﺘﻪ‬ Main ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫ﻣﺘﺪی‬ ‫ﮐﻪ‬ ‫ﺧﻄﯽ‬ ‫دو‬ ،‫ﻗﺒﻠﯽ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫در‬ ‫ﮐﻪ‬ ‫ﺷﻮﻧﺪ‬ ‫ﻣﯽ‬ ‫ﻧﻮﺷﺘﻪ‬ { ‫و‬ } ‫ﺑﯿﻦ‬ ‫ﮐﻪ‬ ‫ﮐﺪﻫﺎﯾﯽ‬ .‫ﮐﻨﺪ‬ ‫ﻣﯽ‬ ‫ﮐﺎرﺑﺮ‬ ‫ﺗﻮﺳﻂ‬ ‫ﮐﻠﯿﺪی‬ ‫زدن‬ ‫ﻣﻨﺘﻈﺮ‬ ‫ﮐﻪ‬ ‫ﺧﻄﯽ‬ ‫و‬ ‫دﻫﺪ‬ ‫ﻣﯽ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫را‬ ‫ﺧﺮوﺟﯽ‬ ‫از‬ ،‫آن‬ ‫اﺟﺮای‬ ‫و‬ ‫ﻣﺘﺪ‬ ‫ﺧﻂ‬ ‫آﺧﺮﯾﻦ‬ ‫ﺑﻪ‬ ‫رﺳﯿﺪن‬ ‫ﺑﺎ‬ .‫ﻫﺴﺘﻨﺪ‬ Main ‫ﻣﺘﺪ‬ ‫ﻣﺤﺘﻮﯾﺎت‬ ،‫ﺷﻮد‬ .‫رﺳﺪ‬ ‫ﻣﯽ‬ ‫اﺗﻤﺎم‬ ‫ﺑﻪ‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫و‬ ‫ﺷﺪه‬ ‫ﺧﺎرج‬ Main ‫ﻣﺘﺪ‬ ‫ﺧﻮاﻫﻨﺪ‬ ‫ﻗﺮار‬ ‫ﺑﺮرﺳﯽ‬ ‫ﻣﻮرد‬ ‫ﺑﻌﺪی‬ ‫ﻫﺎی‬ ‫ﺑﺨﺶ‬ ‫در‬ ،‫ﻓﺎﯾﻞ‬ ‫ﻫﺎی‬ ‫ﻗﺴﻤﺖ‬ ‫ﺑﻘﯽ‬ ‫ﻣﺎ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫از‬ ،‫دوره‬ ‫اﯾﻦ‬ ‫ﻫﺎی‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﻧﻮﺷﺘﻦ‬ ‫ﺑﺮای‬ ‫ﮐﻪ‬ ‫ﮔﻔﺘﯿﻢ‬ ‫ﻣﺎ‬ .‫ﮔﺮﻓﺖ‬ ‫را‬ ‫ﻫﺎﯾﻤﺎن‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺘﻮاﻧﯿﻢ‬ ‫ﮐﻪ‬ ‫دارد‬ ‫وﺟﻮد‬ ‫اﻣﮑﺎن‬ ‫اﯾﻦ‬ ‫اﻣﺎ‬ .‫ﮐﺮد‬ ‫ﺧﻮاﻫﯿﻢ‬ ‫اﺳﺘﻔﺎده‬ .‫ﮐﻨﯿﻢ‬ ‫اﺟﺮا‬ ‫و‬ ‫ﻧﻮﺷﺘﻪ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫ﺑﺪون‬ ‫ﻧﺎم‬ ‫ﺑﻪ‬ ‫اﺳﺖ‬ ‫ﻓﺎﯾﻠﯽ‬ #C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ .‫دارﯾﻢ‬ ‫ﻧﯿﺎز‬ #C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺑﻪ‬ ‫ﮐﺎر‬ ‫اﯾﻦ‬ ‫ﺑﺮای‬ ‫ﺑﻪ‬ ‫را‬ ‫اﺟﺮاﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫و‬ IL ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺗﺮﺟﻤﻪ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫ﮐﻪ‬ csc.exe
  • 29. ‫ﺑﻪ‬ ‫را‬ ‫اﺟﺮاﯾﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫و‬ IL ‫زﺑﺎن‬ ‫ﺑﻪ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﮐﺪﻫﺎی‬ ‫ﺗﺮﺟﻤﻪ‬ ‫ﻋﻤﻠﯿﺎت‬ ‫ﮐﻪ‬ csc.exe ‫ﻗﺪم‬ ‫ﺻﻮرت‬ ‫ﺑﻪ‬ ‫را‬ ‫ﺳﺎده‬ ‫ﺗﻤﺮﯾﻦ‬ ‫ﯾﮏ‬ ،#C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺑﺎ‬ ‫آﺷﻨﺎﯾﯽ‬ ‫ﺑﺮای‬ .‫دارد‬ ‫ﻋﻬﺪه‬ .‫دﻫﯿﻢ‬ ‫ﻣﯽ‬ ‫اﻧﺠﺎم‬ ‫ﻫﻢ‬ ‫ﺑﺎ‬ ‫ﻗﺪم‬ ‫ﺑﻪ‬ CSharp-Course04-01 ‫ﻧﺎم‬ ‫ﺑﺎ‬ ‫ﺟﺪﯾﺪ‬ ‫ﭘﻮﺷﻪ‬ ‫ﯾﮏ‬ C# 2013 Tutorials ‫ﭘﻮﺷﻪ‬ ‫در‬ .1 .‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬ ‫ﮐﻠﯿﺪ‬ ‫ﺗﺮﮐﯿﺐ‬ ‫از‬ ‫ﺗﻮاﻧﯿﺪ‬ ‫ﻣﯽ‬ ‫وﯾﻨﺪوز‬ File Explorer ‫در‬ ‫ﺟﺪﯾﺪ‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﺠﺎد‬ ‫ﺑﺮای‬ New > ‫اﻧﺘﺨﺎب‬ ‫ﺳﭙﺲ‬ ‫و‬ ‫ﻣﻮس‬ ‫ﮐﻠﯿﮏ‬ ‫راﺳﺖ‬ ‫ﯾﺎ‬ ‫و‬ Ctrl+Shif+N ‫ﻫﺎی‬ .‫ﮐﻨﯿﺪ‬ ‫اﺳﺘﻔﺎده‬ Folder .‫ﮐﻨﯿﺪ‬ ‫اﯾﺠﺎد‬ txt ‫ﻓﺎﯾﻞ‬ ‫ﯾﮏ‬ ‫آن‬ ‫داﺧﻞ‬ ،CSharp-Course04-01 ‫ﭘﻮﺷﻪ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .2 New > Text ‫ﮔﺰﯾﻨﻪ‬ ،‫راﺳﺖ‬ ‫ﺳﻤﺖ‬ ‫دﮐﻤﻪ‬ ،‫ﻣﺘﻨﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﺪ‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ Document .‫دﻫﯿﺪ‬ ‫ﺗﻐﯿﯿﺮ‬ Program.cs ‫ﺑﻪ‬ ‫را‬ ‫آن‬ ‫ﻧﺎم‬ ،‫ﻣﺘﻨﯽ‬ ‫ﻓﺎﯾﻞ‬ ‫اﯾﺠﺎد‬ ‫از‬ ‫ﺑﻌﺪ‬ .3 ‫ﮐﻪ‬ ‫ﮐﻨﯿﺪ‬ ‫دﻗﺖ‬ .‫دﻫﯿﺪ‬ ‫ﻓﺸﺎر‬ ‫را‬ F2 ‫ﮐﻠﯿﺪ‬ ‫و‬ ‫ﮐﺮده‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ ‫ﻓﺎﯾﻞ‬ ،‫ﻧﺎم‬ ‫ﺗﻐﯿﯿﺮ‬ ‫ﺑﺮای‬ ‫ﻧﻤﯽ‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬ ‫وﯾﻨﺪوز‬ ‫در‬ ‫ﻣﺘﻨﯽ‬ ‫ﻫﺎی‬ ‫ﻓﺎﯾﻞ‬ ‫ﻣﺎﻧﻨﺪ‬ ‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫ﺑﺮﺧﯽ‬ ‫ﭘﺴﻮﻧﺪ‬ ‫ﺑﻪ‬ ‫ﻓﺎﯾﻞ‬ ‫ﻧﺎم‬ ،‫آن‬ ‫ﻧﺎم‬ ‫ﺗﻐﯿﯿﺮ‬ ‫و‬ ‫ﻓﺎﯾﻞ‬ ‫ﭘﺴﻮﻧﺪ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﻋﺪم‬ ‫ﺻﻮرت‬ ‫در‬ .‫ﺷﻮﻧﺪ‬ File ‫در‬ ،‫ﻫﺎ‬ ‫ﻓﺎﯾﻞ‬ ‫ﭘﺴﻮﻧﺪ‬ ‫ﻧﻤﺎﯾﺶ‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﺪ‬ ‫ﻣﯽ‬ ‫ﺗﻐﯿﯿﺮ‬ Program.cs.txt :‫ﺑﺰﻧﯿﺪ‬ ‫ﺗﯿﮏ‬ View ‫ﺗﺐ‬ ‫از‬ ‫را‬ ‫زﯾﺮ‬ ‫ﮔﺰﯾﻨﻪ‬ 8.1 ‫وﯾﻨﺪوز‬ Explorer
  • 30. ‫و‬ ‫ﮐﺮده‬ ‫ﺑﺎز‬ Noetpad ‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺎ‬ ‫را‬ Program.cs ‫ﻓﺎﯾﻞ‬ ،‫ﻓﺎﯾﻞ‬ ‫ﻧﺎم‬ ‫ﺗﻐﯿﯿﺮ‬ ‫از‬ ‫ﺑﻌﺪ‬ .4 :‫دﻫﯿﺪ‬ ‫ﺗﻐﯿﯿﺮ‬ ‫زﯾﺮ‬ ‫ﮐﺪ‬ ‫ﻣﻄﺎﺑﻖ‬ ‫را‬ ‫آن‬ ‫ﻣﺤﺘﻮﯾﺎت‬ using System; namespace CSharpCourse0401 { public class Program { public static void Main(string[] args) { Console.WriteLine("Hello ITPro.ir!"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } } } ‫ﻓﺎﯾﻞ‬ ‫و‬ ‫ﮐﺮده‬ ‫ﺗﺮﺟﻤﻪ‬ #C ‫زﺑﺎن‬ ‫ﮐﺎﻣﭙﺎﯾﻠﺮ‬ ‫ﺑﺎ‬ ‫را‬ ‫ﺑﺎﻻ‬ ‫ﺷﺪه‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻓﺎﯾﻞ‬ ‫ﺑﺎﯾﺪ‬ ،‫ﺣﺎل‬ .5 ‫ﻓﺎﯾﻞ‬ .‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﺳﺘﻔﺎده‬ csc.exe ‫دﺳﺘﻮر‬ ‫از‬ ‫اﯾﻨﮑﺎر‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫ﺗﻮﻟﯿﺪ‬ ‫را‬ ‫ﺧﺮوﺟﯽ‬ :‫دارد‬ ‫ﻗﺮار‬ ‫زﯾﺮ‬ ‫ﻣﺴﯿﺮ‬ ‫در‬ csc.exe c:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe ‫ﺑﺮ‬ Command Prompt ‫ﮐﺮدن‬ ‫ﺑﺎز‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫ﺑﺎ‬ ‫را‬ Command Prompt ‫اﺑﺘﺪا‬ ‫را‬ (Command Prompt (Admin ‫ﮔﺰﯾﻨﻪ‬ ‫و‬ ‫ﮐﺮده‬ ‫ﮐﻠﯿﮏ‬ ‫راﺳﺖ‬ Start ‫دﮐﻤﻪ‬ ‫روی‬ :‫ﮐﻨﯿﻢ‬ ‫ﻣﯽ‬ ‫اﻧﺘﺨﺎب‬
  • 31. cmd ‫دﺳﺘﻮر‬ ‫و‬ (Windows+R ‫ﻫﺎی‬ ‫)ﮐﻠﯿﺪ‬ Run ‫ﻗﺴﻤﺖ‬ ‫از‬ ‫ﺗﻮاﻧﯿﻢ‬ ‫ﻣﯽ‬ ‫ﻫﻤﭽﻨﯿﻦ‬ File Explorer ‫ﻗﺴﻤﺖ‬ ‫از‬ ‫ﺗﻮاﻧﯿﻢ‬ ‫ﻣﯽ‬ ‫ﯾﺎ‬ .‫ﮐﻨﯿﻢ‬ ‫ﺑﺎز‬ ‫را‬ Command Prompt ‫ﭘﻨﺠﺮه‬ ‫داﺷﺘﻦ‬ ‫ﻧﮕﻪ‬ ‫و‬ ‫دارد‬ ‫ﻗﺮار‬ ‫آن‬ ‫در‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﭘﻮﺷﻪ‬ ‫ﺑﻪ‬ ‫رﻓﺘﻦ‬ ‫ﺑﺎ‬ ‫وﯾﻨﺪوز‬ ‫اﻧﺘﺨﺎب‬ ‫را‬ Open command window here ‫ﮔﺰﯾﻨﻪ‬ ‫ﻣﻮس‬ ‫ﮐﻠﯿﮏ‬ ‫راﺳﺖ‬ ‫و‬ Shift ‫ﮐﻠﯿﺪ‬ :‫ﺷﻮد‬ ‫ﺑﺎز‬ ‫ﭘﻮﺷﻪ‬ ‫ﻫﻤﺎن‬ ‫در‬ Command Prompt ‫ﭘﻨﺠﺮه‬ ‫ﺗﺎ‬ ‫ﮐﻨﯿﻢ‬
  • 32. ‫وارد‬ ‫زﯾﺮ‬ ‫دﺳﺘﻮرات‬ ‫ﺑﺎ‬ ،‫ﻧﺒﻮدﯾﻢ‬ CSharp-Course04-01 ‫ﭘﻮﺷﻪ‬ ‫داﺧﻞ‬ ‫ﮐﻪ‬ ‫ﺻﻮرﺗﯽ‬ ‫در‬ :‫ﺷﻮﯾﻢ‬ ‫ﻣﯽ‬ ‫ﭘﻮﺷﻪ‬ ‫اﯾﻦ‬ g: cd "C# 2013 TutorialsCSharp‐Course04‐01" ‫ﭘﻨﺠﺮه‬ ‫در‬ ‫را‬ ‫زﯾﺮ‬ ‫دﺳﺘﻮر‬ ‫اﯾﻨﮑﺎر‬ ‫ﺑﺮای‬ .‫ﮐﻨﯿﻢ‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ‫را‬ Program.cs ‫ﻓﺎﯾﻞ‬ ‫ﺑﺎﯾﺪ‬ ‫ﺣﺎل‬ :‫ﻧﻮﯾﺴﯿﻢ‬ ‫ﻣﯽ‬ Command Prompt c:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe Program.cs Program.cs ‫ﻓﺎﯾﻞ‬ ‫ﮐﻨﺎر‬ ‫در‬ Program.exe ‫ﻧﺎم‬ ‫ﺑﺎ‬ ‫ﻓﺎﯾﻠﯽ‬ ،‫ﺑﺎﻻ‬ ‫دﺳﺘﻮر‬ ‫اﺟﺮای‬ ‫از‬ ‫ﺑﻌﺪ‬ ‫ﻣﺎ‬ ‫ﺑﺮای‬ Console ‫ﭘﻨﺠﺮه‬ ‫در‬ ‫ﻧﻈﺮ‬ ‫ﻣﻮرد‬ ‫ﺧﺮوﺟﯽ‬ ،‫آن‬ ‫اﺟﺮای‬ ‫ﺑﺎ‬ ‫ﮐﻪ‬ ‫ﺷﻮد‬ ‫ﻣﯽ‬ ‫اﯾﺠﺎد‬ :‫ﺷﻮﯾﻢ‬ ‫ﻣﯽ‬ ‫ﺧﺎرج‬ ‫ﺑﺮﻧﺎﻣﻪ‬ ‫از‬ ‫ﮐﻠﯿﺪی‬ ‫زدن‬ ‫ﺑﺎ‬ ‫و‬ ‫ﺷﺪه‬ ‫داده‬ ‫ﻧﻤﺎﯾﺶ‬
  • 33. ‫ﻗﺴﻤﺖ‬ ‫در‬ ‫ﮐﻪ‬ ‫ای‬ ‫ﺑﺮﻧﺎﻣﻪ‬ Visual Studio ‫ﻣﺤﯿﻂ‬ ‫از‬ ‫اﺳﺘﻔﺎده‬ ‫ﺑﺪون‬ ،‫ﺑﺎﻻ‬ ‫ﻗﺴﻤﺖ‬ ‫در‬ ‫ﺑﺮای‬ Visual Studio ‫ﮐﻪ‬ ‫ﮐﺎری‬ .‫ﮐﺮدﯾﻢ‬ ‫اﺟﺮا‬ ‫و‬ ‫ﮐﺎﻣﭙﺎﯾﻞ‬ ،‫ﻧﻮﺷﺘﻪ‬ ‫را‬ ‫ﺑﻮدﯾﻢ‬ ‫ﻧﻮﺷﺘﻪ‬ ‫ﻗﺒﻞ‬