Minggu, 07 Juli 2013

LINQ merupakan singkatan dari Language Integrated Query,  teknologi ini pertama kali dikenalkan oleh Andreas Hejlsberg dalam Microsoft Professional Developers Conference (PDC) 2005. Secara singkat LINQ dapat didefinisikan sebagai sebuah metode yang memudahkan dan menseragamkan cara pengaksesan data saja. Karena jika kita lihat bagaimana dengan dunia pemrograman maka pada umumnya seorang developer memiliki skill yang berbeda-beda dalam melakukan aktifitas pembuatan sebuah aplikasi.

LINQ adalah keyword baru pada C# dan VB yang diperkenalkan pada .NET versi 3.5 dan pada C# versi 3.0 yang telah menambahkan beberapa fitur dalam rangka mendukung LINQ.
Kemudian adanya integrasi yang kuat terhadap bahasa pemrograman LINQ menambahkan sekumpulan API yang memungkinkan pengaksesan data terhadap sumber data yang berbeda-beda.

Berikut merupakan arsitektur secara global pada LINQ.


Dalam gambar diatas terlihat jelas bahwa pada bagian paling atas LINQ mengintegrasikan dirinya dengan bahasa pemrogramman yang sekarang ini baru ada dua buah yaitu C# 3.0 dan Visual Basic 9.0. Kemudian pada bagian bawahnya ada bagian provider. Bagian ini adalah bagian yang mengizinkan LINQ untuk melakukan pengaksesan terhadap format data yang berbeda-beda. LINQ mengizinkan kita untuk membuat sebuah provider lainnya, sehingga misalnya kita ingin membuat sebuah provider yang menjembatani LINQ untuk melakukan pengaksesan terhadap file sistem hal tersebut dapat kita lakukan.
Untuk kali ini yang mana sesuai dengan yang masih saya pelajari maka saya hanya membahas 3 buah API dari provider tersebut yaitu : 
  1. LINQ to ObjectMerupakan sekumpulan API yang mengandung sejumlah standard query operators (SQO) untuk mengambil data dari sembarang objek yang mengimplementasikan interface IEnumerable<T>. Query ini digunakan terhadap data yang ada dalam memori.
  2. LINQ to ADO .NETMerupakan API yang memberikan kemampuan SQO untuk dapat bekerja terhadap basis data Relational. Ada 3 sub bagian dalam LINQ to ADO .NET yaitu LINQ to SQL untuk melakukan query terhadap database relasional seperti Microsoft SQL Server, LINQ to Dataset untuk melakukan query terhadap data sets dan data tables yang ada pada ADO .NET dan terakhir LINQ to Entities yang merupakan solusi dari Microsoft ORM yang memungkinkan pengembang perangkat lunak menggunakan Entities secara deklaratif dalam menspesifikasikan struktur dari objek bisnis dan menggunakan LINQ untuk melakukan query terhadapnya.
  3. LINQ to XMLMerupakan API yang memberikan kemampuan SQO (Standard Query Operator) untuk bekerja terhadap XML termasuk didalamnya kemampuan untuk membuat sebuah XML document. Merasa tertarik dengan LINQ dan segala fitur yang ditawarkannya? Mari kita mulai perjalanan kita mengarungi dunia LINQ yang sangat menarik dan akan membawa kita ke sebuah dunia pengaksesan data yang baru ini.

Arsitektur yang mendasari LINQ terdiri dari tiga bagian, antara lain:
  1. Standard Query Operators yaitu kumpulan dari operator‐operator yang bisa digunakan sebagai parameter untuk mengakses data dengan LINQ.
  2. Language Extensions yaitu semua bahasa pemrograman .NET dapat dimodifikasi untuk mengintegrasikan LINQ sebagai sintaks dasar (bukan hanya fungsi). Sebagai langkah awal, Microsoft sudah mengimplementasikan LINQ dalam C# 3.0 dan Visual Basic 9.0, keduanya dipaket bersama Visual Studio 2008. Bahasa‐bahasa lain seperti F# dan Nemerle juga sudah mengumumkan untuk mendukung LINQ.
  3. LINQ Providers merupakan bagian yang bertanggungjawab untuk memindah‐mindahkan data dari sumber data asli ke memory dalam bentuk objek yang mengimplementasikaninterface IEnumerable. Dalam .NET Framework 3.5 yang dipaket bersama dengan Visual Studio 2008, sudah disediakan LINQ provider untuk collection dalam memory, XML, SQLServer database, dan ADO.NET Dataset.
Subscribe to RSS Feed Follow me on Twitter!