Wednesday, March 14, 2012

Microsoft .NET-ийн талаар


  • Microsoft .NET-ийн талаар
  • Нийтлэг тєрлийн систем
  • .NET Application–ний тєрєл
  • ADO.NET

Microsoft .NET платформ нь Application хєгжvvлэх шинэ хэлбэрийг тодорхойлж байна. Microsoft-ийн зорилго бол ямар хэл хэрэглэж байгаа нь гол биш, хамгийн гол нь Интернэт болон Windows application-ийг хурдан, хялбар хєгжvvлэх юм. .NET нь системийн vйлчилгээ, ажиллагааны хєдєлгvvр (Runtime engine), ажлын хvрээ (Framework), контрол (багаж)-ыг тvлхvv анхаарч, тэдгээрийг маш єргєн сонголттойгоор хэрэглэх боломжийг Windows ба Интернэт application бvтээхэд олгож байгаа явдал юм.
.NET-ийн зарим чанарыг дурдахад:
  • .NET–ийн аль ч хэлэнд vvсгэсэн классыг бусад программчлалын хэлнvvд удамшуулан ашиглах боломжтой.
  • .NET нь нийтлэг єгєгдлийн тєрлvvдээс бvрддэг. Єєрєєр хэлбэл нийтлэг єгєгдлийн тєрлєєс .NET–ийн аль ч хэл хэрэглэж байдаг.
  • Common Language Runtime–ийг хэрэглэдэг болсон. Ингэснээр ямар программчлалын хэл, ямар хувилбарыг ашиглаж байгаа нь гол бус болж байгаа юм.
  • Windows Application ба Web-based Application бvтээх єндєр тvвшний хэрэгсэлvvдээр бvрэн хангагдсан.
  • .NET–ийн ямар ч программчлалын хэлийг ашигласан эцсийн vр дvн нь ижил байна.
  • Программчлалын хэлнvvд хоорондоо харилцах боломжоор хангагдсан. Жишээ нь: C# буюу бусад хэл дээр vvсгэсэн application-ийг Visual Basic дээр debug (алдаа шалгах) хийх боломжтой.
  • .NET Framework-ийн бас нэг чанар нь интернэтийг бvтээмжтэй байхаар єєртєє нэвтрvvлсэн явдал юм. Internet application, сvлжээний энгийн программ хєгжvvлэхэд .NET Framework нь интернэтийг хэрэглэх бvрэн боломж олгоно.
  • Мєн объектуудыг зарлаж хэрэглэдэг болсон.
.NET платформын хамгийн чухал нь Common Language Runtime (CLR)-ийг дууддаг явдал юм. Энэ ажиллагааны хєдєлгvvр (CLR) нь бvх нийтлэг єгєгдлийн тєрлvvд, программчлалын хэлнvvдэд хэрэглэгдэх хэлний гол бvтцийг агуулж байдаг. Цаашдаа энэ CLR нь Windows vйлдлийн системийн нэг бvрэлдэхvvн хэсэг нь болон гарах юм.
CLR бол хєгжvvлэх ажлын талбар, design-time ба run-time vеийн vйлчилгээнvvдийг агуулсан байдаг. Design-time vйлчилгээ нь Integrated Development Environment (IDE) ба маш нарийн debugger-уудыг агуулсан байдаг. Та бvхэнд .NET –ийн салангад хэсгvvд хэрхэн бие биетэйгээ холбогдгийг харуулая.
Зураг 1. .NET Platform
.NET платформын ажиллах хамгийн бага vзvvлэлт нь Windows 32-bit–ийн vйлдлийн систем.
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–ийн аль алинд хэрэглэгддэг.
CLR–лд тохирохоор бичигдсэн программууд нь одоогийн байдлаар Visual Basic, VC++, C# (шинэ хэл), Perl, Python, Eiffel г.м

Нийтлэг тєрлийн систем (Common Type System)

.NET–д єгєгдлийн тєрлvvд нь тухайн хэлэндээ тодорхойлогддоггvй харин CLR–н гол хэсэг болон тодорхойлогдоно. Єгєгдлийн тєрєл болгон объект байдаг.
Common Type System (CTS)-д тулгуурладаг 2 Type байдаг: Value Type (утга ) & Reference Type (мэдээлэл) Энэ 2 нь санах ойд яаж хадгалагддагаараа ялгаатай юм. Value Type нь яг тэр мэдээлэл, утгатай єєртэй нь харицана. Харин Reference Type нь заагчийн адил санах ойн хаана нэгэн газар байгаа объектыг мэдээллэнэ.
CTS нь тєрєл бvрийн олон Type-г агуулсан бєгєєд эдгээр нь тус бvрдээ утга юмуу reference-р нь янз бvрийн єгєгдлийг тодорхойлоход хэрэглэгдэнэ.
Intrinsic буюу Built in єгєгдлийн тєрєл нь тус тус value type юм. Учир нь тэд єгєгдлийг хадгална.
Зарим тєрлvvдийг дурьдвал: 
  1. Class тєрєл
  2. Structure тєрєл
  3. Interface тєрєл
  4. Enumeration тєрєл
  5. Delegation тєрєл
Техникийн талаас нь авч vзвэл класс бvхэн нь type юм. Та vvнийг цаашид vзэх болно
Энэ хvснэгт vндсэн тєрлийн системийн Intrinsic буюу Built in єгєгдлийн тєрлийн талаар мэдээлэл єгнє.
Єгєгдлийн тєрєлТайлбарХэл хэрэглэх нь
Byte8 bit тэмдэггvй бvхэл тооVisual Basic – byte; C# - byte; VC++ - Char;
Sbyte8 bit бvхэл тооVisual Basic – NA; C# - sbyte; VC++ - Signed char;
Int1616 bit бvхэл тооVisual Basic – Short; C# - short; VC++ - short;
Int3232 bit бvэл тооVisual Basic – Integer; C# - int; C++ - int эсвэл long
Int6464 bit бvхэл тооVisual Basic – Long; C# - long; VC++ - int64
Unint1616 bit тэмдэггvй бvхэл тооVisual Basic – NA; C# - ushort; VC++ - unsigned short;
Uint3232 bit тэмдэггvй бvхэл тооVisual Basic – NA; C# - uint; VC++ - unsigned int эсвэл unsignned long;
Uint6464 bit тэмдэггvй бvхэл тооVisual Basic – NA; C# - ulong; VC++ - unsigned int64;
Single32 bit бутархай тооVisual Basic – Single; C# - float; VC++ - float;
Double64 bit бутархай тооVisual Basic – Double; C# - double; VC++ - double;
BooleanTrue (1) эсвэл False (0)Visual Basic – Boolean; C# - bool; VC++ - bool;
Objectкласс буюу єгєгдлийн тєрєл авч чадах vндсэн тєрєл.Visual Basic – Object; C# - object; VC++ - Object;
CharUnicode тэмдэгт (16 bit)Visual Basic – Char; C# - Char; VC++ - _wchar_t;
StringUnicode тэмдэгтvvдийн дараалалVisual Basic – String; C# - string; VC++ - String;
Decimal96 bit–ийн аравтийн утгаVisual Basic – Decimal; C# - decimal; VC++ - Decimal;
NA-хэрэглэдэггүй
Хvснэгт 1: Єгєгдлийн тєрєл
.Net нь byte, integer г.м. тєрєл бvрийн Type-г тодорхойлох бєгєєд бvх ялгаатай хэлvvд эдгээр Type-vvдийг єєртєє хамаарах keyword юмуу identifier ашиглан хэрэглэж болно . Жишээлбэл: System.Byte-.Net-ийн дор орших єгєгдлийн тєрєл нь VB.Net болон C #-н али алинд нь ашиглагдана. System.Sbyte нь тэмдэгт байт єгєгдлийн тєрлийг VB.Net нь дэмждэггvй бол, C#-д хvчинтэй байдаг.
Класс нь доорх хэсгvvдээс бvрддэг:
  1. Property
  2. Fields
  3. Methods
  4. Events
Kлассыг тодорхойлохдоо, scoping, instantiation specification-уудыг (хаана харагдах болон, яаж тухайн класс type-тай объектыг vvсгэх, євлєгдсєн (derived) класс vvсгэж болох эсэх зэргийг тодорхойлж єгєхєд хэрэглэгдэх) хамтад нь тодорхойлдог.

Compilers, Assemblies болон Microsoft Intermediate Language

Vндсэндээ .Net комплярын vр дvнд vvсэх binary (хоёртын) нь assembly болно. Бинари нь .EXE болон .DLL єргєтгєлтэй файл болж vvсгэгдэнэ. Энэ 2-н аль нь ч бай хамаагvй, бинари нь MSIL Instruction-уудын нийлбэр юм. 
Ингэхлээр, та .Net дээр application хийхдээ, assembly-гаа бас давхар хийж байгаа гэсэн vг болох нь. Assembly нь MSIL-г дотроо агуулж байдаг юм.
Бvх .Net хэлнvvд нь, ямар compiler ашиглаж байгаагаас vл хамааран, адилхан Intermediate Language-д хєрвvvлэгдэнэ. Intermediate Language -д хєрвvvлэгдсний дараа, Common Language Runtime undefined (CLR)-н тусламжтайгаар машины кодод хєрвvvлэгддэг.
Intermediate Language нь Java-гийн ByteCode-той тєстэй боловч, 1 том ялгаа нь .Net нь зєвхєн Windows дээр ажилладагт оршино. Java-гийн ByteCode нь тєрєл бvрийн систэм дээр ажилллах чадвартай. Бас нэг ялгаа нь, Java-н byteCode нь зєвхєн Java хэл дээр бичигдсэн байх ёстой байдаг бол, .Net нь тєрєл бvрийн хэл дээр бичигдэн, хоорондоо хамтран нэгдэж undefined (interoperability) ажиллаж чаддаг юм. vvгээрээ .Net нь давуу юм.

Namespaces

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 ондоо класс бий болох юм.
.Net framework-ийн vндсэн зарим namespace-vvд нь: 
  1. System
  2. System.IO
  3. System.Security
  4. System.Threading
  5. System.Net
  6. System.XML
  7. System.Windows.Forms
Тухайлбал, System namespace нь vндсэн системийн классуудыг тодорхойлоход ашиглагдана.

.NET Application–ний тєрєл

.NET платформыг ашиглан хэд хэдэн єєр тєрлийн application хєгжvvлж болно. Yvнд:
  • Windows Applications
  • Windows Services
  • Web Applications
  • Web Services
  • Class Libraries
  • WinForms Custom Controls
  • WebForms Custom Controls

Windows Applications

Windows application нь Windows vйлдлийн системд ажиллах хэрэглээний программ vvсгэхэд зориулагдсан. Энэ нь WinForms–ийг ашиглан user interface (UI) vvсгэнэ. Мєн Windows application нь Client/Server єгєгдлийн бааз application, тоотой харьцах контрол, график программуудад маш тохирсон.

WinForms

Windows Forms–ийг CLR–ийн аль ч хэлэнд vvсгэх боломжтой ба тэдгээр WinForms нь хоорондоо хялбар холбогддог. Мєн WinForms нь маш олон тєрлийн vндсэн контрол агуулсан ба хэрэглэгч єєрийн контролыг хялбар vvсгэх боломжтой.

Windows Services

Windows Service нь программ ба энэ нь Windows NT, Windows 2000 Server–vvд ба дээшхи хувилбарууд дээр ажиллана. Windows Service программууд нь хэрэглэгчтэй харилцахгvйгээр єєрєє vйлчилгээ явуулж байдаг ба vйлдлийн систэм ачаалагдахад хамт ачаалагддаг. .NET дээр та энэ тєрлийн application-уудыг амархан vvсгэх боломжтой.

Web Applications

Web Application нь HTML хуудсуудыг агуулсан байдаг ба вэб сервер дээр ажилладаг, Энэ нь user interface–тэй ба мєн user interface–гvй байж болно.

ASP.NET

Та бvхэн ASP(Active Server Page)–ийr мэдэх биз ээ. ASP.NET нь тvvний сайжруулсан хувилбар юм. Хэрэв танд ємнєх ASP код байгаа бол тvvнийгээ ASP.NET–рvv хялбархан хєрвvvлж болно. ASP ба ASP.NET нь нэгэн IIS дээр зохицон ажиллаж чаддаг.
ASP.NET сайжруулсан vйлчилгээнvvдээр хангагдсан. Жишээ нь:
  • Statement–ийн удирдлага сайжирсан.
  • Web байгуулалтыг илvv сайн хийдэг
  • ASP–гээс 2-3 дахин хурдан ажилладаг
  • Хєвvvлэгдсэн код хэрэглэдэг
  • Нєєцлєлийн техник нь сайжирсан.
ASP.NET нь WebForms ба WebServices–ийн аль алинийг нь багтааж байдаг.

Web Forms

WebForms нь интернэтийн WinForms гэсэн vг юм. Интернэтэд байрлах UI (дэлгцэнд харагдах байдал)-г WebForms–ийн тусламжтайгаар бvтээнэ. Visual Studio IDE дээр HTML кодуудыг ашиглан бvтээсэн HTML контролуудыг WebForms–д хэрэглэдэг. Мєн HTML vvсгэх сервер талын контролуудыг хэрэглэж болно.
Сервер талын контролууд нь маш уян хатан, єгєгдлийн баазтай холбогдох чадвартай ба гараар бичиж чадамгvй их HTML кодуудыг vvсгэж байдаг. Энэ сервер талын контролууд нь HTML 3.2 дээр vvсэж, UI-г сонгох боломжтой Internet explorer-ийн єргєтгєлvvдийг агуулж чаддаг.

Web Service

HTTP байрлалаас дуудагдсан vйлдлvvд нь Web Service–ийн тусламжтайгаар биелэгддэг. ХМL, SOAP нар нь тухайн vйлчилгээнvvдийг vзvvлдэг хэрэгсэлvvд юм. .NET–д XML буюу SOAP–г хэрэглэх эсвэл тvvний талаарх тодорхойлолтийг олж vзэхгvй. Харин байгуулах классуудийг хэрэглэх ба Web Service–ээ байгуулах л хэрэгцээ гарна.
Web Service–ийн тусламжтайгаар хийж болох зарим зvйлс:
  • Кредит картан дээрх зєвшєєрлийг авах
  • Ачаа барааны тєлєвийг авах
  • Баталгаатай захиалга авах
  • Хувьцааны коэффициент авах
  • Бараа каталогийн мэдээ авах


ADO.NET

.NET Framework-д нэмэгдсэн нэгэн шинэ vйлчилгээ бол єгєгдєлтэй харицах шинэ загвар юм. Энэ загвар нь ADO.NET юм. Ємнєх ADO ба ADO.NET хоёр нь хоорондоо маш их ялгаатай. Энэ 2-ийн гол ялгаа нь єгєгдлийг баазаас уншсаны дараа санах ойд хэрхэн хадгалдагт байгаа юм.
Ємнєх ADO нь recordset–ийг хоёртын форматаар хадгалдаг байсан бол ADO.NET нь XML-ээр хадгалдаг. Мєн єєр нэг том ялгаа бол ADO.NET нь disconnected юм.
Энэ нь ADO.NET нь єгєгдлийг уншсаны дараа connection (холболт)-г хадгалдаггvй гэсэн vг болно.
Хэд хэдэн шинэ объектууд нэмэгдсэн. Yvнд: ADOCommand, ADODataSetCommand, ADODataReader ба DataSet орно. Recordset нь бичлэгvvдээ ADODataReader эсвэл DataSet-ээс уншдаг.
DataSet нь хэд хэдэн хvснэгтийг нэг объект руу унших боломж олгодог. Ингэснээр санах ойд хvснэгтvvдийг хооронд нь холбох (Relationship), нэмэх, устгах, засварлах боломжтой болох ба єгєгдлийн бааз руу хадгалах боломжтой болно. ADO.NET нь XML–ээс уншиж, бичиж чадна. Мєн OLEDB буюу бусад provider–уудийг хэрэглэдэг.

No comments:

Post a Comment