Я не понимаю, почему люди запускают дебаты как это. Это действительно не служит никакой цели, чем запустить войны пламени, в тогда конце которых ничто не получено. Теперь, если команда C# пыталась постепенно сократить один стиль в пользу другого, я вижу причину спорить по достоинствам каждого стиля. Но так как оба собираются остаться на языке, почему бы не использовать один Вы предпочитаете и позволяете всем сделать то же. Это похоже на использование общего любимого тернарного оператора: некоторым нравится он, и некоторые не делают. В конце дня это не имеет никакого значения к компилятору.
Это похоже на утверждение с Вашими одноуровневыми элементами, по которым Ваш любимый родитель: это не имеет значения, если они не разводятся!
Прав ли я, полагая, что все библиотеки (или сборки, или как вы их называете), написанные на одном языке .Net, всегда можно вызвать из другого языка .Net? И могут ли объекты и типы данных автоматически передаваться между ними?
Да. В .NET межъязыковая совместимость возможна благодаря CTS (предлагает набор общих типов данных для использования на всех языках, совместимых с .NET, и обеспечивает совместимость типов) и CLS (определяет набор минимальных стандартов, которым должны соответствовать все компиляторы языков .NET, и, таким образом, обеспечивает языковую совместимость). Во время компиляции исходный код любого .NET-совместимого языка преобразуется в код промежуточного языка компилятором соответствующего языка. Поскольку вся сборка .NET (EXE или DLL) существует как промежуточный язык, они могут взаимодействовать между собой. Все языки, совместимые с .NET, используют одни и те же типы данных и представлены только как типы .NET. Поэтому независимо от того, используете ли вы int в C # или Integer в Visual Basic .NET, в IL он представлен как System.Int32. [ Источник ]
NET-совместимых языков и обеспечивает совместимость типов) и CLS (определяет набор минимальных стандартов, которым должны соответствовать все компиляторы языков .NET, и, таким образом, обеспечивает языковую совместимость). Во время компиляции исходный код любого .NET-совместимого языка преобразуется в код промежуточного языка компилятором соответствующего языка. Поскольку вся сборка .NET (EXE или DLL) существует как промежуточный язык, они могут взаимодействовать между собой. Все языки, совместимые с .NET, используют одни и те же типы данных и представлены только как типы .NET. Поэтому независимо от того, используете ли вы int в C # или Integer в Visual Basic .NET, в IL он представлен как System.Int32. [ Источник ] NET-совместимых языков и обеспечивает совместимость типов) и CLS (определяет набор минимальных стандартов, которым должны соответствовать все компиляторы языков .NET, и, таким образом, обеспечивает языковую совместимость). Во время компиляции исходный код любого .NET-совместимого языка преобразуется в код промежуточного языка компилятором соответствующего языка. Поскольку вся сборка .NET (EXE или DLL) существует как промежуточный язык, они могут взаимодействовать между собой. Все языки, совместимые с .NET, используют одни и те же типы данных и представлены только как типы .NET. Поэтому независимо от того, используете ли вы int в C # или Integer в Visual Basic .NET, в IL он представлен как System.Int32. [ Источник ] исходный код любого .NET-совместимого языка преобразуется в код промежуточного языка компилятором соответствующего языка. Поскольку вся сборка .NET (EXE или DLL) существует как промежуточный язык, они могут взаимодействовать между собой. Все языки, совместимые с .NET, используют одни и те же типы данных и представлены только как типы .NET. Поэтому независимо от того, используете ли вы int в C # или Integer в Visual Basic .NET, в IL он представлен как System.Int32. [ Источник ] исходный код любого .NET-совместимого языка преобразуется в код промежуточного языка компилятором соответствующего языка. Поскольку вся сборка .NET (EXE или DLL) существует как промежуточный язык, они могут взаимодействовать между собой. Все языки, совместимые с .NET, используют одни и те же типы данных и представлены только как типы .NET. Поэтому независимо от того, используете ли вы int в C # или Integer в Visual Basic .NET, в IL он представлен как System.Int32. [ Источник ] Поэтому независимо от того, используете ли вы int в C # или Integer в Visual Basic .NET, в IL он представлен как System.Int32. [ Источник ] Поэтому независимо от того, используете ли вы int в C # или Integer в Visual Basic .NET, в IL он представлен как System.Int32. [ Источник ]Если вы ищу библиотеки подключаемых модулей в .NET, я знаю пару вариантов:
] Оба имеют открытый исходный код, поэтому вы можете увидеть, как они создавали среду подключаемых модулей.
Да, вы можете достичь их всех с помощью Reflection
. Есть статьи о структуре подключаемого модуля C #, например этот
Основная проблема с подключаемыми модулями в .Net заключается не в возможности вызывать код из библиотеки подключаемого модуля (и взаимодействовать с ним), а в вопросах безопасности. Их тоже можно решить, вы можете посмотреть здесь (образцы, которые связаны там, также должны представлять очень простой хост + плагин) Как создать модель плагина в .NET с песочницей?
И для взаимодействия между языками .Net - с этим нет проблем.
Общий графический интерфейс - я сделал это с помощью Winforms, и это было не очень сложно, хотя я не знаю, будет ли это так просто и с WPF, хотя я никогда не пробовал.