follow

ASP.NET MVC (I)




ASP.NET MVC нь Майкрософтын платформ ашигладаг веб хөгжүүлэгчдийн хувьд үнэхээр том хувьсгал болсон юм. Энэхүү технологи нь тодорхой архитектур, загварчлалын хэв /design pattern/ болон тестлэгдэх боломжийг бий болгож, вебийн үндсэн ажиллагааг нууцлагдмал байлгахаас татгалздагаараа онцлог.
ASP.NET MVC нь хурдан хөгжүүлэлтийн хамгийн шинэлэг аргачлал болох MVC архитектурын үр дүнтэй, эмх цэгц бүхий чанарыг оршин байсан ASP.NETплатформын шилдэг хэсгүүдтэй хослуулсан, Майкрософтын веб хөгжүүлэлтийн фрэймворк юм.


Веб хөгжүүлэлтийн товч түүх

ASP.NET MVC-ийн онцгой чанар хийгээд загварчлалын ач тусыг ойлгохын тулд веб хөгжүүлэлтийн түүхийг товчхон ч болов сөхөх нь зүйтэй. Майкрософтын веб хөгжүүлэлтийн платформуудын хувьд жил ирэх тусам хүчирхэг болж буй хэдий ч үүнийг дагалдан нүсэр байдал нь нэмэгдсээр байгаа юм. Дараах хүснэгтэд үзүүлсэн платформ бүр өмнөх платформуудынхаа дутагдалтай талыг засан сайжруулж ирсэнийг харж болно.


Үечлэл
Технологи
Давуу талууд
Сул талууд
Юрийн галавын үе
Common Gateway Interface (CGI)*
Энгийн.
Уян хатан.
Тухайн үе дэх цорын ганц сонголт байсан
Веб серверийн гадна ажилладаг тул нөөц их шаарддаг.
Доод түвшний.
Хүрлийн үе
Microsoft Internet Database Connector
Веб сервер дотор ажилладаг.
SQL query-нүүдийг өөртөө багтаасан, үр дүнгээ хэлбэржүүлэн гаргадаг төдий.
1996
Active Server Pages (ASP)
Ерөнхий зориулалтын.
Ажиллах үеийн хөрвүүлэлттэй.
“Шпагетти код” буюу нүсэр, төвөгтэй кодыг бий болгодог.
2002/03
ASP.NET Web Forms 1.0/1.1
Хэрэглэгчийн интерфейсийн хувьд тогтвортой.
Өргөн инфра бүтэцтэй.
Объект хандалтад програмчлалыг дэмждэг.
Bandwith-ийн хэрэглээ ихтэй.
Замбраагүй HTML
Тестлэх боломжгүй.
2005
ASP.NET Web Forms 2.0
Дараа ярих болно.
2007
ASP.NET AJAX
2008
ASP.NET Web Forms 3.5
2009
ASP.NET MVC 1.0
2010
ASP.NET MVC 2.0
ASP.NET Web Forms 4.0


·         CGI гэдэг нь динамик өгөгдлөөр хангадаг дурын програмыг /executable/ веб сервертэй холбодог стандарт юм.
Уламжлалт ASP.NET Web Forms

ASP.NET нь анхлан гарахдаа үнэхээр том шинэчлэлтийг авчирсан.

ASP.NET Web Forms
Хэрэглэгчийн интерфейсийн хэрэгслүүд (хуудсууд, товчнууд гэх мэт), тогтмол, объект хандалтад GUI програмчлах загвар

ASP.NET
.NET application-үүдийг IIS (Microsoft-ийн веб сервер бүтээгдэхүүн) дээр тавьж HTTP хүсэлт илгээж хариу хүлээн авах боломжийг олгодог

.NET
Олон хэлээр кодчилох боломж бүхий платформ

ASP.NET Web Forms технологийн суурь.

Web Forms-ийн сервер талын контролуудын /button, textbox гэх мэт/ тусламжтайгаар хэрэглэгчийн интерфейсийг зохион байгуулснаар Microsoft нь HTTP болонHTML-ийг далдлахыг оролдсон. Контрол бүхэн илгээгдсэн хүсэлтийн дагуу өөрийн мэдээллийг авч, шаардлагатай үедээ өөрийгөө автоматаар үүсгэхийн сацуу сервер талын event зохицуулах кодоор дамжуулан клиент талын эвентүүдтэй холбогддог. Үүний үр дүнд Web Forms нь event-ээр хөтлөгдөх GUI-г вебтэй холбосон аварга том хийсвэр давхарга болсон юм.
Үүний гол санаа нь уламжлалт цонхон орчны хөгжүүлэлттэй адил аргаар веб хөгжүүлэхэд оршино. Урьд нь веб хөгжүүлэгчид олон тооны биедаасан HTTP хүсэлт болон хариу үйлдлүүдтэй ажилладаг байсан бол одоо шаардлагагүй болж, үүнийг бид тогтвортой хэрэглэгчийн интерфейс хэмээн нэрийдээд байна.

ASP.NET Web Forms-ийн юу нь болохгүй байна?

Уламжлалт ASP.NET Web Forms нь анхандаа сайхан санаа болж, үнэхээр ирээдүйтэй хэмээгдэж байсан ч төвөгтэй тал руугаа эргэж эхэлсэн юм. Урьд нь бидASP.NET Web Forms-ийг мэдэгдээгүй хэд хэдэн сул талынх нь хамтаар ашигласаар ирсэн:
-       ViewState-ийн хэмжээ: Хүсэлт боловсруулдаг бодит механизм нь /ViewState/ клиент болон серверийн хооронд өгөгдлийн аварга том багцыг дамжуулдаг. Энэхүү багц нь зуу зуун килобайт хүрч, хүсэлт бүр дээр хойш урагш дамжуулагдан, хэрэглэгчдийг товчин дээр дарах, хуудас солих зэрэгт удаан хүлээлгэхэд хүргэж эхэлжээ. Хэдийгээр bandwith өндөртэй хуудсуудыг ачаалахад учрах саадыг Ajax шийдсэн боловч энэхүү арга нь төдийлөн шилдэгт тооцогддоггүй юм /Дотоод хуудасны ViewState өгөгдлийг зэрэгцээ бус хүсэлт болгон дээр шилжүүлэх шаардлагатай болдог/.
-       Хуудасны амьдралын цикл: Хуудасны амьдралын циклийн нэг хэсэг болсон сервер талын event зохицуулагчаар дамжуулан клиент талын event-тэй холбогдох механизм нь нэлээд төвөгтэй бөгөөд сул байдаг. Цөөхөн тооны веб хөгжүүлэгчид л контролуудыг ViewState-ийн алдаа заалгалгүйгээр зохион байгуулах эсвэлevent зохицуулагч дээр учир нь үл олдох нууцлаг алдаатай учралгүйгээр өнгөрч чаддаг.
-       Анхаарал хандуулалтыг салгах тухай өрөөсгөл ойлголт: ASP.NET Web Forms нь кодын арын класс /code-behind class/-ыг ашиглаж програмын кодыг HTML-ээс салгадаг. Энэ нь програмын логикийг интерфейсийн хэсгээс салгаж байгаагаараа өндөр ач холбогдолтой боловч бодит байдал дээр веб хөгжүүлэгчид дээрх гайхалтай кодын арын класс дотор нь интерфейсийн кодыг програмын логиктой холих сонирхолтой байдаг. Тиймээс илүү сайн тусгаарлалтгүйгээр эцсийн үр дүн нь хэзээд хэврэг, ухаалаг бус байх болно.
-       HTML-ийн хязгаарлагдмал контролууд: Сервер талын контролууд өөрийгөө үүсгэдэг хэдий ч таны яг хүссэнээр үүсэх нь ховор. Хувилбар 4-өөс өмнө контролуудын HTML гаралт нь ихэвчлэн веб стандарттай тохирохгүй, эсвэл CSS хэрэглэхэд хүнд байсан. Мөн сервер талын контролууд таахад хэцүү, төвөгтэйID-тэй үүсдэг нь JavaScript ашиглан түүнд хандахад хэцүү байдаг. Эдгээр асуудлууд ASP.NET 4 дээр багассан.
-       Цоорхойтой хийсвэрлэл: Web Forms нь боломжтой газар бүртээ HTML болон HTTP-г далдлахыг оролддог. Хэрвээ та өөрийн гэсэн хариу үйлдэл үзүүлдэг хэсэг бий болгоё гэвэл ихэвчлэн .NET хийсвэрлэлээс хазайж, дахин инженерчлэл хийх хэрэг гардаг. Өөрөөр хэлбэл бүгдийг өөрийнхөө хүссэнээр байлгахад хүндрэлтэй гэсэн үг.
-       Автоматжуулсан тестэд гарах хүндрэл: Анх ASP.NET-ийн дизайнерууд платформоо бүтээж байхдаа автоматжуулсан тест нь өнөөдрийнхтэй адил веб хөгжүүлэлтэнд ийм чухал байр эзлэнэ чинээ төсөөлөөгүй байжээ. Учир нь ийнхүү нягт уялдаа холбоотой архитектур нь тест явуулахад хэзээ тохирохгүй юм.
ASP.NET хөгжсөөр л байна. Хэдийгээр үсрэнгүй хөгжил биш ч гэсэн Хувилбар 2.0-д стандарт хэрэгслүүдийг нэмснээр хөгжүүлэгчийн бичих код багассан, 2007 онд AJAX-ийг нэвтрүүлснээр хэрэглэгчийн талын кодуудыг дэмжиж, илүү энгийн байдалд ойртуулсан, Хамгийн сүүлд гарсан 4.0 хувилбарт HTML-ийн зохисгүй хэрэглээг бууруулсан гэх мэт олон олон өөрчлөлтүүдийг дурьдаж болно.

Үргэлжлэл бий.

By Boldkhuu Batbaatar with 2 сэтгэгдэл

2 сэтгэгдэл:

  • @Anonymous: Тийм ээ. Яагаад MVC хэрэгтэй талаар бичихийн тулд эхлээд өмнөх технологийн талаар бичих нь зүйтэй гэж бодсон. "Үргэлжлэл бий" гэснийг хараад энэ нийтлэл дутуу гэдгийг лав ойлгосон байх. Үргэлжлүүлж бичих ёстой байсан боловч миний судалгааны чиглэл таарахаа больж, энэ сэдвээс цагаа харамлахаас өөр аргагүй болчихлоо.