Wednesday, October 8, 2014

ASP.Net WebAPI 2 සිංහලෙන් පාඩම 2 - අවශ්‍ය මෘදුකාංග සකස් කර ගැනීම


අපේ පළමු හැඳින්වීමේ ලිපියෙන් ASP.Net WebAPI 2 ගැන සවිස්තරාත්මක විග්‍රහයක් කලා, අද ලිපියෙන් මම මේ පාඩම් මාලාවට අවශ්‍ය මෘදුකාංග පර්ඝනකයේ පිහිටුවා ගැනීම ගැනයි කතා කරන්නේ.

ඔබට අවශ්‍ය වන ඉතාමත්ම වැදගත් මෘදුකාංගය වනුයේ Visual Studio 2013 යි. එහි අපිට අවශ්‍ය කරන බොහෝ අන්ගෝපාන්ග වලින් සමන් විතයි. මෙහි නොමිලේ ලබා දෙන සංස්කරණය මෙම පාඩම් මාලාව සඳහා හොඳටම ප්‍රමාණවත් (Visual Studio Express 2013 for Web). ඔබට එය www.visualstudio.com වෙබ් අඩවියෙන් ලබා ගත හැකිය. එසේ නොමැතිව ඔබ වෙනත් සංස්කරණයක් දැනටමත් භාවිතා කරයි නම් කිසිදු ගැටළුවක් නොමැතිව එය ඔබට මෙහිදී යොදාගත හැකි වේ.

මේ ළගට අපිට අවශ්‍ය වන්නේ database server එකයි. මේ සඳහා මම යොදා ගන්නේ SQL Server 2014, DBMS (Database Management System) එකයි. මෙහිත් නොමිලේ ලබා දෙන සංස්කරණය වන SQL Server 2014 Express සංස්කරණය www.microsoft.com/en-us/download/details.aspx?id=42299 (SQL Server With Management Studio) සබැඳියෙන් ලබා ගත හැක.

තවද මම මෙහිදී භාවිතා කරන web browser එක google chrome වේ. එයද www.google.com/chrome/browser සබැඳියෙන් ඔබට ලබා ගත හැකි වේවි.

තව එක මෘදුකාංගයක් මට අවශ්‍යයි, ඒ HTTP request වල තොරතුරු අධ්‍යනය කිරීමටයි. එයද ඔබට www.getpostman.com මගින් ලබා ගත හැකි වේවි. එය ඔබේ chrome browser එකට App එකට ලෙසට install වේවි.

දැන් අපි අවශ්‍ය කරන මෘදුකාංග සියල්ල පිහිටුවාගෙන අවසන්. ඔබලාගේ අදහස්, යෝජනා, චෝදනා හා ගැටළු comment මගින් මේ ලිපියට යොමු කරන්න එය මී ලග ලිපිය සඳහා මහගු පිටුවහලක් වනවා ඇති. මීලඟ පාඩමෙන් අපි අයේ හමු වෙමු.
Read More

Friday, August 29, 2014

ASP.Net WebAPI 2 සිංහලෙන් - හැඳින්වීම


ASP.Net Web API 2 සංස්කරණය නිකුත් වෙලත් දැන් ටික කාලයක්, ඉතින් කෝඩින් සිංහලෙන් (Coding Sinhalen) කණ්ඩායමේ අපි හිතුවා Web API සම්බන්ධව අපේ Blog එකේ ලිපි පෙලක් පළ කරන්න මේ හොදම කාලය කියල. මෙහිදී අපි ප්‍රධාන වශයෙන් අපි ASP.Net Web API සම්බන්ධව ඔබට අවශ්‍ය කරන මූලික දැනුමේ සිට ගැඹුරු සංකල්ප දක්වා ගමන් කරන්න බලාපොරොත්තු වෙනව. මම මෙම හැඳින්වීමේ ලිපියෙන් පහත සඳහන් කරුණු කාරනා ගැන අවධානය යොමු කරනව.

  • හැඳින්වීම
  • RESTful Service එකක් කියන්නේ මොකක්ද?
  • මොනවද අවශ්‍ය කරන software?
  • ASP.Net Web API හි විශේෂ ලක්ෂණ මොනවාද?
  • ASP.Net Web API 2 හි විශේෂ ලක්ෂණ මොනවාද?
  • ඔබ ASP.Net Web API තෝරාගත යුත්තේ ඇයි?
  • ASP.Net Web API, Web Services, WCF, WCF REST අතර වෙනස් කම් මොනවාද?

හැඳින්වීම

පරිඝණක පද්ධති (Computer Systems) පසුගිය දස වසර තුල පරිණාමය වී ඇති ආකාරය ඉතාමත්ම විශ්මයජනක වේ. එදා තනි තනිව (Stand Alone) ක්‍රියාත්මක වූ පරිඝණක පද්ධති අද එකට එකතු වී එදා මෙන් සිය දහස් ගුණයක සේවාවක් සපයයි. අද වන විට එවැනි තනිව ක්‍රියාත්මක වන පරිඝණක පද්ධති ඇත්තේ ඉතාමත් සීමිත ප්‍රමාණයක් පමණි. ඒ වාගේම විවිධ වූ ජංගම උපාංග (Mobile Devices) වලින් එම පරිඝණක පද්ධති හා සම්බන්ධ වීමේ පහසුකම් සපයා ඇත. එනම් අන්තර්ජාලය (Internet) හරහා හෝ ජංගම උපාංගයක ඇති App එකක් හරහා පරිඝණක පද්ධති පරිශිලනය කිරීමේ හැකියාව අද නැතුවම බැරි අංගයක් වී ඇත.

මෙසේ විවිධ වූ උපාංග හා පරිඝණක පද්ධති අතර දත්ත(Data) හුවමාරු කර ගැනීමේ අභිලාෂයෙන් බිහිවූ තාක්ෂණික ක්‍රම විශාල ප්‍රමාණයක් ඇත. Microsoft සමාගමේ .Net Framework එකත් සමග අපිට මෙවැනි ක්‍රම කිහිපයක්ම භාවිතා කිරීමේ පහසුකම් සලසා දී තිබෙනව.
  1. Web Services - ඉතාමත්ම පැරණි තාක්ෂණයකි.
  2. WCF (Windows Communication Foundation)
  3. WebAPI
මේ අතරින් web services දැන් කල් පැන ගිය තාක්ෂණයක් වන අතර WCF හා WebAPI කරට කර භාවිතා වේ. Web services සඳහා SOAP(Simple Object Access Protocol) නැමති XML(Extensible Markup Language) මත පදනම් වූ protocalය භාවිතා වේ. එමගින් HTTP(Hyper Text Transfer Protocol) හරහා ඉතා පහසුවෙන් දත්ත හුවමාරු කරගත හැකි විය. එපමනක් නොව .Net, Java වැනි Programming platform සමග සම්බන්ධවීමේ හැකියාව මෙම තාක්ෂණය සතු විය (Cross platform communication). නමුත් එය සතු දුර්වලතාද විය. ප්‍රධාන ලෙස දත්තයට අමතරව එම protocolයේ ක්‍රියාකාරීත්වය සඳහා රැගෙන යා යුතු දත්ත ප්‍රමාණය සාපේක්ෂව විශාල වීම සැලකිය හැකිය. එම නිසා bandwidth එක අඩු සන්නිවේදන මාර්ග හරහා දත්ත හුවමාරුව අපහසු විය. මෙය පරිඝණක පද්ධතියේ අවසාන කාර්යක්ෂමතාව කෙරෙහි ඉතා අහිතකර ලෙස බලපාන ලදී. එමෙන්ම web services භාවිතා කිරීමේදී භාවිතා කරන්නාගේ (Client) අන්තයේදී proxy එකක් හරහා දත්ත හුවමාරු කරගත යුතු වේ. එම නිසා service එකේහි වෙනසක් සිදු කොට නිසි ආකාරව proxy එක update නොකලහොත් මුළු පද්ධතියේම බිඳ වැටීමක් ඇති විය හැකිය. Web Services ක්‍රමයෙන් අභාවයට යද්දී Microsoft සමාගම සිය .Net 3.0 Framework නිකුතුවත් සමගම මේ සඳහා ආදේශකයක් ලෙස WCF හඳුන්වාදෙන ලදී.

WCF, web services වලට වඩා ආරක්ෂිත, පහසු හා පරිණත දත්ත හුවමාරු මාධ්‍යයක් සපයාදෙන ලදී. එමෙන්ම WCF වල විශේෂ පහසුකමක් ලෙස එය HTTP හැරුණු විට වෙනත් protocol සඳහා ඉතා පහසුවෙන් configure කර ගත හැකි වීම සඳහන් කළ හැකිය (HTTP, TCP, IPC සහ Message Queues). එමෙන්ම WCF භාවිතයෙන් අපිට REST(Representational State Transfer) services ද ගොඩනගා ගත හැකි අතර ඒවා WCF REST නමින් හඳුන්වයි (RESTful Services ගැන අපි පසුවට කතා කරමු). WCF RESTful services වල ප්‍රධාන අවාසියක් ලෙස විශාල වශයෙන් configurations අවශ්‍ය වීම දැක්විය හැකිය. නමුත් ඔබට one way messaging, message queues සහ duplex communication වැනි තාක්ෂණයන් භාවිතා කිරීමට අවශ්‍ය නම් අදටත් ඔබට WCF service එකක් භාවිතා කිරීමට සිදුවනු ඇත.

ASP.Net WebAPI යනු මෑත කාලීනව භාවිතයට පැමිණි RESTful service සාදාගත හැකි framework එකකි.එ එහි ප්‍රධානම වාසිය වනුයේ ඉතා පුළුල් වූ සේවාලාභීන් (Clients) සඳහා සේවාව සැපයීමේ හැකියාවයි, එය web browser වල සිට ඔබේ smart phone එක දක්වා විහිදී යියි. ASP.Net WebAPI MVC framework එකේ කොටසක් නොවේ, නමුත් එය MVC ව්‍යාපෘති (Projects) වලදීද Web Forms හෝ standalone web service වලදී වුවද යොදා ගත හැකිය. මෙහිදී database සමඟ දත්ත හුවමාරුව සඳහා අපිට Entity Framework යොදා ගත හැකිවේ. 


RESTful Service එකක් කියන්නේ මොකක්ද?

අපි මීලගට RESTful Service (Representational State Transfer) ගැන කතා කරමු. සරලව මේ ගැන කියනවානම් එය HTTP මත ක්‍රියාත්මක වන distributed environment එකක් හරහා දත්ත හුවමාරු කරගැනීම සඳහා සැකසුණු protocol එකකි. මෙහිදී අපගේ service එක resource එකක් ලෙස සලකා ඒ මත විවිධ වූ ක්‍රියාකාරකම් HTTP හරහා සිදු කිරීම විශේෂ වේ. HTTP methods කිහිපයක් මේ සඳහා භාවිතා වේ.


  • GET - මෙය දත්ත ලබා ගැනීම සඳහා වේ.
  • PUT - දත්ත යාවත්කාලීන (Update) කිරීම සඳහා භාවිතා කරයි.
  • POST - දත්ත තැන්පත් (Create) කිරීම සඳහා යොදා ගනියි.
  • DELETE - දත්ත මකා දැමීම සඳහා වේ.
WCF, RESTfull service එකක් ලෙස සකස් කර ගැනීමට හැකි වුවද එය යම් ප්‍රමාණයකට සංකීර්ණ වූ ක්‍රියාවලියකි. නමුත් ඔබ WebAPI මේ සඳහා යොදාගනී නම් එය වඩාත් සරල සේ දැනෙනු ඇත.

මොනවද අවශ්‍ය කරන software?

  1. ඔබට මේ tutorial එක සඳහා Microst Visual Studio 2013 සංස්කරණය අවශ්‍ය වේ. (Express edition එක වුවද ප්‍රමාණවත්ය). http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
  2. Microsoft SQL Server 2014 (Express edition එක වුවද ප්‍රමාණවත්ය). http://www.microsoft.com/en-us/download/details.aspx?id=42299

ASP.Net Web API හි විශේෂ ලක්ෂණ මොනවාද?

  1. HTTP ප්‍රතිචාර වල Accept Header සහ HTTP status code අන්තර්ගත වීම.
  2. HTTP ප්‍රතිචාර WebAPI හි MediaTypeFormatter මගින් JSON, XML හෝ ඔබ ඊට ඇතුලත් කරන format එකකට format කිරීම.
  3. PDF හෝ Images වැනි objects නොවන දෑ සඳහාද WebAPI සහය දැක්වීම.
  4. IIS(Internet Information Services) වල හෝ Application හි ස්ථාපිත කිරීමේ හැකියාව.
  5. MVC ලක්ෂණ වන routing, controllers, action results, filter, model binders සඳහා සහය දැක්වීම.

ASP.Net Web API 2 හි විශේෂ ලක්ෂණ මොනවාද?

  1. Attribute Routing.
  2. CORS - Cross Origin Resource Sharing.
  3. OWIN(Open Web Interface for .Net) self hosting.
  4. IHttpActionResult.
  5. Web API OData(Open Data Protocol).

ඔබ ASP.Net Web API තෝරාගත යුත්තේ ඇයි?

  1. ඔබට SOAP based service එකක් අනවශ්‍ය විටකදී හොඳම විසඳුම වීම.
  2. ඉතා කරදරකාරී configuration වලින් තොර වීම.
  3. සරලව RESTfull Service එකක් සාදා ගත හැකි වීම (Http මත පමණක් පදනම් වී ඇති නිසා).
  4. Light weight architecture එකක් නිසා අඩු bandwidth එකක් ඇති ජංගම උපාංග සඳහාද හිතකර වීම.
  5. WebAPI, Open Source වීම.

ASP.Net Web API, Web Services, WCF, WCF REST අතර වෙනස් කම් මොනවාද?

  • Web Service සහ WCF, SOAP මත පදනම් වන අතර දත්ත XML ලෙස හුවමාරු කර ගනී.
  • Web Service HTTPට පමණක් සහය දක්වන අතර WCF TCP, HTTP, HTTPS, Named Pipes සහ MSMQ protocols වලට සහය දක්වයි.
  • Web Service,WCF සහ WCF REST, open source නොවන අතර WebAPI open source වෙයි.
  • Web Service හා WCF REST IIS වල පමණක් host කල හැකි අතර WCF හා WebAPI IIS වල හෝ application එක තුල host කල හැකිය.
  • WCF REST, HTTP Get හා Post verbs වලට සහය දක්වද්දී WebAPI HTTP හි සියළුම features භාවිතා කරයි (URIs, request/response headers, cashing, versioning, content formats).
  • WebAPI MVC features වන routing, action results, controllers, model binders වැනි දේ සඳහාද සහය දක්වයි.
  • Web Services හා WCF හි ප්‍රතිචාර XML format එකෙන් ලැබෙන අතර WCF REST XML, JSON සහ ATOM යන format වලයට සහය දක්වයි. WebAPI හිදී ඔබට MediaTypeFormatter මගින් ඔබට අවශ්‍ය ආකාරයට format එක වෙනස් කර ගත හැකිය.
Microsoft සමාගමේ WebAPI ගැන ඔබට යම් දුරකට අවබෝධයක් මෙයින් ලැබෙන්න ඇති, ගොඩක් ගැටළුත් ඇති, ඔබලාගේ අදහස්, යෝජනා, චෝදනා හා ගැටළු comment මගින් මේ ලිපියට යොමු කරන්න එය මී ලග ලිපිය සඳහා මහගු පිටුවහලක් වනවා ඇති.

ආශ්‍රිත ලිපි :


Read More

Monday, March 17, 2014

ASP.Net Web Application එක Browsers කිහිපයක Run කරවමු.

             වෙබ් ඇප්ලිකේෂන් develop කරන ගොඩක් අයට තිබෙන ගැටළුවක තමයි එක web browser එකක ඉතාමත් හොඳින් නිවැරදිව ක්‍රියා කරන මෘදුකාංගය වෙනත් web browser එකක පරීක්ෂා කරන කොට ඊට හාත්පසින්ම වෙනස් විදිහට ක්‍රියා කිරීම. මේක බොහෝ විට Google Chrome web browser එක සමග තමයි සිද්ද වෙන්නේ. ඔබ Telerik වගේ third party controls භාවිතා කරනවානම් මේ අවදානම ඉතාමත් වැඩියි. මොකද එවැනි controls වල අළුත්ම version එක පමණයි බොහෝවිට නවතම web browsers වලට සහාය දක්වන්නේ. 

              මෙවැනි ගැටළු නිසා Visual Studio IDE අපිට පහසුකම් සලසා දීල තියෙනව web browsers කිහිපයක අපේ application එක පරීක්ෂා කිරීමට. ඒ සඳහා අපේ පරිඝණකයේ install කරල තියෙන ඕනම  web browser එකක් භාවිතා කරන්න පුළුවන්.


        
Read More

Sunday, February 16, 2014

Bootstrap සිංහලෙන් - 1 හැදින්වීම

වෙබ් නිර්මාණ කැරුවෙකු විදිහට කාලය ඉතාම වැදගක් සාදකයකි. වෙබ් නිර්මාණ කැරුවන් තම සක්‍රීයතාවය ඉහල නංවාගැනීම සදහා විවිධ උපක්‍රම භාවිතා කරයි. ඒ උපක්‍රම අතුරින් Framework සදහා හිමි වන්නේ මුල් තැනකි. එනම් Framework යනු පෙර සාදන ලද Styles සහ plugins එකතුන්ය. සැබැවින්ම Framework එකක් උපයෝගී කරගැනීමෙන් විශාල කාලයක් ඉතිරි කරගත හැකිය.

දැනට බොහොමයක් ජනප්‍රිය Framework අතුරින් Bootstrap සදහා හිමිවන්නේ මුල් තැනකි. Bootstrap යනු කලින් ලියනලද CSS හා JS කේත සමූහයකි. වෙබ් නිර්මානයේ දී අවශ්‍ය වන element ගණනාවක මූලික් කේතයන් Bootstrap තුල අඩංගු වේ. ඒසේම  නවීන වෙබ් නිර්මාණය සදහා අවශ්‍යවන උපාංගද බොහොමයකි. ඉදිරි පාඩම් තුලින් අපි ඒවා පිලිබඳ සාකච්චා කරමු.


Bootstrap නිර්මාණය කරන ලද්දේ twitter හී සේවය කරන මාර්ක් ඔට්ටෝ (Mark Otto) ජෙකබ් තොරටන් (Jacob Thornton) විසිනි. ඒ 2011 වසරෙදීය.මෙය සම්පුර්නයෙන්ම නොමිලයේ ලබා දීම සිදුකරයි (free & Open-source). මේ වන විට Bootstrap හී තෙවන සංස්කරණය වන Bootstrap3 ද එලිදක්වා ඇත.
Bootstrap හී ප්‍රධාන වෙබ් පිටුවට මෙතනින් පිවිසෙන්න

මාර්ක් ඔට්ටෝ (Mark Otto)

ජෙකබ් තොරටන් (Jacob Thornton)

Bootstrap පාඩම් මාලාව සදහා ඔබ කලින් දැනගෙන සිටිය යුතු මුලික දැනීමක් අවශ්‍ය වේ. ඒවා නම්. HTML CSS හා JS ය. අඩුම තරමේ HTML පිලිබඳ දැනුම අවශ්‍ය වේ.


>> ඊලග  කොටස ලගදීම බලාපොරොත්තු වන්න
--------------------------------------------------------------------------
මේ ලිපියෙහි හෝ මෙය සිදු කිරීමේදී යම් ගැටලුවක් ඇත්නම් Comments වල දමන්න.
මා අතින් යම් වරදක් හෝ යමක් මග හැරී ඇත්නම් ඒවාත් නිවැරදි කිරීම පිනිස Comments වල දමන්න.
Read More