Microsoft .NET Micro Framework merupakan sebuah platform untuk membangun aplikasi di atas embedded system. Embedded system memiliki sumber daya hardware yang terbatas seperti memori dan prosesor yang sangat terbatas. Microsoft .NET Micro Framework menyediakan library untuk menangani semua sumber daya yang terbatas ini sehingga pemprograman dengan embedded device (atau lebih sering disebut sebagai microcontroller/microcomputer) lebih muudah.
Dahulu untuk memprogram microcontroller hanya bisa dilakukan dengan assembler atau C/C++ (walaupun ada yang porting ke Basic/Pascal) sehingga pengaturan IO dan memori harus dilakukan oleh programmer sendiri. Selain pengaturan memori, operasi perhitungan seperti perkalian, pembagian, floating point, dan operasi matematika lain harus diprogram secara manual. Semua pekerjaan tersebut kini telah dibantu dengan library yang telah tersedia dalam Microsoft .NET Micro Framework. Bahasa yang digunakan juga tidak lagi menggunakan assembler atau C/C++ melainkan menggunakan C# dengan IDE Visual Studio 2005/2008.
Microsoft .NET Micro Framework mengandung:
- Footprint .NET yang lebih kecil (hanya membutuhkan RAM sekitar 300KB).
- Class library .NET dibuat khusus untuk embedded application, termasuk class-class GUI dapat dimodelkan dengan Windows Presentation Foundation (tanpa WPF markup language).
- Bootable CLR dapat dijalankan langsung di atas hardware tanpa sistem operasi.
- Mendukung hardware yang umum dan interkoneksi (nonvolatile memory, GPIO, I2C, RS232, SPI).
- Device driver yang teratur (managed) untuk perangkat yang terhubung melalui interkoneksi yang didukung.
- Terintegrasi penuh dengan Visual Studio termasuk debugging kode yang berjalan di atas device.
- Emulator yang dapat dikembangkan untuk menjalankan aplikasi di dalam Windows sebelum di-deploy ke device.
Arsitektur .NET Micro Framework dapat dilihat seperti gambar di bawah.
Terdapat dua komponen pembentuk Microsoft .NET Micro Framework yaitu: Bootable Runtime dan .NET Micro Framework CLR. Bootable runtime berfungsi sebagai OS dan driver-driver umum untuk mengakses hardware. Komponen .NET Micro Framework CLR berisi runtime yang sangat kecil, teroptimasi dan teratur di dalamnya terdapat library yang dapat digunakan dalam aplikasi embedded system seperti library timer, communication, garbage collector, system type, dll.
Tujuan utama dari CLR .NET Micro Framework adalah:
- Ukuran yang sangat kecil
- Dibuat dari awal lagi (bukan porting dari .NET framework yang sudah ada).
- Berjalan tanpa OS (memiliki OS sendiri).
- Runtime dan library disesuaikan dengan pengembangan embedded system.
- Dapat dijalankan dari ROM atau memori flash.
- Dioptimasikan untuk penggunaan energi yang efisien dalam penggunaan batere.
- Relatif lebih mudah porting ke hardware lain karena aplikasi jalan di atas Hardware Abstraction Layer (HAL).
Informasi lebih lanjut mengenai embedded platform dapat dilihat di: