Proyek Blazor Server #1

CRUD untuk tabel tunggal menggunakan Dapper

M. Ramadhan
Telematika
14 min readJul 29, 2020

--

Dapper dan Entity Framework Core adalah dua ORM (Object-Relational Mapping ‘pemetaan relasional-objek’) yang biasanya digunakan di .NET. Keduanya memetakan hasil kueri basis data ke kelas domain C# dan sebaliknya. Dapper disukai karena ringan, cepat, sederhana, mudah digunakan dan dipahami. Dapper sangat cocok bagi pemrogram yang terbiasa menggunakan SQL dan prosedur pada SQL Server.

CRUD harus ada dalam sebuah aplikasi basis data. Tulisan ini membahas operasi CRUD dalam aplikasi Blazor Server menggunakan Dapper untuk tabel tunggal.

Tampilan Halaman CRUD

Aplikasi yang dibangun menampilkan halaman CRUD untuk tabel Publisher.

  • Pilih menu Publishers untuk menampilkan daftar penerbit.
  • Halaman di atas menampilkan daftar penerbit, terurut berdasarkan Id, dari besar ke kecil. Dengan mengklik judul kolom Id, urutan berubah dari kecil ke besar. Hal yang sama berlaku untuk kolom lainnya.
  • Tombol navigasi:
    ke halaman sebelumnya
    ke halaman berikutnya
    1, 2, 3, ... nomor halaman
  • Untuk mencari publisher berdasarkan kriteria nama, ketik nama penerbit di kotak pencarian. Nama tidak harus lengkap.
  • Untuk menambah data baru, klik Add new data
  • Untuk mengubah data yang ada, klik Edit
  • Untuk menghapus, klik Delete

Berikut adalah halaman untuk menambahkan Publisher.

Berikut ini adalah halaman untuk mengedit Publisher.

Instalasi SQL Server

  • Pastikan SQL Server telah terpasang di komputer. SQL Server 2019 biasanya dipasangkan dengan SSMS (SQL Server Management Studio) versi 18.x. Sayangnya, SSMS 18.x bermasalah pada fitur diagram basis data. Sebaiknya gunakan versi yang lebih lama, SQL Server 2017 Developer yang dapat diunduh di sini.
  • SSMS 18.x tidak dapat digunakan untuk SQL Server 2017. Gunakan SSMS 17.9.1 yang dapat diunduh di sini.

Membuat Basis Data BookDB

  • Buka SSMS.
  • Pilih nama server, klik Connect
  • Buka editor query dengan menekan Ctrl+N atau memilih menu:
    File|New|Query with Current Connection
  • Copy skrip SQL berikut, paste ke editor query.
  • Pilih menu: Query|Execute, atau tekan F5 untuk mengeksekusi skrip SQL dan menghasilkan basis data BookDB.
  • Diagramnya adalah sebagai berikut.

Tabel Publisher: Entri Data dan Prosedur

Sebagai tahap awal, akan dibuat CRUD untuk tabel Publisher. Berikut adalah skrip untuk menambah data dan membuat prosedur menambah data baru dan prosedur mengubah satu data berdasarkan kriteria nilai primary key.

  • Pilih menu: Query|Execute, atau tekan F5 untuk mengeksekusi skrip di atas.

Membuat Proyek Blazor Server

  • Buka Visual Studio 2019.
  • Buat proyek Blazor Server dengan nama BookApp. Cara membuat proyek Blazor Server telah dibahas pada tulisan sebelumnya.

Menghapus File

Karena tidak diperlukan, hapus file berikut.
Data/WeatherForecast.cs
Data/WeatherForecastService.cs
Pages/Counter.razor
Pages/FetchData.razor
Pages/SurveyPrompt.razor

Buka jendela Solution Explorer.

Untuk menghapus kelima file tersebut:
• Tekan kunci Ctrl sambil mengklik setiap file yang akan dihapus.
• Klik kanan salah satu file , misalnyaSurveyPrompt.razor
• Klik Delete

• Klik OK, kelima file dihapus permanen.

Menghapus Kode Sumber

Terkait dengan file yang dihapus di atas, kode dalam file lain yang terkait juga harus dihapus.

Membuat String Koneksi Basis Data

  • Pilih menu: View|SQL Server Object Explorer.
  • Klik kanan BookDB, klik Properties.
  • Pada jendela Properties, copy string koneksi.
  • Buka jendela Solution Explorer.
  • Klik appsettings.json untuk membuka file-nya.
  • Tambahkan kode berikut ke file appsettings.json
  • Supaya terkoneksi ke basis data BookDB di server PRIMARY-PC, paste string koneksi yang telah di-copy sebelumnya.
  • Simpan file appsettings.json

Instalasi Paket

Untuk membuat CURD menggunakan Dapper, paket berikut harus terpasang.
1. Dapper
2. Microsoft.EntityFrameworkCore.SqlServer

Cek paket terpasang

  • Gunakan Package Manager Console.
  • Pilih menu: Tools|NuGet Package Manager|Package Manager Console.
  • Ketikkan Get-Package
  • Gambar di atas menunjukkan belum ada paket yang terpasang.

Instalasi Dapper

  • Berikut adalah salah satu cara menginstal paket.
  • Pilih menu:
    Tools|NuGet Package Manager|Manage NuGet Packages Solution...
  • Tampil jendela NuGet Solution.
  • Klik Browse.
  • Pada kotak Search, ketikkan Dapper.
  • Dari daftar paket, pilih Dapper, klik Install.
  • Klik OK.

Instalasi Microsoft.EntityFrameworkCore.SqlServer

  • Lakukan hal yang sama untuk paket Microsoft.EntityFrameworkCore. SqlServer, atau gunakan cara lain via jendela Solution Explorer.
  • Klik kanan Solution 'BookApp',
  • Klik Manage NuGet Packages for Solution...
  • Selanjutnya, sama seperti pada instalasi paket Dapper.

Daftar Paket Terpasang

  • Selain melalui menu: Tools|NuGet Package Manager|Package Manager Console, daftar paket terpasang dapat dilihat via jendela Solution Explorer dengan memilih menu View|Solution Explorer
  • Klik BookApp|Dependencies|Packages

File Pendukung Operasi CRUD Publisher

Operasi CRUD membutuhkan file entitas, interface, metode, razor dan modifikasi kode pada beberapa file yang sudah ada.

File Entitas: Publisher.cs

Kelas model atau entitas Publisher merupakan pemetaan tabel Publisher di basis data. File Publisher.cs diletakkan dalam folder Entities.

  • Buka jendela Solution Explorer.
  • Klik kanan BookApp, lalu klik Add|New Folder.
  • Sebagai nama foldernya, ketikkan Entities.
  • Selanjutnya, buat sebuah file kelas.
  • Klik kanan Entities, lalu klik Add|Class.
  • Ketikkan Publisher.cs sebagai nama filenya, klik Add.
  • Klik Publisher.cs untuk membuka filenya, lalu copy dan paste kode berikut.

File Interface

File interface mendeklarasikan metode. Ada dua file interface, IDapperService.cs dan IPublisherService.cs. Keduanya diletakkan dalam folder Interfaces.

IDapperService.cs

  • Buat folder baru dengan nama Interfaces.
  • Buat file IDapperService.cs, lalu copy dan paste kode berikut.

IPublisherService.cs

  • Buat file IPulisherService.cs, lalu copy dan paste kode berikut.

File Metode

File ini mengimplementasikan metode yang dideklarasikan dalam file interface. Ada dua file metode, DapperService.cs dan PublisherService.cs. Keduanya diletakkan dalam folder Data.

DapperService.cs

  • Dalam folder Data, buat file DapperService.cs, lalu copy dan paste kode berikut.

PublisherService.cs

  • Dalam folder Data, buat file PublisherService.cs, lalu copy dan paste kode berikut.

AppContext.cs

Masih dalam folder Data, buat file AppContext.cs, lalu copy dan paste kode berikut.

File Komponen *.razor

Ada tiga file razor yang ditambahkan ke dalam folder Page, yaitu AddPublisher.razor, EditPublisher.razor, FetchPublisher.razor. Ketiganya berisi kode untuk menampilkan halaman CRUD.

AddPublisher.razor

EditPublisher.razor

FetchPublisher.razor

Modifikasi File

_Host.cshtml
Baris 13: <title>BookApp</title> diubah menjadi <title>LIBRARY</title>, sehingga judul web yang semula BookApp berubah menjadi LIBRARY.

NavMenu.razor
Modifikasi kodenya sehingga menjadi sebagai berikut.

_Imports.razor
Tambahkan namespace berikut.

Startup.cs
Tambahkan namespace berikut.

Tambahkan service berikut.

Berikut adalah struktur proyek secara keseluruhan.

Semoga berfaedah.

Referensi

--

--

M. Ramadhan
Telematika

I’m a database designer and developer, childhood in Menggala, living in Palembang.