Search
Search titles only
By:
Search titles only
By:
Log in
Register
Search
Search titles only
By:
Search titles only
By:
Menu
Install the app
Install
Forums
New posts
All threads
Latest threads
New posts
Trending threads
Trending
Search forums
What's new
New posts
New ads
New profile posts
Latest activity
Free Ads
Latest reviews
Search ads
Members
Current visitors
New profile posts
Search profile posts
Contact us
Latest ads
Ad icon
Iptv
musicking
Updated:
Yesterday at 9:52 AM
Ad icon
ZTE MF283U 4G Unlocked Router (Used)
ayanthamaxi
Updated:
Jul 19, 2026
ලංකාවේ හොඳම උපකාරක පන්ති සහ ගුරුවරුන් එකම තැනකින් - TopTuition.lk
dulithapathum
Updated:
Jul 18, 2026
Colombo
RidhMathraa ’26 🎶✨
Tmadhusanka
Updated:
Jul 15, 2026
Ad icon
Colombo
PXN V10 Pro Direct Drive Racing Wheel (Under Warranty)
Abdur Rahman
Updated:
Jul 15, 2026
Electronics
Vehicles
Property
Search
Reply to thread
Forums
General
Education
Mvvm pattern සරලව
Get the App
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="nkt" data-source="post: 20182403" data-attributes="member: 544496"><p><strong>Mvvm pattern එක සරලව</strong></p><p></p><p><span style="font-size: 15px"><span style="font-size: 12px">මම අද කියල දෙන්නේ mvvm (model-view-viewmodel) basics ටිකක්.</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">programming කරන අය දන්නව ඇති app එකක code ලියද්දි හොද පැහැදිලි plan එකක් තියෙන්න ඕන කියල .. Windows app ලියද්දි භාවිතා කරන බොහොම ප්රසිද්ද pattern එක mvvm pattern එක ... ඉතින් මොකද්ද මේ mvvm pattern එක ..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">සැලකිය යුතුය්:= මම හිතනවා ඔබට windows programming/ c# ගැන මුලික දැනුමක් තිබේ කියා ..<img src="/styles/default/xenforo/smilies/default/yes.gif" class="smilie" loading="lazy" alt=":yes:" title="Yes :yes:" data-shortname=":yes:" /> </span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">මෙතැනදී මුලික කරුණු 3ක් තියෙනවා .</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">1.model</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">2.viewmodel</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">3.view </span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">ඒවගේම 4 හැටියට services ගන්න පුළුවන් .</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"><strong><span style="font-size: 15px">model</span></strong></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">මේක තමා අපේ business object එක .. අපි හිතමු අපේ app එක contact app එකක් කියල .. එතකොට මේකේ model එක හැටියට අපිට පුළුවන් contact object එකක් සලකන්න .. එකද තතියෙන්න පුළුවන් Name,Number වගේ properties..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"><strong><span style="font-size: 15px">view</span></strong></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">view එක කියන්නේ අපේ app එකේ page එකක් ,, නැත්නම් window එකක් ..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">මෙතැනදී මෙයාගේ code behind file එක තිඑන්න පුළුවන් visuals සම්බන්ද code විතරය්.. business Logic තියෙන්න බෑ. මොකද mvvm pattern එක මූලධර්මයක් තමා view එක model එක ගැන මොනවත් දැනගන්න බෑ කියන එක ..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"><strong><span style="font-size: 15px">viewmodel</span></strong></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">මේක තමා view එක හා model එක අතර ඉදගෙන එදෙක අතර ගනුදෙනු කරන්නේ . හරියට සමාදාන විනිශ්චයකාරයෙක් වගේ. මොකද view එක කැමති නෑ කෙලින්ම model එක ගැන දන ගන්න.. ඇත්තටම කිව්වොත් view එක දන්නේ නෑ model එකේ තියෙන දෙවෙල් කොහොමද පාවිච්චි කරන්නේ කියල. viewmodel එක තමා දන්නේ model එකේ තියෙන දේවල් අරගෙන view එකට තේරෙන විදියට සකස් කරන්න .. </span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">හිතන්න view එකට ඕන contact එකක් user ට පෙන්නන..හැබය් view එක දන්නේ නෑ contact එක කොහෙද තියෙන්නෙ , එකේ propertys මොනාද කියල ... දැන් තමා viewmodel එක වැඩ පෙන්නන්නේ.. viewmodel එක view එකට අවශ්ය contact එක තියෙන තැනකින් (database හෝ web service) අරගෙන එකේ තියෙන propertys view එකට තේරෙන විදියට සකස් කරනවා . නැත්නම් view එකට ලබාගන්න පුළුවන් විදියට එකේ properties expose කරනවා.. </span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">ඒවගේම අපි හිතමු user contact එකක් edit කරලා save කර කියල .view එක දන්නේ නෑ මේක කොහොමද කරන්නේ කියල ..නමුත් viewmodel එක දන්නවා . ඉතින් view එක viewmodel එකට කියනව මෙන්න මේ contact එක save කරන්න ,,කරලා එකේ සාර්ථකත්වය ගැන මට කියන්න කියල .</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">මෙතනදී තවත් දෙයක් මතක තියන්න ඕන මම උඩ expose කියන වචනය භාවිටකරේ හේතුවක් ඇතිව .. මොකද mvvm pattern එකේ තියෙන තවත් මුලධර්මයක් තමා viewmodel එක view එක ගැන මුකුත් දන්නේ නෑ කියන එක .නමුත් එක ප්රශ්නයක් වෙන්නේ නෑ ,, මොකද view එක දැනගන්න ඕන තමන්ට අවශ්ය viewmodel එක හොයාගන්න . ඒවගේම තමි view එක viewmodel එකට කතාකරන්න යොදාගන්නේ commands..(ICommand interface එක implement කරන classes).</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">මේ විදියට අපිට මොනාද viewmodel එකක ඇතුලත් කරන්න ඕන.. හරිවිදියටම pattern එක අනුගමනය කරනවානම් view එක visuals වලට අදාළ දේවල් හැර අනෙක් සැම දේම viewmodel එකෙක් තියෙන්න ඕන ,,(data ,commands ආදිය)..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"><strong><span style="font-size: 15px">services</span></strong></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">services කියන්නෙ viewmodel ගේ වැඩ වලට උදව් දෙන කෙනෙක්. ඒ කියන්නේ viewmodel ට කරන්න ඕනෑතරම් වැඩ තියෙන නිසා සමහර දේවල් වලට (උදා:- database එකක් හා සම්ම්බනද දේවල් ,, file එකක් open කිරීම ) අවධානය යොමු කරන්න එයාට බෑ. එක හින්ද ඒවගේ දේවල් වල logic අපි වෙනම තැනක තියෙනවා..(abstraction) මේවට තමි services කියන්නේ.. අපි services හදන කොට හැමවෙලාවෙම පුළුවන් තරම් උත්සහ කන්න ඕන ඒවා dynamic විදියට එනම් viewmodel එකක් මත යැපෙන්නේ නැති විදියට ඒවා හදන්න .. එතකොට අපිට පුළුවන් මේ service viewmodel හැම එකේම පාවිච්චි කරන්න.</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">ඉතින් මේව තමි mvvm basics <img src="/styles/default/xenforo/smilies/default/D.gif" class="smilie" loading="lazy" alt=":D" title="Big grin :D" data-shortname=":D" /><img src="/styles/default/xenforo/smilies/default/D.gif" class="smilie" loading="lazy" alt=":D" title="Big grin :D" data-shortname=":D" /> ,, ඉතින් අපි ඇත්තටම මොකටද මේ pattern එක අනුගමනය කරන්න ඕන?? ..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">මේ pattern එක අනුගමනය කරාම අපිට පුළුවන් අපේ visuals හා business logic වෙන් කරන්න (Seperation of Concerns).එක බොහොම වැදගත් දෙයක්. මොකද developers ල ගොඩක් ඉන්න group එකක් නම් ,, කට්ටියකට පුළුවන් වෙනම visuals ගැන වැඩ කරන්න , අනිත් අයට පුළුවන් logic ගැන වැඩ කරන්න .. මොකද මේ දෙගොල්ලෝ එකිනෙකා මත යැපෙන්නේ නෑ .. group එකකට විතරක් නෙමෙය් තනි developer කෙනෙකුට උනත් මේ pattern එක අනුගමනය කරන එක ගොඩක් වැදගත්.. එතකොට app එකක් හදද්දී අපිට එන ගොඩක් ගැටළු එබෙම විසදෙනවා ..අපිට අපේ business logic check කරන්න UI එක ඕන නෑ .. මොකද අපිට පුළුවන් අපේ viewmodel එක unit test වලට භාජනය කරන්න .. ඉතින් මෙක බොහොම වටින දෙයක්..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">ගොඩක් අය කියනවා mvvm pattern එක අමාරු දෙයක් කියල . හැබය් මූලධර්ම හරියට අවබෝධ කර ගත්තොත් එක හරිම ලේසි fun දෙයක් <img src="/styles/default/xenforo/smilies/default/P.gif" class="smilie" loading="lazy" alt=":P" title=":P :P" data-shortname=":P" /><img src="/styles/default/xenforo/smilies/default/P.gif" class="smilie" loading="lazy" alt=":P" title=":P :P" data-shortname=":P" />..</span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px"></span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">ඉතින් මෙටික තමා අදට ..ඉදිරියේදී මම c# code වලිනුත් මේක තව පැහැදිලි කන්නනම්,,, තවත් article එකකින් හමුවෙමු.. මේකේ වැරදි මොනාහරි තියෙනවනම් </span></span></p><p><span style="font-size: 15px"><span style="font-size: 12px">ඒවා comment කරන්න,,</span></span></p></blockquote><p></p>
[QUOTE="nkt, post: 20182403, member: 544496"] [b]Mvvm pattern එක සරලව[/b] [SIZE="4"][SIZE="3"]මම අද කියල දෙන්නේ mvvm (model-view-viewmodel) basics ටිකක්. programming කරන අය දන්නව ඇති app එකක code ලියද්දි හොද පැහැදිලි plan එකක් තියෙන්න ඕන කියල .. Windows app ලියද්දි භාවිතා කරන බොහොම ප්රසිද්ද pattern එක mvvm pattern එක ... ඉතින් මොකද්ද මේ mvvm pattern එක .. සැලකිය යුතුය්:= මම හිතනවා ඔබට windows programming/ c# ගැන මුලික දැනුමක් තිබේ කියා ..:yes: මෙතැනදී මුලික කරුණු 3ක් තියෙනවා . 1.model 2.viewmodel 3.view ඒවගේම 4 හැටියට services ගන්න පුළුවන් . [B][SIZE="4"]model[/SIZE][/B] මේක තමා අපේ business object එක .. අපි හිතමු අපේ app එක contact app එකක් කියල .. එතකොට මේකේ model එක හැටියට අපිට පුළුවන් contact object එකක් සලකන්න .. එකද තතියෙන්න පුළුවන් Name,Number වගේ properties.. [B][SIZE="4"]view[/SIZE][/B] view එක කියන්නේ අපේ app එකේ page එකක් ,, නැත්නම් window එකක් .. මෙතැනදී මෙයාගේ code behind file එක තිඑන්න පුළුවන් visuals සම්බන්ද code විතරය්.. business Logic තියෙන්න බෑ. මොකද mvvm pattern එක මූලධර්මයක් තමා view එක model එක ගැන මොනවත් දැනගන්න බෑ කියන එක .. [B][SIZE="4"]viewmodel[/SIZE][/B] මේක තමා view එක හා model එක අතර ඉදගෙන එදෙක අතර ගනුදෙනු කරන්නේ . හරියට සමාදාන විනිශ්චයකාරයෙක් වගේ. මොකද view එක කැමති නෑ කෙලින්ම model එක ගැන දන ගන්න.. ඇත්තටම කිව්වොත් view එක දන්නේ නෑ model එකේ තියෙන දෙවෙල් කොහොමද පාවිච්චි කරන්නේ කියල. viewmodel එක තමා දන්නේ model එකේ තියෙන දේවල් අරගෙන view එකට තේරෙන විදියට සකස් කරන්න .. හිතන්න view එකට ඕන contact එකක් user ට පෙන්නන..හැබය් view එක දන්නේ නෑ contact එක කොහෙද තියෙන්නෙ , එකේ propertys මොනාද කියල ... දැන් තමා viewmodel එක වැඩ පෙන්නන්නේ.. viewmodel එක view එකට අවශ්ය contact එක තියෙන තැනකින් (database හෝ web service) අරගෙන එකේ තියෙන propertys view එකට තේරෙන විදියට සකස් කරනවා . නැත්නම් view එකට ලබාගන්න පුළුවන් විදියට එකේ properties expose කරනවා.. ඒවගේම අපි හිතමු user contact එකක් edit කරලා save කර කියල .view එක දන්නේ නෑ මේක කොහොමද කරන්නේ කියල ..නමුත් viewmodel එක දන්නවා . ඉතින් view එක viewmodel එකට කියනව මෙන්න මේ contact එක save කරන්න ,,කරලා එකේ සාර්ථකත්වය ගැන මට කියන්න කියල . මෙතනදී තවත් දෙයක් මතක තියන්න ඕන මම උඩ expose කියන වචනය භාවිටකරේ හේතුවක් ඇතිව .. මොකද mvvm pattern එකේ තියෙන තවත් මුලධර්මයක් තමා viewmodel එක view එක ගැන මුකුත් දන්නේ නෑ කියන එක .නමුත් එක ප්රශ්නයක් වෙන්නේ නෑ ,, මොකද view එක දැනගන්න ඕන තමන්ට අවශ්ය viewmodel එක හොයාගන්න . ඒවගේම තමි view එක viewmodel එකට කතාකරන්න යොදාගන්නේ commands..(ICommand interface එක implement කරන classes). මේ විදියට අපිට මොනාද viewmodel එකක ඇතුලත් කරන්න ඕන.. හරිවිදියටම pattern එක අනුගමනය කරනවානම් view එක visuals වලට අදාළ දේවල් හැර අනෙක් සැම දේම viewmodel එකෙක් තියෙන්න ඕන ,,(data ,commands ආදිය).. [B][SIZE="4"]services[/SIZE][/B] services කියන්නෙ viewmodel ගේ වැඩ වලට උදව් දෙන කෙනෙක්. ඒ කියන්නේ viewmodel ට කරන්න ඕනෑතරම් වැඩ තියෙන නිසා සමහර දේවල් වලට (උදා:- database එකක් හා සම්ම්බනද දේවල් ,, file එකක් open කිරීම ) අවධානය යොමු කරන්න එයාට බෑ. එක හින්ද ඒවගේ දේවල් වල logic අපි වෙනම තැනක තියෙනවා..(abstraction) මේවට තමි services කියන්නේ.. අපි services හදන කොට හැමවෙලාවෙම පුළුවන් තරම් උත්සහ කන්න ඕන ඒවා dynamic විදියට එනම් viewmodel එකක් මත යැපෙන්නේ නැති විදියට ඒවා හදන්න .. එතකොට අපිට පුළුවන් මේ service viewmodel හැම එකේම පාවිච්චි කරන්න. ඉතින් මේව තමි mvvm basics :D:D ,, ඉතින් අපි ඇත්තටම මොකටද මේ pattern එක අනුගමනය කරන්න ඕන?? .. මේ pattern එක අනුගමනය කරාම අපිට පුළුවන් අපේ visuals හා business logic වෙන් කරන්න (Seperation of Concerns).එක බොහොම වැදගත් දෙයක්. මොකද developers ල ගොඩක් ඉන්න group එකක් නම් ,, කට්ටියකට පුළුවන් වෙනම visuals ගැන වැඩ කරන්න , අනිත් අයට පුළුවන් logic ගැන වැඩ කරන්න .. මොකද මේ දෙගොල්ලෝ එකිනෙකා මත යැපෙන්නේ නෑ .. group එකකට විතරක් නෙමෙය් තනි developer කෙනෙකුට උනත් මේ pattern එක අනුගමනය කරන එක ගොඩක් වැදගත්.. එතකොට app එකක් හදද්දී අපිට එන ගොඩක් ගැටළු එබෙම විසදෙනවා ..අපිට අපේ business logic check කරන්න UI එක ඕන නෑ .. මොකද අපිට පුළුවන් අපේ viewmodel එක unit test වලට භාජනය කරන්න .. ඉතින් මෙක බොහොම වටින දෙයක්.. ගොඩක් අය කියනවා mvvm pattern එක අමාරු දෙයක් කියල . හැබය් මූලධර්ම හරියට අවබෝධ කර ගත්තොත් එක හරිම ලේසි fun දෙයක් :P:P.. ඉතින් මෙටික තමා අදට ..ඉදිරියේදී මම c# code වලිනුත් මේක තව පැහැදිලි කන්නනම්,,, තවත් article එකකින් හමුවෙමු.. මේකේ වැරදි මොනාහරි තියෙනවනම් ඒවා comment කරන්න,,[/SIZE][/SIZE] [/QUOTE]
Insert quotes…
Verification
Hath warak paha keeyada? (hatha wadikireema paha)
Post reply
Top
Bottom