Apa Bedanya ASP.NET MVC dan Web Form ?

 
Gambar diambil dari sini
Microsoft telah memiliki model pemrograman web yang sudah matang dan banyak digunakan untuk mengembangkan berbagai macam aplikasi web. Model pemrograman ini lebih dikenal dengan nama Web Form. Lalu kenapa Microsoft mengeluarkan model pemrograman baru yaitu ASP.NET MVC?
Jawabannya terletak kepada perbedaan-perbedaan mendasar yang terdapat antara keduanya. Masing-masing memiliki keunggulan dan kelemahan. Dan yang jelas masing-masing memiliki pendukung dalam komunitas pemrograman web. Tabel berikut ini menjabarkan perbedaan- perbedaan antara Web Form dan ASP.NET MVC secara rinci.
Web Form
ASP .NET MCV
Web Form menggunakan page- controller , dimana setiap request akan di-handle oleh sebuah page yang filenya ada secara fisik. ASP.NET MVC menggunakan central-controller , dimana setiap request akan di-handle oleh sebuah objek logical berupa Controller.
Form server-side dalam Web Form secara default akan melakukan post-back terhadap page itu sendiri. Skenario posting sebuah form selalu ditujukan kepada Controller.
Page bisa digunakan untuk menampilkan informasi kepada user, sekaligus juga mengerjakan logic proses bisnis. Tampilan dan logic proses bisnis terpisah dengan jelas dalam dua komponen View dan Model.
Web Form mengemulasikan sifat statefull ke dalam model pemrograman web agar bisa menerapkan rich client behavior . View-state diperlukan untuk mendukung mekanisme ini. ASP.NET MVC menerima apa adanya protokol HTTP yang stateless dan menjadikan model pemrogramannya menyesuaikan terhadap hal ini. View-state pun tidak diperlukan lagi.
Web Form menerapkan abstraksi component-model dimana mekanisme pemrograman web dibungkus dalam komponen- komponen yang bisa mempercepat pengembangan aplikasi. ASP.NET MVC lebih dekat kepada pemrograman web yang native seperti yang terdapat dalam ASP klasik, PHP, dan Ruby on Rails. Developer memiliki keleluasaan untuk melakukan sesuatu dalam model pemrograman yang bersifat native
Web Form bisa di-test menggunakan berbagai macam metode testing yang ada seperti unit testing maupun web testing. Walaupun Web Form bisa digunakan dalam Test Driven Development (TDD), namun dalam pelaksanaannya akan terasa lebih sulit. ASP.NET MVC lebih cocok untuk TDD karena kejelasan tugas dan tanggung jawab masing-masing komponennya disamping telah dirancang untuk lebih mudah dilakukan unit testing terhadapnya.
Keberadaan Web Form yang sudah lama menyebabkan banyak komponen, control, tool, dan sub-framework yang telah dibuat di atasnya. Hal ini tentu saja sangat bagus untuk mengembangkan program web yang bersifat Rapid Application Development (RAD). Kemunculan ASP.NET MVC yang belum lama menyebabkan belum banyak komponen, tool, dan sub- framework yang bisa bekerja di atasnya. Hal ini bisa menjadi salah satu tantangan untuk mengembangkan aplikasi RAD terutama dalam aplikasi-aplikasi Line of Business (LOB).
Seperti yang kita lihat dalam tabel di atas, baik Web Form maupun ASP.NET MVC memiliki kelebihan dan kekurangan masing-masing yang mendukung kecocokannya untuk diterapkan terhadap program web tertentu. Banyak developer yang menyukai Web Form, namun banyak juga yang lebih memilih arsitektur MVC.
Sebelum kemunculan ASP.NET MVC, arsitektur MVC telah diterapkan dalam framework Ruby on Rails dan Django. Popularitas arsitektur MVC mulai mendapatkan perhatian besar terutama sejak munculnya Ruby on Rails. ASP.NET MVC muncul sebagai solusi yang disediakan Microsoft bagi para developer yang menyukai arsitektur MVC dan juga scripting, termasuk bagi para developer PHP, Ruby on Rails, dan Django.
Sebagai kesimpulan, Web Form dan ASP.NET MVC memiliki beberapa perbedaan mendasar yang membuat masing-masing lebih cocok untuk diterapkan dalam skenario tertentu. ASP.NET MVC juga merupakan dukungan Microsoft terhadap arsitektur MVC yang disediakan bagi para developer yang lebih menyukai arsitektur ini dan juga scripting, seperti para developer PHP, Ruby on Rails, dan Django.
Sumber :
Almost copas from my blog http://keina-code.blogspot.com/
Suhanto, Agus. ebook : Mengenal ASP.NET MVC Edisi Beta
Continue Reading

Pengenalan Konsep Dasar ASP .NET MVC

Assalamualaikum Warrahmatullahi Wabarrakatuh…

Time to share knowledge, Mumpung masih anget-angetnya

ASP.NET merupakan teknologi Microsoft yang dikhususkan untuk pengembangan aplikasi berbasis web dinamis berbasis platform .NET Framework” (Kurniawan; 2010). ASP.NET didesain untuk memberikan kemudahan pada pengembang web untuk membuat aplikasi berbasis web dengan cepat, mudah, dan efisien karena meminimalkan kode program dengan bantuan komponen-komponen yang tersedia, sehingga dapat meningkatkan produktivitas.

ASP .NET MVC adalah sebuah web application development framework atau kerangka kerja aplikasi web yang dibangun dengan lisensi Microsoft dan . NET Framework.MVC sendiri juga merupakan salah satu model pemrograman web ASP .NET selain ASP.NET Web Form. Apa perbedaan keduanya bisa di baca disini

MVC pattern adalah sebuah pattern dalam teknik pemrograman yang memisahkan ketiga bagian program menjadi tiga buah objek yang terpisah (Azis; 2005). Bagian-bagian inilah yang memudahkan developer untuk memisahkan fokus tampilan (user interface) , manipulasi objek, dan logic. Interaksi antara ketiga bagian program tersebut digambarkan seperti di bawah ini.

Model merupakan inti dari logika bisnis dan data. Model berisi sifat dan perilaku (property and behavior) yang menggambarkan suatu entitas atau lebih mudahnya Model berisi sebuah class. Dalam implementasi koding, satu form model berisi property atau variabel dalam satu class kemudian dibuat method atau kumpulan dari variabel yang di deklar. method atau kumpulan ini nantinya yang akan di panggil untuk di tampilkan.

View bertanggung jawab untuk mengubah model menjadi representasi visual. Dalam aplikasi web, view seringkali menghasilkan HTML yang akan di tampilkan dalam browser pengguna. meskipun model juga dimungkinkan akan ditampilkan dalam PDF, XML, bahkan spreadsheet sesuai kebutuhan user nantinya. View hanya fokus pada tampilan user interface, tidak boleh ada unsur logika bisnis karena nanti akan mempengaruhi waktu load aplikasi tersebut.

Controller, seperti namanya yaitu bertugas mengontrol logika aplikasi dan bertindak sebagai koordinator antar Model dan View. Controller menerima input dari pengguna melalui View kemudian diproses dalam model untuk menampilkan action tertentu, dan hasilnya akan ditampilkan kembali oleh View.

Dengan demikian, kerja aplikasi bisa lebih cepat dan efisien karena sudah dipisahkan oleh fungsi dasar dalam proses koding dengan menggunakan arsitektur MVC. Selain itu pemisahan seperti ini memudahkan develper dalam pembagian tugas sesuai dengan keahliannya, developer bisa fokus memusatkan perhatian pada logika bisnis di dalam Model, sedangkan developer design yang mampu bermain User Interface sehingga menarik untuk dipakai user dapat dengan mudah mengerjakannya. Kemudian keduanya akan di satukan dengan harmonis oleh Controller.

Dari sisi development, Visual Studio 2008 support untuk MVC 2, Visual Studio 2010 support dengan MVC 2 dan MVC 3, Visual Studio 2012 support untuk MVC 3 dan MVC 4 Sedangkan versi yang palinga baru Visual Studio 2013 hanya support untuk MVC 4, Dan “Apa Sih yang baru dari MVC 4”  dijelaskan pada blog satunya…

Wassalam, Thank You

 

Reference :

Almost Repost from my blog http://keina-code.blogspot.com/

Suhanto Agus, ebook : Mengenal ASP.NET MVC Edisi Beta

O’reilly, e-book : Programming ASP.NET MVC 4

Erick Kurniawan. (2010). Pemrograman Web Dinamis dengan ASP .NET 4.5 Andi Publishing, Yogyakarta.

M. Farid Azis, M.Kom (2005). Object Oriented Programming Php 5. Elex Media Komputindo, Jakarta

Continue Reading

Sekilas Info Tentang Android

Gara-gara kemaren sempet di tantang untuk mengembangkan dan membangun aplikasi berbasis mobile, akhirnya aku pun belajar tentang Android, walaupun pada akhirnya tetep aja jadi .Net Developer seperti aplikasi yang biasa aku bikin 🙂 , So chekidot :

Apa itu Android ?

Android adalah salah satu sistem operasi smartphone yang baru ada namun sudah berkembang pesat dan banyak digunakan. Hal ini terjadi lantaran banyak perusahaan smartphone yang menggunakan sistem operasi ini sehingga secara tidak langsung pengguna akan memakai sistem operasi Android ketika membeli gadget.

Android itu Sistem Operasi atau Bahasa Pemograman sih ? ? ?

Sederhananya, Android merupakan software yang digunakan pada perangkat mobile yang mencakup sistem operasi, middleware, dan aplikasi kunci yang dirilis oleh Google. Pengembangan aplikasi pada platform androit bersifat open source dengan dasar pemrograman Java sehingga Developer dapat membuat aplikasi sendiri tanpa lisensi.

Apa sih alasan membangun aplikasi berbasis Android?

a. Market Share
Developer memiliki kesempatan untuk mengembangkan aplikasi untuk pasar yang relatif baru dan sedang berkembang pesat. Keberadaan Android Market akan menempatkan aplikasi yang dibuat oleh developer langsung kepada pengguna. Pengguna tidak perlu mencari melalui internet untuk menemukan dan meng-install aplikasi yang dibuat oleh developer . Pengguna cukup membuka Android Market yang sudah ter-install dim perangkat android pengguna dan mengakses aplikasi yang pengguna butuhkan dan meng-install ke dalam perangkat android pengguna.

b. Time to Market
Terdapat Android APIs ( Application Programming Interfaces ) yang memudahkan developer untuk membangun aplikasi dengan mudah dan waktu yang singkat.

 

c. Open Platform
Sistem operasi Android merupakan platform terbuka. Sehingga tidak merujuk pada suatu perusahaan hardware atau suatu provider . Platform terbuka android memungkinkan perkembangan market dengan sangat cepat, karena semua perusahaan hardware dan provider dapat membuat dan menjual perangkat android. Source code android dapat diakses melalui at http://source.android.com , untuk digunakan dan dimodifikasi sesuai kebutuhan perusahaan hardware , provider atau developer aplikasi.

 

d. Cross Compatibility
Android dapat berjalan di berbagai perangkat dengan ukuran dan resolusi layar yang berbeda. Android memiliki fitur yang membantu developer untuk mengembangkan aplikasi yang compatible untuk berbagai perangkat ( cross-compatible application ). Google memiliki feature detection yang mengatur agar aplikasi yang dikembangkan oleh developer hanya berjalan di perangkat yang compatible . Sebagai contoh, jika suatu aplikasi membutuhkan kamera depan ( front-facing camera ) maka hanya perangkat android dengan kamera depan yang akan dapat melihat aplikasi tersebut di Android Market . Suatu perangkat android harus mengikuti suatu aturan untuk mendapatkan sertifikat kesesuaian terhadap Android Market untuk memastikan aplikasi dapat berjalan diatasnya, diantaranya keberadaan: (a) Kamera, (b) Kompas, (c) GPS ( Global Positioning System ), (d) Bluetooth Transceiver .

 

e. Mashup Capability
Mashup Capability merupakan kemampuan untuk mengkombinasikan dua atau lebih layanan untuk mengembangkan suatu aplikasi. Sebagai contoh, developer dapat membuat mashup dengan menggunakan kamera dan GPS, sehingga terbangun aplikasi pengambilan photo dengan dilengkapi secara tepat lokasi pengambilannya. Beberapa contoh lain mashup yang mungkin dikembangkan dalam suatu aplikasi, yaitu:
1. Geolocation dan Social Networking
Suatu aplikasi yang secara otomatis melakukan tweet posisi pengguna setiap 10 menit.
2. Geolocation dan Gaming
Location-based gaming merupakan model game yang saat ini popular. Game memiliki background services untuk mengecek posisi pengguna dan membandingnya dengan posisi pengguna yang lain di area yang sama. Jika jarak antara pengguna kurang dari 1 km misal, maka akan diberikan notifikasi dan memungkinkan mereka untuk bertarung melalui game tersebut.

Continue Reading

Istilah Extreme Programming

Pair programming adalah melakukan proses menulis program dengan berpasangan. Dua orang programer saling bekerjasama di komputer yang sama untuk menyelesaikan sebuah unit. Dengan melakukan ini maka keduanya selalu dapat berdiskusi dan saling melakukan koreksi apabila ada kesalahan dalam penulisan program. Aspek ini mungkin akan sulit dijalankan oleh para programer yang memiliki ego tinggi dan sering tidak nyaman untuk berbagi komputer bersama rekannnya.
Test driven development, merupakan pendekatan untuk membuat unit test sebelum kode program benar-benar ditulis. Unit test merupakan automated test yang menguji fungsionalitas penggalan kode, dapat berupa kode dalam suatu kelas atau metode. Pendekatan ini dimaksudkan untuk menstimulasi para pembuat kode berpikir tentang kondisi di mana kode yang dibuat dapat gagal berfungsi.
User Story, merupakan dokumentasi awal yang ditulis oleh user pada index card menggambarkan fitur- fitur yang merupakan requirements dari user yang diharapkan dapat diselesaikan menjadi fungsi-fungsi pada perangkat lunak yang dibangun. Jika satu story yang ditulis oleh user telah berhasil diimplementasikan menjadi fungsi oleh programmer, maka user stories tersebut segera dibuang. Ini adalah konsep dasar dari XP yang sangat minimum dokumentasi.
Continue Reading

Praktik Extreme Programming

Berdasarkan 4 core value, Beck dan Tomec menjabarkan 12 praktik inti XP :

(1). Planning game – Pada phase ini menggunakan terminologi “game” untuk menggunakan teknikscore card dalam menentukan persyaratan (requirements).

(2). Small releases – Sistem yang sederhana menjadi produksi cepat. Sehingga dapat merilis versi baru dengan siklus sangat pendek (two week).

(3). Metaphor  –  Mirip den­gan arsitek­tur lebih bersi­fat naratif dan deskrip­tif, dihara­p­kan komu­nikasi antara klien den­gan devel­oper akan berlang­sung lebih baik dan lan­car den­gan peng­gu­naan metaphor.

(4). Simple design – Menerapkan desain yang simpel dan sederhana tanpa menghilangakn fungsi utamanya.

(5). Testing – Pengetesan dilakukan pada setiap unit perangkat lunak dalam lingkup sekecil mungkin daripada menunggu sampai seluruh perangkat lunak selesai dibuat.

(6). Refactoring – Melakukan perubahan pada kode program dari perangkat lunak dengan tujuan meningkatkan kualitas dari struktur program tersebut tanpa mengubah cara program tersebut bekerja.

(7). Pair pemrograming – Dua orang programer saling bekerjasama di komputer yang sama untuk menyelesaikan sebuah unit.

(8). Collective Ownership – setiap orang dapatmenukarkan coding  apapun  dalam sistem setiap saat, karena kesamaan pemahaman.

(9). Continous Integration – Dengan melakukan build sesering mungkin berbagai kesalahan pada program dapat dideteksi dan diperbaiki secepat mungkin.

(10). 40-hours Week – bekerja tidak lebih dari 40 jam per minggu sebagai aturan.

(11).On-Site Customer – klien selalu berada pada tempat programer untuk menjawab pertanyaan.

(12). Coding Standards – Menekankan kesamaan aturan/pemahamanprogrammer terhadap seluruh kode program.

Continue Reading

Metodologi Extreme Programming

Pengertian
  • Extreme Programming yang selanjutnya disingkat dengan XP merupakan salah satu dari sekian banyaknya metodologi dalam rekayasa perangkat lunak dan juga merupakan bagian dari metodologi pengembangan perangkat lunak agile.
  • Secara umum Extreme Programming (XP) dapat dijabarkan sebagai sebuah pendekatan pengembangan perangkat lunak yang mencoba meningkatkan efisiensi dan fleksibilitas dari sebuah proyek pengembangan perangkat lunak dengan mengkombinasikan berbagai ide simpel/sederhana tanpa mengurangi kualitas software yang akan dibagun.
  • XP dikembangkan oleh Beck, Cunningham, dan Jeffries dan ini merupakan lightweight disciplinepengembangan perangkat lunak berdasarkan empat core value.

Kelebihan dan Kekurangan XP

Kelebihan :

  • Meningkatkan kepuasan kepada klien
  • Pembangunan system dibuat lebih cepat
  • Menjalin komunikasi yang baik dengan client.
  • Meningkatkan komunikasi dan sifat saling menghargai antar developer.

Kekurangan :

  • User story kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
  • XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

Core Value XP

core value

  • Komunikasi  (Communication)

Kurangnya komunikasi merupakan penyebab utama kegagalan pengembangan software, maka XP mengfokuskan pada hubungan komunikasi yang baik antar tim-klien, anggota tim, dan manajer proyek.Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming).Klien harus dilibatkan dalam proses pengembangan perangkat lunaknya dengan tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem yang dibangun.

  • Kesederhanaan (Simplicity)

XP melakukan semua dengan sederhana dan praktis tanpa mengurangi fungsi utamanya. Diusahakan mengunakan method yang pendek dan simpel, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya atau menghapus fungsi yang tidak terpakai. Dengan kata lain lebih baik melakukan hal yang sederhana saat sekarang (sesuai kebutuhan) dan mengembangkannya besok jika diperlukan.

  • Umpan balik (Feedback)

Selalu mengevaluasi perkembangan terhadap perangkat lunak yang sedang dikerjakan, segala informasi harus dikumpulkan setiap interval waktu yang konsisten dan diskusikan kesalahan-kesalahan yang muncul selama proses pengembangan.  Umpan balik tersebut berfungsi sebagai indikator kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan perlu dibuat.

  • Keberanian (Courage).

Programmer XP didorong untuk berani bereksperimen dan menulis ulang kode jika mereka tidak puas dengan kode yang sudah ada atau desain. Hal ini membantu mempertahankan moral  serta intgritas para pengembang proyek dan dapat mendukung lebih lanjut komunikasi dengan anggota proyek lainnya.

Tahapan XP

tahapan

Planning, Aktivitas planning dimulai dengan membentuk user stories. Anggota XP team kemudian menilai setiap story dan menentukan cost – diukur dalam development week. Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup story untuk release berikutnya (software increment berikutnya) untuk dibangun oleh XP team. Jika komitmen telah dibuat, XP team akan membangun story-story dengan cara :

–Semua story segera diimplemetasikan (dalam beberapa minggu)
–Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
–Story dengan resiko paling tinggi akan diimplemetasikan lebih dulu. Setelah project pertama direlease dan didelivery, XP team memperhitungkan kecepatan project. Selama development, customer dapat menambah story, merubah value, membagi story atau menghapusnya.
Design. XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class yang sesuai dengan software increment.
Coding. Sebelum membuat code, lebih baik membuat unit test tiap story untuk dimasukkan dalam software increment. XP menyarankan agar dua orang bekerja bersama pada satu komputer workstation untuk membuat code dari satu story (pair programming), untuk menyediakan real time problem solving dan jaminan real time quality. Setelah pair programming selesai, code diintegrasikan dengan kerja laiinnya (continuous integration).
Testing. Unit test yang telah dibuat harus diimplementasikan menggunakan suatu framework dan diatur ke dalam universal testing suite, integrasi dan validasi sistem dapat dilakukan setiap hari. Customer test (acceptance test) dilakukan oleh customer dan fokus pada keseluruhan fitur dan fungsional sistem. Acceptance test diperoleh dari customer stories yang telah diimplemetasikan sebagai bagian dari software release.
Artefak XP
Artefak
Siklus Hidup
siklus hiup
Next Lesson :Praktik XP dan Istilah XP
Continue Reading