Bagikan melalui


Nama Namespace

Nota

Konten ini dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2. Edisi itu diterbitkan pada tahun 2008, dan buku tersebut telah sepenuhnya direvisi pada edisi ketiga. Beberapa informasi di halaman ini mungkin sudah kedaluarsa.

Seperti pedoman penamaan lainnya, tujuan ketika penamaan namespace adalah menciptakan kejelasan yang memadai agar programmer yang menggunakan kerangka kerja dapat segera mengetahui konten namespace. Templat berikut menentukan aturan umum untuk penamaan namespace.

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

Berikut ini adalah contohnya:

Fabrikam.Math Litware.Security

✔️ Gunakan nama perusahaan sebagai awalan nama namespace untuk mencegah namespace dari perusahaan yang berbeda memiliki nama yang sama.

✔️ Gunakan nama produk yang stabil dan independen versi pada tingkat kedua nama namespace.

❌ JANGAN gunakan hierarki organisasi sebagai dasar untuk nama dalam hierarki namespace, karena nama grup dalam perusahaan cenderung berumur pendek. Atur hierarki namespace di sekitar grup teknologi terkait.

✔️ Gunakan PascalCasing, dan pisahkan komponen namespace dengan titik (misalnya, Microsoft.Office.PowerPoint). Jika merek Anda menggunakan casing nontradisional, Anda harus mengikuti casing yang ditentukan oleh merek Anda, bahkan jika menyimpang dari casing namespace normal.

✔️ PERTIMBANGKAN untuk menggunakan nama namespace jamak jika diperlukan.

Misalnya, gunakan System.Collections, bukan System.Collection. Namun, nama merek dan akronim adalah pengecualian untuk aturan ini. Misalnya, gunakan System.IO, bukan System.IOs.

❌ JANGAN gunakan nama yang sama untuk namespace dan jenis di namespace tersebut.

Misalnya, jangan gunakan Debug sebagai nama namespace lalu berikan juga kelas bernama Debug di namespace yang sama. Beberapa kompilator mengharuskan jenis tersebut sepenuhnya memenuhi syarat.

Namespace dan Konflik Nama Tipe

❌JANGAN memperkenalkan nama jenis generik seperti Element, , NodeLog, dan Message.

Ada kemungkinan yang sangat tinggi bahwa melakukan hal tersebut akan menyebabkan konflik penamaan tipe dalam skenario umum. Anda harus memenuhi syarat nama jenis generik (FormElement, , XmlNode, EventLogSoapMessage).

Ada panduan khusus untuk menghindari konflik nama tipe untuk berbagai kategori namespace.

  • Namespace model aplikasi

    Namespace milik model aplikasi tunggal sangat sering digunakan secara bersama, tetapi hampir tidak pernah digunakan dengan namespace model aplikasi lain. Misalnya, System.Windows.Forms namespace sangat jarang digunakan bersama dengan System.Web.UI namespace. Berikut ini adalah daftar grup namespace layanan model aplikasi terkenal:

    System.Windows* System.Web.UI*

    ❌ JANGAN beri nama yang sama untuk jenis di namespace dalam satu model aplikasi.

    Misalnya, jangan tambahkan jenis bernama Page ke System.Web.UI.Adapters namespace, karena System.Web.UI namespace sudah berisi jenis bernama Page.

  • Namespace infrastruktur

    Grup ini berisi namespace yang jarang diimpor selama pengembangan aplikasi umum. Misalnya, .Design namespaces terutama digunakan saat mengembangkan alat pemrograman. Menghindari konflik dengan tipe di namespace ini tidak krusial.

  • Nama ruang inti

    Namespace inti mencakup semua System namespace, tidak termasuk namespace model aplikasi dan namespace infrastruktur. Namespace layanan inti meliputi, antara lain, System, System.IO, System.Xml, dan System.Net.

    ❌ JANGAN berikan nama jenis yang akan bertentangan dengan tipe apa pun di namespace Inti.

    Misalnya, jangan pernah gunakan Stream sebagai nama jenis. Ini akan berkonflik dengan System.IO.Stream, jenis yang sangat umum digunakan.

  • Grup-grup namespace teknologi

    Kategori ini mencakup semua namespace dengan dua node namespace pertama yang sama ((<Company>.<Technology>*), seperti Microsoft.Build.Utilities dan Microsoft.Build.Tasks. Penting bahwa jenis milik satu teknologi tidak bertentangan satu sama lain.

    ❌ JANGAN tetapkan nama jenis yang akan berkonflik dengan jenis lain dalam satu teknologi.

    ❌ JANGAN memperkenalkan konflik nama jenis antara jenis di namespace layanan teknologi dan namespace model aplikasi (kecuali teknologi tidak dimaksudkan untuk digunakan dengan model aplikasi).

© Porsi 2005, 2009 Microsoft Corporation. Seluruh hak cipta dilindungi.

Dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2 oleh Krzysztof Cwalina dan Brad Abrams, diterbitkan 22 Okt 2008 oleh Addison-Wesley Professional sebagai bagian dari Seri Pengembangan Microsoft Windows.

Lihat juga