Examine .NET Core As a Development Platform for Monitor ERP System AB

Total Page:16

File Type:pdf, Size:1020Kb

Examine .NET Core As a Development Platform for Monitor ERP System AB Examine .NET Core as a development platform for Monitor ERP System AB Viktor Rosvall Computer Engineering BA (C), Final Project Main field of study: Computer Engineering Credits: 15 hp Semester, year: Spring, 2020 Supervisor: Martin Kjellqvist, [email protected] Examiner: Dr. Ulf Jennehag, [email protected] Degree programme: Datateknik, 180 credits Examine .NET Core as a development platform for Monitor ERP System Viktor Rosvall 2020–06–12 Abstract The objective of this study has been to examine the portability of Moni- tor ERP System AB’s existing .NET Framework codebase to .NET Core. The study has been conducted by examining the portability of Monitor’s projects by using Microsoft’s .NET Portability Analyzer and visualizing the dependencies of projects by using AsmSpy to gain an understanding of what order projects need to be ported. An examination of used third-party libraries has also been conducted to see which libraries are not compatible with .NET Core. And an attempt to port Monitor’s root solution has been made as a proof-of-concept and to make test and build duration compar- isons between the ported solution and the old solution. The .NET Porta- bility Analyzer reported that 19 projects aren’t 100% compatible with .NET Core (+ Windows Compatibility Pack) where some projects have one miss- ing API call while others have many more. The third-party library examina- tion showed that two libraries are not compatible with .NET Core, the first is Dynamsoft Dynamic .NET TWAIN SDK which can probably be replaced with VintaSoft Twain .NET SDK, and SAP SQL Anywhere which doesn’t have a direct replacement. The results of the comparison show that test duration speeds improved on average by 22.5% with a peak of 67.6%, and build duration differences were negligible. Porting to .NET Core will not be easy, but if fixes for the 19 incompatible Monitor projects are completed and a replacement for SQL Anywhere can be found, then Monitor ERP System AB can make a successful port to .NET Core. Keywords: .NET Core, .NET Framework, Large codebase, Migration, Mon- itor ERP System AB, Port i Examine .NET Core as a development platform for Monitor ERP System Viktor Rosvall 2020–06–12 Acknowledgements I would like to thank Monitor ERP System AB for providing me with a workplace at their office and also a place to stay while working in Hudiksvall. I’m very grateful for the support of Peter Svensson and his team at Monitor has given me during my thesis project at their office. I would also like to thank my supervisor Martin Kjellqvist from the univer- sity who gave me great guidance and was always available when I needed his help. ii Table of Contents Abstract i Acknowledgements ii Terminology v 1 Introduction 1 1.1 Background and problem motivation ............... 1 1.2 Overall aim .............................. 1 1.3 Scope ................................. 1 1.4 Concrete and verifiable goals ................... 2 1.5 Outline ................................ 2 2 Theory 3 2.1 Microsoft .NET Framework ..................... 3 2.2 Microsoft .NET Core ........................ 3 2.2.1 .NET implementation support ............... 3 2.3 NuGet ................................. 4 2.4 Windows Compatibility Pack .................... 4 2.5 SAP SQL Anywhere ......................... 4 2.6 MSTest ................................ 5 2.7 Monitor ERP System AB’s Domain-Specific Language ..... 5 2.8 .NET Portability Analyzer ...................... 5 2.9 AsmSpy ................................ 5 3 Methodology 6 3.1 Workflow ............................... 6 3.1.1 Pilot study .......................... 6 3.1.2 Planning ........................... 6 3.1.3 Construction ......................... 6 3.2 Hardware and software ....................... 6 4 Process 8 4.1 Portability analysis .......................... 8 4.2 Project dependency analysis .................... 8 4.3 Porting ................................ 9 4.4 Testing ................................ 10 4.5 Building ................................ 10 5 Results 11 5.1 Portability analysis .......................... 11 5.1.1 First-party source code portability ............. 11 5.1.2 Third-party library compatibility .............. 12 5.2 Project dependency analysis .................... 13 iii Examine .NET Core as a development platform for Monitor ERP System Viktor Rosvall 2020–06–12 5.3 Porting ................................ 13 5.4 Testing ................................ 14 5.5 Building ................................ 16 6 Conclusion 18 6.1 Goals ................................. 18 6.2 Porting ................................ 18 6.3 Testing ................................ 19 6.4 Building ................................ 19 6.5 Recommendations ......................... 19 6.6 Ethical aspects ............................ 20 6.7 Method discussion ......................... 20 6.8 Further studies ............................ 20 References 22 A Monitor.Service.Contracts class diagram dependency graph 1 iv Examine .NET Core as a development platform for Monitor ERP System Viktor Rosvall 2020–06–12 Terminology AOT Ahead-of-time API Application Programming Interface CAS Code Access Security CLR Common Language Runtime DBMS Database Management System DGML Directed Graph Markup Language DSL Domain Specific Language EIM Electronic Invoice Management GUI Graphical User Interface JIT Just-in-time LTS Long-term Support Monitor Monitor ERP System AB SDK Software Development Kit SSVM Server-Side View Models Std Standard Deviation WPF Windows Presentation Foundation v Examine .NET Core as a development platform for Monitor ERP System Viktor Rosvall 2020–06–12 1 Introduction Porting a large codebase from one development platform to another can be a big undertaking. This report will try to provide guidance when port- ing from the Microsoft .NET Framework to the Microsoft .NET Core devel- opment platform, and it will mention solutions to problems when porting large projects to .NET Core. This report will also present the benefits of porting to .NET Core, such as improvements in test duration speeds when running automated unit-tests, and language features only available in the newer .NET Core 3 platform. 1.1 Background and problem motivation Monitor ERP System AB (Monitor) is currently developing an Enterprise Resource Planning (ERP) system called MONITOR G5 for small- to medium- sized manufacturing companies. MONITOR G5 features six modules that cover all activities of manufacturing companies [1]. Monitor is currently using the classic .NET Framework that is tightly cou- pled to Windows for development of MONITOR G5. The new .NET Core platform offers cross-platform development which would allow Monitor application servers and other Monitor products to run on Mac OS and Linux. Monitor wants to future-proof their codebase by upgrading to .NET Core as newer versions of the C# language won’t be supported on .NET Framework. Monitor would also like to support cross-platform development to reduce the cost of running Windows virtual machines in the cloud. 1.2 Overall aim The projects aim is to provide Monitor with a report on how to migrate their codebase to the new .NET Core Platform. This report will include the chal- lenges of such a migration and possible solutions. It will also include mea- surements comparing build times and automated unit-test duration after a migration, to see if automated tests and the building process can increase in speed after a migration to .NET Core is completed. 1.3 Scope This study will mostly focus on the theoretical aspects of porting Monitor’s current .NET Framework Application Server to the new .NET Core plat- form. This work doesn’t include the porting of database systems needed to be compatible with .NET Core. 1 Examine .NET Core as a development platform for Monitor ERP System Viktor Rosvall 2020–06–12 Because of the sheer size of Monitor’s codebase, this work will only cover the process of porting the Monitor.Service.Contracts solution and its projects which has no or few dependencies on other Monitor solutions and projects as a proof-of-concept while documenting the process. 1.4 Concrete and verifiable goals The goals of this report are to answer the following questions: 1. Examine the codebase for portability issues 2. Locate incompatible third-party libraries 3. Examine tools used to aid in porting 4. Successfully port the root solution of projects 5. Document the porting process 6. Measure the change in test time duration 7. Measure the change in build time duration 1.5 Outline Chapter 2 describes some of the technologies used to help the reader un- derstand the result better. Chapter 4 describes the work process of porting and usage of tools to gather data. Chapter 5 contains the results of the work process. Chapter 6 describes the conclusions derived from the results and recommendations to Monitor ERP System AB for how to proceed. 2 Examine .NET Core as a development platform for Monitor ERP System Viktor Rosvall 2020–06–12 2 Theory This chapter shortly describes the products and technologies used by Mon- itor ERP System AB for their MONITOR Server application. 2.1 Microsoft .NET Framework Microsoft’s .NET Framework is a proprietary platform that supports build- ing and running Windows applications and websites [2]. A large com- ponent of the .NET Framework is called the Common Language Runtime (CLR), and similarly to the Java Virtual Machine, handles memory man- agement, thread execution, garbage collection and code execution [2], [3]. Another large component of the .NET Framework is
Recommended publications
  • PETER STEPHENS Current Technical Pursuits: Agile Practices, Cloud
    PETER STEPHENS 512.778.6322 / cell 865.567.7173 1955 County Road 202 www.diligentsoftware.com/resume Liberty Hill, TX 78642 [email protected] Current Technical Pursuits: Agile Practices, Cloud Computing and Amazon Web Services, Cloud Automation, ASP.NET MVC, REST based web services, JavaScript and jQuery CURRENT SKILLS • Microsoft.NET Framework versions 1.0 – 4.5 » C#, LINQ, XML , Networking, Regular Expressions, Multithreading , Task Parallel Library, Encryption, etc. » Websites: ASP.NET WebForms and MVC » Thick Client: Windows Presentation Foundation (WPF) » Web Services: WCF, Web API (REST and RPC) , and OData • Cloud Computing » Amazon Web Services : EC2 , S3 , RDS , SQS, SNS, Cloud Formation, Route 53, etc. » Rackspace Cloud • Automation : Powershell, MSBuild, and T4 templating • Agile Practices : Continuous Integration with Team City and CruiseControl.NET, Test Driven Development (TDD ), NUnit, Rhino Mocks, MOQ, Autofac, and ReSharper • Microsoft SQL Server versions 7 – 2008. Extensive use of T-SQL , C# stored procedures, C# functions, management and database optimization • HTML , CSS , JavaScript , jQuery , HTTP, Web Design, SEO , and Microsoft Expression Studio, Report Viewer Control based RDLC reports • Domain Specific Languages: Irony • Deployment: WIX , InstallShield, and WebDeploy • Source Control : Git and Mercurial, Beyond Compare, KDIFF OPEN SOURCE AND SOCIAL • Stack Overflow: http://stackoverflow.com/users/72860/peter-stephens • Twitter: https://twitter.com/#!/peterastephens • Bitbucket: https://bitbucket.org/pstephens/
    [Show full text]
  • Software License Agreement (EULA)
    Third-party Computer Software AutoVu™ ALPR cameras • angular-animate (https://docs.angularjs.org/api/ngAnimate) licensed under the terms of the MIT License (https://github.com/angular/angular.js/blob/master/LICENSE). © 2010-2016 Google, Inc. http://angularjs.org • angular-base64 (https://github.com/ninjatronic/angular-base64) licensed under the terms of the MIT License (https://github.com/ninjatronic/angular-base64/blob/master/LICENSE). © 2010 Nick Galbreath © 2013 Pete Martin • angular-translate (https://github.com/angular-translate/angular-translate) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • angular-translate-handler-log (https://github.com/angular-translate/bower-angular-translate-handler-log) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • angular-translate-loader-static-files (https://github.com/angular-translate/bower-angular-translate-loader-static-files) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • Angular Google Maps (http://angular-ui.github.io/angular-google-maps/#!/) licensed under the terms of the MIT License (https://opensource.org/licenses/MIT). © 2013-2016 angular-google-maps • AngularJS (http://angularjs.org/) licensed under the terms of the MIT License (https://github.com/angular/angular.js/blob/master/LICENSE). © 2010-2016 Google, Inc. http://angularjs.org • AngularUI Bootstrap (http://angular-ui.github.io/bootstrap/) licensed under the terms of the MIT License (https://github.com/angular- ui/bootstrap/blob/master/LICENSE).
    [Show full text]
  • Windows Installer XML: Käyttöönotto Asennusohjelman Tekemisessä
    Windows Installer XML: käyttöönotto asennusohjelman tekemisessä Koskina, Ekaterina 2012 Kerava Laurea-ammattikorkeakoulu Kerava Windows Installer XML: käyttöönotto asennusohjelman tekemisessä Ekaterina Koskina Tietojenkäsittelyn koulutusohjelma Opinnäytetyö Maaliskuu, 2012 Sisällys 1 Johdanto ............................................................................................. 6 2 Asennusohjelmat Windows- käyttöjärjestelmissä ............................................ 6 2.1 Windows Installer .......................................................................... 7 2.1.1 Synty, kehitys ja nykytilanne..................................................... 7 2.1.2 MSI- asennustiedoston rakenne .................................................. 8 2.2 WiX- työkalupaketti ja sen kilpailijat................................................... 9 3 WiX:in käyttöönotto ............................................................................. 11 4 WiX- teknologia ................................................................................... 13 4.1 Rungon Elementit ........................................................................ 14 4.1.1 Tuote- elementti ................................................................. 15 4.1.2 Pakkaus- elementti............................................................... 15 4.1.3 Media- elementti ................................................................. 16 4.2 Hakemistot ................................................................................ 17 4.3 Komponentti- elementit
    [Show full text]
  • Dynamic Web TWAIN Security Features Dynamic Web TWAIN SECURITY FEATURES
    Dynamic Web TWAIN Security Features Dynamic Web TWAIN SECURITY FEATURES Introduction Dynamsoft’s Dynamic Web TWAIN SDK is a scanning software specifically designed for web applications. Developers across the globe have been utilizing the robust library enabling integration of image and document scan, edit and storage functions in a few lines of code. The TWAIN standard is by far the most dominant and required interface for scanning, and Dynamic Web TWAIN fully supports TWAIN-compatible scanners plus ICA-compatible scanners on macOS as well as SANE-compatible scanners on Linux. Dynamic Web TWAIN is integrated into various business workflows where document and image acquisition are an important step and some scanned docu- ments may contain confidential information. So, for application developers, security is always a priority when selecting an image capture solution. Over the last 15+ years, Dynamic Web TWAIN has been chosen by thousands of well-known enterprises and Fortune 500 organizations requiring stringent security. Our customers include Lockheed Martin, IBM, HP, Intel, Siemens, US Government, and more. Why do our customers that value security highly entrust Dynamic Web TWAIN with their classified documents? In this article, we will go through the security features at the heart of the trust Dynamsoft customers have for Dynamic Web TWAIN. Dynamsoft Corporation | Associate Member of the TWAIN Working Group 2 ph: 1-604-605-5491 | toll: 1-877-605-5491 | e:[email protected] Dynamic Web TWAIN SECURITY FEATURES Basic Security Features Dynamsoft keeps high standards when it comes to source 01 code security management which eliminates any unexpected threats to the software.
    [Show full text]
  • Snare for Windows Custom MSI V2.0
    Snare for Windows Custom MSI v2.0 © Intersect Alliance International Pty Ltd. All rights reserved worldwide. Intersect Alliance Pty Ltd shall not be liable for errors contained herein or for direct, or indirect damages in connection with the use of this material. No part of this work may be reproduced or transmitted in any form or by any means except as expressly permitted by Intersect Alliance International Pty Ltd. This does not include those documents and software developed under the terms of the open source General Public Licence, which covers the Snare agents and some other software. The Intersect Alliance logo and Snare logo are registered trademarks of Intersect Alliance International Pty Ltd. Other trademarks and trade names are marks' and names of their owners as may or may not be indicated. All trademarks are the property of their respective owners and are used here in an editorial context without intent of infringement. Specifications and content are subject to change without notice. Page 1 of 17 Table of Contents 1. Guide Overview . 3 2. Introduction to MSI . 3 3. Requirements . 4 4. Installing WIX . 5 5. Creating the MSI package . 6 6. Installing the MSI package using Group Policy . 9 7. About InterSect Alliance . 16 Page 2 of 17 1. Guide Overview About this Guide This guide provides administrators with the instructions to create a Windows MSI file, based on the required organizational security settings, using the freely available Windows Installer XML (WiX) toolset. This will allow you to remotely deploy Snare Enterprise Agents for Windows with a customized configuration, using the Microsoft Installer (MSI).
    [Show full text]
  • F/LOSS Is Commercial Software, David A. Wheeler
    Wheeler Page 1 of 8 Open Source Business Resource, February 2009: Commercialization HOME ABOUT LOG IN REGISTER SEARCH CURRENT ARCHIVES UPCOMING THEMES TIM LECTURE SERIES SPONSORS BLOG MULTIMEDIA Home > February 2009: Commercialization > Wheeler F/LOSS is Commercial Software, David A. Wheeler "The software created by open source communities became so powerful that commercial interests embraced those communities, supported them, learned from them and now are using the mechanisms of open source to make their businesses run better. This embrace has extended so long that commercial open source and open source are virtually synonymous." Dan Woods Many people mistakenly use the term "commercial software" as if it was the opposite of Free/Libre Open Source Software (F/LOSS). This is in spite of: i) the rise in commercial development and support for F/LOSS; ii) the goal of most F/LOSS projects to incorporate improvements, which is actually a form of financial gain; iii) official definitions of "commercial item" that include F/LOSS; and iv) F/LOSS licenses and projects that clearly approve of commercial support. In reality, there are two types of commercial software: proprietary software and F/LOSS. This paper provides examples for each of the four points mentioned above, briefly notes some alternative terms, and ends with some conclusions, explaining why it is important to understand that F/LOSS software is almost always commercial. Defining Key Terms Let's first define our key terms: F/LOSS: can be briefly defined as software with a license that gives users the freedom to run the program for any purpose, to study and modify the program, and to redistribute copies of either the original or modified program without having to pay royalties to previous developers.
    [Show full text]
  • Release Notes
    Intel® SDK for OpenCL™ Applications 2019 Update 2 Release Notes 14 February 2019 Intel® SDK for OpenCL™ Applications 2019 Update 2 Version History/Revision History These are the main releases of Intel® SDK for OpenCL™ Applications (also known as Intel® System Studio: OpenCL™ Tools component): Date Revision Description February 2019 2019 U2 Added support of Eclipse* 2018-12 R. Support of Eclipse* Oxygen and Visual Studio 2013 were deprecated and removed. Qt* was updated to 5.12 version. Protobuf* was updated to 3.6.1 version. November 2018 2019 U1 Experimental version of the CPU Runtime supporting OpenCL™ 2.1 has been deprecated and removed. Added support for Intel® VTune™ Amplifier, added support for Ubuntu* 18.04 August 2018 2019 Coffee Lake support, support of Intel® CPU Runtime for OpenCL™ Applications 18.1 December 2017 2017 U2 Eclipse Oxygen (4.7) support, bug fixes, and improvements July 2017 2017 U1 Visual Studio 2017 support, new OSes and platforms support October 2016 2016 U3 7th Generation Intel® Core™ Processor support, Windows* 10 Anniversary Update, OpenCL 2.1 experimental CPU only runtime for Linux* July 2016 2016 U2 (Linux) GPU Kernel debugger Beta and kernel level analysis for Linux June 2016 2016 U2 OpenCL 2.1 support, new features in Kernel Development (Windows) Framework April 2016 2016 GPU Kernel debugger Beta and standalone release for Linux Nov. 17, 2016 2015 U3 Standalone release for Microsoft Windows* April 28, 2015 2015 U2 Visual Studio 2015 support Jan 22, 2015 2015 U1 Released as part of Intel® Integrated Native Developer Experience (Intel® INDE) Customer Support For technical support, including answers to questions not addressed in this product, visit the technical support forum, FAQs, and other support information at Intel OpenCL Support or http://www.intel.com/software/products/support/.
    [Show full text]
  • 10 Rules for Evaluating Web Twain Components
    10 RULES FOR EVALUATING WEB TWAIN COMPONENTS 10 RULES FOR EVALUATING WEB TWAIN COMPONENTS Introduction TWAIN is a software protocol developed by member companies of TWAIN Working Group to provide what is today the most universal standard for communicating between applications and image acquisition devices, such as scanners and digital cameras. Over the years, TWAIN has dominated local or network software to device communication for image capture purposes. Today, the TWAIN standard is also playing a star role in web application communication with devices. Developers of web applications requiring use of the TWAIN standard have a variety of things to consider. This white paper is suited for software developers building web applications that acquire images from TWAIN-compatible devices through web browsers. In some rare cases an organization might attempt to build their own TWAIN-based web scanning component. However, most companies opt to find an off-the-shelf solution to save themselves from the cost and risks of attempting such a big effort. Regardless if you are buying or building, there are some rules to live by when evaluating a TWAIN component. By following these rules you'll find a solution that will save you time and improve your productivity. Dynamsoft Corporation | Associate Member of the TWAIN Working Group 2 ph: 1-604-605-5491 | toll: 1-877-605-5491 | e: [email protected] 10 RULES FOR EVALUATING WEB TWAIN COMPONENTS What to Look for When Evaluating Web Scanning Components RULE 1 RULE 3 A web scanning component should make web A web scanning component must support development easier.
    [Show full text]
  • Data Sheet: Dynamic Web TWAIN™ Embed TWAIN Scanning in Your Web Application Image Saving, Uploading and in Minutes Downloading
    Dynamsoft Corporation #668 - 1771 Robson Street, Vancouver, BC Canada, V6G 1C9 1-877-605-5491 (Toll-Free), 1-604-605-5491 http://www.dynamsoft.com Data Sheet: Dynamic Web TWAIN™ Embed TWAIN Scanning in Your Web Application Image Saving, Uploading and in Minutes Downloading Supports saving images as BMP, JPEG, PNG, Overview TIFF and PDF files. Multi-page TIFF and PDF are supported as well. Dynamic Web TWAIN is a web-based TWAIN scanning Supports image uploading and downloading SDK from Dynamsoft™. With just a few lines of JavaScript via HTTP, HTTPs and FTP. (JS) code, the SDK lets you easily embed full-featured Supports uploading image metadata to a scanning functionality in your online document scanning database as part of the image upload process. solution for capturing paper documents from client scanners. It can reduce months of development time and Webcam, PDF, Barcode and OCR resources spent while allowing you to focus on your core Imaging Modules business and customers instead. Seamless integration with Dynamsoft Dynamic Web TWAIN provides a JavaScript client and a Camera SDK for capturing images from scanning service. Users only need to download and webcams via browsers. install the scanning service once to accomplish their online Optional PDF rasterizer module for scanning needs. Also, an MSI installer is available for IT converting PDF files to raster images managers to easily do batch installations to their entire and viewing in web app. network. Seamless integration with Dynamsoft Barcode Reader JavaScript library for reading 1D and 2D barcodes from images. Optional OCR Pro module for extracting Features Highlights text from images.
    [Show full text]
  • Document Scanner Software for Pc
    Document Scanner Software For Pc Econometric and hideous Darius caracolled her cragginess rotguts pilfer and recode achingly. Sometimes nightlong Skippie autopsies her gridder undutifully, but unrequited Quint rescue tauntingly or soothsaid jawbreakingly. Clashing Raymundo prop his dozer pressuring artificially. Hp printer connected brother included is its exciting features: click can attach them around collecting for pc scanner software for document in a pc in demo version is it has many of photographs! Cover all genres of movie from Bollywood, you may be surprised to find that there are actually plenty of free and Open Source applications there. You can unsubscribe at any time with a click on the link provided in every Epson newsletter. And choose a few other formats such as wia scanning application software systems in a quick reaction time quickly achieve any. Connecting through old files that for epson. Easy Photo Scan allows you to easily scan your originals using EPSON Scan, as well as perform search functions on. You can she find leather that function as my portable and desktop document scanners by combining a portable scanner with a docking station that includes an ADF. Select Choose device and select your Neat scanner model. High performer for purchase volume operations. You can scan and save file to folders on your PC or discover, Free Download by salt Software. Download from support acquiring physical documents is an affiliate advertising program pages. Id scanner and software to capture information from US and International ID cards, whiteboards, execution and monitoring. There is most trusted primarily for pc or unexpected power with theme support page range of pdfs from hacking your pc scanner software allows owners of editing gives you? The lens solution available by using a PDF scanner.
    [Show full text]
  • Wix Database XML Schema Table of Contents
    WiX Database XML Schema Table of Contents WiX Database XML Schema..........................................................................................................................21 Elements...................................................................................................................................................... 22 AdminExecuteSequence............................................................................................................................30 AdminUISequence..................................................................................................................................... 31 AdvertiseExecuteSequence....................................................................................................................... 32 AllocateRegistrySpace............................................................................................................................... 33 AppData..................................................................................................................................................... 34 AppId.......................................................................................................................................................... 35 AppSearch..................................................................................................................................................36 AssemblyName.........................................................................................................................................
    [Show full text]
  • Dynamic .NET TWAIN 8.0
    Dynamic .NET TWAIN 8.0 Developer’s Guide June, 2018 10+ Years Experience in TWAIN SDKs and Version Control Solutions Contents Preface ................................................................................................................... 5 Description ............................................................................................................................ 5 Audience ................................................................................................................................ 5 Getting Started ....................................................................................................... 6 What Is Dynamic .NET TWAIN ............................................................................................... 6 Dynamic .NET TWAIN Modules ............................................................................................. 6 Basic Requirements ............................................................................................................... 7 How to use TWAIN Scan Module? ........................................................................... 8 What Is TWAIN ...................................................................................................................... 8 Step 1: Add Dynamsoft.Twain.dll to your project ................................................................. 8 Right click on Reference to add Reference ....................................................................... 8 Open the local file system if the dll is not listed
    [Show full text]