Кроссплатформенность

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Кроссплатформенность

Сообщение ndemidov » 01.04.2010 (Чт) 17:45

Есть проект, написан на VB.NET, как сделать, чтобы он работал под другие ОС?
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Кроссплатформенность

Сообщение Proxy » 01.04.2010 (Чт) 17:57

Например? .NET Framework в помощь. На Windows Mobile (Compact Framework) - никаких проблем, на SUN Solaris вроде как тоже.
Follow the white rabbit.

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Кроссплатформенность

Сообщение ndemidov » 01.04.2010 (Чт) 18:15

Ну, я хочу, чтобы программа (это приложение Windows Forms, написанное на VB.NET, Framework 3.5) работало под Linux и под как можно больше др. ОС. Вот как этого добиться?
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Кроссплатформенность

Сообщение Roman Koff » 01.04.2010 (Чт) 18:36

Не заморачивайся. Если хочешь, чтобы работало на других платформах пиши на кроссплатформенных решениях, например на Java.
Можно, конечно, смотреть в сторону dotGNU и Mono, но это удел фанатов, которые обычно подобных вопросов не задают.

Можешь посмареть например здесь http://www.nestor.minsk.by/kg/2006/03/kg60309.html
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Кроссплатформенность

Сообщение ndemidov » 01.04.2010 (Чт) 19:08

Отрывки из статьи:
Для CLR, реализованного в Mono, уже разработано несколько высокоуровневых языков: C#, VB.NET, Java, Nemerlie, Boo.

Чего нет в Mono, что есть в MS .NET? ... Думаю, сюда же нужно добавить и Windows.Forms. На самом деле они, конечно, реализованы в Mono (для UNIX-систем на основе Wine), и притом неплохо. Вот только их реализация от Microsoft меняется чаще, чем погода осенью, и совместимости с ней добиться слишком сложно.


Спасибо, ситуация проясняется. И вот последний вопрос: Правда, что:

Если проект написан в MS VS на C#, то он будет работать под любой ОС, где установлен ест-но .NET Framework?
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Кроссплатформенность

Сообщение Roman Koff » 01.04.2010 (Чт) 19:56

По определению - да
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Кроссплатформенность

Сообщение ndemidov » 01.04.2010 (Чт) 20:34

Тогда может мне конвертировать каким-нибудь конвертером проект в C# и дальше всё будет как по маслу?
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Кроссплатформенность

Сообщение iGrok » 01.04.2010 (Чт) 21:28

ndemidov писал(а):Тогда может мне конвертировать каким-нибудь конвертером проект в C# и дальше всё будет как по маслу?

А смысл? Если проект написан на VB.NET, он точно также "по определению" будет работать везде, где установлена соответствующая версия .NET-фреймворка.

З.Ы. Тебя самого-то не смущает слово "кроссплатформенность" в сочетании с выражением "Windows Forms"?
Хочешь, чтобы программа без перекомпиляции гарантированно работала везде - пиши на яве.
Хочешь писать на относительно знакомом языке - пиши на шарпе под Моно, и рисуй гуи на Gtk#.
Впрочем, в этом случае ява ничем не хуже шарпа..
label:
cli
jmp label

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Re: Кроссплатформенность

Сообщение VVitafresh » 01.04.2010 (Чт) 22:36

ndemidov писал(а):Думаю, сюда же нужно добавить и Windows.Forms. На самом деле они, конечно, реализованы в Mono (для UNIX-систем на основе Wine), и притом неплохо.

Это неверная (или устаревшая) информация. Реализация Windows Forms под Mono не имеет никакого отношения к Wine. В моно реализован свой драйвер для вывода графической инф-ии через System.Drawing:
System.Windows.Forms in Mono is implemented using System.Drawing. All controls are natively drawn through System.Drawing. System.Windows.Forms implements its own driver interface to communicate with the host OS windowing system. Currently, we have drivers for X11, Win32, and OSX. These drivers translate the native window messages into WndProc compatible messages, to provide as much compatibility with native .Net as possible.

Хотя платформа Mono уже достаточно зрелая и программы с графическим интерфейсом на WinForms под ней работать будут, стабильности все равно не хватает. У меня на работе есть программа с графическим интерфейсом, написанная на C#, которую запускают в линуксе под моно и она (о чудо!) работает. Правда, иногда вылетает без всяких сообщений об ошибке и записей в лог-файл :evil:

ndemidov писал(а):Тогда может мне конвертировать каким-нибудь конвертером проект в C# и дальше всё будет как по маслу?
По идее не должно быть разницы написана была программа на C# или на VB.NET, т.к. все равно результатом компилации будет байт-код, требующий для выполнения фреймворк.

А что хоть за программа у тебя, какие задачи выполняет?
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Кроссплатформенность

Сообщение alibek » 01.04.2010 (Чт) 22:58

ndemidov писал(а):Тогда может мне конвертировать каким-нибудь конвертером проект в C# и дальше всё будет как по маслу?

Не может. Такое бывает только для Hello World, и то не всегда.
Lasciate ogni speranza, voi ch'entrate.

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Кроссплатформенность

Сообщение ndemidov » 02.04.2010 (Пт) 1:19

VVitafresh писал(а):А что хоть за программа у тебя, какие задачи выполняет?


Программа с сайта, который у меня в профиле - игра в слова. А задался я этим вопросом, потому что участвую в соревнованиях ImaginaCup. В категории Software Design я ездил в четверть финала в Казань (MS оплатила мне билеты на самолёт в Казань через Москву (!), т.е. я всего летал 4 раза эконом классом, и гостиницу; в Казанском гос. ун-те был вицепрезидент кажется MS, на англ. говорил его преводили и през.МС-Рос. Прянишников), где не вошёл в первую тройку (победил опять парень с командой из Нижнего Новгорода, они в том году в Египте заняли второе место). Сейчас ещё есть возможность участвовать в категории Конкурс интероперабельных приложений направлен на проекты, использующие технологии Майкрософт совместно с открытыми стандартами и технологиями. В конкурсе участвуют команды до 4-х студентов или аспирантов. Срок подачи – до 5 мая 2010 г. Подробности – тут. Приз за первое место - $8000 и поездка в Варшаву. http://imaginecup.com/Competition/mycom ... itionId=42

Я, правда, не очень понял что там надо делать, вот подумал сделать кроссплатформенность (красивое слово :) шутка).
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Кроссплатформенность

Сообщение Dmitriy2003 » 02.04.2010 (Пт) 2:13

Да да... я вто тоже почитал и сразу захотел написать крос/()&%ю программу, но увы вышло тока так
Код: Выделить всё
using System;
using System.Windows.Forms;

namespace Powdered.Brains
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ToDo();
        }

        static void ToDo()
        {
            MessageBox.Show("Куплю автомат калашникова.", "Let's kill him...",
                MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
    }
}

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Кроссплатформенность

Сообщение Roman Koff » 02.04.2010 (Пт) 9:02

Есть еще вариант писать веб-приложения. Пользователю будет абсолютно всеравно, какая у него платформа. Но это вариант не для ленивых.
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Re: Кроссплатформенность

Сообщение VVitafresh » 02.04.2010 (Пт) 9:23

Roman Koff писал(а):Есть еще вариант писать веб-приложения. Пользователю будет абсолютно всеравно, какая у него платформа.

+1
От клиента требуется только нормальный браузер и не имеет никакого значения в какой операционке он запущен. Так же как и не имеет значения в какой операционной системе запущен WEB-сервер.

Кстати, насколько я знаю, с развертыванием ASP.NET приложения на линуксовом сервере (Apache + mod_mono) особых проблем быть не должно, там все уже достаточно гладко.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList  
cron