Memulai Membangun Aplikasi Desktop dengan WinForms .NET Core 3

Aplikasi desktop dengan WinForms bukan barang baru, dia telah hadir sejak .NET Framework pertama kali muncul. Sampai saat ini .NET Framework telah mencapai versi di atas 4.7.x. Namun kalian pasti tahu sendiri bahwa .NET Framework ini hanya mau jalan di platform Windows. Tapi sekarang sudah bukan jamannya “close source”, sekarang Microsoft telah membuka diri dan .NET Framework juga hadir untuk bisa berjalan di atas platform lain seperti Linux dan Mac OS, .NET Framework ini dikenal dengan nama .NET Core. Sampai saat ini telah mencapai versi 3.

Awalnya .NET Core hanya ditujukan untuk membangun aplikasi berbasis web saja, kemudian berkembang untuk pembangunan Web API sampai IoT. Dan sekarang, menurut kabar, .NET Framework justru akan berhenti untuk dikembangkan dan semua akan beralih ke .NET Core. Hal ini terbukti dengan dukungan pengembangan WinForms di framework ini.

Saat ini .NET Core 3 masih dalam status “preview” sehingga masih ada keterbatasan jika digunakan untuk membangun aplikasi desktop WinForms. Tetapi tidak ada salahnya jika kita coba saja dan keterbatasan yang akan kita temui akan ditutupi dengan hal-hal yang sudah ada Smile

Hal pertama yang kita lakukan adalah mengunduh .NET Core 3 SDK yang didalamnya juga sudah tersedia .NET Core 3 Runtime. Silakan unduh di https://dotnet.microsoft.com/download/dotnet-core/3.0. Berikut daftar tipe project yang didukung oleh .NET Core 3.

blog01

Kemudian adalah gunakan Visual Studio 2019 agar kekinian (karena versi VS ini adalah yang terbaru dan baru saja keluar dari oven). Gunakan VS versi community yang bersifat gratis untuk digunakan. Semua versi VS 2019 dapat diunduh di https://visualstudio.microsoft.com/downloads/.

Setelah keduanya diinstall, maka jalankan VS 2019. Kemudian setting agar VS 2019 ini dapat menggunakan SDK versi preview dengan cara klik Tools > Options. Kemudian pada window Options pilih Projects and Solutios > .NET Core. Jika ada checkbox yang berhubungan dengan penggunaan versi .NET Core preview maka centang checkbox itu.

Langkah selanjutnya adalah membuat membuat solution, misal namanya adalah WinFormNetCore. Dengan cara memilih tipe project Blank Solution seperti pada gambar di bawah ini.

blog02

Setelah itu buat project dengan nama WinFormExample yang merupakan tipe project Windows Forms App (.NET Core). Kemudian buat sebuah project dengan nama WinFormExample.Designer yang merupakan tipe project Windows Forms App (.NET Framework).

blog03

Perhatian:

Jangan pernah build solution atau project Windows Form App (.NET Core) karena Visual Studio 2019 akan mengubah “prilaku” project ini sehingga tidak bisa dibuild dengan perintah “dotnet build” dan tidak bisa dijalankan dengan perintah “dotnet run”.

 

Kenapa harus dibuat dua project WinForms seperti di atas? Bagi yang telah terbiasa dengan pembuatan aplikasi desktop dengan WinForm maka akan terbiasa dengan form designer seperti gambar berikut.

blog04

Hal di atas dapat dilihat hanya pada project yang menggunakan .NET Framework (bukan .NET Core), dalam kasus kita project itu adalah WinFormExample.Designer. Sedangkan jika Form pada project WinFormExample dibuka maka akan dilihat hal seperti berikut. Hal ini karena belum ada dukungan designer antarmuka WinForms pada .NET Core 3.

blog05

Untuk itu kita akan coba “ngakalin” untuk menggunakan designer WinForms .NET Framework untuk mendesain antarmuka form WinForms .NET Core.

Langkah pertama, menyamakan namespace project WinFormsExample.Designer menjadi WinFormsExample. Hal ini dilakukan dengan cara klik kanan pada project WinFormsExample.Designer kemudian pilih Properties.

blog06

Kemudian ganti isi kolom Default yang bernilai WinFormsExample.Designer menjadi WinFormsExample. Kemudian Save.

Langkah kedua, menghapus Form1 yang ada dikedua project.

Langkah ketiga, membuat Form pada project WinFormsExample.Designer. Caranya seperti menambahkan Windows Form pada umumnya, yaitu klik kanan pada project WinFormsExample.Designer kemudian pilih Add > New Item. Kemudian pilih Windows Form, berikan nama MainForm.cs (jika ingin menambahkan form baru, ulangi dari langkah ketiga ini).

blog07

Kemudian klik Add. Setelah itu kita bisa tambahkan sebuah button pada form, hal ini bertujuan agar secara otomatis dibuat file *.resx.

Langkah keempat, pilih form yang telah dibuat (dalam kasus ini adalah MainForm.cs) kemudian cut (Control + X). Dan dilanjutkan klik project WinFormsExample, kemudian paste (Control + V). Maka file MainForm.cs beserta file-file pendampingnya seperti MainForm.Designer.cs dan MainForm.resx. Tapi saat hal ini dilakukan hirarki file seperti ini.

blog08

Jika ingin membuat hal seperti itu maka sebelumnya perlu diinstall extension File Nesting yang dibuat oleh Mads Kristensen. Setelah diinstall, maka tinggal pilih file MainForm.Designer.cs dan MainForm.resx kemudian klik kanan dan pilih File Nesting > Nest item…

Lakukan hal tersebut di atas sebelum melanjutkan ke langkah berikutnya.

Langkah kelima, klik kanan pada project MainFormsExample.Designer, kemudian pilih Add > Existing Item. Kemudian pilih file form yang ada di project MainFormsExample beserta file pendampingnya seperti pada gambar di bawah ini. Kemudian pada tombol Add pilih opsi Add as Link. (jika kalian terlalu buru-buru dan mengklik tombol Add maka hapus file yang ada di project MainFormsExample.Designer, dan ulangi langkah kelima ini).

blog09

Nah dengan cara seperti ini, jika kita membuat file MainForm.cs yang ada diproject WinFormsExample maka akan terlihat prilaku normal seperti gambar berikut.

blog10

Nah selanjutnya pemrograman dapat dilakukan dengan normal seperti pembangunan aplikasi desktop WinForms pada umumnya. Tapi untuk proses build dan run program project WinFormsExample ini harus tetap dilakukan dengan menggunakan perintah “dotnet”. Seperti contoh pada gambar di bawah.

blog11

Nah selamat mencoba, semoga .NET Core 3 cepat menuju ke versi stabil sehingga langkah-langkah di atas tidak perlu kita lakukan lagi.

11 thoughts on “Memulai Membangun Aplikasi Desktop dengan WinForms .NET Core 3”

  1. gan untuk dekstop yang dibuat dengan .NET Core dengan memakai form wpf apakah bisa berjalan di OS lain? karena GUI OS lain berbeda!
    mohon pencerahannya Ty, sukses selalu

          1. Apakah bisa juga di publish dalam bentuk exe dan. Deb yang dapat standalone? Tidak hanya melalui terminal saja? Terimakasih gan sangat membantu

  2. Sudah pernah gan, untuk publish untuk cross platform cuma tersedia untuk console, sedangkan project yang sedang saya kerjakan harus dekstop dengan mengunakan . NET, kira2 jika berkenan share tutorial publish untuk cross platform dong gan. Ty

    1. Sebaiknya jgn digunakan dl utk produksi karena net core 3 msh preview jadi pasti akan byk perubahan

      1. Sebenarnya saya cukup memahami cross platform mengunakan IDE monodevelop agar lebih muda, tetapi saya dapat tantangan untuk membuat cross platform di visual studio, karena itulah saya sangat membuntuhkan kan pencerahan agan. Ty banget sama ilmu na gan

        1. Siap, ini msh nunggu perkembangan net core 3. Soalnya net framework yg ada akan dihentikan dan ms akan fokus di net core. Tp entah kapan realisasinya

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.