Жоғары деңгейлі бағдарламалау тілі



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 29 бет
Таңдаулыға:   
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТІРЛІГІ
КАСПИЙ ӨҢІРІНІҢ ҚАЗІРГІ ЗАМАНҒЫ ЖОҒАРЫ КОЛЛЕДЖІ

Тіркеу №_________ Бөлім: Ақпараттық - технологиялық
______________2021ж. Мамандығы: 1304000
ЕТ және БҚЕ
Тобы: 418.42

КУРСТЫҚ ЖОБА

Пәні: Жоғары деңгейлі бағдарламалау тілі
Тақырыбы: C# тілі арқылы ойын жасау

Орындаған: ___________________ Сағынов Бейбарыс Серікбайұлы

Жетекші: __________________ Сисенов Әбілхайыр Аділханұлы

Кафедра жетекшісі:__________________ УтегалиевааАлтынай Тенизбаевна

Білім меңгерушісі: ____________________ Абишева Фарида Найденовна

Атырау-2021
Мамандығы: 1304000
Есептеу техникасы және бағдарламаық қамтамасыз ету
Тобы: 418.42
А.Т.Ә.: Сағынов Бейбарыс Серікбайұлы

МАЗМҰНЫ
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3
1. C# жоғарғы деңгейлі бағдарламалау тілі
1.1 C# тілінің тарихы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 4
1.2 C# тілінің ерекшеліктері ... ... ... ... ... ... ... ... ... ... ... ... ... . 10
1.3 C# тілінің атауы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 10
1.4 C# тілінің артықшылығы мен кемшілігі
2. Microsoft Visual Studio біріктірген әдеу ортасы
2.1 Visual Studio бағдарламасының архитектурасы ... ... ... ... ... ... 12
2.2 Visual Studio біріктірген әдеу ортасының ерекшеліктері ... ... ... . 14
2.3 Visual Studio бағдарламасы қолдау көрсетілетін өнімдер ... ... ... . 18
3. Windows Forms ортасында ойын құру
3.1 Бағдарламаның сыртқы дизайны ... ... ... ... ... ... ... ... ... ... ... 21
3.2 Бағдарламаның ішкі логикасы ... ... ... ... ... ... ... ... ... ... ... ... 22
3.3 Engine және GameObject класстарының құрлымы ... ... ... ... ... . 24
Қортынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 29
Пайдаланылған әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... . 30

Кіріспе

Видео ойын - электронды құрылғының экранындағы бейнемен әрекеттесу арқылы ойналатын ойын. Осындай электронды құрылғы ретінде теледидарға қосылатын ойын приставкасы, арнайы аркадалық автомат, дербес компьютер, ұялы телефон қарастырылуы мүмкін.
C# және C++ тілдері ойын жасау(геймдев) саласында кеңінен қолданылады. Бұл салаға кіру үшін C# және C++тілдерін білу міндетті, себебі ең танымал ашық түрде таратылатын ойын қозғатқыштары(движок) UnrealEngine(C++) және Unity(C# ) бағдарламалары осы тілдерді қолданады.
Қурстық жұмыс үшін C# тілі таңдалуы себебі, ол C++ тілімен салыстырғанда едәуір жеңіл. Ойын Visual Studio бағдарламасының Windows Forms ортасында жасалды. Windows Forms ойынның графикалық бөлігін қамтамасыз етеді. Ойынның ережелері өте қарапайым, қарсылас денемен соғыспау және оларды жою. Ойын күделі механикаларды қолданбайды.
Курстық жұмыстың мақсаты C# тілін пайдалана отырып ойын жасау және
ойын қозғалтышын қолдану мақсатын анықтау, ойын қозғалтқышын құрастыру.

1. C# жоғарғы деңгейлі бағдарламалау тілі

C# - жалпы мақсаттағы, көп парадигмалық бағдарламалау тілі. C# тілі статикалық теруді, күшті теруді, лексикалық ауқымды, императивті, декларативті, функционалды, жалпы, объектіге бағытталған (сыныпқа негізделген) және компонентке бағытталған бағдарламалау пәндерін қамтиды.
C# тілін 2000 жылы Microsoft корпорациясынан Андерс Хейлсберг әзірледі және кейінірек 2002 жылы Ecma (ECMA-334) және 2003 жылы ISO (ISOIEC 23270) халықаралық стандарт ретінде бекітті. Microsoft .NET Framework және Visual Studio бағдарламаларымен бірге C# тілін енгізді, олардың екеуі де жабық дереккөз болды. Ол кезде Microsoft корпорациясында ашық бастапқы өнімдер болған жоқ. Төрт жылдан кейін, 2004 жылы C# бағдарламалау тілі үшін кросс-платформалық компилятор мен орындалу ортасын қамтамасыз ететін Mono деп аталатын тегін және ашық бастапқы жоба басталды. Он жылдан кейін Microsoft корпорациясы Visual Studio Code (код редакторы), Roslyn (компилятор) және бірыңғай .NET платформасын (бағдарламалық қамтамасыз ету негізі) шығарды, олардың барлығы C# тілін қолдайтын және ақысыз, ашық бастапқы және кросс-платформа болып табылады. Моно да Microsoft-қа қосылды, бірақ .NET-ке біріктірілмеді.

1.1 C# тілінің тарихы
.NET Framework әзірлеу кезінде сынып кітапханалары бастапқыда Қарапайым басқарылатын C (SMC) деп аталатын басқарылатын код құрастырушы жүйесі арқылы жазылған. 1999 жылдың қаңтарында Андерс Хейлсберг C-тәрізді нысанға бағытталған тіл дегенді білдіретін Cool деп аталатын жаңа тілді құру үшін топ құрады. Microsoft корпорациясы тілдің түпкілікті атауы ретінде Салқын атауын сақтауды қарастырды, бірақ сауда белгілеріне байланысты мұны жасамады. 2000 жылдың шілдесінде кәсіби әзірлеушілер конференциясында .NET жобасы көпшілікке жарияланған кезде тіл C# деп өзгертілді, ал сынып кітапханалары мен ASP.NET жұмыс уақыты C# тіліне тасымалданды.
Hejlsberg Microsoft корпорациясының C# бас дизайнері және жетекші сәулетшісі болып табылады және бұған дейін Turbo Pascal, Embarcadero Delphi (бұрынғы CodeGear Delphi, Inprise Delphi және Borland Delphi) және Visual J++ дизайнымен айналысқан. Сұхбаттарында және техникалық мақалаларында ол көптеген негізгі бағдарламалау тілдеріндегі кемшіліктер (мысалы, C++, Java, Delphi және Smalltalk) Common Language Runtime (CLR) негіздерін басқаратынын, бұл өз кезегінде C# тілінің дизайнын өзі басқаратынын айтты.

1994 жылы Java бағдарламалау тілін жасаған Джеймс Гослинг және Java тілінің негізін қалаушы Sun Microsystems компаниясының негізін қалаушы Билл Джой C# тілін Java тіліне еліктеу деп атады; Гослинг бұдан әрі [C# -- Java тілі] сенімділігі, өнімділігі және қауіпсіздігі жойылған түрі деді. Клаус Крефт пен Анжелика Лангер (C++ ағындары кітабының авторлары) блог жазбасында "Java және C# - бірдей дерлік бағдарламалау тілдері. Жаңашылдығы жоқ қызықсыз қайталау", "Java немесе C# - бұл революциялық бағдарламалау тілдері деп ешкім айта алмайды. бағдарламаларды жазу тәсілін өзгертті" және "C# Java-дан көп қарыз алды - және керісінше. Енді C# боксты және қораптан шығаруды қолдайтындықтан, бізде Java-да өте ұқсас мүмкіндік болады." 2000 жылдың шілдесінде Хейлсберг C# Java клоны емес және дизайнында С++-ге әлдеқайда жақын екенін айтты.
2005 жылдың қарашасында C# 2.0 шығарылғаннан бері C# және Java тілдері бір-бірінен мүлде басқа екі тілге айналды. Алғашқы негізгі кетулердің бірі екі тілге де генериктердің қосылуымен келді, олардың орындалуы әртүрлі. C# сыныпты жүктеу уақытында орындалатын кодты генерациялау арқылы кез келген басқа сынып сияқты пайдалануға болатын бірінші сыныпты жалпы нысандарды қамтамасыз ету үшін реификацияны пайдаланады. Сонымен қатар, C# функционалдық стильді бағдарламалауды орналастыру үшін бірнеше негізгі мүмкіндіктерді қосты, оның соңы C# 3.0 нұсқасымен шығарылған LINQ кеңейтімдерімен және оның ламбда өрнектерінің, кеңейтім әдістерінің және анонимді түрлердің қолдаушы шеңберімен аяқталады. Бұл мүмкіндіктер C# бағдарламашыларына олардың қолданбасы үшін тиімді болған кезде жабулар сияқты функционалды бағдарламалау әдістерін пайдалануға мүмкіндік береді. LINQ кеңейтімдері мен функционалды импорттаулар әзірлеушілерге дерекқорды сұрау, xml файлын талдау немесе деректер құрылымы арқылы іздеу сияқты жалпы тапсырмаларға кіретін стандартты кодтың көлемін азайтуға, оқылуды жақсартуға көмектесу үшін екпінді нақты бағдарлама логикасына ауыстыруға көмектеседі. және техникалық қызмет көрсету.

1.2 C# тілінің ерекшеліктері

Тасымалдауы
Дизайн бойынша C# - негізгі Common Language Infrastructure (CLI) ең тікелей көрсететін бағдарламалау тілі. Оның ішкі түрлерінің көпшілігі CLI құрылымы жүзеге асыратын мән түрлеріне сәйкес келеді.

Дегенмен, тіл спецификациясы компилятордың кодты генерациялау талаптарын көрсетпейді: яғни ол C# компиляторы Common Language Runtime мақсатына жетуі немесе Common Intermediate Language (CIL) жасауы немесе кез келген басқа арнайы пішімді жасауы керек екенін көрсетпейді.
Теориялық тұрғыдан C# компиляторы дәстүрлі C++ немесе Fortran компиляторлары сияқты машина кодын жасай алады.

Типизациясы
C# тілі var кілт сөзімен қатты, жасырын терілген айнымалы мәлімдемелерді және new[] кілт сөзінен кейін жинақ инициализаторы бар жанама терілген массивтерді қолдайды.
C# қатаң логикалық деректер түрін қолдайды, bool. while және if сияқты шарттарды қабылдайтын мәлімдемелер логикалық тип сияқты шынайы операторды жүзеге асыратын түрдің өрнегін талап етеді. C++ тілінде логикалық тип болса да, оны бүтін сандарға және бүтін сандардан еркін түрлендіруге болады, ал егер (a) сияқты өрнектер тек a-ның bool-ға түрлендірілетінін талап етеді, бұл a-ның int немесе көрсеткіш болуына мүмкіндік береді. C# бұл шын немесе жалған деген бүтін сан тәсіліне рұқсат бермейді, себебі бағдарламашыларды дәл bool қайтаратын өрнектерді қолдануға мәжбүрлеу, if
(a = b) (теңдік орнына = тағайындауды пайдалану ==) сияқты бағдарламалау қателерінің белгілі бір түрлерін болдырмайды. ).
C# түрі C++ қарағанда қауіпсіз. Әдепкі бойынша жалғыз жасырын түрлендірулер қауіпсіз деп саналатындар, мысалы бүтін сандарды кеңейту. Бұл компиляция уақытында, JIT кезінде және кейбір жағдайларда орындалу уақытында орындалады. Логикалық мәндер мен бүтін сандар арасында, сондай-ақ санау мүшелері мен бүтін сандар арасында ешқандай жасырын түрлендірулер болмайды (кез келген саналған түрге жанама түрлендіруге болатын әріптік 0-ден басқа). Кез келген пайдаланушы анықтайтын түрлендіру әдепкі бойынша жасырын болып табылатын C++ көшіру конструкторлары мен түрлендіру операторларынан айырмашылығы анық немесе жасырын деп белгіленуі керек.
Виртуалды әдістердегі қайтару түрлерінің семантикасы арқылы қайшылықты қолдаудың белгілі бір дәрежесі бар C++-тен айырмашылығы, C# жалпы типтердегі коварианттылық пен контрвариантты қолдауға ие.
C# тілі жаһандық айнымалылар мен функцияларға рұқсат бермейді. Барлық әдістер мен мүшелер сыныптарда жариялануы керек. Жалпы сыныптардың статикалық мүшелері жаһандық айнымалылар мен функцияларды алмастыра алады.

Метабағдарламалау
Метабағдарламалауға бірнеше жолмен қол жеткізуге болады:
oo Framework API көмегімен рефлексия.
oo Өрнектер тармағы тіл мүмкіндігі кодты дерексіз синтаксис тармағы ретінде көрсетеді, мұнда әрбір түйін тексерілетін немесе орындалатын өрнек болып табылады.
Бұл орындалатын кодты орындау уақытында динамикалық өзгертуге мүмкіндік береді. Өрнектер ағашы тілге кейбір гомоиконизмді енгізді.
oo Атрибут тілі мүмкіндігі өріске немесе жиындар, мүшелер және түрлер сияқты код блогына тіркелген метадеректер болып табылады және Java тіліндегі аннотацияларға баламалы. Атрибуттар компиляторға да, бағдарлама арқылы да рефлексия арқылы қол жетімді. Осы атрибуттардың көпшілігі GCC және VisualC++ платформаға тәуелді препроцессор директиваларының функционалдығын қайталайды.
oo Бастапқы генераторлар, Roslyn C# компиляторының мүмкіндігі, компиляция уақытын метабағдарламалауды қосады. Компиляция процесі кезінде әзірлеушілер құрастырылатын кодты тексере алады (құрастырушы API көмегімен) және компиляцияға қосуға болатын жаңа C# бастапқы файлдарын жасай алады.

Методтар мен функциялары
C# тіліндегі метод класс сипатының мәнді ұстау мүмкіндігінен гөрі функция (нұсқаулар тізбегі) ретінде шақырылуы мүмкін класс мүшесі болып табылады. C++ және ANSI C сияқты басқа синтаксистік ұқсас тілдердегі сияқты методтің қолтаңбасы келесі ретті қамтитын мәлімдеме болып табылады: кез келген қосымша қол жетімділік кілт сөздері (жеке сияқты), оның қайтару түрінің нақты спецификациясы (мысалы, int немесе ешбір мән қайтарылмаса, void кілт сөзі), метод атауы және ақырында, әрқайсысы параметр түрінен, оның ресми атауынан және ешбірі болмаған кезде пайдаланылатын әдепкі мәннен тұратын үтірмен бөлінген параметр сипаттамаларының жақшаға алынған тізбегі. қамтамасыз етілген. Қайтару мәні немесе тағайындау арқылы сынып сипатын жай ғана алатын немесе орнататын методтар сияқты белгілі бір арнайы методтар түрлері толық қолтаңбаны қажет етпейді, бірақ жалпы жағдайда сынып анықтамасы оның методтарының толық қолтаңба декларациясын қамтиды.
C++ сияқты және Java-дан айырмашылығы, C# бағдарламашылары ішкі сыныптар арқылы методтарды қайта анықтауға мүмкіндік беру үшін виртуалды ауқымды өзгерткіш кілт сөзін пайдалануы керек.

C# тіліндегі кеңейту методтары бағдарламашыларға статикалық методтарды класстың методтар кестесіндегі әдістер сияқты пайдалануға мүмкіндік береді, бұл бағдарламашыларға осы нысанда және оның туындыларында болуы керек деп санайтын нысанға методтарды қосуға мүмкіндік береді.
Динамикалық түрі JavaScript сияқты методтарды шақыруларына және орындалу уақытының нысанының құрамына мүмкіндік беретін орындау уақыты әдісін байланыстыруға мүмкіндік береді.
C# тілінде делегат кілт сөзі арқылы қатты терілген функция көрсеткіштеріне қолдау көрсетіледі. Qt құрылымының псевдо-C++ сигналы мен ұясы сияқты, C# тілінде жариялау-жазылу мәнерінің оқиғаларын қамтитын семантика бар, бірақ C# бұл үшін делегаттарды пайдаланады.
C# тілі [MethodImpl(MethodImplOptions.Synch ronized)] атрибуты арқылы Java тәрізді үндестірілген метод шақыруларын ұсынады және кілт сөзді құлыптау арқылы өзара ерекше құлыптарға қолдау көрсетеді.

Меншіктеуі
C# қасиеттері бар класстарды қолдайды. Сипаттар қосалқы өрісі бар қарапайым көмекші функциялары болуы мүмкін немесе алу және орнату функцияларын жүзеге асыруы мүмкін.
C# 3.0-ден бастап автоматты түрде іске асырылатын сипаттардың синтаксистік қанты қолжетімді, мұнда аксессуар (қабылдауыш) және мутатор (қоюшы) сыныптың бір атрибутындағы операцияларды инкапсуляциялайды.

Атау кеңістігі
C# аттар кеңістігі бумаға өте ұқсас ережелері мен мүмкіндіктері бар Java бумасы немесе C++ аттар кеңістігі сияқты кодты оқшаулаудың бірдей деңгейін қамтамасыз етеді. Атау кеңістіктерін пайдалану синтаксисі арқылы импорттауға болады.

Жадқа қол жеткізуі
C# тілінде жад мекенжайының көрсеткіштерін қауіпті деп арнайы белгіленген блоктарда ғана пайдалануға болады[66] және қауіпті коды бар бағдарламалар іске қосу үшін тиісті рұқсаттарды қажет етеді. Нысанға қатынасудың көпшілігі қауіпсіз нысан сілтемелері арқылы орындалады, олар әрқашан тірі нысанды көрсетеді немесе жақсы анықталған нөлдік мәнге ие болады; өлі нысанға (қоқыс жиналған) немесе жадтың кездейсоқ блогына сілтеме алу мүмкін емес.
Қауіпті көрсеткіш қоқыс жинайтын нысандарға, массивке, жолға немесе стекпен бөлінген жад блогына сілтемелерді қамтымайтын басқарылмайтын мән түрінің данасын көрсете алады.
Қауіпсіз деп белгіленбеген код әлі де System.IntPtr түрі арқылы көрсеткіштерді сақтай және басқара алады, бірақ ол олардың сілтемесін алып тастай алмайды.
Басқарылатын жадты анық босату мүмкін емес; оның орнына қоқыс автоматты түрде жиналады.
Қоқыс жинау бағдарламашыны көп жағдайда қажет болмайтын жадты босату жауапкершілігінен босату арқылы жадтың ағып кету мәселесін шешеді.
Нысандарға сілтемелерді талап етілгеннен ұзағырақ сақтайтын код әлі де қажет болғаннан жоғары жадты пайдалануы мүмкін, бірақ нысанға соңғы сілтеме шығарылғаннан кейін жад қоқыс жинау үшін қолжетімді болады.

Полиморфизмі
C++-тен айырмашылығы, C# бірнеше мұрагерлікке қолдау көрсетпейді, дегенмен сынып интерфейстердің кез келген санын (толық дерексіз сыныптар) жүзеге асыра алады. Бұл тілдің жетекші сәулетшісінің қиындықтарды болдырмау және CLI бойынша архитектуралық талаптарды жеңілдету үшін жасаған жобалық шешімі болды.
Бірдей атпен әдісті қамтитын бірнеше интерфейстерді іске асырған кезде және бір типті параметрлерді бірдей тәртіпте (яғни бірдей қолтаңба), Java-ға ұқсас қабылдағанда, C# бір әдіске барлық интерфейстерді қамтуға және қажет болған жағдайда арнайы әдістерге мүмкіндік береді. әрбір интерфейс.
Дегенмен, Java-дан айырмашылығы, C# оператордың шамадан тыс жүктелуін қолдайды.

Тілдің біріктірілген сұрауы (LINQ)
C# тілінің .NET Framework арқылы LINQ пайдалану мүмкіндігі бар. Нысанда IEnumerableT интерфейсі іске асырылған жағдайда әзірлеуші әр түрлі деректер көздерін сұрай алады. Бұған XML құжаттары, ADO.NET деректер жинағы және SQL дерекқорлары кіреді.
C# тілінде LINQ пайдалану Intellisense қолдауы, күшті сүзгілеу мүмкіндіктері, компиляция қателерін тексеру мүмкіндігімен тип қауіпсіздігі және әртүрлі көздер бойынша деректерді сұрау үшін жүйелілік сияқты артықшылықтарды береді. C# және LINQ тілдерімен бірге қолдануға болатын бірнеше түрлі тіл құрылымдары бар және олар сұрау өрнектері, лямбда өрнектері, анонимді түрлер, жасырын терілген айнымалылар, кеңейтім әдістері және нысан инициализаторлары.

Функционалды бағдарламалауы
Ең алдымен императивті тіл болғанымен, C# 2.0 бірінші дәрежелі функциялар және анонимді делегаттар түріндегі жабулар арқылы функционалды бағдарламалауға шектеулі қолдауды ұсынды.
C# 3.0 лямбда өрнектері үшін жеңіл синтаксисті, кеңейту әдістерін (модульдер үшін қолжетімділік) және сұрауды түсіну тілі түріндегі тізімді түсіну синтаксисін енгізу арқылы функционалды бағдарламалауға қолдауды кеңейтті.
C# 7.0 әдетте кортеждер, жергілікті функциялар және үлгіні сәйкестендіру сияқты функционалды тілдерде табылған мүмкіндіктерді қосады.
C# 9.0 ең алдымен өзгермейтін деректер үлгілерін жақсырақ қолдау үшін жасалған жазба мүмкіндігін ұсынады.

1.3 C# тілінің атауы
Атауы " Си шарп "(ағылш. sharp-диез) латын әрпі c нотасына дейін, ал диез белгісі (ағылш. sharp) тиісті дыбыс нотасын жартылай тонға көтеруді білдіреді, бұл C++ тілінің атауына ұқсас, мұнда "++" айнымалы инкрементті білдіреді. Атауы C -- C++ -- C++++(C#) тізбегі бар ойын болып табылады, себебі "#" таңбасын 4 "+"таңбасынан тұратын етіп көрсетуге болады. (Стандартты қаріптер, браузерлер және т.б.) және диез белгісі компьютердің стандартты клавиатурасында ұсынылмауына байланысты, бағдарламалау тілінің атын жазу кезінде (#) тор белгісін қолданады. Бұл келісім c# ECMA-334 тілінің ерекшелігінде көрсетілген. Дегенмен, іс жүзінде (мысалы, жарнаманы орналастыру және қорапты дизайнда) Microsoft диез белгісін пайдаланады. Бағдарламалау тілдерінің атауларын аудару қажет емес, сондықтан тіл транскрипцияны қолдана отырып, "Си шарп"деп аталады.

1.4 C# тілінің артықшылығы мен кемшілігі
Бұл тіл барлық программалауға объектілі-бағытталған тәсілді қолданады. Бұл дегеніміз, пән саласы негізінде абстрактілі конструкцияларды сипаттау, содан кейін олардың арасында өзара іс-қимылды жүзеге асыру қажет. Бұл тәсіл үлкен танымалдылыққа ие, өйткені барлық ақпаратты басымызда ұстамауға, қара жәшіктің принципі бойынша жұмыс істеуге мүмкіндік береді: кіріс деректерін берді - Сиқыр - Пайда. Сондай-ақ, тілде артықшылығы мол, ол программистің ауыр өмірін әлсіз етеді. Мыңдаған код жолдарын жазудың орнына, дайын құрылымды ғана пайдаланады, ал компилятор барлық жұмысты өзі жасайды. Бірақ кейбір мұндай құрылымдар өнімділік тұрғысынан ең оңтайлы емес. Бірақ мұның бәрі кодтың ыңғайлы болуы және жоғары даму жылдамдығы есебінен жабылады.
Мұның бәрі .NET Framework платформасында жұмыс істейді. Көптеген талғампаз адамдар үшін бұл бағдарлама іске қосылуы үшін компьютерге орнату қажет, бірақ бұл айтарлықтай тереңірек.
C# тілінде жазған код аралық тілге (IL) таратылады, ол өз кезегінде, қолданба (JIT) орындау кезінде компьютеріңізде машина кодына айналады. Ал мәні, әр түрлі тілдерде бір жобаны қайта оқытуға тура келмейді.
Бірақ оны іс жүзінде қолдануын жоқ. Аралық кодтың соңғы компиляциясы нақты машинада тірі орындалғандықтан, онда процессордың арнайы командаларын пайдалану арқылы өнімділіктің артуы мүмкін.
Бұл тіл .NET JIT-компиляция тұжырымдамасын пайдаланады. Бұл бағдарлама қажет болған жағдайда тікелей бағдарлама жұмыс кезінде машиналық кодтарға жинақталатынын білдіреді.
Бір жағынан, бұл әрине күшті, бірақ екінші жағынан, іске қосу кезінде өте ауыр тежегіш болуы мүмкін. C# жаппай таралған тіл емес. Көптеген бағдарламашылар Delphi немесе PHP-ден басқа ештеңе көрген емес, шағын қалаларда жұмыс іздеуге өте елеулі шектеулер қояды коммерциялық Enterprise саласында шоғырланған. Сонымен қатар, C# ең алдымен Windows-пен байланысты. Жақын болашақта бір нәрсе өзгереді және Windows бәрі де нарықта үстем болады, бірақ әлі де аз тәуекел, әсіресе Windows 10 жаңартулары бар соңғы жалған екенін ескере отырып, қалады.

2. Microsoft Visual Studio біріктірген әдеу ортасы

Microsoft Visual Studio -- Microsoft корпорациясының біріктірілген әзірлеу ортасы (IDE). Ол компьютерлік бағдарламаларды, сондай-ақ веб-сайттарды, веб-қосымшаларды, веб-қызметтерді және мобильді қосымшаларды әзірлеу үшін қолданылады. Visual Studio Windows API, Windows Forms, Windows Presentation Foundation, Windows Store және Microsoft Silverlight сияқты Microsoft бағдарламалық жасақтамасын әзірлеу платформаларын пайдаланады. Ол жергілікті кодты да, басқарылатын кодты да жасай алады.
Visual Studio бағдарламасы IntelliSense (кодты аяқтау компоненті) қолдайтын код өңдегішін, сондай-ақ кодты рефакторингті қамтиды. Біріктірілген отладчик бастапқы деңгейдегі жөндеуші және машина деңгейіндегі жөндеуші ретінде де жұмыс істейді. Басқа кірістірілген құралдарға код профилін жасаушы, GUI қолданбаларын құруға арналған дизайнер, веб-дизайнер, класс дизайнері және дерекқор схемасының дизайнері кіреді. Ол барлық дерлік деңгейде функционалдық мүмкіндіктерін кеңейтетін плагиндерді қабылдайды, соның ішінде бастапқы басқару жүйелеріне қолдау көрсету (Subversion және Git сияқты) және доменге тән тілдерге арналған редакторлар мен визуалды дизайнерлер сияқты жаңа құралдар жиынтықтарын немесе бағдарламалық жасақтаманы әзірлеудің басқа аспектілері үшін құралдар жиынын қосу өмірлік цикл (мысалы, Azure DevOps клиенті: Team Explorer).
Visual Studio 36 түрлі бағдарламалау тілін қолдайды және код редакторы мен отладчикке тілге арналған қызмет болған жағдайда кез келген дерлік бағдарламалау тілін қолдауға (әр түрлі дәрежеде) мүмкіндік береді. Кірістірілген тілдерге C, C++, C++CLI, Visual Basic .NET, C#, F#, JavaScript, TypeScript, XML, XSLT, HTML және CSS кіреді. Python, Ruby, Node.js және M сияқты басқа тілдерге қолдау плагиндер арқылы қол жетімді. Бұрын Java (және J#) тіліне қолдау көрсетілді.
Visual Studio бағдарламасының ең негізгі шығарылымы, қауымдастық басылымы тегін қол жетімді. Visual Studio Community шығарылымының ұраны: Оқушыларға, ашық бастапқы кодқа және жеке әзірлеушілерге арналған тегін, толық мүмкіндіктері бар IDE.

2.1 Visual Studio бағдарламасының архитектурасы
Visual Studio ешқандай бағдарламалау тілін, шешімін немесе құралын ішкі жағынан қолдамайды; оның орнына ол VSPackage ретінде кодталған функционалдылықты қосуға мүмкіндік береді. Орнатылған кезде функция Қызмет ретінде қолжетімді болады.

IDE үш қызметті ұсынады: жобалар мен шешімдерді санау мүмкіндігін қамтамасыз ететін SVsSolution; SVsUIShell, ол терезені және UI функционалдығын қамтамасыз етеді (қойындыларды, құралдар тақталарын және құралдар терезелерін қоса); және VSPackages тіркеумен айналысатын SVsShell. Сонымен қатар, IDE қызметтер арасындағы байланысты үйлестіру және қосу үшін де жауап береді.
Барлық редакторлар, дизайнерлер, жоба түрлері және басқа құралдар VSPackages ретінде жүзеге асырылады. Visual Studio VSPackages бағдарламасына қатынасу үшін COM пайдаланады. Visual Studio SDK сонымен қатар басқарылатын пакеттік жақтауды (MPF) қамтиды, ол бумаларды кез келген CLI үйлесімді тілде жазуға мүмкіндік беретін COM-интерфейстерінің айналасындағы басқарылатын орауыштардың жиынтығы болып табылады. Дегенмен, MPF Visual Studio COM интерфейстері ашатын барлық функцияларды қамтамасыз етпейді. Содан кейін қызметтерді Visual Studio IDE функционалдығын қосатын басқа бумаларды жасау үшін тұтынуға болады.
Бағдарламалау тілдеріне қолдау Тіл қызметі деп аталатын арнайы VSPackage арқылы қосылады. Тіл қызметі әртүрлі функцияларға қолдау қосу үшін VSPackage іске асыру жүзеге асыра алатын әртүрлі интерфейстерді анықтайды. Осылайша қосуға болатын функцияларға синтаксис бояуы, мәлімдемені аяқтау, жақша сәйкестігі, параметр туралы ақпарат құралдарының кеңестері, мүше тізімдері және фондық компиляцияға арналған қате маркерлері кіреді. Интерфейс іске асырылса, функционалдылық тіл үшін қолжетімді болады. Тілдік қызметтер әр тіл негізінде жүзеге асырылады. Іске асырулар тілге арналған талдаушы немесе компилятордағы кодты қайта пайдалана алады. Тіл қызметтерін жергілікті кодта немесе басқарылатын кодта енгізуге болады. Жергілікті код үшін жергілікті COM интерфейстері немесе Babel Framework (Visual Studio SDK бөлігі) пайдаланылуы мүмкін. Басқарылатын код үшін MPF басқарылатын тіл қызметтерін жазуға арналған орауыштарды қамтиды.
Visual Studio бағдарламасы кірістірілген бастапқы басқару қолдауын қамтымайды, бірақ ол бастапқы басқару жүйелері үшін IDE-мен біріктірудің екі баламалы жолын анықтайды. Source Control VSPackage өзінің теңшелген пайдаланушы интерфейсін қамтамасыз ете алады. Керісінше, MSSCCI (Microsoft Source Code Control Interface) қолданатын бастапқы басқару плагині стандартты Visual Studio пайдаланушы интерфейсімен әртүрлі көздерді басқару функцияларын жүзеге асыру үшін пайдаланылатын функциялар жинағын қамтамасыз етеді. MSSCCI алдымен Visual SourceSafe бағдарламасын Visual Studio 6.0 бағдарламасымен біріктіру үшін пайдаланылды, бірақ кейінірек Visual Studio SDK арқылы ашылды.

Visual Studio .NET 2002 MSSCCI 1.1, ал Visual Studio .NET 2003 MSSCCI 1.2 қолданды. Visual Studio 2005, 2008 және 2010 MSSCCI 1.3 нұсқасын пайдаланады, ол атауды өзгертуге және таратуға, сондай-ақ асинхронды ашуға қолдауды қосады.
Visual Studio ортаның бірнеше данасын іске қосуды қолдайды (әрқайсысының VSPackages жиынтығы бар). Даналар конфигурация күйін сақтау үшін әртүрлі тізбе ұяшықтарын пайдаланады (тіркеу ұясы терминінің MSDN анықтамасын осы жерде қолданылған мағынада қараңыз) және олардың AppId (қолданба идентификаторы) арқылы сараланады. Даналар AppId таңдайтын, түбір ұясын орнататын және IDE іске қосатын AppId-арнайы .exe арқылы іске қосылады. Бір AppId үшін тіркелген VSPackages сол AppId үшін басқа VSPackages біріктірілген. Visual Studio бағдарламасының әртүрлі өнім шығарылымдары әртүрлі AppId көмегімен жасалады. Visual Studio Express басылымының өнімдері өздерінің AppId идентификаторларымен орнатылады, бірақ Standard, Professional және Team Suite өнімдері бірдей AppId-ді ортақ пайдаланады. Демек, бір орнатуды жаңартатын басқа басылымдардан айырмашылығы, Express басылымдарын басқа басылымдармен қатар орнатуға болады. Кәсіби басылым стандартты басылымдағы VSPackages супержинағын қамтиды, ал командалық топтама екі басқа басылымдағы VSPackages супержинағын қамтиды. AppId жүйесін Visual Studio 2008 бағдарламасындағы Visual Studio Shell пайдаланады.

2.2 Visual Studio біріктірген әдеу ортасының ерекшеліктері

Код редакторы
Visual Studio (кез келген басқа IDE сияқты) айнымалылар, функциялар, әдістер, циклдар және LINQ сұраулары үшін IntelliSense арқылы синтаксисті бөлектеуді және кодты аяқтауды қолдайтын код өңдегішін қамтиды. IntelliSense қосылған тілдер үшін, сондай-ақ XML, Каскадтық мәнерлер үшін қолдау көрсетеді. Веб-сайттар мен веб-қосымшаларды әзірлеу кезінде Sheets және JavaScript. Автотолтыру ұсыныстары өңдеу курсорына жақын жерде код өңдегішінің терезесінің үстіндегі үлгісіз тізім жолағында пайда болады. Visual Studio 2008 нұсқасында ол кедергі келтірген кодты көру үшін уақытша жартылай мөлдір етіп жасауға болады. Код өңдегіші барлық қолдау көрсетілетін тілдер үшін пайдаланылады.
Visual Studio код өңдегіші жылдам шарлау үшін кодтағы бетбелгілерді орнатуды да қолдайды.
Басқа навигациялық көмекшілерге қалыпты мәтінді іздеу мен регекс іздеуге қоса, жиырылатын код блоктары және қосымша іздеу кіреді.

Код өңдегіші сонымен қатар көп элементті алмасу буферін және тапсырмалар тізімін қамтиды. Код өңдегіші қайталанатын код үшін сақталған үлгілер болып табылатын код үзінділерін қолдайды және кодқа кірістіруге және өңделетін жоба үшін теңшеуге болады. Код үзінділеріне арналған басқару құралы да енгізілген. Бұл құралдар пайдаланылмаған немесе экранның бүйіріне қондырылған кезде автоматты түрде жасырылатын етіп орнатуға болатын қалқымалы терезелер ретінде көрсетіледі. Visual Studio код өңдегіші сонымен қатар кодты рефакторингке қолдау көрсетеді, соның ішінде параметрлерді қайта реттеу, айнымалы және әдіс атын өзгерту, интерфейсті шығару және сипаттар ішіндегі сынып мүшелерінің инкапсуляциясы, т.б.
Visual Studio мүмкіндіктері фондық компиляция (қосымша компиляция деп те аталады). Код жазылып жатқанда, Visual Studio оны қызыл толқынды асты сызумен белгіленген синтаксис және компиляция қателері туралы кері байланыспен қамтамасыз ету үшін оны фондық режимде құрастырады. Ескертулер жасыл астын сызумен белгіленеді. Фондық компиляция орындалатын кодты жасамайды, себебі ол орындалатын кодты жасау үшін пайдаланылғаннан басқа компиляторды қажет етеді. Фондық жинақ бастапқыда Microsoft Visual Basic бағдарламасымен енгізілген, бірақ қазір барлық енгізілген тілдер үшін кеңейтілген.

Түзеткіші
Visual Studio бағдарламасы бастапқы деңгейдегі ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Бағдарламалау тілдерінің түрлері
Төмен деңгейлі бағдарламалау тілі
Ішкі бағдарламалар
Компьютерді ғылыми жұмыстарда қолдану
Төменгі деңгейлі бағдарламалау тілдері
Таңдау операторлары - Шартты оператор және қосқыш
Ассемблер тілінде программалау жайлы ақпарат
Бағдарламалау тілдерінің өркениеті
UNIX бағдарламалау ортасында жарамды
Ассемблер тілінде бағдарламалау
Пәндер