IRONSOFTWAREHOME
PORÓWNAJ Z INNYMI KOMPONENTAMI

Neodynamic Barcode Professional vs IronBarcode: Porównanie bibliotek kodów kreskowych C#

Curtis Chau
Curtis Chau
Updated: 26 kwietnia 2026

#Scanbot SDKvs IronBarcode: Potok Kamery vs Przetwarzanie Plików

Scanbot SDK otwiera pełnoekranowy widok skanowania kodów barcode przy użyciu aparatu urządzenia. Nie ma metody BarcodeScanner.Read(imagePath). Skaner to interfejs użytkownika kamery. Jeśli BARCODE znajduje się na fakturze w formacie PDF na serwerze, Scanbot nie będzie w stanie pomóc. Nie jest to krytyka — to opis architektury.Scanbot SDKto kontroler kamery, który owija natywne API skanowania iOS, Android i UWP/WinUI 3 w komponent celowniczy. ScanbotSDKMain.Barcode.StartScannerAsync(configuration) przekazuje kontrolę do pełnoekranowego doświadczenia z kamerą, użytkownik kieruje urządzenie na kod kreskowy, SDK wykrywa go w strumieniu wideo na żywo, a wynik zostaje zwrócony do aplikacji. Ma to znaczenie, ponieważ nazwa pakietu NuGet — ScanbotBarcodeSDK.MAUI — i kategoria produktu — "barcode SDK" — mogą skłonić deweloperów do oceny go pod kątem przetwarzania dokumentów po stronie serwera, aplikacji desktopowych WPF lub API ASP.NET Core. Ten artykuł wyjaśnia różnicę architektoniczną między tymi dwoma narzędziami i pokazuje, do czego są zbudowane.

Zrozumienie Scanbot SDK

Scanbot SDK to komercyjne SDK do skanowania kodów kreskowych opracowane przez doo GmbH. Jego główna oferta .NET to ScanbotBarcodeSDK.MAUI (v8.0.0), pakiet skierowany do net9.0-android i net9.0-ios. Oddzielny pakiet, Scanbot.BarcodeSDK.Windows (v7.0.0), obejmuje aplikacje desktopowe UWP i WinUI 3 na Windows 10 1809+ (x64) z autofokusem kamery. Wszystkie obsługiwane cele są powiązane z kamerą — SDK nie będzie działać z aplikacją konsolową, biblioteką klas, projektemASP.NET Corelub aplikacją MAUI pod targetującą macOS.

Scanbot został zaprojektowany jako produkt, w którym priorytetem jest aparat. Cała powierzchnia API jest zorientowana na doświadczenie podglądu na żywo: obiekty konfiguracyjne kontrolują wygląd interfejsu użytkownika kamery, formaty, na które monitoruje strumień wideo na żywo, oraz sposób przekazywania informacji zwrotnych użytkownikowi. Biblioteka dostarcza komponent do skanowania dla aplikacji konsumenckich i przedsiębiorczych na iOS, Androida i Windows (UWP/WinUI 3).

  • Główny cel platformy: iOS i Android przez .NET MAUI, plus UWP/WinUI 3 na Windows 10 1809+ przez oddzielny pakiet Scanbot.BarcodeSDK.Windows; Cele MAUI macOS nie są obsługiwane.
  • Model wejściowy: Wyłącznie obraz z kamery urządzenia na żywo — nie ma przeciążenia ścieżką pliku, strumieniem ani tablicą bajtów
  • Projekt API: ScanbotSDKMain.Barcode.StartScannerAsync(configuration) przekazuje kontrolę pełnoekranowemu doświadczeniu z kamerą i zwraca wynik z IsSuccess i kolekcją Value.Items
  • Funkcje interfejsu użytkownika aparatu: wizjer działający w czasie rzeczywistym z nakładką obszaru skanowania, sterowanie latarką, konfiguracja proporcji obrazu, informacja zwrotna dźwiękowa i haptyczna oraz blokada orientacji
  • Obsługiwane formaty: ponad 20 formatów jednowymiarowych (Code 128, EAN-13, UPC i inne) oraz kilka formatów dwuwymiarowych (QR, DataMatrix, PDF417, Aztec)
  • Brak przetwarzania plików: Nie ma mechanizmu odczytu BARCODE-a z zapisanego pliku graficznego, strumienia danych lub dokumentu PDF
  • Brak generowania kodów kreskowych: SDK odczytuje kody kreskowe; nie produkuje ich
  • Model licencyjny: roczna opłata ryczałtowa; roczny koszt jest stały niezależnie od wolumenu skanowania
  • Zakres typów projektów: Wspierane pakiety NuGet są przeznaczone dla środowisk z kamerami (MAUI iOS/Android i UWP/WinUI 3); konsola, biblioteka klas, ASP.NET Core, WPF, WinForms,Azure Functionsi hosty serwerowe Docker są poza tym zestawem celów

Architektura potoku przetwarzania obrazu z kamery

Architektura Scanbota wymaga inicjalizacji przy uruchomieniu aplikacji, a następnie wywołania skanowania za pomocą aparatu. Metoda skanowania wymaga BarcodeScannerScreenConfiguration, ponieważ cała operacja jest oparta na kamerze:

using ScanbotSDK.MAUI;
using ScanbotSDK.MAUI.Barcode;

// In MauiProgram.cs — initialization required before any scan
// ScanbotSDKMain.Initialize(new SdkConfiguration {
//     LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
//     LoggingEnabled = false
// }, builder);

// Configure scanner appearance and behavior
var configuration = new BarcodeScannerScreenConfiguration
{
    UseCase = new SingleScanningMode()
};

// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotSDKMain.Barcode.StartScannerAsync(configuration);

if (result.IsSuccess)
{
    foreach (var item in result.Value.Items)
        Console.WriteLine($"{item.Barcode.Format}: {item.Barcode.Text}");
}

SDK przetwarza klatki wideo na żywo w czasie rzeczywistym, podświetla wykryte kody kreskowe w wizjerze i zwraca wynik po potwierdzeniu kodu kreskowego lub anulowaniu przez użytkownika. Obiekt konfiguracyjny kontroluje wygląd interfejsu użytkownika kamery, a nie sposób przetwarzania. To jest kompletny model.

Zrozumienie IronBarcode

IronBarcode to komercyjna biblioteka .NET do odczytu i generowania kodów kreskowych, opracowana przez firmę Iron Software. Działa w modelu przetwarzania plików: źródłami wejściowymi są ścieżki do plików, strumienie, tablice bajtów i dokumenty PDF. Nie ma interfejsu użytkownika kamery ani wymagań dotyczących sprzętu mobilnego. Biblioteka działa w każdym typie projektu .NET.

Statyczna metoda BarcodeReader.Read() w IronBarcode akceptuje dowolne źródło, które podaje kod wywołujący, niezależnie od tego, jak to źródło zostało wytworzone. Plik przesłany przez HTTP, plik PDF na dysku, obraz z magazynu blobów lub tablica bajtów zdekodowana z ciągu base64 to równoważne dane wejściowe. Biblioteka zwraca zbiór zdekodowanych wyników, z których każdy zawiera wartość BARCODE, format oraz numer strony, jeśli ma to zastosowanie.

  • Źródła danych wejściowych: ścieżki plików, strumienie, tablice bajtów i dokumenty PDF (natywne parsowanie plików PDF, a nie wyodrębnianie obrazów)
  • Obsługiwane typy projektów: aplikacje konsolowe, ASP.NET Core, WPF, WinForms, Blazor Server, Azure Functions, AWS Lambda, Docker, usługi Windows, .NET MAUI (wszystkie platformy docelowe, w tym Windows i macOS) oraz .NET Framework 4.6.2+
  • Generowanie kodów kreskowych: Tworzy kody kreskowe jako obrazy lub osadzone w dokumentach HTML i PDF
  • Obsługa formatów: ponad 30 formatów jednowymiarowych i pięć formatów dwuwymiarowych, w tymQR, DataMatrix, PDF417, Azteci MaxiCode
  • Ulepszenia w zakresie odczytu: korekcja błędów oparta na uczeniu maszynowym oraz odzyskiwanie uszkodzonych BarCodes z trudnych obrazów pochodzących ze świata rzeczywistego
  • Obiekt konfiguracji: BarcodeReaderOptions kontroluje zachowanie przetwarzania (szybkość, wykrywanie wielu kodów kreskowych), a nie wygląd interfejsu użytkownika kamery
  • Model licencyjny: jednorazowy zakup na czas nieokreślony w czterech wersjach (Lite 749 USD, Plus 1499 USD, Professional 2999 USD, Unlimited 5999 USD); nie jest wymagana coroczna odnowa

Porównanie funkcji

Poniższa tabela przedstawia podstawowe różnice międzyScanbot SDKa IronBarcode:

FunkcjaScanbot SDKIronBarcode
Główny przypadek użyciaSkanowanie BarCode na żywo za pomocą kamery w telefonie komórkowymOdczytywanie i generowanie BarCodes plików i dokumentów
Model wejściowyTylko obraz z kamery urządzeniaŚcieżka do pliku, strumień, tablica bajtów, PDF
Obsługa platformiOS/Android MAUI i UWP/WinUI 3 (z kamerą)Wszystkie platformy .NET i typy projektów
Generowanie kodów kreskowychNieTak
Ekstrakcja BarCodes z plików PDFNieTak
Model licencyjnyRoczna opłata ryczałtowaJednorazowa, wieczysta
Interfejs użytkownika kamery na żywoTak — dopracowany komponent wizjeraNie (do robienia zdjęć użyj MediaPicker)

Szczegółowe porównanie funkcji

FunkcjaScanbot SDKIronBarcode
Czytanie
Dane wejściowe ze ścieżki plikuNieTak
Dane wejściowe ze strumieniaNieTak
Dane wejściowe z tablicy bajtówNieTak
Pobieranie kodów kreskowych z plików PDFNieTak
Podgląd na żywo z kameryTakNie
Skanowanie ramek w czasie rzeczywistymTakNie
Automatyczne wykrywanie formatowaniaTakTak
Korekta błędów MLNieTak
Odzyskiwanie uszkodzonych kodów kreskowychNieTak
Liczba formatów 1D20+30+
Liczba formatów 2DQR, DataMatrix, PDF417, AztecQR, DataMatrix, PDF417, Aztec, MaxiCode
Generacja
Generowanie BarCode'ówNieTak
Platforma
iOS MAUITakTak
Android MAUITakTak
Windows MAUINieTak
macOS MAUINieTak
UWP / WinUI 3 (z kamerą)Tak (osobny pakiet dla Windows)Tak
Aplikacja konsolowaNieTak
ASP.NET CoreNieTak
Blazor ServerNieTak
Aplikacja WPFNieTak
Aplikacja WinFormsNieTak
Azure FunctionsNieTak
AWS LambdaNieTak
Docker / LinuxNieTak
Usługa WindowsNieTak
.NET Framework 4.6.2+NieTak
Licencjonowanie
Model licencjiRoczna opłata ryczałtowaJednorazowa, wieczysta
Opublikowane cenySkontaktuj się z działem sprzedażyTak (749–5999 USD)
Ceny hurtoweNie dotyczy (ryczałtowa opłata)Nie dotyczy (poziomy bezterminowe)

Architektura: potok kamerowy a przetwarzanie plików

Najważniejsza różnica międzyScanbot SDKa IronBarcode nie polega na braku funkcji — jest to zasadnicza różnica architektoniczna w sposobie, w jaki każda biblioteka traktuje dane wejściowe.

Podejście Scanbot SDK

Architektura Scanbota opiera się na natywnej ścieżce kamery. Gdy zostanie wywołane ScanbotSDKMain.Barcode.StartScannerAsync(configuration), biblioteka przekazuje kontrolę pełnoekranowemu doświadczeniu z kamerą, korzystając z natywnych API kamery urządzenia na iOS, Androidzie lub Windowsie. Biblioteka w sposób ciągły przetwarza klatki wideo na żywo, stosuje wykrywanie BarCode do każdej klatki i zwraca kontrolę do aplikacji wywołującej po potwierdzeniu BarCode lub zamknięciu skanera przez użytkownika. W modelu Scanbot nie ma pojęcia statycznego obrazu — dane wejściowe to zawsze strumień klatek wideo na żywo z kamery urządzenia.

Ten projekt zapewnia doświadczenie skanowania z kodami kreskowymi uwydatnionymi w czasie rzeczywistym w wizjerze, z konfigurowalnym obszarem skanowania z kontrolą proporcji, przełącznikiem latarki, dźwiękowym i wibracyjnym sprzężeniem oraz blokadą orientacji. Są to funkcje interfejsu użytkownika zbudowane z myślą o przypadku użycia kamery. Alternatywą jest to, że biblioteka jest nierozerwalnie związana ze sprzętem kamery i systemem operacyjnym, który nią steruje.

Podejście IronBarcode

IronBarcode akceptuje dowolną reprezentację binarną obrazu zawierającego kod kreskowy i zwraca zdekodowane wyniki za pomocą tej samej metody statycznej, niezależnie od tego, w jaki sposób obraz został uzyskany:

// Install: dotnet add package BarCode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// From a file path — works in any project type
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
    Console.WriteLine($"{result.Value} ({result.Format})");

// From a PDF — reads all barcodes on all pages
var pdfResults = BarcodeReader.Read("invoice.pdf");
foreach (var result in pdfResults)
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");

// From a stream — useful for HTTP file uploads
using var stream = File.OpenRead("document.pdf");
var streamResults = BarcodeReader.Read(stream);

// With processing options
var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced };
var configuredResults = BarcodeReader.Read("image.png", options);

To samo wywołanie działa w aplikacji konsolowej, kontrolerze .NET Core, funkcji Azure, formularzu WPF lub stronie MAUI.IronBarcodeodczytuje kody kreskowe z plików PDF w sposób natywny — nie jako obrazy wyodrębnione z plików PDF, ale poprzez bezpośrednią analizę struktury pliku PDF i wyszukiwanie kodów kreskowych na każdej stronie.

Zakres platform i wdrożeń

Zakres platformyScanbot SDKjest określony przez cele obsługiwane przez pakiet NuGet. Zakres działania IronBarcode odpowiada samemu środowisku uruchomieniowemu .NET.

Podejście Scanbot SDK

Pakiet Scanbot MAUI jest przeznaczony dla net9.0-android i net9.0-ios. Projekt .NET MAUI Application, który deklaruje tylko te dwa cele, zostanie zbudowany pomyślnie. Jednakże, gdy do net9.0-maccatalyst lub celWindows MAUIzostanie dodany do TargetFrameworks, odwołanie do pakietu Scanbot MAUI nie zostanie rozwiązane na tych celach. To nie jest problem z konfiguracją - pakiet MAUI nie dostarcza asemblerów dla Windows lub macOS MAUI. Komputer stacjonarny z Windows jest objęty oddzielnym pakietem Scanbot.BarcodeSDK.Windows dla aplikacji UWP/WinUI 3 z autofokusem kamery.

W efekcie zestaw pakietów .NET Scanbot celuje w MAUI mobile i UWP/WinUI 3 desktop, a nie w typy projektów serwerowych lub bez kamery na komputerach stacjonarnych.

Podejście IronBarcode

IronBarcode jest dystrybuowany jako pojedynczy pakiet NuGet, który działa poprawnie we wszystkich typach projektów .NET i docelowych frameworkach:

# Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package BarCode
SHELL

W przypadku aplikacji MAUI, które są również przeznaczone na komputery stacjonarne z systemem Windows lub macOS,IronBarcode obsługuje wszystkie cztery platformy docelowe MAUI z poziomu jednego odwołania do pakietu, bez konieczności konfiguracji zależnej od platformy. Zespoły budujące projekt MAUI, który celuje w iOS, Androida i Windows, mogą dodaćIronBarcode raz i używać BarcodeReader.Read() na wszystkich trzech platformach bez modyfikacji.

Wzorce integracji MAUI

Obie biblioteki mogą być używane w projektach .NET MAUI, ale sposób integracji różni się znacznie w zależności od modelu wejściowego każdej biblioteki.

Podejście Scanbot SDK

W projekcie MAUI przeznaczonym dla systemów iOS i Android, Scanbot udostępnia natywny wizjer aparatu wbudowany w układ nawigacyjny aplikacji. Wywołanie ScanbotSDKMain.Barcode.StartScannerAsync() przedstawia pełnoekranowy skaner, a wynik zostaje zwrócony na stronę wywołującą, gdy użytkownik zakończy lub odrzuci skan. Ta integracja daje aplikacji mobilnej UI skanowania, które wygląda jak natywne dla platformy.

Ograniczenie pojawia się, gdy projekt się rozszerza. Dodanie celu macOS lub celuWindows MAUIpowoduje błędy kompilacji na tych platformach (komputer stacjonarny z Windows jest obsługiwany przez oddzielny pakiet Scanbot.BarcodeSDK.Windows dla aplikacji UWP/WinUI 3). Dodanie bezgłowej komponenty po stronie serwera, która potrzebuje przetwarzania kodów kreskowych, wymaga oddzielnej biblioteki - zależność Scanbot nie może towarzyszyć projektowi w ramach ASP.NET Core,Azure Functionsczy Docker.

Podejście IronBarcode

W projekcie MAUI,IronBarcode współpracuje z MediaPicker platformy, aby przechwycić zdjęcia i czytać kody kreskowe z otrzymanych obrazów. Proces skanowania wykorzystuje aparat systemowy zamiast niestandardowego wizjera:

// Works on iOS, Android, Windows, andmacOS MAUItargets
// NuGet: dotnet add package BarCode
using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    foreach (var result in results)
        await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK");
}
C#

Cechą charakterystyczną jest nakładka na wizjer na żywo. Użytkownik widzi interfejs aparatu systemowego zamiast niestandardowego obszaru skanowania, co jest wystarczające w zastosowaniach biznesowych, gdzie wystarczy funkcja "wskazania i uchwycenia". Samouczek dotyczący skanera BARCODE .NET MAUI obejmuje pełny wzorzec integracji MAUI dla platform iOS i Android, w tym obsługę uprawnień i konfigurację projektu.

Model licencyjny

Scanbot SDK i IronBarcode wykorzystują zasadniczo różne struktury licencji komercyjnych.

Podejście Scanbot

Scanbot działa w oparciu o model rocznej opłaty ryczałtowej. Roczny koszt licencji nie jest liczony według ilości skanów. Zapewnia to przewidywalne roczne budżetowanie dla zespołów korzystających wyłącznie ze stabilnych wdrożeń mobilnych. Aby uzyskać dokładną wycenę, należy skontaktować się z zespołem sprzedaży Scanbot; Opublikowane dane liczbowe nie są dostępne. Obowiązek corocznego odnawiania oznacza, że licencja stanowi stały koszt operacyjny.

Podejście IronBarcode

IronBarcode jest sprzedawany jako jednorazowy zakup na czas nieokreślony w czterech wersjach: Lite za 749 USD, Plus za 1499 USD, Professional za 2999 USD i Unlimited za 5999 USD. Nie ma wymogu corocznego odnawiania licencji w celu dalszego korzystania z zakupionej wersji. W cenie zawarte są aktualizacje oprogramowania w okresie obowiązywania licencji. Ceny są publikowane na stronie internetowej Iron Software bez konieczności prowadzenia rozmów handlowych.

Przewodnik po mapowaniu API

Zespoły oceniające różnice architektoniczne między tymi dwiema bibliotekami uznają to zestawienie za przydatne do zrozumienia równoważności koncepcji:

Scanbot SDKIronBarcode
ScanbotSDKMain.Initialize(new SdkConfiguration { LicenseKey = "..." }, builder)IronBarCode.License.LicenseKey = "key"
new BarcodeScannerScreenConfiguration { UseCase = new SingleScanningMode() }new BarcodeReaderOptions()
ScanbotSDKMain.Barcode.StartScannerAsync(configuration)BarcodeReader.Read(path / stream / bytes)
result.IsSuccessSprawdź results.Any() lub results.FirstOrDefault() != null
result.Value.ItemsWartość zwracana przez BarcodeReader.Read()
item.Barcode.Formatresult.Format (IronBarCode.BarcodeEncoding)
item.Barcode.Textresult.Value
BarcodeFormat.Code128BarcodeEncoding.Code128
BarcodeFormat.QrCodeBarcodeEncoding.QRCode
BarcodeFormat.Ean13BarcodeEncoding.EAN13
Konfiguracja obszaru skanowania kamery / proporcjeBrak odpowiednika — kadrowanie obrazu obsługiwane przez MediaPicker
Konfiguracja błysku / latarki kameryBrak odpowiednika — użyj opcji MediaPicker
Wprowadzanie danych wyłącznie za pomocą kameryŚcieżka pliku, strumień, tablica bajtów lub plik PDF
iOS/Android MAUI and UWP/WinUI 3Wszystkie platformy .NET

Kiedy zespoły rozważają przejście zScanbot SDKna IronBarcode

Istnieje kilka sytuacji, w których zespoły programistów często rozważająIronBarcode jako zamiennik lub uzupełnienie Scanbot SDK.

Przetwarzanie po stronie serwera i przetwarzanie zaplecza

Aplikacja mobilna zbudowana przy użyciu Scanbot często współistnieje z komponentem po stronie serwera, który obsługuje przesyłanie dokumentów, zadania wsadowe lub punkty końcowe API. Gdy ten komponent po stronie serwera wymaga przetwarzania kodów kreskowych — wyodrębniania kodów kreskowych z przesłanych plików PDF, sprawdzania poprawności wartości kodów kreskowych w przychodzących dokumentach lub przetwarzania danych kodów kreskowych z załączonych obrazów — aplikacja Scanbot nie jest dostępna. Pakiet nie kompiluje się w .NET Core, Azure Functions, aplikacjach konsolowych ani żadnym projekcie innym niż MAUI. Zespoły w tej sytuacji muszą utrzymywać zależność od mobilnego rozwiązania do obsługi kodów kreskowych obok oddzielnego rozwiązania po stronie serwera lub oceniać, czy IronBarcode może pełnić obie role w ramach jednego pakietu.

Wymagania dotyczące aplikacji desktopowej

Główną zaletą MAUI jest często obsługa wielu platform: jedna baza kodu przeznaczona dla systemów iOS, Android i Windows. Gdy celWindows MAUIpojawia się w planie działania — albo z początkowych wymagań, albo jako późniejsze dodanie — pakiet ScanbotBarcodeSDK.MAUI nie daje się rozwiązać na tym celu, ponieważ Scanbot obejmuje Windows przez oddzielny pakiet UWP/WinUI 3 (Scanbot.BarcodeSDK.Windows), a nie przez MAUI Windows. Zespoły, które chcą mieć jedną ścieżkę buildów Windows w wielo-celowym projekcie MAUI lub potrzebują bezgłowego komponentu Windows (takiego jak usługa Windows), nie dostaną tego z zestawu pakietów Scanbot.IronBarcode dostarcza jeden pakiet, który jest rozwiązywany na celuWindows MAUIi również działa w bezgłowych kontekstach desktopowych i serwerowych.

PDF i przepływy pracy z dokumentami

Aplikacje, które przechodzą od skanowania na żywo do automatyzacji dokumentów, napotykają ograniczenia możliwości Scanbota. Odczytywanie kodów kreskowych z faktury PDF, wyodrębnianie kodów śledzących z zeskanowanej etykiety wysyłkowej lub przetwarzanie danych kodu kreskowego z zarchiwizowanego dokumentu to działania, które wykraczają poza model wejściowy Scanbot, który jest zbudowany wokół transmisji z kamery na żywo.IronBarcode obsługuje wszystkie te dane wejściowe oparte na plikach w sposób natywny. Ten sam pakiet, który działa w aplikacji mobilnej MAUI, może wyodrębniać BARCODE-sy z dokumentów PDF w ramach zadania przetwarzania w tle, bez żadnych dodatkowych zależności.

Przewidywalne koszty licencji

Roczne koszty odnowienia wymagają ponownej oceny w każdym cyklu odnowienia. Zespoły, które rozpoczęły korzystanie z Scanbota w ramach wdrożenia mobilnego na małą skalę, a następnie rozszerzyły je na szersze wdrożenie z większą liczbą użytkowników lub platform, mogą uznać opłatę roczną za mniej korzystną w miarę wzrostu zakresu. Model jednorazowej licencji wieczystej IronBarcode eliminuje obowiązek odnawiania. Zespoły przeprowadzające oceny przedłużenia licencji często zastanawiają się, czy jednorazowy zakup lepiej wpisuje się w ich długoterminowe planowanie kosztów, zwłaszcza gdy rozszerzony zakres projektu obejmuje platformy po stronie serwera lub platformy desktopowe, które i tak nie są objęte zasięgiem Scanbota.

Typowe kwestie związane z migracją

Zespoły przechodzące zScanbot SDKna IronBarcode powinny przygotować się na kilka różnic technicznych, które pojawią się podczas przejścia.

Brak odpowiednika podglądu na żywo

Wizjer kamery Scanbota działający w czasie rzeczywistym — z nakładką obszaru skanowania, ciągłym wykrywaniem i haptycznym sprzężeniem zwrotnym — nie ma bezpośredniego odpowiednika w IronBarcode. Wzorzec zastępczy używa MediaPicker.CapturePhotoAsync() MAUI do otwarcia kamery systemowej, przechwycenia zdjęcia i zwrócenia obrazu do przetwarzania. Interakcja użytkownika polega raczej na robieniu zdjęć niż na ciągłym skanowaniu. W przypadku aplikacji biznesowych (zarządzanie zapasami, logistyka, przetwarzanie dokumentów) to rozróżnienie rzadko ma znaczenie. W przypadku aplikacji konsumenckich, w których nakładka na żywo ma kluczowe znaczenie dla wrażeń z użytkowania produktu, jest to istotna różnica w zakresie UX, którą należy ocenić przed podjęciem decyzji o migracji.

Wzorzec wywołania zwrotnego zdarzenia do bezpośredniego powrotu

ScanbotSDKMain.Barcode.StartScannerAsync() Scanbota jest async i zwraca wynik z flagą IsSuccess i kolekcją Value.Items. BarcodeReader.Read()IronBarcode zwraca kolekcję bezpośrednio — nie ma obiektu opakowującego z polem statusu. Sprawdzenie powodzenia zmienia się z result.IsSuccess na results.Any() lub sprawdzenie nuli na results.FirstOrDefault().

Zmiana nazwy przestrzeni nazw Format Enum

BarcodeFormat Scanbota (np. BarcodeFormat.Code128) i BarcodeEncodingIronBarcode(np. BarcodeEncoding.Code128) zawierają podobne elementy, ale są różnymi typami w różnych przestrzeniach nazw. Kod, który przechowuje lub porównuje wartości formatów według typu enum, wymaga aktualizacji odniesienia do typu. Porównania łańcuchów na podstawie wyników .ToString() są zazwyczaj kompatybilne, ponieważ nazwy członków są podobne, ale wyraźne porównania typu enum wymagają aktualizacji do wartości BarcodeEncoding.

Dodatki do kompilacji systemu Windows

Jeśli pakiet Scanbot powodował błędy kompilacjiWindows MAUIprzed migracją, jego usunięcie rozwiązuje te problemy. Po dodaniu IronBarcode sprawdź, czy funkcje specyficzne dla systemu Windows — okna dialogowe wyboru plików, lokalne ścieżki plików, uprawnienia systemu Windows — są odpowiednio obsługiwane w kodzie aplikacji MAUI, ponieważ różnią się one od schematów dostępu do plików w systemach iOS i Android.

Dodatkowe możliwości IronBarcode

Oprócz podstawowych scenariuszy omówionych w tym porównaniu,IronBarcode oferuje funkcje, które stają się istotne w miarę rozszerzania się projektów:

  • Generowanie kodów kreskowych: Tworzenie kodów kreskowych we wszystkich głównych formatach jednowymiarowych i dwuwymiarowych jako pliki graficzne, strumienie lub treści osadzone w dokumentach HTML i PDF
  • Przetwarzanie dokumentów z wieloma BARCODAMI: odczyt wszystkich BARCODE'ów na każdej stronie wielostronicowego pliku PDF za pomocą jednego wywołania, przy czym każdy wynik zawiera numer strony, na której został znaleziony
  • Korekcja błędów za pomocą uczenia maszynowego: odzyskiwanie BARCODE-ów z uszkodzonych, częściowo zasłoniętych lub mało kontrastowych obrazów, których standardowe algorytmy wykrywania nie są w stanie odczytać
  • Przetwarzanie obrazów w partiach: przetwarzaj tablice ścieżek obrazów lub strumienie w ramach jednej operacji, aby uzyskać wysoką przepustowość w przepływie pracy z dokumentami
  • Dostosowanie opcji BarCodeReaderOptions: Kontrola prędkości odczytu, wykrywanie wielu kodów kreskowych, filtrowanie formatów i wstępne przetwarzanie obrazów w celu zrównoważenia przepustowości i dokładności w konkretnych przypadkach użycia
  • Integracja z iOS MAUI: Pełna obsługa odczytu BarCode w aplikacjachiOS MAUIprzy użyciu wzorca MediaPicker
  • Integracja z Android MAUI: Pełna obsługa odczytu BarCode w aplikacjachAndroid MAUIprzy użyciu tego samego interfejsu API co w przypadku iOS

Zgodność z platformą .NET i gotowość na przyszłość

IronBarcode obsługuje .NET 6, .NET 7, .NET 8 i .NET 9, a także .NET Framework 4.6.2 i nowsze wersje. Biblioteka jest regularnie aktualizowana zgodnie z cyklem wydawniczym platformy .NET, co zapewnia kompatybilność z platformą .NET 10, której premiera przewidziana jest na koniec 2026 roku, oraz z przyszłymi wersjami. Ponieważ biblioteka IronBarcode jest biblioteką do przetwarzania plików, a nie platformowym zestawem SDK do obsługi aparatu, nie jest zależna od interfejsów API mobilnych systemów operacyjnych ani możliwości sprzętowych, co oznacza, że jej kompatybilność rośnie wraz z ekosystemem .NET, a nie jest ograniczona cyklami wsparcia platform mobilnych.

Wnioski

Scanbot SDK i IronBarcode zajmują różne kategorie produktów, które łączy oznaczenie 'barcode SDK'. Scanbot to komponent skanowania z kamery, który dostarcza doświadczenie wizjera na żywo dla iOS i Android (przez MAUI) oraz Windows (przez UWP/WinUI 3).IronBarcode to biblioteka do przetwarzania plików i dokumentów, która odczytuje i generuje kody kreskowe w pełnym zakresie typów projektów .NET i miejsc wdrożenia. Porównanie dotyczy zakresu i architektury, a nie jakości w ramach docelowej dziedziny każdej biblioteki.

Scanbot SDK jest silne w ramach swojego zdefiniowanego zakresu. Dla aplikacji, w których użytkownik bezpośrednio kieruje kamerę urządzenia na fizyczny kod kreskowy i oczekuje wizualnego sprzężenia zwrotnego w czasie rzeczywistym - w handlu detalicznym, sprzedaży biletów, w magazynie - ścieżka kamery Scanbot i komponent wizjera są przeznaczone specjalnie do tego modelu interakcji. Jeśli wdrożenie jest ograniczone do celów sprzęgniętych z kamerą (iOS, Android, oraz UWP/WinUI 3 Windows), doświadczenie skanowania na żywo jest rdzeniem produktu, a roczna opłata ryczałtowa odpowiada budżetowi, Scanbot jest rozsądnym wyborem dla tego przypadku użycia.

IronBarcode jest odpowiednim rozwiązaniem, gdy wymagania dotyczące przetwarzania kodów kreskowych wykraczają poza scenariusz z wykorzystaniem kamery na żywo. Przetwarzanie dokumentów po stronie serwera, punkty końcoweASP.NET Coreakceptujące przesyłanie plików, aplikacje desktopowe na Windows lub macOS,Azure Functionswywoływane przez magazyn obiektów blob, projekty MAUI dla wielu platform, w tym platformy desktopowe, oraz zadania przetwarzania plików PDF w trybie wsadowym – wszystko to mieści się w zakresie działania IronBarcode. Pojedynczy pakiet instaluje się bez konfiguracji warunkowej dla platformy i zapewnia to samo wywołanie BarcodeReader.Read() niezależnie od tego, czy kod działa na urządzeniu mobilnym, serwerze, czy komputerze stacjonarnym.

Dla zespołów, których wymagania obejmują zarówno skanowanie na żywo za pomocą kamery mobilnej, jak i przetwarzanie plików lub serwerów, najbardziej przejrzystym rozwiązaniem pod względem architektury jest użycie Scanbot do obsługi interfejsu użytkownika kamery mobilnej oraz IronBarcode do wszystkich pozostałych zadań. Kosztem takiego podejścia są dwie zależności od BarCodes i dwie umowy licencyjne. Dla zespołów, które wolą korzystać z aparatu systemowego zamiast niestandardowego wizjera do skanowania mobilnego, sam IronBarcode może pokryć cały zakres projektu — od aplikacji mobilnej MAUI, przez API serwera, aż po aplikację towarzysząca na Windows — za pomocą jednego pakietu i jednej licencji.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta