Suhtlus .NET-raamistiku ja C++-i vahel

Date

2016

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Käesolev töö kirjeldab, kuidas realiseerida koostöö kahe erineva programmeerimiskeskkonna, .NET-raamistiku ja programmeerimiskeele C++ vahel. .NET-raamistikku kasutades on arendaja produktiivsus suurem, kuid C++-is kirjutatud programmidel on parem jõudlus.\n\rSeega on eesmärk kasutada tarkvara arendamisel .NET-keeli (nt. C#), kuid jõudlus-kriitilistes kohtades kutsuda välja C++-koodi. Selleks tuleb luua vahekiht kasutades tehnoloogiaid Platform Invoke või C++/CLI.\n\rTöös kirjeldatakse vahekihi ülesehitust, selle loomise etappe ning tutvustatakse projekti, mis loob vahekihi automaatselt. Vahekihi automaatne loomine aitab vähendab töökulu ja parandada veakindlust. Lisaks analüüsitakse viise, kuidas korraldada mäluhaldust ja parandada jõudlust.
C# is a modern programming language aimed at code robustness and development productivity, but it cannot compete with C++ in performance. The best of both worlds can be had by interoperating between the two languages.\n\rHowever, C# as a .NET language follows a different paradigm than C++ in many ways. For example, .NET cleans up memory using automatic garbage collection while C++ requires memory to be freed explicitly. Low-level memory access is natural in C++, but is strictly controlled in .NET. Not to mention differences in naming conventions and semantics.\n\rThis paper describes two approaches to creating an intermediate layer between .NET and C++ (Platform Invoke and C++/CLI) by making a wrapper interface around C++ code, explains how to overcome memory management and performance issues and introduces a framework for automatically generating the interface.\n\rBy combining .NET and C++, developers can build their application in a safe and productive manner without sacrificing speed in performance-critical parts of the code.

Description

Keywords

Citation