Tuesday, May 25, 2010

Windows and Object Oriented Programming

Энэ танилцуулгаар Windows үйлдлийн систем, түүн дээр програмчлах боломжуудыг объект хандлагат програмчлалын орчинд, нарийвчилбал Microsoft Visual C++ 2008 SDK (Software Development Kit буюу Програм Хангамж Хөгжүүлэлтийн багц)-н орчинд авч үзнэ. Windows үйлдлийн систем маань өөрөө 70 орчим хувь нь С хэл дээр, 30 гаруй хувь нь Assembly хэл дээр бичигдсэн байдаг. Үйлдлийн системийн зах зээлийн 95%-г Windows үйлдлийн систем маань эзэлж байгаа болохоор энэ нь ямар хүчирхэг үйлдлийн систем болох, энэ хүчирхэг үйлдлийн систем дээр програмчлахын чухлыг ойлгоход хялбар байгаа бизээ.

Windows програмчлалын боломжууд

Visual C++ 2008 дээр Windows програм бичих гурван боломж бий. Эдгээрийг дурдвал:

1. Windows API (Application Programming Interface) ашиглан програмчлах. Windows үйлдлийн системийг програмтай буюу хэрэглэгчтэй холбож өгдөг хамгийн доод түвшний програмчлалын арга. Хөгжлийн хувьд аваад үзвэл энэ нь Windows програмчлал дах хамгийн эртний арга гэж үзэж болно.

2. Microsoft Foundation Class буюу MFC ашиглан програмчлах. Энэ нь Windows API-г encapsulate хийдэг багц C++ классууд.

3. Windows Forms-г ашиглан програмчлах. CLR (Common Language Runtime)-тай ажилладаг application хөгжүүлэхэд зориулсан form-based (form дээр суурилсан) хөгжүүлэлтийн механизм.

Эхний Windows API нь бүтцэн програмчлалын аргыг хэрэглэдэг бол дараагийн хоёр объект хандлагат технологи.

1. Windows API

Windows хэрэглээний програм болон Windows үйлдлийн систем хоорондох бүх л харилцаа Windows application programming interface буюу Windows API-г ашигладаг. Windows API нь стандартаар үйлдлийн системд орсон үйлдлийн систем програмтай, програм үйлдлийн системтэй харьцах боломжийг олгосон зуу зуун функцуудаас тогтдог. Windows API нь С++ хэл бий болохоос нилээн өмнө, С хэл хэрэглэгддэг байхад хөгжүүлэгдсэн, тийм учраас үйлдлийн систем, програм хоёрын хооронд өгөгдөл дамжуулахдаа class-аас илүүтэйгээр structure (бүтэц)-г ашигладаг. Тийм учраас энэ програмчлалын арга нь бидний үзэж буй объект хандлагат аргыг хэрэглээгүй, түүний өмнөх бүтцэн програмчлалын аргыг хэрэглэдэг юм байна. Windows API-д бүх л зүйл доод түвшинд ажиллаж байгаа учраас зөвхөн маш их хэмжээний код бичих шаардлагатай байдаг. Ямар ч нэмэлт tool, хэрэгслийг хэрэглэх боломж байдаггүй. Хамгийн доод түвшний програмчлал гэж ойлгож болно. Тийм учраас Windows API дээр програмчлах нь бусад объект хандлагат програмаасаа илүү хүчирхэг, хурдан ажилладаг програмыг хөгжүүлэхэд хэрэглэгддэг. Гэсэн хэдий ч бүх л зүйлийг бичиж, програмчилж байгаа учраас маш их цаг хугацаа, хөрөнгө мөнгө, мэдлэг шаарддаг.

2. MFC

MFC буюу Microsoft Foundation Classes нь урьдчилэн тодорхойлж өгсөн бэлэн классуудын сан буюу цуглуулга юм. Үүн дээр л Visual C++ хэлний Windows програмчлал суурилдаг гэхэд хилсдэхгүй. Эдгээр классууд нь Windows програмчлал дах хамгийн доод түвшний Windows API-уудыг объект хандлагат технологиор encapsulate хийдэг. MFC-н код нь encapsulation, data hiding гэх зарчмууд гарж ирэхээс өмнө бичигдсэн учраас эдгээр зарчмуудыг объект хандлагат технологийн дагуу бүрэн дүүрэн мөрдөж чаддаггүй. Гэсэн хэдий ч MFC дээр бидний гол сэдэв болох Windows ба объект хандлагат технологи маань гарч ирж байна. MFC ашиглан програмчлах процесс нь MFC объектуудыг ашиглах, шинээр үүсгэх, эсвэл MFC-ээс удамшсан объектыг ашиглах аргуудыг хэрэглэдэг. Ерөнхийдөө бол программист Visual C++ тусгай хэрэгслүүдийн тусламжтайгаар MFC-ээс класс удамшуулснаар програмчлах процессыг амар хялбар болгодог. MFC дээр суурилсан объектууд нь Windows-тэй харилцах, Windows message-уудыг боловсруулах, хоорондоо message илгээх гишүүн функцуудыг агуулж байдаг. Мэдээж эдгээр удамшсан классууд нь өөрсдийнхөө гишүүн өгөгдлүүдийг суурь буюу эх классаасаа удамшуулж авдаг. Эдгээр удамшуулсан классууд нь Windows үйлдлийн системийн орчинд ажиллахад шаардлагатай бүх л ажилуудыг хийдэг. Програмист хүний хийх ёстой ажил нь тухайн програмынхаа юу хийхээс хамаараад гишүүн өгөгдөл болон функцуудыг нэмж оруулж өгөх л юм. Мөн MFC-г ашиглан програмчлахад цонхон дээр байрлах control-уудыг бэлэн график хэрэгсэл ашиглан, код бичихгүйгээр зохицуулах боломжтой болсон юм. Ингэснээр програмист зөвхөн тухайн control-н хэрэглэгчтэй хэрхэн харицахыг програмчилж өгөх л ажилтай болж байгаа юм. Гэсэн хэдий ч MFC-г Windows Forms-г ашиглан програмчлахтай харьцуулвал нилээн код бичих шаардлага байдаг. Одоо MFC-н гол шинж чанар, давуу талуудыг авч үзэцгээе:

Объект хандлагат програмчлалын арга. Өмнөх Windows API нь бүтцэн програмчлалын аргыг хэрэглэдэг бол MFC нь объект хандлагат програмчлалын аргыг хэрэглэснээр Windows програмчлалд хувьсгал болж чадсан юм.

Windows API-г encapsulate хийж өгдөг. Windows API-н кодыг бичих ямар ч шаардлагагүй болж байгаа учир нь MFC-н классуудад эдгээр кодуудыг агуулсан байгаа учраас шууд удамшуулаад хэрэглэж болно.

Функцууд болон өгөгдлийн нэрсийн давхацлыг үгүй болгосон.

Класс доторх код болон өгөгдлийн encapsulation

Объеъкт хандлагат технологийн гол зарчим болох удамшилыг ашигласнаар дэвшилт болж байгаа юм.

Сайн зохион байгуулагдсан классын сангуудын ачаар програмын кодны хэмжээ багасдаг.

200 илүү классуудтай.

Hungarian тэмдэглэгээг хэрэглэдэг. Жишээ нь сан дах бүх л классууд С-ээр эхэлсэн байдаг. Мөн энэ зарчмыг гишүүн өгөгдлүүд, функцуудад хэрэглэдэг.

3. Windows Forms

Windows Forms програмчлалын арга та бидний сайн мэдэх C# хэлний хөгжүүлэлтийн арга юм. Бид цонх буюу form дээр юу байхыг бэлэн график хэрэгсэл ашиглан зохиомжилдог. Windows Forms-г ашиглах нь одоогоор програм хөгжүүлэхэд хэрэглэгддэг хамгийн хурдан, хамгийн амархан арга юм. Учир нь бэлэн график хэрэгслийг ашиглан програмчилснаар нөгөө хоёр програм бичих аргыг бодвол бичих ёстой кодыг маш их багасгаж өгдөг юм. Windows Forms application-н код нь мөн CLR (Common Language Runtime)-тай хамт ажиллах болсноороо давуу талтай юм. Windows form нь System::Windows::Forms::Form-н дэд классаар encapsulate хийгддэг ба бүх л кодыг автоматаар үүсгэдэг. Энэхүү арга нь объект хандлагат технологи дээр суурилсан арга.

Хэрхэн Windows Forms-г эхлүүлж ажиллах вэ:

Visual C++ -> Project Type-н CLR-г нь сонгоод, Templates-ээс Windows Forms Application-г сонгон project-н нэрээ өгснөөр ашиглах боломжтой.

No comments:

Post a Comment