Preview

Труды Института системного программирования РАН

Расширенный поиск

Инструмент для сравнения .NET сборок в интегрированной среде разработки Rider

https://doi.org/10.15514/ISPRAS-2022-34(3)-3

Аннотация

Разработчику .NET иногда требуется сравнить скомпилированные программы или сборки, например, при обновлении версий сторонних библиотек или при работе с собственными бинарными файлами. Однако существующие инструменты имеют ряд серьёзных недостатков, например, они не поддерживают сравнение сборок .NET Core. В данной работе мы рассмотрели различные типы сборок .NET и, учитывая их структуру, разработали и интегрировали в Rider IDE собственный инструмент Assembly Diff, который учитывает недостатки существующих инструментов и расширяет возможности сравнения. Мы представили несколько вариантов представления и реализации инструмента сравнения и выбрали наиболее функциональный в виде дерева сравнения, для которого разработали и описали специальные алгоритмы, позволяющие учитывать семантические особенности типов .NET.

Об авторе

Владислав Игоревич МИРОШНИКОВ
Санкт-Петербургский государственный университет
Россия

Студент и исследователь 



Список литературы

1. .NET platform from Microsoft. URL: https://dotnet.microsoft.com/, accessed 19-March-2022.

2. Stack Overflow frameworks and platforms survey for 2021 year. URL: https://insights.stackoverflow.com/survey/2021#most-popular-technologies-misc-tech, accessed 19-March-2022.

3. JetBrains Rider IDE. URL: https://www.jetbrains.com/ru-ru/rider/, accessed 19-March-2022.

4. Stack Overflow most loved collaboration tools survey for 2021 year. URL: https://insights.stackoverflow.com/survey/2021#most-loved-dreaded-and-wanted-new-collab-tools-love-dread, accessed 19-March-2022.

5. .NET assemblies’ types according to Microsoft documentation. URL: https://docs.microsoft.com/en-us/dotnet/standard/assembly/, accessed 20-March-2022.

6. Standard ECMA-335: Common Language Infrastructure (CLI), 6th edition, June 2012. URL: https://www.ecma-international.org/wp-content/uploads/ECMA-335_6th_edition_june_2012.pdf, accessed 20-March-2022.

7. .NET Assembly contents according to Microsoft documentation. URL: https://docs.microsoft.com/en-us/dotnet/standard/assembly/contents, accessed 21-March-2022.

8. .NET Assembly format according to Microsoft documentation. URL: https://docs.microsoft.com/en-us/dotnet/standard/assembly/file-format, accessed 24-March-2022.

9. C. Woodruff and M. Balliauw. Building a .NET IDE with JetBrains Rider. CODE Magazine, 2018, November/December.

10. JetBrains IntelliJ Platform. URL: https://www.jetbrains.com/ru-ru/opensource/idea/, accessed 23-March-2022.

11. JetBrains ReSharper. URL: https://www.jetbrains.com/ru-ru/resharper/, accessed 23-March-2022.

12. Reactive Distributed communication framework. URL: https://github.com/JetBrains/rd, accessed 23-March-2022]

13. E.W. Myers. An o(nd) difference algorithm and its variations. Algorithmica, vol. 1, 1986, pp. 251-266.

14. J.W. Hunt and M.D. Mcilroy. An algorithm for differential file comparison. Computing Science Technical Report, vol. 41, Bell Laboratories, 1976, 9 p.


Рецензия

Для цитирования:


МИРОШНИКОВ В.И. Инструмент для сравнения .NET сборок в интегрированной среде разработки Rider. Труды Института системного программирования РАН. 2022;34(3):31-46. https://doi.org/10.15514/ISPRAS-2022-34(3)-3

For citation:


MIROSHNIKOV V.I. Diff tool for comparing .NET assemblies in the Rider IDE. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2022;34(3):31-46. https://doi.org/10.15514/ISPRAS-2022-34(3)-3



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)