සමාලෝචනය කරන්න, ප්\u200dරාථමික මූලාශ්\u200dර වෙත ආපසු යන්න සහ සැකිලි ඔබම විශ්ලේෂණය කර ඉදිරිපත් කරන්නේ කෙසේද. මිථ්\u200dයාදෘෂ්ටික එම්වීසී සඳහා දඩයම

ASP.NET Core MVC වෙබ් යෙදුම් සංවර්ධනය කිරීම

පුහුණු කාලය: දින 5 - පැය 40 යි

අයදුම්පත් ලැබුණු වහාම කණ්ඩායම පිහිටුවා ඇත.

පා .මාලාවේ අරමුණ - .NET Core භාවිතා කරමින් ASP.NET Core MVC යෙදුම් සංවර්ධනය කිරීමට අවශ්\u200dය දැනුම හා කුසලතා සිසුන්ට ලබා දීම. ප්\u200dරධාන අවධානය යොමු වී ඇත්තේ කේත ක්\u200dරියාකාරිත්වය වැඩි දියුණු කිරීම සඳහා වන අතර එය වෙබ් යෙදුමක ක්\u200dරියාකාරිත්වය වැඩි කරයි.

ප්\u200dරේක්ෂකයෝ

මෙම පා course මාලාව සැලසුම් කර ඇත්තේ උසස් වෙබ් යෙදුම් සංවර්ධනය කිරීමට උනන්දුවක් දක්වන මයික්\u200dරොසොෆ්ට් විෂුවල් ස්ටුඩියෝ භාවිතා කරන සහ පුළුල් ආකාරයකින් HTML භාවිතා කිරීමට කැමති සහ පරිශීලක අතුරුමුහුණත් මොඩියුල, දත්ත ප්\u200dරවේශය සහ යෙදුම් තර්කනය වෙනස් කරමින් වෙබ් අඩවි නිර්මාණය කිරීමටය.

  • යෙදුම් සංවර්ධනය කිරීමේදී මයික්\u200dරොසොෆ්ට් වෙබ් තාක්\u200dෂණ තොගය විස්තර කර සුදුසු තාක්\u200dෂණය තෝරන්න;
  • ගෘහ නිර්මාණ ශිල්පය සැලසුම් කිරීම සහ ක්\u200dරියාකාරී අවශ්\u200dයතා, පරිශීලක අතුරුමුහුණත් අවශ්\u200dයතා සහ ව්\u200dයාපාර ආකෘතිය සපුරාලන වෙබ් යෙදුම් ක්\u200dරියාත්මක කිරීම;
  • MVC ආකෘති සාදන්න සහ ක්\u200dරමවේදය, දේපල සහ සිදුවීම් ආකෘතිය තුළ ව්\u200dයාපාර තර්කනය ක්\u200dරියාත්මක කරන ලිවීමේ කේතයක්;
  • මිඩ්ල්වෙයාර් භාවිතයෙන් ASP.NET මූලික වෙබ් යෙදුම් සඳහා නල මාර්ගය වින්\u200dයාස කර MVC යෙදුමක පරායත්ත එන්නත් භාවිතා කරන්න.
  • පරිශීලක අන්තර්ක්\u200dරියා පාලනය කිරීමට, ආකෘති යාවත්කාලීන කිරීමට, දර්ශන තෝරා ගැනීමට සහ ලබා ගැනීමට ඔබේ MVC යෙදුමට පාලකයන් එක් කරන්න;
  • මිත්\u200dරශීලී URL සහ තාර්කික සංචාලන ධූරාවලියක් පරිශීලකයින්ට ඉදිරිපත් කිරීම සඳහා ASP.NET Core routing එන්ජිම භාවිතා කරන වෙබ් යෙදුමක් සංවර්ධනය කරන්න.
  • දත්ත ප්\u200dරදර්ශනය කිරීමට සහ සංස්කරණය කිරීමට සහ ආකෘති සහ පාලකයන් සමඟ අන්තර් ක්\u200dරියා කිරීමට MVC යෙදුමක දර්ශන සාදන්න;
  • MVC ආකෘති සාදන්න සහ ආකෘතියේ ක්\u200dරම, ගුණාංග සහ සිදුවීම් තුළ ව්\u200dයාපාර තාර්කික කේත ලියන්න.
  • ආයතන රාමු හරය භාවිතා කරමින් දත්ත සමුදායකට ASP.NET Core යෙදුමක් සම්බන්ධ කරන්න.
  • MVC වෙබ් යෙදුමක ප්\u200dරතිචාරාත්මක බව ප්\u200dරශස්ත කිරීම සඳහා සේවාදායකයාගේ පැත්තෙන් ක්\u200dරියාත්මක වන jQuery ස්ක්\u200dරිප්ටින් පුස්තකාලය භාවිතා කරන JavaScript කේතය ජනනය කරන්න.
  • ග්\u200dරාහක පැකේජ එකතු කර කාර්ය ධාවකයන් වින්\u200dයාස කරන්න.
  • විෂුවල් ස්ටුඩියෝ 2017 හි ඒකක පරීක්ෂණ ක්\u200dරියාත්මක කර වෙබ් යෙදුමක් නිදොස් කරන්න.
  • අනන්\u200dයතාවය භාවිතා කරන්නන් සත්\u200dයාපනය කරන සහ අනුමත කරන MVC යෙදුමක් සංවර්ධනය කරන්න.
  • පහරදීම් වලට ඔරොත්තු දෙන MVC යෙදුමක් සාදන්න.
  • පරිශීලක ඉල්ලීම් වලට ප්\u200dරතිචාර වේගවත් කිරීමට හැඹිලි භාවිතා කරන්න.
  • සේවාදායකයා සහ සේවාදායකයා අතර ද්වි-මාර්ග සන්නිවේදනයක් සැපයීමට සිග්නල් ආර් භාවිතා කරන්න.
  • වෙබ් API යනු කුමක්ද සහ සංවර්ධකයින්ට වෙබ් API එකක් යෙදුමකට එක් කළ හැක්කේ මන්දැයි විස්තර කරන්න.
  • සංවර්ධන යන්ත්\u200dරයක සිට වෙබ් සේවාදායකයකට ASP.NET Core MVC වෙබ් යෙදුම් තැනීම සහ යෙදවීම.

සහතික කිරීමේ විභාග

  • 70-486 : ASP.NET MVC වෙබ් යෙදුම් සංවර්ධනය කිරීම

අවශ්\u200dය සූදානම

  • විෂුවල් ස්ටුඩියෝ 2017 සමඟ පළපුරුද්ද.
  • සී # ක්\u200dරමලේඛ අත්දැකීම් සහ ලැම්බඩා ප්\u200dරකාශන, ලින්ක් සහ නිර්නාමික වර්ග පිළිබඳ දැනුම.
  • .NET රාමුව භාවිතා කර පළපුරුද්ද.
  • HTML, CSS සහ JavaScript සමඟ පළපුරුද්ද.
  • ADO.NET සමඟ දත්ත විමසීමේ සහ හැසිරවීමේ පළපුරුද්ද.
  • XML සහ JSON පිළිබඳ දැනුම.

සවන්දෙන්නන්ගේ ද්\u200dරව්\u200dය

පුහුණුවන්නන්ට හිමිකාර අධ්\u200dයයන මාර්ගෝපදේශයක් සහ පුහුණුව සඳහා අවශ්\u200dය වෙනත් ද්\u200dරව්\u200dය ලබා දෙනු ලැබේ.

මොඩියුලය 1: ASP.NET Core MVC දළ විශ්ලේෂණය

මෙම මොඩියුලය ASP.NET Core MVC වෙබ් යෙදුම් තාක්\u200dෂණය හඳුන්වා දෙන අතර එය විවෘත, හරස් වේදිකා රාමුවක් වන අතර එය කඩිනම්, පරීක්ෂණ මත පදනම් වූ සංවර්ධන චක්\u200dරයකට සහාය වන අතර නවතම HTML ප්\u200dරමිතීන් සහ කෝණික, ප්\u200dරතික්\u200dරියා සහ වෙනත් වැනි ඉදිරිපස රාමු භාවිතා කරයි.

මාතෘකා

  • මයික්\u200dරොසොෆ්ට් වෙබ් තාක්ෂණ දළ විශ්ලේෂණය
  • ASP.NET 4.x දළ විශ්ලේෂණය
  • ASP.NET Core MVC හඳුන්වා දීම

විද්\u200dයාගාරය: ASP.NET Core MVC හි දළ විශ්ලේෂණය

  • රේසර් පිටු යෙදුම ගවේෂණය කිරීම
  • වෙබ් API යෙදුම් ගවේෂණය කිරීම
  • MVC අයදුම්පතක් ගවේෂණය කිරීම
  • මයික්\u200dරොසොෆ්ට් හි වෙබ් තාක්\u200dෂණික තොගය විස්තර කරන්න;
  • විස්තර කරන්න විවිධ ආකෘති ASP.NET හි සංවර්ධකයින්ට ලබා ගත හැකි වැඩසටහන්;
  • ASP.NET Core සහ ASP.NET 4.x අතර තෝරන්න;
  • වෙබ් තාක්\u200dෂණ ගබඩාවේ ASP.NET Core MVC හි කාර්යභාරය විස්තර කරන්න සහ වෙබ් යෙදුම් තැනීම සඳහා ASP.NET Core MVC භාවිතා කරන්න.
  • MVC ආකෘති, MVC පාලක සහ MVC දර්ශන වෙන්කර හඳුනා ගන්න.

මොඩියුලය 2: ASP.NET Core MVC වෙබ් යෙදුම් සැලසුම් කිරීම

මෙම මොඩියුලය මඟින් ව්\u200dයාපාර අවශ්\u200dයතා සමූහයක් නිර්වචනය කරන්නේ කෙසේද සහ ආදර්ශ-දර්ශන-පාලක (එම්වීසී) වෙබ් යෙදුමක් සඳහා සැලසුම් කරන්නේ කෙසේද යන්න විස්තර කරයි.

මාතෘකා

  • ව්\u200dයාපෘති සංවර්ධනයේ අවධියේදී සැලසුම් කිරීම
  • ආකෘති, පාලක සහ දර්ශන සැලසුම් කිරීම

විද්\u200dයාගාරය: ASP.NET Core MVC වෙබ් යෙදුම් සැලසුම් කිරීම

  • ආදර්ශ පන්ති සැලසුම් කිරීම
  • සැලසුම් පාලක
  • අදහස් උපලේඛනගත කිරීම
  • MVC යෙදුම් ගෘහ නිර්මාණ ශිල්පයක් සැලසුම් කිරීම

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • යෙදුම් රාජ්\u200dය කළමනාකරණය මනසේ තබාගෙන ASP.NET Core MVC වෙබ් යෙදුම් සැකැස්ම සැලසුම් කරන්න
  • ක්\u200dරියාකාරී අවශ්\u200dයතා සමූහයකට අනුව ආකෘති, පාලක සහ දර්ශන සැලසුම් කරන්න.

මොඩියුලය 3: අතරමැදි වින්\u200dයාස කිරීම මෘදුකාංග (මිඩ්ල්වෙයාර්) සහ ASP.NET Core හි සේවාවන්

මෙම මොඩියුලය ASP.NET Core භාවිතා කරමින් පවතින සහ අභිරුචි මිඩ්ල්වෙයාර් හරහා ඉල්ලීම් සහ ප්\u200dරතිචාර හැසිරවීමට සහ මිඩ්ල්වෙයාර් සහ පාලක වැනි ඔබේ යෙදුමේ අනෙකුත් සියලුම කොටස් සඳහා සේවාවන් වින්\u200dයාසගත කරන්නේ කෙසේද යන්න හරහා ඔබව ගෙන යයි. මෙන්න, සේවාවන් යනු යෙදුමේ විවිධ කොටස් වලට පසුව භාවිතා කළ හැකි ක්\u200dරියාකාරීත්වය සපයන පන්ති වේ. මෙම ප්\u200dරවේශය රඳා පවතින්නේ පරායත්ත එන්නත් කිරීම මත ය.

මාතෘකා

  • මිඩ්ල්වෙයාර් වින්\u200dයාස කිරීම
  • සේවා සැකසීම

විද්\u200dයාගාරය: ASP.NET Core හි මිඩ්ල්වෙයාර් සහ සේවා වින්\u200dයාස කිරීම

  • ස්ථිතික ලිපිගොනු සමඟ වැඩ කිරීම
  • ඔබේම මිඩ්ල්වෙයාර් නිර්මාණය කිරීම
  • පරායත්ත එන්නත් භාවිතා කිරීම
  • පාලකයකුට සේවාවක් එන්නත් කිරීම

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • ඔබගේ ASP.NET මූලික යෙදුම අභිරුචිකරණය කිරීමට පවතින මිඩ්ල්වෙයාර් භාවිතා කරන්න.
  • ඔබේම මිඩ්ල්වෙයාර් එකක් සාදා අභිරුචි හැසිරීම නිර්වචනය කිරීමට එය භාවිතා කරන්න.
  • යැපුම් එන්නත් කිරීම පිටුපස ඇති මූලික මූලධර්ම සහ ඒවා ASP.NET Core හි භාවිතා කරන්නේ කෙසේද යන්න තේරුම් ගන්න.
  • අභිරුචි සේවාවක් සාදන්න, එහි විෂය පථය වින්\u200dයාස කර එය මිඩ්ල්වෙයාර් සහ ඒඑස්පී නෙට් කෝර් එම්වීසී පාලක දෙකටම එන්නත් කරන්න.

මොඩියුලය 4: පාලක සංවර්ධනය කිරීම

මෙම මොඩියුලය පාලකයන්ගේ භාවිතය ගවේෂණය කරයි, ඒවා වෙබ් ඉල්ලීමක් සැකසීමට වගකිව යුතු අතර ආකෘතිය සමඟ අන්තර්ක්\u200dරියා කර ප්\u200dරති results ල දර්ශනයට ලබා දේ.

මාතෘකා

  • පාලක සහ ක්\u200dරියා ලිවීම
  • මාර්ග සැකසීම
  • ක්\u200dරියා පෙරහන් ලිවීම

විද්\u200dයාගාරය: පාලක සංවර්ධනය කිරීම

  • MVC යෙදුමකට පාලකයන් සහ ක්\u200dරියා එකතු කිරීම
  • මාර්ග වගුව භාවිතා කරමින් මාර්ග වින්\u200dයාස කිරීම
  • ගුණාංග භාවිතා කරමින් මාර්ග වින්\u200dයාස කිරීම
  • ක්\u200dරියා පෙරණයක් එක් කිරීම

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • ව්\u200dයාපෘතියේ නිශ්චිතව දක්වා ඇති පරිශීලක ක්\u200dරියාවන්ට ප්\u200dරතිචාර දක්වන වෙබ් යෙදුමකට පාලකයක් එක් කරන්න.
  • MVC වෙබ් යෙදුමක මිත්\u200dරශීලී URL භාවිතා කරමින් ASP.NET Core routing එන්ජිමට මාර්ග එක් කරන්න.
  • පාලක ක්\u200dරියාවකට පෙර හෝ පසුව ක්\u200dරියාත්මක වන ක්\u200dරියා පෙරහන් වල කේතය ලියන්න.

මොඩියුලය 5. දර්ශන සැලසුම් කිරීම

මෙම මොඩියුලය MVC වෙබ් යෙදුමක දර්ශනවල භූමිකාව මෙන්ම ඒවා නිර්මාණය කිරීම සහ වැඩසටහන්කරණය විස්තර කරයි. දර්ශනයක් යනු වෙබ් සේවාදායකයක් මත ධාවනය වන HTML සලකුණු කිරීම සහ C # කේතයේ එකතුවකි. මෙම මොඩියුලය වෙබ් යෙදුමක නැවත භාවිතා කිරීම සඳහා HTML ස්නිපෙට් ලබා දෙන අර්ධ දර්ශන සහ කොටස් සංරචක නිර්මාණය කිරීම ද ආවරණය කරයි.

  • රේසර් සින්ටැක්ස් සමඟ දර්ශන නිර්මාණය කිරීම
  • HTML උදව්කරුවන් සහ ටැග් උදව්කරුවන් භාවිතා කිරීම
  • දර්ශන කේතය නැවත භාවිතා කිරීම

විද්\u200dයාගාරය: දර්ශන සංවර්ධනය කිරීම

  • MVC යෙදුමකට දර්ශන එකතු කිරීම
  • අර්ධ දර්ශනයක් එකතු කිරීම
  • දර්ශන සංරචකයක් එක් කිරීම

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • පරිශීලකයින්ට දත්ත ප්\u200dරදර්ශනය කිරීම සඳහා රේසර් සලකුණු සමඟ MVC දර්ශනයක් සාදන්න.
  • දර්ශනයකදී HTML උදව්කරුවන් සහ ටැග් උදව්කරුවන් භාවිතා කරන්න.
  • ඔබේ යෙදුමේ ස්ථාන කිහිපයක රේසර් සලකුණු නැවත භාවිතා කරන්න.

මොඩියුලය 6: ආකෘති සංවර්ධනය කිරීම

මෙම මොඩියුලය ව්\u200dයාපාර තර්කනය නිර්වචනය කරන සහ එක් එක් වර්ගයේ වස්තු සඳහා පන්ති නියෝජනය කරන MVC යෙදුමක ආකෘති නිර්මාණය කිරීම හරහා ඔබව ගෙන යයි.

මාතෘකා

  • MVC ආකෘති නිර්මාණය කිරීම
  • ආකෘති සමඟ වැඩ කිරීම
  • MVC අයදුම්පතක් වලංගු කිරීම

විද්\u200dයාගාරය: ආකෘති සංවර්ධනය කිරීම

  • ආකෘතියක් එකතු කිරීම
  • පෝරම (ආකෘති) සමඟ වැඩ කිරීම
  • වලංගුකරණය එකතු කිරීම

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • ඔබේ MVC යෙදුමට ආකෘතියක් එකතු කර ව්\u200dයාපාර තර්කනය ක්\u200dරියාත්මක කිරීම සඳහා කේත ලිවීම.
  • දත්ත විවරණ පෙන්වීම සහ සංස්කරණය කිරීම භාවිතා කරන්න.
  • දත්ත විවරණ භාවිතා කරමින් පරිශීලක ආදානය වලංගු කරන්න.

මොඩියුලය 7: ASP.NET Core හි ආයතන රාමු හරය භාවිතා කිරීම

මෙම මොඩියුලය මඟින් දත්ත ප්\u200dරවේශ ආකෘතියක් සහ ව්\u200dයාපාර තර්කනයක් නිර්මාණය කරන්නේ කෙසේද, ව්\u200dයාපාර තර්කනය දත්ත ප්\u200dරවේශ ප්\u200dරවේශ තර්කනයෙන් නිධියක් භාවිතා කරමින් වෙන් කරයි. ASP.NET යෙදුමක් ලිවීමේදී, ඔබේ දත්ත ප්\u200dරවේශ කේතය ලිවීමට ඉක්මන් සහ තේරුම් ගැනීමට පහසු කරවීම සඳහා ඔබට ආයතන රාමු හරය (EF Core) සහ භාෂා ඒකාබද්ධ විමසුම් (LINQ) තාක්ෂණයන් භාවිතා කළ හැකිය. මෙම මොඩියුලය MVC හි දත්ත සමුදායන් මත පදනම් වූ වෙබ් අඩවියක් නිර්මාණය කරන්නේ කෙසේදැයි පෙන්වයි.

මාතෘකා

  • ආයතන රාමු හරය හැඳින්වීම
  • ආයතන රාමු හරය සමඟ වැඩ කිරීම

විද්\u200dයාගාරය: ASP.NET Core හි ආයතන රාමු හරය භාවිතා කිරීම

  • ආයතන රාමු හරය එකතු කිරීම
  • දත්ත ලබා ගැනීමට සහ ගබඩා කිරීමට ආයතන රාමු හරය භාවිතා කිරීම
  • මයික්\u200dරොසොෆ්ට් SQL සේවාදායකයට සම්බන්ධ වීමට ආයතන රාමු හරය භාවිතා කිරීම

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • දත්ත වෙත ප්\u200dරවේශ වීමට සහ ගබඩා කිරීමට යෙදුම දත්ත සමුදායකට සම්බන්ධ කරන්න.
  • EF Core ක්\u200dරියා කරන ආකාරය පැහැදිලි කරන්න.
  • ආයතන රාමු හරය සමඟ වැඩ කරන්න.
  • Microsoft SQL සේවාදායකය ඇතුළුව ඔබේ දත්ත ගබඩාවට සම්බන්ධ වීමට EF Core භාවිතා කරන්න.

මොඩියුලය 8: ASP.NET මූලික වෙබ් යෙදුමක පිරිසැලසුම් ආකෘතිය, CSS සහ JavaScript භාවිතා කිරීම

මෙම මොඩියුලය MVC යෙදුමකට එකට පිවිසීමේ හැකියාව සහ ශීර්ෂක සහ පාදක වැනි සියලු අදහස් අතර පොදු කොටස් බෙදා ගැනීමේ හැකියාව විස්තර කරයි. CSS කඳුරැල්ල ශෛලීය පත්\u200dර සහ සැකිලි විස්තර කිරීමට අමතරව, මෙම මොඩියුලය ජාවාස්ක්\u200dරිප්ට් භාවිතයෙන් අන්තර්ක්\u200dරියාකාරී HTML අංග නිර්මාණය කිරීම සහ jQuery පුස්තකාලය භාවිතා කරයි.

මාතෘකා

  • පිරිසැලසුම් ආකෘතිය භාවිතා කිරීම.
  • CSS අයදුම් කිරීම සහ ජාවාස්ක්\u200dරිප්ට්.
  • JQuery භාවිතා කිරීම.

විද්\u200dයාගාරය: ASP.NET මූලික වෙබ් යෙදුමක පිරිසැලසුම, CSS සහ JavaScript භාවිතා කිරීම

  • යෙදුමක දර්ශන සඳහා පිරිසැලසුම යෙදීම.
  • CSS භාවිතා කිරීම
  • JavaScript භාවිතා කිරීම
  • JQuery භාවිතා කිරීම.

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • ASP.NET Core MVC යෙදුම් සඳහා ස්ථාවර පෙනුමක් සහ හැඟීමක් ක්\u200dරියාත්මක කරන්න.
  • වෙබ් යෙදුමකට ජාවාස්ක්\u200dරිප්ට් කේතය එක් කරන්න.
  • වෙබ් යෙදුමේ jQuery පුස්තකාලය භාවිතා කරන්න.

මොඩියුලය 9: සේවාලාභී පාර්ශවීය සංවර්ධනය

මෙම මොඩියුලය විස්තර කරන්නේ වෙබ් යෙදුමක්, CSS පෙර සැකසුම්කරුවන් වන සාස් සහ අඩුවෙන් හැඩ ගැසීමට බූට්ස්ට්\u200dරැප් භාවිතා කිරීම සහ ග්\u200dරන්ට් සහ ගුල්ප් සැකසීම සහ මයික්\u200dරොසොෆ්ට් විෂුවල් ස්ටුඩියෝ සඳහා ගොඩනඟන වේලාවේදී සාස් ගොනු සම්පාදනය කිරීම සඳහා ඒවා භාවිතා කිරීමයි.

මාතෘකා

  • මෝස්තර යෙදීම
  • කාර්ය ධාවකයන් භාවිතා කිරීම
  • අනුවර්තී නිර්මාණය

විද්\u200dයාගාරය: සේවාලාභී පාර්ශවීය සංවර්ධනය

  • කාර්යයන් ක්\u200dරියාත්මක කිරීම සඳහා ගල්ප් භාවිතා කිරීම
  • සාස් සමඟ මෝස්තර කිරීම
  • Bootstrap භාවිතා කිරීම

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • ASP.NET Core යෙදුමක කාර්ය හසුරුවන්නන් භාවිතා කරන්න.
  • විවිධ තිර ප්\u200dරමාණ ඇති උපාංගවල නිවැරදිව පෙන්වන වෙබ් යෙදුමක් සැලසුම් කරන්න.

මොඩියුලය 10: පරීක්ෂා කිරීම සහ දෝශ නිරාකරණය

කේත දෝෂ, බිඳ වැටීම් සහ වෙනත් අනපේක්ෂිත ප්\u200dරති .ල සොයාගෙන නිවැරදි කිරීමෙන් ඔබගේ යෙදුමේ ස්ථායිතාව සහ ගුණාත්මකභාවය වැඩි දියුණු කරන්නේ කෙසේද යන්න මෙම මොඩියුලය විස්තර කරයි. MVC යෙදුම් ඒකක පරීක්ෂණ සඳහා හොඳින් ගැලපෙන අතර, එවැනි පරීක්ෂණ මඟින් එක් එක් කුඩා සංරචකවල ක්\u200dරියාකාරීත්වය ක්\u200dරමානුකූලව පරීක්ෂා කිරීමෙන් උසස් තත්ත්වයේ කේතයක් සහතික කෙරේ. මීට අමතරව, මෙම මොඩියුලය විෂුවල් ස්ටුඩියෝ හි ඇති නිදොස්කරණය සහ ව්\u200dයතිරේක හැසිරවීමේ මෙවලම් සාකච්ඡා කරයි.

මාතෘකා

  • MVC අයදුම්පත් පරීක්ෂා කිරීම.
  • ව්\u200dයතිරේක හැසිරවීමේ උපාය මාර්ගයක් ක්\u200dරියාත්මක කිරීම.
  • MVC අයදුම්පත් ලොග් කිරීම.

විද්\u200dයාගාරය: පරීක්ෂණ සහ දෝශ නිරාකරණ

  • පරීක්ෂණ ආකෘති
  • ව්\u200dයාජ ගබඩාවක් භාවිතා කරමින් පාලකයන් පරීක්ෂා කිරීම
  • MVC ව්\u200dයාපෘතියේ නිධිය ක්\u200dරියාත්මක කිරීම
  • ව්\u200dයතිරේක හැසිරවීම එකතු කිරීම
  • ල ging ු-සටහන් එකතු කිරීම.
විද්\u200dයාගාරය: ආරක්ෂාව කළමනාකරණය කිරීම
  • අනන්\u200dයතාවය භාවිතා කිරීම.
  • අවසරය එකතු කිරීම.
  • හරස් අඩවි ඉල්ලීම් වංචා කිරීමෙන් වළකින්න.

මෙම මොඩියුලය සම්පූර්ණ කිරීමෙන් පසුව, සිසුන්ට පහත දෑ කළ හැකිය:

  • යෙදුමට මූලික සත්\u200dයාපනය එක් කිරීම.
  • Microsoft ASP.NET මූලික අනන්\u200dයතාවය වින්\u200dයාස කිරීම.
  • යෙදුමට මූලික අවසරය එක් කරන්න.
  • බලය පැවරීම සඳහා විවිධ ප්\u200dරවේශයන් භාවිතා කරන්න.
  • ආරක්ෂක දුර්වලතා ක්\u200dරියාත්මක වන ආකාරය සහ ඒවාට එරෙහිව ආරක්ෂා විය හැකි හොඳම ආකාරය දැන ගන්න.

මොඩියුලය 12: කාර්ය සාධනය සහ සන්නිවේදනය

මෙම මොඩියුලයේ පරමාර්ථය වන්නේ එකම තර්කනය නැවත ක්\u200dරියාත්මක නොකර පුනරාවර්තන ඉල්ලීම් නොකඩවා පවත්වා ගැනීම සඳහා හැඹිලි භාවිතා කරන ආකාරය ඔබට පෙන්වීමයි. ද්වි-මාර්ග සන්නිවේදනය සරල කිරීම සඳහා භාවිතයට පහසු API වෙත විවිධ සන්නිවේදන ප්\u200dරොටෝකෝල කිහිපයක් සාරාංශ කිරීමට ඔබට ඉඩ සලසන රාමුවක් වන සිග්නල් ආර් ද මෙම මොඩියුලය සාකච්ඡා කරයි.

මෙම මොඩියුලය වෙබ් API සංකල්පයක් විස්තර කරන අතරම අනෙකුත් වෙබ් සහ ජංගම යෙදුම් සමඟ ඒකාබද්ධ කිරීම සඳහා යෙදුමේ මූලික ක්\u200dරියාකාරිත්වය පුළුල් කරයි. මෙම මොඩියුලය MVC වෙබ් API හි නව අංගයන් සහ RESTful වෙබ් API එකක් නිර්මාණය කරන්නේ කෙසේද සහ වෙනත් යෙදුම් වලින් එය අමතන්නේ කෙසේද යන්න ගවේෂණය කරයි.

මාතෘකා

  • දේශීය සත්කාරක සහ යෙදවීම
  • මයික්\u200dරොසොෆ්ට් අසුර් වෙත යොදවන්න
  • Microsoft Azure Basics

ASP.NET Core MVC වෙබ් යෙදුම් සංවර්ධනය කිරීම

පා version මාලාව නවතම අනුවාදය අනුව කියවනු ලැබේ!

පා applications මාලාවේදී වෙබ් යෙදුම් නිර්මාණය කරන්නේ කෙසේදැයි ඔබ ඉගෙන ගනු ඇත ASP.NET CORE MVC .NET රාමුවෙන්. ඔබේ වෙබ් යෙදුම්වල ක්\u200dරියාකාරීත්වය සහ පරිමාණය සැලකිය යුතු ලෙස වැඩි කිරීමට ඔබට ඉඩ සලසන දැනුම සහ කුසලතා ඔබට ලැබෙනු ඇත. පාඩම අතරතුර, ඔබ ASP.NET CORE MVC සහ ASP.NET වෙබ් පෝරම තාක්ෂණයන් සංසන්දනය කර එකක් හෝ වෙනත් තාක්ෂණයක් තෝරා ගැනීම සඳහා නිර්දේශ ලබා ගනී.

පා course මාලාව ගණනය කෙරේ විෂුවල් ස්ටුඩියෝ භාවිතයෙන් යෙදුම් නිර්මාණය කිරීමේ අත්දැකීම් ඇති වෘත්තීය වෙබ් සංවර්ධකයින් සඳහා.

පිළිබඳ පුහුණුව සඳහා මෙම පා .මාලාව ඔබට වලංගු එකක් අවශ්\u200dයයි ගිණුම් ප්\u200dරවේශයමයික්\u200dරොසොෆ්ට් අසුර්. නව ප්\u200dරවේශය ලබා ගැනීමට පැය 48 ක් ගත වන බව කරුණාවෙන් සලකන්න. ඔබට ප්\u200dරවේශය නොමැති නම්, කරුණාකර පුහුණුව සඳහා ලියාපදිංචි වන විට මේ පිළිබඳව ඔබේ කළමනාකරුට දන්වන්න. මෙම අවස්ථාවේදී, අපි ඔබට අත්හදා බැලීමේ අනුවාදයක් ලබා දෙන්නෙමු: දින 30 වින්ඩෝස් අසුර් පාස්.

තවත් පුහුණුවීම් අවශ්\u200dයද? මයික්\u200dරොසොෆ්ට් සහතික කිරීමේ විභාග සඳහා සූදානම්ද? වෙත ප්\u200dරවේශය මිලදී ගන්න විද්\u200dයාගාර ඔන්ලයින් - මයික්\u200dරොසොෆ්ට් බලයලත් පා courses මාලා වල අතථ්\u200dය විද්\u200dයාගාර - මුළු පා course මාලාව තුළම සහ උපාධිය ලැබීමෙන් සති දෙකකට පසුව! සේවාව අද්විතීය වන අතර එය ලබා ගත හැක්කේ "විශේෂ ist" මධ්\u200dයස්ථානයේ පමණි

ප්\u200dරේක්ෂක පැතිකඩ:

  • මෙම පා course මාලාව මයික්\u200dරොසොෆ්ට් විෂුවල් ස්ටුඩියෝ භාවිතා කරන වෘත්තීය වෙබ් සංවර්ධකයින් සඳහා තනි තනිව හෝ කණ්ඩායමක් ලෙස විශාල හෝ කුඩා සංවිධානවල නිර්මාණය කර ඇත.

පූර්වාවශ්යතාවයන්:

  • මයික්\u200dරොසොෆ්ට් විෂුවල් ස්ටුඩියෝ සහ මයික්\u200dරොසොෆ්ට් ඒඑස්පී නෙට් භාවිතා කරමින් වෙබ් යෙදුම් සංවර්ධනය කිරීමේ වසර 2-3 ක පළපුරුද්ද;
  • .NET රාමුව සමඟ ප්\u200dරායෝගික අත්දැකීම්;
  • සී # ක්\u200dරමලේඛන භාෂාව පිළිබඳ මූලික දැනුම.

පා course මාලාව හැදෑරීමෙන් පසු සිසුන්ට පහත සඳහන් දෑ කළ හැකිය.

  • මයික්\u200dරොසොෆ්ට් වෙබ් තාක්ෂණයන් විස්තර කර අත ළඟ ඇති කාර්යය සඳහා නිවැරදි මෙවලම තෝරන්න;
  • ක්\u200dරියාකාරී අවශ්\u200dයතා, පරිශීලක අතුරුමුහුණත් අවශ්\u200dයතා සහ ව්\u200dයාපාර ආකෘතියකට අනුකූල වන වෙබ් යෙදුමක් සැකසීම සහ ක්\u200dරියාත්මක කිරීම සැලසුම් කිරීම;
  • යෙදුමේ ව්\u200dයාපාරික තර්කනය සහ දත්ත සමඟ වැඩ කරන MVC ආකෘතියක් සහ ලිවීමේ කේතයක් සාදන්න;
  • පරිශීලක අන්තර්ක්\u200dරියා කළමනාකරණය, ආකෘති යාවත්කාලීන කිරීම් සහ දර්ශන සමඟ අන්තර්ක්\u200dරියා සැපයීම සඳහා පාලකයන් MVC යෙදුම් වලට එක් කරන්න;
  • දත්ත ප්\u200dරදර්ශනය කිරීමට සහ සංස්කරණය කිරීමට සහ ආකෘති සහ පාලකයන් සමඟ අන්තර් ක්\u200dරියා කිරීමට ඔබට ඉඩ සලසන MVC දසුන් නිර්මාණය කරන්න;
  • විෂුවල් ස්ටුඩියෝ 2012 හි වෙබ් යෙදුම් සඳහා ඒකක පරීක්ෂණ සහ නිදොස් කිරීමේ මෙවලම් ධාවනය කර දෝශ නිරාකරණය සඳහා යෙදුම් වින්\u200dයාස කරන්න.
  • පරිශීලකයින් සඳහා මිත්\u200dරශීලී URL සහ තාර්කික සංචාලනය සැපයීම සඳහා ASP.NET රවුටින් භාවිතා කරන වෙබ් යෙදුම් සංවර්ධනය කිරීම;
  • එකඟ වූ දෙයක් සපයන්න පෙනුම සමස්ත එම්වීසී වෙබ් යෙදුම පුරාම ආයතනික වෙළඳ නාමකරණය ඇතුළුව අඩවි පිටු;
  • ජාල බර අඩු කිරීම සඳහා අර්ධ පිටු නැවුම් කිරීම සහ හැඹිලි භාවිතා කරන්න, යෙදුම මඟින් ජනනය කරන ලදි, සහ පරිශීලක ක්\u200dරියාවන්ට ප්\u200dරතිචාර කාලය අඩු කිරීම;
  • mVC වෙබ් යෙදුම්වල පරිශීලක අත්දැකීම් ප්\u200dරශස්ත කිරීම සඳහා සේවාදායකයාගේ පැත්තේ ක්\u200dරියාත්මක වන jQuery ස්ක්\u200dරිප්ටින් පුස්තකාලය භාවිතා කරන JavaScript කේතය ලියන්න;
  • අනිෂ්ට ප්\u200dරහාරයන්ට ප්\u200dරතිරෝධී වන MVC යෙදුම් තැනීම සහ පරිශීලක මනාපයන් පිළිබඳ තොරතුරු ගබඩා කිරීම;
  • වින්ඩෝස් අසුර් වෙබ් සේවාවක් ලිවීමට සහ එම්වීසී යෙදුමකින් එය ප්\u200dරවේශ කරන්නේ කෙසේදැයි තේරුම් ගන්න;
  • වෙබ් API යනු කුමක්ද සහ සංවර්ධකයින්ට ඒවා යෙදුමකට එක් කළ හැක්කේ මන්දැයි විස්තර කරන්න;
  • mVC යෙදුම මඟින් බ්\u200dරව්සර් ඉල්ලීම් සැකසීමේ ආකාරය වෙනස් කිරීම;
  • සංවර්ධන පරිගණකයක සිට වෙබ් සේවාදායකයකට ASP.NET MVC 5 වෙබ් යෙදුමක් ඇසුරුම් කර යෙදවිය යුතු ආකාරය විස්තර කරන්න;
  • aSP.NET MVC 5 භාවිතා කරමින් වෙබ් යෙදුම් සංවර්ධනය කිරීම;
  • aSP.NET MVC 5 ආකෘති සංවර්ධනය කිරීම;
  • aSP.NET MVC 5 පාලක සංවර්ධනය;
  • aSP.NET MVC 5 දසුන් සංවර්ධනය කිරීම;
  • aSP.NET MVC 5 වෙබ් යෙදුම් පරීක්ෂා කර නිදොස් කරන්නේ කෙසේද;
  • aSP.NET MVC 5 වෙබ් යෙදුම් ව්\u200dයුහගත කිරීම;
  • aSP.NET MVC 5 වෙබ් යෙදුම් සඳහා මෝස්තර යෙදීමෙහි සුවිශේෂත්වය;
  • aSP.NET MVC 5 හි ප්\u200dරතිචාරාත්මක පිටු තැනීමේ යාන්ත්\u200dරණය;
  • ප්\u200dරතිචාරාත්මක වෙබ් යෙදුම් තැනීම සඳහා ජාවාස්ක්\u200dරිප්ට් සහ jQuery භාවිතා කිරීමේ සුවිශේෂත්වය MVC 5;
  • aSP.NET MVC 5 වෙබ් යෙදුම් වෙත ප්\u200dරවේශවීමේ මූලධර්ම;
  • ශක්තිමත් ASP.NET MVC 5 වෙබ් යෙදුම් ගොඩනගන්නේ කෙසේද
  • aSP.NET MVC 5 වෙබ් යෙදුම් වල වෙබ් API ක්\u200dරියාත්මක කිරීම
  • aSP.NET MVC 5 වෙබ් යෙදුම්වල ඉල්ලීම් හැසිරවීම;
  • aSP.NET MVC 5 වෙබ් යෙදුම් යෙදවීමේ මූලධර්ම.

MVC (Model-View-Controller: Model-View-Controller) සංකල්පය මෑත වසරවලදී වෙබ් වැඩසටහන්කරණ ලෝකයේ බොහෝ විට සඳහන් කර ඇත. වෙබ් යෙදුම් සංවර්ධනය සමඟ ඕනෑම ආකාරයකින් සම්බන්ධ වී සිටින සෑම කෙනෙකුම මෙම අක්ෂර මාලාව එක් ආකාරයකින් හෝ වෙනත් ආකාරයකින් හමු වී තිබේ. එම්වීසී සංකල්පය යනු කුමක්ද සහ එය ජනප්\u200dරිය වූයේ ඇයිද යන්න අද අපි සොයා බලමු.

පැරණිතම ඉතිහාසය

එම්වීසී යනු ව්\u200dයාපෘති අච්චුවක් නොවේ, එය අපගේ යෙදුමේ ව්\u200dයුහය, වගකීම් ක්ෂේත්\u200dර සහ මෙම ව්\u200dයුහයේ එක් එක් කොටස්වල අන්තර්ක්\u200dරියාකාරිත්වය අපි ගොඩනඟන්නේ කෙසේද යන්න විස්තර කරන සැලසුම් අච්චුවකි.

එය මුලින්ම විස්තර කළේ 1979 දී, ඇත්ත වශයෙන්ම, වෙනස් පරිසරයක් සඳහා ය. වෙබ් යෙදුමක් පිළිබඳ සංකල්පය එවකට නොතිබුණි. ටිම් බර්නර්ස් ලී අනූව දශකයේ මුල් භාගයේ දී ලෝක ව්\u200dයාප්ත වෙබ් අඩවියේ (WWW) බීජ වැපිරූ අතර ලෝකය සදහටම වෙනස් කළේය. අද අප භාවිතා කරන අච්චුව වෙබ් සංවර්ධනය සඳහා මුල් අච්චුවේ අනුවර්තනයකි.

වෙබ් යෙදුම්වල මෙම ව්\u200dයුහයේ විශාල ජනප්\u200dරියතාවයට හේතු වී ඇත්තේ එය ඉතා ජනප්\u200dරිය වී ඇති සංවර්ධන පරිසරයන් දෙකකට ඇතුළත් වීමයි: ස්ට්\u200dරට්ස් සහ රූබි ඔන් රේල්ස්. මෙම සංවර්ධන පරිසරයන් දෙක පසුකාලීනව නිර්මාණය කරන ලද සිය ගණනක් වැඩ පරිසරයන් සඳහා සංවර්ධන මාවත් සලකුණු කළේය.

වෙබ් යෙදුම් සඳහා MVC

MVC සැලසුම් රටාව පිටුපස ඇති අදහස ඉතා සරල ය: අපගේ යෙදුම්වල විවිධ ක්\u200dරියාකාරිත්වය සඳහා වගකීම් පැහැදිලිව වෙන් කළ යුතුය:

යෙදුම ප්\u200dරධාන කොටස් තුනකට බෙදා ඇති අතර, ඒ සෑම එකක්ම විවිධ කාර්යයන් සඳහා වගකිව යුතුය. උදාහරණයක් භාවිතා කරමින් සංරචක දෙස සමීපව බලමු.

පාලකය

පාලකය පරිශීලක ඉල්ලීම් කළමනාකරණය කරයි (පරිශීලකයා විවිධ ක්\u200dරියා සිදු කිරීම සඳහා අතුරුමුහුණත් අංග මත ක්ලික් කළ විට HTTP GET හෝ POST ඉල්ලීම් ලෙස ලැබුණි). එහි ප්\u200dරධාන කාර්යය වන්නේ පරිශීලකයා විසින් නිර්වචනය කරන ලද ක්\u200dරියාවන් සිදු කිරීම සඳහා අවශ්\u200dය සම්පත් හා වස්තූන් ක්\u200dරියාවට නැංවීම සහ සම්බන්ධීකරණය කිරීමයි. සාමාන්\u200dයයෙන්, පාලකය කාර්යය සඳහා සුදුසු ආකෘතියක් අමතා සුදුසු දැක්ම තෝරා ගනී.

ආකෘතිය

ආකෘතිය යෙදුම් පාලනය පිළිබඳ සංකල්පය නිරූපණය කරන දත්ත සමඟ වැඩ කිරීමට භාවිතා කරන දත්ත සහ රීති. ඕනෑම යෙදුමක, සමස්ත ව්\u200dයුහය දත්ත ලෙස ආදර්ශනය කර ඇති අතර එය එක්තරා ආකාරයකින් සකසනු ලැබේ. යෙදුමක් සඳහා පරිශීලකයෙකු පණිවිඩයක් හෝ පොතක් ද? නීතිරීතිවලට අනුකූලව සැකසිය යුතු දත්ත පමණක් (දිනය අනාගතයට යොමු කළ නොහැක, විද්\u200dයුත් තැපෑල නිශ්චිත ආකෘතියකින් විය යුතුය, නම X අක්ෂරවලට වඩා දිගු විය නොහැක, සහ යනාදිය).

පරිශීලකයා ඉල්ලා ඇති දත්ත (පණිවිඩය, පොත් පිටුව, ඡායාරූප ඇල්බමය සහ ඒ හා සමාන) පාලකවරයාට ආකෘතිය ලබා දෙයි. අපට එය පරිශීලකයාට ඉදිරිපත් කිරීමට අවශ්\u200dය වන්නේ කෙසේ වෙතත් දත්ත ආකෘතිය සමාන වේ. එබැවින්, දත්ත ප්\u200dරදර්ශනය කිරීම සඳහා පවතින ඕනෑම දර්ශනයක් අපි තෝරා ගනිමු.

අපගේ යෙදුමේ තර්කනයේ වැදගත්ම කොටස, අප ගනුදෙනු කරන ගැටලුව විසඳන තර්කනය (සංසදය, ගබඩාව, බැංකුව යනාදිය) ආකෘතියේ අඩංගු වේ. පාලකය බොහෝ දුරට යෙදුම සඳහා ආයතනික තර්කනය අඩංගු වේ (ගෘහ පාලනයට බෙහෙවින් සමාන ය).

දැක්ම

දැක්ම ආකෘතියකින් ලබාගත් දත්ත නිරූපණය කිරීමට විවිධ ක්\u200dරම සපයයි. එය දත්ත වලින් පිරී ඇති අච්චුවක් විය හැකිය. විවිධ වර්ග කිහිපයක් තිබිය හැකි අතර, පාලක විසින් වර්තමාන තත්වයට වඩාත් ගැලපෙන එකක් තෝරා ගනී.

වෙබ් යෙදුමක් සාමාන්\u200dයයෙන් පාලකයන්, ආකෘති සහ දර්ශන එකතුවකින් සමන්විත වේ. පාලකය ප්\u200dරධාන පාලකය ලෙස වින්\u200dයාසගත කළ හැකි අතර, එමඟින් සියලු ඉල්ලීම් ලැබෙන අතර තත්වය අනුව ක්\u200dරියා කිරීමට වෙනත් පාලකයන් අමතයි.

උදාහරණයක් බලමු

අපි සබැඳි පොත් සාප්පුවක් සංවර්ධනය කළ යුතු යැයි කියමු. පරිශීලකයාට පහත සඳහන් දෑ කළ හැකිය: පොත් බැලීම, ලියාපදිංචි කිරීම, මිලදී ගැනීම, වත්මන් අනුපිළිවෙලට අයිතම එකතු කිරීම, පොත් නිර්මාණය කිරීම හෝ මකා දැමීම (ඔහු පරිපාලකයෙකු නම්). පරිශීලකයා ප්\u200dරවර්ගයක් මත ක්ලික් කළ විට කුමක් සිදුවේ දැයි බලමු. මන asy කල්පිතය අපගේ ගබඩාවේ ඇති පොත් වල මාතෘකා බැලීමට.

පොත් සම්බන්ධ සියලු ක්\u200dරියා හැසිරවීමට අපට නිශ්චිත පාලකයක් ඇත (බැලීම, සංස්කරණය කිරීම, නිර්මාණය කිරීම සහ යනාදිය). අපි එය අමතමු books_controller.php අපගේ උදාහරණයේ. උදාහරණයක් ලෙස අපට ආකෘතියක් ද අවශ්\u200dය වේ book_model.phpඑය ගබඩා ස්ථානයකට සම්බන්ධ දත්ත සහ තර්කනය හසුරුවයි. අවසාන වශයෙන්, පොත් ලැයිස්තුවක්, සංස්කරණය කිරීමට පිටුවක් සහ යනාදිය වැනි දත්ත නියෝජනය කිරීමට අපට අදහස් කිහිපයක් අවශ්\u200dය වේ.

මාතෘකාව අනුව පොත් ලැයිස්තුවක් බැලීමට පරිශීලකයාගේ ඉල්ලීම හසුරුවන ආකාරය පහත රූපයේ දැක්වේ. මන asy කල්පිතය:

පාලකයට (books_controller.php) පරිශීලකයාගේ ඉල්ලීම ලැබේ (HTTP GET හෝ POST ඉල්ලීම). අපට index.php වැනි මධ්\u200dයම පාලකයක් සංවිධානය කළ හැකි අතර එය ඉල්ලීම ලබාගෙන books_controller.php අමතන්න.

පාලකය ඉල්ලීම සහ පරාමිතීන් පරීක්ෂා කර පසුව ආකෘතිය අමතයි (book_model.php), ඉල්ලීම මාතෘකාව පිළිබඳ දැනට පවතින පොත් ලැයිස්තුවක් ඇය සතුව ඇත මන asy කල්පිතය .

ආකෘතිය දත්ත සමුදායකින් දත්ත ලබා ගනී (හෝ තොරතුරු ගබඩා කරන වෙනත් ප්\u200dරභවයකින්), පෙරහන් සහ අවශ්\u200dය තර්කනය අදාළ කර පොත් ලැයිස්තුවක් නියෝජනය කරන දත්ත නැවත ලබා දෙයි.

පරිශීලකයාට දත්ත ඉදිරිපත් කිරීම සඳහා පාලකය සුදුසු දර්ශනයක් භාවිතා කරයි. ඉල්ලීම පැමිණෙන්නේ නම් ජංගම දුරකථන, ජංගම දුරකථනය සඳහා දර්ශනය භාවිතා වේ; පරිශීලකයා යම් අතුරු මුහුණතක් නිර්මාණය කරන්නේ නම්, සුදුසු දසුන තෝරා ගනු ලැබේ, සහ එසේ ය.

ප්\u200dරතිලාභ මොනවාද?

MVC සංකල්පය භාවිතා කිරීමෙන් අපට ලැබෙන වඩාත්ම පැහැදිලි වාසිය නම් ඉදිරිපත් කිරීමේ තර්කනය (පරිශීලක අතුරුමුහුණත) සහ යෙදුම් තර්කනය පැහැදිලිව වෙන් කිරීමයි.

විවිධ වර්ගයේ උපාංග භාවිතා කරන විවිධ වර්ගයේ පරිශීලකයින්ට සහාය වීම මේ දිනවල පොදු ගැටළුවකි. ඉල්ලීම පුද්ගලික පරිගණකයකින් හෝ ජංගම දුරකථනයකින් ලැබෙන්නේ නම් ලබා දී ඇති අතුරු මුහුණත වෙනස් විය යුතුය. ආකෘතිය එකම දත්ත ලබා දෙයි, එකම වෙනස වන්නේ දත්ත ප්\u200dරතිදානය කිරීම සඳහා පාලකය විවිධ අදහස් තෝරා ගැනීමයි.

යෙදුම් තර්කනයෙන් අදහස් හුදකලා කිරීමට අමතරව, MVC සංකල්පය විශාල යෙදුම්වල සංකීර්ණතාව සැලකිය යුතු ලෙස අඩු කරයි. කේතය වඩාත් ව්\u200dයුහාත්මක වන අතර එමඟින් විසඳුම් නඩත්තු කිරීම, පරීක්ෂා කිරීම සහ නැවත භාවිතා කිරීම පහසුය.

නිෂ්පාදන පරිසරයක් භාවිතා කරන්නේ ඇයි?

ඔබ ධාවන කාලය භාවිතා කරන විට, මූලික MVC රාමුව දැනටමත් ක්\u200dරියාත්මක වන අතර, ඔබ කළ යුතුව ඇත්තේ MVC රටාව අනුගමනය කිරීම සඳහා ඔබේ ලිපිගොනු සුදුසු නාමාවලිවල තැබීමෙන් රාමුව දීර් extend කිරීමයි. ඊට අමතරව, ඔබට දැනටමත් ලියා ඇති සහ හොඳින් පරීක්ෂා කර ඇති කාර්යයන් සමූහයක් ඇත.

කේක් පීඑච්පී උදාහරණයක් ලෙස එම්වීසී වැඩ බංකුව ගනිමු. ස්ථාපනය කිරීමෙන් පසු, ඔබට ප්\u200dරධාන නාමාවලි තුනක් ඇත:

  • කේක් /
  • විකුණුම්කරුවන් /

ෆෝල්ඩරය යෙදුම යනු ඔබගේ ලිපිගොනු වල පිහිටීමයි. ඔබගේ යෙදුමේ කොටස සංවර්ධනය කිරීමට මෙය ස්ථානයයි.

ෆෝල්ඩරයේ කේක් කේක් පීඑච්පී ගොනු (ඩෙස්ක්ටොප් ක්\u200dරියාකාරිත්වය) සපයයි.

ෆෝල්ඩරය වෙළෙන්දන් තෙවන පාර්ශවීය PHP පුස්තකාල ගබඩා කිරීමට සේවය කරයි.

ඔබගේ සේවා ස්ථානයට (යෙදුම් නාමාවලිය) පහත ව්\u200dයුහය ඇත:

  • යෙදුම /
    • config /
    • පාලක /
    • පෙදෙසි /
    • ආකෘති /
    • ප්ලගීන /
    • පරීක්ෂණ /
    • විකුණුම්කරුවන් /
    • දසුන් /
    • webroot /

ඔබේ පාලකයන් නාමාවලියෙහි තැබිය යුතුය පාලකයන්, නාමාවලියෙහි ආකෘති ආකෘති සහ නාමාවලියෙහි අදහස් අදහස්!

ඔබ වැඩ බංකුව භාවිතා කිරීමට පටන් ගත් පසු, ඔබගේ යෙදුමේ ඕනෑම කොටසක් නිර්මාණය කිරීමට හෝ වෙනස් කිරීමට අවශ්\u200dය තැන කොතැනදැයි වහාම පැහැදිලි වේ. මෙම සංවිධානය විසින්ම යෙදුමක් සංවර්ධනය කිරීමේ හා නඩත්තු කිරීමේ ක්\u200dරියාවලිය බෙහෙවින් සරල කරයි.

අපගේ උදාහරණය සඳහා වැඩ කරන පරිසරය භාවිතා කිරීම

මෙම නිබන්ධනය කේක් පීඑච්පී භාවිතයෙන් යෙදුමක් නිර්මාණය කිරීමේ ක්\u200dරියාවලිය පෙන්වීමට අදහස් නොකරන බැවින්, අපි ආකෘතිය, පාලකය සහ දර්ශනය සඳහා කේතය පෙන්වන්නේ එම්වීසී රාමුව භාවිතා කිරීමෙන් ලැබෙන ප්\u200dරතිලාභ පිළිබඳ අදහස් දැක්වීම් සමඟ පමණි. කේතය විශේෂයෙන් සරල කර ඇති අතර සැබෑ යෙදුමක භාවිතා කිරීමට සුදුසු නොවේ.

මතක තබා ගන්න, අපි පොත් සාප්පුවක් දෙස බැලූ අතර මාතෘකාව පිළිබඳ සම්පූර්ණ පොත් ලැයිස්තුවක් දැකීමට කැමති කුතුහලයෙන් යුත් පරිශීලකයෙක්. මන asy කල්පිතය... පාලක විසින් පරිශීලකයාගේ ඉල්ලීම ලබාගෙන අවශ්\u200dය ක්\u200dරියාමාර්ග සම්බන්ධීකරණය කළේය.

එබැවින්, පරිශීලකයා බොත්තම ක්ලික් කළ වහාම, බ්\u200dරව්සරය ලබා දී ඇති url එක ඉල්ලා සිටී:

Www.ourstore.com/books/list/fantasy

CakePHP අච්චුවක් සමඟ URL ආකෘතිකරණය කරයි / පාලකය / ක්\u200dරියාව / param1 / param2 කොහෙද කටයුතු යනු පාලකය විසින් හඳුන්වන ශ්\u200dරිතයකි. පැරණි සම්භාව්\u200dය ස්වරූපයෙන්, url එක මේ ආකාරයෙන් පෙනෙනු ඇත:

Www.ourstore.com/books_controller.php?action\u003dlist&category\u003dfantasy

පාලකය

කේක් පීඑච්පී නිෂ්පාදන පරිසරය තුළ, අපගේ පාලකය මේ ආකාරයෙන් පෙනෙනු ඇත:

පංති පොත් පාලකය AppController දිගු කරයි (

ක්\u200dරියාකාරී ලැයිස්තුව ($ කාණ්ඩය) (

$ this-\u003e set ("books", $ this-\u003e Book-\u003e findAllByCategory ($ category));

ශ්\u200dරිත එකතු කිරීම () (... ...)

ශ්\u200dරිතය මකන්න () (... ...)

... ... } ?>

සරලයි නේද?. මෙම පාලකය ලෙස සුරකිනු ඇත books_controller.php සහ පළ කරන ලදි / යෙදුම / පාලකයන්... අපගේ උදාහරණය සඳහා ක්\u200dරියා කරන කාර්යයන් ලැයිස්තුවක් මෙන්ම පොත් ආශ්\u200dරිත මෙහෙයුම් සිදු කිරීම සඳහා වන වෙනත් කාර්යයන් ද එහි අඩංගු වේ (නව පොතක් එක් කිරීම, පොතක් මකා දැමීම යනාදිය).

වැඩ කරන පරිසරය අපට බොහෝ සූදානම් කළ විසඳුම් ලබා දෙන අතර අපට අවශ්\u200dය වන්නේ පොත් ලැයිස්තුවක් පමණක් ජනනය කිරීමයි. පාලකයේ මූලික ක්\u200dරියාකාරිත්වය දැනටමත් අර්ථ දක්වා ඇති මූලික පන්තියක් ඇත, එබැවින් ඔබට මෙම පන්තියේ ගුණාංග සහ කාර්යයන් උරුම කර ගත යුතුය ( AppController උරුමක්කාරයා පාලකය).

ක්\u200dරියාකාරී ලැයිස්තුවේ ඔබ කළ යුත්තේ දත්ත ලබා ගැනීම සඳහා ආකෘතිය අමතා පරිශීලකයාට ඉදිරිපත් කිරීමට දර්ශනය තෝරන්න. මෙන්න එය කරන්නේ කෙසේද.

this-\u003e පොත අපගේ ආකෘතිය සහ කේතයේ කොටසක්:

$ this-\u003e Book-\u003e findAllByCategory ($ category)

තෝරාගත් මාතෘකාව පිළිබඳ පොත් ලැයිස්තුවක් ආපසු ලබා දෙන ලෙස ආකෘතියට කියයි (අපි පසුව ආකෘතිය දෙස බලමු).

ක්රමය set පෙළට:

$ this-\u003e set ("books", $ this-\u003e Book-\u003e findAllByCategory ($ category));

පාලකය දත්ත දර්ශනයට මාරු කරයි. විචල්ය පොත් ආකෘතිය මඟින් ආපසු ලබා දුන් දත්ත ගෙන එය නැරඹිය හැකිය.

දැන් ඉතිරිව ඇත්තේ දර්ශනය පෙන්වීම පමණි, නමුත් අපි පෙරනිමි දර්ශනය භාවිතා කරන්නේ නම් මෙම ක්\u200dරියාව කේක් පීඑච්පී තුළ ස්වයංක්\u200dරීයව සිදු වේ. අපට වෙනත් මතයක් භාවිතා කිරීමට අවශ්\u200dය නම්, අපි පැහැදිලිවම ක්\u200dරමවේදය අමතන්න විදැහුම්කරණය.

ආකෘතිය

ආකෘතිය ඊටත් වඩා සරල ය:

පන්ති පොත AppModel දිගු කරයි (

එය හිස් ඇයි? මන්ද එය අවශ්\u200dය ක්\u200dරියාකාරීත්වය සපයන මූලික පන්තියකින් උරුම වන අතර, වැඩ බංකුව අනෙක් සියලුම කාර්යයන් ස්වයංක්\u200dරීයව සිදු කිරීම සඳහා අපි කේක් පීඑච්පී හි නම් කිරීමේ සම්මුතිය භාවිතා කළ යුතුය. උදාහරණයක් ලෙස, කේක් පීඑච්පී මෙම ආකෘතිය භාවිතා කර ඇති බව නමින් දනී පොත් පාලකයඇයට පොත් නම් වූ දත්ත සමුදා වගුවකට ප්\u200dරවේශය ඇති බවත්.

මෙම නිර්වචනය සමඟ, අපට දත්ත සමුදායේ දත්ත කියවීමට, මකා දැමීමට හෝ සුරැකීමට හැකි ආකෘතියක් ඇත.

කේතය ලෙස සුරකින්න book.php ෆෝල්ඩරයේ / යෙදුම / ආකෘති.

දැක්ම

අප දැන් කළ යුත්තේ ක්\u200dරියාකාරී ලැයිස්තුව සඳහා දර්ශනයක් (අවම වශයෙන් එකක්) නිර්මාණය කිරීම පමණි. දර්ශනය මඟින් HTML කේතයක් සහ PHP කේත පේළි කිහිපයක් (ආකෘතියෙන්) ලබා දෙනු ඇත.












නම කර්තෘ මිල

ඔබට පෙනෙන පරිදි, දර්ශනය සම්පූර්ණ පිටුවක් සාදන්නේ නැත, නමුත් HTML කැබැල්ලක් පමණි (මෙම නඩුවේ වගුවක්). කේක්පීඑච්පී පිටු අච්චුවක් අර්ථ දැක්වීමට තවත් ක්\u200dරමයක් සපයන අතර දර්ශනය එම අච්චුවට ඇතුළත් කර ඇත. HTML පිටුවක කොටස් නිර්මාණය කිරීමේදී (ආකෘති, සබැඳි, අජැක්ස් හෝ ජාවාස්ක්\u200dරිප්ට් ඇතුළු කිරීම) පොදු කාර්යයන් ඉටු කිරීම සඳහා වැඩ බංකුව අපට උපකාරක වස්තු කිහිපයක් සපයයි.

දර්ශනය ලෙස සුරකින්න list.ctp (ලැයිස්තුව යනු ක්\u200dරියාවෙහි නම වන අතර ctp යනු කේක් පීඑච්පී අච්චුවයි) ෆෝල්ඩරයේ / යෙදුම / දර්ශන / පොත් (මෙය පාලක ක්\u200dරියාවක් සඳහා දර්ශනයක් වන නිසා).

කේක් පීඑච්පී වැඩ බංකුව භාවිතයෙන් සංරචක තුනම ක්\u200dරියාත්මක වන්නේ එලෙසයි!

“මිනිස්සු මේ කරුසෝව මෙතරම් අගය කරන්නේ ඇයිදැයි මට තේරෙන්නේ නැහැ?” දිව කතා කරන, ගොග්ලිං, ගායනය - ඔබට එය තේරුම් ගත නොහැක!
- කරුසෝ ගායනා කරන ආකාරය ඔබ අසා තිබේද?
- ඔව්, රබිනොවිච් ඔහුගේ ප්\u200dරසංගයේ සිට මට දුරකථනයෙන් යමක් ගායනා කළා.

තොරතුරු තාක්ෂණ රහස් පරීක්ෂක. පළමු කොටස

ආදර්ශ-දර්ශන-පාලක මාතෘකාව පිළිබඳ තවත් ලිපියක් ලිවීම මෝඩ හා කර්මය සඳහා හානිකර බව මම තේරුම් ගතිමි. කෙසේ වෙතත්, මෙම "රටාව" සමඟ මට පෞද්ගලික සම්බන්ධතාවයක් තිබේ - අසාර්ථක ව්\u200dයාපෘතියක්, අවුරුදු භාගයක ජීවිතයක් සහ වෙහෙස මහන්සි වී "කූඩයේ".


අපි දැනටමත් එම්වීසී නොමැතිව මූලධර්ම මගින් මඟ පෙන්වනු ලැබුවෙමු - කේතය ස්පැගටි බෝලයක් මෙන් පෙනීම නවතා දමා අඩකින් කපා ඇත (මේ ගැන පසුව, අපගේ ව්\u200dයාපෘතියේ “මූලධර්ම” ක්\u200dරියාත්මක කළ ආකාරය පිළිබඳ පොරොන්දු වූ ලිපියේ). නමුත් මට අවශ්\u200dය වූයේ අප කළ වැරැද්ද කුමක්ද, වැරැද්ද කුමක්ද? දීර් V කාලයක් තිස්සේ එම්වීසී යන කෙටි යෙදුම අඩංගු සියල්ල අධ්\u200dයයනය කරන ලදී. නිර්මාණකරුගේ මුල් කෘති අපට හමු වන තුරු - ට්\u200dරිග්ව් රීන්ස්කොග් ...


ඊට පස්සෙ හැම දෙයක්ම තැනට වැටුණා. ඇත්ත වශයෙන්ම, මූලධර්ම මත පදනම්ව, අපි "මුල් එම්වීසී" යලි නිර්මාණය කළෙමු. එම්වීසී ලෙස බොහෝ විට කියැවෙන දෙයට කිසිදු සම්බන්ධයක් නැත ... මෙන්ම හොඳ ගෘහ නිර්මාණ ශිල්පය. “සම්භාව්\u200dය එම්වීසී” හි ඇති නොගැලපීම ගැන බොහෝ අය ලියන ආකාරය අනුව විනිශ්චය කිරීම, ඒ ගැන තර්ක කිරීම සහ එහි සියලු ආකාරයේ වෙනස් කිරීම් නිර්මාණය කිරීම, මෙම ගැටලුවට මුහුණ දීමට අප පමණක් නොවේ.


වසර 30 කට වැඩි කාලයක් තිස්සේ MVC හි එකතු කරන ලද අදහස් සහ විසඳුම් පරිශීලක අතුරුමුහුණත් සංවර්ධනය සඳහා වඩාත්ම වැදගත් වේ. එහෙත්, පවතින ව්\u200dයාකූලත්වය සහ ගැටුම්කාරී අර්ථකථන රාශියක් තිබියදීත්, සංවර්ධකයින් අඛණ්ඩව දෙවන තොරතුරු වලින් සෑහීමකට පත්වේ, විකිපීඩියාවෙන් එම්වීසී පිළිබඳ දැනුම ලබා ගැනීම, අන්තර්ජාලයේ කුඩා ලිපි සහ වෙබ් යෙදුම් සංවර්ධනය කිරීම සඳහා රාමු. වඩාත්ම දියුණු කියවීම මාටින් ෆෝලර් ය. කිසියම් හේතුවක් නිසා කිසිවෙකු පාහේ ප්\u200dරාථමික ප්\u200dරභවයන් වෙත හැරෙන්නේ නැත. මම පිරවීමට කැමති පරතරය මෙයයි. ඒ සමඟම සමහර මිථ්\u200dයාවන් දුරු කරයි.



මිථ්\u200dයාවන්: MVC නිර්මාණය කර ඇත්තේ ස්මාල්ටෝක් සඳහා ය

1978/79 දී සෙරොක්ස් පාර්ක් හි ඔහු කළ වැඩවල ප්\u200dරති M ලයක් ලෙස ට්\u200dරිග්ව් රීන්ස්කොග් විසින් එම්වීසී සංකල්පය සකස් කරන ලදී. රීතියක් ලෙස, MVC නිර්මාණය කිරීම ස්මාල්ටෝක් භාෂාව සමඟ සම්බන්ධ වී ඇති නමුත් මෙය සම්පූර්ණයෙන්ම සත්\u200dය නොවේ. ඇත්ත වශයෙන්ම, රීන්ස්කග් ඇලන් කේගේ නායකත්වයෙන් යුත් ඩයිනබුක් "සියලු වයස්වල ළමයින්" ලැප්ටොප් කණ්ඩායමේ වැඩ කළේය.


එම ව්\u200dයාපෘතියේ පරිමාණය හා විප්ලවීය ස්වභාවය තක්සේරු කිරීම සඳහා, පරිගණක සමඟ වැඩ කිරීමට නම්, බහු පිටු අත්පොත් අධ්\u200dයයනය කර අධ්\u200dයයන උපාධියක් ලබා ගත යුතු කාලය මෙය බව මතක තබා ගත යුතුය. ඇලන් කේ විසින් විසඳීමට උත්සාහ කළ ගැටළුව වූයේ පරිගණකය සහ සාමාන්\u200dය පරිශීලකයා එකිනෙකට සමීප කරවීම, ඒවා වෙන් කරන බිත්තිය “බිඳ දැමීම” ය. ඔහුට අවශ්\u200dය වූයේ පරිශීලකයාට අතිශයින්ම සරල හා පහසු මෙවලම් ලබා දීමට ය, නමුත් ඒ සමඟම පරිගණකය සහ සංකීර්ණ යෙදුම් පාලනය කිරීමට හැකි වනු ඇත.


චිත්රක අතුරුමුහුණතේ අත්තිවාරම දැමූ විට "මිත්රශීලී අතුරුමුහුණත" යන සංකල්පය ඇති වූයේ එවිටය. ස්මාල්ටෝක් භාෂාව ද වස්තු සංකල්ප සමඟ සංවර්ධනය කරන ලදී. නැඹුරු වැඩසටහන්කරණයඑවිට නුපුහුණු පරිශීලකයාට “වැඩසටහන් තේරුම් ගැනීමට හා ලිවීමට හැකිය”. ස්ටීව් ජොබ්ස් 1979 දී සෙරොක්ස් පාර්ක් හිදී දුටු දේ විස්තර කරයි - ස්ටීව් ජොබ්ස් XEROX වෙතින් GUI පිළිබඳ අදහස් ලබා ගත් ආකාරය (6.30 සිට)


ඉතා ශක්තිමත් සංවර්ධකයින් කණ්ඩායමක් විසින් මෙම ව්\u200dයාපෘතිය වසර 10 ක් පමණ ක්\u200dරියාත්මක වේ. පරිශීලක අතුරුමුහුණත් ක්ෂේත්\u200dරයේ සහ වස්තු-නැඹුරු වැඩසටහන්කරණයේ සහ පොදුවේ විශාල හා සංකීර්ණ පරිගණක පද්ධති සංවර්ධනය කිරීමේ ප්\u200dරති found ලයක් ලෙස සොයාගත් විසඳුම්, ප්\u200dරවේශයන්, මූලධර්ම යම් දුරකට රීන්ස්කොග් විසින් නැවත ලබාගෙන MVC හි පදනම සැකසීය. එබැවින් එම්වීසී යනු සැබවින්ම, වාස්තු විද්\u200dයාත්මක අදහස් මෙහෙයවන එකතුවකි. ස්මාල්ටෝක් -80 හි, මෙම අදහස් ඔවුන්ගේ පළමු අර්ථවත් ක්\u200dරියාවට නැංවීය. එපමණක් නොව, රෙන්ස්කාග් සෙරොක්ස් පාර්ක් වෙතින් ඉවත්වීමෙන් පසුව සහ ඔහුගේ සහභාගීත්වයෙන් තොරව මෙය සිදු කරන ලදී.


අවාසනාවකට මෙන්, දීර් real කාලයක් තිස්සේ "සැබෑ එම්වීසී" පිළිබඳ කිසිදු තොරතුරක් ලබා ගත නොහැකි විය. නිර්මාණකරුවන්ගේ පළමු බැරෑරුම් ප්\u200dරකාශනය පළ වූයේ වසර 10 කට පසුවය - "ස්මාල්ටෝක් -80 හි ආදර්ශ-දර්ශන-පාලක පරිශීලක අතුරුමුහුණත භාවිතා කිරීම සඳහා වූ කුක් පොතක්". ෆවුලර් පවා සඳහන් කරන්නේ ස්මාල්ටෝක් හි ක්\u200dරියාකාරී අනුවාදයක් මත තමා එම්වීසී ඉගෙන ගත් බවයි - "මට ස්මාල්ටෝක් -80 හි ක්\u200dරියාකාරී අනුවාදයකට ප්\u200dරවේශ විය. එබැවින් මට එම්වීසී ඉගෙන ගත හැකි විය. පර්යේෂණය ගැඹුරු යැයි මට පැවසිය නොහැක. නමුත් එය වෙනත් විස්තර කිරීම්වලට පැහැදිලි කළ නොහැකි විසඳුමේ සමහර අංග තේරුම් ගැනීමට මට ඉඩ ලබා දුන්නේය.".


එබැවින් “මිථ්\u200dයාවන්” සහ විවිධ අර්ථකථන ඉදිරිපත් වීම පුදුමයක් නොවේ. ගැටළුව වන්නේ බොහෝ "ද්විතීයික" ප්\u200dරභවයන් එම්වීසී විකෘති කිරීමකින් පමණක් නොව රැවටිලිකාර ලෙස සරල කරන ලද ස්වරූපයෙන් විස්තර කිරීම සාමාන්\u200dයයෙන් යම් ආකාරයක විධිමත් යෝජනා ක්\u200dරමයක ස්වරූපයෙන් විස්තර කිරීමයි.


එහි ප්\u200dරති As ලයක් වශයෙන්, බොහෝ අය සැබවින්ම MVC යෝජනා ක්\u200dරමයක් හෝ රටාවක් ලෙස සලකති (මේ නිසා නිරන්තරයෙන් ප්\u200dරශ්නය පැන නගී - දැනට පවතින බොහෝ යෝජනා ක්\u200dරමවලින් “නිවැරදි” වන්නේ සහ ඒවායින් බොහොමයක් ඇත්තේ මන්ද?). වඩාත් දියුණු MVC ඇමතුම් සංයුක්ත රටාව, එනම්, සංකීර්ණ යෙදුම් ක්\u200dරියාත්මක කිරීම සඳහා එකට වැඩ කරන රටා කිහිපයක එකතුවකි (මෙහි සාමාන්\u200dයයෙන් නිරීක්ෂක, උපායමාර්ග සහ සංයුක්ත සඳහන් වේ). MVC යනු මූලික වශයෙන් වාස්තු විද්\u200dයාත්මක අදහස් / මූලධර්ම / ප්\u200dරවේශයන් සමූහයක් බව විවිධ රටාවන් භාවිතා කරමින් විවිධ ආකාරවලින් ක්\u200dරියාත්මක කළ හැකි බව තේරුම් ගන්නේ ස්වල්ප දෙනෙකුට පමණි ...


දෙවැන්න විශේෂයෙන් මාටින් ෆෝලර් ද ඇතුළත් ය. මෙන්න ඔහු ලියන දේ: “එම්වීසී බොහෝ විට රටාවක් ලෙස හඳුන්වනු ලැබේ, නමුත් එය විවිධ අදහස් අඩංගු බැවින් එය රටාවක් ලෙස සිතීමෙන් මට වැඩි වාසියක් නොපෙනේ. විවිධ පුද්ගලයින් විවිධ ප්\u200dරභවයන්ගෙන් MVC ගැන කියවන අතර එතැන් සිට විවිධ අදහස් ලබා ගනී, නමුත් ඔවුන් ඒවා එකම ලෙස හඳුන්වයි - "MVC". මෙය විශාල ව්\u200dයාකූලත්වයකට තුඩු දෙන අතර MVC පිළිබඳ වරදවා වටහාගැනීම් හා වරදවා වටහාගැනීම්වල ප්\u200dරභවයක් ලෙසද සේවය කරයි, මිනිසුන් “බිඳුණු දුරකථනයක්” හරහා ඒ ගැන දැනගත්තාක් මෙන් .... එම්වීසී ලෙස විස්තර කර ඇති දෙයක් මා දැක ඇති වාර ගණන මට දැනටමත් අහිමි වී ඇත.[GUI ගෘහ නිර්මාණ]


"හානියට පත් දුරකථනය" සඳහා එක් හේතුවක් වන්නේ "තිරය පිටුපස" ඇති ද්විතීයික ප්\u200dරභවයන් වඩාත් වැදගත් දෙය අතහැර දැමීමයි - එම්වීසී හි නිර්මාතෘවරුන් විසින් ආවේනික වූ වාස්තු විද්\u200dයාත්මක අදහස් සහ ඔවුන් විසඳීමට උත්සාහ කළ කාර්යයන් ය. එම්වීසී හි සාරය අවබෝධ කර ගැනීමට සහ අන්තරායන් සහ දෝෂ විශාල සංඛ්\u200dයාවක් වළක්වා ගැනීමට ඔබට ඉඩ සලසන සෑම දෙයක්ම. එමනිසා, මෙම ලිපියෙන් මට සාමාන්\u200dයයෙන් "තිරය පිටුපස" ඉතිරිව ඇති දේ ගැන කතා කිරීමට අවශ්\u200dයයි - එම්වීසී එහි වාස්තු විද්\u200dයාත්මක මූලධර්ම හා අදහස් දෙස බලන විට. යෝජනා ක්\u200dරම ද ඇතත්. ඒ වෙනුවට, අපි ඔවුන් සමඟ ආරම්භ කරමු.


නමුත් පළමුව සබැඳි. රීන්ස්කොග්ගේ මුල් වාර්තාව "මුල් එම්වීසී වාර්තා" ය. පසුකාලීනව රීන්ස්කොග් මේ සියල්ල වඩාත් පැහැදිලිව සකස් කොට විධිමත් කරන ලදී. එහි අතීතය සහ වර්තමානය ”. ඔහුගේ අදහස් දැක්වීම් සමඟ එම කාල පරිච්ඡේදයේ රෙන්ස්කොග්ගේ සටහන් එකතු කරන පිටුව ගැන යමෙකු උනන්දු වනු ඇත - MVC XEROX PARC 1978-79.


ස්මාල්ටෝක් -80 හි එම්වීසී ගැන දැනටමත් සඳහන් කළ පළමු ප්\u200dරකාශනය වැඩිදියුණු කළ ගුණාත්මක භාවයෙන් පමණක් “ස්මාල්ටෝක් -80 පද්ධතියේ ආදර්ශ-දර්ශන-පාලක පරිශීලක අතුරුමුහුණත පිළිබඳ විස්තරයක්” (ග්ලෙන් ක්\u200dරස්නර් සහ ස්ටීවන් පාප්). ලිපිය “ස්මාල්ටෝක් -80 හි යෙදුම් ක්\u200dරමලේඛනය. Model-View-Controller භාවිතා කරන්නේ කෙසේද ”(කර්තෘ ස්ටීව්බර්ක් ස්මාල්ටෝක් -80 මත පදනම් වූ අයිබීඑම් සඳහා ස්මාල්ටෝක් සම්පාදකයාට දායක වූ අතර මැක්ඇප් සංවර්ධනය). හොඳයි, යමෙකුට සම්පූර්ණ ගිල්වීමක් අවශ්\u200dය නම් - “ස්මාල්ටෝක් -80. සුප්\u200dරසිද්ධ ඇඩෙල් ගෝල්ඩ්බර්ග් වෙතින් අන්තර් ක්\u200dරියාකාරී ක්\u200dරමලේඛන පරිසරය ”, රීන්ස්කාග් විසින් ආකෘතිය, දර්ශනය, පාලකය යන යෙදුම් නිර්මාණය කරන ලදී.

MVC යෝජනා ක්\u200dරම

මෙය කුමක්ද සහ ගැටලුව කුමක්ද යන්න අවබෝධ කර ගැනීම සඳහා, පළමුව වඩාත් සාමාන්\u200dය MVC “යෝජනා ක්\u200dරම” විශ්ලේෂණය කරමු. මෙය වැදගත් වන්නේ බොහෝ විට රූපසටහන් සඳහා පැහැදිලි කිරීම් ලබා නොදෙන අතර, ඊට අමතරව, එක් ස්ථානයකින් අර්ථ දැක්වීම් ලබාගෙන ඇති අතර තවත් ස්ථානයකින් රූප සටහන් ලබා ගනී. එහි ප්\u200dරති As ලයක් වශයෙන්, ඔබට සම්පූර්ණයෙන්ම වෙනස් රූප සටහන් සහිත එකම MVC විස්තරයන් දැක ගත හැකිය, එය ඉතා ව්\u200dයාකූල වේ.


එබැවින්, එම්වීසී අර්ථ නිරූපණය කර විවිධාකාරයෙන් නිරූපණය කර තිබියදීත්, මේ සියලු විවිධත්වයන් තුළ පොදු “හරයක්” තවමත් වෙන්කර හඳුනාගත හැකිය. පොදු දෙය නම් සෑම තැනකම නිශ්චිත කොටස් තුනක් ගැන කියැවීමයි - මොඩල්, වීව් සහ පාලකය, ඒවා එකිනෙකට එක්තරා ආකාරයකින් සම්බන්ධ වේ, එනම්:

    ආකෘතිය දර්ශනය හෝ පාලකය ගැන කිසිවක් නොදන්නා අතර එය ස්වාධීන අංගයක් ලෙස සංවර්ධනය කිරීමට සහ පරීක්ෂා කිරීමට ඉඩ සලසයි. එම්වීසී හි ප්\u200dරධාන කරුණ මෙයයි.

    දර්ශනය ආදර්ශය පෙන්වයි. එයින් අදහස් කරන්නේ ඔහු කෙසේ හෝ එයින් ප්\u200dරදර්ශනය කිරීමට අවශ්\u200dය දත්ත ලබා ගත යුතු බවයි. වඩාත් සුලභ වන්නේ පහත දැක්වෙන විකල්ප දෙකයි: 1) සක්\u200dරීය දසුන, මොඩලය ගැන දන්නා සහ අවශ්\u200dය දත්ත ඔහු විසින්ම ලබා ගනී. 2) පාලක විසින් දත්ත සපයන නිෂ්ක්\u200dරීය දර්ශනය. මෙම අවස්ථාවේ දී, දර්ශනය කිසිදු ආකාරයකින් ආකෘතිය සමඟ සම්බන්ධ නොවේ.


    අදහස් කිහිපයක් තිබිය හැකිය - ඔවුන්ට එකම දත්ත විවිධ ආකාරවලින් ප්\u200dරදර්ශනය කළ හැකිය, නිදසුනක් ලෙස, වගුවක් හෝ ප්\u200dරස්ථාරයක ස්වරූපයෙන්, හෝ මොඩලයේ දත්තවල විවිධ කොටස් ප්\u200dරදර්ශනය කිරීම සඳහා ඔවුන් වගකිව යුතුය.

  1. පාලකය සමහර විට වඩාත්ම මතභේදාත්මක අංගය වේ. එසේ වුවද, පාලකවරයා නිරතුරුවම ආකෘතිය පිළිබඳව දැනුවත්ව සිටින අතර එය වෙනස් කළ හැකිය (සාමාන්\u200dයයෙන් පරිශීලක ක්\u200dරියාවන්ගේ ප්\u200dරති as ලයක් ලෙස).

ඔහුට දර්ශන / දර්ශන කළමනාකරණය කළ හැකිය (විශේෂයෙන් ඒවා කිහිපයක් තිබේ නම්) ඒ අනුව දසුන් ගැන දැනගත හැකිය, නමුත් මෙය අවශ්\u200dය නොවේ.


එම්වීසී හි වඩාත් සුලභ ප්\u200dරභේද දෙකෙහි මූලික (හැකි තරම් සරල) යෝජනා ක්\u200dරම මෙතැන් සිට අපට ලැබේ. හරස් රේඛාව මඟින් පාලකය සහ දර්ශනය අතර විකල්ප සම්බන්ධතාවය දක්වයි.



මෙවැනි මූලික පරිපථය ෆවුලර්හි මෙන් පෙනේ: "මාදිලිය, දර්ශනය සහ පාලකය අතර මූලික සම්බන්ධතා. (මම ඒවා මූලික ලෙස හඳුන්වන්නේ ඇත්ත වශයෙන්ම දර්ශනය සහ පාලකය එකිනෙකා සමඟ කෙලින්ම සම්බන්ධ විය හැකි බැවිනි. කෙසේ වෙතත්, සංවර්ධකයින් වැඩි වශයෙන් මෙම සම්බන්ධතාවය භාවිතා නොකරයි.)":



තව දුරටත්. දර්ශනයක් වැනි ආකෘතියක් උදාසීන හෝ ක්\u200dරියාකාරී විය හැකිය. උදාසීන ආකෘතිය දර්ශනයට හෝ පාලකයට කිසිදු ආකාරයකින් බලපාන්නේ නැත. මෙම අවස්ථාවෙහිදී, මාදිලියේ සියලුම වෙනස්කම් පාලක විසින් නිරීක්ෂණය කරනු ලබන අතර අවශ්\u200dය විටෙක දර්ශනය නැවත ඇඳීම සඳහා ද එය වගකිව යුතුය.


නමුත් සාමාන්\u200dයයෙන්, MVC තවමත් අදහස් කරන්නේ විකල්පයයි ක්\u200dරියාකාරී ආකෘතිය.


"ක්\u200dරියාකාරී ආකෘතිය" දැනුම් දෙයි එහි වෙනස්කම් ඇති බව. ඇය එය කරන්නේ අච්චුවක් හරහා ය නිරීක්ෂකයාඑහි සියලුම "ග්\u200dරාහකයින්ට" වෙනස්කම් පිළිබඳ දැනුම්දීම් යැවීමෙන්. "ක්\u200dරියාකාරී දසුන" මෙම පණිවිඩ සඳහාම දායක වන අතර එමඟින් ආකෘතියෙන් අවශ්\u200dය දත්ත නැවත කියවා යාවත්කාලීන කළ යුත්තේ කවදාදැයි දනී. "උදාසීන දර්ශනයක්" සම්බන්ධයෙන්, ග්\u200dරාහකයා යනු පාලකය වන අතර එය දර්ශනය යාවත්කාලීන කරයි.


සැකිල්ල නිරීක්ෂකයා එක් අතකින්, එහි වෙනස්කම් සිදුවී ඇති බව දර්ශනය හෝ පාලකවරයාට දැනුම් දීමට මොඩලයට ඉඩ ලබා දෙන අතර, අනෙක් අතට, ඇත්ත වශයෙන්ම ඔවුන් ගැන කිසිවක් "නොදන්නා" (ඔවුන් නිශ්චිත "ග්\u200dරාහක" අතුරුමුහුණතක් ක්\u200dරියාත්මක කිරීම හැර) ස්වාධීනව පවතී. එය හැඳින්වේ ලිහිල් බන්ධනය එය MVC හි දෙවන ප්\u200dරධාන ලක්ෂ්\u200dයය ලෙස සැලකේ.


එම්වීසී යනු සංයුක්ත රටාවක් යැයි පැවසූ විට එම රටාව මුලින්ම එහි එක් අංගයක් ලෙස සඳහන් වන්නේ එබැවිනි නිරීක්ෂකයා... රූප සටහන් වල, ලිහිල් බැඳීම සාමාන්\u200dයයෙන් ඉරුණු ඊතලයකින් ඇද ගන්නා නමුත් බොහෝ අය මෙම රීතිය නොසලකා හරිති.


මේ අනුව, වඩා දියුණු "MVC යෝජනා ක්\u200dරම" මේ ආකාරයෙන් පෙනෙනු ඇත:



සටහන: උදාසීන සහ ක්\u200dරියාකාරී ආකෘති යන වචනවලට සම්පූර්ණයෙන්ම වෙනස් අර්ථයක් දෙන කතුවරුන් ඇත. එනම්, සාමාන්\u200dයයෙන් හැඳින්වෙන්නේ තුනී මාදිලිය (දත්ත පමණක් අඩංගු ආකෘතියක්) සහ ටෝල්ස්ටෝයි ආකෘතිය (යෙදුමේ සියලුම ව්\u200dයාපාරික තර්කනයන් අඩංගු අංග සම්පූර්ණ ආකෘතියකි).


අන්තිම දේ. පොදුවේ ගත් කල, MVC, එහි ඕනෑම වර්ගයක, මූලික වශයෙන් පරිශීලක අතුරුමුහුණතක් සහිත යෙදුම් සංවර්ධනය කිරීම සඳහා අච්චුවක් වන අතර එහි ප්\u200dරධාන අරමුණ වන්නේ පරිශීලකයා සමඟ යෙදුමේ අන්තර්ක්\u200dරියාකාරිත්වය සැපයීමයි. එබැවින්, පූර්ණ MVC යෝජනා ක්\u200dරමයක (පැහැදිලිව හෝ ව්\u200dයංගයෙන්) තිබිය යුතුය පරිශීලක... මෙහි මූලික වශයෙන් අර්ථකථන දෙකක් තිබේ:




සටහන: විකල්පය සමඟ ඔබ මතක තබා ගත යුතුය උදාසීන, දර්ශනය කිසියම් ආකාරයකින් ආකෘතියට සම්බන්ධ නොවන විට සහ පාලක විසින් දර්ශනය සඳහා දත්ත සපයන විට, සමහර විට එය MVC ලෙස හැඳින්වේ, සමහර විට එය වෙනම ප්\u200dරභේදයකට වෙන් කරනු ලැබේ - MVP, ඉන්පසු පාලකය නැවත නම් කරනු ලැබේ ඉදිරිපත් කරන්නා.


ඉහත සියල්ල නිදර්ශනය කිරීම සඳහා, "අන්තර්ජාලයෙන්" රූප සටහන් කිහිපයක් තිබේ (ඒවා එතරම් වෙනස් වන්නේ මන්දැයි එය පැහැදිලි වනු ඇතැයි මම විශ්වාස කරමි):



දැන් වඩාත්ම වැදගත් දෙය - ඒවා භාවිතා කරන්නේ කෙසේද, ඒවා අදහස් කරන්නේ කුමක්ද සහ යෙදුම් ලිවීමේදී දර්ශන ආකෘතිය සහ පාලකය අනුරූප වන්නේ කුමක් ද?


මෙහිදී අපට රැඩිකල් ලෙස වෙනස් ප්\u200dරවේශයන් දෙකක් වෙන්කර හඳුනාගත හැකිය, ඒ සෑම එකක් තුළම ආකෘතිය, දර්ශනය සහ පාලකය එකිනෙකට වෙනස් ආකාරවලින් අර්ථ නිරූපණය කෙරේ.

වෙබයෙන් "තුන්-ස්ථර MVC"

පළමු ප්\u200dරවේශය එන්නේ MVC වඩාත් බහුලව භාවිතා වන වෙබ් වැඩසටහන්කරණයෙන් වන අතර එම නිසා එය හැකි තරම් වෙබ් වැඩසටහන් වල ආවේනික ලක්ෂණ පිළිබිඹු කරයි. එනම්, තට්ටු තුනේ ගෘහ නිර්මාණ ශිල්පයට “ග්\u200dරාහක-සේවාදායක-දත්ත සමුදාය” සමඟ බැඳීම සහ ස්ක්\u200dරිප්ටින් භාෂාවන්හි ප්\u200dරමුඛතාවයයි. එහි ප්\u200dරති As ලයක් වශයෙන්, MVC සංරචක ගෘහ නිර්මාණ ශිල්පයේ ස්ථර තුනකට විධිමත් ලෙස බැඳී ඇති අතර එය එසේ වන්නේ:

    ආකෘතිය \u003d දත්ත සමුදාය
    ආකෘතියක් යනු යෙදුම ක්\u200dරියාත්මක වන දත්ත පමණි

    පාලකය \u003d සේවාදායකය
    පාලකය යනු යෙදුමේ ව්\u200dයාපාර තර්කනයයි. සමහර විට පාලකය යනු සියළුම ඉල්ලීම් සැකසීමේ සහ තීරණ ගැනීමේ කේන්ද්\u200dරය මෙන්ම ආකෘතිය සහ දැක්ම අතර සන්නිවේදනය සපයන අතරමැදි තට්ටුවක් බව ද කියනු ලැබේ.

  1. View \u003d සේවාදායකයා (සාමාන්\u200dයයෙන් සිහින්)
    දර්ශනයක් යනු පරිශීලක අතුරුමුහුණතකි. එපමනක් නොව, මෙම නඩුවේ අතුරුමුහුණත, රීතියක් ලෙස, ප්රධාන වශයෙන් හුදෙක් "සැලසුමක්" ලෙස වටහාගෙන ඇත, එය චිත්රක අංග සමූහයකි. මෙම අතුරුමුහුණතේ තර්කනය මෙන්ම දත්ත සමඟ වැඩ කිරීමේ තර්කනය පාලක වෙත මාරු කරනු ලැබේ


මෙම ප්\u200dරවේශයේ ඇති අඩුපාඩුව ගැන බොහෝ දේ ලියා ඇති අතර එය විකිපීඩියාවට පවා ඇතුළු විය (එම්වීසී. වඩාත් පොදු වැරදි). මෙම නඩුවේ පැන නගින ගැටළු ලිපියේ හොඳින් හා විස්තරාත්මකව සාකච්ඡා කර ඇති අතර එය එක්තරා ආකාරයක සම්භාව්\u200dය "" බවට පත්ව ඇත. එමනිසා, මම කෙටියෙන් සාරාංශ කිරීමට උත්සාහ කරමි:

    ආදර්ශ ස්වාධීනත්වය MVC හි කේන්ද්\u200dරීය වේ. ආකෘතිය සිහින් නම්, එනම් එහි අඩංගු වන්නේ දත්ත පමණි, එවිට එහි ස්වාධීන සංවර්ධනය සඳහා ඇති හැකියාව එතරම් තේරුමක් නැත. ඒ අනුව, මෙම ප්රවේශය සමඟ, MVC විසින්ම එහි අර්ථය නැති කර ගනී.

    යෙදුමේ සියලුම ව්\u200dයාපාරික තර්කනයන්, එනම් බොහෝ කේතයන් පාලකය තුළ සංකේන්ද්\u200dරණය වී ඇති අතර පාලකවරයා එම්වීසී හි වඩාත්ම යැපෙන කොටස වුවද මෙය සිදු වේ - පොදුවේ ගත් කල එය ආකෘතිය සහ දර්ශනය යන දෙකම මත රඳා පවතී. පොදුවේ ගත් කල, හොඳින් සැලසුම් කරන ලද යෙදුම්වල, ඔවුන් හරියටම ප්\u200dරතිවිරුද්ධ දේ කිරීමට උත්සාහ කරයි - වඩාත්ම යැපෙන කොටස් අවම විය යුතුය, උපරිම නොවේ.

    ප්\u200dරායෝගිකව, එක් ස්ක්\u200dරිප්ටයක් සාමාන්\u200dයයෙන් වෙබ් යෙදුමක පාලකයට අනුරූප වන අතර, සියලු ව්\u200dයාපාරික තර්කනයන් පාලකයට ඇතුළත් කිරීම ඇත්ත වශයෙන්ම බොහෝ යෙදුම් අවසන් වන්නේ එක් ස්ක්\u200dරිප්ට් එකකිනි. TTUK යන යෙදුම පැමිණියේ මෙහිදීය - මේද ගොළු කැත පාලකය.

  1. රීතියක් ලෙස, මාදිලිය සිහින් පමණක් නොව, දර්ශනය (අඳුරු දර්ශනය හෝ ගොළු අතුරුමුහුණත - ගොළු GUI, ගොළු දර්ශනය) ද, එහි ප්\u200dරති result ලයක් ලෙස, යෙදුමේ සියලු ව්\u200dයාපාරික තර්කනයට අමතරව, පරිශීලක අතුරුමුහුණත කළමනාකරණය කිරීමේ තර්කනය පාලකයේ ද තබා ඇත. එනම්, ව්\u200dයාපාර තර්කනය සහ ඉදිරිපත් කිරීමේ තර්කනය වෙන් කිරීම වෙනුවට, මෙම ප්\u200dරවේශය ඔවුන්ගේ මිශ්\u200dරණයට හේතු වේ.



සාමාන්\u200dය වැරදි: පාලකයේ ව්\u200dයාපාර තර්කනය සහ GUI තර්කනය මිශ්\u200dර කිරීම

ශුභාරංචිය නම් මීට වසර කිහිපයකට පෙර වැඩිපුරම භාවිතා කරන ලද "වෙබ් එම්වීසී" විකල්පය දැන් අඩුවෙමින් තිබීමයි. නරක ආරංචිය නම්, එය තවමත් පුලුල්ව පැතිරී ඇති අතර එය දැන් පැහැදිලිවම නොව වෙස්වළාගත් ස්වරූපයෙන් ය. වාක්\u200dය ඛණ්ඩ සඳහා (මම උපුටා දක්වන්නෙමි): " ආකෘතිය යනු දත්ත සමුදාය සමඟ දත්ත හුවමාරු කිරීමයි ආදිය. පාලකය යනු මෙම දත්ත සැකසීමට සහ දර්ශනය සඳහා සූදානම් වීමේ තර්කනයයි"දැන් ක්\u200dරියාශීලීව" us ණ ", පසුව ඔවුන් ලිවීමට පටන් ගත්හ:

  • ආකෘතිය යනු දත්ත සහ එය සමඟ වැඩ කිරීමේ ක්\u200dරම වේ
  • පාලකය - ඔහු විසින් ඇතුළත් කරන ලද පරිශීලක ක්\u200dරියා සහ තොරතුරු සැකසීම

කාරණය නම්, වස්තු-නැඹුරු යෙදුමක දත්ත නොමැත, නමුත් බොහෝ වස්තූන් ඇති අතර ඒ සෑම එකක්ම යම් ආකාරයක දත්ත සහ ඒවා සමඟ වැඩ කිරීමේ ක්\u200dරම අඩංගු වේ. දත්ත සමුදායට ප්\u200dරවේශ වීමේ වස්තු ඇතුළුව (ඇත්නම්). එමනිසා, ආකෘතියේ අර්ථ දැක්වීම "දත්ත" යන වචනයෙන් ආරම්භ වන විට, එය අත්\u200dයවශ්\u200dයයෙන්ම එතරම් තේරුමක් නැති අතර බොහෝ විට වැස්මකින් වැසුණු ස්වරූපයෙන් දත්ත සමුදායට එකම ප්\u200dරවේශය අදහස් වේ. තුල සැකසීම එකම පරිශීලක ක්\u200dරියා බොහෝ විට ව්\u200dයාපාර තර්කනයේ සිංහයාගේ කොටස තැන්පත් කර ඇති අතර එහි ප්\u200dරති all ලයක් ලෙස යෙදුම් තර්කනයේ සියල්ලම හෝ සියල්ලම පාහේ බොහෝ විට පාලකය තුළ අවසන් වේ.

"වාස්තු විද්\u200dයාත්මක එම්වීසී"

දෙවන ප්රවේශය මුල් ප්රභවයන්ට වඩා සමීප ය. එබැවින් අපි එය වඩාත් විස්තරාත්මකව විශ්ලේෂණය කරමු.


මාටින් ෆෝලර් එම්වීසී රටාවක් නොවන බව පවසන විට එය නිවැරදිය, නමුත් අභිරුචි තොරතුරු පද්ධති (සාමාන්\u200dයයෙන් සංකීර්ණ) ගොඩනැගීම සඳහා භාවිතා කරන වාස්තු විද්\u200dයාත්මක මූලධර්ම හා අදහස් සමූහයකි.


"" ලිපියේ වාස්තු විද්\u200dයාත්මක මූලධර්ම එකතු කර විස්තර කිරීමට අපි උත්සාහ කළෙමු. ඉතා කෙටියෙන් කිවහොත්, සාරය පහත පරිදි වේ: සංකීර්ණ පද්ධතියක් මොඩියුලවලට බෙදිය යුතුය. එපමණක්ද නොව, දිරාපත් වීම සුදුසුය ධූරාවලිය අනුව, සහ පද්ධතිය බෙදී ඇති මොඩියුල හැකි නම් ස්වාධීන හෝ විය යුතුය ලිහිල් ලෙස සම්බන්ධයි (අඩු සම්බන්ධ කිරීම). සම්බන්ධතාවය ලිහිල් කිරීම, වැඩසටහන ලිවීම / තේරුම් ගැනීම / දිගු කිරීම / නිවැරදි කිරීම පහසුය. එබැවින්, දිරාපත්වීමේ එක් ප්\u200dරධාන කාර්යයක් වන්නේ සංරචක අතර සම්බන්ධතා අවම කිරීම සහ දුර්වල කිරීමයි.


අභිරුචි යෙදුම්වල ප්\u200dරාථමික ගෘහ නිර්මාණ ශිල්පය (වියෝජනය) නිර්මාණය කිරීම සඳහා මෙම මූලධර්ම MVC හි ක්\u200dරියාත්මක වන්නේ කෙසේදැයි බලමු. මූලික වශයෙන්, MVC පදනම් වී ඇත්තේ තරමක් සරල අදහස් තුනක් මත ය:


"1" පරිශීලක අතුරුමුහුණතෙන් යෙදුමේ වසම් ආකෘතිය (ව්\u200dයාපාර තර්කනය) වෙන් කිරීම


MVC හි පළමු හා ප්\u200dරධාන අදහස නම් ඕනෑම පරිශීලක යෙදුමක් දළ වශයෙන් මොඩියුල දෙකකට බෙදිය හැකි වීමයි - ඉන් එකක් යෙදුමේ ප්\u200dරධාන ක්\u200dරියාකාරිත්වය, එහි ව්\u200dයාපාරික තර්කනය සහ දෙවැන්න පරිශීලක අන්තර්ක්\u200dරියා සඳහා වගකිව යුතු ය:



මේ අනුව, අපට සංවර්ධනය කිරීමට අවස්ථාව ලැබේ වසම් ආකෘතිය, එය පරිශීලකයා සමඟ හරියටම ක්\u200dරියා කරන්නේ කෙසේද යන්න ගැන නොසිතා පද්ධතියේ ව්\u200dයාපාරික තර්කනය අඩංගු වන අතර යෙදුමේ ක්\u200dරියාකාරී හරය වේ.


පරිශීලකයා සමඟ අන්තර්ක්\u200dරියා කිරීමේ කාර්යය වෙනම මොඩියුලයකින් ගනු ලැබේ - පරිශීලක අතුරුමුහුණත සාපේක්ෂව ස්වාධීනව විසඳිය හැකිය.


එය වසම් ආකෘතියයි (ඉංග්\u200dරීසියෙන් වසම් ආකෘතිය) වසම් ආකෘතිය) සැලකේ ආකෘතිය "වාස්තු විද්\u200dයාත්මක එම්වීසී" හි (එබැවින් මෙම පදය). එබැවින් එය ස්වාධීන වන අතර එය ස්වාධීනව සංවර්ධනය කර පරීක්ෂා කළ හැකිය.


"එම්වීසී පිටුපස ඇති මූලික අදහස මෙන්ම පසුකාලීන සියලු රාමු සඳහා මූලික අදහස මම වෙන්වූ ඉදිරිපත් කිරීම ලෙස හඳුන්වන්නෙමි. වෙන්වූ දර්ශනයේ කාරණය වන්නේ අපගේ සැබෑ ලෝකය නියෝජනය කරන ඩොමේන් වස්තූන් අතර පැහැදිලි රේඛාවක් ඇඳීමයි. තිරයේ GUI අංග වන ඉදිරිපත් කිරීමේ වස්තූන්. වසම් වස්තූන් සම්පූර්ණයෙන්ම ස්වාධීන විය යුතු අතර දර්ශනයට යොමු නොවී ක්\u200dරියා කළ යුතුය, ඒවාට බහු අදහස්, සමහර විට එකවරම සහාය දැක්වීමට (සහාය දැක්වීමට) හැකි විය යුතුය.මෙම ප්\u200dරවේශය ද වැදගත් එකක් විය යුනික්ස් සංස්කෘතියේ අංග, අදටත් විවිධාකාර යෙදුම්වල වැඩ කිරීමට ඉඩ සලසයි විධාන රේඛාවචිත්\u200dරක අතුරුමුහුණත හරහා (එකවර). - ෆෝලර්


"2" ආකෘතියේ ස්වාධීනත්වය සහ අච්චුව හරහා පරිශීලක අතුරුමුහුණත් සමමුහුර්ත කිරීම නිරීක්ෂකයා


දෙවන ප්\u200dරධාන අදහස නම් ආකෘතියක් සංවර්ධනය කිරීමට හැකිවීමයි කුමක් වුවත්, පරිශීලක අතුරුමුහුණත මත එහි යැපීම අඩු කිරීමට ඔබට අවශ්\u200dයය. ඉහත සඳහන් කළ පරිදි, අච්චුව නිසා මෙය සිදු කෙරේ නිරීක්ෂකයා .


ආකෘතිය වෙනස්කම් පිළිබඳ දැනුම්දීම් යවයි... අතුරුමුහුණත මෙම දැනුම්දීම් වලට දායක වන අතර එමඟින් ආකෘතියෙන් දත්ත නැවත කියවා යාවත්කාලීන කළ යුත්තේ කවදාදැයි දනී. මෙයට ස්තූතියි, අපි ප්රායෝගිකව ලබා ගනිමු ස්වාධීන ආකෘතියඑය "නිරීක්ෂක" අතුරුමුහුණත ක්\u200dරියාත්මක කිරීම හැර, ඒ හා සම්බන්ධ පරිශීලක අතුරුමුහුණත් ගැන කිසිවක් දන්නේ නැත.


"3" පරිශීලක අතුරුමුහුණත දර්ශනය සහ පාලකය ලෙස වෙන් කිරීම.


තෙවන අදහස හුදෙක් ධූරාවලි විසංයෝජනයේ දෙවන පියවරයි. යෙදුම ව්\u200dයාපාර ආකෘතියක් සහ අතුරුමුහුණතක් ලෙස මුලින් බෙදීමෙන් පසුව, වියෝජනය ඊළඟ ධූරාවලි මට්ටමින් අඛණ්ඩව සිදුවන අතර පරිශීලක අතුරුමුහුණත දසුන් සහ පාලක ලෙස බෙදා ඇත.



මෙම අංශයේ හරය ඉතා සුළු පිරිසකට වැටහී ඇති බවත්, ඒ අනුව එය පැහැදිලි කළ හැකි බවත් මට හැඟුණි. සාමාන්\u200dයයෙන්, පාලක විසින් පරිශීලකයාගේ ක්\u200dරියාවන්ට කෙසේ හෝ ප්\u200dරතික්\u200dරියා කරන බව සම්මත, විධිමත් වචන පමණක් ලබා දී ඇති අතර, දර්ශනය ආදර්ශය පෙන්වයි (එබැවින්, බොහෝ ක්\u200dරියාත්මක කිරීම් වලදී, ආකෘතියේ වෙනස්කම් පිළිබඳ දැනුම්දීම් සඳහා දායක වන්නේ දර්ශනයයි. දැනටමත් සඳහන් කර ඇති පරිදි, ග්\u200dරාහකයාට පාලක හෝ විය හැකිය. පාලකය එකට).


පරිශීලක අතුරුමුහුණත දර්ශනය සහ පාලකය ලෙස බෙදීමෙන් අදහස් කෙරේ ධූරාවලියේ දෙවන මට්ටම, එය යෙදුමේ ප්\u200dරාථමික අංශය වසම් ආකෘතිය සහ අතුරුමුහුණතට වඩා බෙහෙවින් අඩු වැදගත්කමක් දරයි. බොහෝ විට (විශේෂයෙන් සරල විජට් සම්බන්ධයෙන් ගත් විට) එය කිසිසේත් සිදු නොවන අතර භාවිතා වේ " සරල කළ එම්වීසී", එහි ඇත්තේ ආකෘතියක් සහ තනි UI- සංරචකයක් පමණි, එය ඒකාබද්ධ ViewController වේ. මේ ගැන වැඩි විස්තර පසුව.


බැලූ බැල්මට වාස්තු විද්\u200dයාත්මක එම්වීසී සාධාරණ බව පෙනේ. නමුත් අපි එය පන්ති තුනක අධ්\u200dයාපනික උදාහරණයකට නොව සැබෑ වැඩසටහනකට අදාළ කිරීමට උත්සාහ කළ විගසම, කලාතුරකින් ලියා ඇති නමුත් අතිශයින්ම වැදගත් වන ගැටළු සහ ප්\u200dරශ්න ගණනාවකට අපි මුහුණ දෙමු. තවද ඔවුන් පරිශීලක අතුරුමුහුණත පමණක් නොව ආකෘතිය ගැනද සැලකිලිමත් වේ. එබැවින් ඔවුන් සමඟ ගනුදෙනු කිරීමට උත්සාහ කිරීමට මම යෝජනා කරමි, අවසාන වශයෙන් "කරුසෝට සවන් දෙන්න", එනම් ප්\u200dරාථමික මූලාශ්\u200dර වෙත යොමු වන්න.

මුල් එම්වීසී: රීන්ස්කාග් සහ ස්මාල්ටෝක් -80

MVC සෑම විටම පාහේ සලකා බලනුයේ සරලම චිත්\u200dරක අංගයක් නිර්මාණය කිරීමේ උදාහරණය මත වන අතර, ඒ සියල්ලම “ව්\u200dයාපාර තර්කනය” දත්ත සමඟ එක් පන්තියක තබා ඇති අතර ඒවා වෙනස් කිරීම සඳහා ක්\u200dරම කිහිපයක් ඇත. නමුත් එය පැමිණි විට කුමක් කළ යුතුද සැබෑ යෙදුම්, එහි හරය අන්තර් සම්බන්ධිත බොහෝ වස්තු වලින් සමන්විත වේ.


සාමාන්යයෙන් ආකෘතිය එය එක් වස්තුවක් ද? ඇත්තෙන්ම එය එසේ ද? ආකෘතිය "MVC යෝජනා ක්\u200dරමය" තුළ වසමේ ආකෘතියට සමාන වන අතර එය යෙදුමේ වසම සහ ව්\u200dයාපාර තර්කනය විස්තර කරයි?


ආදර්ශය රටාව ක්\u200dරියාත්මක කරන බව නිරීක්ෂකයා පැහැදිලිවම පෙන්නුම් කරන්නේ ආකෘතිය හරියටම එක් වස්තුවක් බවයි. දර්ශනය සහ පාලකය මොඩලය ගැන දැන සිටිය යුතුය (එයින් දත්ත ලබාගෙන වෙනස්කම් සිදු කිරීම සඳහා) සහ ඒ සඳහා ඔවුන් සබැඳියක් අඩංගු විය යුතුය යන කාරණයෙන්ද මෙය ඇඟවුම් කරයි. නමුත් පසුව, මොඩලය යන්නෙන් අදහස් කරන්නේ ඩොමේන් මොඩලය යැයි අපි උපකල්පනය කළහොත්, යෙදුමේ සමස්ත හරය එක් වස්තුවක ඇති බව අපි නැවතත් නිගමනය කරමු. මේදය අවලස්සන පාලකය වෙනුවට දැන් අපට ඇත්තේ මේද ආකෘතියක්. Model න මාදිලිය නිසැකවම වඩා හොඳය, මන්ද එය ස්වාධීන වන අතර අවම වශයෙන් ව්\u200dයාපාර තර්කනය එහි GUI තර්කනය සමඟ මිශ්\u200dර නොකරයි, නමුත් තවමත් එවැනි විසඳුමක් හොඳ ගෘහ නිර්මාණ ශිල්පයකට ආරෝපණය කිරීම දුෂ්කර ය.


දෙවන විකල්පය ඉතිරිව ඇත - ආකෘතිය යනු ව්\u200dයාපාර තර්කනය ඒකාබද්ධව ක්\u200dරියාත්මක කරන වසම් වස්තු සමූහයකි. මෙම උපකල්පනය රීන්ස්කාග් විසින්ම සනාථ කරයි: ආකෘතියක් තනි වස්තුවක් විය හැකිය (තරමක් උනන්දුවක් නොදක්වයි), නැතහොත් එය යම් වස්තුවක ව්\u200dයුහයක් විය හැකිය.“නමුත් ප්\u200dරශ්නය ඉතිරිව ඇත - අච්චුව ක්\u200dරියාත්මක කරන්නේ කවුද? නිරීක්ෂකයා, දර්ශනය දත්ත ලබා ගන්නේ කොහෙන්ද, පාලක විසින් පරිශීලකයාගේ විධාන යවන්නේ කොතැනින්ද?


මෙහි දී අපට බොහෝ විට දළ වශයෙන් පහත දැක්වෙන තර්කනය මගින් අපව රවටා ගැනීමේ උත්සාහයක් දක්නට ලැබේ: "ආකෘතිය ඩොමේන් වස්තු සමූහයක් වේවා, නමුත් ... මෙම කට්ටලය අතර" දත්ත සහිත වස්තුවක් "ද ඇත, එබැවින් එය ඔබ්සර්වර් රටාව ක්\u200dරියාත්මක කරනු ඇත, සහ වල්පැලෑටි සඳහා දත්ත ප්\u200dරභවයක් ලෙස සේවය කරන්න. මෙම උපක්\u200dරමය Model in Model ලෙස හැඳින්විය හැකිය. ඇත්ත වශයෙන්ම, මෙය "ආදර්ශය දත්ත" යන තවත් "වැස්ම" අනුවාදයකි.


මෙහිදී අපට පැවසිය හැක්කේ එක් දෙයක් පමණි: ගෘහ නිර්මාණ ශිල්පය තුළ එක් මොඩියුලයක් (දර්ශනය හෝ පාලකය) "නැගීම" කළ යුතුය තුල තවත් මොඩියුලයක් (ඩොමේන් මොඩලය) සහ දත්ත හෝ වස්තූන් වෙනස් කිරීම සඳහා එහි “සුවඳ” ඉතා නරක ලෙස බලන්න. දර්ශනය සහ පාලකය ඩොමේන් ආකෘතියේ ක්\u200dරියාත්මක කිරීමේ තොරතුරු මත රඳා පවතින බවත්, මෙම ආකෘතියේ ව්\u200dයුහය වෙනස් වුවහොත්, සමස්ත පරිශීලක අතුරුමුහුණත නැවත සිදු කළ යුතු බවත් පෙනේ.


“එය කෙසේ විය යුතුද” යන්න තේරුම් ගැනීම සඳහා, මම නැවත “මූලධර්ම” වෙත හැරවීමට යෝජනා කරමි. පද්ධතිය මොඩියුලවලට බෙදිය යුතු යැයි පැවසූ විට, ලිහිල්ව බැඳී ඇත එකිනෙකා සමඟ, මෙම දුර්වලම සම්බන්ධතාවය සාක්ෂාත් කර ගැනීම සඳහා වන ප්\u200dරධාන රීතිය අපි සඳහන් කර නැත. එනම්, එකිනෙකා සඳහා මොඩියුල "කළු පෙට්ටි" විය යුතුය. කිසිදු තත්වයක් යටතේ එක් මොඩියුලයක් වෙනත් මොඩියුලයක වස්තූන් වෙත කෙලින්ම ප්\u200dරවේශ විය යුතු අතර එහි අභ්\u200dයන්තර ව්\u200dයුහය ගැන කිසිවක් දැන සිටිය යුතු නොවේ. මොඩියුලයන් එකිනෙකා සමඟ අන්තර්ක්\u200dරියා කළ යුත්තේ වියුක්ත අතුරුමුහුණත් මට්ටමින් පමණි (පරායත්ත ප්\u200dරතිලෝම මූලධර්මය). මොඩියුල අතුරුමුහුණතක් සාමාන්\u200dයයෙන් ක්\u200dරියාත්මක වන්නේ විශේෂ වස්තුවකි - මුහුණත.


දුර්වල සම්බන්ධතාවය සාක්ෂාත් කර ගැනීමට ඔබට ඉඩ සලසන රටාවන් මොනවාදැයි ඔබ සොයා බලන්නේ නම්, එම රටාව පළමු තැනට පත්වේ මුහුණත, පසුව පමණි නිරීක්ෂකයා ආදිය.


හොඳයි, දැන් ට්\u200dරිග්ව් රීන්ස්කොග්ගේ වාර්තාවේ රූප සටහනක්:



පැහැදිලි කිරීම: MVC නිර්මාණය කරන අවස්ථාවේ සිට, අතුරු මුහුණත් පරිගණක වැඩසටහන් බොහෝ දුරට පා ual මය, එනම්, ඒවා අත්\u200dයවශ්\u200dයයෙන්ම සරලම ආකාරයේ සංස්කාරක විය, පසුව "පරිශීලක අතුරුමුහුණත" යන පදය වෙනුවට, පසුව දර්ශනය වූ ට්\u200dරිග්ව් රීන්ස්කොග් "සංස්කාරක" (සංස්කාරක) යන පදය භාවිතා කරයි.


මේ අනුව, MVC පිටුපස ඇති ප්\u200dරධාන අදහස නම් පරිශීලක යෙදුම මොඩියුල දෙකකට බෙදා ඇති බවයි - ඉන් එකක් වසම ආදර්ශනය කර ව්\u200dයාපාර තර්කනය ක්\u200dරියාත්මක කරයි ( වසම් ආකෘතිය), සහ දෙවැන්න පරිශීලක අන්තර්ක්\u200dරියා සඳහා වගකිව යුතුය ( පරිශීලක අතුරුමුහුණත). නමුත් ඒ සමඟම ආකෘතිය “MVC යෝජනා ක්\u200dරමය” තුළ වසම් ආකෘතියට සමාන නොවේ (එය ඔබ කැමති තරම් සංකීර්ණ විය හැකි අතර බොහෝ වස්තූන්ගෙන් සමන්විත වේ), නමුත් එය පමණක් වේ අතුරුමුහුණත සහ මුහුණත.


එබැවින්, ඇත්ත වශයෙන්ම, වසම් මොඩියුලය (ඩොමේන් මොඩලය) සකසා ඇති ආකාරය, දත්ත ගබඩා කර ඇත්තේ කොතැනද සහ කුමන ආකෘතියකින්ද සහ පාලනය හරියටම සිදු කරන්නේ කෙසේද යන්න පිළිබඳව දර්ශනය හෝ පාලකය දැන සිටිය යුතු නොවේ. ඔවුන් මැදිහත් වන්නේ පමණි අතුරුමුහුණත එය ක්\u200dරියාත්මක කිරීම ෆැසෙඩ් වස්තුව, අවශ්\u200dය සියලු දත්ත අපේක්ෂිත ආකෘතියෙන් සහ උප පද්ධතිය පාලනය කිරීම සඳහා පහසු ඉහළ මට්ටමේ විධාන සමූහයක් සපයන අතර දැනුම් දීම සඳහා ඔබ්සර්වර් රටාව ද ක්\u200dරියාත්මක කරයි. සැලකිය යුතු උප පද්ධතියේ වෙනස්කම්. තවද අපට දත්ත සමුදාය වෙනස් කිරීමට, වලාකුළු භාවිතා කිරීමට හෝ ජාලයේ විවිධ ප්\u200dරභවයන්ගෙන් අපට අවශ්\u200dය දත්ත එක්රැස් කිරීමට අවශ්\u200dය නම් ... අපි යෙදුමේ ව්\u200dයාපාරික තර්කනයට යම් වෙනසක් සිදු කළත්, ඒ සමඟම අතුරු මුහුණත වෙනස් නොවී තබන්න, එවිට දර්ශනය හෝ පාලකය නැත. බලපාන්නේ නැත. අපට ගෘහ නිර්මාණ ශිල්පය ඇත තිරසාර වෙනස් කිරීමට.


අපි MVC යෝජනා ක්\u200dරමයක් අඳින්නේ නම්, එය මේ ආකාරයට විය යුතුය:



මෙම යෝජනා ක්රමය දෙස සමීපව බලමු. සාම්ප්\u200dරදායිකව, සේවාදායක-සේවාදායක යෙදුම්වල, සේවාදායකය ප්\u200dරධාන එකක් ලෙස සැලකේ. ඔහු සේවා / සේවා සපයන අතර එය ක්\u200dරියාත්මක කළ යුත්තේ කුමන ආකාරයෙන්ද යන්න තීරණය කරයි. ඒ අනුව, අතුරු මුහුණත සහ මුහුණත සාමාන්\u200dයයෙන් අර්ථ දැක්වෙන්නේ සේවාදායකයාගේ දෘෂ්ටි කෝණයෙන් ය. සේවාදායකයින් මෙම නිශ්චිත ආකෘතියට අනුගත වේ.


ප්රායෝගිකව, එය වඩා ප්රමාණවත් සේවාදායක-නැඹුරු ගෘහ නිර්මාණ ශිල්පයක් නොව, සේවාදායකයා නැඹුරු. එහි දී, සේවාදායකයාගේ අවධානය සේවාදායකයා දෙසට මාරු කරනු ලබන අතර අතුරු මුහුණත හෝ ඒ වෙනුවට අතුරුමුහුණත් (සහ මුහුණත හෝ මුහුණත) තීරණය වන්නේ සේවාදායකයින්ගේ අවශ්\u200dයතා මත ය. වෙනුවට සපයන ලද අතුරු මුහුණත (සපයන ලද අතුරු මුහුණත) භාවිතා වේ අවශ්\u200dය අතුරුමුහුණත් ().



නිශ්චිත ක්\u200dරියාත්මක කිරීම් වෙනස් විය හැකි නමුත් මෙය වැදගත් නොවේ



පාරිභෝගික දිශානත ප්\u200dරවේශය වඩා සුදුසුය අතුරුමුහුණත් වෙන් කිරීමේ මූලධර්මය (අතුරුමුහුණත් වෙන් කිරීමේ මූලධර්මය) තනි .නකම වෙනුවට ProvidedInterface බොහෝ තුනී භාවිතා වේ.


මා වරදවා වටහා නොගන්නේ නම්, මෙය ක්ෂුද්\u200dර සේවා ගෘහ නිර්මාණ ශිල්පයේ භාවිතා වන ප්\u200dරවේශයයි. එහිදී, විවිධ සේවාවන් සමඟ අන්තර් ක්\u200dරියා කිරීම සඳහා, ගේට්වේ සංකල්පය හඳුන්වා දෙන ලද අතර එය මුහුණුවරකට වඩා වැඩි දෙයක් නොවේ. ඒපීඅයි ගේට්වේ යනු පද්ධතියට ඇතුල් වන තනි ස්ථානය වන සේවාදායකයකි. එය වස්තු-නැඹුරු මෝස්තරයෙන් ෆැසෙඩ් රටාවට සමානය. ඒපීඅයි ගේට්වේ අභ්\u200dයන්තර පද්ධති සැකැස්ම සංකේතවත් කරන අතර එක් එක් සේවාදායකයාට ගැලපෙන පරිදි ඒපීඅයි එකක් සපයයි... ක්ෂුද්\u200dර සේවා ගොඩනැගීම: API ද්වාරයක් භාවිතා කිරීම.


එපමණක්ද නොව, මෙම ද්වාරය " එක් ප්\u200dරමාණයේ-ගැලපෙන-සියලු විලාසිතාවේ API එකක් ලබා දෙනවා වෙනුවට, ඒපීඅයි ගේට්වේ මඟින් සෑම සේවාදායකයෙකුටම වෙනස් ඒපීඅයි එකක් නිරාවරණය කළ හැකිය. නිදසුනක් ලෙස, නෙට්ෆ්ලික්ස් ඒපීඅයි ගේට්වේ එක් එක් සේවාදායකයාට එහි අවශ්\u200dයතාවන්ට වඩාත් ගැලපෙන API එකක් ලබා දෙන සේවාදායක-විශේෂිත ඇඩැප්ටර කේතය ක්\u200dරියාත්මක කරයි)"API ගේට්වේ.




අපි මුහුණත දෙස බලමු ... මෙන්න එය මැලියම්, මැදිහත්කරු වස්තුව, ප්\u200dරොක්සි, ෆිල්ටරය, ඇඩැප්ටරය ... ඩොමේන් ආකෘතිය සහ පරිශීලක අතුරුමුහුණත එකිනෙකට සම්බන්ධ කිරීම සහ අවශ්\u200dය දත්ත අපේක්ෂිත / පහසු ආකෘතියෙන් ලබා දීම.


පුදුමයට කරුණක් නම්, රීන්ස්කොග් හැරුණු විට කිසිවෙකු මේ ගැන ලියන්නේ නැත. සමහර අය මෙම අදහස තනිවම සොයාගත්තද (උදාහරණයක් හෝ "අතුරු මුහුණත පදනම් කරගත් ක්\u200dරමලේඛන ක්\u200dරම" යන කොටස බලන්න).


ජාවාගුරු - උසස් එම්වීසී රටා වලින් එකක ලිපියකින් අතුරු මුහුණත් ආකෘති පිළිබඳ මාතෘකාව විශේෂයෙන් ආවරණය කර ඇත. කතුවරයා අවධාරණය කරන්නේ ආකෘති යනු දත්ත නොවන නමුත් තනිකරම අතුරුමුහුණත් / සමථ වස්තු / පෙරහන් (ප්\u200dරොක්සි ලෙස ආකෘති, පෙරහන් ලෙස ආකෘති), ඕනෑම තැනක - විවිධ යන්ත්\u200dරවල, විවිධ හැඩතලවල ස්ථානගත කළ හැකි දත්ත වලට පහසු ප්\u200dරවේශයක් සපයන: “ බොහෝ ක්\u200dරමලේඛකයින් නොසිතන දෙය නම් ආකෘති යනු අතුරු මුහුණත් පමණි. ඒවායේ කිසිදු දත්තයක් අඩංගු නොවිය යුතුය! .. ප්\u200dරොක්සි ආකෘති මඟින් විෂය පථය පුළුල් වන අතර ඔබට දැනටමත් භාවිතා කිරීමට ඉඩ ලබා දේ පවතින දත්ත ඔවුන් කොහේ සිටියත්”.


මුල් එම්වීසී හි ඇති මුහුණත "නැතිවී" ඇති හෙයින්, එහි භූමිකාව බොහෝ විට පාලක විසින් භාර ගනු ලැබේ. එබැවින් පාලකය “ආකෘතිය සහ දර්ශනය අතර” යන අදහස ඔවුන් අතර මැලියම් ලෙස ක්\u200dරියා කරන අතර දර්ශනයට අවශ්\u200dය දත්ත සපයයි.


සංසදවලදී, ප්\u200dරශ්නය බොහෝ විට හමු වේ - "පාලකය මුහුණතෙන් වෙනස් වන්නේ කෙසේද?" බොළඳකම තිබියදීත්, මෙම ප්\u200dරශ්නය තරමක් තාර්කික වන අතර එයට සාධාරණ පිළිතුරක් දීමට අපහසුය, මන්ද බොහෝ MVC රාමුවල පාලකය ඇත්ත වශයෙන්ම මුහුණතකි - "ඉදිරිපස පාලකය".


මෙම තීරණය නරක ඇයි? එය වචනාර්ථයෙන් ක්\u200dරියාත්මක කරන්නේ නම් කිසිවක් නැත. නමුත් එය න්\u200dයාය අනුව ය. ප්රායෝගිකව, බොහෝ විට සංකල්ප හා සංකල්පවල ව්යාකූලත්වයක් ඇති අතර, එහි ප්රති As ලයක් වශයෙන්, ඉදිරිපස පාලක, එක් අතකින්, එහි බලතල අනිසි ලෙස භාවිතා කර ඒ වෙනුවට කණ්ඩායම් පැවරීම ඇතුළත් කිරීමට පටන් ගනී ක්\u200dරියාත්මක කිරීම ව්\u200dයාපාර තර්කනය. අනෙක් අතට, එය පරිශීලක අතුරුමුහුණතේ කාර්යයන් එකවරම අඛණ්ඩව සිදු කරන අතර එහි ප්\u200dරති already ලයක් ලෙස දැනටමත් සඳහන් කර ඇති “ව්\u200dයාපාර තර්කනය” සහ “GUI තර්කනය” මිශ්\u200dර වීම එහි සිදු වේ (එමඟින් එහි කේතය විශාල ඩම්ප් එකක් මෙන් පෙනේ).


මම හිතන්නේ ස්මාල්ටෝක් වෙත යාමට කාලයයි. ස්මාල්ටෝක් -80 නිර්මාණය කළේ ඉතා දක්ෂ පුද්ගලයින් විසිනි. ප්\u200dරලේඛනය සමඟ ඇත්ත වශයෙන්ම ගැටළු ඇති විය (විශේෂයෙන් එවකට "සැලසුම් රටා" නොතිබූ බැවින්), නමුත් ක්\u200dරියාත්මක කිරීමත් සමඟ මූලික වශයෙන් සියල්ල හොඳින් විය පරිශීලක අතුරුමුහුණත්නිසැකවම වසම් ආකෘතිය සමඟ සෘජුව මැදිහත් නොවීය.


ස්මාට් ටෝක් භාෂාවේ වස්තූන් අතර අතුරුමුහුණත සහ ඩොමේන් ආකෘතිය අතර සෑම විටම යම් අතරමැදි පන්තියක් / වස්තුවක් තිබී ඇති අතර එමඟින් ඩොමේන් වස්තූන්, ඒවායේ දත්ත සහ ක්\u200dරම සඳහා පහසු අනුකලනය ලබා ගත හැකි විය. මෙම අතරමැදි වස්තූන් (ඇත්ත වශයෙන්ම, ෆැසෙඩ් ලෙස ක්\u200dරියා කරයි) ඇත්ත වශයෙන්ම ස්මාල්ටෝක් -80 හි ආකෘති විය.


නිදසුනක් ලෙස, ස්මාල්ටෝක් හි කේතය සමඟ වැඩ කිරීම සඳහා, පහත දැක්වෙන GUI අතුරුමුහුණත් භාවිතා කරන ලදී: පරීක්ෂක, බ්\u200dරව්සරය, වැඩපොළ, ...



ඔවුන්ගේ විධිවිධානය ගැන ග්ලෙන් ක්\u200dරස්නර් ලියන දේ මෙන්න:


"පද්ධතියේ පරීක්ෂක දර්ශන දෙකකින් සමන්විත වේ. ලැයිස්තු දර්ශනය විචල්යයන්ගේ ලැයිස්තුවක් (වමේ) පෙන්වන අතර, පෙළ දර්ශනය මඟින් තෝරාගත් විචල්යයේ (දකුණේ) අගය පෙන්වයි ... මෙම අදහස් සඳහා ආකෘතිය පන්තියේ නිදසුනකි" පරීක්ෂක"... වෙනම පන්තියක්" පරීක්ෂක“යනු මැදිහත්කරු හෝ පෙරහන කිසියම් වස්තුවක ඕනෑම දේපලකට ප්\u200dරවේශය ලබා දීම සඳහා. View සහ "අතර අතරමැදි වස්තු භාවිතා කිරීම තථ්\u200dය"ආකෘති යනු යෙදුම් ආකෘතියෙන් දර්ශන හැසිරීම හුදකලා කිරීමේ සාමාන්\u200dය ක්\u200dරමයකි ...


පරීක්ෂක මෙන්ම, පද්ධති බ්\u200dරව්සර් සඳහා අතරමැදි වස්තූන් ද ආකෘති ලෙස භාවිතා කරන ලදී. පන්තියේ උදාහරණයක් " බ්\u200dරව්සරය"සෑම පද්ධති බ්\u200dරව්සරයක් සඳහාම සමථකරණ ආකෘතියක් ..."


අදහස් දක්වන්න: අතරමැදි මුහුණත වස්තුව විස්තර කරන මැදිහත්කරු පන්තියේ නම සාමාන්\u200dයයෙන් එය පෙන්වන විජට්ගේ නමට සමාන වේ. පරීක්ෂක අතරමැදි ආකෘතිය හැඳින්වීය. පරීක්ෂක", සහ බ්\u200dරව්සරය පිළිවෙලින් -" බ්\u200dරව්සරය».


වැඩමුළුව සම්බන්ධයෙන් ගත් කල, එය සරලම අතුරුමුහුණතක් විය ” මෙම ආකෘතිය ස්ට්\u200dරිං හෝල්ඩර් නිදසුනක් වන අතර එය හුදෙක් පෙළ, එනම් තොරතුරු ආකෘතිකරණය කරන ලද නූලකි.



ක්\u200dරාස්නර් සිය ලිපියේ අවසානයේ ස්මාල්ටෝක් හි භාවිතා කරන ආකෘති ලැයිස්තුගත කරයි (මූලික ආදර්ශ පන්තියෙන් උරුම වූ): StringHolder, බ්\u200dරව්සරය, පරීක්ෂක, FileModel, අයිකනය... තවද එය සටහන් කරයි " ආකෘති සෑම විටම පාහේ යම් ආකාරයක පෙරහන් පන්තියක් විය".


පසුකාලීනව විෂුවල් වර්ක්ස් ස්මාල්ටෝක් හි අතරමැදි හිමිකරුවන් පිළිබඳ අදහස වර්ධනය කර සම්පූර්ණයෙන්ම ක්\u200dරියාත්මක කරන ලදී. එහිදී, වසම් වස්තු වලට අයත් එක් එක් විචල්\u200dයයට ප්\u200dරවේශ වීම සඳහා, එහි අතුරු මුහුණත සහ මුහුණත භාවිතා කරනු ලැබේ - ValueModel සහ ValueHolder. තවද, ඔබ අනුමාන කළ පරිදි, අච්චුව ක්\u200dරියාත්මක කරන්නේ ValueModel ය නිරීක්ෂකයා, "වසමේ" සිදුවන වෙනස්කම් පිළිබඳව GUI වෙත දැනුම් දීම.



සාමාන්\u200dය වැරදි: වසම් වස්තු කෙලින්ම ප්\u200dරවේශ වීම

මෙම සියලු "මාදිලි" පිටුපස ඇති දේ සංවර්ධකයින් සැමවිටම හොඳින් වටහා නොගැනීම සහ ආකෘති තමන්ම දත්ත ලෙස වටහා ගැනීමට භාවිතා කරන අතර අතුරු මුහුණතක් නොව, මෙය තවත් ඉතා පොදු හා සම්පත්-දැඩි දෝෂයක ප්\u200dරභවය බවට පත්වේ. නිවැරදි මාර්ගය වෙනුවට අර්ථ නිරූපණය කරන්න සහ පවතින ඩොමේන් දත්ත ප්\u200dරොක්සි ආකෘති භාවිතයෙන් අනුවර්තනය කරන්න. පිටපත මෙම ප්\u200dරොක්සි ආකෘති වලට.


නිදසුනක් ලෙස, ValueHolder යනු රීතියක් ලෙස, දැනටමත් පවතින ඩොමේන් විචල්\u200dයයක් වටා එතීමකි, එය දත්ත අඩංගු නොවිය යුතුය, එහි දත්ත පිළිබඳ සඳහනක් අඩංගු වේ. මෙන්න ඔවුන් ලියන දේ: " ValueModel සත්\u200dය වශයෙන්ම අගය වෙනත් ගබඩාවක් විසින් දැනටමත් ගබඩා කර ඇති නිසා එය ගබඩා කිරීමට අවශ්\u200dය නොවේ"(ValueModels අවබෝධ කර ගැනීම සහ භාවිතා කිරීම).


උසස් එම්වීසී රටා ලිපියේ උපුටා දැක්වීමක් මෙන්න: " ස්විං සංරචක භාවිතා කිරීමේදී මිනිසුන් කරන වඩාත් පොදු වැරැද්දක් නම් එම ස්විං සංරචක ආකෘතියට දත්ත පිටපත් කිරීමයි. නිවැරදි ක්\u200dරමය නම් දැනටමත් පවතින දත්ත භාවිතා කිරීම, එය පෙරනයක් සමඟ අනුවර්තනය කිරීමයි ... මතක තබා ගන්න: සරලව අර්ථ නිරූපණය කළ හැකි දත්ත කිසි විටෙකත් පිටපත් නොකරන්න!".


පහත සරල උදාහරණය සලකා බලන්න. ඔබ අන්තර්ජාල ඉඟි අනුගමනය කර "ලැයිස්තුවට අයිතම එකතු කිරීම" සඳහා කේතය භාවිතා කරන්නේ නම් (ස්ටැක් ඕවර්ෆ්ලෝ වෙතින් ලබාගෙන ජේලිස්ට් එකක අයිතමයක් එකතු කිරීම සහ ඉවත් කිරීම), එවිට හරියටම එයම සිදුවනු ඇත පිටපත් කිරීම ලැයිස්තු ආකෘතියට දත්ත:


වස්තු අයිතම; // වසම් වස්තුව DefaultListModel model \u003d නව DefaultListModel (); JList list \u003d නව JList (ආකෘතිය); සඳහා (int i \u003d 0; i< items.length; i++){ // КОПИРОВАНИЕ доменных данных в модель списка! model.addElement(items[i]); }

ලැයිස්තු ආකෘති අතුරුමුහුණත තුළට එතීමෙන් අරාව දත්ත භාවිතා කිරීම වඩාත් නිවැරදිය. (විශේෂයෙන් මේ සඳහා සූදානම් කළ වියුක්ත ලැයිස්තු මොඩලයක් නිර්මාණය කර ඇති බැවින්):


// ඩොමේන් දත්ත සඳහා ෆැසෙඩ් ඇඩැප්ටරයක් \u200b\u200bසාදන්න, එය අවශ්\u200dය පරිදි සරලව අර්ථ නිරූපණය කරයි ListModel model \u003d new AbstractListModel () (public int getSize () (return items.length;) public object getElementAt (int index) (ආපසු අයිතම;) ); // සාදන ලද මුහුණත ආදර්ශයක් ලෙස ලැයිස්තුවට යොමු කරන්න JList list \u003d නව JList (ආකෘතිය);

ඔබට යම් ආකාරයකින් දත්ත ඒකාබද්ධ කිරීම, පෙරීම හෝ පරිවර්තනය කිරීම අවශ්\u200dය නම් අතරමැදි අරා සම්පූර්ණයෙන්ම අනවශ්\u200dයය. සෑම දෙයක්ම කෙලින්ම ෆැසෙඩ් ආකෘතියේ සිදු කෙරේ


වස්තු අයිතම 1; වස්තු අයිතම 2; // වසම් වස්තු // අරා ඒකාබද්ධ කරන මුහුණත ආකෘතියක් ListModel model \u003d new AbstractListModel () (public int getSize () (return items1.length + items2.length;) public object getElementAt (int index) (ප්\u200dරතිලාභ දර්ශකය)

කුඩා ස්ථිතික අරා සම්බන්ධයෙන්, ප්\u200dරතිලාභ පැහැදිලිව පෙනෙන්නට නැත. නමුත් පොදුවේ ගත් කල, මෙම ප්\u200dරවේශය පිටපත් කිරීමෙන් වැළකී සිටීමට පමණක් නොව, පළමුවෙන්ම දත්ත අවලංගු කිරීම හා සම්බන්ධ ගැටළු වලින් ආරක්ෂා කරයි (වෙනස්කම් ගැන සවන්දෙන්නන්ට දැනුම් දෙන ක්\u200dරම ලිවීමට ඔබ කම්මැලි නොවන්නේ නම්).


හොඳයි, ඔබට සංක්ෂිප්තභාවය අවශ්\u200dය නම්, එය මේ ආකාරයට වඩා හොඳය:


JList list \u003d නව JList (අයිතම);

මෙම අවස්ථාවේ දී ජාවා පිටපත් කිරීම වෙනුවට ඇඩැප්ටරය එතීම කරයි.


සාමාන්\u200dය වැරදි: ඩොමේන් දත්ත GUI සංරචක ආකෘතියකින් පිටපත් කිරීම

අවසාන වශයෙන්, අපට විශාලතම මිථ්\u200dයාව බැහැර කළ හැකිය, එය විශාලතම ගැටළු සහ දෝෂ ගණනක මූලාශ්\u200dරය වේ.


මිථ්\u200dයාවන්: "එම්වීසී යෝජනා ක්\u200dරමයේ" ආකෘතිය වසම් ආකෘතියට හා දත්ත වලට සමාන වේ

ව්යාකූලත්වය පැන නගින්නේ "ආදර්ශය" යන එකම වචනය විවිධ සන්දර්භයන් තුළ භාවිතා කිරීමෙනි. වියෝජනය හා වෙන්වීම ගැන කතා කරන විට ව්\u200dයාපාර තර්කනය සිට පරිශීලක අතුරුමුහුණත, එවිට ආකෘතිය ඇත්ත වශයෙන්ම හරියටම අදහස් කරයි වසම් ආකෘතියදත්ත සහ ඒවා සමඟ වැඩ කිරීමේ තර්කනය අඩංගු වන අතර යෙදුමේ ප්\u200dරධාන ක්\u200dරියාකාරිත්වය සපයයි.


නමුත් සැකිලි හා යෝජනා ක්\u200dරම සන්දර්භය තුළ, ආදර්ශය පළමුවැන්නයි අතුරුමුහුණත එය ක්\u200dරියාත්මක කිරීම ප්\u200dරොක්සි වස්තුව (ෆැසෙඩ්, ඇඩැප්ටරය, ප්\u200dරොක්සි) ඕනෑම තැනක සොයාගත හැකි ඩොමේන් දත්ත වලට පහසු සහ ආරක්ෂිත ප්\u200dරවේශයක් සපයයි. රීන්ස්කාග් මෙසේ ලිවීය: පරිශීලකගේ මානසික ආකෘතිය පිළිබිඹු කරන මුහුණත සහිත ආකෘති වස්තුව".


MVC තනිකරම “ක්\u200dරමෝපායක්” ලෙස ඉදිරිපත් කළ විට “අතරමැදි ආකෘති” තිබීම සංකීර්ණ හා ව්\u200dයාකූල බවක් පෙනේ. ප්\u200dරශ්න පැන නගී ("මෙම ආකෘති එකිනෙකට වඩා වෙනස් වන්නේ කෙසේද?", "ඒවා නිවැරදිව භාවිතා කරන්නේ කෙසේද?"), නොපැහැදිලි අර්ථ නිරූපණයන් සහ වැරැද්දක් කිරීමට බොහෝ අවස්ථාවන්.


එම්වීසී තුළ ඇති වාස්තු විද්\u200dයාත්මක අදහස් ඔබ තේරුම් ගන්නේ නම්, සියල්ල අතිශයින්ම පැහැදිලි වේ: පරිශීලක අතුරුමුහුණතට ඩොමේන් ආකෘතියේ වස්තූන් වෙත කෙලින්ම ප්\u200dරවේශ වීමට අයිතියක් නැත. මෙයින් අදහස් කරන්නේ ඩොමේන් මොඩලය සහ පරිශීලක අතුරුමුහුණත අතර ෆැසෙඩ් / මැදිහත්කරු / ඇඩැප්ටරය පිහිටා තිබිය යුතු අතර පරිශීලක අතුරුමුහුණත (දසුන් සහ පාලක) සමඟ පමණක් අන්තර්ක්\u200dරියා කළ හැකි බවයි. වැරැද්දක් කිරීමට ශුන්\u200dය අවස්ථා තිබේ.


විශාල වශයෙන් මෙම මැදිහත්කරු වස්තුව හැඳින්වෙන්නේ කුමන පදයද යන්න සහ කුමන ආකාරයේ ආදර්ශ-දසුන - කුමන ආකාරයේ එම්වීසී භාවිතා කර ඇත්ද යන්න ...


ප්\u200dරතිපත්තිමය වශයෙන්, මෙම ලිපිය අවසන් කළ හැකිය. දැනටමත් සඳහන් කර ඇති පරිදි, පරිශීලක අතුරුමුහුණත දර්ශනය සහ පාලකය ලෙස බෙදීම අවම වැදගත්කමක් සහ සහායක ලක්ෂ්\u200dයයකි. නමුත් අනෙක් අතට, පරිශීලක අතුරුමුහුණත සෑම පරිශීලක යෙදුමකම පවතින අතර මෙම ප්\u200dරදේශය තුළ වර්ධනය වූ ප්\u200dරවේශයන් සහ අදහස් පිළිබඳ අදහසක් තිබීම බොහෝ විට ප්\u200dරයෝජනවත් වේ. ඊට අමතරව ප්\u200dරධාන ආන්දෝලනයට තුඩුදී ඇත්තේ පාලකවරයා වටා ය. එබැවින් - මෙම විශේෂිත මාතෘකාවට සම්පූර්ණයෙන්ම කැපවී ඇත.