Categories
ASP.net

សេចក្តីផ្តើមក្នុង ASP.NET MVC

មាតិកា

I.   សេចក្តីផ្តើម

II. ការប្រើប្រាស់ Model – View – Controller

III. គុណសម្បត្តិរបស់ MVC Pattern

IV. ASP.NET MVC vs Web Forms

I.          សេចក្តីផ្តើម

ASP.NET MVC គឺជា web development framework របស់ Microsoft ដែលប្រើប្រាស់ .NET Framework។ ប្រសិនបើយើងចង់បង្កើត Web application ដោយប្រើប្រាស់ .NET Framework ដូចជា C# ឬ VB.NET។ ASP.NET គឺជាជម្រើសដើម្បីយកទៅបង្កើតវាឡើង។ ក្នុងមេរៀននេះយើងនឹងពន្យល់អ្វីជា MVC ហើយហេតុអ្វីបានជាយើងត្រូវប្រើប្រាស់ ASP.NET MVC ជំនួសអោយ ASP.NET Web Forms។ MVC មកពីពាក្យថា Model – View – Controller។ Model View Controller មានលក្ខណៈទូលំទូលាយ ដែលវា adaptedជាមួយ architecture សម្រាប់ World Wide Web applications ក្នុងទម្រង់ programming language។ ASP.NET​ supports នូវ development models ចំនួន៣ គឺ Web Pages, MVC និង Web Form។

II.          ការប្រើប្រាស់ Model – View – Controller

MVC មាននូវប្រភេទនៃ Objects ចំនួន ៣ (Model, View និង Controller) ។ Model គឺជា application object។ View គឺជា screen presentation ហើយ Controller គឺជាការកំណត់វិធីសាស្រ្តដែល user interface ធ្វើការ reacts ទៅលើ user input។ ចូរពិនិត្យមើលការបកស្រាយដោយសង្ខេបដូចខាងក្រោម៖

  1. Controller

Controller គឺជា Input control។ ដំបូងឡើងវា execute នៅពេលដែល user ធ្វើការ sends នូវ request។ បន្ទាប់មក action នឹងធ្វើការកំណត់ថាតើ view ណាមួយនឹងត្រូវបង្ហាញឡើង។ វាភ្ជាប់ទៅកាន់ទាំង View និង Model។ វាអាច send command ទៅកាន់ associate View ដើម្បីធ្វើការផ្លាស់ប្តូរ presentation របស់ view ហើយក៏អាច send នូវ command ដើម្បីផ្លាស់ប្តូរ state របស់ model។ វាដំណើរការក្នុងមធ្យោបាយដែលវា read data ចេញពី view (controls user input) ហើយបញ្ចូន input data ទៅកាន់ model។ Controller អាច associated ជាមួយនឹង Multiple views មួយវិញទៀតយើងអាចកំណត់ multiple actions ក្នុង controller ហើយពឹងអាស្រ័យទៅលើ action ដែល associated view ត្រូវបានបង្ហាញឡើង។ វាមានលក្ខណៈស្រដៀងទៅនឹង Business layer នៃ 3-tier architecture។

  • Model

Model ត្រូវបានគេប្រើប្រាស់ដោយអមមកជាមួយនឹង View ហើយនឹង Controller។ វាបង្កើតនូវ output ដែលបានកែប្រែទៅលើ view។ ជារឿយៗ Model objects​ ធ្វើការ retrieve data ចេញពី database ហើយ store data ទៅក្នុង database។ វា handles ទៅលើ logic សម្រាប់ application’s data domain។

  • View

View គឺជា components ដែលបង្ហាញទៅលើ application’s User Interface (UI) ម្យ៉ាងវិញទៀត វាគ្រប់គ្រងដើម្បីបង្ហាញព័ត៌មាន។ ជារឿយៗ View ត្រូវបង្កើតចេញពី model data។ យើងអាចធ្វើការភ្ជាប់ multiple views ទៅកាន់ single model ដើម្បីផ្តល់នូវ presentations ផ្សេងៗគ្នា (View/Model decoupling) ។

III.          គុណសម្បត្តិរបស់ MVC Pattern

ខាងក្រោមនេះគឺជាគុណសម្បត្តិមួយចំនួនក្នុងការប្រើប្រាស់ MVC pattern

  • Business Logic គឺ independent ដូចនេះវាអាចត្រូវបានប្រើប្រាស់ចេញពី presentation tier ផ្សេងៗគ្នា
  • Application បានបែងចែកជា៣ប្រភេទគឺ Input logic, business logic និង UI logic ដូច្នេះវាងាយស្រួលក្នុងការក្នុងការគ្រប់គ្រងនូវភាពស្មុគស្មាញនៃ application
  • វាមិនប្រើប្រាស់ viewstate និង postback
  • វាផ្តល់នូវ support ដ៏ល្អប្រសើរសម្រាប់ test-driven development (TDD)
  • ដោយការផ្តាច់ចេញពីគ្នាជា៣ផ្នែក (Model-View-Controller) យើងក៏អាចសម្របសម្រួលដើម្បីធ្វើ unit testing។ ផ្នែក presentation layer របស់យើងអាចត្រូវបាន test ដោយសេរី ដោយ Model និង Controller

IV.         ASP.NET MVC vs Web Forms

  • Web Forms embraces the RAD philosophy ខណៈដែល ASP.NET MVC is TDD-oriented
  • ASP.NET Web Forms ប្រើប្រាស់ server control ប៉ុន្តែ ASP.NET MVC ពឹងផ្អែកលើ HTML Controls
  • ការអភិវឌ្ឍន៏ Web application ជាមួយ web form គឺមានភាពងាយស្រួលបើប្រៀបធៀបទៅនឹង ASP.NET MVC ពីព្រោះ ASP.NET MVC web application ទាមទារនូវអ្នកជំនាញ HTMLនិង Javascript
  • ការបង្កើត Web application ជាមួយនឹង ASP.NET MVC architecture មានលក្ខណៈperformanceស្រាលជាង ប្រសិនបើប្រៀបធៀបជាមួយនឹង ASP.NET Web Forms ដោយសារតែ ASP.NET Web Form applications ធ្វើការ store នូវ view state នៅលើ page ដូច្នេះ performance មានលក្ខណៈធ្ងន់ជាងគេ។
  • ASP.NET MVC ផ្តល់នូវ Powerful URL mapping ដូច្នេះវាប្រសើរសម្រាប់ SEO

By sysomeho

Ho Sysome obtains B.S. degree in Computer Science from Phnom Penh Internation University (PPIU) in 2013 and currently studying Master of Science in IT (MSIT) at Asia Euro University (AEU). He worked as an IT Officer at Microfinance Institute and Bank in Phnom Penh. He is familar in programming language such as VB.NET, Java (Java2EE, Spring), Codeigniter, Laravel, mysql, sql server and so on. He enjoys sharing knowledges, learns from other, and develop himself.
Find him on Facebook: Spy Ro, Linkedin: Sysome HO.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.