Framework .NET dalam Bahasa C# Untuk dapat lebih memahami tentang bahasa C# dan dapat memanfaatkannya secara lebih maksimal, maka sebelum kita memulai membahas tentang apa itu bahasa C#, ada baiknya kita mempelajari terlebih dahulu tentang Microsoft Framework .NET yang merupakan komponen yang tidak bisa dipisahkan dari bahasa C# itu sendiri. Adapun penjelasan pada bab ini akan diawali dengan penjelasan tentang istilah Framework .NET istilahistilah lain yang berhubungan dengannya. 1.1 Apakah Itu Framework .NET ? Framework .NET adalah suatu komponen windows yang terintegrasi yang dibuat dengan tujuan untuk mensupport pengembangan berbagai macam jenis aplikasi serta untuk dapat mejalankan berbagai macam aplikasi generasi mendatang termasuk pengembangan aplikasi Web Services XML. Framework .NET di design untuk dapat memenuhi beberapa tujuan berikut ini : Untuk menyediakan environment kerja yang konsisten bagi bahasa pemrograman yang berorientasi objek (object-oriented programming – OOP) baik kode objek itu di simpan dan di eksekusi secara lokal, atau dieksekusi secara lokal tapi didistribusikan melalui internet atau di eksekusi secara remote. Untuk menyediakan environment kerja di dalam mengeksekusi kode yang dapat meminimaliasi proses software deployment dan menghindari konflik penggunaan versi software yang di buat. Untuk menyediakan environment kerja yang aman dalam hal pengeksekusian kode, termasuk kode yang dibuat oleh pihak ketiga (third party). Untuk menyediakan environment kerja yang dapat mengurangi masalah pada persoalan performa dari kode atau dari lingkungan interpreter nya. Membuat para developer lebih mudah mengembangkan berbagai macam jenis aplikasi yang lebih bervariasi, seperti aplikasi berbasis windows dan aplikasi berbasis web. Membangun semua komunikasi yang ada di dalam standar industri untuk memastikan bahwa semua kode aplikasi yang berbasis Framework .NET dapat berintegrasi dengan berbagai macam kode aplikasi lain. Sebagai salah satu sarana untuk dapat memenuhi tujuan di atas, maka dibuatlah berbagai macam bahasa pemrograman yang dapat digunakan dan dapat berjalan di atas platform Framework .NET seperti bahasa C#, VB.NET, J#, Perl.NET dan lain-lain. Masing-masing bahasa tersebut mempunyai kelebihan dan kekurangannya masing-masing, namun yang pasti, apapun bahasa pemrograman yang digunakan, semuanya akan dapat saling berkomunikasi dan saling compatible satu dengan yang laiinya dengan bantuan Framework .NET 1.2 Arsitektur Framework .NET Framework .NET terdiri dari dua buah komponen utama, yaitu Common Language Runtime (CLR) dan .NET Framework Class Library atau kadang juga sering disebut dengan Base Class Library (BCL). Common Language Runtime (CLR) adalah pondasi utama dari Framework .NET. CLR merupakan komponen yang bertanggung jawab terhadap berbagai macam hal, seperti bertanggung jawab untuk melakukan managemen memory, melakukan eksekusi kode, melakukan verifikasi terhadap keamanan kode, menentukan hak akses dari kode, melakukan kompilasi kode, dan berbagai layanan system lainnya. Dengan adanya fungsi CLR ini, maka aplikasi berbasis .NET biasa juga disebut dengan managed code, sedangkan aplikasi di luar itu biasa disebut dengan un-managed code. Berikut ini beberapa hal yang disediakan CLR bagi para developer: Dapat lebih menyederhakan proses pengembangan aplikasi. Memungkinkan adanya variasi dan integrasi dari berbagai bahasa pemrograman yang ada di lingkunan Framework .NET Keamanan dengan melakukan identing pada kode aplikasi. Bersifat Assembly pada saat proses deployment / kompilasi Melakukan versioning sebuah komponen yang bisa di daur ulang. Memungkinkan penggunaan kembali kode, dengan adanya sifat inheritance. Melakukan pengaturan / manajemen tentang lifetime sebuah objek. Melakukan penganalisaan objek-objek secara otomatis. CLR akan melakukan kompilasi kode-kode aplikasi kita menjadi bahasa assembly MSIL (Microsoft Intermediate Language). Proses kompilasi ini sendiri dilakukan oleh komponen yang bernama Just In Time (JIT). JIT hanya akan mengkompilasi metode-metode yang memang digunakan dalam aplikasi, dan hasil kompilasi ini sendiri di chace di dalam mesin dan akan dikompile kembali jika memang ada perubahan pada kode aplikasi kita. .NET Framework Class Library atau sering juga disebut Base Case Library (BCL) adalah koleksi dari reusable types yang sangat terintegrasi secara melekat dengan CLR. Class library bersifat berorientasi terhadap objek yang akan menyediakan types dari fungsi-fungsi managed code. Hal ini tidak hanya berpengaruh kepada kemudahan dalam hal penggunaan, tetapi juga dapat mengurangi waktu yang diperlukan pada saat eksekusi. Dengan sifat tersebut, maka komponen pihak ketiga akan dengan mudah diaplikasikan ke dalam aplikasi yang dibuat. Dengan adanya BCL ini, maka kita bisa menggunakan Framework .NET untuk membuat berbagai macam aplikasi, seperti : Aplikasi console Aplikasi berbasis windowd (Windows Form) Aplikasi ASP.NET (berbasis web) Aplikasi Web Services XML Aplikasi berbasis Windows Services Jika kita membuat sekumpulan Class untuk membuat aplikasi berbasis windows, maka Class-Class itu bisa kita gunakan untuk jenis aplikasi lain, seperti aplikasi berbasis web (ASP.NET) 1.3 Keuntungan Framework .NET Berikut beberapa keuntungan dari Framework .NET Mudah Kemudahan di sini lebih ke arah pada kemudahan bagi para developer untuk membuat aplikasi yang dijalankan pada lingkungan Framework .NET. Beberapa hal yang merepotkan developer pada saat membuat aplikasi, telah di hilangkan atau di ambil alih kemampuannya oleh Framework .NET, misalnya masalah lifetime sebuah objek yang biasanya luput dari perhatian developer pada saat proses pembuatan aplikasi. Masalah ini telah ditangani dan diatur secara otomatis oleh Framework .NET melalui komponen yang bernama Garbage Collector yang bertanggung jawab untuk mencari dan membuang objek yang sudah tidak terpakai secara otomatis. Efisien Kemudahan pada saat proses pembuatan aplikasi, akan berimplikasi terhadap efisiensi dari suatu proses produktivitas, baik efisien dalam hal waktu pembuatan aplikasi atau juga efisien dalam hal lain, seperti biaya (cost). Konsisten Kemudahan-kemudahan pada saat proses pembuatan aplikasi, juga bisa berimplikasi terhadap konsistensi pada aplikasi yang kita buat. Misalnya, dengan adanya BCL, maka kita bisa menggunakan objek atau Class yang dibuat untuk aplikasi berbasis windows pada aplikasi berbasis web. Dengan adanya kode yang bisa dintegrasikan ke dalam berbagai macam aplikasi ini, maka konsistensi kode-kode aplikasi kita dapat terjaga. Produktivitas Semua kemudahan-kemudahan di atas, pada akhirnya akan membuat produktivitas menjadi lebih baik. Produktivitas naik, terutama produktivitas para developer, akan berdampak pada meningkatnya produktivitas suatu perusahaan. Membangun WebStore Dengan ASP.NET Tanggal 18 Agustus kemarin aku ngajar Membangun Web Store Dengan ASP.NET di Brainmatics. Dalam Training ini kita membahas bagaimana membuat sebuah toko elektronik yang terdiri dari 4 Lapisan [Data Access <-- Business Logic <-- Web Service <-- Web Application]. Tujuan pembuatan arsitektur semacam ini adalah untuk membuat sebuah Web Store yang Maintanable dan Scalable. Training aku mulai dari Overview Visual Studio Express, setelah itu aku jelaskan bagaimana mendesain sebuah database dari bentuk Conceptual Data Model (CDM), Physical Data Model (PDM) dan diakhiri dengan membuat Database Microsoft Access. Setelah pembuatan Database selesai kemudian dilanjutkan dengan pembuatan Data Access yang akan melakukan koneksi ke Database. Data Access ini sendiri kami buat dengan tipe Class Library dengan bahasa pemrograman C#, setelah pembuatan Data Access ini selesai kemudian kami membuat Business Logic dimana dalam Business Logic ini semua didefinisikan operasi-operasi yang akan dijalankan oleh WebStore. Business Logic ini sendiri juga dibuat dengan tipe Class Library dengan bahasa pemrograman C#. Setelah pembuatan Business Logic selesai, kemudian dilanjutkan dengan pembuatan Web Service dimana Web Service ini akan mengakses ke Business Logic yang telah dibuat sebelumnya. Web Service ini juga dibuat dengan bahasa Pemrograman C#. Setelah pembuatan Web Service selesai kami kemudian membuat Web Application yang akan mengakses ke Web Service yang telah dibuat. Web Application ini sendiri juga dibuat dengan bahasa pemrograman C#. Salah satu hal yang menarik dari acara tersebut adalah bahwa masih sedikit sekali peserta yang menggunakan ASP.NET dalam pekerjaan mereka. Rata-rata para peserta menggunakan PHP dan Java dalam project-project yang mereka atau perusahaan mereka buat. Karena semua peserta adalah Web Developer dan mereka sudah bekerja semua maka selama ini hanya mendalami Tools dan Bahasa Pemrograman sesuai dengan apa yang dipakai dalam Perusahaan mereka. Setelah mengikuti acara ini rata-rata para peserta ingin sekali mendalami ASP.NET untuk itu aku berikan kepada mereka banyak resources untuk belajar ASP.NET ini, dan tentu saja tidak kelupaan aku beritahu kepada mereka mailinglist yang membahas teknologi .NET ini sendiri. Pengenalan Bahasa Pemrograman C# C# (C Sharp) adalah sebuah bahasa pemrograman yang dibuat setelah bahasa pemrograman Java muncul, basis dari C# sebenarnya adalah C++. Karena banyaknya kekurangan dan kelemahan dari bahasa pemrograman C++, maka akhirnya dibuat bahasa pemrograman Java, dengan fitur dan model yang lebih kompleks dari C++, Java memiliki banyak peminat. Akan tetapi setelah diketahui bahwa ternyata dalam bahasa pemrograman Java juga masih memiliki banyak kelemahan, akhirnya Java dikembangkan menjadi C#, dimana dalam bahasa pemrograman C# tersusun dari 70% Java, 20% C++ dan 10% baru. Sehingga hal ini dapat menciptakan suatu bahasa pemrograman baru yang menutup kelemahan C++, maupun Java. Langsung saja mari kita perhatikan contoh program hello words dengan menggunakan C# berikut ini; 1. 2. 3. 4. 5. 6. 7. 8. 9. using System; class Welcome { static void main(string[] args) { Console.WriteLine("Hello Words !!!"); } } Maka output dari program diatas adalah : view plainprint? 1. Hello Words !!! Console.WriteLine( "Hello Words !!!" ); Adalah fungsi dalam C# yang digunakan untuk mencetak text kedalam layar dimana setelah mencetak text, ia langsung berganti ke baris baru dibawahnya. Sedangkan Console.Write() adalah fungsi yang digunakan untuk mencetak text akan tetapi tidak berganti baris ketika selesai. Seperti halnya bahasa pemrograman yang lain, id dalam C# kita juga diperbolehkan menggunakan escape character, yaitu beberapa karakter khusus yang digunakan untuk memodifikasi pencetakan text yang kita lakukan. Untuk lebih jelasnya perhatikan contoh dibawah ini : 1. 2. 3. 4. 5. 6. 7. 8. 9. using System; class Welcome { static void main(string[] args) { Console.WriteLine("Hello\nWords!!!"); } } Maka setelah kita mengcompile program diatas akan dihasilkan output seperti dibawah ini : 1. Hello 2. Words!!! Berkenalan Dengan C# dan CLR Pendahuluan C# (dibaca "C Sharp") merupakan bahasa pemrograman modern yang berorientasi objek. Secara sintaks C# mirip dengan bahasa-bahasa keluarga C seperti C, C++, dan Java. C# menggabungkan produktifitas dan kemudahan yang ada di Visual Basic dengan kemampuan dan fleksibilitas yang ada di C++, dan menambahkan hal-hal baru yang tidak ada di Java. Perancang utamanya adalah Anders Hejlsberg dari Microsoft, yang dulunya membuat Turbo Pascal dan berperan dalam pengembangan bahasa Delphi dan IDE Borland Delphi. Bahasa ini telah diserahkan oleh Microsoft ke badan standar internasional ECMA. Proses standarisasinya selesai pada Desember 2001 dengan nama standarnya ECMA-334. Dengan standar tersebut, siapapun dapat dengan mudah dan bebas membuat implementasi bahasa C#. Hello, World!!! Mungkin cara yang paling baik untuk mengenal suatu bahasa adalah dengan melihat contoh programnya. Inilah program "Hello World" yang dibuat dengan C#: // Contoh001 class Halo { static void Main() { System.Console.WriteLine("Halo, dunia!!!"); } } Jika program tersebut dicompile dan dijalankan, maka akan keluar tulisan berikut di layar: Halo, dunia!!! Menganalisa "Hello World" Cara mengcompile dan menjalankan program "Hello World" akan dibahas di akhir tutorial ini. Sebelumnya, kita akan menganalisa program di atas sedikit demi sedikit. // Contoh001 Baris tersebut merupakan comment satu baris. Comment satu baris diawali dengan // dan berakhir di baris yang bersangkutan. Comment tidak akan mempengaruhi jalannya program, walaupun begitu comment merupakan alat yang handal untuk dokumentasi dan penulisan catatan-catatan saat kita membuat program. Lalu perhatikan baris berikut (baris sebelumnya sengaja dilompati): static void Main() Baris di atas mendeklarasikan suatu method yang bernama Main() (di beberapa bahasa pemrograman lain, method disebut fungsi atau subroutine). Setiap program C# harus memiliki method ini. Method Main() adalah pintu masuk program anda, yang berarti bahwa method ini akan dipanggil saat program dijalankan. Isi atau tubuh method harus diawali dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup). C# merupakan bahasa yang "case sensitive", jadi method yang bernama Main() (m huruf besar) berbeda dengan method yang bernama main() (m huruf kecil). Kita bisa melihat bahwa C# meninggalkan adat istiadat keluarga C yang menggunakan method main() (m huruf kecil) sebagai pintu masuk program. Hal ini dilakukan agar C# konsisten dengan salah satu panduan penamaan modern yaitu mengawali nama method dengan huruf besar. Untuk sementara, static dan void tidak akan dibahas. Kita bisa lihat bahwa method Main() berada di dalam class yang bernama Halo, dengan deklarasi sebagai berikut: class Halo Class merupakan salah satu unit enkapsulasi di C#. Maksudnya, class digunakan untuk mengelompokkan data-data dan method-method yang saling berhubungan. Tubuh class dibatasi dengan { dan }. Di dalam C#, method harus berada di dalam unit enkapsulasi, contohnya class. Dalam Contoh001, method Main() berada di dalam class Halo. Ini adalah aturan baru bagi programmer C dan C++, tetapi bukanlah hal yang asing bagi programmer Java. Kita bebas menentukan nama class yang memuat method Main(). Aktivitas utama program kita terletak di baris berikut: System.Console.WriteLine("Halo, dunia!!!"); Saat program dijalankan, baris tersebut menyebabkan keluarnya tulisan "Halo, dunia!!!" yang diikuti baris baru. Hal tersebut dilaksanakan oleh method WriteLine(). Method WriteLine() tersebut berada di dalam class yang bernama Console (sebagaimana method Main() berada dalam suatu class). Class Console sendiri dikelompokkan ke dalam namespace yang bernama System. Namespace digunakan untuk mengelompokkan class-class dan beberapa elemen bahasa lainnya. Jadi kita memanggil method WriteLine() dengan menuliskan mulai dari nama namespacenya, class yang memuatnya, sampai ke method itu sendiri. “Halo Dunia!” dikatakan sebagai argumen bagi method WriteLine(). Class Console merupakan bagian dari BCL (Base Class Library), jadi bisa dipastikan bahwa semua implementasi standar C# memilikinya. Baris yang barus saja kita bahas biasa disebut dengan statement. Statement di atas melakukan pemanggilan method, tetapi nanti kita akan melihat bahwa masih banyak jenis-jenis statement lainnya. Setiap statement di C# harus diakhiri dengan ; (titik koma). Terlalu Panjang? Jika kita membuat program console, kita akan banyak memakai method WriteLine(). Pemanggilannya yang cukup panjang seperti pada Contoh001 tentunya akan merepotkan. Ada cara yang dapat dilakukan untuk menyingkatnya, yaitu sebagai berikut: // Contoh002 using System; class HaloDanDadah { static void Main() { Console.WriteLine("Halo!"); Console.WriteLine("Dadah!"); } } Output programnya adalah sebagai berikut: Halo! Dadah! Perhatikan statement berikut: using System; Statement tersebut memungkinkan kita untuk menggunakan semua class yang berada di dalam namespace System secara langsung. Karenanya, pemanggilan terhadap method WriteLine() cukup diawali dengan nama classnya yaitu Console. Di dalam Contoh002 juga jelas terlihat bahwa method WriteLine() mengganti baris setelah menuliskan argumennya. Oleh karena itu, "Dadah!" tertulis di bawah "Halo!". Membuat, Mengcompile, dan Menjalankan Program Di bagian ini akan dibahas dua cara, yaitu menggunakan Framework .NET di Windows dan menggunakan Mono di Linux. Menggunakan Framework .NET di Windows Yang pertama kali harus kita lakukan adalah mendownload Microsoft .NET Framework SDK (106 MB) atau Microsoft .NET Framework Redistributable (23 MB). Ukuran versi SDK jauh lebih besar dari versi redistributablenya, sebab versi SDK memuat dokumentasi, contoh-contoh program, dan tools-tools tambahan yang berguna untuk pengembangan program. Untuk mencoba program-program di tutorial ini anda dapat menggunakan versi redistributable. Dokumentasi yang ada di SDK akan menjadi kebutuhan saat anda sudah memulai pemrograman serius menggunakan C#. Versi SDK hanya akan dapat berjalan di Windows 2000, Windows XP, dan Windows Server 2003. Setelah menginstall Framework .NET, di dalam folder Windows anda akan terdapat folder yang menyimpan compiler C#. Contoh foldernya adalah sebagai berikut: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 Lokasi tepatnya bergantung pada lokasi folder Windows anda dan versi Framework .NET yang anda install. Compiler C# yang terletak di folder tersebut bernama csc.exe. Untuk dapat memanggil compiler C# dari folder manapun, pastikan untuk menulis perintah seperti berikut di command prompt (cek dulu lokasi foldernya): PATH = %PATH%; C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 Setting tersebut hanya akan berlaku dan bertahan pada command prompt yang sedang anda gunakan. Untuk membuatnya universal dan permanen, tambahkan perintah tersebut ke file autoexec.bat. Cara lainnya, jika anda menggunakan Windows 2000 atau Windows XP, adalah dengan mengklik kanan "My Computer", memilih "Properties", masuk ke tab "Advanced", dan memilih "Environment Variables". Di bagian "System Variables" terdapat variabel "Path". Tambahkan folder tempat Framework .NET terinstall ke variable "Path" tersebut. Anda dapat menuliskan program-program C# dengan text editor seperti notepad. Save source code anda dengan akhiran cs, misalnya contoh002.cs. Untuk mengcompile program anda, masuklah ke command prompt dan gunakan csc. Misalnya, untuk mengcompile contoh002.cs digunakan perintah berikut: csc contoh002.cs Hasil kompilasinya adalah contoh002.exe. Anda dapat menjalankannya dengan mengetikkan nama filenya, misalnya: contoh002 Menggunakan Mono di Linux Mono merupakan salah satu proyek open source untuk membuat implementasi Framework .NET. Caracara menginstallnya terdapat di website yang bersangkutan. Setelah Mono terinstall, ketik source code dengan text editor favorit anda dan save dengan akhiran cs. Untuk mengcompile program anda, gunakan perintah berikut: mcs namaprogram.cs Untuk menjalankannya, gunakan perintah berikut: mono namaprogram.exe Terdapat juga Mono untuk Windows. Silahkan mencobanya jika anda tertarik. Menggunakan IDE (Integrated Development Environment) Selain menggunakan text editor dan command line compiler, kita bisa juga menggunakan beberapa IDE yang telah tersedia. IDE gratis yang bisa diperoleh contohnya adalah SharpDevelop (lihat gambar di atas) dan MonoDevelop. IDE komersial yang ada contohnya adalah Microsoft Visual Studio .NET 2003. Berkenalan dengan CLR dan Konsep Program Managed Program-program C# yang dihasilkan tidaklah terikat dengan hardware maupun operating system tertentu. Untuk menjalankan suatu program C#, di komputer (atau alat elektronik lain) yang bersangkutan harus tersedia CLR (Common Language Runtime). Jalannya sebuah program C# akan dikelola sepenuhnya oleh CLR, oleh karena itu program C# dikatakan sebagai program yang managed. Program-program klasik yang langsung berinteraksi dengan operating system maupun hardware tertentu disebut program unmanaged. Untuk lebih jelasnya, lihatlah diagram berikut: Dengan perantara CLR tersebut, program-program C# menjadi portable. Misalnya, program C# yang dicompile menggunakan Microsoft .NET Framework dapat langsung dijalankan di Linux asalkan terinstall Mono atau implementasi CLR lainnya. Mungkin anda sudah bisa menebak bahwa Microsoft .NET Framework dan Mono merupakan beberapa implementasi CLR yang ada. Beberapa implementasi CLR lainnya contohnya adalah Microsoft .NET Compact Framework (untuk Pocket PC dan handphone), dotGNU Portable .NET (untuk Linux), dan Rotor (untuk FreeBSD). Konsep ini sekilas terdengar mirip dengan Java dan JVMnya, namun ada beberapa hal yang membedakan CLR dengan Java. CLR merupakan bagian dari standar internasional yang disebut CLI (Common Language Infratructure). CLI memuat CLR, CIL (Common Intermediate Language, analog dengan Java bytecode), dan BCL (Base Class Library). Sifat CLR yang merupakan open standard memungkinkan siapa saja membuat implementasinya. Hal ini berbeda dengan platform Java yang merupakan platform pribadi milik Sun. Tidak seperti platform Java yang terkait dengan bahasa Java, CLR tidak terkait dengan bahasa pemrograman apapun. Contoh-contoh bahasa yang bisa dipakai untuk membuat program managed adalah C#, Managed Extension for C++, Visual Basic .NET, Jscript .NET, J#, Pascal .NET, Delphi .NET, Phyton .NET, Eiffel#, COBOL .NET, dan Perl .NET. Program yang dibuat dengan bahasa berbeda dapat dengan mudah berinteraksi! CLI dibuat oleh Microsoft bersamaan dengan implementasinya yaitu Framework .NET. Microsoft menyerahkan CLI kepada ECMA untuk distandarisasi agar pengadopsiannya lebih cepat dan meluas. Hasil standarisasi tersebut tidaklah sia-sia, sebab dengan standar-standar yang ada muncullah implementasi-implementasi open source seperti Mono dan dotGNU Portable .NET. Standar CLI tersebut diberi nama ECMA-335. Penutup Tutorial pengenalan ini mungkin belum bisa memperlihatkan keunggulan C# terhadap bahasa-bahasa pemrograman lainnya, terutama terhadap C++ dan Java. Programmer C++ nantinya akan melihat bahwa sintaks di C# lebih bersih, aturan-aturan bahasanya lebih sederhana, dan class librarynya yang berorientasi objek sangat intuitif untuk dipakai. Programmer Java akan lebih cepat untuk beradaptasi dan akan menghargai elemen-elemen bahasa baru seperti property, indexer, delegate, dan event. Dengan mempelajari C#, anda juga telah mulai menapakkan kaki anda ke dunia pemrograman managed yang modern, di mana perbedaan bahasa, operating system, dan hardware tidak lagi menjadi pembatas. Semoga tutorial ini dapat menarik minat anda untuk mempelajari C# lebih lanjut. .NET Framework Dari Wikipedia bahasa Indonesia, ensiklopedia bebas Langsung ke: navigasi, cari .NET Framework Pengembang Microsoft Versi rilis terbaru Version 2.0.50727.42 / October 27 2005 Jenis System platform Lisensi Proprietary software Situs web www.microsoft.com/net/ Microsoft .NET Framework (dibaca Microsoft Dot Net Framework) adalah sebuah komponen yang dapat ditambahkan ke sistem operasi Microsoft Windows atau telah terintegrasi ke dalam Windows (mulai dari Windows Server 2003 dan versi-versi Windows terbaru). Kerangka kerja ini menyediakan sejumlah besar solusi-solusi program untuk memenuhi kebutuhan-kebutuhan umum suatu program baru, dan mengatur eksekusi program-program yang ditulis secara khusus untuk framework ini. .NET Framework adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows. Pada dasarnya, .NET Framework memiliki 2 komponen utama: CLR dan .NET Framework Class Library. Program - program yang ditulis untuk .NET Framework dijalankan pada suatu lingkungan software yang mengatur persyaratan-persyaratan runtime program. Runtime environment ini, yang juga merupakan suatu bagian dari .NET Framework, dikenal sebagai Common Language Runtime (CLR). CLR menyediakan penampilan dari application virtual machine, sehingga para programmer tidak perlu mengetahui kemampuan CPU tertentu yang akan menjalankan program. CLR juga menyediakan layananlayanan penting lainnya seperti jaminan keamanan, pengaturan memori, garbage collection dan exception handling / penanganan kesalahan pada saat runtime. Class library dan CLR ini merupakan komponen inti dari .NET Framework. Kerangka kerja itu pun dibuat sedemikian rupa agar para programmer dapat mengembangkan program komputer dengan jauh lebih mudah, dan juga untuk mengurangi kerawanan aplikasi dan juga komputer dari beberapa ancaman keamanan. CLR adalah turunan dari CLI (Common Language Infrastructure) yang saat ini merupakan standar ECMA. Untuk keterangan lebih lanjut, silakan mengunjungi situs ECMA atau kunjungi sumber pranala di bawah artikel ini. Solusi-solusi program pembentuk class library dari .NET Framework mengcover area yang luas dari kebutuhan program pada bidang user interface, pengaksesan data, koneksi basis data, kriptografi, pembuatan aplikasi berbasis web, algoritma numerik, dan komunikasi jaringan. Fungsi-fungsi yang ada dalam class library dapat digabungkan oleh programmer dengan kodenya sendiri untuk membuat suatu program aplikasi baru. Pada berbagai literatur dan referensi di Internet, .NET Framework seringkali disingkat menjadi .NET saja. Daftar isi [sembunyikan] 1 .NET Framework sebagai platform o 1.1 .NET 3.0 sebagai jalan menuju Longhorn o 1.2 .NET di masa depan 2 .NET di operating system selain Windows 3 Sumber daya pranala luar terkait dengan .NET .NET Framework sebagai platform .NET seringkali juga dapat diartikan sebagai platform, yang merupakan suatu lingkungan terpadu untuk pengembangan dan eksekusi untuk berbagai macam bahasa pemrograman dan kumpulan library untuk bekerja sama membuat dan menjalankan aplikasi berbasis Windows yang lebih mudah untuk dibuat, diatur, didistribusikan, dan diintegrasikan dengan sistem jaringan lain. Dalam perkembangannya, .NET seringkali dikaitkan pula dengan versi Visual Studio yang sesuai dengan dukungan versi yang bersangkutan untuk pengembangan aplikasi. Berikut ini versi .NET dan versi Visual Studio yang terkait: .NET .NET .NET .NET .NET 1.0 1.1 2.0 3.0 3.5 dan dan dan dan dan Visual Visual Visual Visual Visual Studio Studio Studio Studio Studio .NET (atau seringkali disebut juga dengan Visual Studio .NET 2002) .NET 2003 2005 2005 dengan tambahan addin untuk WPF, WCF dan WF 2008 .NET 2.0, 3.0 dan 3.5 memiliki CLR yang sama. Dengan demikian, struktur IL juga sama. Adapun fasilitas penambahan kata kunci pemrograman seperti pada LINQ yang sebenarnya lebih mengarah sebagai fitur bahasa pemrograman (programming language feature) sehingga bukan merupakan fitur CLR. [sunting] .NET 3.0 sebagai jalan menuju Longhorn .NET 3.0 pada hakekatnya adalah .NET 2.0 ditambah pilar-pilar teknologi untuk Windows Longhorn Client/Server atau sekarang bernama Windows Vista untuk Longhorn Client dan Windows Server 2008 untuk Longhorn Server. Dengan demikian, program yang dibuat dengan .NET 2.0 dapat berjalan pada .NET 3.0, kecuali untuk fasilitas atau fitur yang sangat spesifik. Pilar-pilar teknologi pada .NET 3.0: Windows Presentation Foundation atau WPF Windows Communication Foundation atau WCF Windows Workflow Foundation atau WF CardSpace Walaupun teknologi di atas ditujukan pada Windows Vista dan sesudahnya, .NET 3.0 dapat pula diinstall pada Windows XP SP2 dan Windows Server 2003. Versi terbaru dari .NET adalah .NET 3.5. Versi ini didukung sepenuhnya oleh Visual Studio 2008, berisi teknologi-teknologi kunci yaitu: LINQ Extension Methods Lambda Expression Dan juga perbaikan serta pengembangan dari WPF, WCF, dan WF. .NET di masa depan Pada saat artikel ini disunting, 07:13, 11 Februari 2008 (UTC), Microsoft tengah mengembangkan .NET "4". .NET 4 ini akan lebih mengedepankan konsep SOA (Service Oriented Architecture) dan SaaS (Software As A Service). Dengan dukungan library dasar yang sudah ada seperti XML dan WCF, Microsoft berencana untuk menambah dukungan web service seperti REST, JSON, POX. Di samping itu Microsoft juga telah mempersiapkan pengembangan "Oslo" sebagai bagian dari inisiatif pengembangan platform .NET. .NET di operating system selain Windows .NET 2.0 saat ini juga memiliki pasangan kembar yang berjalan di Linux dan UNIX, yaitu Mono. Mono dikembangkan oleh Ximian, yang selanjutnya diakuisisi oleh Novell. Mono merupakan platform open source, berarti semua orang dapat berpartisipasi di dalam pengembangan Mono.