Как использовать компонент написанный на немерле в C#?
От:
Аноним
Дата:
17.05.10 16:28
Оценка:
А есть ли где-то пример, как использовать компонент написанный на немерле в C#?
Какие есть ограничения, зависимости, рекомендации по написанию API, который бы использовался в C# или VB.NET.
Можно ли добавлять проэкт написанный на немерле в solution с другими проектами и будет ли это работать ?
Может стоить написать не большую статью про это?
Re: Как использовать компонент написанный на немерле в C#?
Здравствуйте, Аноним, Вы писали:
А>А есть ли где-то пример, как использовать компонент написанный на немерле в C#? А>Какие есть ограничения, зависимости, рекомендации по написанию API, который бы использовался в C# или VB.NET.
Ограничения простые, во внешних контрактах использовать типы данных понятные принимающей стороне.
А>Можно ли добавлять проэкт написанный на немерле в solution с другими проектами и будет ли это работать ?
Можно. Будет.
Re: Как использовать компонент написанный на немерле в C#?
Здравствуйте, Аноним, Вы писали:
А> 1. А есть ли где-то пример, как использовать компонент написанный на немерле в C#? А> 2. Какие есть ограничения, зависимости, рекомендации по написанию API, который бы использовался в C# или VB.NET. А> 3. Можно ли добавлять проэкт написанный на немерле в solution с другими проектами и будет ли это работать ? А> 4. Может стоить написать не большую статью про это?
1. Мне это всегда казалось очевидным... Компилируем код в библиотеку (проект Class Library при использовании Visual Studio/SharpDevelop или ключ компиляции /library при использовании «голого» компилятора), используем полученную библиотеку как Reference в проекте C#. Интеграция Nemerle и VS — именно такой проект: http://code.google.com/p/nemerle/source/browse/#svn/nemerle/trunk/VsIntegration/Nemerle.VisualStudio (надо подождать немного, чтоб загрузилась вся страница)
2. Я регулярно пишу WinForms-оболочки для библиотек Nemerle. Из опыта рекомендации такие: не использовать в методах публичного API вашей библиотеки такие типы, как кортежи, функции (a -> b), списки, варианты. Не допускать диковинных операторов типа @>-->. Всё это более-менее работает и из C#, но интелисенс иногда давится такими вещами, да и конструировать соответствующие объекты в C# сложно.
3. Можно, но будет работать не очень стабильно (я говорю про где-то апрельскую версию интеграции Nemerle). Немерловские проекты иногда перетягивают на себя метку Startup Project. Иногда интелисенс перестает видеть подключенные библиотеки Немерле. Я обычно просто выгружаю (Unload Project) немерловские проекты, когда работаю с кодом на C#, а потом включаю.
4. Может...
Кстати, я почему-то не могу зарегистрироваться на nemerle.org, чтобы писати вики. Админы, поправьте, пожалуйста
Re[2]: Как использовать компонент написанный на немерле в C#
Здравствуйте, catbert, Вы писали:
C>3. Можно, но будет работать не очень стабильно (я говорю про где-то апрельскую версию интеграции Nemerle). Немерловские проекты иногда перетягивают на себя метку Startup Project. Иногда интелисенс перестает видеть подключенные библиотеки Немерле. Я обычно просто выгружаю (Unload Project) немерловские проекты, когда работаю с кодом на C#, а потом включаю.
Вот тут надо не воркэраунды находить, а выявить проблему и описать пути ее воспроизведения в багтрекере.
C>Кстати, я почему-то не могу зарегистрироваться на nemerle.org, чтобы писати вики. Админы, поправьте, пожалуйста
А что не получается?
Тут лучше всего обратиться к Владимиру Кочеткову.
Он все это дело настраивал.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как использовать компонент написанный на немерле в C#
Здравствуйте, VladD2, Вы писали:
VD>А что не получается? VD>Тут лучше всего обратиться к Владимиру Кочеткову. VD>Он все это дело настраивал.
В этой вики много чего не работает после переезда, но с регистрацией вроде проблем не было до сегодняшнего дня. Но ок, разберемся
С этой вики надо слезать на что-то более дружелюбное к винде и IIS (в идеале .NET'овское). Я до сих пор вожусь с багтрекером, т.к. там всплыла куча граблей, но горизонт уже виден Хотел занятся вопросами дальнейшей судьбы этой вики сразу после переезда мантиса на гуглокод.
Здравствуйте, catbert, Вы писали:
C>Кстати, я почему-то не могу зарегистрироваться на nemerle.org, чтобы писати вики. Админы, поправьте, пожалуйста
Разобрался в чем дело. Урлы с двоеточиями в пути после переезда на RSDN'овский сервер не работают из-за особенностей формирования относительный путей апачевским mod_rewrite под виндой. При попытке отредактировать страницу, вики предлагает залогиниться, пройдя по адресу http://nemerle.org/Special:Userlogin , который не будет работать, выплевывая 403 ошибку.
Попасть на любую страницу, содержащую в пути двоеточие, пока можно только так:
Здравствуйте, Аноним, Вы писали:
А>А есть ли где-то пример, как использовать компонент написанный на немерле в C#? А>Какие есть ограничения, зависимости, рекомендации по написанию API, который бы использовался в C# или VB.NET. А>Можно ли добавлять проэкт написанный на немерле в solution с другими проектами и будет ли это работать ? А>Может стоить написать не большую статью про это?
Тут уже правильно сказали, что просто не надо использовать специфичные типы данных (варианты и кортежи) и операторы в публичном интерфейсе.
Так что проблемы создать библиотеку которую можно использовать из шарпа или васика нет. Есть другая проблема, полученную библиотеку очень захочется использовать из того же немерла .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.