Thursday, March 19, 2009

ASP.NET ëåêö ¹2

ASP.NET-ийн тухай
ASP.NET нь вэб программ (web appliction) vvсгэхэд зориулагдсан. Энэ нь ASP (Active Server Pages)-ийн бvх боломжууд дээр нэмж COM (Component Object Model) контролууд ба RAD (Rapid Application Development) технологийг UI (user interface)-жуулж загварчлахад зориулан оруулсан. Мэдээж vvний vр дvнд маш хурдан, єргєн боломжтойгоор вэбийг хєгжvvлэх юм.

ASP.NET-ийн ¿¿ñýë õºãæèë
ASP – èéã àíõ 1996 îíä Microsoft êîðïîðàöè ãàðãàñàí. Ýíý íü õàðüöàíãóé øèíý òåõíîëîãè áà ºìíºõ õóâèëáàðûã íü õºãæ¿¿ëýí ãàðãàñàí. ASP – èéã 2 ¿å øàòàíä õºãæ¿¿ëäýã. ¯¿íä:
• Common Gateway Interface (CGI) – õýðýãëýã÷èéí èíòåðôåéñ
• Interner Server Application Programming Interface (ISAPI) – ïðîãðàìûí èíòåðôåéñ
̺í 1998 îíä ASP – èéí øèíý õóâèëáàðûã ãàðãàñàí áà ýíý íü ASP 2.0 õóâèëáàð þì. ¯¿íèé äàðààãààð 2.0 õóâèëáàðûã íü ººð÷ëºí ñàéæðóóëæ ASP 3.0 õóâèëáàðûã ãàðãàñàí áà ýíý íü ïëàòôîðì õàìààðàëã¿é àæèëëàäàã áîëñîí.

Web Form-ууд
Web Form-ууд нь ASP.NET-ын амин сvнс нь юм. Web Form-ууд Windows Form-уудтай маш тєстэй. Є.х тvvн дээр оршиж буй контролууд нь property, method, event-vvдээр хангагдсан. Web Form-ууд нь харагдах хэсгийг агуулсан .ASPX єргєтгєлтэй файл, формын код хэсэг нь класс файлд хадгалагдана.
Хуудас хэрэглэгчийн браузераас дуудагдахад .ASPX хуудас, классыг буй DLL файлын хамт санах ойд ачаалагдана. Энэ vед init болон load vзэгдлvvд vvсэх болно. Init vзэгдэл нь .NET Framwork-ын дотоод зохицуулалтын vед vvснэ. Харин Load vзэгдэл нь хуудсыг хамгийн анх дуудагдахад, эсвэл хэрэглэгч дарсан товчлуур болон бусад контолын нєлєєгєєр дахин унших vед дуудагдана. Хуудас бvрэн хэрэглэгдээд дууссан бол Unload vзэгдэл vvсэн санах ойгоос чєлєєлєгдєх болно. Хэрэглэгч Web Form-ын товчлуур дээр дарах vед энэ нь сервер лvv дамжин, хуудасны бvх мэдээлэл ижил хуудас руу байрлуулагдан, хуудас дахин vvсэн, vзэгдэл ажиллах болно.

Контролд тулгуурласан програмчлал
Контролд тулгуурласан програмчлал нь энгийн програмчлалтай нэгэн ижил ойлголт. Десктоп програм хангамжийн сангууд контролд тулгуурласан програмчлалд ашиглагддаг. Програмчлал —Програм нь контролуудын цуглуулгаас тогтоно Контрол бүр нь өөр өөрийн үүрэгтэй. Хөгжүүлэгч контролуудын онцлогоос хамааран ашиглах боломжтой

Веб програм хийх контролд тулгуурласан програмчлал
ASP.NET технологи нь веб програм хөгжүүлэхэд контролд тулгуурласан програмчлалыг ашиглана
• Server-side обьектуудыг хуудас дээр үүсгэнэ
• Server-side обьектууд нь HTML байдлаар харагдана
• HTTP стандартын Request/Response архитектур дээр суурилна
Зарим десктоп програмын ойлголтуудыг агуулна

Server-side контролууд
Веб форм нь:
• Server-side сервер дээр байрладаг бөгөөд хэрэглэгчид HTML байдлаар харагдана.
• HTML-дrunat=server бичлэгийгашиглан .aspxхуудас тодорхойлно
• Server-side код нь ID ашиглан тодорхойлогддог
• Контролууд нь Page классаас удамшсан өөрийн классд гишүүн өгөгдөл болж нэмэгддэг.
Server-side контролууд төлөвөө удирдах боломжтой
• GET request –ээр хуудас анхны утгаа авдаг (URL)
• POST request –ээр POST body-д тодорхойлсон утгуудыг илгээнэ

HTML контролууд
Та HTML контролуудыг FrontPage болон бусад редакторуудыг ашиглан хэрхэн vvсгэж ашиглахыг мэдэх биз ээ. Web Form-ууд дээр ч мєн vvнийг хэрэглэх боломжтой. Жишээ нь та textbox vvсгэх гэж буй бол дараах кодыг "<", ">" хашилтанд бичнэ. input type=”text” id=txtFirstName size=25. Дараах контрол vvснэ.
VS.Net хэрэглэн vvсгэж буй бол Toolbox цонхоос (HTML tab) TextField-ийг сонгон, HTML хуудас дээр зурахад хангалттай. Ta ID-г контрол бvрдээ оноож єгснєєр client-side JavaScript кодыг бичиж vзэгдлvvдийг ашиглах боломжтой болно.

Жишээ нь:
OnBlur - контрол фокусаа алдах vед
OnChange – контролын утга єєрчлєгдєхєд
OnClick – контрол дээр товшилт хийхэд
OnFocus – контрол фокустай болоход
OnMouseOver – хулгана контрол дээгvvр зєєгдєхєд

Web Service-vvд
ASP.NET-ийн єєр нэг чанар бол Web Service-vvдийг vvсгэх. Web Service нь HTTP интерфайсээс дуудагддаг объект юм. Энэ объект нь янз бvрийн vйлчилгээ vзvvлдэг ба ямар ч єгєгдлийг XML форматаар буцаадаг. Энэ объект нь SOAP (Simplified Object Access Protocol)-оор дамжин дуудах процедурын нэр, процедурын параметр руу дамжуулах єгєгдєл бvхий зарим XML-ийг дуудагддаг. Web Service нь .NET-ийн ямар ч хэл дээр бичигдэн, аль платформ дээр ажиллана. Web Service-ийг .NET дээр vvсгэхэд Public method-ууд бvхий класс vvснэ. Энэ Public method бvр нь Web Service vзvvлэхэд дуудагддаг. Та .NET дээр vvсгэсэн Web Service-ийг компляци хийхэд холбоо бvхий файлууд автоматаар vvсэх болно. Энэ файлууд нь Web Service-ийн танилцуулга, Web Service-ийг нээж олоход хэрэглэгдэнэ.

PHP болон бусад Вэб програмчлалын хэлvvдийн ялгаа

PHP is a server-side, cross-platform, HTML embedded scripting language. РНР бол сэрвер талын, платформ хамааралгvй, HTML холилдсон, вэб хэл. Дээрх тодорхойлолтыг тайлбарлъя.
1. Сэрвер талын -- Бvх РНР кодууд сэрвер дээр байрлах бeгeeд сэрвер дээр eгeгдeл нь гvйцэтгэгдэнэ.
2. Платформ хамааралгvй -- РНР кодыг Unix, Windows NT, Macintosh болон бусад vйлдлийн системтэй сэрвер дээр ажиллуулж болно.
3. HTML холилдсон -- РНР кодыг HTML кодын дотор хольж болно.
4. Вэб хэл -- Вэб хэл нь програмын хэлээс ялгаатай. Вэбийн хэлээр бичсэн програм нь браузэрын туслалцаатайгаар ажилладаг бол програмын хэлээр бичсэн програм eeрee биеэ дааж ажилладаг.
Тэгэхээр РНР бусад вэб хэлээс юугаараа давуутай вэ? Вэб барихад танд байгаа бусад сонголтуудаас дурдвал HTML, CGI, ASP, JSP ба CFML.
1. HTML -- Hyper Text Markup Language
2. CGI -- Common Gateway Interface
3. ASP -- Active Server Pages
4. JSP -- Java Server Pages
5. CFML -- Cold Fusion Markup Language
РНР бусдаасаа хурдан, найдвартай ажилладаг, сурахад хялбар, олон vйлдэл гvйцэтгэдэг, ёрeнхийдee "супер". Тэгэхээр бусад хэлний тухай тайлбарлахгvй бол хангалтгvй сонсогдож байна. CGI код бичихийн тулд вэбмастер Perl, Python эсвэл C зэрэг хэл мэддэг байх шаардлагатай. Дээрх хэлvvд бол вэб хэл биш, програмын хэл. Програмын хэл сурахад цаг, хeдeлмeр, мeнгe их гарздана. Ёрдee л вэб програм бичихийн тулд бvтэн програмын хэл сурах бол илvv vйлдэл. Хэрвээ вэбээс програмчлал руу шилжих зорилготой байгаа нeхцeлд бол ондоо хэрэг. HTML хэл бол вэбийг бvтээх хэл болохоос ямар нэг vйлдэл гvйцэтгэх чадваргvй. Иймээс зeвхeн STATIC хуудас хийхэд хэрэглэнэ. ASP код бичихийн тулд вэбмастер Visual Basic програмын хэлийн VB Script хэл эзэмшсэн байх шаардлагатай. ASP.NET нь вэб программ (web appliction) vvсгэхэд зориулагдсан. Энэ нь ASP (Active Server Pages)-ийн бvх боломжууд дээр нэмж COM (Component Object Model) контролууд ба RAD (Rapid Application Development) технологийг UI (user interface)-жуулж загварчлахад зориулан оруулсан. Мэдээж vvний vр дvнд маш хурдан, eргeн боломжтойгоор вэбийг хeгжvvлэх юм. JSP бичихэд JAVA програмын хэл мэддэг байх хэрэгтэй Энэ технологи нь Jakarta Tomcat web server-г ашигладаг. Програмчлалын хэрэгслийн хувьд JDK буюу Java Development Kit-г ашигладаг. Энэ нь .jsp eргeтгeлтэй файлыг Tomcat web server Java Run Time Enviromnet буюу JRE-г ашиглан түүнийг боловсруулж үр дүнг web browser-руу илгээдэг. JSP технологийн бусад web програмчлалын технологиудаас ялгагдах давуу тал нь тэрээр JDK-ийн eндeр боломж бүхий классуудыг ашиглах болон eeр дээрээ Java-ийн сүлжээний технологийг ашиглах бүрэн боломжийг олгож eгдeг. CFML Cold Fusion бол РНР -д дeхeж ирнэ. Сурахад хялбар, HTML холилдсон вэб хэл. Тагуудыг ашиглаж бичдэгээрээ бусдаасаа ялгаатай. Тэгэхээр зарим хvн JavaScript-н талаар бодож байж магадгvй. JavaScript хэл бол сэрвер талын бус, хэрэглэгчийн талын вэб хэл. Иймээс бидэнд хэрэгтэй гэж бодохгvй байна. Яагаад гэхээр бид нар гол нь сэрвер талын вэб програм бичих талаар хойшдоо хэлэлцэх болно. РНР -ын жинхэнэ ид шид нь датабэйстэй холбогдож дата буюу мэдээлэлтэй харьцах. Бусад сэрвер талын вэб хэлvvдээс олон тeрлийн датабэйстэй холбогдож чаддагаараа онцлог.
Доор хэдхэнийг дурдвал:
MySQL
Oracle
Access
SQL
PostgreSQL
mSQL
SyBASE
...
Бусад жишээнээс дурдвал ASP хуудсууд Microsoft Access-тэй харьцдаг бa 2-уулангийх нь ард Microsoft байж байхад РНР бараг бvх тeрлийн датабэйс програмтай холбогдож чаддагаараа давуу.

Java Service Page
Java Service Page-нь Sun Solaris корпорацийн хөгжүүлэн бий болгосон Java програмчлалын технологи дээр үндэслэсэн web програмчлалын хэрэгсэл юм. Энэ технологи нь Jakarta Tomcat web server-г ашигладаг. Програмчлалын хэрэгслийн хувьд JDK буюу Java Development Kit-г ашигладаг. Энэ нь .jsp өргөтгөлтэй файлыг Tomcat web server Java Run Time Enviromnet буюу JRE-г ашиглан түүнийг боловсруулж үр дүнг web browser-руу илгээдэг. Tomcat web server өөр нэг онцлог тал нь өөрөө Apache web server-ийн хөгжлийн ондоо нэг хувилбар юм. Өөрөөр хэлбэл Apache технологийг Java технологитой хамтран ашиглах бололцоог олгосон явдал юм. JSP технологийн бусад web програмчлалын технологиудаас ялгагдах давуу тал нь тэрээр JDK-ийн өндөр боломж бүхий классуудыг ашиглах болон өөр дээрээ Java-ийн сүлжээний технологийг ашиглах бүрэн боломжийг олгож өгдөг. JSP кодыг *.jsp өрөгөтгөлтэй файлд хадгалах бөгөөд ASP-ийн tag-ийг хэрэглэдэггүй мөн PHP-ын tag-г хэрэглэдэггүй, шууд бичдэг. Server үүнийг java код хэмээн таньж түүнийг compiler-т илгээж үр дүнг browser-т илгээдэг. ASP, PHP-ийн адил код нь сервер дээр боловсруулагдаж хэрэглэгч рүү илгээгддэг. Иймээс хэрэглэгч browser дээрээс кодыг харах боломжгүй байдаг. Хамгийн гол давуу чанар нь Java технологийн хэрэгжилт бөгөөд Oracle, PostgreSql, Tyrix, MySql баазуудтай болон аль ч төрлийн ODBC холболт хийсэн баазруу холбогдож чаддаг. Гэхдээ энэ бүх боломжийг JSP ямар ч өөрчлөлтгүйгээр JDBC-г бүрэн авч ашигладаг.
Энд panel.tag file-д өөрийн гэсэн tag-г тодорхойлж түүнийгээ ene.jsp хуудсанаас <%@ %> tag-ын тусламжтай tags гэсэн folder дахь бүх tag file-ийг import хийж түүнийгээ ашигласан байна. Мөн өөр нэг давуу тал нь өөрийн үүсгэсэн tag-д аргумент дамжуулах боломж юм.

JSP-Cookies
Cookie нь вэб серверээс клиент руу өгөгдлийг маш бага хэмжээгээр явуулж байдаг. Cookie нь вэбээр аялах үед үүссэн клиент дээрх мэдээллийн нэг хэсэг бөгөөд text төрлийн багахан файл юм. Мөн клиент дээр хадгалагдсан бага хэмжээний өгөгдлийг ашиглан урьд нь хандаж байсан сайтыг таних. Cookie – хэрэглэгчийн browser дээр ямар нэгэн хувьсагчийг үлдээх үйлдлийг хэлнэ. Хувьсагч нь тодорхой утгатай эсвэл утгагүй байж болно. cookie тодорхой хугацааны дараа арилдаг байж болно.
Вэб сайт дээр ямар нэгэн өгөгдөл гарч ирэхээс өмнө Setcookie дуудагдсан байх ёстой.

Cookie class
JSP cookie нь javax.servlet.http.Cookie class-ийн нэг обьект юм. Энэ класс нь coolie-г үүсгэдэг. Мэдээллийг бага багаар вэб браусер луу явуулж тэндээ хандгалан дараа нь сервер луу буцаан илгээдэг.

Хэрэглэгийн IP хаяг олох
Тухайн хэрэглэгчийн IP хаягыг шалгаж мэдсэнээр аль улсаас холбогдож байгааг мэдэж болдог. Мөн шаардлагатай бол дэлгэрэнгсй бусад мэдээлэлийг нь олж болно.

$ip = getenv("REMOTE_ADDR");
print "Taны ip хаяг: ".$ip."";
$REMOTE_ADDR, $_SERVER["REMOTE_ADDR"];, getenv("REMOTE_ADDR"); эдгээр нь бvгд ижилхэн хэрэглэгчийн IP хаягийг олох vvрэгтэй.
Хуудас автоматаар шилжvvлэх
window.location="(http://javascriptkit.com"
//change below target URL to your own
var targetURL="http://namkhai.blogspot.com/"
//change the second to start counting down from
var countdownfrom=10
var currentsecond=document.redirect.redirect2.value=countdownfrom+1
function countredirect(){
if (currentsecond!=1){
currentsecond-=1
document.redirect.redirect2.value=currentsecond
}
else{
window.location=targetURL
return
}
setTimeout("countredirect()",1000)
}
countredirect()

IP хаягаар нь шvvж хандах эрхийг нь хаах
Жишээ нь: Манай компани ажилчдынхаа pc- г зарим сайтруу, мөн yahoo мессенжер лүү орох эрхийг нь хаагсан байдаг.Бvр мэдээллийн технелогийн хэлтсийнхээ хүмүүсийнхээ мессенжерийг хvртэл хаадаг шүү. Доорхи PHP код нь таны вэб сайтыг хэрэглэгчдээс хэн нэг нь таалагдахгvй байгаа бол IP хаягаар нь шvvж хандах эрхийг нь хязгаарлах болно
$filename = "blocked.txt" // 1
$handle = fopen($filename, "r"); // 2
$addr = fread($handle, filesize($filename));
fclose($handle);
$ip = $REMOTE_ADDR; // 3
if(eregi("|".$ip."|", $addr)){ // 4
echo "Та хандах эрхгvй. Таны сайтруу хандах эрхийг хаасан байна.";
exit(); // 5
}else{
echo "Тавтай морилно уу."; // 6
}

Эхлээд та ямар нэгэн .TXT (жишээ нь blocked.txt) төрлийн файл нээж vvсгээд тэр дотроо хаах IP хаягнуудаа |192.168.1.1| гэх мэт бvтэцтэй бичих хэрэгтэй. Мэдээж олон хаягыг vргэлжлvvлэн бичиж болно. / Ж.нь: |127.168.1.1||255.255.255.255||192.168.1.255|/

1 - Хаагдсан IP хаягнуудыг бичиж хадгалсан TXT файлын нэр / өөр директорт байгаа бол замыг нь цуг бичнэ/

2 - Энэ хэсэгт "blocked.txt" файлын агуулгыг $addr хувьсагчид олгож байна.

3 - Хэрэглэгчийн IP хаягыг олж байна.

4 - eregi(); функц нь тэмдэгт мөр дундаас зааж өгсөн тэмдэгтийг /мөр байж болно/ хайж шалгадаг ба хэрэв байвал TRUE байхгvй бол FALSE утга буцаадаг.
Манай энэ тохиолдолд Хэрэглэгчийн IP хаяг "blocked.txt" бичигдсэн эсэхийг шалгаж байна.

5 - IP хаяг "blocked.txt" файлд бичигдсэн байгаа болохоор цааш хандах эрхийг хааж байна. exit(); функц нь vйлдлийг шууд зогсоодог ба энэ мөрөөс цааш хуудас уншигдахгvй шууд зогсоно. IP нь хаагдсан хэрэглэгч энэ мөрөөс цаашхи ямарч мэдээлэл vзэж чадахгvй гэсэн vг.

No comments:

Post a Comment