Friday, March 25, 2016

Arduino සිංහලෙන් - උෂ්ණත්වමානයක් හඳමු 1


උෂ්ණත්වමානයක් නිවසේදීම හදාන්න හැටි අද අපි මේ ලිපි පෙලින් කතා කරමු. මේ දවස් වල තිබෙන අධික උෂ්ණත්වයත් එක්ක මේය ඔබට ඉතාමත් වැදගත් වේවි යැයි මම හිතනවා.

මේ සඳහා මම කලින් ලිපි වල සදහන් කල උපාංග වලට අමතරව Temperature Sensor එකක් අවශ්‍ය වෙනවා. වෙළද පොලේ ඔබට විවිධ Temperature Sensor දැකගත හැකියි. නමුත් මම තෝරා ගත්තේ DS18B20 නැමැති Temperature Sensor එකයි. DS18B20 මේ සඳහා උචිත වීමට පහත කරුණු දැක්විය හැකියි.

DS18B20
Pin Arrangement

  • Digital Sensor එකක් වීම.
Analog sensor එකක් මෙන් උෂ්ණත්වයට අනුව වෝල්ටීයතා වෙනස් වීමක් මෙයින් සිදු නොවන අතර උෂ්ණත්ව මිනුම නිවැරදිව 8bit හෝ 12bit digital signal එකක් ලෙස අපේ ප්‍රධාන Arduino board එකට ලබා දෙයි. මෙහි ප්‍රධානම වාසිය නම් උෂ්ණත්ව අගය සෙල්සියස් අංශක වලින්ම ලබා දෙන නිසා අපිට analog sensor එකක මෙන් වෝල්ටීයතා ක්‍රමාංකනයක් අවශ්‍ය නොවේ. (සේල්සියස් අංශක 0 දී හා 100 දී වොල්ටීයතා අගයන් ලබා ගෙන එක් එක් වෝල්ටීයතාවයෙදී උෂ්ණත්වය නිර්ණය කිරීම)

  • 1-Wire® තාක්ෂණය
එනම් විදුලිය සපයන වයර් දෙකට අමතරව තවත් එක් වයරයක් පමණක් භාවිතා කරමින් (one data line) DS18B20 උපාංග Arduino board එක හා සම්බන්ධ කල හැකි වීම. 



සෑම DS18B20 උපාංගයකටම අනන්‍ය වූ 64bit serial code එකක් ඇති නිසා මේවායේ දත්ත එකම වරයකින් Arduino board එක වෙත පැමිණියද එ්වා වෙන් වෙන්ව හඳුනා ගැනීමේ හැකියාව ඇත. 

එසේම මෙම උපාංගය Parasitic Power Mode නැමැති ආකාරයට සම්බන්ධ කිරීමෙන් ඔබට පෙර සඳහන් පරිදි වයර් 3ක් නොමැතිව වයර් 2ක් පමණක් භාවිතා කර සම්බන්ධ කර ගත හැකිය. (ground and data line only)


  • පරාසය
DS18B20 උපාංගයකට -55°C to +125°C (-67°F to +257°F) අතර උෂ්ණත්වය කියවිය හැකිය, -10°C to +85°C අතර දී ±0.5°C නිර්වද්‍යතාවයක් එය සතුවෙයි.

  • මිල
ඔබට මෙය වෙළද පොලෙන් රුපියල් 150ක් වැනි මුදලකට මිලදී ගත හැකියි. ebay මගින් උවද ඔබට ඉතා පහසුවෙන් නිවසටම ගෙන්වාගත හැකියි. 


අද ලිපියෙන් මම කතා කලේ Temperature Sensor එක ගැනයි. මීලග ලිපියෙන් මම මෙය Arduino board එක හා සම්බන්ධ කර ගන්නා ආකාරය හා 1-Wire® තාක්ෂණය යොදා ගන්නා ආකාරය ගැන ඉදිරිපත් කරන්නම්. ඔබට මේ සම්බන්ධයෙන් ඇති ගැටළු comment මගින් හෝ email මගින් විමසන්න.
Read More

Monday, January 11, 2016

Arduino සිංහලෙන් - අවශ්‍ය උපාංග හඳුනාගනිමු 2


අපි පසුගිය ලිපියෙන් Arduino සමග නිර්මාණකරනයේ යෙදෙන්නට අවශ්‍ය මූලික උපාංග අඳුනාගන්න පුළුවන් වුනා, ඒත් අපිට ඊට අමතරව තව උපාංග කිහිපයක් අවශ්‍ය වෙනවා ඒ Arduino සම්බන්ධ කරගනිමින් පරිපථ නිර්මාණය කිරීමට අවශ්‍ය උපාංගයි. ඔබට මේ සියලුම උපාංග පිටකොටුවේ 1 වෙනි හරස් වීදියේ ඉලෙක්ට්‍රොනික උපාංග කඩවලින් හෝ eBay වලින් ලබා හැකියි. අපේ ඉදිරි පාඩම් වලට වැදගත් වන නිසා මේ උපාංග මිලදී ගැනීම අත්‍යවශ්‍ය වේ. 


1. Project Board



අපේ පරිපථයේ උපාංග පෑස්සීමකින් තොරව එකලස් කර ගෙන පරිපථය ක්‍රියාකාරීත්වය පරීක්ෂා කීරීමට අපිට project board එක ඉතාමත් වැදගත් වෙනවා. ඒ වගේම පරිපථයේ යම් යම් වෙනස් කම් කරමින් විවිධ දේ අත්හදා බලන්න අපිට මෙමගින් හැකිවෙනවා


2. Jumper Wires


Project board එක මතට විවිධ ඉලෙක්ට්‍රොනික උපාංග සම්බන්ධ කිරීමට හා වෙනත් පරිපථ කොටස් සමග සම්බන්ධතා ඇති කර ගැනීමට Jumper wires ඉතාමත් වැදගත් වනවා. Jumper wires වර්ග 3ක් තිබෙනවා, ඒ Male to Male, Female to Male හා Female to Female වශයෙනුයි. අපිට මේ වර්ග තුනෙන්ම Jumper wires අවශ්‍ය වෙනවා.


Project board එක මත ස්ථාන 2ක් සම්බන්ධ කිරීමේදී Male to Male වර්ගයද, බාහිර ඉලෙක්ට්‍රොනික උපාංගයක් Project board හා සම්බන්ධ කිරීමේදී Female to Male වර්ගයද, ඉලෙක්ට්‍රොනික උපාංග 2ක් එකිනෙක සම්බන්ධ කිරීමේදී Female to Female වර්ගයද වැදගත් වේ.

දැන් කට්ටයම Arduino Uno වගේ board එකක් මිලදී ගෙන අපේ ඉදිරි ලිපි වලදි කියල දෙන Projects කරන්න ආසාවෙන් ඇති කියල හිතනවා. ඒ වගේම Arduino IDE එක ඔයාලගේ computer එකේ දැනටමත් install කරගෙන ඇති කියල මම හිතනවා. අපි ඊලග ලිපියෙදී Arduino භාවිතා කරල සරල නිර්මාණයක් කරන්නයි බලාපොරොත්තු වෙන්නේ. Board එකක් ගන්න බැරි වුන අය ඉන්නවා නම් මට email කරන්න මට පුළුවන් එකක් ගන්න උදව් කරන්න. ඊට අමතරව ඔබට ඇති මේ සම්බන්ධව ඇති ඕනෑම ප්‍රශ්ණයක් comment මගින් හෝ email මගින් විමසන්න.



Read More

Thursday, December 31, 2015

Arduino සිංහලෙන් - අවශ්‍ය උපාංග හඳුනාගනිමු



ඔබ සැම Arduino ලිපි මාලාවේ දෙවැනි ලිපියට සාදරයෙන් පිළිගන්නව. පළමු ලිපියට ඔබ සැමගෙන් ඉතා උණුසුම් ප්‍රතිචාර ලැබුනත් කාර්ය්‍යබහුල බව නිසා තමයි දෙවැනි ලිපිය ලියන්න මෙච්චර කාලයක් ගත වුනේ. මාව මේ සඳහා උනන්දු කල ඔබ සැමට ගොඩක් ස්තූතියි.

අපි අද ලිපියෙන් මම කතා කරන්න බලාපොරොත්තු වෙන්නේ Arduino සමඟ නිර්මාණකරනයේ යෙදෙන්න ඔබට අවශ්‍ය කරන උපාංග එහෙමත් නැත්තම් අවශ්‍ය කරන දෘඩාංග (hardware) හා මෘදුකාංග (software) හඳුන්වා දෙන්නයි. (මෙහිදී මම මූලිකවම අවශ්‍ය කරන දේවල් පමණක් සඳහන් කරන අතර මීට අමතරව අවශ්‍ය කරන උපාංග පසු ලිපි වලදී සාකච්ඡා කරනු ලැබේ)


1. Arduino Board


අපිට මූලිකවම Arduino board එකක් අවශ්‍ය වෙනව. මේක හරියට computer එකේ motherboard එක වගේ, අපි සියළුම දේ සම්බන්ධ කරන්නේ මේ board එකටයි. Arduino අළුතින් ඉගෙන ගන්න ඔබට ඉතාමත්ම සුදුසු වන්නේ Arduino Uno වගේ entry level board එකක්. මේ board එක computer එක හා සම්බන්ධ කර ගැනීමට ඔබට USB cable එකක්ද අවශ්‍ය වේ.


මේ board එකේ ප්‍රධාන තාක්ෂණික දත්ත පහත පරිදි දැක්විය හැකිය :

MicrocontrollerATmega328P
Operating Voltage5V
Input Voltage (recommended)7-12V
Input Voltage (limit)6-20V
Digital I/O Pins14 (of which 6 provide PWM output)
PWM Digital I/O Pins6
Analog Input Pins6
DC Current per I/O Pin20 mA
DC Current for 3.3V Pin50 mA
Flash Memory32 KB (ATmega328P)
of which 0.5 KB used by bootloader
SRAM2 KB (ATmega328P)
EEPROM1 KB (ATmega328P)
Clock Speed16 MHz
Length68.6 mm
Width53.4 mm
Weight25 g
ඉහත දැක්වෙන තාක්ෂණික දත්ත අපි පසු ලිපියකදී සවිස්තරාත්මකව සාකච්ඡා කරමු.


2. Arduino IDE

Arduino වල code ලියන්න අපිට IDE (Integrated Development Environment) එකක් අවශ්‍යයි, මෙය අපිට පහසුවෙන්ම Arduino වෙබ් අඩවියෙන් download කර ගත හැකියි.


දැනටමත් programming කරන අයට නම් මෙවැනි IDE හොඳට හුරු ඇති. මේ IDE එක ගැනත් මම පසුව සවිස්තරාත්මක ලිපියක් ඉදිරිපත් කරන්නම්.


3. Arduino Shields

Arduino Shields අපි යොදා ගන්නේ Arduino board එකට අපට අවශ්‍ය විවිධ හැකියාවන් එක් කර ගන්නයි. හරියට computer motherboard එකකට VGA Card එකක්, Sound Card එකක් හෝ TV Card එකක් සම්බන්ධ කරනවා වගේ දෙයක් තමයි මේක. විවිධ හැකියාවන්ගෙන් යුත් Shield රැසක් අද වන විට හදුන්වා දී තිබෙනවා.



මීට අමතරව තව බොහෝ Shield වර්ග Arduino සඳහා වෙලඳ පොළේ ඇත. මේ එක් එක් Shield ගැන අපි ඒවා සම්බන්ධ කරගෙන නිර්මාණ කරන විටදී සාකච්ඡා කරමු.


4. Sensors

බොහෝ විට අපිට අවට පරිසරයේ දත්ත අපේ නිර්මාණය සඳහා යොදා ගැනීමට සිදු වෙනවා. ඉතින් මේ දත්ත ලබා ගන්න අපිට විවිධ sensors වල සහය අවශ්‍ය වෙනව. පහතින් මම උදාහරන කිහිපයක් පමණක් සඳහන් කරන්නම්.

  • Temperature Sensors
  • Motion Sensors
  • Humidity Sensors
  • Light Sensors
  • Distance Measuring Transducer Sensor
  • IR Sensor
මම ඉහත සඳහන් කර ඇත්ත Sensors කිහිපයක් පමණයි. Sensors ගැනත් අපි ඉදිරි පාඩම් වලදී කතා කරමු.

මේ බොහෝ උපාංග ebay හරහා ඔබට ඉතා පහසුවෙන් නිවසටම ගෙන්වා ගැනීමට හැකියි. Arduino copy එකක් ඔබට රුපියල් 1000 කට අඩුවෙන් මිලදී ගත හැකියි.

ඔබට ඇති මේ සම්බන්ධව ඇති ඕනෑම ප්‍රශ්ණයක් comment මගින් හෝ email මගින් විමසන්න.



Read More

Friday, August 14, 2015

Arduino සිංහලෙන් - හැඳින්වීම



කෝඩින් සිංහලෙන් හි මේ අලුත් පාඩම් මාලාව මම පොඩි කියමනකින්ම පටන් ගන්නම්,


"Creativity is just connecting things." - Steve Jobs


අපේ මේ පාඩම් මාලාවට මේ කියමන හරි අපූරුවට ගැලපෙනව, ඒ මේ මගින් ඔබේ Electronic හෝ Computer Programming පිළිබඳව ඇති දැනුම හෝ වෙනයම් එවැනි කරුණුමත පදනම් නොවී ඔබේ නිර්මාණශීලීතාවට ඉඩක් ලබා දීමට ඇති හැකියාව නිසයි. Arduino ගැන දැනටමත් දන්න අයට හෝ යම් කිසි අදහසක් තියෙන අයට මම අදහස් කල දේ දැනටමත් තේරුම් ඒන්න ඇති. එ්ත් මේ අතරේ Arduino අලුතෙන්ම ඉගෙන ගන්න ආපු අයටනම් පොඩ්ඩකක් අන්ඩර දෙමළ වගේ ඇති. :D පොදුවේ මේ හැම දෙනාටම මෙම හැඳින්වීමේ ලිපියේදී හොඳ අවබෝධයක් ලබා දෙන්නයි අපේ බලාපොරොත්තුව.

Arduino ගැන එයාලගෙම වෙබ් අඩවියේ සඳහන් වෙන්නේ මෙහෙමයි, 

"Arduino is an open-source prototyping platform based on easy-to-use hardware and software."


Arduino උපත ලබන්නේ 2005 දී ඉතාලියේ "Ivrea Interaction Design Institute" හිදීයි. මෙහිදී මොවුන්ගේ ප්‍රධාන අරමුණ වනුයේ electronics හෝ programming පිළිබඳව දැනුමක් නොමැති සිසුන් සඳහා, විවිධ වු පරේෂණ කිරීමට හැකි පහසු platform එකක් සකස් කර දීමයි. අපි අතරත් මේ වගේ අය බොහෝ ඉන්න නිසා අපිටත් මේ තාක්ෂණය එකසේ වැදගත්. Arduino වල හදවත වන්නේ micro controller එකක් සහිත board එකකි. (පහත රූපයේ දැක්වෙන්නේ Arduino Uno නැමැති board එකයි)



Arduino වල සුවිශේෂීත්වය තමයි අපිට ඔවුන්ගේ හැම Board එකකම පරිපථ සටහන් ලබා ගැනීමට හැකි වීම. එම නිසා මෙම තාක්ෂණය අපිට රිසි සේ භාවිතා කළ හැකියි. මේ නිසාම විවිධ ආයතන විසින් Aduino board වල ක්ලෝන (Clones) සාදා විකුණනු ලබනවා. Original Arduino board එකක් හා සංසන්ඳනය කිරීෙම්දී මේ ක්ලෝන ඉතා පහසු මිලකට ලබා ගැනීමේ හැකියාව තිබෙනව. ඒකත් අපි රටේ මේ තාක්ෂණය ඉක්මනින් ප්‍රචලිත වීමට හේතුවක්.

Arduino වලින් ප්‍රයෝජනයක් ගන්න මේ board එක විතරක් තිබිල මදි. මේ board වලට වවිධ වූ සංවේදක(Sensors) වලින් දත්ත ලබා ගැනීමේ හැකියාව තිබෙනව. එම ලබාගත් දත්ත අනුව තවත් යම් යම් උපකරණ සඳහා දත්ත ලබා දීම හෝ යම් කිසි කාර්යයක් කිරීමේ හැකියාව මේවා සතුයි.

දැන් ඔබ කල්පනා කරනවා ඇති Arduino හා programming සම්බන්ධ වන්නේ කොහොමද කියන දේ, ඒක තමයි Arduino හි සුවිශේෂීත්වය, ඒ අපිට මේ board සඳහා program එකක් ඇළුලත් කර ගැනීමේ හැකියාවයි. මේ සඳහා අපි යොදා ගන්නේ "The Arduino Software" නැමැති IDE (Integrated Development Environment) එකයි. (පහත රූපය බලන්න)



ඒවගේම මේ board වල හැකියාවන් තව දුරටත් වර්ධනය කර ගැනීමට අපිට Arduino විසින්ම විවිධ වූ expansion boards හඳුන්වා දී තිබෙනවා. ඔවුන් ඒවා හඳුන් වන්නේ Shields කියායි. මේ Shields වල සුවිශේෂීත්වය තමයි ප්‍රධාන board එක මත මේ shields ඉතා පහසුවෙන් සවිකර භාවිතයට ගැනීමේ හැකියාවයි.  (පහත රූපය බලන්න, මෙහිදී Arduino Uno board එකට Shileds දෙකක් සවි කර තිබෙනව)



දැන් ඔබට මම මුළින් උපුටා දක්වපු වැකියේ අදහස වඩාත් පැහැදිලි ලෙස අවබෝධ වනවා ඇති. මේ විදිහට Arduino යොදාගෙන අපිට කරන්න පුළුවන් නිර්මාණ ඉතා විශාලයි එය ඔබේ නිර්මාණශීලීත්වය හා අවශ්‍යතාවය මත රදා පවතිනු ඇත. 

අපි Arduino ගැන තවත් විස්තර රැගත් තව ලිපියකින් ලගදීම හමු වෙමු. ඔබට ඇති ගැටළු හා අදහස් මෙහි comment කරල යන්න අමතක කරන්න එපා ඒක අපිට ඊලග ලිපිට සඳහා දිරිමත් කිරීමක් වනු අැති.

References 

https://en.wikipedia.org/wiki/Arduino 
https://www.arduino.cc/
Read More

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

Wednesday, December 4, 2013

විවිධ පරිඝණක භාෂා වලදී වාක්‍ය එකට ඇමිණීම හෙවත් String Concatenation



                   මාතෘකාවෙදි මම දන්න සිංහලෙන් කිව්වවගේ නෙමෙයි ඊලගට තියෙන ඉංග්‍රීසි නමින් නම් හැමෝම මේ ගැන දන්නව, අහල තියෙනව. කෙනෙකුට හිතෙන්න පුළුවන් මේකත් blog එකේ දාන්න දෙයක්ද කියල, ඇත්ත හරිම සරල දෙයක් තමයි, මම හිතනව අපි හැමෝම එදිනෙදා programming කරන කොට දහස් වාරයකට වඩා යොදා ගෙන ඇති. ඉතින් මෙතනදි මගේ අරමුණ අපිට සමීප programming හා scripting භාෂා කිහිපයකදී කොහොමද යෙදෙන්නේ කියල ඒක තැනකදී පැහැදිලි කිරීමයි.

අපි පිළිවෙලින් ඒවා බලාගෙන යමු......
     
C#
String str = "Coding" + "Sinhalen";


Visual Basic
Dim str As String = "Coding" + "Sinhalen"
Dim str As String = "Coding" & "Sinhalen"


Microsoft Access/MSSQL Server
Select 'Coding' + 'Sinhalen'


Oracle
Select 'Coding' || 'Sinhalen'


MySQL/MSSQL Server 2012
Select CONCAT('Coding','Sinhalen')


php
$Str = "Coding" . "Sinhalen";


JavaScript
var Str = "Coding" + "Sinhalen";


Java
String str = "Coding" + "Sinhalen";

මට මතක් උන ටික දැම්ම කට්ටියට තව මතක් වෙනවනම් කියන්න මම ඒවත් දාන්නම්... ආයෙත් දවසක හමු වෙමු...
Read More

Friday, November 8, 2013

කව්ද කැමති Microsoft Certified Solutions Developer (MCSD) කෙනෙක් වෙන්න ? - හැඳින්වීම


                  කොඩින් සිංහලෙන් කණ්ඩායමේ තවත් එක් ප්‍රයත්නයක් විදිහට අද සිට අපි ගෙන එන නවතම පාඩම් මාලාව ගැන කියන්නයි මේ හඳන්නේ. ගොඩක් අය MCSD ගැන අහල ඇති, ඒ වගේම කරපු අයත් ඇති, තවත් පිරිසක් ඉන්නම මේ ගැන මුකුත්ම දන්නේ නැති. ඉතින් මේ හැම කොටසමට මම ආරාධනා කරනව අපිත් එක්ක මේ දැණුම බෙදා හදා ගෙන ඉදිරියට යමු කියල.
                  හරි අපි දැන් බලමු කව්ද මේ Microsoft Certified Solutions Developer කෙනෙක් කියන්නේ කියල, Software industry එකත් එක්ක ඉන්න අය දන්නව අද වන විට මෘදුකාංග ලෝකයේ එක් ප්‍රධාන කොටස් කරුවෙක් වන්නේ Microsoft සමාගමයි. මේ සමාගමට අයත් පරිඝණක භාෂා උපයොගී කරගෙන විවිධාකරයේ මෘදුකාංග ලියවෙනව. අපි හැමොම වගේ දන්න Visual Basic.Net වගේම C#.Net, ASP.Net ද අයත් වන්නේ මේ සමාගමටයි. අපි මේ භාෂා විවිධාකාරයේ ක්‍රමමගින් ඉගෙන ගන්නව. සමහර අයෙක් තනිවම පොතක් කියවල හෝ වෙනත් ආකාරයේ tutorial එකක් ආධාරයෙන් ඒ හැකියාව ලබා ගනිද්දි තවත් අයෙක් උපකාරක පන්තියක ආධාරය සහිතව හෝ වෙනත් ආයතනයකින් එය ලබා ගන්නව. මේ මොන ක්‍රමයට දැනුම ලබා ගත්ත් මේ හැම දෙනාම ඉල්ලුම් කරන්නේ ඒකම රැකියාවකටයි. මෙ හැමොගෙම දැනුම මට්ටම ආයතනික වශයෙන් මැන ගැනීම අත්‍යවශ්‍යයි. මෙන්න මේ කාර්යය පහසුකර ගැනීමට හා තම තමන්ගේ පෞද්ගලික දැනුම් මට්ටම හා හැකියාව සඳහා සහතියක ලබා ගැනීමේ අරමුණින් Microsoft සමාගම හඳුන්වාදී ඇති වැඩසටහනකි මේ. මෙහි වටිනාකම වන්නේ මෙය ජාත්‍යන්තර වශායෙන් පිළිගැනීමක් ඇති සහතිකයක් වීමයි. 
                        මම මේ පාඩම් මාළාව තුළීන් බලාපොරොත්තු වන්නේ ඔබට MCSD : Web Applications යන සහතිකය ලබා ගැනීමට අවශ්‍ය දැනුම ලබා දීමටයි. මේ සඳහා ඔබ විභාග 3ක් සම්පූර්ණ කල යුතු වෙනවා.


                       මම හිතුව Exam 486 - Developing ASP.NET 4.5 MVC Web Applications කියන විභාගයෙන් මේ පටන් ගන්න මොකද මේ දවස් වල MVC ඉතාමත් උණුසුම් මාතෘකාවක් වෙලා තියෙන නිසා. මේ සඳහා Microsoft සමාගම විසින්ම උපකාරක පොතක් නිකුත් කරල තියෙනව,


                  පුළුවන් නම් හොයා ගෙන කියවන්න. මිලදී ගන්නවානම් Ebay හෝ Amerson වෙබ් අඩවිවලින් ගන්න පුළුවන්. (වෙනත් ක්‍රම වලිනුත් හොයා ගන්න පුළුවන් වේවි සමහර විට) අපි මීළග පාඩමේ ඉදල සවිස්තරාත්මකව පාඩම් ඉගෙන ගමු. යන්න කලින් මතක් කරන්න ඕන මේ exam ලංකාවේදී පවත්වන ආයතන තියෙනව ඒ අයත් එක්ක සම්බන්ධ වෙලා ඔයාලට මේ විභාග වලට අයදුම් කරන්න පුළුවන්. මුදලනම් ඉතින් වෙනස් වන සුළුයි.  එහෙනම් අපි ඊලග පාඩමෙන හමු වෙමු.



                              
Read More

Friday, August 2, 2013

Java ඉතිහාසයෙන් බිඳක්

අද Java තාක්ෂණයෙන් සවිබල ගැන්වෙන එදිනෙදා ජීවිතයේ අත්‍යවශ්‍ය අංග අති විශාලය. ඔබේ Smart phone යේ සිට සෑම අස්සක් මුල්ලක් නෑරම විවිධ අයිතමයන් පණගැන්වෙන්නෙ Java මගිනි. මෙසේ අද වන විට Java තාක්ෂණය එදිනෙදා දිවියට නැතිවම බැරි අංගයක් වන්නට ප්‍රථම එහි ආගමනය ගැන සැකෙවින් බලමු.

90 දශකයේ ආරම්භය වන විට ලෝකය තාක්ෂණික අතින් විශාල වෙනස්කම් රැසකට මුහුණපාමින් සිටියා. ඇත්තෙන්ම 90 දශකය වන විට ලෝකය පරිගණක ජාලකරණය මගින් එකිනෙකා සම්බන්ද වීම විප්ලවීය වෙනසක් කරමින් මිනිසුන්ගේ එදිනෙදා සමබදතාවයන් කරාම පැමිනෙමින් පැවතියා.

මේ අතර 1991 දී Sun microsystem  ආයතනයේ ඉන්ජිනේරුවන් පිරිසක් Green Team ලෙස හදුන්වන ලදුව විශවාස කරනු ලැබුවා ලෝකයේ පරිගණක තාක්ෂණයේ මීලග රැල්ල වන්නෙ පාරිභෝගික ඩිජිටල් අයිතමයන් (ජංගම දුරකථන වැනි) සහ පරිගණක අතර ඒකතුව බව. ජේම්ස් ගැසලින් (James Gosling)  නමැත්තා විසින් මෙහෙයවනු ලැබූ මෙම කණ්ඩායම ලොව විශාල පෙරලියක් කළ JAVA පරිගණක භාෂාව සහ එහි තාක්ෂණය ලොවට දායාද කිරිමෙහි වෙහෙසුනා. එහි ප්‍රථිලයක් ලෙස අද ලොව තාක්ෂණික පෙරලියක් කරමින් Java පරිගණක භාෂාව වැජඹෙනවා..

Green team එක මගින් මුලින්ම ඔවුන්ගේ නව පරිගණක භාෂාව ඉදිරිපත් කලේ Cable TV කරාමාන්තය ඉලක්ක කර ගත් සිත්ගන්නාසුලු කුඩා ප්‍රමාණයේ නිවසේ භාවිතාකල හැකි පරිපාලක උපකරණයක් සමගින්. නමුත් මෙම සංකල්පය ඔවුන්ට එදා හැටියට අතිශය සංකීර්ණ දෙයක් වුනා. නමුත් එය ඉතා හොදින් ගැලපුනා 1995සිට අරඹුන අන්තර්ජාල තාක්ෂණයත් සමග. මෙම කණ්ඩායම නිවේදනය කලා Java, Netscape Navigator browser ය සමග අන්තර්ගත කරන බව.

අද Java අන්තර්ජාලයට සීමාවූ දෙයක් නෙමෙයි. අත එදිනෙදා අපි භාවිතා කරන ජංගම දුරකථනයේ සිට බොහෝමයක් අයිතමයන්ගේ සැගවුන බලකාය ලෙස සිටින්නෙ Java. ඇත්තෙන්ම අද ජාවා හැමතැනම, හැම දේකම තියනවා.

Java time line එක නැරමීමට පිවිසෙන්න. 

ජාවා රස විඳින්න!

Java සහ .Net අතර විරසකය!
















ජාවා නවතා දැමුනු ලෝකය!!



Java Programmers RAP
















ඉතින් Coding සිංහලෙන් අපි සමග සිට ජාවා අලුත් මුහුණුවරකින් ඉගෙන ගනිමු... එතෙක් ඔබට ජය!!!
Read More

Saturday, June 29, 2013

9. C නවවන පාඩම - C හි ශ්‍රිත භාවිතය (Functions/Methods in C)



ශ්‍රිත (Function) යනු කේත කොටසකි(Block of code). මෙය සෑම පරිගණක භාෂාවකදිම දැකිය හැකි තවත් වැදගත් අංගයකි. අනෙක් සැමගේ මෙන්ම C හිදීද Function ප්‍රධාන ආකාර දෙකක් පවති. ඒවා නම් C හි පවතින Built-in function සහ පරිශීලකයා විසින් හඳුන්වාදෙන ලද (User define) function ලෙසයි. අප function භාවිතා කරනු ලබන්නේ ක්‍රමාලේඛයක යම් කොටසක් නැවත නැවත යොදාගැනීම (re-usability) පහසු කරගැනීමට සහ programming structure එක ගොඩනගාගැනීමටය.

දැනටමත් අපි C භාවිතයේදි මෙවැනි function භාවිතා කර ඇත්තෙමු. ඔබ මෙතෙක් ලියූ සෑම කේතයකදීම main() ලෙස function එකක් ලියා ඇත. මෙම main() function එක පාඩම ආරම්භයේදි විස්තර කල ආකාරයටම functions කීපයක් ඇති ක්‍රමලේඛයකදි වුවත් මුලින්ම ධාවනය වන function එකයි.

අපි දැන් User define functions ගැන සලකා බලමු.

Function එකක් define කිරීමේදි පහත සඳහන් ව්‍යුහය එක අනුගමනය කල යුතුය.

return-type function_name ( arg_type arg1, ..., arg_type argN )
{
    //Function body
}

උදාහරණයක් මගින් එය පැහැදිලිකරගනිමු.

int calc(int a, int b){
  int result; 
  result = a + b; 
  return result;
}
ඉහත උදාහරණයක සලකන්න. එහිදි calc ලෙස user define function එකක් ඇති අතර එම function එක තුලට a සහ b ලෙස integer විචල්‍ය argument දෙකක් ලබාදී ඇත. Function එක තුලදී මෙම a සහ b අගයන් එකට එකතු වී පිළිතුර result යන විචල්‍ය තුල ගබඩා කරගෙන එය return කර ඇත. මෙහි return යන keyword එක භාවිතා කිරීමෙන් සිදුවන්නෙ මෙම function එක අමතන (call) තැනදී එහි අගය ලබාගැනීමයි. එනම් මෙහිදී, a හා b හි අගයන් එකතු වී ලැබෙන පිලිතුර මෙම function එක call කරන ස්ථානයේදි ලබාගත හැකියි. මෙහිදී සැලකිළිමත් විය යුතු කරුණ වන්නේ අප function එකක return කල හැක්කෙ එහි return type එකේම අගයක් පමණි. මෙම උදාහරණයේදී calc function එකෙහි return  type එක int (Integer) ය. එනම් මෙම function එකෙන් integer අගයක් return කළ හැකිය.

දැන් මෙලෙස ක්‍රමලේඛ කල function එකක් යම් තැනක භාවිතා කරන්නේ කෙසේදැයි බලමු. එනම් අප මෙලෙස ක්‍රමලේඛ කරගත් function එකක ක්‍රියාවලියට ආමන්ත්‍රණය කල යුතුය. නොඑසේනම් call කළ යුතුය. පහත සරළ උදාහරණය මගින් එය පැහැදිලි කර ගනිමු.

void main(){
 int x;
 x = calc(2,3);
 printf("%d",x);
}

මෙහිදී කර ඇත්තෙ ඉහතදී හඳුන්වා දුන් calc() නම් function එකට main() function එක තුලදී ආමන්ත්‍රණය කර එයට 2 සහ 3 යන අගයන් ලබා දීමයි. එහිදී පිලිවෙලින් a හා b සඳහා 2 සහ 3 අගයන් ලැබේ එවිට calc() තුලදි එහි result හි පිළිතුර ලෙස 5 ලැබෙන අතර එය එහි return අගය බැවින් main() තුළ x = calc(2,3) ලෙස ඇති බැවින් x සඳහා calc() හි return අගය ලැබේ. එනම් x සඳහා 5 යන අගය ලැබේ. printf මගින් එම x අගය මුද්‍රණය කර දක්වා ඇත.

යම් function එකක් තුලින් return අගයක් නැත්නම් එය void යන return type එකෙන් හඳුන්වාදිය හැකිය. එවිට එම function එක මගින් අගයක් return නොවන අතර එවැනි අවස්ථාවක එවැනි function එකකට call කිරීමෙදි එහි නම සහ ඇත්නම් argument pass කිරීම ප්‍රමාණවත්ය.

functionName();

Built-in functions යනු ක්‍රමලේඛ භාෂාවේ ඇති function වන අතර අපට ඒවායේ නාමකරණ අපේ function නැතිනම් user define function සඳහා භාවිතා කළ නොහැක. මෙහි අප භාවිතා කළ printf(). scanf() යනාදිය මෙන්ම තවත් නොයේකුත් අවශ්‍යතාවයන් සඳහා ක්‍රමලේඛ භාෂාව මගින් ලබාදී ඇති functions බොහෝමයක් ඇත.

Read More

Friday, June 14, 2013

ජාවා සිංහලෙන්


ලගදීම නවතම ජාවා පාඩම් මාලාවක් කොඩින් සිංහලෙන් අඩවියෙන් බලාපොරොත්තු වන්න....
Read More

Monday, June 3, 2013

HTML සිංහලෙන් පාඩම 14 - HTML Images

       
                       ගොඩක් කාලෙකින් තමයි අපි අද HTML පාඩමකින් හමුවෙන්නේ,  අද පාඩමෙන් අපි  HTML වලදී පින්තූර භාවිතා කරන්නේ කොහොමද කියල බලමු. මේ සඳහා අපිට උදව් වෙන්නේ <img> කියන HTML tag  එක තමයි. මේ tag එකේ අපිට ඉතාමත්ම වැදගත් වෙන attributes දෙකක් තියෙනව. ඒ "src" හා "alt" attributes දෙකයි. මෙයින් "src" attribute එක අපි භාවිතා කරන්නේ ආපේ  image file එකේ path එක ලබා දෙන්නයි. අපි භාවිතා කරන image එක තියෙන්නේ HTML file එක තිබෙන folder එක තුලමනම්, image file එකේ නම extension එක සමගින් ලබා දීම ප්‍රමාණත්.  එතකොට "alt" attribute එක ඕන වෙන්නේ alternate text එකක් ලබා දෙන්නයි. යම් කිසි හේතුවක් නිසා සමහර විට image එක load නොවෙන්න පුළුවන් අන්න ඒ වගේ වෙලාවකදී මේ alternate text එකට  user පෙන්න පටන් ගන්නව. 

<img src="path to image.jpg" alt="some text">

තව අපිට image එකේ දිග, පළල සඳහා අගයන් දෙන්න පුළුවන්,

<img src="path to image.jpg" alt="some text" height="480" width = "640">

අපි වෙබ් පිටුවකට Image එකක් එකතු කරනවා නම් එහි දිග, පළල සඳහන් කිරීම ඉතා වැදගත් එසේ කිරීමෙන් අපිට වෙබ් පිටුව සෑම විටකදී වගේම සෑම web broඅser එකකදීද නිසි ආකාරව දර්ශනය වීමට හැකියාව ලබා දෙනවා....

අපි තවත් පාඩමකින් හමු මෙමු............
Read More

Tuesday, May 28, 2013

Android Transaction App - SQLite Database in Android App - 3

Android Transaction App

SQLite Database in Android App - 3





       මාසයකට ආසන්න කාලයක් ලිපි පල කිරීමට නොහැකි වීම ගැන ඔයාල හැමෝගෙන්ම මම සමාව ඉල්ලනවා. මම ටිකක් කාර්ය බහුල වීම නිසා ඒ අතපසුවීම සිදුවුනා. එහෙනම් අපි නවත්වපු තැන් ඉදන් පටන්ගමු.

                     අපි අලුතින් App එකක් හදන්න පටන් ගත්තා. ඒ SQLite Database එකක් Android App එකක් ඇතුලේ භාවිතා කරන්නේ කොහොමද කියල ඉගෙන ගන්න. අපි හදමින් හිටිය App එකේ interfaces දෙකක් ගැන කතා කලා. එහි එකක්  App එකේ menu එක, අනිත් එක database එකට record එකක් ඇතුල් කිරීම සඳහා වූ  interface එකයි. අපි ඉතිරි ඒවා හා code එක ගැන අද ඉදන් බලමු.




1. remove_trasaction.xml


 ඉහත  interface එක සකස් කරල තියෙන්නේ, ඔයාලගෙ App එකේ Database record එකක් ඉවත් කරන්න භාවිතා කරන  interface එකයි. බලන්නකො එම interface එකේ අලුත් කොටසක් තියෙනවා නේද? අපි කලින් interface එකේ දැක්ක වගේම radio button දෙකක් එහිත් ඇතුලත් වෙනවා නේද? එම radio button වල අරමුන තමයි, record එක ඉවත් කරන්නේ කුමන පදනම මතද යන්න පෙන්නලා දෙන එකයි. මෙහි ඔයාලට record එකේ නම හෝ record එකේ id එක හරහා record එක ඉවත් කරන්න පුළුවන්.

දැන් අපිට පුළුවන් record add කරන්න වගේම delete කරන්නත්. නමුත් අපි database එකේ තියෙන records පෙන්වන්නත් ඕනි නේද? ඒ සඳහා අපි මෙහෙම වැඩක් කරනවා. 

බලන්නකො ඔයාලට මම කලින් ලිපියේ පෙන්නලා තිබුන project structure එකේ transaction_list.xml හා trc_row_view.xml කියල .xml දෙකක් තියෙනවා. සරලවම කියනවා නම්, trc_row_view.xml එකෙන් අපේ එක  record එකක් පෙන්වනවා. ඒ වගේ records list එකක් transaction_list.xml මඟින් පෙන්වනවා. පහත රූපය බලන්නකො එතකොට තේරේවි අපි මොකද්ද කරන්න යන්නේ කියල.

ඔයාල .xml දෙක හදලා දාගන්නකො අපි ඒක වැඩ කරන්නේ කොහොමද කියලා පසුවට කතා කරමු.

2. trc_row_view.xml


ඉහත  .xml එකට මට screen shot එකක් පෙන්වන්න අමරුයි. ඒව ඇතුලත් වෙන්නේත් transaction_list.xml එකේම තමයි. මේ .xml content එක බැලුවොත් ඔයාලට දැක ගන්න පුළුවන් වෙවි, එහි කලින් interface වල වගේ layout tag එකක් නැති බව. එහි තියෙන්නේ <TextView> tag එකක් නේද? එතකොට අපි මේ කරන්නේ, අපේ Database එකෙන්  record එකක් අරගෙන මේ TextView එකකට set කරනවා. එම TextViews එකින් එක, transaction_list.xml interface එකේදී list එකක් විදියට load කරනවා.

බලන්නකෝ පහත තියෙන transaction_list.xml එක, එහි තියෙන්නේ <ListView> කියලා tag එකක්.

3. transaction_list.xml




දැන් අපේ App එකේ interface වල වැඩ ඉවරයි. අපි දැන්  code එක කරලා ඉහත interface වල තියෙන දේවල් වැඩ කරන්න සකස් කරන්න ඕනි. අපි මීලඟ ලිපියෙන් code එක ගැන කතා කරමු.

ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 


Read More