Technical FAQs
Is .NET or .NET Core the better bet for application development? Both frameworks are designed and supported by Microsoft and offer the ability to create apps capable of using multiple languages, abilities, and libraries, but they’re not the same. .NET Core is rapidly becoming the language of choice. For most app developers, .NET Core comes out ahead of its .NET counterpart.
To understand why, let’s break down both .NET and .NET Core basics, examine the rise of .NET Core deployments, and dig into some key .NET Core benefits.
What is .NET?
Originally developed in the late 1990s and known as Next Generation Windows Services (NGWS), .NET reached beta release in 2000. As noted by Microsoft, .NET helps streamline application creation by allowing developers to write apps in C#, F#, or Visual Basic. By using a common language runtime (CLR) and class library, .NET manages system resources such as memory, thread execution, code execution, and security validation. This allows apps written in one language to talk with code written in other languages, significantly reducing the potential for interoperability issues.
Despite the benefits offered by .NET and work by Microsoft to standardize the software stack, concerns emerged among developers around the proprietary nature of .NET, especially in the realm of software patents. Microsoft has since changed its development approach to more closely follow open-source development models.
What is .NET Core?
.NET Core is an evolution of .NET that delivers both cross-code and cross-platform support. While Microsoft designed .NET to support Windows-based applications, .NET Core applications run on Windows, Linux, and macOS. It also uses MIT and Apache 2 licenses to deliver true open-source architecture and ensure consistency across operating environments.
While .NET remains the more popular framework by sheer volume of app development, .NET Core is quickly gaining ground. A recent survey found that .NET Core is now one of the “most loved” frameworks by developers.
Why is .NET Core becoming popular?
So, what’s driving the adoption of the .NET Core framework over .NET? Several factors now contribute to this uptake, including:
- Linux & Windows Deployment – One of the biggest reasons .NET Core is gaining popularity is due to its ability to deploy in both Linux and Windows. This provides vast cost savings to development teams.
- Run-Time and Performance Improvements – Whether your application users are internal employees or external partners and customers, runtime speed and performance concerns are always critical to adoption. Since Core is the future of the .NET platform, all future performance improvements will be implemented there and most will not be present in .NET Framework. .NET Core enables APIs and applications to serve up application interfaces and data faster, regardless of the mobile, IoT, or desktop device which is interacting with it.
- Community – Because .NET Core follows an open-source development model, there’s a large (and growing) community of devs and designers now supporting its ongoing evolution, allowing IT teams to leverage prebuilt .NET Core code rather than building their own from scratch.
.NET vs. .NET Framework
Beyond increased popularity driven by the shift in software development and standardization, the .NET Core framework also offers key benefits such as:
- Ongoing Improvements – In September 2019, Microsoft released version 3.0 of .NET Core and followed it up with version 3.1 in November of the same year. In addition, the company plans to release a new version every year and remove the “Core” distinction between the two frameworks to deliver increased interoperability.
- Improved Security – From security-specific APIs to Microsoft’s Secret Manager and the Azure Key Vault Provider along with straightforward support for two-factor authentication (2FA), .NET Core improves application security without increasing complexity.
- Cloud-Based Development Support – With cloud now the de facto framework for everything from mobile applications, Internet of Things (IoTs), and responsive web applications, .NET Core makes it easy for developers to design cloud-native applications across multiple platforms and devices.
- Easy Updates – .NET Core updates are easily managed and applied, allowing developers to spend more time building great applications instead of dealing with complex and convoluted service upgrades.
- Cross-Platform Code – .NET Core code can run on not only Windows but Linux platforms, which can help greatly reduce your cloud deployment costs. Combined with Docker, developers are able to leverage a greater amount of modularity and flexibility than ever before.
The Accusoft Advantage
To help companies compete on the cutting edge of app development and integration, Accusoft is making .NET Core available for specific products, starting with Barcode Xpress for .NET Core. With just a few lines of code, companies can deploy multi-platform, open-source support for industry-leading barcode recognition. From reading damaged, broken, and incorrect barcodes to scanning multiple barcodes on one document in milliseconds, Barcode Xpress makes it possible to easily integrate cutting-edge barcode functionality into any application across any platform.
Several of our other SDKs are on deck for .NET Core capabilities. While .NET broke new ground for interoperable frameworks, .NET Core offers the next iteration of interoperable development with cloud-based, cross-platform support for applications at scale. Learn more about our .NET Core plans here.
Barcodes remain the basis for product identification and tracking, improving both operational insight and the end-user experience. From common applications in grocery stores to more advanced deployments in warehouses, legal firms, and even post-secondary schools, barcodes are the ubiquitous bridge between digital and physical environments.
As noted by Forbes, emerging pandemic pressures have precipitated the return of a familiar code framework, the QR code. Now used by retail stores and restaurants to enable touchless product identification and payment, this rapid code renaissance is a stark reminder that codes remain a key driver of long-term operational success. However, not all barcode reader tools are created equal. Some struggle to handle damaged or deformed barcodes, others limit the type and nature of the codes they scan, and many full-featured solutions come with significant complexity around installation, integration, and ease-of-use.
Barcode Xpress offers the best of both worlds. Here’s what developers need to know.
What is Barcode Xpress?
Accusoft’s Barcode Xpress makes it easy for users to read, write, and detect over 30 different barcodes with a single software development kit (SDK). Barcode Xpress supports:
- 1D Barcodes — Including Add-2, Add-5, Code 39, GS1 and UCC
- 2D Barcodes — Such as Aztec, Data Matrix, PDF417 and QR codes
- Postal Codes — From PLANET and PostNet to Royal Mail and the Australia Post 4-State Code
- Patch Codes — Including Patch 1, 2, 3, 4 (Toggle), 6 and Transfer
Barcode Xpress also reports confidence values for detected codes, reads supported barcodes in any orientation in milliseconds, and can intelligently handle poorly-printed, damaged, or badly-scanned barcode images. This SDK is also available in six development environments, including:
- .NET
- .NET Core
- ActiveX
- Java
- Linux
- Node.js
Basic Barcode Requirements
Deployment environments for Barcode Xpress must leverage one of the following x64 Windows versions:
- Windows 8.1
- Windows 10 Version 1607 and later
- Windows Server 2008 R2 SP1 and later
- Windows Server 2012, 2016 or 2019
The SDK can also be deployed on x64 Linux operating systems including:
- Ubuntu 18.04 or 16.04
- CentOS 8 or 7
- Debian 9 or 10
When it comes to Barcode Xpress development environments, requirements include Microsoft .NET Core 2.1 or later along with Java Runtime Environment 1.8 or later for License Manager and Server Licensing Utilities, along with Visual Studio 2017 or later (optional).
Ease of Installation
To streamline installation, Barcode Xpress .NET Core can be deployed via NuGet package or using a zip file provided by Accusoft. In both cases, developers require a valid license to use the SDK. Explore the different license types here.
Evaluation licenses allow your team to explore Barcode Xpress features bounded by timeouts and watermarks. Toolkit licenses remove pop-ups, time outs, and watermarks to enable in-depth development, while Runtime licenses are required to distribute your application.
Navigating NuGet
The simplest way to deploy Barcode Xpress is using the NuGet package manager for Microsoft development platform in Visual Studio. All of Accusoft’s NuGet packages can be found at nuget.org. Find the NuGet Barcode Express .NET package here.
To install the NuGet package, follow these steps:
- Open the NuGet Package Manager in Visual Studio.
- In the newly-opened window, ensure the Package Source is set to nuget.org and select the Barcode Xpress package.
- After selection and installation, look for the newly-added assemblies in your References folder.
- Add using [namespace] to any CS/VB file you’d like to reference these NuGet libraries.
Need more help? Check out the official NuGet tutorials.
Creating a Command Line
Ready to tackle your first project in Barcode Xpress? Here’s a step-by-step guide to building a complete C# application that analyzes 1D barcodes using Visual Studio.
1.Create a new Console App project in .NET core:
2. Add the Barcode Xpress SDK:
3. Add any required Microsoft dlls for the project. In this case, look for System.Drawing.Common at nuget.org, or add them locally if they’re already present as references in your development environment.
4. Add using statements to your generated Program.cs:Program.cs
using System;
using System.Drawing;
using Accusoft.BarcodeXpressSdk;
namespace MyProject
{
...
5. Create any necessary instances of Accusoft.BarcodeXpressSDK.BarcodeXpress and System.Drawing.BitmapProgram.cs
using System;
using System.Drawing;
using Accusoft.BarcodeXpressSdk;
namespace MyProject
{
class Program
{
static void Main(string[] args)
{
BarcodeXpress barcodeXpress = new BarcodeXpress();
System.Drawing.Bitmap bitmap = new Bitmap("barcode.bmp");
}
}
}
6. Pass this bitmap to Barcode Xpress and access the returned resultsProgram.cs
…
namespace MyProject
{
class Program
{
static void Main(string[] args)
{
BarcodeXpress barcodeXpress = new BarcodeXpress();
System.Drawing.Bitmap bitmap = new Bitmap("barcode.bmp");
Accusoft.BarcodeXpressSdk.Result[] results = barcodeXpress.reader.Analyze(bitmap);
if (results.Length > 0)
{
foreach (Accusoft.BarcodeXpressSdk.Result result in results)
{
Console.WriteLine("{0} : {1}", result.BarcodeType.ToString(), result.BarcodeValue);
}
}
else
{
Console.WriteLine("No Barcodes Found.");
}
}
}
7. Finally, clean up your code by using the Dispose() methodProgram.cs
…
namespace MyProject
{
class Program
{
static void Main(string[] args)
{
BarcodeXpress barcodeXpress = new BarcodeXpress();
System.Drawing.Bitmap bitmap = new Bitmap("barcode.bmp");
Accusoft.BarcodeXpressSdk.Result[] results = barcodeXpress.reader.Analyze(bitmap);
if (results.Length > 0)
{
foreach (Accusoft.BarcodeXpressSdk.Result result in results)
{
Console.WriteLine("{0} : {1}", result.BarcodeType.ToString(), result.BarcodeValue);
}
}
else
{
Console.WriteLine("No Barcodes Found.");
}
barcodeXpress.Dispose();
}
}
Ongoing Improvements
Barcode Xpress isn’t a new offering — it’s been part of the Accusoft SDK lineup for more than 15 years. However, John Reynolds, Principal Engineer for Barcode Xpress, recently took a look at the code to improve its functionality. In his whitepaper, Refactoring Legacy Code for Speed in Barcode Xpress, he found that when repeatedly scanning a barcode in a particular direction, the count length of black/white runs in the same direction.
As a result, continually calculating the mask and data pointers for each coordinate is cumbersome, but also allows for potential shortcuts, such as keeping a running tally of the mask across the image. Applied in depth, this and other code legacy code changes have helped improve 1D barcode analysis times from 5% to 60%, depending on the image.
Barcode Xpress offers comprehensive code recognition that’s easy to implement and customize, while ongoing improvements help streamline SDK deployment, enhance operational speed, and empower software engineers in various markets. Discover the benefits of Barcode Xpress. Download a free trial or try an online demo today.