Updates on .NET Core Windows Forms Designer


Minggu ini (19 Maret 2020) melihat ada notifikasi update Visual Studio 2019 Preview ke versi 16.6. Pada update ini, saya hanya akan membahas tentang versi baru dari .NET Core Windows Form Designer karena kebetulan lagi fokus membuat ebook tentang pemrograman Windows Form dengan .NET Core 3.1.

blog01

Pada designer versi terbaru ini saya melihat kontrol-kontrol yang disupport oleh .NET Core yaitu (seperti yang dapat dilihat pada gambar di atas):

  • FlowLayoutPanel,
  • GroupBox,
  • ImageList,
  • MenuStrip (via the PropertyBrowser and context menu),
  • Panel,
  • SplitContainer,
  • Splitter,
  • TabControl,
  • TableLayoutPanel,
  • ToolStrip (via the PropertyBrowser, context menu and designer actions).

Pada versi berikutnya akan ada update untuk User Controls dan support pada third party control.

Bagi pengguna yang ingin menggunakan Visual Studio versi ini dapat mengunduh di alamat berikut https://visualstudio.microsoft.com/vs/preview/. Kemudian untuk meaktifkan Windows Form designer for .NET Core apps ini dapat dilakukan dengan memilih menu Tool > Options. Kemudian pada window Options pilih Preview Features. Kemudian centang “Use the preview Windows Forms designer for .NET Core apps (requires restart).

blog02

Selanjutnya pembahasan detail tentang Windows Form programming dengan .NET Core akan dibahas pada buku ini yang akan keluar akhir bulan ini.

blog03

Sampai jumpa.

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.

Global Azure Bootcamp 2019 Banjarbaru


Sabtu, tanggal 27 April 2019, Ilmu Komputer FMIPA ULM berpartisipasi mengadakan acara Global Azure Bootcamp 2019 yang juga secara serentak di ratusan kota seluruh dunia. Acara ini dibuka oleh Dekan FMIPA dan Ketua Program Studi Ilmu Komputer dan dihadiri oleh dosen-dosen, mahasiswa dan praktisi IT di Banjarmasin dan Banjarbaru.

IMG_1509

Pembicara pada acara ini terdiri atas dosen dan praktisi yaitu:

  1. M Reza Faisal (dosen Ilmu Komputer FMIPA ULM)
  2. Rudy Herteno (dosen Ilmu Komputer FMIPA ULM).
  3. Setyo Saputro (IT Konsultan dan juga Founder  Pinandu).

 

blog01

{M Reza Faisal}

Pada acara ini saya sebagai salah satu pembicara yang membawakan materi tentang pengenalan Azure. Memberikan paparan layanan-layanan yang dimanfaatkan di Azure. Selain itu juga diberikan langkah-langkah mendaftar Azure dengan gratis bagi peserta yang memiliki email kampus yang telah bekerjasama dengan Microsoft.

blog03

Selanjutnya materi dilanjutkan dengan penjelasan tentang Azure Machine Learning yang berisi langkah-langkah untuk melakukan cluster dan klasifikasi dengan layanan ini.

DSCF9098

{Rudy Herteno}

Materi kedua adalah layanan Computer dan Custom Vision di Azure yang dibawakan oleh Rudy Herteno.

blog04

Materi diberikan dengan demo langsung dihadapan peserta berupa cara melatih gambar sampai melakukan pengenalan objek.

blog05

{Setyo Saputro}

Pemateri terakhir membawakan materi tentang mengelolaan kode program yang dapat digunakan bersama-sama oleh banyak developer dalam suatu team. Kode program yang disimpan pada Github. Kemudian bagaimana kode program tersebut dengan mudah dapat dideploy ke layanan Azure sehingga aplikasi yang dibangun dapat segera dicoba.

blog06

{Akhir Acara}

Diakhir acara diadakan pembagian MS Azure Pass agar peserta dapat segera memanfaatkan dan mencoba layananan-layanan Azure.

DSCF9146

Selain itu juga dibagikan T-Shirt dari Microsoft berikut ini.

blog02

Dan acara diakhiri dengan sesi foto bareng antara pembicara, panitia dan peserta.

IMG_1641

Akhir kata, sampai ketemu lagi di Global Azure Bootcamp tahun depan Smile

Seri Belajar ASP.NET: Membangun Aplikasi Real-Time dengan ASP.NET Core SignalR


Buku ini ditujukan untuk pengembang yang ingin membuat aplikasi real-time (Real-Time Application/RTA). Saat ini telah tersedia library yang mempermudah developer untuk membangun aplikasi real-time, salah satunya adalah ASP.NET SignalR. Buku ini akan memberikan panduan menyiapkan backend yang berperan sebagai server. Sedangkan panduan untuk membuat aplikasi client akan diberikan dalam tiga tipe project yaitu project aplikasi web, aplikasi desktop atau aplikasi mobile. Harapannya pembaca dapat mendapatkan pengetahuan dasar tentang konsep RTA sekaligus penerapannya.

 

cover

 

Daftar Isi:

  1. Pendahuluan
    • Aplikasi Real-Time
    • Socket
    • Multicast
    • Aplikasi Web
    • Web Socket
    • ASP.NET SignalR
    • SignalR dan WebSocket
    • Transport dan Fallback
    • ASP.NET Core SignalR
    • Kebutuhan Client
    • Javascript Client
    • .NET Client
    • Source Code
    • Referensi
  2. Aplikasi ASP.NET Core SignalR
    • Membuat Web Project
    • Menambahkan SignalR Hub
    • Konfigurasi SignalR
    • Menambahkan SignalR Client
    • Menjalankan Aplikasi
    • Source Code
    • Referensi    32
  3. SignalR dengan TypeScript dan Webpack
    • Membuat ASP.NET Core Web Application
    • Konfigurasi Webpack dan TypeScript
    • Pengaturan Aplikasi ASP.NET Core
    • Client Server Communication
    • Mencoba Menjalankan Aplikasi
    • Source Code
    • Referensi
  4. Hosting SignalR pada Microsoft Azure
    • Membuat Instance Azure Apps
    • Konfigurasi Azure Apps
    • Mengunggah Aplikasi
  5. Windows Form Client
    • Membuat Project Windows Form
    • Menambahkan NuGet Package SignalR
    • Mendesain Form Chat
    • Menambahkan Kode Untuk Koneksi
    • Menjalankan Aplikasi Windows Forms
    • Referensi
  6. Mobile Client (Xamarin Forms)
    • Membuat Project Xamarin Cross Platform
    • Menambahkan Library SignalR Pada Xamarin Forms
    • Membuat Form Untuk Mengirimkan Pesan
    • Menambahkan Kode untuk Menampilkan Data dan Kirim Data
    • Menjalankan Aplikasi Xamarin di Android Device/Emulator
    • Source Code
    • Referensi
  7. Penutup

 

Buku ini dapat diunduh pada link berikut: https://www.researchgate.net/publication/330105251_Seri_Belajar_ASPNET_Membangun_Aplikasi_Real-Time_dengan_ASPNET_Core_SignalR.

Contoh kode program yang ditulis pada buku ini dapat diakses pada link berikut: https://github.com/rezafaisal/ASPNETCoreSignalR.

Seri Belajar Data Science: Pengenalan Azure Machine Learning Studio


Buku ini ditujukan bagi pembaca yang telah mengetahui konsep atau teori dari teknik, metode dan algoritma di bidang statistik dan machine learning, dan bagi pembaca yang ingin mencari tool yang dapat memudahkan menggunakan dan menerapkan konsep dan teori tersebut.

Microsoft Azure ML Studio adalah tool berupa layanan komputasi awan yang berfungsi untuk membantu mengolah dan mengalisis data dengan berbagai metode konversi dan transformasi data, berbagai fungsi statistik serta bermacam-macam algoritma machine learning. Layanan seperti ini cocok digunakan bagi siapa saja yang bergelut di bidang data science namun tidak memiliki komputer dengan kinerja yang bagus. Atau kendala sumber daya listrik tidak selalu ada setiap waktu sehingga dapat mengganggu atau menghentikan pemrosesan data yang sedang berjalan. Maka dengan adanya layanan seperti Microsoft Azure ML Studio ini akan sangat membantu bagi siapa saja yang memiliki kendala serupa.

Buku ini dibuat sebagai rangkuman dan catatan dari hal-hal yang penulis kerjakan dalam melakukan analisis dan pemrosesan data dengan Microsoft Azure ML Studio. Setiap pembahasan yang ditulis akan diberikan penjelesan sederhana tentang langkah-langkah yang dilakukan. Sehingga pembaca dapat mencoba langsung menyelesaikan masalah-masalah umum yang bidang statistik dan machine learning.

 

cover

 

Daftar Isi:

  1. Pendahuluan
    • Komputasi Awan
    • Jenis-Jenis Layanan Komputasi Awan
      • Infrastructure as a Service (IaaS)
      • Platform as a Service
      • Software as a Servic
    • Microsoft Azure
      • Program Gratis Mencoba Microsoft Azure
      • Registrasi
      • Portal
      • Virtual Machine
    • Microsoft Azure Machine Learning Studio
  2. Pengantar Azure ML Studio
    • Antarmuka Utama
      • Projects
      • Experiments
      • Web services
      • Notebooks
      • Datasets
      • Trained models
      • Settings
    • Mengelola Dataset
      • Menambah Dataset
      • Melihat Dataset
      • Menghapus Dataset
    • Mengelola Experiment
      • Membuat Experiment
      • Menjalankan Experiment
      • Menyimpan Experiment
      • Menghapus Experiment
    • Mengelola Modul
      • Port Input & Output
      • Bantuan & Dokumentasi
      • Memberi Deskripsi
      • Memberi Parameter
      • Menghapus Modul
  3. Data
    • Input Data
      • Enter Data Manually
      • Import Data
    • Missing Value
      • Summarize Data
      • Clean Missing Value
    • Duplicate Row
      • Memilih & Mengabung Data
      • Select Column in Dataset
      • Add Columns
      • Add Rows
    • Normalisasi Data
      • Normalize Data
    • Sampling & Membagi Data
      • Split Data
      • Partition and Sample
    • Konversi Data
  4. Fungsi Statistik
    • Operasi Matematika
    • Statistik Dasar
    • Korelasi Antar Variable
    • Distribusi Probabilitas
    • Hipotesis dengan t-Test
  5. Machine Learning
    • Klasifikasi
      • Klasifikasi Dua Class – Split Data
      • Klasifikasi Dua Class – Cross Validation
      • Klasifikasi Multi Class
    • Regresi
      • Regresi – Split Data
      • Regresi – Cross Validation
    • Clustering
      • Sumber Data
      • Clustering
      • Hasil
  6. Web Service Untuk Prediksi
    • Web Service
    • Setup Web Service
      • Penentuan Experiment
      • Membuat Web Service
    • Akses Web Service
      • Akses dari Website Azure ML
      • Akses dari Aplikasi Client
  7. Topik Lanjutan
    • Modul dengan Bahasa Pemrograman R
      • Versi R
      • Input & Ouput Dataset
      • Output R Device
      • R Package
      • Contoh Kasus
    • Klasifikasi Data Text dari Twitter
      • Import Data
      • Execute R Script
      • Edit Metadata
      • Feature Hashing
      • Split Data
      • Filter Based Feature Selection
      • Train Model & Two-Class Support Vector Machine
      • Score Model & Evaluate Model
    • Aplikasi Client Untuk Akses Azure ML Web Service
      • Aplikasi Web
      • Aplikasi Desktop
      • Aplikasi Mobile
      • Source Code
  8. Penutup

 

Buku ini dapat diunduh pada link berikut: https://play.google.com/store/books/details/M_Reza_Faisal_Seri_Belajar_Data_Science_Pengenalan?id=Bp2CDwAAQBAJ

Sedangkah source code contoh pada buku ini dapat diunduh pada link berikut: https://github.com/rezafaisal/AzureMLWebServiceAccess

Sebagai informasi bahwa buku ini bersifat gratis, tetapi hanya bagi orang-orang yang sabar dan rajin membaca saja Smile

Azure Machine Learning Studio Workshop at Lampung University


Mengawali rintisan kerjasama antara Jurusan Ilmu Komputer Universitas Lampung dengan Prodi Ilmu Komputer Universitas Lambung Mangkurat, pada Jumát (30/11) diadakan Pelatihan Machine Learning di Laboratorium Komputasi. Pelatihan mengkombinasikan berbagai metode penerapan machine learning  pada berbagai perangkat, baik mobile, desktop maupun cloud computing.  Kegiatan sharing pengetahun ini nantinya akan dilanjutkan dengan kunjungan Jurusan Ilmu Komputer ke Prodi Ilmu Komputer ULM pada tahun mendatang.

azure01

Metode pembelajaran dalam pelatihan mengkombinasikan hands-on, praktek langsung menggunakan tools Microsoft Azure, dan paparan materi, selain diikuti oleh peserta dari dosen jurusan ilmu komputer, jurusan matematika  juga mahasiswa doktor bidang ilmu komputer. Materi pelatihan meliputi pengenalan portal Azure, Azure  Machine Learning Studio, Classification Split Data, Classification Cross Validation, Regression, Clustering, Web Service dan R Module.

azure02

 

azure03

Machine Learning merupakan salah satu tema di bidang Ilmu Komputer yang saat ini menjadi trend  penelitian. Hal ini yang mendasari ide pelaksanaan kegiatan Pelatihan Machine Learning. Dengan materi pelatihan yang disampaikan diharapkan dapat memperkaya wawasan juga memicu ide penelitian yang lebih baik sesuai dengan perkembangan ilmu pengetahuan terkini, ujar Ketua Jurusan Ilmu Komputer dalam sesi penutupan pelatihan.

Berbagai diskusi  dan antusiasme selama pelatihan menunjukkan minat peserta untuk menindaklanjuti pengetahuan yang diperoleh  menjadi publikasi yang berkualitas. Acara pelatihan diakhiri dengan dokumentasi foto bersama Pemateri, Panitia, dan Peserta di depan Gedung MIPA Terpadu.

azure04

Browser + Razor = Blazor!


{Pendahuluan}

Blazor dibangun atas basis teknologi web yang sudah ada yaitu HTML dan CSS.  Perbedaannya adalah alih-alih menggunakan JavaScript untuk “pemrograman antarmuka/UI”, Blazor menggunakan sintaks C# dan Razor.  Sampai saat ini, Blazor masih merupakan project eksperiment, project yang mengkhususkan diri sebagai “web UI framework”.  Tujuan utamanya adalah untuk membantu memudahkan dan mempercepat pembangunan Single-Page Application (SPA) yang dapat berjalan indah pada semua web browser.  Blazor berjalan pada sisi client atau akan diproses pada web browser.  Sehingga diperlukan .NET framework pada web browser.  Penggunaan .NET pada browser app mempunyai beberapa manfaat yaitu:

  • Stabil dan konsisten.
  • Mendukung bahasa pemrograman modern seperti C# dan F#.
  • Didukung oleh tool development handal, yaitu Visual Studio Smile
  • Fast dan scalable, cepat dikembangkan, reliable dan aman.

Sedangkan Blazor akan memiliki beberapa feature sebagai berikut:

  • component model untuk membangun composable UI.
  • routing.
  • layout.
  • form dan validasi.
  • dependency injection
  • JS interop.
  • live reloading pada browser.
  • server side rendering.
  • .NET debugging untuk browser dan IDE.
  • intellisense dan tooling.
  • tetap dapat dijalankan pada web browser yang belum mendukung WebAssembly dengan bantuan asm.js.
  • publishing dan app size trimming.

Menjalankan .NET pada browser sangat dimungkinkan karena adanya WebAssembly, sebuah standar web baru untuk sebuah aplikasi yang dikompilasi.  Aplikasi tersebut dapat dijalankan pada web browser dengan kecepatan yang sama seprti aplikasi native.

{Routing & Component}

Pada posting sebelumnya di http://www.rezafaisal.net/?p=3480, telah dijelaskan hal-hal yang diperlukan untuk membangun aplikasi dengan Blazor, berikut contohnya.  Pada posting akan dijelaskan sedikit lebih detail tentang apa yang telah dilakukan pada posting sebelumnya.

Pertama kita akan berkenalan dengan routing.  Pada project terdapat file App.cshtml yang bertugas sebagai komponen Router.  Tugasnya adalah menunjuk komponen yang diminta oleh user.  Isi file ini adalah sebagai berikut.

   1: <!--

   2:     Configuring this here is temporary. Later we'll move the app config

   3:     into Program.cs, and it won't be necessary to specify AppAssembly.

   4: -->

   5: <Router AppAssembly=typeof(Program).Assembly />

Pada baris-5 adalah cara untuk memanggil komponen Router.

Pada project telah diberikan 3 contoh komponen yaitu /, Counter dan FetchData yang keduanya disimpan dalam folder Pages dengan nama file Index.cshtml,  Counter.cshtml dan FetchData.cshtml.  Selain itu juga terdapat komponen lain pada folder Shared yaitu SurveyPrompt.cshtml.

{Component: HelloBlazor}

Berikut ini akan diberikan contoh membuat komponen sederhana dengan nama HelloBlazor.  Maka terlebih dahulu dibuat file HelloBlazor.cshtml yang disimpan pada folder Pages.  Isi file ini adalah sebagai berikut.

   1: @page "/helloblazor"

   2: <h1>Hello Blazor</h1>

Untuk memanggil komponen ini dapat  dipanggil di halaman *.cshtml mana saja.  Sebagai contoh jika ingin memanggil pada file Index.cshtml maka dapat dilakukan dengan cara seperti pada baris ke-9.

   1: @page "/"

   2:

   3: <h1>Hello, world!</h1>

   4:

   5: Welcome to your new app.

   6:

   7: <SurveyPrompt Title="How is Blazor working for you?" />

   8:

   9: <HelloBlazor />

Hasilnya dapat dilihat pada gambar di bawah ini.

blog01

{Componen: SayName}

Berikut ini akan diberikan contoh komponen dengan masukan parameter.  Berikut adalah contoh SayName.cshtml.  Parameter adalah property yang bersifat public.

   1: @page "/sayname"

   2: <h1>Hello @YourName</h1>

   3:

   4: @functions

   5: {

   6:     public string YourName { get; set; }

   7: }

Dan untuk memanggilnya dapat dilakukan dengan cara berikut ini.  Pengisian parameter dapat dilakukan seperti mengisi atribut pada tag HTML.

   1: @page "/"

   2:

   3: <h1>Hello, world!</h1>

   4:

   5: Welcome to your new app.

   6:

   7: <SurveyPrompt Title="How is Blazor working for you?" />

   8:

   9: <SayName YourName="M Reza Faisal" />

{Layout}

pada Blazor, layout juga dianggap sebagai komponen.  Contoh komponen layout dapat dilihat pada file Shared/MainLayout.cshtml.

   1: @implements ILayoutComponent

   2:

   3: <div class='container-fluid'>

   4:     <div class='row'>

   5:         <div class='col-sm-3'>

   6:             <NavMenu />

   7:         </div>

   8:         <div class='col-sm-9'>

   9:             @Body

  10:         </div>

  11:     </div>

  12: </div>

  13:

  14: @functions {

  15:     public RenderFragment Body { get; set; }

  16: }

Pada komponen layout harus menggunakan implementasi ILayoutComponent.  Pada sintaks Razor dapat dilakuknan dengan menggunakan direktive @implements.  Sebagai isi dari layout digunakan property Body.  Kemudian pada halaman di atas dapat dilihat pemanggilan komponen <NavMenu />.

{Root Component}

Pada Blazor sepertinya semua dianggap komponen termasuk file Program.cs.  File ini dianggap sebagai root component.

   1: using Microsoft.AspNetCore.Blazor.Browser.Rendering;

   2: using Microsoft.AspNetCore.Blazor.Browser.Services;

   3: using System;

   4:

   5: namespace WebApplication1

   6: {

   7:     class Program

   8:     {

   9:         static void Main(string[] args)

  10:         {

  11:             var serviceProvider = new BrowserServiceProvider(configure =>

  12:             {

  13:                 // Add any custom services here

  14:             });

  15:

  16:             new BrowserRenderer(serviceProvider).AddComponent<App>("app");

  17:         }

  18:     }

  19: }

{Dependency Injection}

Kita melakukan inject service ke dalam komponen dengan menggunakan contructor injection atau menggunakan directive @inject.  Sebagai contoh dapat dilihat pada komponen FetchData.cshtml.  Penggunaan directive @inject pada baris ke-2.

   1: @page "/fetchdata"

   2: @inject HttpClient Http

   3:

   4: <h1>Weather forecast</h1>

   5:

   6: <p>This component demonstrates fetching data from the server.</p>

   7:

   8: @if (forecasts == null)

   9: {

  10:     <p><em>Loading...</em></p>

  11: }

  12: else

  13: {

  14:     <table class='table'>

  15:         <thead>

  16:             <tr>

  17:                 <th>Date</th>

  18:                 <th>Temp. (C)</th>

  19:                 <th>Temp. (F)</th>

  20:                 <th>Summary</th>

  21:             </tr>

  22:         </thead>

  23:         <tbody>

  24:             @foreach (var forecast in forecasts)

  25:             {

  26:                 <tr>

  27:                     <td>@forecast.Date.ToShortDateString()</td>

  28:                     <td>@forecast.TemperatureC</td>

  29:                     <td>@forecast.TemperatureF</td>

  30:                     <td>@forecast.Summary</td>

  31:                 </tr>

  32:             }

  33:         </tbody>

  34:     </table>

  35: }

  36:

  37: @functions {

  38:     WeatherForecast[] forecasts;

  39:

  40:     protected override async Task OnInitAsync()

  41:     {

  42:         forecasts = await Http.GetJsonAsync<WeatherForecast[]>("/sample-data/weather.json");

  43:     }

  44:

  45:     class WeatherForecast

  46:     {

  47:         public DateTime Date { get; set; }

  48:         public int TemperatureC { get; set; }

  49:         public int TemperatureF { get; set; }

  50:         public string Summary { get; set; }

  51:     }

  52: }

Komponen ini menggunakan HttpClient untuk mengambil data JSON dari server seperti yang dapat dilihat pada baris ke-37 sampai dengan baris ke-52.  Kemudian data dideserialisasi ke variable forecast yang berisi array dari object WeatherForecast.  Selanjutnya data pada variable forecaset akan dirender pada table seperti yang dapat dilihat pada baris ke-24 sampai baris ke-32.

Sekian isi posting kali ini, pada posting berikutnya akan diberikan contoh program sederhana yang ditulis dengan Blazor.

ASP.NET Core Blazor Language Service


Kita tentu sudah kenal Razor.  Sekarang diperkenalkan Blazor yang merupakan web UI framework berbasis C#, Razor dan HTML yang berjalan di atas browser via WebAssembly. Nah, apa pula itu WebAssembly? Menurut beberapa cerita yang kami dengar, WebAssembly memungkinkan binary code berjalan di atas web browser.  Jadi secara sederhana WebAssembly adalah “mesin” di dalam web browser.  Nah sekarang sudah jelas, kenapa C# bisa jalan langsung di sisi client atau browser kan? Itu semua karena WebAssembly (dibaca: wasem).  Detail tentang ini mungkin bisa dibaca di sini https://medium.com/javascript-scene/what-is-webassembly-the-dawn-of-a-new-era-61256ec5a8f6. (di posting berikutnya, akan kami bahas lagi secara detail tentang WebAssembly ini).

Tujuan besar Blazor adalah ingin menjalankan kode .NET pada browser.  Jadi ingat dulu kala ada Java Appret … eh Java Applet yang berjalan pada web browser yang telah memasang java applet pluging.  Atau Macromedia/Adobe Flash yang juga berjalan pada web browser, asal telah terpasang flash plugin.  Nah di sini yang menjadi “plugin” agar Blazor dapat berjalan di web browser adalah WebAssembly. WebAssembly dibangun oleh consensus oleh “pengembang” 4 web browser besar yaitu FireFox, Chrome, Safari dan MS Edge.

{Blazor}

Kembali ke Blazor. Untuk mengenal apa itu Blazor maka kita akan langsung praktek menggunakan Blazor.  Untuk menggunakan ini perlu mempersiapkan tool berikut ini:

 

{Visual Studio 2017 versi 15.7 Preview}

Blazor saat ini hanya tersedia untuk VS2017 versi preview.  Saat ini versi stabil VS2017 adalah versi 15.6.2 (kalau tidak salah hehe). Maka untuk mengecap rasanya Blazor ini terlebih dahulu kami menginstall VS2017 versi 15.7 Preview.

blog01

{ASP.NET Core Blazor Language Service}

Installasi ASP.NET Core Blazor Language Service. Ingat ekstensi ini tidak dapat diinstall pada VS2017 yang stabil saat ini, hanya dapat diinstall pada VS2017 terbaru (yang statusnya masih preview).

blog02

blog03

Hasilnya adalah kita dapat melihat tempate baru pada project web ASP.NET Core, yaitu seperti gambar di bawah ini.

blog04

Saat website dijalankan akan ada permintaan ijin menggunakan node.js seperti terlihat pada gambar di bawah ini.

blog05

{Code Blazor}

Berikut ini contoh code Blazor pada file *.cshtml.

@page "/counter"
<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button @onclick(IncrementCount)>Click me</button>

@functions {
int currentCount = 0;

void IncrementCount()
{
currentCount++;
}
}

 

Contoh kode di atas adalah contoh kode untuk increment angka ketika tombol di klik, seperti pada gambar di bawah ini.  Pada kode di atas dapat dilihat fungsi IncrementCount() tidak ditulis dengan bahasa JavaScript, tetapi ditulis dengan bahasa C#.

blog07

Contoh kedua adalah kode berikut ini.

@page "/fetchdata"
@inject HttpClient Http

<h1>Weather forecast</h1>

<p>This component demonstrates fetching data from the server.</p>

@if (forecasts == null)
{
<p><em>Loading…</em></p>
}
else
{
<table class=‘table’>
<thead>
<tr>
<th>Date</th>
<th>Temp. (C)</th>
<th>Temp. (F)</th>
<th>Summary</th>
</tr>
</thead>
<tbody>
@foreach (var forecast in forecasts)
{
<tr>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td>@forecast.Summary</td>
</tr>
}
</tbody>
</table>
}

@functions {
WeatherForecast[] forecasts;

protected override async Task OnInitAsync()
{
forecasts = await Http.GetJsonAsync<WeatherForecast[]>(“/sample-data/weather.json”);
}

class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF { get; set; }
public string Summary { get; set; }
}
}

 

Pada contoh di atas, dapat dilihat ditulis class dan method yang ditulis dengan C#.

Sekian dulu posting tentang Blazor ini, masih banyak pertanyaan dan ketidakjelasan. Semoga pada posting berikutnya akan kami kupas tuntas tentang Blazor ini.

How to Budle & Minify ASP.NET Core 2 Project using Visual Studio 2017


Hal pertama yang harus kita ketahui adalah “apa itu GULP?” dan “apa fungsi GULP?” setelah itu baru kita akan belajar bagaimana menggunakannya. Karena tidak ada gunanya menghabiskanw aktu terlebih dahulu jika kita tidak tahu apa manfaatnya kan?

Masalah yang mungkin sering kita hadapi dalam “web application development” adalah kadang harus melakukan hal yang sama berulang kali. Bisa melakukan pengulangan task di satu project.  Atau melakukan pengulangan setiap memulai membuat project.  Sebagai contoh, kita akan membuat banyak file javascript, file CSS, file HTML, kemudian kita perlu melakukan “minifying” semua itu sebelum di upload.

Nah, GULP membantu kita untuk otomatisasi proses-proses taks yang berulang tersebut.

 

{What is Gulp}

Gulp adalah javascript task runner yang membantu kita untuk melakukan otomatisasi task-task berikut ini:

  • membundle dan minifying library-library dan CSS stylesheet.
  • Refresh web browser setelah file disimpan.
  • Mempercepat menjalankan unit test.
  • Menjalankan code analysis.
  • Menyalin file yang telah dimodifikasi kedalam output directory.

Untuk lebih mengerti apa fungsinya Gulp, maka kita akan melakukan praktek secara langsung.

 

{Membuat Project}

Langkah pertama adalah membuat project ASP.NET Core Web Application pada Visual Studio 2017 dengan nama BundlerMinifier.

blog01

Kemudian klik OK, kemudian pada window New ASP.NET Core Web Application pilih Web Application.

blog02

Kemudian klik tombol OK.

 

{bundleconfig.json}

Selanjutnya pada project dapat dilihat file bundleconfig.json dengan isi sebagai berikut.

// Configure bundling and minification for the project.
// More info at https://go.microsoft.com/fwlink/?LinkId=808241
[
  {
    "outputFileName": "wwwroot/css/site.min.css",
    // An array of relative input file paths. Globbing patterns supported
    "inputFiles": [
      "wwwroot/css/site.css"
    ]
  },
  {
    "outputFileName": "wwwroot/js/site.min.js",
    "inputFiles": [
      "wwwroot/js/site.js"
    ],
    // Optionally specify minification options
    "minify": {
      "enabled": true,
      "renameLocals": true
    },
    // Optionally generate .map file
    "sourceMap": false
  }
]

 

Saat membuat file ini pada VS2017 dapat dilihat tawaran untuk menggunakan extension untuk membantu proses ini seperti pada gambar di bawah.

blog03

Klik tawaran tersebut, dan akan ditampilkan tawaran sebagai berikut.

blog04

Centak checkbox yang tersedia, kemudian klik Install.  Setelah proses installasi selesai, maka VS2017 perlu direstart.

 

{Bundling & Minifying}

Untuk membundle beberapa file, maka file-file tersebut dapat dipilih dengan cara menekan tombol Control+Klik file-file yang diinginkan pada Solution Explorer seperti pada gambar di bawah ini.

blog06

Hasilnya dapat dilihat pada gambar dibawah ini.

blog07

Nama file hasil bundling ini adalah jquery-validation-bundle.js, yang berisi gabungan file additional-method.js dan jquery-validate.js.  Sedangkan file jquery-validation-bundle.min.js adalah file jquery-validation-bundle.js yang telah diminifying.

 

{Bundle on Build}

Pada project yang kita buat telah tersedia file bundleconfig.json.  Dengan memanfaatkan file ini, kita dapat melakukan proses bundle secara otomatis saat proses build selesai dilakukan.  Caranya adalah, klik kanan pada file tersebut kemudian pilih Budler & Minifier > Enable bundle on build.

blog08

Selanjutnya akan dilakukan proses installasi package yang diperlukan untuk melakukan bundle secara otomatis ini.  Nama file-file hasil bundle dan minify sesuai dengan konfigurasi yang telah dilakukan pada file bundleconfig.json.

Sebagai contoh setelah project dibuild, maka dapat dilihat ada proses tambahan, yaitu bundler, seperti yang dilihat pada gambar di bawah ini.

blog09

Hasilnya dapat dilihat pada file-file yang ada di Solution Explorer.

blog10

Pada gambar di atas dapat dilihat file site.css memiliki file site.min.css yang merupakan hasil minifying.  Begitu juga file site.js memiliki file site.min.js.

 

{Gulp}

Jika telah biasa melakukan proses otomatisasi dengan Gulp maka file bundleconfig.json digunakan untuk tujuan tersebut. Caranya adalah dengan klik kanan pada file bundleconfig.json, kemudian pilih Bundles & Minifier > Convert to Gulp.  Kemudian akan dilakukan proses installasi package yang diperlukan.  Maka dapat dilihat terdapat tambahan file baru yaitu gulpfile.js dengan isi sebagai berikut.

"use strict";

var gulp = require(“gulp”),
concat = require(“gulp-concat”),
cssmin = require(“gulp-cssmin”),
htmlmin = require(“gulp-htmlmin”),
uglify = require(“gulp-uglify”),
merge = require(“merge-stream”),
del = require(“del”),
bundleconfig = require(“./bundleconfig.json”);

var regex = {
css: /.css$/,
html: /.(html|htm)$/,
js: /.js$/
};

gulp.task(“min”, [“min:js”, “min:css”, “min:html”]);

gulp.task(“min:js”, function () {
var tasks = getBundles(regex.js).map(function (bundle) {
return gulp.src(bundle.inputFiles, { base: “.” })
.pipe(concat(bundle.outputFileName))
.pipe(uglify())
.pipe(gulp.dest(“.”));
});
return merge(tasks);
});

gulp.task(“min:css”, function () {
var tasks = getBundles(regex.css).map(function (bundle) {
return gulp.src(bundle.inputFiles, { base: “.” })
.pipe(concat(bundle.outputFileName))
.pipe(cssmin())
.pipe(gulp.dest(“.”));
});
return merge(tasks);
});

gulp.task(“min:html”, function () {
var tasks = getBundles(regex.html).map(function (bundle) {
return gulp.src(bundle.inputFiles, { base: “.” })
.pipe(concat(bundle.outputFileName))
.pipe(htmlmin({ collapseWhitespace: true, minifyCSS: true, minifyJS: true }))
.pipe(gulp.dest(“.”));
});
return merge(tasks);
});

gulp.task(“clean”, function () {
var files = bundleconfig.map(function (bundle) {
return bundle.outputFileName;
});

return del(files);
});

gulp.task(“watch”, function () {
getBundles(regex.js).forEach(function (bundle) {
gulp.watch(bundle.inputFiles, [“min:js”]);
});

getBundles(regex.css).forEach(function (bundle) {
gulp.watch(bundle.inputFiles, [“min:css”]);
});

getBundles(regex.html).forEach(function (bundle) {
gulp.watch(bundle.inputFiles, [“min:html”]);
});
});

function getBundles(regexPattern) {
return bundleconfig.filter(function (bundle) {
return regexPattern.test(bundle.outputFileName);
});
}

 

Jika ingin memanfaatkan Gulp pada Visual Studio 2017, maka dapat dilakukan dengan menggunakan Task Runner Explorer.  Untuk menaktifkan fitur ini dengan cara pilih View > Other Windows > Taks Runner Explorer.  Hasilnya dapat dilihat pada area bawah Visual Studio 2017.

blog11

Seri Belajar Data Science: Pemrograman R untuk Data Scientist


Buku ini akan memberikan panduan tentang dasar-dasar penggunaan bahasa pemrograman R sebagai bekal dasar di dunia Data Science.

Capture

Daftar isi buku ini adalah sebagai berikut:

1 Pendahuluan

  • Data Science
  • Apakah ini adalah A atau B?
  • Apakah ini aneh?
  • Berapakah ini nanti?
  • Bagaimana hal ini diorganisir?
  • Apa yang harus dilakukan selanjutnya?
  • Definisi Data
  • R Environment
  • Installasi
  • Tool Pemrograman

2 Dasar-Dasar Bahasa Pemrograman R

  • Pendahuluan
  • Working Directory
  • R Session
  • Variable
  • Function
  • Tipe Data
    * Skalar
    * Date
    * Time
    * Vector
    * Factor
    * Matrix
    * Array
    * Data Frame
    * List
    * Data Pada RStudio
  • Percabangan
    * Operator
    * Statement if
    * Statement ifelse
    * Statement switch
  • Pengulangan
    * Statement for
    * Statement while
    * Statement repeat
    * Statement next
    * Statement break
  • Penanganan Kesalahan
  • Komentar
  • Debug
  • Profilling

3 Pemrograman Berbasis Obyek

  • Class
  • Obyek
  • Inheritance
  • Method & Fungsi Generic

4 Fungsi Dasar R

  • Dokumen Bantuan
  • Package
    * Installasi Package
    * Memuat Package
    * GitHub
  • Dataset
  • Menulis Data Ke File
    * write.csv()
    * write.table()
  • Membaca File Text
    * read.csv()
    * read.delim()
    * read.table()
  • Membaca File Excel
  • Akses Database
    * Akses Database MySQL
    * Akses Database SQL Server
  • Dimensi Data
    * nrow()
    * ncol()
    * colnames()
    * rownames()
  • Menampilkan Data
    * head()
    * tail()
    * sample()
    * unique()
    * View()
    * obyek$rowName
  • Memfilter Data
    * obyek[,col1:col2]
    * obyek[row1:row2,]
    * obyek[row1:row2, col1:col2]
    * obyek[which(), ]
  • Sorting Data
    * order
    * sort
  • Menggabung Data
    * rbind()
    * cbind()
    * rbind.data.frame()
    * cbind.data.frame()
    * paste()
    * paste0()
  • Explorasi Data
    * dim()
    * names()
    * str()
    * table()
    * summary()
  • Pengulangan
    * lapply()
    * sapply()
    * colSums()
    * colMeans()
    * rowSums()
    * rowMeans()
  • Membuat Data Simulasi
    * rnorm()
    * dnorm()
    * pnorm()
    * qnorm()
    * set.seed()
  • Mengelola Obyek
    * assign()
    * get()
    * ls()
    * exists()
    * rm()
    * save()
    * load()
  • Memeriksa Obyek
    * class()
    * is.null()
    * is.na()
    * is.numeric()
  • Konversi Tipe Data
    * as.character()
    * as.numeric()
    * as.data.frame()

5 Visualisasi Data  

  • Grafik
    * plot()
    * scatterplot3()
    * plot3d()
    * hist()
    * density()
    * boxplot()
    * featurePlot()
    * pie()
    * barplot()
    * par()
    * dotchart()
    * missmap()
    * corrplot()
    * pairs()
    * Simbol
    * Export Gambar
  • Visualisasi Dengan Package ggplot
  • Animasi
    * ani.options()
    * ani.pause()
    * saveHTML()
    * saveGIF()
  • Referensi

6 Contoh Kasus

  • Pengolahan Data Awal
  • Persiapan Data Cross Validation

7 Komputasi Paralel  

  • Pendahuluan
  • Persiapan
  • Fungsi Dasar Komputasi Paralel
    * detectCore()
    * makeCluster()
    * stopCluster()
    * parLapply()
    * parSapply()
    * registerDoParallel()
  • Contoh Kasus
  • Referensi

8 Reduksi Dimensi Data   

  • Principal Component Analysis (PCA)
  • t-Distributed Stochastic Neighbor Embedding (t –SNE)
  • Multidimensional Scaling
  • Referensi

9 Penutup

Buku ini dapat diunduh di sini: https://github.com/rezafaisal/DataScience.R

Seri Belajar Xamarin: Pengenalan Xamarin untuk Android


Telah terbit FREE eBook Seri Belajar Xamarin dengan Judul Seri Belajar Xamarin – Pengenalan Xamarin for Android.  Buku ini berisi materi pembuatan aplikasi mobile dengan target platform Android menggunakan Xamarin for Android dan Visual Studio IDE.

ebook2

Buku ini terdiri dari  50 halaman dan terbagi menjadi 5 Bab yaitu:
Pengenalan Xamarin4Android

  • Instalasi Xamarin for Visual Studio

Arsitektur Android Platform   

  • Xamarin dan Android
  • Menjalankan Android Emulator
  • Menambahkan Activity
  • Menyimpan State ketika proses Recreated Activity
  • Android Life Cycle Management
  • Menambahkan Menu
  • Menambahkan Navigasi Action Bar
  • Menambahkan Context Menu
  • Mengirimkan Nilai antar Activity
  • Code Sharing dengan Platform Lain

Layout

  • Linear Layout
  • Relative Layout
  • Table Layout
  • Grid View

Membuat ListView

  • Menampilkan data dengan ListView
  • Menggunakan ListActivity
  • Menggunakan Simple Adapter

Menggunakan REST Web Services

 

Anda dapat mengunduh FREE E-Book ini pada tautan berikut: download ebook.

Jika anda tertarik untuk mengikuti pelatihan Xamarin anda dapat mengambil kelas pelatihan di http://actual-training.com.

Seri Belajar Xamarin: Pembangunan Cross Platform Mobile App dengan Xamarin Forms & Visual Studio 2017


Telah terbit FREE eBook Seri Belajar Xamarin dengan Judul Seri Belajar Xamarin – Cross Platform Mobile App dengan Xamarin Forms & Visual Studio 2017.Buku ini berisi materi pembuatan aplikasi mobile dengan target platform Android, iOS, dan Universal Windows Platform (UWP) menggunakan Xamarin Forms dan Visual Studio 2017.

ebook1

Buku ini terdiri dari  84 halaman dan terbagi menjadi 6 Bab yaitu:
Bab 1 – Pengenalan Xamarin Form

  • Pendahuluan
  • Apa itu Xamarin
  • Instalasi Visual Studio 2017 dan Xamarin
  • Memulai Membuat Project Xamarin Form
  • Application Lifecycle pada Xamarin Forms
  • Xamarin Forms UI (User Interface)
  • Komponen Utama pada Xamarin
  • Xamarin Form UI
  • Page
  • Layout
  • View
  • Membuat Solusi Xamarin Form
  • Membuat Project Xamarin Form
  • Application Lifecycle pada Xamarin Form

Bab 2 – Desain Tampilan menggunakan Layout

  • Interaksi dengan kontrol pada Xamarin Form

Bab 3 – Membuat List   

  • Binding List Of String
  • Menampilkan Data dari Data Model
  • Menambahkan Gambar Pada Cell
  • Kustomisasi Baris pada List
  • Menambahkan Tombol Pada List
  • Menggunakan Context Action

BAB 4 – Navigasi   

  • Navigation Pattern
  • Menambahkan Navigation Page
  • Membuat Dropdown Menu
  • Menggunakan Modal
  • Menggunakan Popup
  • Menggunakan Display Action Sheet
  • Mengirimkan Data antar Page
  • Global Class
  • Menggunakan Master Page
  • Menggunakan Tab Page

BAB 5 – SQLite dan REST Services   

  • Mengunakan Data Template
  • Data Template dengan Selection
  • Bekerja dengan SQLite
  • Menggunakan REST Services
  • Studi Kasus: Barang

BAB 6 – Bekerja dengan Azure Mobile Apps

  • Menambahkan Layanan Azure Mobile App.
  • Membuat Xamarin Forms Project

 

Anda dapat mengunduh FREE E-Book ini pada tautan ini: download ebook.

Jika anda tertarik untuk mengikuti pelatihan Xamarin anda dapat mengambil kelas pelatihan di http://actual-training.com.

Seri Belajar ASP.NET: ASP.NET Core 2 MVC & SQL Server 2017 dengan Visual Studio 2017


Sebelumnya telah dibuat dua buku Seri Belajar ASP.NET yaitu ASP.NET Core MVC & MySQL dengan Visual Studio Code dan ASP.NET Core MVC & PostgreSQL.  Kedua buku memiliki kesamaan dalam penggunaan tool Visual Studio Code sebagai tool pengembangan aplikasi web dengan ASP.NET Core versi 1.1.  Kelebihan tool ini adalah bersifat multi platform, tetapi tool ini hanya memiliki fitur-fitur dasar pemrograman.

Sedangkan pada buku ini menggunakan tool pengembangan akan digunakan ASP.NET Core versi 2.1 yang merupakan versi terbaru.  Terdapat beberapa perubahan dari sisi konfigurasi dan penyesuaian cara penulisan program.  Selain ini buku ini menggunakan tool developmet Visual Studio 2017 yang mempunyai fitur-fitur untuk mempermudah dan mempercepat pengembangan software seperti untuk fitur otomatisasi pembuatan class-class yang diperlukan dan lain-lain.

Harapannya buku ini dapat menjadi panduan bagi web developer untuk membangun aplikasi web dengan ASP.NET Core 2 MVC dengan menggunakan database MS SQL.

cover4-blog

{Contoh Kasus}
Pada buku ini terdapat contoh kasus pembangunan aplikasi. Ada 2 aplikasi yang yang dibangun pada buku ini yaitu Guest Book (Buku Tamu). Contoh kasus yang kedua dan terlengkap adalah Book Store yang berfungsi untuk mengelola buku. Aplikasi Book Store memiliki fitur-fitur yaitu:

  • Mengelola kategori buku.
  • Mengelola pengarang buku.
  • Mengelola buku, pada fitur ini terdapat fungsi untuk upload gambar cover buku.
  • Mengelola role.
  • Mengelola user.

Aplikasi Book Store juga memiliki fitur otentikasi dan otorisasi.

 

{Daftar Isi}

1 Pendahuluan  

  • . NET Core
    * ASP.NET Core
    * Web Server
  • Development Tool
    * Visual Studio 2017
    * Visual Studio Code
  • Database
    * MS SQL Server 2017
  • Bahan Pendukung
    * Buku
    * Source Code

2 .NET Core 2 SDK & Runtime   

  • Installasi
  • Uji Coba
  • .NET Core Command Line Tool
    * Info & Bantuan
    * Membuat Project
    * Restore
    * Build
    * Run
    * Migrasi Project

3 Visual Studio 2017

  • Installasi
  • Antarmuka
    * Solution Explorer
    * Editor
    * Toolbox
    * Properties
    * Output
    * Error List
  • Solution & Project
    * Solution
    * Project
    * Item
  • Build & Debug
  • Reference
  • NuGet

4 ASP.NET Core

  • ASP.NET Core Project
    * Membuat Solution
    * Membuat Project ASP.NET Core
  • Cara Kerja ASP.NET Core MVC
    * Controller
    * View
    * Model
  • Catatan

5 Entity Framework Core & MS SQL Server

  • Pendahuluan
  • Aplikasi GuestBook
  • Database First
    * Project
    * Database
    * Model
    * Controller
    * Views
  • Code First
    * Project
    * Model
    * Database
    * Controller & View
  • Kesimpulan

6 ASP.NET Core Identity

  • Pendahuluan
  • Project
    * Membuat Project
    * Konfigurasi Connection String
    * Penjelasan Startup.cs
  • Model
    * IdentityUser
    * IdentityRole
  • Database
    * Migrasi
    * Table

7 Model-View-Controller   

  • Persiapan
    * Aplikasi Book Store
    * Template Aplikasi Web
    * Membuat Project
    * Catatan
  • Model
    * API
    * Tipe Class Model
    * Display & Format
    * Relasi
    * Validasi
    * Book Store: Class Model & Atribut
    * Class Migrations & Database
  • Controller
    * View Bag
    * LINQ
    * Book Store: Komponen Controller
  • View
    * Akses File
    * Razor
    * Layout & Antarmuka
    * Sintaks Dasar Razor
    * HTML Helper
    * Tag Helper
    * Book Store: Komponen View

8 Implementasi Keamanan   

  • Modifikasi Startup.cs   
  • Otentikasi   
    * Model: UserLoginFormViewModel.cs   
    * View   
    * Controller: HomeController   
  • Otorisasi   

9 Penutup

 

Buku ini masih belum lengkap, masih menyisakan 1 sub bab terakhir (bukan 1 bab loh ya). Tetapi secara keseluruhan, buku ini telah dapat memberikan panduan penggunaan Visual Studio 2017 untuk membangun aplikasi web dengan ASP.NET Core 2 MVC dan SQL Server 2017 dengan cepat dan mudah.

Buku ini telah rampung ditulis beserta contoh kode program yang dibahas didalamnya. 

Buku dapat diunduh di link berikut: https://play.google.com/store/books/details/M_Reza_Faisal_Seri_Belajar_ASP_NET_ASP_NET_Core_2?id=7wNTDwAAQBAJ

Source code contoh latihan dapat diunduh pada link berikut ini: https://github.com/rezafaisal/ASPNETCoreSQLServer.