Статьи

Перетворення коду між VB.NET і C #

ПРОГРАМУВАННЯ

Для створення .NET-додатків корпорація Microsoft пропонує, як відомо, дві основні мови програмування - Visual Basic. NET і C #. Останній дозволяє максимально використовувати властивості платформи Microsoft Framework .NET, проте з точки зору розробки ПЗ для переважної більшості прикладних рішень функціонал обох мов приблизно однаковий і вибір визначається в основному суб'єктивними пристрастями програміста, зокрема звичкою до того чи іншого синтаксису.

Схожість можливостей мов, з одного боку, знижує актуальність змішаного програмування (застосування різних мов для написання єдиного виконуваного модуля), так як подібні методи зазвичай служили для отримання ефекту від поєднання якісно різних засобів (наприклад, поєднання Basic і Assembler за часів DOS забезпечували високу швидкість розробки програми і найкращу швидкодію критично важливих операцій). З іншого боку, при колективній розробці або при використанні успадкованого коду задіяння різних мов досить актуально.

З іншого боку, при колективній розробці або при використанні успадкованого коду задіяння різних мов досить актуально

Інструмент Instant C # автоматизує перетворення коду VB.NET в C #

Однак, незважаючи на близькість VB. NET і C # (в тому числі єдиної моделі бібліотек класів .NET), змішане програмування - справа не проста. По-перше, синтаксис мов досить сильно розрізняється, причому найчастіше без будь-яких зрозумілих причин. Прикладів тому безліч: так, одна і та ж смислова конструкція підключення зовнішніх бібліотек класів в VB.NET позначається ключовим словом Imports, а в C # - Using. По-друге, хоча в середовищі Visual Studio .NET і підтримується великий набір .NET-мов, всередині окремого проекту можна скористатися тільки одним з них.

Всі ці обставини визначили проблему перетворення коду з однієї мови на іншу. Попит народжує пропозицію: американська компанія Tangible Software Solutions (www.tangiblesoftwaresolutions.com) представила в 2004 р свої інструменти Instant C # і Instant VB.NET для автоматичного перекладу програм, написаних за допомогою VB.NET, на C # і навпаки (див. Рисунок ). Вони дозволяють працювати як з закінченими проектами, що складаються з безлічі файлів, так і з окремими фрагментами коду. Другий варіант може застосовуватися в тому числі і для аналізу відмінностей в реалізації коду на різних мовах. Він може стати в нагоді і технічним письменникам для автоматичного отримання програмних прикладів на двох мовах.

За оцінками експертів журналу Visual Studio Magazine, Instant C # здатний автоматично перетворити 99% коду VB.NET. У залишився 1% потрапляють лише застарілі успадковані конструкції VB.NET, наприклад оператори OnError і Resume, які не вписуються в архітектуру .NET. В цілому VB.NET-проект, що містить 110 тис. Рядків коду в 648 файлах, був перетворений за 1 год 40 хв. В результуючому вихідному коді на C # було виділено 2200 фрагментів коду, їх система рекомендувала перевірити додатково, і 108 місць, з якими програма не впоралася в автоматичному режимі. Після їх аналізу та ручного коректування створений проект на C # заробив так само, як вихідний VB.NET-варіант. Інструмент Instant VB досяг на тестових прикладах (проекти C #, включені до складу Visual Studio .NET) ще більш високих показників: ефективність перекладу C # на VB.NET склала 99,98% при швидкості перетворення більше 10 тис. Рядків в хвилину.

Вартість повної версії кожного інструменту - Instant C # і Instant VB.NET - становить відповідно 159 і 119 дол., А варіантів для перетворення тільки окремих фрагментів коду - 79 і 59 дол.

Версія для друку

Тільки зареєстровані користувачі можуть залишати коментарі.

Новости