Thursday 16 June 2016

osx-க்கு டாட்டா. ஆப்பிள் டெஸ்க்டாப் ஆபரேடிங் சிஸ்டத்தின் புதிய பெயர் macos Sierra





ஆப்பிள் கம்பனியின் புதிய டெக்ஸ்டாப் ஆபரேட்டிங் சிஸ்டத்தின் புதிய பெயர் sierra என அந்த கம்பனி அறிவித்துள்ளது. பதினைந்து வருடங்களுக்கு பிறகு osx என்கின்ற பெயரை நீக்குவதாக ஆப்பிள் அறிவித்துள்ளது. பழைய அமைப்புகள் மீண்டும் உபயோகப்படுத்தப்படும் என்று கூறும் ஆப்பிள் அதன் பெயர் எளிய முறையில் MAC OS என்றழைக்கப்படும் என அறிவித்துள்ளது.

ஆப்பிளின் Craig Federighi அதன் புதிய வசதிகள் பற்றி அறிவித்துள்ளார். உதாரணத்துக்கு முதலில் ஆவர் கூறுவது Auto unlock பற்றி. ஆப்பிள் கைக்கடிகாரத்தை அருகில் கொண்டு வந்தாலே mac os sierra ஆனது Auto unlock ஆகும் என தெரிவித்துள்ளார். Federighi  இதை “time-of-flight networking" என்கின்ற முறையில் ஆப்பிள் கைகடிகாரத்தின் அருகாமையை sierra உணர்ந்து கொள்ளும் என அறிவித்துள்ளார்.எனினும் Federighi ,அன் லாக் முறையை ios கருவிகள் அணைத்தும் சப்போர்ட் செய்யுமா என்பது தெரிவிக்க வில்லை.

sierra ஆபரேட்டிங் சிஸ்டத்தின் அடுத்த வசதி universal clipboard.காப்பி மற்றும் பேஸ்ட் இப்பொழுது ios devices மற்றும் டெஸ்க்டாப் mac os இடையே தானியங்கி முறையில் அமையும் என கூறப்பட்டுள்ளது.. இது இரு திசை முறையில் இருக்கும் என தெரிகின்றது. அதாவது ios device-ல் இருந்து mac os-க்கோ அல்லது mac os-ல் இருந்து ios device-ற்கோ காப்பி செய்யலாம்.

icloud ஆனது sierra –வில் முக்கிய பங்கு வகிக்கலாம் என தெரிகின்றது. இதுmac to mac அல்லது mac to ios முறையில் ஃபைல் அல்லது ஃபோல்டர்களை பரிமாற்றம் செய்ய உதவும். optimized storage பழைய ஃபைல்களை icloud –க்கு தானாகவே உட்புகுத்தும் என்றும் இதனால் டிஸ்க் நினைவகம் clear செய்யப்பட்டு அதை மற்ற உபயோகதிற்கு பயன்படுத்திக் கொள்ளலாம்.

நிறைய பயன்பாடுகளில் tabs அறிமுகப்படுள்ளது..sierra  பற்றிய அறிவிப்புகள் இன்னும் வரலாம் எனத் தெரிகின்றது

                                             முத்து கார்த்திகேயன்,மதுரை

Saturday 11 June 2016

c மொழியும் பாயிண்டர்ஸும்




பாயிண்டர் எனப்படுவது என்ன?


பாயிண்டர் வேரியபிள் என்பது மற்றொரு வேரியபிளின் முகவரியை சேமிக்கும் வேரியபிள் ஆகும்.பாயிண்டர்ஸ் பற்றி புரிந்து கொள்வது ஆரம்பத்தில் கடினமாய் இருந்தாலும் போக போக அதன் சக்தியையும் எளிமையையும் அறிவீர்கள்.

பாயிண்டரின் நண்மைகள்


1.நிரலின் இயக்க நேரத்தில் நினைவகத்தை கையாளுதல்
2.அர்ரேயையும் ஸ்ட்ரக்டையும் எளிமையாக கையாளுதல்
3.ஒரு ஃபங்சனை மற்றொரு ஃபங்சனுக்கு பராமீட்டராக அனுப்புவதற்கு உதவுகின்றது

பாயிண்டர்ஸ் பற்றிய கருத்து:

 


உதாரணத்துக்கு x என்கின்ற int டேட்டா டைப் வேரியபிளை அறிவித்து அதற்கு 10 என்கின்ற எண்ணை மதிப்பித்திருத்துவதாக வைத்து கொள்வோம்.
 int x=10;
இப்போது வேரியபிளின் பெயர் x . அதில் 10 என்கின்ற எண் சேமிக்கப்பட்டுள்ளது. ஆனால் x என்கின்ற வேரியபிளுக்கு ஒரு நினைவக முகவரி இருக்கும். உதாரணத்து 2002 என்று வைத்துக் கொள்வோம். இந்த முகவரியை மற்றொரு வேரியபிளில் சேமிக்கலாம். அந்த வேரியபிளை பாயிண்டர் வேரியபிள் என்கின்றோம்.
இதைப் பற்றி தொடர்வதற்கு முன்  இரண்டு ஆப்பரேட்டர்களைப் பற்றி சிறிய அறிமுகம்.
&-Address of operator
*--value of operator
உதாரணத்துக்கு x என்பது ஒரு வேரியபிளின் பெயர் எனில் &x என்பது x-ன் முகவரியைக் குறிக்கும்.
ஒரு பாயிண்டர் வேரியபிள் ஆனது அறிவிக்கப்படும் பொழுது அது எந்த வகையான டேட்டா வேரியபிளின் முகவரியை சேமிக்கின்றதோ அதன் வகையிலேயே அதுவும் அறிவிக்கப்பட வேண்டும். மேலும் பெயர்க்கு முன்னால் * என்னும் குறியீடும் சேர்க்கப்பட வேண்டும்.
Int x;
int *p
p=&x
இதுவே float டேட்டா டைப் வேரியபிளின் முகவரியை சேமிப்பதாய் இருந்தால் பாயிண்டரும்  float டைப்பிலேயே அறிவிக்கப்பட வேண்டும்.
float a;
float *pt;
pt=&a;
இப்போது x என்கின்ற int டைப் முகவரி 2002 என்று வைத்துக் கொள்வோம்.
அதன் மதிப்பை x என்கின்ற பெயரை வைத்தோ அல்லது 2002 என்கின்ற முகவரியை வைத்தோ கையாளலாம்.

பாயிண்டரை dereference செய்தல்:


ஒரு தடவை பாயிண்டரில் மற்றொரு வேரியபிளின் முகவரியை சேமித்து விட்டால் அந்த வேரியபிளின் மதிப்பை பாயிண்டரை * என்கின்ற value of operator கொண்டு dereference செய்யலாம்.
int x,*Ptr;
x=10;
ptr=&x;
printf(“value of x=%d”, *ptr);
கீழ் கண்ட வரியும் x-ன் மதிப்பையே காண்பிக்கும்.
printf(“value of x=%d”,*(&x));
உதாரண முழு நிரல்
#include<stdio.h>
#include<conio.h>
void main()
{
int a=10;
int *p;
p=&a;
clrscr();
printf(“The value of a is %d\n”, a);
printf(“Address of a is %p\n”,&a);
printf(“The value  of a is i.e *(&a) %d\n”,*(&a));
printf(“The memory Address stored in pointer p is %p\n”,p);
printf(“The value pointed by pointer p is %d\n”,*p);
printf(“Address of pointer p is %p\n”,&p);
getch();
}

வெளியீடு:


The value of a is 10
Address of a is fff4
The value  of a is i.e *(&a) 10
The memory Address stored in pointer p is fff4
The value pointed by pointer p is 10
Address of pointer p is fff2

அர்ரேயும் பாயிண்டர்ஸூம்


அர்ரேயானது அது அறிவிக்கப்படும் பொழுது போதுமான நினைவகத்தை ஒதுக்குகின்றது.அதன் base address எனப்படுவது அர்ரேயின் முதல் உறுப்பின் முகவரி ஆகும். base address ஆனதை பாயிண்டர் வேரியபிளில் சேமிப்பதன் மூலம் அர்ரேயை எளிதாக கையாளலாம்.
உதாரணத்துக்கு int a[5]={10,20,30,40,50};
இதில்
a[0] என்பது  10ஐ குறிக்கும்.
&a[0] என்பது முதல் உறுப்பின் முகவரியை குறிக்கும்.
அதே சமயம் a என்பதும் முதல் உறுப்பின் முகவரியைக் குறிக்கும்.
int i;
int a[5] = {10, 20, 30, 40, 50};
int *p = a; 
for (i=0; i<5; i++)
{
 printf("%d ", *p);
 p++;
}
வெளியீடு:
10 20 30 40 50

பாயிண்டர் மற்றும் கேரக்டர் அர்ரே


பாயிண்டர் மூலம் ஸ்ட்ரிங்குகளையும் உருவாக்கலாம். char –டைப் பாயிண்டர்கள் ஸ்ட்ரிங்குகளாக ஏற்க்கப்படுகின்றது.
char *str=”welcome”;
str-ன் மதிப்பை பின் வருமாறு ப்ரிண்ட் செய்யலாம்.
printf(“%s”,str);
அல்லது
puts(str);

பாயிண்டர்களின் அர்ரே(Array of pointers)


பாயிண்டர்களுக்கு அர்ரேயையும் உருவாக்கலாம்
எடுத்துக்காட்டாக
char *sname[3]={
“ram”,”ganesh”,”ravi”};
இதுவே பாயிண்டர்களை உபயோகிக்காமல் கேரக்டர் அர்ரேயை உருவாக்க வேண்டுமென்றால்
char sname[3][10]={ “ram”,”ganesh”,”ravi” };
இரண்டாவது முறையில் ஒவ்வொரு உறுப்பிக்கும் 10 பிட் மெமரி கட்டாயமாக ஒதுக்கப்படுகின்றது. பாயிண்டர்ஸ் மூலம் உருவாக்கப்படும் முதல் முறையில் அவ்வாறு கிடையாது இதன் மூலம் நினைவகம் மீதப்படுத்தப்படுகின்றது.

ஸ்ட்ரக்சரின் பாயிண்டர்கள்


நம்மால் ஸ்ட்ரக்சர் வேரியபிளுக்கும் அர்ரே உருவாக்க முடியும். அவ்வாறு உருவாக்கப்படும் அர்ரேயை பாயிண்டர் மூலம் எளிதாய் கையாளலாம்.
struct Book
{
 char name[5];
 int price;
}
 
int main()
{
 struct Book b1;       //Single structure variable
 struct Book* ptr;    //Pointer of Structure type
 ptr = &b1;
 
 struct Book b[10];     //Array of structure variables
 struct Book* p;        //Pointer of Structure type
 p = &b;    
}
நாம் பொதுவாக ஸ்ட்ரக்சர் வேரியபிளின் மதிப்பை அணுக . ஆப்பரேட்டரை உபயோகிப்போம். அதே நேரம் ஸ்ட்ரக்சர் பாயிண்டரில்(->) ஆரோ மார்க் ஆப்பரேட்டரை உபயோகிக்கலாம்.
struct Book
{
 char name[10];
 int price;
}
 
int main()
{
 struct Book b1;
 struct Book* ptr = &b1;   
 ptr->name = "Muthu karthikeyan";      //Accessing Structure Members
 ptr->price = 200;
}

 

பாயிண்டர்ஸுக்கு பாயிண்டர்ஸ்(pointers to pointer)


எப்படி ஒரு சாதாரண வேரியபிளின் முகவரியை மற்றொரு வேரியபிளில் சேமிக்க முடியுமோ அதே போல் ஓரு பாயிண்டர் வேரியபிளின்ன் முகவரியையும் மற்றொரு வேரியபிளில் சேமிக்க முடியும். அந்த வேரியபிள் பாயின்டர் டூ பாயிண்டர் என அழைக்கப்படுகின்றது.
அந்த வேரியபிள் ஆனது அறிவிக்கப்படும் போது இரண்டு * குறியீடுடன் டைப் செய்யப்படுகின்றது.
 
எடுத்துக்காட்டு நிரல்
 
#include<stdio.h>
#include<conio.h>
void main()
{
int a=10;
int *p;
int **pp;
p=&a;
pp=&p;
printf(“The value of a is %d\n",a);
printf("Address of a is %u\n",&a);
printf("Value of p is %u\n",p);
printf("The address of p is %u\n",&p);
printf("The value pointed by pointer p is %d\n",*p);
printf("The value of pp is %u\n",pp);
printf("The Address of pp is %u\n",&pp);
printf("The value of a by using pointer to pointer i.e **pp is %d",**pp);
getch();
}
வெளியீடு:
The value of a is 10
Address of a is 65524
Value of p is 65524
The address of p is 65522
The value pointed by pointer p is 10
The value of pp is 65522
The Address of pp is 65520
The value of a by using pointer to pointer i.e **pp is 10
 
                                     முத்து கார்த்திகேயன்,மதுரை

Friday 10 June 2016

C-ஷார்ப் விண்டோஸ் கம்யுனிகெய்ஷன் ஃபௌண்டெய்ஷன்(wcf) (WINDOWS COMMUNICATION FOUNDATION) எவ்வாறு இயங்குகின்றது?



விண்டோஸ் கம்யுனிகெய்ஷன் ஃபௌண்டெய்ஷன்(windows communication foundation) என்றால் என்ன என்று பார்ப்பதற்கு முன் வெப் சர்வீஸ் மற்றும் அது போன்ற சில கருத்துகள் குறித்துன் பார்ப்போம்.

வெப் சர்வீஸ்

வெப் சர்வீஸ் என்பது நிரலாக்க வரிகளின் ஒரு துண்டு .இது வெப் சர்வெரில் ஹோஸ்ட் செய்யப்பட்டிருக்கும்.இது ஒரு குறிப்பிட்ட சேவையை வழங்குகின்றது.சரியாகச் சொல்வதென்றால் இது ஒரு சாப்ட்வேர் பயன்பாட்டின் ஒரு பகுதி ஆகும். இது ஒரு பயன்பாட்டின் பிஸினஸ் லாஜிக்கை செயற்படுத்தப்பயன் படுகின்றது.எடுத்துக்காட்டாக நீங்கள் சுலப வட்டியை கணக்கிடும் இணையத் தளத்தை உருவாக்க விரும்புகிறீர்கள் என்றால் அதற்கான நிரல் வரிகளை எழுதி வெப் சர்வீஸ் ஆக உருவாக்கி அதனை நம் இணைய தளத்தில் நடைமுறைப் படுத்தலாம்.
வெப் சர்வீஸ் என்பது ஒரு இணையத் தளத்தை மற்ற இணையத் தளங்களுடன் தொடர்பு கொள்ள உதவுகின்றது.அதே போல்  இது ஒரு விண்டோஸ் பயன்பாட்டினை  மற்றொரு விண்டோஸ் பயன்பாட்டுடன் தொடர்பு கொள்ளவும் பயன்படுகின்றது.அந்த இணையத் தளங்கள் வெவ்வேறு மொழிகளில் உருவாக்கப் பட்டிருக்கலாம். எந்த பிளாட்ஃபார்மிலும்(சாப்ட்வேர் மற்றும் ஹார்ட்வேர்) இயங்கலாம்.
வெப் சர்வீஸ் பயன்பாட்டிற்கு வருவதற்கு முன்னால் ஒரு பயன்பாடானது மற்ற பயன்பாட்டுடன் தொடர்பு கொள்ள COM (Component object model) மற்றும் DCOM(Distributed component object model) போன்ற தொழில் நுட்பங்கள் பயன்பட்டன.
அவை கடை நிலை பயன்பாட்டினரின் கணினியில் ரிஜிஸ்டர் செய்யப் பட்டிருக்க வேண்டும். அவை கணினியின் ரிஜிஸ்டரிக்கு சற்றே தீங்கிளைப்பதாய் இருந்த்தது. வெப் சர்வீஸில் இவை சரியாக உள்ளன.
வெப் சர்வீஸ் ஆனது பின் வரும் நிலைபாடுகளுடன் உடன் படவேண்டும்.

Simple Object Access Protocol(SOAP):

 இவை வெப் சர்வீஸ்கள் ஒன்றுடன் ஒன்று தொடர்பு கொள்ள அனுமதிக்கின்றது. SOAP என்பது ஒரு protocol ஆகும். அதாவது SOAP ஆனது இணைய தளமானது ஒரு வெப் சர்வீஸை கேட்டு பெறும் போது பயன்படுத்துகின்ற xml செய்திகளின் வடிவம் எவ்வாறு அமைய வேண்டுமென்ற விதி முறைகளின் தொகுப்பு ஆகும்.

Web Services Description language(WSDL):

இது வெப் சர்வீஸ்களை வரையறுக்கும் XML சார்ந்த மொழியை குறிப்;பிடுகின்றது. ஒரு WSDL  டாக்குமெண்ட் ஆனது வெப் சர்வீஸின் இருப்பிடத்தையும், அந்த வெப் சர்வீஸ் எந்தெந்த சேவைகளை வழங்குகின்றது என்ற தகவல்களையும் வழங்குகின்றது
WCF தொழில்நுட்பத்திற்கு முன்னால் இருந்த சர்வீஸ் பயன்பாடுகள்::
ASMX Web Service:
தகவல் பரிமாற்றத்திற்கு உதவுகின்றது. எந்த பிளாட்ஃபார்மிலிருந்தும் தகவல்களை அணுகலாம்.

.NET Remoting Service


விண்டோஸ் இயங்கு தளத்தில் கிளையண்ட் மற்றும் சர்வர் இடையிலேலான தகவல் பரிமாற்றத்திற்கு உதவுகின்றது.

MSMQ Service:

செய்திகளை queue முறையில் அனுமதிக்கின்றது.  சர்வர் தொடர்பு நிறுத்தப்பட்டிருந்தாலும் செய்திகளை queue முறையில் அனுப்பவும் பெறவும் முடியும்.

WCF ஏன் அறிமுகப்படுத்தப்பட்டது?

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

கிளவுட் சேவைகள்:

மைக்ரோ சாப்ட், கிளவுட் சேவைகளை .NET FRAMEWORK 4.0 உடன் அறிமுகப்படுத்தியது. கிளவுட் கம்ப்யூட்டர் வசதிகளை பயன்படுத்தி CPU மற்றும் memory போன்ற வளங்கள்,மென் பொருள்,தகவல் ஆகியவற்றை கணினிகள் மற்றும் இன்டெர்னெட் இணைப்புடன் கூடிய கையடக்க தொலைபேசி போன்ற சாதனங்களிடையேயும் பயன்படுத்தலாம்.
பொதுவாக கிளவுட் என்பது இணைய பயன்பாடுகள் மற்றும் சேவைகள், மையப்படுத்தப்பட்ட டேட்டா அமைப்பு ,பயன்பாடுகளை உருவாக்கவோ அல்லது பயன்படுத்தவோ உதவும் சூழலை வழங்குதல் போன்றவற்றை குறிக்கும்.மைக்ரோ சாப்டால் சமீபத்தில் அறிமுகப்படுத்தப்பட்ட கிளவுட் ப்ளாட்ஃபார்ம் Windows Azure ஆகும்.  இது டாட்நெட் பயன்பாடுகளை இயக்கவும் தகவல்களை சேமிக்கவும் உதவும் சூழலை தருகின்றது.

ABC OF WCF

பின்வருவனை WCF-ன் ABC எனப்படுகின்றது.
01. Address:
02. Binding
03. contract


Address (எங்கு?)

இது சர்வீஸ் ஹோஸ்ட் செய்யப்பட்ட இருப்பிடத்தின் முகவரியை குறிப்பிட உதவுகின்றது. உதாரணத்திகு ஹோஸ்டிங் url பின்வருமாறு இருக்கலாம்.
கிளையண்டுகள் நம் வெப் சர்வீஸை அணுக இந்த முகவரியை தான் பயன்படுத்துவார்கள்.

Bindings (எப்படி?)

கிளையண்ட் ஆனது சர்வீஸ் உடன் தொடர்பு கொள்ள எந்த ப்ரோட்டாகாலை பயன்படுத்த வேண்டும் என்பதை குறிப்பிடுகின்றது. WCF ஆனது http,tcp,named pipe,msmq  போன்ற ப்ரோட்டாகால்களை ஆதரிக்கின்றது.

Contract (என்ன?)

இது வெப் சர்வீஸை அழைக்கும் போது என்ன செயல்பாடு நடக்க வேண்டும் என்பதை குறிக்கின்றது. Data Contract, Operation Contract, Message Contract, Fault Contract போன்ற விதமான contracts உள்ளன.

WCF Hosting வகைகள்

வெப் சர்வீஸ் ஆனது ஹோஸ்ட் செய்யப்பட்டால் தான் அதை மற்றவர்கள் அணுகி பயன்பெற  முடியும். WCF Host என்பது சர்வீஸின் வாழ்நாளை கட்டுப்படுத்தும் பயன்பாடு ஆகும்.மூன்று விதமான ஹோஸ்டிங் முறைகள் உள்ளன. அவையாவன:

1.     Self hosting

 வெப் சர்வீஸ் ஆனது செல்ஃப் ஹோஸ்ட் செய்யப்படுகின்றது என்றால் தானியங்கு பயன்பாடாக இயங்குகின்ற்து என்று அர்த்தம். இதன் வாழ்நாளை இதுவே கட்டுபடுத்துகின்றது.

2.     Windows services hosting

WCF சர்வீஸ் ஆனது விண்டோஸ் சர்வீஸாக ஹோஸ்ட் செய்யப்பட முடியும். இது இயங்கு தளத்தின் கட்டுப்பாட்டில் இயங்கும். மேலும் விண்டோஸ் இயங்க ஆரம்பிக்கும் போதே இதுவும் இயங்க ஆரம்பிக்கும். எனினும் இது சில WCF அம்சங்களை ஆதரிக்காது

3.     IIS hosting

WCF சர்வீஸை IIS சர்வரில் ஹோஸ்ட் செய்வது என்பது பாரம்பரிய வழிமுறையாகும். இது செயற்பாடு மறுசுழற்ச்சி(Process recycling), வாழாவிருக்கும் போது இயக்கத்தை நிறுத்துதல்(idle shutdown),செயற்பாடுகளின் இயக்கத்தை கண்காணித்தல்( process health monitoring) போன்ற அம்சங்கள் இதில் உள்ளன.

4.     Windows Activation Services hosting

IIS  சர்வரில் ஹோஸ்ட் செய்வதில் சில குறைகள் உள்ளது. HTTPயை சார்ந்திருத்தல் மற்றும் WCF சர்வீஸ்களின் சில அம்சங்களை பயன்படுத்த முடியாமை ஆகியவை குறைகளாக உள்ளன. எனவே Windows Activation Services hosting என்ற புதிய முறை பயன்படுத்தப்படுகின்றது. இதற்கு குறைந்தபட்சம் IIS7 நிறுவப்பட்டிருக்க வேண்டும்.


WCF அம்சங்கள்

1.       எண்ட் பாய்ண்ட் சப்போர்ட்
2.       மேம்படுத்தப்பட்ட ட்ரான்ஸ்போர்ட் லேயர்
3.       க்யூயிங் சப்போர்ட்
4.       மேம்படுத்தப்பட்ட பரிவர்த்தனை(transactional) செயல்பாடுகள்
5.       மேம்படுத்தப்பட்ட பாதுகாப்பு
6.       வெவ்வேறு சூழல்களில் ஹோஸ்ட் செய்வதை ஆதரித்தல்
7.       அஜாக்ஸ் மற்றும் JSON ஆதரவு

1.   எண்ட் பாய்ண்ட் சப்போர்ட்
எண்ட் பாய்ண்ட் என்பது கிளையண்ட்டுக்கும் சர்வீஸ்க்கும் இடையேயான தொடர்பிற்கு பொறுப்பாகும்.
இதன் கூறுகள்:
1.   சர்வீஸின்முகவரி
2.   தொடர்பு கொள்ள உதவும் பைண்டிங் .
3.   சர்வீஸை அணுகும் போது செய்யப்பட வேண்டிய செயல்பாடுகள்
4.   எண்ட் பொய்ன்ட் நடத்தைகள்

2.   மேம்படுத்தப்பட்ட ட்ரான்ஸ்போர்ட் லேயர்
ASMX சர்வீஸ்போல் அல்லாமல் பல விதமான PROTOCOL-களை WCF SERVICE உபயோகிக்கின்றது. HTTP, TCP, HTTPS மற்றும்  Named pipes  போன்ற
ப்ரோட்டாகால்கள் பயன்படுத்தப்படுகின்றன
3.   க்யூயிங் சப்போர்ட்(QUEUEING SUPPORT)
WCF SERVICES செய்திகளை வரிசையாக நிறுத்தி அவற்றை குறிப்பிட்ட நேரத்தில் செயல்படுத்துகின்றது.
4.   மேம்படுத்தப்பட்ட பரிவர்த்தனை(transactional) செயல்பாடுகள்
சர்வீஸ்களின் இயக்கத்தின் போது செயல்பாடுகளில் தடை ஏற்பட்டால் TRANSACTION SAVE ஆகாது. ROLLBACK ஆகிவிடும்.
5.   மேம்படுத்தப்பட்ட பாதுகாப்பு
AUTHENTCATION முறை WCF-ல் முக்கிய பங்கு வகிக்கின்றது.
6.   வெவ்வேறு சூழல்களில் ஹோஸ்ட் செய்வதை ஆதரித்தல்
Windows NT Services, Windows Forms, Console Apps, IIS, Windows Activation Services(WAS] போன்ற பலவிதமான சூழல்களில் WCF –ஐ ஹோஸ்ட் செய்யலாம்.IIS சர்வரில் ஹோஸ்ட் செய்தால் தானாக சர்வீஸ் ஆரம்பித்தல் மற்றும் தானாக நின்று போகுதல் ஆகியவை நடக்கும்.
7.   அஜாக்ஸ் மற்றும் JSON ஆதரவு
ASP.NET AJAX ,JSON DATA FORMAT ஆகியவற்றை WCF ஆதரிப்பதால் AJAX CLIENTS உடன் தொடர்பு கொள்ள முடிகின்றது. அஜாக்ஸை ஆதரிக்கும் வெப் சர்வீஸ்களுக்கு இடையேயான தகவல் பரிமாற்றத்திற்கான வடிவமாக JSON பயன்படுகின்றது.

wcf service பயன்பாடு ஒன்று முதலில் உருவாக்குவோம்.
முதலில் visual studio 2010 open செய்யவும். பிறகு File->New->Project –ஐ மெனு பாரில் செலக்ட் செய்யவும். New project டயலாக் பாக்ஸ் வெளிப்படும். இடது பேனலில் visual c# என்பதன் கீழ் உள்ள wcf என்பதை க்ளிக் செய்து மத்தியில் உள்ள பேனலில் WCF Service Application என்பதை தேர்ந்தெடுக்கவும்.அதற்கடுத்து பெயர் கொடுத்து(உதாரணமாக இங்கு WcfService1 எனக் கொடுத்து , அடுத்ததாக அதனை சேமிக்கும் இடத்தை (நாம் விரும்பும் location) தேர்ந்தெடுக்கவும். அடுத்ததாக ok பட்டனை க்ளிக் செய்யவும். solution explorer வெளிப்படும். அதனில் default files தோன்றும்.
WCF சர்வீஸ் இரண்டு படிகளாகச் செய்ய வேண்டும். முதலில் service contract உருவாக்க வேண்டும். பிறகு Data contract உருவாக்க வேண்டும். service contract என்பது இண்டர்ஃபேசஸ் விதி முறைகளையும் data contract என்பது உள்ளீடு,வெளியீடு செயல்பாடுகளின் போது பரிமாறப்படும் டேட்டாவிற்கான விதிமுறைகளையும் குறிக்கின்றது. IService1.cs என்கின்ற டீஃபால்ட் ஃபைலினில் பின் வரும் நிரல் வரிகளில் ஹைலைட் செய்யப்பட்டவற்றை மட்டும் சேர்க்கவும்
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WcfService1
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string GetData(int value);

        [OperationContract]
      String  GetDataUsingDataContract(UserData info);

        // TODO: Add your service operations here
    }


    // Use a data contract as illustrated in the sample below to add composite types to service operations.
    [DataContract]
    public class UserData
    {
        String firstName;
        String lastName;

        [DataMember]
        public string FirstName
        {
            get { return firstName; }
            set {firstName = value; }
        }

        [DataMember]
        public string LastName
        {
            get { return lastName; }
            set {lastName = value; }
        }
    }
}

மேலே உள்ள நிரல் வரிகளில் IService1 என்கின்ற இன்டர்ஃபேஸ் ஆனது
    [ServiceContract] என அடையாளமிடப் பட்டிருப்பதை கவனிக்கவும்.இது WCF-க்கு உண்டான Contract metadata ஆனதை IService1 கொண்டுள்ளது என்பதைக் குறிக்கின்றது. IService1 என்ற இன்டர்ஃபேஸில் உள்ள மெத்தெட்கள் [Operation Contract] என அடையாளமிடப் பட்டிருப்பதை கவனிக்கவும். [DataContract] ஆனது
UserData கிளாஸிற்கு அடையாளமிடப் பட்டிருக்கின்றது. UserData கிளாஸின் மெம்பர்கள்    [DataMember] என அடையாளமிடப்பட்டிருப்பதை கவனிக்கவும்.

பின் வரும் நிரல் வரிகளில் ஹைலைட் செய்யப்பட்டிருக்கும் வரிகளை Service1.svc.cs என்கின்ற ஃபைலில் சேர்க்கவும்.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WcfService1
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.

    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public String GetDataUsingDataContract(UserData info)
        {
            return "Welcome to" + info.FirstName + " " + info.LastName;
        }
    }
}

F5 கீயை அழுத்தி  wcf சர்வீஸை இயக்கவும். Wcf Test Client விண்டோ தோன்றும்.


அதில் உள்ள Wcf வெப் சர்வீஸில் உள்ள URL-ஐ காப்பி செய்து வெப் பிரவுசரில் பேஸ்ட் செய்யவும். பின் வரும் OUTPUT தோன்றும்.



இப்பொழுது WCF  சர்வீஸ் உருவாக்கப்பட்டு விட்டது. இதை பயன்படுத்த கிளையண்ட் அப்ளிகேசன் உருவாக்கப்பட வேண்டும். அதற்கு முன்னால் WCF கிளையண்ட் ஆனது WCF சர்வீஸை அழைக்க உதவும் proxy classes உருவாக்கப்பட வேண்டும்.
அதற்கு முதலில் visual studio 2010 command prompt திறக்கவும்.பிறகு wcf service Application உள்ள path (location in local computer) கொடுக்கவும். பின் வரும் வரிகளை அதில் எண்டர் செய்யவும்
svcutil.exe /language:cs /out:Service1.cs /config:app.config http://localhost:50362/Service1.svc?wsdl
குறிப்பு:
localhost போர்ட் எண் 50362 எனக்கொடுக்கப்பட்டுள்ளது. இது உங்கள் கணினியில் மாறுபடலாம். அந்த எண்ணை தெரிந்து கொள்வதற்கு Wcf Test Client விண்டோவை பார்க்கவும்.
இப்போது proxy classes (Service1.cs, app.config) உருவாக்கப்பட்டு அதன் இருப்பிடம் command prompt விண்டோவில் தோன்றும்.
இப்போது vs2010-ல் windows forms application ஒன்றை திறக்கவும். solution explorer விண்டோவில் project பெயரை வலது க்ளிக் செய்து Add Service Reference என்கின்ற option க்ளிக் செய்யவும் .அதன் பின் வரும் விண்டோவில் முகவரி பாரில் wcf service application –ன் url முகவரியை கொடுக்கவும்.
உதாரணமாக பின் வரும் முகவரி



பின் Go பட்டனை க்ளிக் செய்யவும். ok பட்டனை அழுத்தவும்.
ஃபார்ம் விண்டோவில் மூன்று லேபிள்களும் இரண்டு டெக்ஸ்ட் பாக்ஸும் மற்றும் ஒரு பட்டனும் உருவாக்கவும்.





பின் நாம் உருவாக்கிய Service1.cs என்கின்ற proxy class –ஐ க்ளையண்ட் அப்ளிகேசனில் சேர்க்கவும்.பின் app:config ஃபைலை svcutil.exe command மூலம் நாம் உருவாக்கிய app:config ஃபைலால் replace செய்யவும்.
பட்டன் க்ளிக் ஈவண்டில் பின் வரும் நிரல் வரிகளை சேர்க்கவும்.
  private void button1_Click(object sender, EventArgs e)
        {
            Service1Client c = new Service1Client();
            WcfService1.UserData u = new WcfService1.UserData();
            u.FirstName = textBox1.Text;
            u.LastName = textBox2.Text;
            label3.Text = c.GetDataUsingDataContract(u);
            c.Close();
        }
f5 பட்டனை அழுத்தி அப்ளிகேசனை இயக்கவும்.
டெக்ஸ்ட் பாக்ஸ்களில் அதற்குறிய மதிப்புகளை எண்டர் செய்து பட்டனை அழுத்தவும் பின் வருமாறு output தோன்றும்.



இவ்வாறு windows communication foundation இயங்குகின்றது
.
                                       முத்து கார்த்திகேயன்,மதுரை