Я программирую уже 5 лет под Windows, и не имею осбо опыта програмирования под Linux и Unix. Теперь мне надо писать проект чтоб клиент мог бы запускаться на всех выше перечисленых платформах, в связи с этим у меня возникло несколько вопросов.
Как написать клиент чтоб компелировался на разных платформах.
Не лучше лли написать два разных клиента один для Windows (.NET) а другой для Linux + Unix.
Может кто посоветует хорошие статьи на эту тему.
И еще по поводу сервера, но тут уже более комерческий вопрос, не стоит ли сервер писать только под Windows, ведь клиенту все равно какой там сервер, TCP везде TCP.
Сервер пишешь на "Ансёвом" С, вот тебе и совместимость. Что до клиента, то я его вообще бы писал на Яве, в виде апплета, с загрузкой с сервака: тогда проблема апгрейда клиентов решается автоматически.
Тоже самое хочется предложить, но...28.10.03 09:49 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 28.10.03 09:50 Количество правок: 1
> Сервер пишешь на "Ансёвом" С, вот тебе и совместимость. Что > до клиента, то я его вообще бы писал на Яве, в виде > апплета, с загрузкой с сервака: тогда проблема апгрейда > клиентов решается автоматически.
Самый главный выбор - это одноплатформенность или многоплатформенность/платформонезависимость. Этот выбор, видимо, уже сделан.
На счет стандарта выбирать не приходится - это Анси-Си, Ричи/Керниган-Си, можно даже Страустраповский Си++.
Пользоваться только стандартными библиотеками! Поскольку в стандартной библиотеке реализован только консольный ввод/вывод - то интерфейс летит к черту. Хорошо, что в виндовсе осталась командная строка и поддержка АНСИ-терминала. придется все действия в виде команды с параметрами делать.
Еще в стандартной библиотеке нет работы с сетью (ТиСиПи/АйПи) на соответствующем уровне ОСИ. Только файловый.
Иногда (не очень плохой метод) разработчики идут по такому пути: Отдельно (в отдельном маленьком модуле) пишется аппаратно/системно зависимая часть. Их, разумеется, будет столько, сколько платформ поддерживает ПО. Обычно наибОльшая часть кода - бизнес-логика останется неизменной.
Есть несколько возможностей :)
1) как выше было замечано пользоваться стандартом
(кстати вышел новый стандарт а никто даже не заикнулся об этом
чо никому не надо чтоли? :)
2) есть версии библиотек портированых на разные платформы
но тут есть подводные камни всех нюансов я не знаю но напривление
такое
3) пользовать кроссплатформеными извратами :) вроде явы
и средствами Борланда Билдерами (кстати вышел Билдер под линух
уних написаный на яве :)
> 1) как выше было замечано пользоваться стандартом > (кстати вышел новый стандарт а никто даже не заикнулся > об этом - чо никому не надо чтоли? :) А что, есть pdf-ник? :) Я бы не отказался, но он же денег стоит...
> 2) есть версии библиотек портированых на разные платформы > но тут есть подводные камни всех нюансов я не знаю но > напривление такое Могу точно сказать, что Qt и wxWindows очень и очень неплохо справляются с переносимостью между N*X и Windows. wxWindows, кроме того, претендует на то, чтобы перенестись на MacOS. Если бы передо мной стояла подобная задача, я бы не задумываясь выбрал wxWindows.
> 3) пользовать кроссплатформеными извратами :) вроде явы > и средствами Борланда Билдерами (кстати вышел Билдер > под линух уних написаный на яве :) Ява - это хорошо, но требует специальной поддержки (=виртуальной машины) на целевой платформе. Не могу сказать, что оно есть на всем подряд. Кроме того, Ява предъявляет повышенные требования к аппаратной части. А переносимые библиотеки можно использовать везде, куда (не где, а куда, замечу) есть компилятор C++, и с производительностью на слабых машинах тоже все в порядке.