එහෙනම් අද පොඩි පින් අතේ වැඩක් කරන්න කියලා හිතුවා. මෙච්චරකල් මම වැඩ ගත්ත බට්ටෙක් ගැන කියලා දෙන්න යන්නේ. ගන්න පුළුවන් දෙයක් අරගෙන තමනේ වැඩේ කරගන්න . බට්ටා තමා කෝඩ් ජෙනරෙටරේ. අපි සරලව ජෙනිය කියලා කියන්නේ.අපි බලමු ඇයි මේ වගේ එකක් ඕනේ සහ කරන පිළිවෙල. මේ වගේ එකක් හදන්න ටිකක් ඉන්දස්ට්රි එකේ එකපිසියන්ස් තියෙන්න ඕනේ. එත් තමන් දන්න ටිකෙන් මට්ටු කරලා එකක් ගහගන්න පුළුවන්.
මේකේ ඉන්නවා සැහෙන්න ඇඩ්වාන්ස් නොලේජ් එකක් තියන අය . ඒ අය ඉවසන්න ඕනේ මොකද මේක ටිකක් අඩුම ලෙවල් එකේ ඉදන් බලන අයටත් තේරෙන්න ඕනේ නිසා ඉතාමත් සරලව දාන්නේ.
ඇයි මෙහෙම එකක්
==============
දැන් හිතන්න හෙන තඩි සිස්ටම් එකක් ගහන්න තියනවා. එකම විදිහේ ස්ක්රීන් ටොන් ගානක් හදන්න වෙනවා. ඒ වගේම එකම විදිහේ ක්ලාස් එහෙම හෙන තොගයක් ලියන්න තියනවා. මට මේ එකම දේ කරන එක පෙන්න බැරි නිසා ගහපු ටුල් එකක් මේක.
මුලික දේ
=======
අපි මේකේ කරන්නේ එක සාම්පල් එකක් දුන්නාම එකේ වෙනස් වෙන්න ඕනේ දේවල් පිටින් අරන් ඒ හා සමාන තව දේවල් හදාගන්න එක නේ
උදා: මගේ ඩේටා බේස් එකේ තියනවා ටේබල් 5 ක්
1. Customer
2. Products
3. Countries
4. Cities
5. Currency
දැන් මම මේ එකකට SQL Insert එකක් හදාගන්නවා
උදා :
දැන් ඉතුරු 4 මේ වගේමනේ. ඉතින් අපි ගෙනරේටර් එක හදාගන්න ඕනේ මොකක්ද වෙනස් වෙන්න ඕනේ
ටේබල් නේම් එක සහ කොලම් ටික. ඉතින් මේ වගේ ඩේටාබේස් එකේ තියන ටේබල් හරහා ගිහින් Insert එකක් හදාගන්න පුළුවන් ඔක්කොම ටේබල් වලට.
දැන් බලනවා කොහොමද මේක වැඩි දියුණු කරන්නේ කියල. අපි මේ ඉන්සර්ට් එක Stroed Procedure එකක් ඇතුලට දාගන්නවා.
දැන් මේකෙත් වෙනස් වෙන්න ඕනේ ටික බලලා අපිට පුළුවන් ඒ තැන වලට වෙන වෙන එකක් දාල ඔක්කොම ටික හදාගන්න .
දැන් මේ උඩින් වෙන විදිහටම තමා ඔය Data Access Class සහ අනෙක් ක්ලාස් ඕනේ විදිහට හදාගන්නෙත්
මේ වැඩේ කරන්න වින්ඩොව්ස් වල ෆයිල් සිස්ටම් එක ගැන දැනගෙන ඉන්න ඕනේ. ඒ වගේම ඒ ෆයිල් සිස්ටම් එකේ functions තමන් මේ ජෙනරේටර් එක හදන ලන්වේජ් එකෙන් හොදට මාස්ටර් කරලා ඉන්න ඕනේ . ස්ට්රීම් එකකට ඩේටා ලියලා පස්සේ ඒ ටික ඔක්කොම කොහොමදා පෙලගස්ස්වලා ෆයිල් එකක ලියන්නේ කියලා දැනුම හදාගන්න ඕනේ
https://www.tutorialspoint.com/csharp/csharp_file_io.htm
පටන් ගන්නේ කොහොමද?
=======================
මුලින්ම ඔයාට ඕනේ වෙනවා සිස්ටම් එකක් මුල ඉදන් ගහගන්න විදිහ ගැන පොඩි අදහසක්. ඉතා සරල උදාහරණයක් විදිහට මම service oriented architecture එක ගන්නම්. මේකේ සරල ස්ටෙප් ටික මේ වගේ. (SOA architecture එක මිට වඩා හුගක් ගැබුරු එකක්. එත් අපි මේ ගානට ගමු ).
1. මුලින්ම ඩේටා බේස් එකේ ටේබල් ටික හදාගන්න වෙනවා (ඒ වගේම ස්ට්රෝඩ් ප්රෝසිදියර් වගේ දේවලුත් ඕනේ නම් පුළුවන් )
2. ඒ ඩේටා Access කරන්න ක්ලාස් ටිකක් හදාගන්න වෙනවා
3. ඒ ඩේටා වලින් අපේ බිස්නස් ලොජික් එක හැඩල් කරන්න රිපොසිටරි ගහගන්න වෙනවා (repository pattern එක දන්නේ නැත්නම් අහන්න කියල දෙන්නම් )
4. දැන් ඒ රිපොසිටරි පාවිච්චි කරලා සර්විස් එන්ඩ් පොඉන්ට් හදාගන්න ඕනේ
5. ඒ එන්ඩ් පොඉන්ට් පාවිච්චි කරලා Front End එකකුත් හදාගන්න ඕනේ (මේ පාට් එක මේකේ කියන්න යන්නේ නැ. ඕනේ නම් අහන්න )
මුලින්ම කරන්න ඕනේ මේ විස්තර වලට අනුව තමන් දන්නා විදිහට සරල ප්රොජෙක්ට් එකක් හදාගන්න. ඕනේ නම් මේ පිළිවෙල නැතුව ඊට වඩා සරල කරලා හදාගන්න. ඕනේ නම් තව ඇඩ්වාන්ස් කරලා හදාගන්න. එකේ එක CRUD එකක් සම්පුර්නෙන් තිබා නම් ඇති.
EX: Customer CRUD
මේ ටික හදාගත්තාම අපිට පුළුවන් නේ backEnd එකේ පාට් එක ඉවර කරන්න. ඉතින් මේ ටික හදාගත්තට පස්සේ තමන් හදපු ලන්වේජ් එකෙන් මේක ඇරලා අඩු පාඩු බලන්න ඕනේ. මුලින් ලුප් එකේ යන්නේ නැතුව එකකට විතරක් කරලා එන Output එක බලන්න ඊට පස්සේ ජෙනරේට් වෙන කෝඩ් එක වැරදි අඩුපාඩු තියේ නම් ජෙනියේ අදාළ තැන් වනස් කරලා හදාගන්න. ෆයිනල් රිසල්ට් එක අවාම මුළු ඩේටා බේස් එක හරහාම යන්න. ගිහින් ඔක්කොම එක පාර හදලා අඩු පාඩු බලලා එජස් කරගන්න. එකෙන් ෆයිනල් ප්රොඩක්ට් එකක් එයි.
ඔය විදිහේ සරලම එකෙන් පටන් ගත්තාම ඔයාල අලුතෙන් හොයාගන්න ටෙක්නොලොජි වගේම දේවල් වලට හරියන්න මේ ජෙනිය සදා අප්ඩේට් වෙන්න ඕනේ. ඒ වගේම මේ විදිහටම FrontEnd එකත් (Angular , PHP , JS ) ජෙනරේට් කරන ජෙනියක් හදාගන්න ඕනේ. එකට ඕනේ වෙන්නේ backend එකේ Endpoint ටික විතරයි.
මේක තේරෙන්නේ නැත්නම් නැති තැන් කමෙන්ට් කරන්න උත්තර දෙන්නම්. ඒ වගේම යටින් යන කෝඩ් සාම්පල් ටික බලන්න එකෙන් සැහෙන උදව්වක් වෙයි. ඔයාල හොදටම දන්නා ලන්වේජ් එකක් අරන් පොඩියට පටන් ගන්න. තමන්ගේ එකක් හදාගන්න එක තමා වටින්නේ. එන ප්රශ්න කෙලින්ම දාන්න උත්තර දෙන්නම්
මම පෙන්නලා තියන ජෙනිය ටිකක් ඇඩ්වාන්ස් එකක්. ඒක මම සැහෙන කාලෙක ඉදල දේවල් එකතු කරලා හදපු එකක්. ඒ වගේ තව ඒවා තියනවා ඉතින්. එකේ සෝස් එක දෙන්න බැරි තාම මම පාවිච්චි කරන නිසා සහ තව දෙන්නෙක් මගේ එක්ක ඉන්න නිසා. එත් උබලාට මේ වගේ එකකට යන්න මහා අමාරුවක් නැ .
මේකේ ඉන්නවා සැහෙන්න ඇඩ්වාන්ස් නොලේජ් එකක් තියන අය . ඒ අය ඉවසන්න ඕනේ මොකද මේක ටිකක් අඩුම ලෙවල් එකේ ඉදන් බලන අයටත් තේරෙන්න ඕනේ නිසා ඉතාමත් සරලව දාන්නේ.
ඇයි මෙහෙම එකක්
==============
දැන් හිතන්න හෙන තඩි සිස්ටම් එකක් ගහන්න තියනවා. එකම විදිහේ ස්ක්රීන් ටොන් ගානක් හදන්න වෙනවා. ඒ වගේම එකම විදිහේ ක්ලාස් එහෙම හෙන තොගයක් ලියන්න තියනවා. මට මේ එකම දේ කරන එක පෙන්න බැරි නිසා ගහපු ටුල් එකක් මේක.
මුලික දේ
=======
අපි මේකේ කරන්නේ එක සාම්පල් එකක් දුන්නාම එකේ වෙනස් වෙන්න ඕනේ දේවල් පිටින් අරන් ඒ හා සමාන තව දේවල් හදාගන්න එක නේ
උදා: මගේ ඩේටා බේස් එකේ තියනවා ටේබල් 5 ක්
1. Customer
2. Products
3. Countries
4. Cities
5. Currency
දැන් මම මේ එකකට SQL Insert එකක් හදාගන්නවා
උදා :
Code:
INSERT INTO Customers(column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
දැන් ඉතුරු 4 මේ වගේමනේ. ඉතින් අපි ගෙනරේටර් එක හදාගන්න ඕනේ මොකක්ද වෙනස් වෙන්න ඕනේ
ටේබල් නේම් එක සහ කොලම් ටික. ඉතින් මේ වගේ ඩේටාබේස් එකේ තියන ටේබල් හරහා ගිහින් Insert එකක් හදාගන්න පුළුවන් ඔක්කොම ටේබල් වලට.
දැන් බලනවා කොහොමද මේක වැඩි දියුණු කරන්නේ කියල. අපි මේ ඉන්සර්ට් එක Stroed Procedure එකක් ඇතුලට දාගන්නවා.
Code:
CREATE PROCEDURE InsertCustomer
@XX NVARCHAR(50) = NULL ,
@XXX DATETIME = NULL ,
@XXXX NVARCHAR(50) = NULL
AS
BEGIN
SET NOCOUNT ON
INSERT INTO dbo.Customer
(
XX ,
XXX ,
XXXX
)
VALUES
(
@XX ,
@XXX ,
@XXXX
)
END
GO
දැන් මේකෙත් වෙනස් වෙන්න ඕනේ ටික බලලා අපිට පුළුවන් ඒ තැන වලට වෙන වෙන එකක් දාල ඔක්කොම ටික හදාගන්න .
දැන් මේ උඩින් වෙන විදිහටම තමා ඔය Data Access Class සහ අනෙක් ක්ලාස් ඕනේ විදිහට හදාගන්නෙත්
මේ වැඩේ කරන්න වින්ඩොව්ස් වල ෆයිල් සිස්ටම් එක ගැන දැනගෙන ඉන්න ඕනේ. ඒ වගේම ඒ ෆයිල් සිස්ටම් එකේ functions තමන් මේ ජෙනරේටර් එක හදන ලන්වේජ් එකෙන් හොදට මාස්ටර් කරලා ඉන්න ඕනේ . ස්ට්රීම් එකකට ඩේටා ලියලා පස්සේ ඒ ටික ඔක්කොම කොහොමදා පෙලගස්ස්වලා ෆයිල් එකක ලියන්නේ කියලා දැනුම හදාගන්න ඕනේ
https://www.tutorialspoint.com/csharp/csharp_file_io.htm
පටන් ගන්නේ කොහොමද?
=======================
මුලින්ම ඔයාට ඕනේ වෙනවා සිස්ටම් එකක් මුල ඉදන් ගහගන්න විදිහ ගැන පොඩි අදහසක්. ඉතා සරල උදාහරණයක් විදිහට මම service oriented architecture එක ගන්නම්. මේකේ සරල ස්ටෙප් ටික මේ වගේ. (SOA architecture එක මිට වඩා හුගක් ගැබුරු එකක්. එත් අපි මේ ගානට ගමු ).
1. මුලින්ම ඩේටා බේස් එකේ ටේබල් ටික හදාගන්න වෙනවා (ඒ වගේම ස්ට්රෝඩ් ප්රෝසිදියර් වගේ දේවලුත් ඕනේ නම් පුළුවන් )
2. ඒ ඩේටා Access කරන්න ක්ලාස් ටිකක් හදාගන්න වෙනවා
3. ඒ ඩේටා වලින් අපේ බිස්නස් ලොජික් එක හැඩල් කරන්න රිපොසිටරි ගහගන්න වෙනවා (repository pattern එක දන්නේ නැත්නම් අහන්න කියල දෙන්නම් )
4. දැන් ඒ රිපොසිටරි පාවිච්චි කරලා සර්විස් එන්ඩ් පොඉන්ට් හදාගන්න ඕනේ
5. ඒ එන්ඩ් පොඉන්ට් පාවිච්චි කරලා Front End එකකුත් හදාගන්න ඕනේ (මේ පාට් එක මේකේ කියන්න යන්නේ නැ. ඕනේ නම් අහන්න )
මුලින්ම කරන්න ඕනේ මේ විස්තර වලට අනුව තමන් දන්නා විදිහට සරල ප්රොජෙක්ට් එකක් හදාගන්න. ඕනේ නම් මේ පිළිවෙල නැතුව ඊට වඩා සරල කරලා හදාගන්න. ඕනේ නම් තව ඇඩ්වාන්ස් කරලා හදාගන්න. එකේ එක CRUD එකක් සම්පුර්නෙන් තිබා නම් ඇති.
EX: Customer CRUD
- මේ රුපයේ C# Repository generator එකෙන් තමා අපි අර උඩින් හදාගත්ත සාම්පල් ප්රොජෙක්ට් එකේ Repository ටික හදාගන්නේ. අපිට දෙනවා ඩේටාබේස් එක හෝ ටේබල් ලිස්ට් එකක් . එක හරහා ලුප් කරලා තමා මේ ටික හදාගන්නේ.
- DBMS Generator කියන්නේ ඩේටාබේස් එක පැත්තේ තියන ඔක්කොම ගෙනරේට් කරගන පුළුවන් පාට් එක.
- C# web Api Endpoint Generator මේකෙන් කරන්නේ front End එකේ පාවිච්චි කරන Endpoint ටික හදලා දෙන එක
- Main Code Generator මේකෙන් කරන්නේ අර උඩින් තියන ඔක්කොම ගෙනරටේ කරපු ටික පිළිවෙලට හදලා අවසාන එක දෙන එක. මොකද ඩේටාබේස් සහ Repository හදනකන් Endpoint හදන්න බැනේ. ඒවා හරියට බලන්නේ මේකෙන් තමා.
මේ ටික හදාගත්තාම අපිට පුළුවන් නේ backEnd එකේ පාට් එක ඉවර කරන්න. ඉතින් මේ ටික හදාගත්තට පස්සේ තමන් හදපු ලන්වේජ් එකෙන් මේක ඇරලා අඩු පාඩු බලන්න ඕනේ. මුලින් ලුප් එකේ යන්නේ නැතුව එකකට විතරක් කරලා එන Output එක බලන්න ඊට පස්සේ ජෙනරේට් වෙන කෝඩ් එක වැරදි අඩුපාඩු තියේ නම් ජෙනියේ අදාළ තැන් වනස් කරලා හදාගන්න. ෆයිනල් රිසල්ට් එක අවාම මුළු ඩේටා බේස් එක හරහාම යන්න. ගිහින් ඔක්කොම එක පාර හදලා අඩු පාඩු බලලා එජස් කරගන්න. එකෙන් ෆයිනල් ප්රොඩක්ට් එකක් එයි.
ඔය විදිහේ සරලම එකෙන් පටන් ගත්තාම ඔයාල අලුතෙන් හොයාගන්න ටෙක්නොලොජි වගේම දේවල් වලට හරියන්න මේ ජෙනිය සදා අප්ඩේට් වෙන්න ඕනේ. ඒ වගේම මේ විදිහටම FrontEnd එකත් (Angular , PHP , JS ) ජෙනරේට් කරන ජෙනියක් හදාගන්න ඕනේ. එකට ඕනේ වෙන්නේ backend එකේ Endpoint ටික විතරයි.
මේක තේරෙන්නේ නැත්නම් නැති තැන් කමෙන්ට් කරන්න උත්තර දෙන්නම්. ඒ වගේම යටින් යන කෝඩ් සාම්පල් ටික බලන්න එකෙන් සැහෙන උදව්වක් වෙයි. ඔයාල හොදටම දන්නා ලන්වේජ් එකක් අරන් පොඩියට පටන් ගන්න. තමන්ගේ එකක් හදාගන්න එක තමා වටින්නේ. එන ප්රශ්න කෙලින්ම දාන්න උත්තර දෙන්නම්
මම පෙන්නලා තියන ජෙනිය ටිකක් ඇඩ්වාන්ස් එකක්. ඒක මම සැහෙන කාලෙක ඉදල දේවල් එකතු කරලා හදපු එකක්. ඒ වගේ තව ඒවා තියනවා ඉතින්. එකේ සෝස් එක දෙන්න බැරි තාම මම පාවිච්චි කරන නිසා සහ තව දෙන්නෙක් මගේ එක්ක ඉන්න නිසා. එත් උබලාට මේ වගේ එකකට යන්න මහා අමාරුවක් නැ .