Делается клиент-серверное приложение.
Серверная часть будет работать на выделенном сервере в интере (на постоянном ip) и просто через порты по UDP обменивается пакетами с клиентами через Интернет. Сервер представляется собой чистую консольную прогу на вижуал cpp 5.0 (ессно многопоточную, версия компилятора конечно старая, но меня вполне устраивает, работает - и зашибись). Серверная часть уже процентов на 70 написана. В программе довольно сложные алгоритмы и много сложных данных (в основном это большущие классы объектов). То что программа консольная и написана фактически на чистом cpp – позволяет надеяться на её переносимость и под какой-нибудь линуксойдный сервак, но пока не знаю, понадобится ли это.
С клиентом хуже. Как собственно программа он ещё не зачат, однако он должен использовать некоторое подмножество классов и функций из серверной части, плюс конечно собственная начинка. Некоторые оригинальные изолированные модули клиента уже написаны и отлажены на том же cpp (в командной строке, поскольку собссно пользовательский интерфейс ещё не программировался). Собссно пользователи будут скачивать в интере клиент и потом работать с сервером через интер. Интерфейс клиента будет не то чтобы очень сложным (никаких особых извращённых контролов, всё стандартное, приложение не мультидоковое, а обычное dialog based), однако достаточно объёмным. Десятки форм, некоторые очень большие, со вкладками и т.д. Графики никакой нет, кроме элементарного показа бмп в соответсвующих контролах.
Объём дистрибутива клиента не должен превышать 4 метров, а работать должен даже на 98х. Причём я не могу потребовать от пользователя скачивание всяких дополнительных 30 метровых рантаймов. Клиент должен работать на самой обычной (вплоть до 98й) голой стандартной винде.
ВОПРОС! На чём делать клиента?!
Пока я рассматриваю со своей, в силу чайниковости, конечно, невысокой колокольни, следующих кандидатов:
ВИЖУАЛ ВАСЯ.
Плюсы:
Потрясающая детскость в лабании интерфейса. Я просто влюблён в эту простоту и непосредственность. Такой простоты я нигде пока не видел.
Минусы:
Там где кончается интерфейс и начинаются алгоритмы, Вася сразу сдувается как проколотый шарик. Да и основная логика программы УЖЕ написана на cpp. Следовательно придётся выносить всё накопленное в длл и писать сложную кучу обёрток. Более того, это обёртывание осложняется тем, что на срр не просто изолированные функи (сложить два числа, извлечь корень : )), а работа со сложными данными. Как я понимаю, в длл данные жить не могут (поправьте, если я не прав), следовательно всё надо будет держать в Васе, и извращаться по поводу передачи всего в длл. Короче гимор, но как же прелестно делать интерфейсы на Васе! Кстати, я имел опыт по созданию 2х проектиков (правда там данные были ну очень несложной структуры), когда интерефейс писался на Васе, а основные расчёты делались на консольной плюсовой проге, запускавшейся в скрытом окне. Вася просто рубил потом процесс и всё. А данные в плюсы передавались через файл. Схема, хоть и чистой воды извращение, мне очень понравилась, но масштабируемость у неё, как мне кажется, никакая, а жаль.
MSVCPP.
Плюсы:
Наработанное «до» будет родным и не придётся его мучительно встраивать.
Минусы:
Ненавижу я мфси. А писать такую прогу на АПИ, легче повеситься. Как-то давно писал программу на мфси, обычное single document приложение, так опплевался весь. Ну невозможно локализоваться от всех этих мфсишных какашек. Ну не родная мне программа получилась, не чуйствовал я её до конца. Да и учить мфси серьёзно надо, а не наскоками, а на это нет ни времени, ни желания.
СИ ДИЕЗ.
Плюсы:
Из того что вскользь увидел думаю, что по примитивизму до Васи ему далеко.
Минусы:
Размер дистрибутива опять же, за счёт того, что рантайм тащить за прогой надо. Да и как там заработает уже написанный код, тоже вопрос. В общем на диезе ещё не писал, но покрутив в руках 10 минут, могут сказать – мне там особенно ничего не понравилось.
В общем я не прочь написать интерфейс клиента и на с++, но только не на мфси, подскажите что-нить простое и удобное.
Короче, помогите, а то сроки все уже к позавчера, а пока главное решение так и не принято.