Friday, June 15, 2018

டாட்நெட் தொழில்நுட்பம் கற்றுக் கொள்ளலாம்-பகுதி-1






டாட்நெட் என்பது என்ன?.

டாட் நெட் என்பது ஒரு பிளாட்ஃபார்ம் அல்லது ஒரு டெக்னாலஜி ஆகும்.டாட்நெட்டில் c#,vb.net,c++,f#, j# முதலிய மொழிகளில் புரோகிராம் எழுதி பயன்படுத்த முடியும்.
ஜாவாவைப் பொருத்தவரை பொதுவாக இப்படிச் சொல்வர்கள்."write once in java and run any where".அதாவது ஜாவா ஒரு portable மொழியாகும்.ஒரு பிளாட்ஃபார்மில் எழுதிய நிரலை(program) எந்த பிளாட்ஃபார்மிலும் அப்ப்டியே இயக்கலாம். ஆனால் டாட்நெட்டிலோ எந்த மொழியில் வேண்டுமானாலும் எழுதலாம். ஆம் டாட்நெட் c#,c++,vb,cobol என நிறைய மொழிகளை ஆதரிக்கிறது.
                   டாட்நெட்டில் எந்த மொழியில் எழுதினாலும் அவை முதலில் complie செய்யப் ப்ட்டு il(intermediate language) ஆக மாற்றப் படுகிறது. பின் jit எனப்படும் ஜஸ்ட் இன்டைம் கம்பைலர் அதை நேட்டிவ் கோடாக மாற்றி இயக்குகின்றது.

குறிப்பு:
 இந்தIL(MSIL) ஜாவாவின் class ஃபைல்கள் போன்றதன்று. ஏனென்றல் class ஃபைல்கள் படிக்க முடியாதவை.ஆனால்MSIL தனி மொழியாகும். இதற்கென்றே தனியாக புத்தகங்ககள் உண்டு.



டாட்நெட் பின்வரும் மொழிகளை ஆதரிக்கின்றது.

c#
c++
visual basic
jscript.

மேலும் மூன்றாம் நபர் மொழிகளான
cobol
eiffel
perl
phython
small talk.
mercury

ஆகியவற்றையும் அதரிக்கின்றது.



டாட்நெட்டின் பயன்கள்

1. எளிதானது.
2. விரைவானது.
3. நிறைய
 library class ஐ உள்ளடக்கியது.இவை எல்லா மொழிக்கும் பொதுவானது என்பது குறிப்பிடத்தக்கது.
4. நிறுவது எளிது.
5. குறைந்த பட்ச பிழைகள் கொண்டது.

c#ம் டாட்நெட்டும் என்ன தொடர்பு?

சி ஷார்ப் -டாட் நெட்க்கென பிரெத்யேகமாக உருவாக்கப்பட்ட மொழியாகும். டாட்நெட்டில் பயன்பாடுகள் உருவாக்கும் போது நிரலாளர்கள் (project) பெரும் பாலும் தேர்ந்து எடுக்கும் மொழி c# ஆகும்.சமீபத்திய பதிப்பு (version )  c# 4.0 ஆகும்.


.NET பயன்பாடுகள்
.
.NET கொண்டுவெவ்வேறு விதமான பயன்பாடுகளை உருவாக்கலாம். மேலும் ஒரு டாட் நெட் solution வெவ்வேறு  மொழியில் எழுதப்பட்ட திட்டங்களை கொண்டிருக்கலாம். இது டாட் நெட்டின் interoperability பண்பு மூலம் சாத்தியமாகிறது.
கன்சோல்  பயன்பாடுகள்.

Console பயன்பாடுகள் graphics இருக்காது. Characters மட்டுமே இருக்கும்.
Public static void Main(String args)
என்ற வாக்கியம் console பயன்பாடுகளின் நுழைவாயிலாக உள்ளது. Read,ReadLine,write,WriteLine ஆகிய system.console ல் உள்ள method களை
கன்சோல்  பயன்பாடுகள் உபயோகித்து கொள்கின்றன.



விண்டோஸ் பயன்பாடுகள்.
விண்டோஸ் பயன்பாடுகளுக்கு ஒரு உதாரணம் ms-word ஆகும்.
பொதுவாக கட்டளைகள் graphics மூலம் icon ஆக கொடுக்கப் பட்டிருக்கும்.
அவற்றை சொடுக்குவதன் மூலம் நாம் அவற்றை இயக்கலாம். டாட் நெட் கொண்டு இது போன்ற விண்டோஸ் பயன்பாடுகளை உருவாக்கலாம்.
Windows control

Tool box ல் உள்ள ஒரு கன்ரட்ரோல் அல்லது அதிக கன்ட்ரோல்களை கொண்டு புதிய  கன்ட்ரோல்களை உருவாக்கலாம். vb6 அல்லது vc++ கொண்டு  activex control  உருவாக்குவதை அறிந்தவர்கள் .நெட் கொண்டு உருவாக்குவது எளிது.

இணைய பயன்பாடுகள்.
இணைய தளங்க்களை asp.net கொண்டு உருவாக்கலாம்.வெப் சர்வரில் உள்ள asp.net engine,  asp.net வரிகளை இயக்கி html வரிகளாக மாற்றுகிறது.
இணைய உலாவி(browser) அவற்றை இயக்கி இணைய பக்கங்களாக மாற்றுகிறது. Asp.net கொண்டு நிகழ் நேர(dynamic) வெப் தளங்க்களை உருவாக்கலாம்.

இணைய சேவைகள்.
Web services எனபது மற்ற வெப் தளங்களுக்கு தகவல்களை பகிர்ந்து கொள்வது ஆகும். உதாரணமாக climate,stock market report  ஆகியவற்றை webservices மற்ற வெப் தளங்களுக்கு சேவையாக வழங்குகிறது.

பொதுவாக டாட் நெட்டின் நோக்கமே மென்பொருள்களை வழங்குவதே ஆகும். (software as services).
.நெட்  ஃப்ரேம் ஒர்க்கின் இரு பகுதிகள்(.NET FRAME WORK)

1.   FRAME WORK CLASS LIBRARY(FCL)

2.   COMMON LANGUAGE RUNTIME(CLR)


FCL:

பொதுவான நிரலாக்கத்துக்கு தேவையான ஏற்கனவே உருவாக்கப்பட்ட Readymade க்ளாஸ்களின் தொகுப்பே frame work class library எனப்படுகின்றது.

அது பின் வரும் தேவைகளுக்காக உருவாக்கப் படுகின்றது.

  1. Graphics
  2. Multimedia
  3. Net working
  4. Internet
  5. Mobile computing
  6. Web applications

COMMON LANGUAGE RUN TIME(CLR)


இது ஒரு நிரல் இயக்கத்திற்கான சூழலை தருகின்றது. இது Memory handling மற்றும் ஒரு நிரல் இயங்குவதற்கான பாதுகாப்பை தருகின்றது.
பொதுவாக பின் வரும் சேவைகளை அது தருகின்றது.


1.   நிரல்களை இயக்குவது

2.   பிற பயன்பாடுகளிருந்து நினைவத்தை தனியாக பிரித்து தருதல்.

3.   Type safety-யை உறுதி படுத்துதல்

4.   MSIL ஆனதை Native  நிரலாக்க வரிகளாக மாற்றி இயக்குதல்

5.   நினைவகத்தை ஆளுதல்.

6.   மெடா டேட்டாவை (meta data) தருதல்

7.   மற்ற பயன்பாடுகளுடன் தொடர்வு கொள்ளுதல்.





காமன் டைப் சிஸ்டம்.

இது .நெட் ஃப்ரேம் வொர்க்கினால் சப்போர்ட் செய்யப்படும் எல்லா மொழிகளுக்கும் பொதுவான டேட்டா டைப்பினை தருகின்றது.அந்தந்த நிரல் மொழிகள் அதற்கு இணையான மாற்று பெயரில் இருக்கும்.உதாரணத்திற்கு விபி டாட் நெட்டில் Integer எனப்படுவது int என சி ஷர்ப்பில் இருக்கும்.இரண்டுமே பொதுவாக  .நெட்டை பொருத்தவரை System.Int32 என்கின்றது தான்.

Common language specification(CLS)

ஒரு மொழியானது டாட் நெட்டில் ரன் செய்யப்பட வேண்டுமென்றால் அதற்கு பொதுவான அந்த மொழியின் அடிப்படை கட்டமைப்பை மற்றும் அம்சங்களையும் பொறுத்தது ஆகும் அந்த SET OF RULES தான் CLS எனப்படுகின்றது.

MICROSOFT INTERMEDIATE LANGUAGE(MSIL)

டாட் நெட்டில் முதலில் எந்த மொழியில் எழுதியிருந்தாலும் முதலில் அது கம்பைல் செய்யும் போது அது MSIL எனப்படும் MICROSOFT INTERMEDIATE LANGUAGE ஆக மாற்றப் படும். பின்பு run செய்யும் போது JIT(JUST INTIME COMPILER)ல் இயக்கப்படும். பொதுவாக ஜாவாவில் கம்பைல் செய்யும் பொழுது முதலில் கிளாஸ் ஃபைல் ஆக மாற்றப்படும்.பின்பு எந்த பிளாட்ஃபார்ம் என்றாலும்.அதற்குறிய JVM-ஆல் (ஜாவா வெர்ச்சுவல் மெஷின் ) இண்டர்பிரட் செய்து இயக்கப்படும். இதனால் தான் ஜாவா Platform independent எனப்படுகின்றது. ஜாவா கிளாஸ் ஃபைலினை MSIL உடன் ஒப்பீடு செய்யலாம்.

ஜாவா கிளாஸ் ஃபைலை நம்மால் வாசிக்க முடியாது. ஆனால் MSIL அப்படியல்ல .அது ஒரு தனி மொழியாகும். மேலும் இணையத்தில் MSIL என்பதற்கென்றே தனி புத்தகங்கள் இருப்பதாக வாசித்த்திருக்கின்றேன்.


DLL எனப்படுவது என்ன?


இதன் முழு வடிவம் Dynamic link library என்பதாகும்.இந்த லைப்ரரி ஆனது நிரலாக்க வரிகள் (codings மற்றும் தரவுகளை(datas) கொண்டது. இவை ஒரே சமயத்தில் ஒன்றிற்கும் மேற்பட்ட நிரல்களில் உபயோகிக்கலாம். உதாரணத்திற்கு Comdlg32 DLL  ஆனது விண்டோஸ் ஆபரேட்டிங் சிஸ்டத்தில் பொதுவாக dialog box மற்றும் அதன் செயப்பாடுகள் ஆகியவற்றில் பயன் தருகின்றது.. ஒவ்வொரு நிரலும் இதனை பயன்படுத்தி open dialog box செயல்பாடுகளைப் பெறலாம்.


DLL  -ஐ பயன்படுத்தி ஒரு நிரலை வெவேறு components ஆக modularize செய்யலாம்.உதாரணத்திற்கு ஒரு அக்கவுண்டிங் நிரலானது வெவ்வேறு modul;e ஆக பிரிக்கப்பட்டு ஒவ்வொரு module ஆனதையும் இன்ஸ்டால் செய்தால் எல்லாவற்றையும் ஒரே நேரத்தில் main program ஆனதில் load செய்து பயன் படுத்தலாம்.குறிப்பு:


ஒரு DLL ஆனது பின் வரும் நண்மைகளைக் கொண்டது.

1. நிரலாக்க வரிகளை தனிதனி மாடூல் ஆக பிரிப்பது

2.கோடிங்கை மறு பயன்பாடு செய்தல்.

3.நினைவகத்தை திறனுடன் கையாளுதல்

4.ஹரர்ட் டிஸ்க் உபயோக குறைவு.

Meta Data:

இது மெடா டேட்டா எனப்படுவது மற்ற டேட்டாக்களை விவரிக்கும் டேட்டா ஆகும். Meta  என்ற prefix ஆனது தொழில் நுட்ப வார்த்தைகளில் பின் வரும் அர்த்ததில் பயன்படுகின்றது..அது வரையறை அல்லது விளக்கம்.உதாரணத்திற்கு அதாவது சரியான டேட்டாவை தேர்வு செய்து அதனுடன் இனைந்து இயங்குவது என்பதாகும்.





சி ஷார்ப் என்பது ஒரு object oriented language ஆகும். அப்படியென்றால் தமிழில் பொருள் நோக்கு நிரலாக்க மொழி என்பார்கள்.consoile Applications-ல் தொடங்கி WCF (Windows communication foundation )வரை அதன் பயன்பாடுகள் நிறைய உண்டு.
இது மைக்ரோசாஃப்டின் product ஆகும்,
இது VB(visual basic language)-ன் எளிமையும் அதே நேரத்தில் C++-ன் திறனையும் ஒருங்கே கொன்டது..இது .NET பயன்பாடுகளை உடனடியாகவும், சுலபமாகவும் உருவாக்க பயன்படுகின்றது.



சி ஷார்ப்பின் தேவை எழ காரணம்.

சி,சி++ மொழிகள் பயன்பாட்டில் இருந்து வந்தது. இந்த இரண்டு மொழிகளும் இண்டர்நெட் தொடக்கத்திற்கு வருவதற்கு முன்பே கண்டுபிடித்ததாகும். இண்டர்நெட் சம்பந்தப் பட்ட வெப் பயன்பாடுகளை உருவாக்குவதற்கு என்று ஒரு நிரலாக்க மொழி தேவைப்பட்டது. அதற்காக சன் மைக்ரோ சிஸ்டம் ஜாவா அறிமுகப்படுத்தியது (இப்போது ஜாவா oracle corporation கையில் இருப்பது வேறு கதை) அது மிகப் பெரிய வெற்றியும் அடைந்தது. .
இந்த நேரத்தில் மைக்ரோ சாப்டிடம் இருந்தது VB 6.O ஆகும். இது Sucessful product ஆகும். அதே நேரத்தில் VB 6.0-வில் விண்டோஸ் பயன்பாடுகள்  மட்டுமே உருவாக்க முடியும், வெப் பயன்பாடுகள் உருவாக்க முடியாது.VB 6.O-வில் வெப் கருத்துக்கள் உட்புகுத்தப்பட்டது. எனினுல் இது Failure ஆனது. .VB எளிமையாக இருந்தது. சி++ திறன் மிக்க தாக இருந்தது. இரண்டும் ஒருங்கே அமைந்த அதே நேரத்தில் ஜாவாக்கு ஈடாக இண்டர் நெட் பயன்பாடுகளைடும் உருவாக்க வல்லத்ததாக ஒரு தொழில் நுட்பம் தேவைப்பட்டது. அதற்காகத்தான் .NET(DOT NET) உருவாக்கப்பட்டது.அதன் முதன்மை மொழியாக C#(C SHARP) அறிமுகப்படுத்தப்பட்டது.
சி ஷர்ர்ப்பின் கருத்துகள் ஜாவா மாதிரியே இருக்கும். சிலர் இதை ஜாவாவை பார்த்து COPY அடிக்கப்பட்ட மொழி என்றார்கள். இதற்கு மைக்ரோ சாஃப்டின் பதில் ஒன்று தான் அது எப்படி ஜாவாவானது C,C++ மொழிகளை அடிப்படையாக கொண்டு update செய்யப்பட்டதோ அதே மாதிரி சி ஷார்ப்பும் c,c++ மொழிகளை advance செய்யப்பட்டதாகும். அதனால்  தான் இரண்டும் ஒரே மாதிரியாக தெரிகின்றது என்பது தான் அதன் பதில். எனினும் ஜாவாவிலே இல்லாத கருத்துக்களும் சி ஷார்ப்பில் நிறைய உள்ளன.
சி ஷார்ப் ஒரு நவீன மொழியாகும்.class,namespaces,garbage collecton,exception handling என ஒவ்வொன்றையும் சுலபமாக்கவும் நவீனமாகவும் செய்கின்ற்து.
சி ஷார்ப்பின் தன்மைகள்


எளிமை:

நிரலாளர்களுக்கு மிகுந்த தலைவலியாய் இருந்த பாயிண்டர்ஸ் நீக்கப்பட்டுள்ளது. நினைவகத்தை நேரடியாக கையாள முடியாது சி ஷார்ப்பை பொறுத்த வரை முtத்ன்மை வகையான டேட்டா டைப்பான int ஆக இருந்தாலும் சரி class ஆக இருந்தாலும் சரி எல்லாமே objects தான்.
இந்த மொழியை பொறுத்த வரை integer வேறு boollean வெவ்வேறு data types (ஆம் ஜாவா மாதிரியே தான்).
நவீனமானது

இது வரை எந்த மொழியிலும் இல்லாத Decimal  என்றொரு புதிய டேட்டா டைப் அறிமுகப்படுத்தப் பட்டுள்ளது.ஆம் ஃப்ளோட்டிங் வகையில் மிகுந்த துல்லில்லாத வகையான 16 பைட்டில் Decimal என்றொரு டேட்டா டைப். money சம்பந்தப்பட்ட கணக்கீடுகளுக்கு உருவாக்கப்பட்டுள்ளது.
பிழை சுட்டப்படுதலில் நவீன முறையில் நடைமுறைப் படுத்தப் பட்டுள்ளது.
உபயோகத்தில் இல்லாத ஆப்ஜெக்டுகளின்  நினைவகத்தை  தானியியங்கி முறையில்  clear செய்ய garbage collector உபயோகப்  படுத்தப்பட்டுள்ளது. (ஆமாங்க இதுவும் ஜாவா மாதிரி தான்)
Object oriented(பொருல் நோக்கு நிரலாக்கம்)
சி மொழி structure oriented மொழியாகும்.சி++ object oriented மொழியாகும்
Vb 6.o என்பது object based மொழியாகும்.
அதென்ன object oriented பிறகு object based?
Object oriented language என்றால் சில் கருத்துக்கள் உள்ளன. அதெல்லாம் என்னன்னு பார்த்தீங்கன்னா

1.   Encapsulation
2.   Abstraction
3.   Inheritance
4.   Polymorphism
இதுக்கெல்லாம் என்னன்னு பிறகு  பார்ப்போம்..ஆனா இப்ப தெரிஞ்சுக்க வேண்டிய  விசயம் என்னன்னா இது நான்கை யும்  c# ஆதரிக்கின்றது. அதனால் தான் சி ஷார்ப் முழுமயான object oriented language ஆகும்.
.எனவே சி ஷார்ப் முழுமையான object oriented language ஆகும்.
எனினும் சி # என்பது component oriented language என்றே பெயர் பெற்றதாகும்.
Clss-ற்கு வெளியே வேரியபிளோ,ஃப்ங்க்சன்ஸ் மற்றும் கான்ஸ்டன்ஸ் எதுவும் எழுத வழியில்லை. எல்லாமே class-ற்க்குள் தான்.வெளியே இல்லை.மல்டிபிள் இன்ஹெரிடன்ஸை சி# சப்போர்ட் செய்யாது.(மறுபடியும் ஜாவா மாதிரி தாங்க).

Type-safe
மதிப்பிருத்தப்படாத வேரியபிள்களை உபயோகப் படுத்த முடியாது. மெம்பர் வேரியபிள்களை கம்பைலர் பூஜ்யத்திற்க்கு தானாகவே மதிப்பிருத்திக் கொள்கின்றது.local variables ஆனதை மதிப்பிருத்தப் பட வேண்டிய பொறுப்பு நிரலாளர்களை சார்ந்தது.
அர்ரே உறுப்புகளை overflow ஆகாமல் காக்கின்றது அதவது a[5] என்கின்ற அர்ரேயில் a[0] முதல் a[4] வரை தான் அனுகவோ அல்லது மதிப்பிருத்தவோ முடியும்.a[5] எனவோ a[6] எனவோ அணுகினால்  பிழை சுட்டப்படும்.
வெர்சனபிள்:
ஒரே பயன்பாட்டின் வெவ்வேறு பதிப்புகளை ஆதரிக்கின்றது.
Flexible:
C# ஆனது பொதுவாக safe mode என்பதில் இயங்கும்.பாயிண்டர்களை இந்த மோடில் உபயோப்படுத்த முடியாது.எனினும் unsafe என அறிவித்துக் கொண்டு unsafe மோடில் உபயோகப்படுத்தலாம்.
சி  ஷார்ப் பயன்பாடுகள்:
1.   கன்சோல் பயன்பாடுகள்.
2.   விண்டோஸ் பயன்பாடுகள்.
3.   இணையப் பயன்பாடுகள்.
4.   எண்டர்ப்ரைஸ் பயன்பாடுகள்


சி++ தெரிந்தவர்களுக்கு மட்டும் இந்தப் பகுதி
சி++ லிருந்து நீக்கப்பட்டவை
1.   மேக்ரோஸ்
2.   மல்டிபிள் இன்ஹெரிடன்ஸ்
3.   பாயிண்டர்கள்
4.   Type-def கட்டளை வரி
5.   டெம்ப்ளேட்ஸ்
6.   Global variable
சி++ லிருந்து மேம்படுத்தப்பட்டவை
1.   தானியங்கி முறையில் செயல்படும் garbage collection
2.   வெர்சனிங்கை ஆதரித்தல்
3.   டைப்- சேஃப்டி ஆதரவு
4.   ப்ராப்ரட்டிஸ் என்று vb 6.0 –லிருந்து follow செய்யப்பட்ட புதிய கருத்து
5.   டெலிகேட்ஸ் மற்றும் ஈவண்ட்ஸ்
6.   பாக்ஸிங் மற்றும் அன்பாக்ஸிங்(boxing and unboxing)

ஜாவா தெரிந்தவர்களுக்கு மட்டும் இந்தப் பகுதி
வேறுபாடுகள்
1.   Primitive types அதிகப்பட்டிருக்கின்றது.
2.   சி#-ல் எல்லா வேரியபிள்ஸுமே ஆப்ஜெக்ட்கள் ஆகும்.
3.   இயக்க நேரத்தில் சி# கம்பைலர் executable code ஆனதை உருவாகுகின்றது.
4.   அர்ரே அறிவிப்பு முறையில் மாற்றம்
5.   கான்ஸ்டன்களை அறிவிக்கும் போது ஜாவாவில் static final என்கின்ற கீவேர்டு பன்படித்தப்படும்.சி#-ல் const என்கின்ற கீவேர்டு பயன்படுத்தப்படுகின்றது.
6.   ஜாவாவில் ஆபரேட்டர் ஒவர்லோடிங் கிடையாது. .சிசார்ப்பில் உண்டு
7.   சி#-ல் static constructor-என்றொரு புதிய முறை அறிமுகப் படுத்தப் பட்டிருக்கின்றது.
8.   சி#-ல் ref என்கின்ற கீவேர்டு மூலமாய் பராமீட்டர்களை reference ஆக அனுப்ப முடியும்.
9.   பாயிண்டர்களை சி# ஆனது ஜாவாவைப் போலவே ஆதரிக்காது. எனினும் சி#-ல் unsafe மோடில் பாயிண்டர்களை பயன்படுத்தலாம்.
10. சி ஷார்ப்பில் உள்ள indexers –க்கு இனையான கருத்துரு ஜாவாவில் இல்லை.
11. சி ஷார்ப்பில் உள்ள properties –க்கு இனையான கருத்துரு ஜாவாவில்
இல்லை.
-கற்றுக் கொள்ளலாம்.
முத்து கார்த்திகேயன், மதுரை.
ads Udanz

No comments:

Post a Comment