SlideShare a Scribd company logo
Лекц №1<br />Сэдэв: .NET ба С# хэлний тухай.<br />Оршил<br />Програм хангамжийн инженерүүд одоо цагт өөр өөрсдийнхөө онцлогоос шалтгаалан янз бүрийн өөрсдөд нь тохирох програмчлалын хэлийг сонгон дагнан, хэзээ ч дуусашгүй мэдээлэлийн технологийн салбарт ажиллаж байна. <br />Анхны програм хангамжийн инженерүүд паскал, турба С гэх мэт доод шатний програм хамгамжийн хэлийг ашиглаж байсан. Одоо ч гэсэн зарим програм хангамжийн инженерүүд эдгээр програм хангамжийн хэлийг ашигладаг хэвээрээ. Турба С хэл хөгжин дэвшиж С++ буюу объект хандлагат хэл үүссэн, харин одоо C# болтлоо хөгжөөд байна. Өөрөөр хэлбэл C# хэлний өвөг дээдэс нь C гэж хэлж болно. C дээр бичиж чаддаг хүмүүс C# дээр бичиж чаддаг, хурдан ч сурдаг. Яагаад гэвэл C# хэлний бичигдэх хэлбэр нь C хэлтэй төстэй. Бичигдэх хэлбэрээрээ төстэй гэхээрээ үр дүн нь адилхан гэж ойлгож болохгүй. Ихэнх хүмүүс жава хэл, болон C# хэлүүдийг цэвэр обьект хандлагат хэл гэж үздэг. C# хэл дээр чадварын хувь бусдаас давуу болон тутагдалтай талууд бий. <br />C бол windows -н доод түвшин болон техник хангамжтай харьцахдаа маш сайн байдаг ба маш нарийн бичиглэл ихтэй бол C# visual орчинд сайн байх жишээтэй. Гэхдээ энэ тутагдлууд нь нөгөөд нь огт байдаггүй гэсэн үг биш харин төвөгтэй гэх нь зөв байх. Та ямар нэг програм хангамжийн  хэл мэддэг байхад л хангалттай. Програм хангамжийн хэлүүдэд ихэнхдээ нэмэлт сангууд нэмэгдсэнээр л өөрчлөгдөг. Тэдгээрийг л сайн мэдээд авчихвал цаг үеээсээ хоцрохгүй, сайн програм хангамжийн инженер болж чадна. Та хэрэв програмчлалын хэл сурах гэж байгаа бол би танд С болон C# санал болгож байна яагаад гэвэл би анх эхэлж эдгээр хэлийг сурсан ба энэ хэл бол бусад хэлүүдийг бодвол маш чадварлаг бас чадвар шаардсан хэл. <br />Өнөөдөр дэлхийн програм хангамжийн инженерүүдийн 65% нь C болон түүний visual хэлэндээр бичдэг. Америкийн програмистуудын ихэнх хувь .NET ашиглаж байхад манай Зүүн Азийн  зарим орон DELPНI ашигладаг. Мөн Орос, Япончуудын ихэнх нь Java,C# visual ашигладаг. Тэгхээр C# хэл хэр түгээмэл гэдэг нь мэдэгдэж байна. <br />.NET фреймворкын тойм. Microsoft .NET платформ нь Application хєгжvvлэх шинэ хэлбэрийг тодорхойлж байна. Microsoft-ийн зорилго бол ямар хэл хэрэглэж байгаа нь гол биш, хамгийн гол нь Интернэт болон Windows application-ийг хурдан, хялбар хєгжvvлэх юм. .NET нь системийн vйлчилгээ, ажиллагааны хєдєлгvvр (Runtime engine), ажлын хvрээ (Framework), контрол (багаж)-ыг тvлхvv анхаарч, тэдгээрийг маш єргєн сонголттойгоор хэрэглэх боломжийг Windows ба Интернэт application бvтээхэд олгож байгаа явдал юм. <br />.NET-ийн зарим чанарыг дурдахад:<br />.NET–ийн аль ч хэлэнд vvсгэсэн классыг бусад программчлалын хэлнvvд удамшуулан ашиглах боломжтой. <br />.NET нь нийтлэг єгєгдлийн тєрлvvдээс бvрддэг. Єєрєєр хэлбэл нийтлэг єгєгдлийн тєрлєєс .NET–ийн аль ч хэл хэрэглэж байдаг.<br />Common Language Runtime–ийг хэрэглэдэг болсон. Ингэснээр ямар программчлалын хэл, ямар хувилбарыг ашиглаж байгаа нь гол бус болж байгаа юм.<br />Windows Application ба Web-based Application бvтээх єндєр тvвшний хэрэгсэлvvдээр бvрэн хангагдсан.<br />.NET–ийн ямар ч программчлалын хэлийг ашигласан эцсийн vр дvн нь ижил байна.<br />Программчлалын хэлнvvд хоорондоо харилцах боломжоор хангагдсан. Жишээ нь: C# буюу бусад хэл дээр vvсгэсэн application-ийг Visual Basic дээр debug (алдаа шалгах) хийх боломжтой.<br />.NET Framework-ийн бас нэг чанар нь интернэтийг бvтээмжтэй байхаар єєртєє нэвтрvvлсэн явдал юм. Internet application, сvлжээний энгийн программ хєгжvvлэхэд .NET Framework нь интернэтийг хэрэглэх бvрэн боломж олгоно.<br />Мєн объектуудыг зарлаж хэрэглэдэг болсон.<br />.NET платформын хамгийн чухал нь Common Language Runtime (CLR)-ийг дууддаг явдал юм. Энэ ажиллагааны хєдєлгvvр (CLR) нь бvх нийтлэг єгєгдлийн тєрлvvд, программчлалын хэлнvvдэд хэрэглэгдэх хэлний гол бvтцийг агуулж байдаг. Цаашдаа энэ CLR нь Windows vйлдлийн системийн нэг бvрэлдэхvvн хэсэг нь болон гарах юм.<br />CLR бол хєгжvvлэх ажлын талбар, design-time ба run-time vеийн vйлчилгээнvvдийг агуулсан байдаг. Design-time vйлчилгээ нь Integrated Development Environment (IDE) ба маш нарийн debugger-уудыг агуулсан байдаг. Та бvхэнд .NET –ийн салангад хэсгvvд хэрхэн бие биетэйгээ холбогдгийг харуулая. <br />Зураг 1. .NET Platform <br />.NET платформын ажиллах хамгийн бага vзvvлэлт нь Windows 32-bit–ийн vйлдлийн систем. <br />Message Queuing services, COM+transactions, Internet Information Server (IIS) ба Windows Management Instrumentation (WMI) зэрэг vйлчилгээний программуудийг vйлдлийн системдээ суулгаснаар бvх хэл тэдгээрийг ашиглах боломжтой болох юм. CLR нь гол классууд ба ADO.NET, ASP.NET–vvдийг агуулж байдаг. ADO.NET нь WinForm ба WebForm–ийн аль алинд хэрэглэгддэг. <br />CLR–лд тохирохоор бичигдсэн программууд нь одоогийн байдлаар Visual Basic, VC++, C# (шинэ хэл), Perl, Python, Eiffel г.м <br />Нийтлэг тєрлийн систем (Common Type System).NET–д єгєгдлийн тєрлvvд нь тухайн хэлэндээ тодорхойлогддоггvй харин CLR–н гол хэсэг болон тодорхойлогдоно. Єгєгдлийн тєрєл болгон объект байдаг. Common Type System (CTS)-д тулгуурладаг 2 Type байдаг: Value Type (утга ) & Reference Type (мэдээлэл) Энэ 2 нь санах ойд яаж хадгалагддагаараа ялгаатай юм. Value Type нь яг тэр мэдээлэл, утгатай єєртэй нь харицана. Харин Reference Type нь заагчийн адил санах ойн хаана нэгэн газар байгаа объектыг мэдээллэнэ.<br />CTS нь тєрєл бvрийн олон Type-г агуулсан бєгєєд эдгээр нь тус бvрдээ утга юмуу reference-р нь янз бvрийн єгєгдлийг тодорхойлоход хэрэглэгдэнэ. Intrinsic буюу Built in єгєгдлийн тєрєл нь тус тус value type юм. Учир нь тэд єгєгдлийг хадгална.Зарим тєрлvvдийг дурьдвал: <br />Class тєрєл<br />Structure тєрєл <br />Interface тєрєл<br />Enumeration тєрєл<br />Delegation тєрєл<br />Техникийн талаас нь авч vзвэл класс бvхэн нь type юм. Та vvнийг цаашид vзэх болно. <br />Энэ хvснэгт vндсэн тєрлийн системийн Intrinsic буюу Built in єгєгдлийн тєрлийн талаар мэдээлэл єгнє. <br />Єгєгдлийн тєрєлТайлбарХэл хэрэглэх ньByte 8 bit тэмдэггvй бvхэл тоо Visual Basic – byte; C# - byte; VC++ - Char; Sbyte 8 bit бvхэл тоо Visual Basic – NA; C# - sbyte; VC++ - Signed char; Int16 16 bit бvхэл тоо Visual Basic – Short; C# - short; VC++ - short; Int32 32 bit бvэл тоо Visual Basic – Integer; C# - int; C++ - int эсвэл long Int64 64 bit бvхэл тоо Visual Basic – Long; C# - long; VC++ - int64 Unint16 16 bit тэмдэггvй бvхэл тоо Visual Basic – NA; C# - ushort; VC++ - unsigned short; Uint32 32 bit тэмдэггvй бvхэл тоо Visual Basic – NA; C# - uint; VC++ - unsigned int эсвэл unsignned long; Uint64 64 bit тэмдэггvй бvхэл тоо Visual Basic – NA; C# - ulong; VC++ - unsigned int64; Single 32 bit бутархай тоо Visual Basic – Single; C# - float; VC++ - float; Double 64 bit бутархай тоо Visual Basic – Double; C# - double; VC++ - double; Boolean True (1) эсвэл False (0) Visual Basic – Boolean; C# - bool; VC++ - bool; Object класс буюу єгєгдлийн тєрєл авч чадах vндсэн тєрєл. Visual Basic – Object; C# - object; VC++ - Object; Char Unicode тэмдэгт (16 bit) Visual Basic – Char; C# - Char; VC++ - _wchar_t; String Unicode тэмдэгтvvдийн дараалал Visual Basic – String; C# - string; VC++ - String; Decimal 96 bit–ийн аравтийн утга Visual Basic – Decimal; C# - decimal; VC++ - Decimal; <br />NA-хэрэглэдэггүй.                                                                Хvснэгт 1: Єгєгдлийн тєрєл<br />.Net нь byte, integer г.м. тєрєл бvрийн Type-г тодорхойлох бєгєєд бvх ялгаатай хэлvvд эдгээр Type-vvдийг єєртєє хамаарах keyword юмуу identifier ашиглан хэрэглэж болно . Жишээлбэл: System.Byte-.Net-ийн дор орших єгєгдлийн тєрєл нь VB.Net болон C #-н али алинд нь ашиглагдана. System.Sbyte нь тэмдэгт байт єгєгдлийн тєрлийг VB.Net нь дэмждэггvй бол, C#-д хvчинтэй байдаг. <br />Класс нь доорх хэсгvvдээс бvрддэг: <br />Property<br />Fields<br />Methods<br />Events<br />Kлассыг тодорхойлохдоо, scoping, instantiation specification-уудыг (хаана харагдах болон, яаж тухайн класс type-тай объектыг vvсгэх, євлєгдсєн (derived) класс vvсгэж болох эсэх зэргийг тодорхойлж єгєхєд хэрэглэгдэх) хамтад нь тодорхойлдог. <br />Compilers, Assemblies болон Microsoft Intermediate LanguageVндсэндээ .Net комплярын vр дvнд vvсэх binary (хоёртын) нь assembly болно. Бинари нь .EXE болон .DLL єргєтгєлтэй файл болж vvсгэгдэнэ. Энэ 2-н аль нь ч бай хамаагvй, бинари нь MSIL Instruction-уудын нийлбэр юм. Ингэхлээр, та .Net дээр application хийхдээ, assembly-гаа бас давхар хийж байгаа гэсэн vг болох нь. Assembly нь MSIL-г дотроо агуулж байдаг юм. <br />Бvх .Net хэлнvvд нь, ямар compiler ашиглаж байгаагаас vл хамааран, адилхан Intermediate Language-д хєрвvvлэгдэнэ. Intermediate Language -д хєрвvvлэгдсний дараа, Common Language Runtime undefined (CLR)-н тусламжтайгаар машины кодод хєрвvvлэгддэг. <br />Intermediate Language нь Java-гийн ByteCode-той тєстэй боловч, 1 том ялгаа нь .Net нь зєвхєн Windows дээр ажилладагт оршино. Java-гийн ByteCode нь тєрєл бvрийн систэм дээр ажилллах чадвартай. Бас нэг ялгаа нь, Java-н byteCode нь зєвхєн Java хэл дээр бичигдсэн байх ёстой байдаг бол, .Net нь тєрєл бvрийн хэл дээр бичигдэн, хоорондоо хамтран нэгдэж undefined (interoperability) ажиллаж чаддаг юм. vvгээрээ .Net нь давуу юм. <br />Namespaces<br />Framework-н бvхий л vндсэн суурь (base) классууд нь NameSpace дотор байрлана. Энэ нь танд эдгээр классуудад хандаж, vр дvнтэйгээр хэрэглэхэд зориулагдана. Мєн та єєрийн классуудыг vvсгэхдээ єєрийн Namespace-г vvсгэж болно. Ингэснээр та хоорондоо харилцан холбоотой классуудын бvлгийг бий болгоно. Жишээ дурьдвал, та Account гэдэг класстай байжээ. Account класс олон тєрлийн vvрэг гvйцэтгэх шаардлагатай байг. Тєлбєрийн Account болон Орлогын Account-ууд байх хэрэгтэй бєгєєд эдгээр нь тус тусдаа єєр єєр vйлдэл гvйцэтгэх шаардлагатай vед, та энэ 2 классаа 2 єєр тєрлийн Namespace-д байрлуулж болно. Ингэснээр хоёулаа адилхан Account нэртэй боловч 2 ондоо класс бий болох юм. <br />.Net framework-ийн vндсэн зарим namespace-vvд нь: <br />System<br />System.IO<br />System.Security<br />System.Threading<br />System.Net<br />System.XML<br />System.Windows.Forms<br />Тухайлбал, System namespace нь vндсэн системийн классуудыг тодорхойлоход ашиглагдана. <br /> .NET Application–ний тєрєл <br />.NET платформыг ашиглан хэд хэдэн єєр тєрлийн application хєгжvvлж болно. Yvнд:<br />Windows Applications<br />Windows Services<br />Web Applications<br />Web Services<br />Class Libraries<br />WinForms Custom Controls<br />WebForms Custom Controls<br />Windows Applications<br />Windows application нь Windows vйлдлийн системд ажиллах хэрэглээний программ vvсгэхэд зориулагдсан. Энэ нь WinForms–ийг ашиглан user interface (UI) vvсгэнэ. Мєн Windows application нь Client/Server єгєгдлийн бааз application, тоотой харьцах контрол, график программуудад маш тохирсон. <br />WinForms<br />Windows Forms–ийг CLR–ийн аль ч хэлэнд vvсгэх боломжтой ба тэдгээр WinForms нь хоорондоо хялбар холбогддог. Мєн WinForms нь маш олон тєрлийн vндсэн контрол агуулсан ба хэрэглэгч єєрийн контролыг хялбар vvсгэх боломжтой.<br />Windows Services<br />Windows Service нь программ ба энэ нь Windows NT, Windows 2000 Server–vvд ба дээшхи хувилбарууд дээр ажиллана. Windows Service программууд нь хэрэглэгчтэй харилцахгvйгээр єєрєє vйлчилгээ явуулж байдаг ба vйлдлийн систэм ачаалагдахад хамт ачаалагддаг. .NET дээр та энэ тєрлийн application-уудыг амархан vvсгэх боломжтой.<br />Web Applications<br />Web Application нь HTML хуудсуудыг агуулсан байдаг ба вэб сервер дээр ажилладаг, Энэ нь user interface–тэй ба мєн user interface–гvй байж болно.<br />ASP.NET<br />Та бvхэн ASP(Active Server Page)–ийr мэдэх биз ээ. ASP.NET нь тvvний сайжруулсан хувилбар юм. Хэрэв танд ємнєх ASP код байгаа бол тvvнийгээ ASP.NET–рvv хялбархан хєрвvvлж болно. ASP ба ASP.NET нь нэгэн IIS дээр зохицон ажиллаж чаддаг.<br />ASP.NET сайжруулсан vйлчилгээнvvдээр хангагдсан. Жишээ нь:<br />Statement–ийн удирдлага сайжирсан. <br />Web байгуулалтыг илvv сайн хийдэг<br />ASP–гээс 2-3 дахин хурдан ажилладаг<br />Хєвvvлэгдсэн код хэрэглэдэг<br />Нєєцлєлийн техник нь сайжирсан.<br />ASP.NET нь WebForms ба WebServices–ийн аль алинийг нь багтааж байдаг. <br />Web Forms<br />WebForms нь интернэтийн WinForms гэсэн vг юм. Интернэтэд байрлах UI (дэлгцэнд харагдах байдал)-г WebForms–ийн тусламжтайгаар бvтээнэ. Visual Studio IDE дээр HTML кодуудыг ашиглан бvтээсэн HTML контролуудыг WebForms–д хэрэглэдэг. Мєн HTML vvсгэх сервер талын контролуудыг хэрэглэж болно. <br />Сервер талын контролууд нь маш уян хатан, єгєгдлийн баазтай холбогдох чадвартай ба гараар бичиж чадамгvй их HTML кодуудыг vvсгэж байдаг. Энэ сервер талын контролууд нь HTML 3.2 дээр vvсэж, UI-г сонгох боломжтой Internet explorer-ийн єргєтгєлvvдийг агуулж чаддаг.<br />Web Service<br />HTTP байрлалаас дуудагдсан vйлдлvvд нь Web Service–ийн тусламжтайгаар биелэгддэг. ХМL, SOAP нар нь тухайн vйлчилгээнvvдийг vзvvлдэг хэрэгсэлvvд юм. .NET–д XML буюу SOAP–г хэрэглэх эсвэл тvvний талаарх тодорхойлолтийг олж vзэхгvй. Харин байгуулах классуудийг хэрэглэх ба Web Service–ээ байгуулах л хэрэгцээ гарна. <br />Web Service–ийн тусламжтайгаар хийж болох зарим зvйлс:<br />Кредит картан дээрх зєвшєєрлийг авах<br />Ачаа барааны тєлєвийг авах<br />Баталгаатай захиалга авах<br />Хувьцааны коэффициент авах<br />Бараа каталогийн мэдээ авах<br />ADO.NET<br />.NET Framework-д нэмэгдсэн нэгэн шинэ vйлчилгээ бол єгєгдєлтэй харицах шинэ загвар юм. Энэ загвар нь ADO.NET юм. Ємнєх ADO ба ADO.NET хоёр нь хоорондоо маш их ялгаатай. Энэ 2-ийн гол ялгаа нь єгєгдлийг баазаас уншсаны дараа санах ойд хэрхэн хадгалдагт байгаа юм. Ємнєх ADO нь recordset–ийг хоёртын форматаар хадгалдаг байсан бол ADO.NET нь XML-ээр хадгалдаг. Мєн єєр нэг том ялгаа бол ADO.NET нь disconnected юм.Энэ нь ADO.NET нь єгєгдлийг уншсаны дараа connection (холболт)-г хадгалдаггvй гэсэн vг болно.<br />Хэд хэдэн шинэ объектууд нэмэгдсэн. Yvнд: ADOCommand, ADODataSetCommand, ADODataReader ба DataSet орно. Recordset нь бичлэгvvдээ ADODataReader эсвэл DataSet-ээс уншдаг. <br />DataSet нь хэд хэдэн хvснэгтийг нэг объект руу унших боломж олгодог. Ингэснээр санах ойд хvснэгтvvдийг хооронд нь холбох (Relationship), нэмэх, устгах, засварлах боломжтой болох ба єгєгдлийн бааз руу хадгалах боломжтой болно. ADO.NET нь XML–ээс уншиж, бичиж чадна. Мєн OLEDB буюу бусад provider–уудийг хэрэглэдэг. <br />
Lecture1
Lecture1
Lecture1
Lecture1
Lecture1

More Related Content

DOCX
Lecture2
PDF
C# hicheelin lekts
DOCX
Bodlogo
DOCX
Its150 l3
DOCX
Its150 l2
DOCX
Its150 l1
DOCX
Bd
DOCX
Test
Lecture2
C# hicheelin lekts
Bodlogo
Its150 l3
Its150 l2
Its150 l1
Bd
Test

More from orgil (20)

DOCX
Example excel2007
DOCX
Test7
DOCX
Test6
DOCX
Bodlogiin code
DOCX
Bodlogo
DOCX
Bodlogo
DOCX
Bodlogo
DOCX
Its150 l10powerpoint2007
DOCX
Its150 l10powerpoint2007
DOCX
Test5
DOCX
Test7
DOCX
Test7
DOCX
Test7
DOCX
Test7
DOCX
Test6
DOCX
Test4
DOCX
Test3
DOCX
Test2
DOCX
Test1
DOCX
Bd5
Example excel2007
Test7
Test6
Bodlogiin code
Bodlogo
Bodlogo
Bodlogo
Its150 l10powerpoint2007
Its150 l10powerpoint2007
Test5
Test7
Test7
Test7
Test7
Test6
Test4
Test3
Test2
Test1
Bd5
Ad

Lecture1

  • 1. Лекц №1<br />Сэдэв: .NET ба С# хэлний тухай.<br />Оршил<br />Програм хангамжийн инженерүүд одоо цагт өөр өөрсдийнхөө онцлогоос шалтгаалан янз бүрийн өөрсдөд нь тохирох програмчлалын хэлийг сонгон дагнан, хэзээ ч дуусашгүй мэдээлэлийн технологийн салбарт ажиллаж байна. <br />Анхны програм хангамжийн инженерүүд паскал, турба С гэх мэт доод шатний програм хамгамжийн хэлийг ашиглаж байсан. Одоо ч гэсэн зарим програм хангамжийн инженерүүд эдгээр програм хангамжийн хэлийг ашигладаг хэвээрээ. Турба С хэл хөгжин дэвшиж С++ буюу объект хандлагат хэл үүссэн, харин одоо C# болтлоо хөгжөөд байна. Өөрөөр хэлбэл C# хэлний өвөг дээдэс нь C гэж хэлж болно. C дээр бичиж чаддаг хүмүүс C# дээр бичиж чаддаг, хурдан ч сурдаг. Яагаад гэвэл C# хэлний бичигдэх хэлбэр нь C хэлтэй төстэй. Бичигдэх хэлбэрээрээ төстэй гэхээрээ үр дүн нь адилхан гэж ойлгож болохгүй. Ихэнх хүмүүс жава хэл, болон C# хэлүүдийг цэвэр обьект хандлагат хэл гэж үздэг. C# хэл дээр чадварын хувь бусдаас давуу болон тутагдалтай талууд бий. <br />C бол windows -н доод түвшин болон техник хангамжтай харьцахдаа маш сайн байдаг ба маш нарийн бичиглэл ихтэй бол C# visual орчинд сайн байх жишээтэй. Гэхдээ энэ тутагдлууд нь нөгөөд нь огт байдаггүй гэсэн үг биш харин төвөгтэй гэх нь зөв байх. Та ямар нэг програм хангамжийн  хэл мэддэг байхад л хангалттай. Програм хангамжийн хэлүүдэд ихэнхдээ нэмэлт сангууд нэмэгдсэнээр л өөрчлөгдөг. Тэдгээрийг л сайн мэдээд авчихвал цаг үеээсээ хоцрохгүй, сайн програм хангамжийн инженер болж чадна. Та хэрэв програмчлалын хэл сурах гэж байгаа бол би танд С болон C# санал болгож байна яагаад гэвэл би анх эхэлж эдгээр хэлийг сурсан ба энэ хэл бол бусад хэлүүдийг бодвол маш чадварлаг бас чадвар шаардсан хэл. <br />Өнөөдөр дэлхийн програм хангамжийн инженерүүдийн 65% нь C болон түүний visual хэлэндээр бичдэг. Америкийн програмистуудын ихэнх хувь .NET ашиглаж байхад манай Зүүн Азийн  зарим орон DELPНI ашигладаг. Мөн Орос, Япончуудын ихэнх нь Java,C# visual ашигладаг. Тэгхээр C# хэл хэр түгээмэл гэдэг нь мэдэгдэж байна. <br />.NET фреймворкын тойм. Microsoft .NET платформ нь Application хєгжvvлэх шинэ хэлбэрийг тодорхойлж байна. Microsoft-ийн зорилго бол ямар хэл хэрэглэж байгаа нь гол биш, хамгийн гол нь Интернэт болон Windows application-ийг хурдан, хялбар хєгжvvлэх юм. .NET нь системийн vйлчилгээ, ажиллагааны хєдєлгvvр (Runtime engine), ажлын хvрээ (Framework), контрол (багаж)-ыг тvлхvv анхаарч, тэдгээрийг маш єргєн сонголттойгоор хэрэглэх боломжийг Windows ба Интернэт application бvтээхэд олгож байгаа явдал юм. <br />.NET-ийн зарим чанарыг дурдахад:<br />.NET–ийн аль ч хэлэнд vvсгэсэн классыг бусад программчлалын хэлнvvд удамшуулан ашиглах боломжтой. <br />.NET нь нийтлэг єгєгдлийн тєрлvvдээс бvрддэг. Єєрєєр хэлбэл нийтлэг єгєгдлийн тєрлєєс .NET–ийн аль ч хэл хэрэглэж байдаг.<br />Common Language Runtime–ийг хэрэглэдэг болсон. Ингэснээр ямар программчлалын хэл, ямар хувилбарыг ашиглаж байгаа нь гол бус болж байгаа юм.<br />Windows Application ба Web-based Application бvтээх єндєр тvвшний хэрэгсэлvvдээр бvрэн хангагдсан.<br />.NET–ийн ямар ч программчлалын хэлийг ашигласан эцсийн vр дvн нь ижил байна.<br />Программчлалын хэлнvvд хоорондоо харилцах боломжоор хангагдсан. Жишээ нь: C# буюу бусад хэл дээр vvсгэсэн application-ийг Visual Basic дээр debug (алдаа шалгах) хийх боломжтой.<br />.NET Framework-ийн бас нэг чанар нь интернэтийг бvтээмжтэй байхаар єєртєє нэвтрvvлсэн явдал юм. Internet application, сvлжээний энгийн программ хєгжvvлэхэд .NET Framework нь интернэтийг хэрэглэх бvрэн боломж олгоно.<br />Мєн объектуудыг зарлаж хэрэглэдэг болсон.<br />.NET платформын хамгийн чухал нь Common Language Runtime (CLR)-ийг дууддаг явдал юм. Энэ ажиллагааны хєдєлгvvр (CLR) нь бvх нийтлэг єгєгдлийн тєрлvvд, программчлалын хэлнvvдэд хэрэглэгдэх хэлний гол бvтцийг агуулж байдаг. Цаашдаа энэ CLR нь Windows vйлдлийн системийн нэг бvрэлдэхvvн хэсэг нь болон гарах юм.<br />CLR бол хєгжvvлэх ажлын талбар, design-time ба run-time vеийн vйлчилгээнvvдийг агуулсан байдаг. Design-time vйлчилгээ нь Integrated Development Environment (IDE) ба маш нарийн debugger-уудыг агуулсан байдаг. Та бvхэнд .NET –ийн салангад хэсгvvд хэрхэн бие биетэйгээ холбогдгийг харуулая. <br />Зураг 1. .NET Platform <br />.NET платформын ажиллах хамгийн бага vзvvлэлт нь Windows 32-bit–ийн vйлдлийн систем. <br />Message Queuing services, COM+transactions, Internet Information Server (IIS) ба Windows Management Instrumentation (WMI) зэрэг vйлчилгээний программуудийг vйлдлийн системдээ суулгаснаар бvх хэл тэдгээрийг ашиглах боломжтой болох юм. CLR нь гол классууд ба ADO.NET, ASP.NET–vvдийг агуулж байдаг. ADO.NET нь WinForm ба WebForm–ийн аль алинд хэрэглэгддэг. <br />CLR–лд тохирохоор бичигдсэн программууд нь одоогийн байдлаар Visual Basic, VC++, C# (шинэ хэл), Perl, Python, Eiffel г.м <br />Нийтлэг тєрлийн систем (Common Type System).NET–д єгєгдлийн тєрлvvд нь тухайн хэлэндээ тодорхойлогддоггvй харин CLR–н гол хэсэг болон тодорхойлогдоно. Єгєгдлийн тєрєл болгон объект байдаг. Common Type System (CTS)-д тулгуурладаг 2 Type байдаг: Value Type (утга ) & Reference Type (мэдээлэл) Энэ 2 нь санах ойд яаж хадгалагддагаараа ялгаатай юм. Value Type нь яг тэр мэдээлэл, утгатай єєртэй нь харицана. Харин Reference Type нь заагчийн адил санах ойн хаана нэгэн газар байгаа объектыг мэдээллэнэ.<br />CTS нь тєрєл бvрийн олон Type-г агуулсан бєгєєд эдгээр нь тус бvрдээ утга юмуу reference-р нь янз бvрийн єгєгдлийг тодорхойлоход хэрэглэгдэнэ. Intrinsic буюу Built in єгєгдлийн тєрєл нь тус тус value type юм. Учир нь тэд єгєгдлийг хадгална.Зарим тєрлvvдийг дурьдвал: <br />Class тєрєл<br />Structure тєрєл <br />Interface тєрєл<br />Enumeration тєрєл<br />Delegation тєрєл<br />Техникийн талаас нь авч vзвэл класс бvхэн нь type юм. Та vvнийг цаашид vзэх болно. <br />Энэ хvснэгт vндсэн тєрлийн системийн Intrinsic буюу Built in єгєгдлийн тєрлийн талаар мэдээлэл єгнє. <br />Єгєгдлийн тєрєлТайлбарХэл хэрэглэх ньByte 8 bit тэмдэггvй бvхэл тоо Visual Basic – byte; C# - byte; VC++ - Char; Sbyte 8 bit бvхэл тоо Visual Basic – NA; C# - sbyte; VC++ - Signed char; Int16 16 bit бvхэл тоо Visual Basic – Short; C# - short; VC++ - short; Int32 32 bit бvэл тоо Visual Basic – Integer; C# - int; C++ - int эсвэл long Int64 64 bit бvхэл тоо Visual Basic – Long; C# - long; VC++ - int64 Unint16 16 bit тэмдэггvй бvхэл тоо Visual Basic – NA; C# - ushort; VC++ - unsigned short; Uint32 32 bit тэмдэггvй бvхэл тоо Visual Basic – NA; C# - uint; VC++ - unsigned int эсвэл unsignned long; Uint64 64 bit тэмдэггvй бvхэл тоо Visual Basic – NA; C# - ulong; VC++ - unsigned int64; Single 32 bit бутархай тоо Visual Basic – Single; C# - float; VC++ - float; Double 64 bit бутархай тоо Visual Basic – Double; C# - double; VC++ - double; Boolean True (1) эсвэл False (0) Visual Basic – Boolean; C# - bool; VC++ - bool; Object класс буюу єгєгдлийн тєрєл авч чадах vндсэн тєрєл. Visual Basic – Object; C# - object; VC++ - Object; Char Unicode тэмдэгт (16 bit) Visual Basic – Char; C# - Char; VC++ - _wchar_t; String Unicode тэмдэгтvvдийн дараалал Visual Basic – String; C# - string; VC++ - String; Decimal 96 bit–ийн аравтийн утга Visual Basic – Decimal; C# - decimal; VC++ - Decimal; <br />NA-хэрэглэдэггүй. Хvснэгт 1: Єгєгдлийн тєрєл<br />.Net нь byte, integer г.м. тєрєл бvрийн Type-г тодорхойлох бєгєєд бvх ялгаатай хэлvvд эдгээр Type-vvдийг єєртєє хамаарах keyword юмуу identifier ашиглан хэрэглэж болно . Жишээлбэл: System.Byte-.Net-ийн дор орших єгєгдлийн тєрєл нь VB.Net болон C #-н али алинд нь ашиглагдана. System.Sbyte нь тэмдэгт байт єгєгдлийн тєрлийг VB.Net нь дэмждэггvй бол, C#-д хvчинтэй байдаг. <br />Класс нь доорх хэсгvvдээс бvрддэг: <br />Property<br />Fields<br />Methods<br />Events<br />Kлассыг тодорхойлохдоо, scoping, instantiation specification-уудыг (хаана харагдах болон, яаж тухайн класс type-тай объектыг vvсгэх, євлєгдсєн (derived) класс vvсгэж болох эсэх зэргийг тодорхойлж єгєхєд хэрэглэгдэх) хамтад нь тодорхойлдог. <br />Compilers, Assemblies болон Microsoft Intermediate LanguageVндсэндээ .Net комплярын vр дvнд vvсэх binary (хоёртын) нь assembly болно. Бинари нь .EXE болон .DLL єргєтгєлтэй файл болж vvсгэгдэнэ. Энэ 2-н аль нь ч бай хамаагvй, бинари нь MSIL Instruction-уудын нийлбэр юм. Ингэхлээр, та .Net дээр application хийхдээ, assembly-гаа бас давхар хийж байгаа гэсэн vг болох нь. Assembly нь MSIL-г дотроо агуулж байдаг юм. <br />Бvх .Net хэлнvvд нь, ямар compiler ашиглаж байгаагаас vл хамааран, адилхан Intermediate Language-д хєрвvvлэгдэнэ. Intermediate Language -д хєрвvvлэгдсний дараа, Common Language Runtime undefined (CLR)-н тусламжтайгаар машины кодод хєрвvvлэгддэг. <br />Intermediate Language нь Java-гийн ByteCode-той тєстэй боловч, 1 том ялгаа нь .Net нь зєвхєн Windows дээр ажилладагт оршино. Java-гийн ByteCode нь тєрєл бvрийн систэм дээр ажилллах чадвартай. Бас нэг ялгаа нь, Java-н byteCode нь зєвхєн Java хэл дээр бичигдсэн байх ёстой байдаг бол, .Net нь тєрєл бvрийн хэл дээр бичигдэн, хоорондоо хамтран нэгдэж undefined (interoperability) ажиллаж чаддаг юм. vvгээрээ .Net нь давуу юм. <br />Namespaces<br />Framework-н бvхий л vндсэн суурь (base) классууд нь NameSpace дотор байрлана. Энэ нь танд эдгээр классуудад хандаж, vр дvнтэйгээр хэрэглэхэд зориулагдана. Мєн та єєрийн классуудыг vvсгэхдээ єєрийн Namespace-г vvсгэж болно. Ингэснээр та хоорондоо харилцан холбоотой классуудын бvлгийг бий болгоно. Жишээ дурьдвал, та Account гэдэг класстай байжээ. Account класс олон тєрлийн vvрэг гvйцэтгэх шаардлагатай байг. Тєлбєрийн Account болон Орлогын Account-ууд байх хэрэгтэй бєгєєд эдгээр нь тус тусдаа єєр єєр vйлдэл гvйцэтгэх шаардлагатай vед, та энэ 2 классаа 2 єєр тєрлийн Namespace-д байрлуулж болно. Ингэснээр хоёулаа адилхан Account нэртэй боловч 2 ондоо класс бий болох юм. <br />.Net framework-ийн vндсэн зарим namespace-vvд нь: <br />System<br />System.IO<br />System.Security<br />System.Threading<br />System.Net<br />System.XML<br />System.Windows.Forms<br />Тухайлбал, System namespace нь vндсэн системийн классуудыг тодорхойлоход ашиглагдана. <br /> .NET Application–ний тєрєл <br />.NET платформыг ашиглан хэд хэдэн єєр тєрлийн application хєгжvvлж болно. Yvнд:<br />Windows Applications<br />Windows Services<br />Web Applications<br />Web Services<br />Class Libraries<br />WinForms Custom Controls<br />WebForms Custom Controls<br />Windows Applications<br />Windows application нь Windows vйлдлийн системд ажиллах хэрэглээний программ vvсгэхэд зориулагдсан. Энэ нь WinForms–ийг ашиглан user interface (UI) vvсгэнэ. Мєн Windows application нь Client/Server єгєгдлийн бааз application, тоотой харьцах контрол, график программуудад маш тохирсон. <br />WinForms<br />Windows Forms–ийг CLR–ийн аль ч хэлэнд vvсгэх боломжтой ба тэдгээр WinForms нь хоорондоо хялбар холбогддог. Мєн WinForms нь маш олон тєрлийн vндсэн контрол агуулсан ба хэрэглэгч єєрийн контролыг хялбар vvсгэх боломжтой.<br />Windows Services<br />Windows Service нь программ ба энэ нь Windows NT, Windows 2000 Server–vvд ба дээшхи хувилбарууд дээр ажиллана. Windows Service программууд нь хэрэглэгчтэй харилцахгvйгээр єєрєє vйлчилгээ явуулж байдаг ба vйлдлийн систэм ачаалагдахад хамт ачаалагддаг. .NET дээр та энэ тєрлийн application-уудыг амархан vvсгэх боломжтой.<br />Web Applications<br />Web Application нь HTML хуудсуудыг агуулсан байдаг ба вэб сервер дээр ажилладаг, Энэ нь user interface–тэй ба мєн user interface–гvй байж болно.<br />ASP.NET<br />Та бvхэн ASP(Active Server Page)–ийr мэдэх биз ээ. ASP.NET нь тvvний сайжруулсан хувилбар юм. Хэрэв танд ємнєх ASP код байгаа бол тvvнийгээ ASP.NET–рvv хялбархан хєрвvvлж болно. ASP ба ASP.NET нь нэгэн IIS дээр зохицон ажиллаж чаддаг.<br />ASP.NET сайжруулсан vйлчилгээнvvдээр хангагдсан. Жишээ нь:<br />Statement–ийн удирдлага сайжирсан. <br />Web байгуулалтыг илvv сайн хийдэг<br />ASP–гээс 2-3 дахин хурдан ажилладаг<br />Хєвvvлэгдсэн код хэрэглэдэг<br />Нєєцлєлийн техник нь сайжирсан.<br />ASP.NET нь WebForms ба WebServices–ийн аль алинийг нь багтааж байдаг. <br />Web Forms<br />WebForms нь интернэтийн WinForms гэсэн vг юм. Интернэтэд байрлах UI (дэлгцэнд харагдах байдал)-г WebForms–ийн тусламжтайгаар бvтээнэ. Visual Studio IDE дээр HTML кодуудыг ашиглан бvтээсэн HTML контролуудыг WebForms–д хэрэглэдэг. Мєн HTML vvсгэх сервер талын контролуудыг хэрэглэж болно. <br />Сервер талын контролууд нь маш уян хатан, єгєгдлийн баазтай холбогдох чадвартай ба гараар бичиж чадамгvй их HTML кодуудыг vvсгэж байдаг. Энэ сервер талын контролууд нь HTML 3.2 дээр vvсэж, UI-г сонгох боломжтой Internet explorer-ийн єргєтгєлvvдийг агуулж чаддаг.<br />Web Service<br />HTTP байрлалаас дуудагдсан vйлдлvvд нь Web Service–ийн тусламжтайгаар биелэгддэг. ХМL, SOAP нар нь тухайн vйлчилгээнvvдийг vзvvлдэг хэрэгсэлvvд юм. .NET–д XML буюу SOAP–г хэрэглэх эсвэл тvvний талаарх тодорхойлолтийг олж vзэхгvй. Харин байгуулах классуудийг хэрэглэх ба Web Service–ээ байгуулах л хэрэгцээ гарна. <br />Web Service–ийн тусламжтайгаар хийж болох зарим зvйлс:<br />Кредит картан дээрх зєвшєєрлийг авах<br />Ачаа барааны тєлєвийг авах<br />Баталгаатай захиалга авах<br />Хувьцааны коэффициент авах<br />Бараа каталогийн мэдээ авах<br />ADO.NET<br />.NET Framework-д нэмэгдсэн нэгэн шинэ vйлчилгээ бол єгєгдєлтэй харицах шинэ загвар юм. Энэ загвар нь ADO.NET юм. Ємнєх ADO ба ADO.NET хоёр нь хоорондоо маш их ялгаатай. Энэ 2-ийн гол ялгаа нь єгєгдлийг баазаас уншсаны дараа санах ойд хэрхэн хадгалдагт байгаа юм. Ємнєх ADO нь recordset–ийг хоёртын форматаар хадгалдаг байсан бол ADO.NET нь XML-ээр хадгалдаг. Мєн єєр нэг том ялгаа бол ADO.NET нь disconnected юм.Энэ нь ADO.NET нь єгєгдлийг уншсаны дараа connection (холболт)-г хадгалдаггvй гэсэн vг болно.<br />Хэд хэдэн шинэ объектууд нэмэгдсэн. Yvнд: ADOCommand, ADODataSetCommand, ADODataReader ба DataSet орно. Recordset нь бичлэгvvдээ ADODataReader эсвэл DataSet-ээс уншдаг. <br />DataSet нь хэд хэдэн хvснэгтийг нэг объект руу унших боломж олгодог. Ингэснээр санах ойд хvснэгтvvдийг хооронд нь холбох (Relationship), нэмэх, устгах, засварлах боломжтой болох ба єгєгдлийн бааз руу хадгалах боломжтой болно. ADO.NET нь XML–ээс уншиж, бичиж чадна. Мєн OLEDB буюу бусад provider–уудийг хэрэглэдэг. <br />