RSS

ASP.NET MVC

21 Aug


ASP.NET MVC

MVC гэж юу вэ?

Asp.net вэб хөгжүүлэгчдэд зориулагдсан стандарт вэбийг цаашид хөгжүүлэхэд илүү амар хялбар болж өгсөн бөгөөд MVC нь давхарга буюу Layerууд хоорондын хараат байдлыг багасгасан юм.

MVC гэж юу вэ? Хэний бүтээл вэ?

MVC гэдэг нь ModelViewController гэсэн үгний товчлол юм. Энэ загвар шийдэл нь давхрага хоорондын холбоог багасгасан нь илүү хүчирхэг, цаашид хөгжүүлэхэд нэн тохиромжтой болгожээ.ASP.net MVC нь ASP.net Web Applicationii framework –н компонэнт бөгөөд вэб хөгжүүлэгчидэд MVC паттернийг ашиглах боломжтой. MVC нь Microsoft-эд бүтээгдээгүй юм. (http://en.wikipedia.org/wiki/Model-view-controller )

MVP гэж юу вэ? MVC –с хэр ялгаатай вэ?
MVP (Model-View-Presenter) ба MVC (Model-View-Controller)хоёула давхарга хоорондын хамааралыг холбоотой ажиллах байдлыг нь багасгаж өгсөн.
Ерөнхийдөө MVP нь MVC-тэй төстэй. MVP нь компонентэд суурилсан График Юнит Интерфэйс аппликэшн /*GUI application*/ -д илүү тохиромжтой.

MVC-гийн зарим ашигтай талууд юу вэ?
– Вэб хөгжүүлэхэд илүү хялбар болсон
– Шинэ хүчирхэг шийдэлтэй вэб хийж боломжтой болсон.
– MVC нь ASP.Net-н хэсэг учраас нэмэлт Built-in –х хангагдана.
– Өөр дээрээ Тест хийх боломжоор хангагдсан тул илүү бодитой найдвартай болсон.

Asp.net Web Forms VS Asp.net MVC хооронд нь жишвэл?
Хөгжүүлэгч хүн эдгээр 2ийн аль алин дээр нь ажиллаж болно гэхдээ шийдэл нь 2өөр замаар хийгдэж байгаа гэдэгт оршино.
Хэрэв Asp.net Web Formийг сонгосон бол Та:
– Илүү хураангуй контролд дуртай .
– Найдвартай ажиллахаас илүү Вэбээ хурдан хийхийг зоридог .
– Inline code бичихээс зайлхийхыг хүсдэг бол.
– МVC загварыг илүүд үзэхгүй байгаа бол та Asp.Net Web Forms ,Page controller.-ийг сонгож болно.
Ажиллах процессийг ойлгох:
Юуны өмнө web request-г UrlRoutingModule-аар дамжуулна. Энэ нь HTTP module юм. Module нь хүсэлтийг задлан route хэсэг рүү оруулдаг. UrlRoutingModule object нь эхний route objectийг сонгож тухайн хүсэлттэй харьцуулалт хийж тохируулна. Хэрэв тохирох хүсэлт олдохгүй бол UrlRoutingModule object юу ч хийхгүй.

URL заавал тааруулах:
.Net Web Form application Active Server Page нь URL хаяг нь зайлшгүй таарч байх ёстой байдаг. Энэ юуг хэлээд байна гэхээр SomePage.aspx гэж хуудас /web/SomePage.aspx заавал байх хэрэгтэй байдаг. Гэтэл энэ хуудас нь байхгүй байвал өнөөх Page Not Fount – 404 гэсэн хуудсыг харуулдаг. Харин MVC –н хувьд URL хуудасанд хариу өгөхийн оронд контроллер-н үйлдэлд хариу өгдөг болсон байна.
ASP.net Web form – mapped to page.
ASP.net MVC – mapped to controller action.

Ажиллах үйл явц:
1- Вэб аппликешнээс хүсэлт хүлээн авна. – Энэ нь Global.asax файл дотор , Route objectууд нь RouteTable object рүү хийнэ.
2- Routing хийнэ./чиглүүлнэ./- UrlRoutingModule нь RouteData Object.g үүсгэхийн тулд RouteTable collection.д байгаа хамгийн эхний Route Objectийг харьцуулдаг.Энэ нь RequestContext Object-г үүсгэдэг.
3- MVC хүсэлт гүйцэтгэгч үүсгэнэ. MVC request handler – Энэ нь MvcRouteHandler object нь MvcHandler class-н хуулбарыг үүсгэдэг дараа нь үүнийгээ RequestContext рүү дамжуулдаг.
4- Controller үүсгэнэ.
5- Execute Controller –ийг ажиллуулна. MvcHandler нь controller-ийн Execute method-ийг дуудаж ажиллуулна.
6- Үйлдэл дуудах. Invoke action. – Ихэнх controllerууд Controller base классаас удамшсан байдаг.Энэ ControllerActionInvoker ч бас мөн адил юм байна.
7- Execute Result. – Execute ажиллаад бас л return result as type many гэж буцаана./*ViewResult, RedirectToRouteResult, RedirectResult, ContentResult, JsonResult, ба EmptyResult. */
Asp.Net Routing ойлгох:
Asp.net Routing орж ирсэн хүсэлтүүдийг шийдэхийн тулд Routing Table ашигладаг. Routing Table нь таны вэб аппликешн анх ачааллагдах үед үүсдэг. Энэ нь Global.asax file.д байна.
Global.asax file:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MvcApplication1
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801

public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);

routes.MapRoute(
“Default”, // Route name
“{controller}/{action}/{id}”, // URL with parameters
new { controller = “Home”, action = “Index”, id = “” } // Parameter defaults
);

}

protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
}
Жишээ нь:
1. Контроллерийн эхний сегмэнтэд = контроллерийн нэр
2. Хоёр дахь сегмэнтэд = үйлдэл /*асtion*/
3. Сүүлийн сегмэнтэд = ID байрлана.

Контроллерийг ойлгох: Controller
Контроллер нь хэрэглэгч MVC тэй харилцан ажиллаж удирдана. Хэрэглэгч ямар хүсэлт явуулахаас шалтгаалан буцаж хариу үйлдэл хийхээ тодорхойлно.
Контроллер нь ердөө л класс юм байна.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData[“Title”] = “Home Page”;
ViewData[“Message”] = “Welcome to ASP.NET MVC!”;

return View();
}

public ActionResult About()
{
ViewData[“Title”] = “About Page”;

return View();
}
}
}

Энд index(),about() гэсэн 2 method харагдаж байна. Хоёр үйлдэлд хариу үзүүлнэ.
View-ийг ойлгох:
Түрүүийн хоёр метод хоёулаа View буцааж байгаа.View нь HTML markup агуулж байдаг бөгөөд броузер руу агууллагыг илгээнэ.View нь ажиллахдаа яг зөв замд байрлаж ажиллуулах хэрэгтэй юм байна.
Жишээ нь:
HomeController : Controller нь
/HOME/Index = HomeController.Index()
/HOME/About = HomeController.About() гэж ойлгож болно.About нь мөн адил .

Харин view-н хувьд зам нь \views\home\Index.aspx гэж харагдах учир зам өөрчлөгдвөл ажиллахгүй байх аюултай юм.
Routing дээр нэмэлт ойлголт:
Энэ хэсэгт MVC –н нэмэлт хэрэгтэй гэсэн ойлголтуудыг багтаана.
– Шинээр Asp.net MVC application үүсгэхэд application routing хийхэд автоматаар тохируулагдсан байдаг. Routing тохиргоо нь 2 газар байдаг.
– Эхнийх нь , web.config.t байна.
– Үүнд:
system.web.httpModules
system.web.httpHandlers
system.webserver.modules
system.webserver.handlers
гэсэн бүлэг байна.
– Хоёр дахь нь,Global.asax файлд route table үүсдэг.Энэ Global.asax файлд нь онцгой чухал event handler агуулагдана.Аpplication Start() event ажиллах үед route table үүсдэг.
– using System;
– using System.Collections.Generic;
– using System.Linq;
– using System.Web;
– using System.Web.Mvc;
– using System.Web.Routing;

– namespace MvcApplication1
– {
– // Note: For instructions on enabling IIS6 or IIS7 classic mode,
– // visit http://go.microsoft.com/?LinkId=9394801

– public class MvcApplication : System.Web.HttpApplication
– {
– public static void RegisterRoutes(RouteCollection routes)
– {
– routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);

– routes.MapRoute(
– “Default”, // Route name
– “{controller}/{action}/{id}”, // URL with parameters
– new { controller = “Home”, action = “Index”, id = “” } // Parameter defaults
– );

– }

– protected void Application_Start()
– {
– RegisterRoutes(RouteTable.Routes);
– }
– }
– }

controller = Home
action = Index
id = 3

Энэдээс харахад Аpplication_Start()-аас RegisterRoutes.ийг ачааллаж байна. Броузерээс ирсэн хүсэлтийг дамжуулна. Контроллер эхний секшионд харин хоёр дахид нь акшион ,сүүлийнхэд нь ID орж байна.
Хүсэлт ингэж ирсэн байна. URL /Home/Index/3
Хэрэв контроллерийг дүүргээгүй бол систем автоматаар HOME гэж хийж өгнө.Хэрэв action.ийг дүүргэж өгөөгүй бол автоматаар Index гэж хийж өгнө. Хэрэв ID.ийг дүүргэж өгөөгүй бол автоматаар null дүүргэгдэх болно.
Энэ нь өнөөх 404 хуудасыг гаргаж өгдөггүй түлхүүр нь юм болов уудаа.
Контроллерийг үүсгэхдээ:
1.public ActionResult Index()
{
return View();
}
2.public ActionResult Index(string id)
{
return View();
}
3.public ActionResult Index()
{
return View();
}
4.public ActionResult Index(int? id)
{
return View();
}
5.public ActionResult Index(int id)
{
return View();
}

Гэхдээ 5, шиг параметр авахаар контроллерээ зарлачаад хоосон утга өгчихвэл мэдээж алдаа өгч таарах нь байна.

Өөрийн Route үүсгэх:

Global.asax файлд байгаа default route tableийг яаж өөрчлөхийг үзүүлэе.
Ихэнх MVC application-д Default route table нь зүгээр аюулгүй ажилладаг.Гэхдээ , ямар нэгэн тохиолдолд өөрчлөх шаардлага гарна.
Жишээ татая:
Building Blog application байж гэж төсөөл, Броузерээс ирэх хүсэлт ийм байдалтай ирнэ: /archive/12-11-2008/
Тэгэхээр 12-11-2008 гэсэн хүсэлтэд хариу өгөх хэрэгтэй болно.
Default route table нь::
Routes.mapRoute(
“Default”,
“{controller}/{action}/{id}”,
New { controller= ‘Home”, action = “Index”,id=””}
)
Харин өөрийн үүсгэсэн route table:
Routes.mapRoute(
“Blog”,
“Archive/{entryDate}”,
New { controller= ‘Archive”, action = “Entry” }
)
Үүнийг үүсгэхэд дараалал нь их чухал юм. Учир нь Default route table.ийн өмнө нь өөрийн үүсгэсэн routetable.ээ оруулахгүй бол үргэлж default route дуудагдан ажилласаар байх болно.
/Archive/12-25-2009
/Archive/10-6-2004
Гэж хүсэлт ирвэл Archive контроллероос Entry() үйлдэл дуудагдана.
namespace MvcApplication1.Controllers {
public class ArchiveController : Controller {
public string Entry(DateTime entryDate)
{ return “You requested the entry from ” + entryDate.ToString(); }
}
}

Тогтмол route table :
Хэрэв тогтмол үүсгэсэн route Table.ээс action дуудагдахдаа:
routes.MapRoute(
“Product”,
“Product/{productId}”,
new {controller=”Product”, action=”Details”}
);
Контроллерээс Details() дуудагдана:
Using System.Web.Mvc
Namespace MvcApplication1.Controllers
{
Public class ProductController : Controller
{
Public ActionResult Details(int ProductID)
{
Return View();
}
}
}
Ингэж дуудагдах үед хүсэлт
/details/product/23 эсвэл /details/prodect/1 гэж дуудвал тохирох хүсэлт амжилттайгаар дуудагдана. Харин хүсэлтийг /details/product/sagsgdsagdasd гэж өгвөл Details(int productID) гээд өгсөн тул string орж ирэхэд алдаа урт гэгч нь улаан бичиг харуулна.
Үүнээс яаж зайлсхийх вэ?
Regular expression бичих хэрэгтэй юм.
routes.MapRoute(
“Product”,
“Product/{productId}”,
new {controller=”Product”, action=”Details”},
new {productId = @”\d+” }
);
Ингэж бичсэн тохиолдолд зөвхөн тохирох int хүсэлтийг л харуулна. Алдаа бичиг гарахгүй гэсэн үг юм.
Controller дээр нэмэлт ойлголт:
http://localhost/Product/Index/3
гэж хүсэлт ирлээ хэмээн төсөөл,Энэ тохиолдолд ProductController.ийн Index() дуудагдана.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;

namespace MvcApplication1.Controllers
{
public class ProductController : Controller
{
//
// GET: /Products/

public ActionResult Index()
{
// Add action logic here
return View();
}

}
}

Ингэж дуудахын тулд Index() method.ийг заавал Publicаар зарлах хэрэгтэй. Үүийг сайн анхаарах нь зүйтэй учир нь defaultaar private гэж үүсдэг юм.

Буцаж ирэх result types:

1. ViewResult – Represents HTML and markup.
2. EmptyResult – Represents no result.
3. RedirectResult – Represents a redirection to a new URL.
4. JsonResult – Represents a JavaScript Object Notation result that can be used in an AJAX application.
5. JavaScriptResult – Represents a JavaScript script.
6. ContentResult – Represents a text result.
7. FileContentResult – Represents a downloadable file (with the binary content).
8. FilePathResult – Represents a downloadable file (with a path).
9. FileStreamResult – Represents a downloadable file (with

Эдгээр бүгд ActionResult class.аас удамшсан result болно. Ер нь бол ихэнхдээ view.g буцааж байгааг ажигласан байх. Яахав ViewResult ni Browser рүү HTML ийг буцааж байгаа юм. Харин view нь өөрөө дээрээс аль тохиромжтойг буцаана .
Controller үүсгэх:
Энэ хэсэг контроллер яаж үүсгэхийг харуулна.

Контроллерийг үүсгэж нэрлэхдээ заавал сүүлийн suffix нь Controller гэж бичигдэх ёстой. Мөн үүсгэсэн контроллероо Controller folder-т хийхээ мартаж болохгүй. /Үүнийг сайн анхаарах хэрэгтэй юм шүү /
Жишээ нь : ProductController гэхийг Product гээд нэрлэчихэж болохгүй гэсэн үг.

Доорх check.g дарснаар автоматаар action methoduud нь үүснэ гэсэн үг.
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;

namespace MvcApplication1.Controllers
{
public class CustomerController : Controller
{
//
// GET: /Customer/

public ActionResult Index()
{
return View();
}

//
// GET: /Customer/Details/5

public ActionResult Details(int id)
{
return View();
}

//
// GET: /Customer/Create

public ActionResult Create()
{
return View();
}

//
// POST: /Customer/Create

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here

return RedirectToAction(“Index”);
}
catch
{
return View();
}
}

//
// GET: /Customer/Edit/5

public ActionResult Edit(int id)
{
return View();
}

//
// POST: /Customer/Edit/5

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here

return RedirectToAction(“Index”);
}
catch
{
return View();
}
}
}
}

Action үүсгэх:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}

public string SayHello()
{
return “Hello!”;
}

}
}

гээд үүсгэчихэж action үүсгэж зарлахдаа
Public байж болно.
Static,extention,constructor,getter,setter,open generic types, байж болохгүй.
Ref or out parameterийг агуулсан байж болохгүй.
Action нь буцаахдаа string,Datetime,instance of the class ба void .ийг буцаана.
Бас нэг анхаарах зүйл юу гэхээр DeleteMyWebSite() гэсэн action үүсгэж огт болохгүй учир нь Интернэтэд холбогдсон хэн бүхэн таны action.ийг дуудаж ажиллуулж болно.
VIEW дээр нэмэлт ойлголт:
Энэ хэсэгт ASP.net MVC View, View Data, ба HTML helpers ийн талаар хураан ойлголтыг өгнө.
View үүсгэх ,контроллероос датаг яаж View рүү дамжуулах, HTML Helpersийг Viewрүү гаргаж ажиллуулахыг үзэе.
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}

public ActionResult Details()
{
return RedirectToAction(“Index”);
}
}
}

Үүнийг броузерээс дуудахдаа /Home/Index гэж дуудна.
View.t content нэмэх:
\Views\Home\Index.aspx
(%@ Page Language=”C#” Inherits=”System.Web.Mvc.ViewPage” %)

(!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”)

(html xmlns=”http://www.w3.org/1999/xhtml” )
(head id=”Head1″ runat=”server”)
(title)Index(/title)
(/head)
(body)
(div)

The current date and time is
(% Response.Write(DateTime.Now);%)

(/div)
(/body)
(/html)

(% Response.Write(DateTime.Now);%) гэж оруулж болно . (% %) гэсэн делиметр ашиглана.
View.t content-д HTML Helpers ашиглах:
(%@ Page Language=”C#” Inherits=”System.Web.Mvc.ViewPage” %)

(!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”)

(html xmlns=”http://www.w3.org/1999/xhtml” )
(head id=”Head1″ runat=”server”)
(title)Login Form(/title)
(/head)
(body)
(div)

(% using (Html.BeginForm())
{ %)

(label for=”UserName”)User Name:(/label)
(br /)
(%= Html.TextBox(“UserName”) %)

(br /)(br /)

(label for=”Password”)Password:(/label)
(br /)
(%= Html.Password(“Password”) %)

(br /)(br /)

(input type=”submit” value=”Log in” /)

(% } %)

(/div)
(/body)
(/html)

Html helpers нь string , болон HTML elements болох textbox,dropdown гэх мэтийг боловсруулж ажиллуулна.

View Data ашиглах:
Өгөгдлийг контроллероос view рүү дамжуулдаг.
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
public class ProductController : Controller
{
public ActionResult Index()
{
ViewData[“message”] = “Hello World!”;
return View();
}

}
}

Хуудасдаа авч харахдаа :
(%@ Page Language=”C#” Inherits=”System.Web.Mvc.ViewPage” %)

(!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”)
(html xmlns=”http://www.w3.org/1999/xhtml” )
(head id=”Head1″ runat=”server”)
(title)Product Index(/title)
(/head)
(body)
(div)

(%= Html.Encode(ViewData[“message”]) %)

(/div)
(/body)
(/html)

HTML Helpers :
HTML helpers нь методтой адил string буцаадаг.
Энэ бүрэн жагсаалт биш ч гэсэн эдгээрийг MVC д ашиглана:
• Html.ActionLink()
• Html.BeginForm()
• Html.CheckBox()
• Html.DropDownList()
• Html.EndForm()
• Html.Hidden()
• Html.ListBox()
• Html.Password()
• Html.RadioButton()
• Html.TextArea()
• Html.TextBox()

MVC-ийг ашиглах :

Өөрийн прожектийг үүсгэнэ.Гэхдээ үүсгэхээсээ өмнө цонхны баруун дээд талд байгаа .Net FrameWork 3.5 ийн сонголттой байгаа эсэхийг шалгаарай.
Ок товч дарснаар дараах цонх нээгдэнэ.

Үүнд:
Unit testing project-тай үүсгэх эсэхээ сонгоно. Энэ тусдаа тестийн файл үүсгэх эсэхийг шийдэж байгаа хэрэг.

Хаанаас илүү ихийг мэдэж болох вэ?
Эндээс та хичээл болон видео материалуудтай танилцаж болно. http://www.asp.net/mvc.
Зарим хэрэгтэй блогууд:
Phil Haack – http://www.haacked.com/
Scott Guthrie – http://weblogs.asp.net/scottgu/
Stephen Walther – http://stephenwalther.com/blog/default.aspx
Scott Hanselman – http://www.hanselman.com/blog/
MVC ашиглаж хийсэн вэб сайтууд:
http://www.cruvee.com/
http://www.ideavine.net/
http://www.theloungenet.com/
http://www.retaggr.com/
http://www.visitmix.com/
http://www.dimecasts.net/
http://www.39×27.com/home.mvc
http://www.codeplex.com/
http://www.richpictures.co.uk/
https://www.netidme.com/Personal
http://www.jumpthegun.co.uk/
http://www.devtacular.com/

Эх сурвалж: за ямарч байнсан тэнэж явсан чинь миний хард дискен дээр байж байна. Хэнийх юм бүү мэд. Хэрэг болж юу магад гээд байгаагаар нь хуулж, наав.😛 Эзэн нь уншвал уурлуузай😀

 
13 Comments

Posted by on August 21, 2009 in .NET Visual studio, ASP.NET, Learner

 

13 responses to “ASP.NET MVC

  1. perennials in ypsilanti

    May 3, 2013 at 3:36 am

    Wow, awesome blog format! How lengthy have you ever been running
    a blog for? you make running a blog look easy.
    The entire glance of your website is great, let alone the content
    material!

     
  2. zaya

    March 21, 2010 at 5:48 pm

    Энэ чиглэл.р ажиллаж сурч байгаа хүн монголд ховор байдаг ш дээ. би энэ ASP.net-н талаар багагүй юм мэднэ шүү. 3- аад жил судалж байна. Асуух зүйл байвал асууна биз дэ. Энэ маш сонирхолтой ирээдүйтэй чиглэл шүү.

     
  3. bokhoo

    February 16, 2010 at 10:43 pm

    Асуудалгүй болно

     
  4. чинбаа

    February 16, 2010 at 12:34 am

    windows server 2003 дээр ASP.net тохиргоо хийгээд ажиллуулж болохуу. Би сайн мэдэхгүй байнаа. windows server 2003 дээр ашиглаж болдог бол би ямар тохиргоо хийх вэ. энэ талаар туслаач сурмаар л байна.

     
  5. Boldkhuu

    February 8, 2010 at 7:26 pm

    Уг нь ASP.net надад маш их таалагддаг. Гэхдээ энэ “этгээд” Монголд төдийлөн дэлгэрээгүй. Сервер энэ тэр бол олдоно л доо. Одоо бүгдээрээ л JSP гээд л шуурдаг болж. Бас л дажгүй эд байна лээ. Дагаад л шуурахаас. Гэхдээ ASP.net-ээ орхихгүй ээ.

     
  6. bokhoo

    February 7, 2010 at 11:00 pm

    ASP.NET дэмждэг 100% windows үйлдлийн системтэй байх хэрэгтэй баак бол юу ч байж болох байх аа тэгж бодож байна

     
  7. Өлзийбаяр

    February 6, 2010 at 7:54 pm

    Ер нь ASP дээр вэб хийлээ гэхэд хаана байрлуулах уу хост нтр нь ямар юм байдаг болоо

     
  8. bokhoo

    October 27, 2009 at 3:13 pm

    😛

     
  9. Энхбилэг

    October 27, 2009 at 1:44 pm

    Наадхыг чинь хийсэн хүн маш их уурлах байхдаа би таних л юм байна. Хүний оюуны бүтээлийг олон нийтэд зөвшөөрөлгүй нийтэлсэн гэж ккккк Бөхөө алуулсаан хэхэ

     
  10. bokhoo

    August 25, 2009 at 11:44 am

    тийм хүчний юм судалдаггүй ш дээ хэхэ

     
  11. Tsolmon

    August 25, 2009 at 9:34 am

    Монголд энэ технологи хэр хүчээ авч байгаа , хэр өргөн ашиглагддаг юм бэ

     
  12. bokhoo

    August 24, 2009 at 4:50 pm

    сайн мэдэхгүй юм аа. юуг хэн яаж хийж байгаагаасаа л хамаарах байх…

     
  13. Tsolmon

    August 24, 2009 at 4:37 pm

    Asp.net дээр веб хөгжүүлэхэд хэр хурдан байдын болдоо

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: