2010-04-03 3 views
2

Я работаю с проектом OCR, который разработан с использованием Visual C++ в .NET Framework. Но поскольку .net зависит от платформы, я хочу сделать эту платформу проекта независимой и поддерживать ее в нескольких операционных системах.Создание независимой программной платформы

Так может кто-нибудь дать мне подсказку, как это сделать. Спасибо.

+1

Если вы хотите сделать его независимым от платформы, то .NET, возможно, был худшим выбором, который вы могли бы сделать. Microsoft не хочет, чтобы она была независимой от платформы, и что они говорят. – skaffman

+0

@ Скаффман, как это? Если Microsoft не хочет, чтобы Mono существовала, они не подписали соглашение о бездействии с Novell. – Earlz

+0

@ skaffman, это, вероятно, правда, но они не говорят, что .Net не может быть кросс-платформой, просто они не собираются это делать. Если бы это было не так, команда Мигеля и Моно пробиралась через бюрократизм, когда мы говорим. – Lazarus

ответ

1

Почему вы используете Visual C++, работающий на .Net? Я бы порекомендовал вам либо переключиться на Native C++, либо использовать более удобный язык .NET, например C#. Честно говоря, я не уверен, что Mono может справиться с управляемой версией C++.

Если вы переходите на родной C++, то не забудьте абстрагировать любые бит конкретной платформы. Кроме того, убедитесь, что ваше приложение будет работать как на 32, так и на 64 бит. Используйте платформенно-независимые API, такие как GTK или WxWidgets.

Если вы переключитесь на C#, то прочитайте, что некоторые из API - это то, что Mono не поддерживает (и никогда не будет). Не используйте какой-либо небезопасный код или P/Invokes.

И независимо от того, какой вы выбираете, Всегда регулярно тестирует вашу программу на Windows и Linux. Если он работает в Linux, он обычно работает и на Mac, но я тестировал бы все три, по крайней мере, один раз в день.

+0

Оригинальный код был написан кем-то еще на .net-каркасе с использованием V C++. Это проект OCR Сахары. Теперь я собираюсь предложить проект по Gsoc, чтобы сделать его независимым от платформы. Есть ли другой способ запустить его, если он не использует Visual C++ для его запуска. – Thilanka

4

Mono - это кросс-платформенная реализация .NET, которую вы можете рассмотреть.

+0

Моно даже не написано Microsoft. Прочитайте, что сказал Miguel de Icaza, создатель Mono, несколько недель назад: http://www.itwire.com/opinion-and-analysis/open-sauce/37880-microsoft-has-shot-net-ecosystem- in-foot-de-icaza – mindas

+3

@mindas, вы понимаете, что Mono был разработан Мигелем и его командой; У этого есть поддержка от MS и действительно хорошая реализация .Net framework для других платформ? Я думаю, что комментарии Мигеля, возможно, были исключены из контекста, то есть почему статья была вытащена из исходного сайта. Да, MS упустила возможность, но это не делает ее плохой или неправильной платформой. Miguel продолжил с Mono, чтобы создать MonoTouch, чтобы включить .NET-разработку на iPhone, что не указывает на то, что .Net как-то смертельно испорчен. – Lazarus

+0

На самом деле, SO даже обслуживает добавочные файлы для MonoTouch :) –

1

Вы также можете попробовать Qt. Вы можете использовать платформу Visual C++ для Windows и g ++ с другими платформами (Mac/Linux). Это дает вам гораздо лучший графический интерфейс, чем может дать Моно.

+0

спасибо за ответ. – Thilanka

Смежные вопросы