PortableDLL в MonoTouch и MonoDroid - PullRequest
       24

PortableDLL в MonoTouch и MonoDroid

0 голосов
/ 27 января 2012

Можете ли вы совместно использовать .NET DLL (написанные на VB.NET с использованием Visual Studio) между Full.NET, WindowsPhone, Silverlight, MonoTouch, MonoDroid.(И в будущем также WinRT)

Возможно ли это?

Я не хочу делиться кодом пользовательского интерфейса в основном только с моделями, но, возможно, также с некоторыми моделями представления (например, используя MVVM)

Мне было интересно, подойдет ли использование Portable DLL?См. http://visualstudiogallery.msdn.microsoft.com/b0e0b5e9-e138-410b-ad10-00cb3caf4981/

Более подробно: сегодня это не то, что мне нужно.Я смотрю на реорганизацию существующих проектов, написанных на VB.NET для .NET 4. Это будет в следующем году или около того.Просто хотелось бы знать, смогут ли устройства Mono * воспроизводить ...

Спасибо, Майк G

Ответы [ 3 ]

3 голосов
/ 27 января 2012

С обычными сборками .NET: сочетание да и нет.В общем, да.Но в действительности часто происходят изменения, специфичные для платформы, из-за ограничений на каждую платформу, которые не позволяют запустить сборку.В IDE также не нравятся определенные комбинации ссылок.Среда разработки с одним модулем разработки IIRC более разрешительна с точки зрения того, какие сборки она будет принимать.

Re вещи, которые не работают;это могут быть глупые вещи, например, существует ли Trace.WriteLine(...), или (в последнее время «единство», Interlocked), или это могут быть ограничения платформы (например, вы не можете выполнять столько метапрограммирования на iOS).

WinRT устанавливает новую «планку» для разрушения вещей, с радикальными изменениями во всем (основные принципы, такие как Type, были сильно изменены).

Мой совет: сборка на платформу;в противном случае вы ограничиваете себя наименьшим общим знаменателем, что не является обязательным.Используйте то, что существует на каждой платформе, с запасными вариантами, когда это не так.

2 голосов
/ 27 января 2012

Вы можете поделиться исходным кодом между проектами для разных платформ. Вы создаете файл один раз и ссылаетесь на другие проекты, ориентированные на разные платформы. Смотрите это .

Вы не можете поделиться DLL. Например, вы не можете ссылаться на «настольную» сборку .NET в проекте Silverlight из-за выбранной целевой платформы.

1 голос
/ 27 января 2012

Да, вы можете!(tm)

Хотя есть некоторые ограничения: вы уже упомянули материал, относящийся к пользовательскому интерфейсу, но вам нужно привести более широкую сеть: ваша DLL не может использовать , а может ссылка все, что недоступно на одной из платформ.

С небольшой временной деформацией вы можете даже включить .NET CF

...