C#'ta Data Matrix Üretici -- Kod Örnekleriyle Tam Eğitim
Data Matrix barkodları, çok küçük bir fiziksel alana önemli miktarda kodlanmış veri sığdırır, bu da onları sınırlı alanın olduğu stok yönetim sistemlerindeki parçaları etiketlemek, elektronik bileşenleri işaretlemek ve hatta ilaçları etiketlemek için tercih edilen seçenek haline getirir. Bu kılavuz, IronBarcode kullanarak C# ile Data Matrix barkodlarını nasıl oluşturacağınızı, görünümlerini özelleştirip farklı veri türlerini kodlayarak çeşitli dosya formatlarına nasıl ihraç edebileceğinizi açıklıyor -- bunların tümü basit, üretime hazır kodla yapılır.
Data Matrix Barkodlarını Özel Yapan Nedir?
Data Matrix barkodları, siyah ve beyaz noktaların sıra ve sütunlar halinde düzenlendiği bir ızgarada veri kodlayan 2D sembollerdir. UPC veya EAN gibi geleneksel doğrusal barkodlardan farklı olarak, 10 x 10 modüller kadar küçük bir alanda 2.335 alfasayısal karakter ya da 3.116 sayı basamağını depolayabilirler. Dahili Reed-Solomon hata düzeltme sistemi modern barkod tarayıcıları ile %30'a kadar sembol hasarını bile doğru şekilde okumalarına olanak tanır.
Bu özellikler, onları küçük parçaları, posta barkodlarını ve elektronik bileşenleri işaretlemek için ideal kılar. Ayrıca sağlık hizmetleri ve lojistik merkezlerinde etiketleme için de kullanılır. Sağlık sektörü, ilaç takibi için GS1 Data Matrix standartlarına güvenirken, üreticiler üretim hatlarında bu barkodları dünya çapında ürünleri tanımlamak için yerleştirir. Tek bir barkodun bu kadar çok veri tutabilmesi nedeniyle, artık endüstriler arasında eksiksiz uygulama izlenebilirliği sağlamak isteyenler tarafından uluslararası olarak kullanılıyor.
ISO/IEC 16022 standardı, Data Matrix kodlamasını yönetir ve IronBarcode'un varsayılan olarak kullandığı ECC200 varyantını tanımlar. ECC200, en verimli hata düzeltmeyi ve herhangi bir Data Matrix sürümünün en yüksek veri kapasitesini sağlar, bu da onu yeni uygulamalar için doğru seçim yapar.
| Biçim | Tür | Maksimum Karakter | Hata Düzeltme | Tipik Kullanım Durumu |
|---|---|---|---|---|
| Veri Matrisi (ECC200) | 2D | 2.335 alfasayısal | Reed-Solomon (~%30) | İlaç, elektronik, lojistik |
| QR Kodu | 2D | 4.296 alfasayısal | Reed-Solomon (en fazla %30) | URL'ler, pazarlama, ödemeler |
| UPC-A | 1D | 12 basamak | None | Perakende ürün tanımlama |
| Kod 128 | 1D | ~50 karakter | Yalnızca kontrol toplamı | Nakliye, genel lojistik |
Bir C# Projesine Barkod Kütüphanesi Nasıl Kurulur?
NuGet Paket Yöneticisi kullanarak IronBarcode'u yüklemek bir dakikadan kısa sürer. Visual Studio'da Paket Yöneticisi Konsolunu açın ve çalıştırın:
Install-Package BarCode

Alternatif olarak, NuGet Paket Yöneticisi GUI'sinde Iron Software tarafından BarCode arayın. Yüklemeden sonra, C# dosyanıza ad alanını ekleyin:
using IronBarCode;
using IronBarCode;
Imports IronBarCode
Yapılması gereken tüm ayar bu. IronBarcode, tüm karmaşık Data Matrix kodlamasını dahili olarak, ISO/IEC 16022 standardına uygun şekilde işler, böylece uygulama mantığına odaklanabilirsiniz. Çevrimdışı kurulum veya özel paket kaynakları gibi ek ayarlar için IronBarcode kurulum kılavuzuna ve ileri düzey NuGet kurulum sayfasına bakın.
Desteklenen Hedef Çerçeveler
IronBarcode, .NET 10, .NET 8, .NET 6, .NET 5, .NET Standard 2.0 ve .NET Framework 4.6.2 ve üzeri sürümleri hedefler. Projeniz bu çerçevelerden birini hedef alıyorsa, NuGet paketi ek konfigürasyon gerektirmeden yüklenir.
İlk Data Matrix Barkodunuzu Nasıl Oluşturursunuz?
Data Matrix barkodu oluşturmak sadece bir satır kod gerektirir:
// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);
// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);
// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
' Create a Data Matrix barcode with product information
Dim myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix)
' Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png")
Bu kod, metni PROD-12345-2024 kodlayarak bir Veri Matrisi barkodu oluşturur ve bir PNG dosyası olarak kaydeder. BarcodeWriterEncoding.DataMatrix parametresi IronBarcode'un Veri Matrisi formatını kullanmasını söyler. Oluşan barkod otomatik olarak ECC200 spesifikasyonunu uygular, bu da dahili hata düzeltme içerir ve gerçek dünya koşullarında güvenilir tarama sağlar.
Barkod Çıkışı

Uygulamalarda anında kullanım için, barkodu bir bitmap olarak alabilir veya doğrudan PDF'ye ihraç edebilirsiniz:
// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();
// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();
// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
' Get barcode as a bitmap for direct display in a UI control
Dim barcodeBitmap = myBarcode.ToBitmap()
' Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf")
IronBarcode, PNG, JPEG, BMP, GIF, TIFF, SVG ve PDF formatlarına ihraç etmeyi destekler. Ayrıca mevcut PDF belgelerine barkodlar oluşturarak ve damgalayarak onları satın alma emirleri, faturalar veya nakliye belgeleri içine yerleştirebilirsiniz.
Data Matrix Barkodunda Hangi Veri Türlerini Kodlayabilirsiniz?
Data Matrix, her biri farklı bir karakter seti için optimize edilmiş çeşitli kodlama modlarını destekler. IronBarcode, sağladığınız içeriğe göre en verimli modu otomatik olarak seçer:
// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");
// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");
// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");
// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");
// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");
// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");
// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
Imports System
' Encode alphanumeric product codes
Dim productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix)
productCode.SaveAsImage("product-code.png")
' Encode numeric serial numbers (numeric mode uses less space)
Dim serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix)
serialNumber.SaveAsImage("serial-number.png")
' Encode URLs for product landing pages or support portals
Dim urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix)
urlCode.SaveAsImage("url-datamatrix.png")
' Encode Unicode text for international applications
Dim unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix)
unicodeBarcode.SaveAsImage("unicode-datamatrix.png")
Sayısal veri, alfasayısal metne kıyasla barkod boyutunu azaltan kompakt bir kodlama modu kullanır. İkili kodlama, manuel yapılandırma gerektirmeden özel karakterleri ve Unicode metni işler. IronBarcode, en verimli kodlama modunu otomatik olarak seçer, bu yüzden bunu açıkça belirtmeniz gerekmez.
Çıktı
Burada, dört veri türü de başarıyla geçerli Data Matrix barkodlarına kodlanmıştır.

Kodlama seçenekleri ve karakter seti desteği hakkında daha ayrıntılı bilgi için IronBarcode kodlama dökümantasyonu ve barkod veri türü referansına bakın.
Data Matrix Barkodunun Görünümünü Nasıl Özelleştirirsiniz?
IronBarcode, barkod özelleştirme seçenekleri sunar ve boyut, renk, açıklamalar ve kenar boşluklarını kontrol etmenizi sağlar:
// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);
// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);
// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");
// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);
customBarcode.SaveAsImage("custom-datamatrix.png");
// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);
// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);
// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");
// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);
customBarcode.SaveAsImage("custom-datamatrix.png");
' Create barcode with custom styling
Dim customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix)
' Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500)
' Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue)
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray)
' Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024")
' Set margins to preserve the required quiet zone
customBarcode.SetMargins(10)
customBarcode.SaveAsImage("custom-datamatrix.png")
Bu özelleştirmeler, kurumsal markalama gereksinimlerine veya belirli etiketleme standartlarına uyum sağlamaya yardımcı olur. ResizeTo metodu, her tarayıcı mesafesinde Veri Matrisi okunabilirliği için çok önemli olan doğru modül oranlarını korur. Renk değişiklikleri, renkli etiketler veya metalik materyaller gibi özel baskı süreçleri veya alt tabaka kısıtlamalarına uyum sağlar. SetMargins tarafından belirlenen sessiz bölge boşluğu, ISO/IEC 16022 spesifikasyonunda tanımlanan minimum boşluk gereksinimini karşılar.

Doğru Barkod Boyutunu Seçmek
Bir Data Matrix barkodunun minimum okunabilir boyutu tarayıcı ve baskı çözünürlüğüne bağlıdır. Genel amaçlı tarama için en az 0,3 mm modül boyutu önerilir. 300 DPI baskı çözünürlüğünde, 500 piksel barkod yaklaşık 42 mm kare ölçer -- bu, güvenilir el tipi tarama için yeterlidir. Daha küçük etiketler için, sembolün taranabilir boyut aralığında kalması için DPI'yi arttırın veya veri yükünü azaltın.
Bir Dizi Barkodu Toplu Olarak Nasıl Oluşturursunuz?
Toplu üretim, geniş bir Data Matrix kod seti oluşturmak için gereken işi azaltır: üretim süreçleri, nakliye etiketleri veya seri numaralı envanter için ideal bir model:
// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };
foreach (string id in productIds)
{
var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
batchBarcode.ResizeTo(150, 150);
batchBarcode.AddAnnotationTextBelowBarcode(id);
// Save each barcode with a unique filename
string filename = $"barcode_{id.Replace("-", "_")}.png";
batchBarcode.SaveAsImage(filename);
}
// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };
foreach (string id in productIds)
{
var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
batchBarcode.ResizeTo(150, 150);
batchBarcode.AddAnnotationTextBelowBarcode(id);
// Save each barcode with a unique filename
string filename = $"barcode_{id.Replace("-", "_")}.png";
batchBarcode.SaveAsImage(filename);
}
' Generate barcodes for a batch of products
Dim productIds As String() = {"PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005"}
For Each id As String In productIds
Dim batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix)
batchBarcode.ResizeTo(150, 150)
batchBarcode.AddAnnotationTextBelowBarcode(id)
' Save each barcode with a unique filename
Dim filename As String = $"barcode_{id.Replace("-", "_")}.png"
batchBarcode.SaveAsImage(filename)
Next
Bu model, benzersiz bir tanımlayıcıya sahip geniş etiket setleri gerektiren lojistik ve sağlık iş akışlarına uygundur. Web uygulamaları için, barkodları doğrudan PDF belgeleri üzerine damgalamak veya bayt dizileri olarak yayınlamak, ara dosyaları kaydetmeden gerçek zamanlı etiket oluşturulmasını sağlar.

Async ve Çok İşlemci İle Büyük Toplular İçin İşleme
Binlerce barkod oluştururken, senkron işlem bir darboğaz haline gelir. IronBarcode, birden fazla CPU çekirdeği üzerinden paralel olarak barkod oluşturmanıza olanak tanıyan async ve çok iş parçacıklı işleme yetenekleri sunar. 10.000 etiketlik bir toplu işlem için, paralel işlem, ardışık döngülere kıyasla toplam oluşturma zamanını bir büyüklük derecesinde azaltabilir.
Yüksek verimlilik senaryoları için binlerce bireysel görüntü dosyasını kaydetmektense IronBarcode'un PDF damgalama API'si kullanılarak barkodları PDF sayfalarına gruplayarak depolama alanı yükünü azaltmayı dikkate alın.
Data Matrix Barkodlarını Nasıl Okur ve Doğrularsınız?
Barkod oluşturmak sadece işin yarısıdır -- tarayıcıların onları doğru okuyabilmesiyle kalite döngüsünü kapatıyorsunuz. IronBarcode, oluşturduğunuz bir görüntüyü hemen deşifre etmenizi sağlayan yerleşik bir barkod okuyucu içerir:
// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");
// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
Console.WriteLine($"Decoded value: {result.Value}");
Console.WriteLine($"Biçim: {result.BarcodeTür}");
}
// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");
// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
Console.WriteLine($"Decoded value: {result.Value}");
Console.WriteLine($"Biçim: {result.BarcodeTür}");
}
Imports System
' Generate a barcode
Dim generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix)
generated.SaveAsImage("verify-test.png")
' Read it back to confirm correct encoding
Dim results = BarcodeReader.Read("verify-test.png")
For Each result In results
Console.WriteLine($"Decoded value: {result.Value}")
Console.WriteLine($"Biçim: {result.BarcodeTür}")
Next
Bu ileri-geri doğrulama modeli, reçeteli ilaç paketlerindeki seri barkodların hem makineyle okunabilir hem de doğru formatta olmasını gerektiren DSCSA düzenlemesi gibi düzenlemelere tabi sektörlerde özellikle değerlidir. Etiketler üretim hattına ulaşmadan önce kodlama hatalarını yakalamak için üretim hattına ardışık okuma kontrolü ekleyin.
Daha ileri okuma senaryoları için, IronBarcode okuma dökümantasyonu ve PDF'den barkod okuma kılavuzunu inceleyin.
Yaygın Tarama Uyumluluğu Dikkate Alınması Gerekenler
Farklı tarayıcı yazılım sürümleri, sessiz alanlar ve modül kontrastı ile farklı şekilde Data Matrix sembollerini yorumlar. Eski el tipi tarayıcıları hedeflerken, modül boyutunu arttırın, yüksek kontrastlı siyah beyaz renkler kullanın ve sessiz alanı en az iki modül genişliğinde tutun. GS1 Uygulama Tanımlayıcı kılavuzu, partinin numaraları, son kullanma tarihleri ve GTIN'ler gibi tedarik zinciri belirteçlerinin aynı Data Matrix sembolünde nasıl kodlandığını gösterir.
Sıradaki Adımlarınız Neler?
IronBarcode ile C# Dilinde Veri Matrisi barkod oluşturma, tutarlı bir model izler: NuGet paketini yükleyin, BarcodeWriter.CreateBarcode ile BarcodeWriterEncoding.DataMatrix çağırın, gerekli özelleştirmeleri uygulayın ve hedef formatınıza dışa aktarın. Aynı API, tek bir barkod prototipinden yüksek hacimli toplu iş hatlarına kadar her şeyi işler.
Bunu daha ileri taşımak için önerilen yollar şunlardır:
- Barkod okuma araştırın: IronBarcode okuma kılavuzu, resimlerden, PDF'lerden ve canlı kamera akışlarından barkodları deşifre etmeyi kapsar.
- Diğer 2D formatları deneyin: IronBarcode ayrıca QR kodları, PDF417, Aztek ve tüm büyük 1D formatlarını aynı API kullanarak üretir.
- Barkodları belgelere gömün: PDF damgalama öğreticisi mevcut PDF'lere programlı olarak barkod eklemenin nasıl olduğunu gösterir.
- Async işleme ile ölçeklendirin: Büyük toplu iş yüklerini paralel hale getirmek için async ve çok iş parçacıklı kılavuzu gözden geçirin.
- Lisansları gözden geçirin: IronBarcode lisanslama sayfası, geliştiriciden OEM yeniden dağıtıma kadar seçenekleri listeler.
Ücretsiz bir deneme başlatın ve tüm özellikleri sınırlama olmadan test edin veya tam IronBarcode dökümantasyonunu detaylı API referansları ve ek kod örnekleri için inceleyin.
Sıkça Sorulan Sorular
Veri Matrisi barkodu nedir?
Bir Veri Matrisi barkodu, ISO/IEC 16022 standardı tarafından yönetilen bir 2D semboldür. Küçük bir ızgarada 2.335 alfasayısal karakteri veya 3.116 rakamı kodlar. İlaç etiketleme, elektronik işaretleme ve envanter yönetiminde yaygın olarak kullanılır.
C#'te bir Veri Matrisi barkodu nasıl oluşturulursunuz?
Veri diziğinizle birlikte BarcodeWriter.CreateBarcode ve BarcodeWriterEncoding.DataMatrix'i çağırın, sonra sonucun SaveAsImage veya SaveAsPdf'ini çağırın. IronBarcode, ECC200 kodlamasını ve hata düzeltimini otomatik olarak işler.
Veri Matrisi oluşturma için IronBarcode kullanmanın faydaları nelerdir?
IronBarcode tek satır kodla ECC200 Veri Matrisi barkodları oluşturur, otomatik kodlama modu seçimini işler ve ek bağımlılıklar olmadan PNG, PDF, SVG ve diğer formatlara aktarır.
IronBarcode, Veri Matrisi barkodlarını farklı dosya formatlarına aktarabilir mi?
Evet. IronBarcode, Veri Matrisi barkodlarını PNG, JPEG, BMP, GIF, TIFF, SVG ve PDF'ye aktarır. Ayrıca barkodları mevcut PDF belgelerinin üzerine doğrudan ekleyebilirsiniz.
IronBarcode ile Veri Matrisi barkodları özelleştirmek mümkün müdür?
Evet. IronBarcode, boyutlar için ResizeTo'yu, renk için ChangeBarCodeColor ve ChangeBackgroundColor'ı, insan tarafından okunabilir metin için AddAnnotationTextBelowBarcode'u ve sessiz bölge kontrolü için SetMargins'ı sağlar.
Veri Matrisi barkodları hangi endüstriler için özellikle uygundur?
Veri Matrisi barkodları, DSCSA uygunluğu için ilaçlarda, bileşen tanımlama için elektronikte, paket izleme için lojistikte ve GS1 uyumlu ilaç etiketleme için sağlıkta yaygın olarak kullanılır.
IronBarcode hangi Veri Matrisi sürümünü oluşturur?
Varsayılan olarak IronBarcode, ECC200 Veri Matrisi barkodlarını oluşturur. ECC200, veri kapasitesi ve Reed-Solomon hata düzeltmesi açısından en yüksek olan mevcut ISO/IEC 16022 standardı sürümüdür.
Diğer 2D kodlar üzerinde Veri Matrisi barkodları neden kullanılır?
Veri Matrisi barkodları, küçük fiziksel alanlarda yüksek veri yoğunlukları nedeniyle, yüzde 30'a kadar sembol hasarına dayanıklı Reed-Solomon hata düzeltmesi ve dünya çapında düzenlenmiş endüstrilerde tanınan ISO/IEC standartlaştırması nedeniyle tercih edilir.




