Cara bekerja dengan GUID di C # 8

Saat bekerja dalam aplikasi, Anda mungkin sering perlu menggunakan Pengenal Unik Secara Global (GUID). Pengidentifikasi unik seperti kunci utama dalam database SQL memastikan bahwa objek penting seperti pelanggan dan faktur tidak digandakan atau ditimpa. Tanpa pengenal unik, kami tidak dapat mencegah kehilangan data atau memastikan integritas data aplikasi kami. 

Pengenal Unik Secara Global atau GUID mewakili nomor identifikasi yang sangat besar - angka yang sangat besar sehingga dijamin secara matematis menjadi unik tidak hanya dalam satu sistem seperti database, tetapi juga di beberapa sistem atau aplikasi terdistribusi. Artikel ini membahas mengapa kami membutuhkan GUID dan bagaimana kami dapat bekerja dengan GUID di C # 8.0.

Untuk bekerja dengan contoh kode yang disediakan dalam artikel ini, Anda harus menginstal Visual Studio 2019 di sistem Anda. Jika Anda belum memiliki salinannya, Anda dapat mengunduh Visual Studio 2019 di sini. 

Buat proyek aplikasi konsol di Visual Studio

Pertama, mari buat proyek Aplikasi Konsol Inti .NET di Visual Studio. Dengan asumsi Visual Studio 2019 diinstal di sistem Anda, ikuti langkah-langkah yang diuraikan di bawah ini untuk membuat proyek aplikasi konsol inti .NET baru di Visual Studio.

  1. Luncurkan Visual Studio IDE.
  2. Klik "Buat proyek baru".
  3. Di jendela "Buat proyek baru", pilih "Aplikasi Konsol (.NET Core)" dari daftar template yang ditampilkan.
  4. Klik Next.
  5. Di jendela "Configure your new project" yang ditampilkan berikutnya, tentukan nama dan lokasi untuk proyek baru tersebut.
  6. Klik Buat.

Ini akan membuat proyek aplikasi konsol .NET Core baru di Visual Studio 2019. Kami akan menggunakan proyek ini untuk bekerja dengan GUID di bagian selanjutnya dari artikel ini. Perhatikan bahwa kami akan menggunakan C # 8 di sini, jadi Anda mungkin ingin memperbarui versi bahasa dalam proyek Anda.

Mengapa kita membutuhkan GUID?

Bayangkan Anda memiliki aplikasi tempat penjualan yang tersedia dalam mode online dan offline di aplikasi seluler Anda. Asumsikan bahwa aplikasi Anda menyediakan nomor ID yang dibuat secara otomatis mulai dari 1. Bagaimana Anda dapat menggabungkan data offline saat konektivitas pulih? Bagaimana jika nomor ID Anda telah dibuat di kedua mode? Bisa saja ada tabrakan, bukan? Bagaimana Anda menangani nomor ID duplikat? Anda pasti bisa menangani ini tetapi Anda harus menulis banyak kode - yang bukan itu yang ingin Anda lakukan.

Di sinilah GUID datang untuk menyelamatkan. GUID adalah angka raksasa - panjang 128 bit - dan hampir unik. Mengapa hampir unik? Mengapa kita tidak bisa mengatakan itu unik? Pada dasarnya, jumlah GUID yang memungkinkan sangat besar sehingga kemungkinan tabrakan sangat kecil. Meski demikian, kemungkinan tabrakan tidak nol. 

Anda dapat memanfaatkan GUID dengan menjadikannya kunci utama untuk tabel database Anda. Menggunakan GUID bahkan akan membantu Anda menghindari konflik penggabungan saat Anda menggabungkan dua atau lebih database. Keuntungan lain dari GUID adalah Anda dapat membuatnya secara offline - Anda tidak perlu terhubung ke jaringan atau internet.

Bagaimana GUID direpresentasikan?

Berikut ini adalah contoh GUID. Perhatikan bahwa GUID biasanya berukuran 128 bit dan direpresentasikan dalam heksadesimal.

eaa24756-3fac-4e46-b4bb-074ff4f5b846

GUID diatur sebagai urutan terdefinisi dengan baik dari 32 digit heksadesimal yang dikelompokkan ke dalam potongan 8-4-4-4-12. Karenanya Anda dapat memiliki maksimal 2 ^ 128 GUID.

Buat GUID di C # 8

Di bagian ini kita akan mempelajari bagaimana kita dapat bekerja dengan GUID di C #. Anda dapat membuat GUID di .NET menggunakan struct Panduan yang tersedia sebagai bagian dari ruang nama Sistem. Berikut adalah cara termudah untuk menghasilkan GUID di C #. Tulis kode berikut dalam metode Main () dari file Program.cs dalam proyek yang Anda buat sebelumnya.

Panduan obj = Guid.NewGuid ();

Console.WriteLine ("Panduan yang baru dibuat adalah:" + obj.ToString ());

Console.ReadKey ();

Buat GUID kosong di C # 8

Karena Guid adalah sebuah struct, ini adalah tipe nilai dan karenanya Anda tidak dapat menyetelnya ke null. Untuk membuat Guids kosong Anda dapat menulis kode berikut.

Panduan id = Panduan baru ();

jika (id == Guid.Empty)

Console.WriteLine ("Panduan ini kosong");

A Guid.Empty memiliki nilai 00000000-0000-0000-0000-000000000000. Anda dapat memanfaatkan GUID kosong untuk membandingkannya dengan objek GUID lain untuk menentukan apakah nilainya bukan nol. Cuplikan kode berikut menggambarkan hal ini. 

if (guid! = Guid.Empty) { 

  // Objek GUID berisi nilai bukan nol

}

lain

{

  // Objek GUID kosong

Berikut adalah metode ekstensi sederhana yang menentukan apakah GUID adalah Guid.Empty. 

public static bool IsNullOrEmpty (panduan Panduan ini)

{

  kembali (guid == Guid.Empty);

Anda bahkan dapat memeriksa apakah GUID nullable Anda adalah null menggunakan metode ekstensi berikut. 

public static bool IsNullOrEmpty (Panduan ini? guid)

{

  if (guid.HasValue)

    if (guid == default (Guid))

        kembali benar;

    return false;

}

Perhatikan bahwa default (Guid) sama dengan Guid.Empty.

Ubah GUID menjadi string di C # 8

Anda bahkan dapat mengubah GUID menjadi string. Cuplikan kode berikut menunjukkan bagaimana Anda dapat mengubah GUID kosong menjadi string.

string str = Guid.Empty.ToString ();

Console.WriteLine (str);

Perhatikan bahwa ada satu peringatan utama untuk menggunakan GUID: Anda mungkin mengalami benturan. Perhatikan juga bahwa GUID mengambil beberapa ruang dan tidak dibuat secara berurutan. Namun, Anda dapat membuat GUID Anda unik secara terprogram dengan menggunakan integer 128-bit yang dapat direpresentasikan menggunakan dua nilai ULong dan meningkatkannya secara berurutan. 

Anda mungkin ingin sering mengonversi GUID menjadi string di aplikasi Anda. Anda mungkin perlu melakukan ini untuk mengikat data GUID ke kontrol data Anda atau untuk meneruskan GUID ke antarmuka pengguna. Anda bahkan mungkin ingin mengonversi objek GUID menjadi string untuk memformat data GUID sesuai kebutuhan Anda.

Anda dapat membuat GUID dengan beberapa cara berbeda. Ini termasuk acak, berbasis waktu, berbasis perangkat keras, dan berbasis konten (yaitu, berdasarkan nilai hash MD5 atau SHA-1 dari sebuah data). Saya akan memandu Anda melalui semua cara ini dan fitur lanjutan GUID lainnya di artikel mendatang di sini.

Bagaimana melakukan lebih banyak di C #

  • Kapan menggunakan kelas abstrak vs. antarmuka di C #
  • Bagaimana bekerja dengan AutoMapper di C #
  • Cara menggunakan ekspresi lambda di C #
  • Cara bekerja dengan delegasi Action, Func, dan Predicate di C #
  • Bagaimana bekerja dengan delegasi di C #
  • Bagaimana menerapkan logger sederhana di C #
  • Bagaimana bekerja dengan atribut di C #
  • Bagaimana bekerja dengan log4net di C #
  • Bagaimana menerapkan pola desain repositori di C #
  • Bagaimana bekerja dengan refleksi di C #
  • Bagaimana bekerja dengan filesystemwatcher di C #
  • Bagaimana melakukan inisialisasi malas di C #
  • Bagaimana bekerja dengan MSMQ di C #
  • Bagaimana bekerja dengan metode ekstensi di C #
  • Bagaimana kami ekspresi lambda di C #
  • Kapan menggunakan kata kunci volatile di C #
  • Cara menggunakan kata kunci hasil di C #
  • Bagaimana menerapkan polimorfisme di C #
  • Cara membuat penjadwal tugas Anda sendiri di C #
  • Bagaimana bekerja dengan RabbitMQ di C #
  • Bagaimana bekerja dengan tupel di C #
  • Menjelajahi metode virtual dan abstrak di C #