Вот появилась необходимость написания программ для Windows. В качестве среды разработки решил выбрать MSVS2005, но вот возник вопрос с чего начинать? Программировать умею на C, недавно прочел несколько книг по C++, более или менее разобрался с ООП, но после этого возник другой вопрос, в какую сторону комать дальше MFC, WTL, CLR или что-то другое?
З.ы. Задача у меня такая, написать клиент-приложение для работы с удаленным сервером. И самое главное, что бы этот клиент без проблем работал в Win9x/WinMe/Win2k/WinXP.
З.ы.ы. Все откликнувшимся заранее огромное спасибо, что вы уделили несколько минут на ответ безнадежному чайнику
Здравствуйте, BlackHeretic, Вы писали:
BH>Я бы писал на MFC — проще имхо для начинающего.
К сожалению надо не проще, а эффективно.
BH>ЗЫ А Win9x это типа Win95 тоже?
да именно он родимый.
Здравствуйте, mrdemon, Вы писали:
M>Вот появилась необходимость написания программ для Windows. В качестве среды разработки решил выбрать MSVS2005, но вот возник вопрос с чего начинать? Программировать умею на C, недавно прочел несколько книг по C++, более или менее разобрался с ООП, но после этого возник другой вопрос, в какую сторону комать дальше MFC, WTL, CLR или что-то другое?
MFC и WTL это оконные библиотеки. WTL, как надстройка над ATL ещё COM умеет. CRT — стандартная библиотека С++, не связана ни с тем, ни с тем, её можно и желательно использовать всегда.
Из оконных библиотек предпочитаю WTL. Но если от GUI ничего особоло не требуется (например, если программа консольная ), то можно не использовать ни то ни другое.
M>З.ы. Задача у меня такая, написать клиент-приложение для работы с удаленным сервером. И самое главное, что бы этот клиент без проблем работал в Win9x/WinMe/Win2k/WinXP.
Начинать надо с WinAPI и никаких MFC, WTL и иже с ними.
Будет трудно и конечно много мусора придеться изучить, но потом будешь понимать, что и как происходит в системе.
Здравствуйте, Vogul, Вы писали:
V>Начинать надо с WinAPI и никаких MFC, WTL и иже с ними. V>Будет трудно и конечно много мусора придеться изучить, но потом будешь понимать, что и как происходит в системе.
Спасибо большое за совет, я думаю так и поступлю. Лучше сразу идти по трудному пути, зато после будет намного легче
Здравствуйте, mrdemon, Вы писали: M>Спасибо большое за совет, я думаю так и поступлю. Лучше сразу идти по трудному пути, зато после будет намного легче
Вопрос как правило в стоимости, по крайней мере у меня на работе. До сих пор пишу на MFC, хоть и знаю что на WTL программы будут компактнее и гибкости больше. Причина проста. Размер и соответственно сложность моих проектов таковы, что при написании на WTL я буду тратить на их разработку и поддержку на 2-3 месяца в году больше. И получается что фирме это влетит в лишнюю оплату этих месяцев. Учитывая во сколько я обхожусь фирме, намного проще для моих внутрефирменных юзеров купить больше пямяти и мощнее оборудование. Да и это как правило не нужно, так как GUI уже давно перестало быть критичным к мощностям (я не говорю о мастодонтах, сидящих на первых пнях ).
В общем исходите из целесообразности. Знайте все, а пишите на том что наиболее оптимально подходит к конкретной задаче
Здравствуйте, BlackHeretic, Вы писали:
BH>В общем исходите из целесообразности. Знайте все, а пишите на том что наиболее оптимально подходит к конкретной задаче
Знаю, знаю, на РСДН неприлично замечать орфографические ошибки. А семантические ?
Добавлять к "оптимально" "наиболее" — значит снижать весомость совета
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, mrdemon, Вы писали:
M>>Вот появилась необходимость написания программ для Windows. В качестве среды разработки решил выбрать MSVS2005, но вот возник вопрос с чего начинать? Программировать умею на C, недавно прочел несколько книг по C++, более или менее разобрался с ООП, но после этого возник другой вопрос, в какую сторону комать дальше MFC, WTL, CLR или что-то другое?
SH>MFC и WTL это оконные библиотеки. WTL, как надстройка над ATL ещё COM умеет. CRT — стандартная библиотека С++, не связана ни с тем, ни с тем, её можно и желательно использовать всегда.
Здравствуйте, kero, Вы писали:
K>Знаю, знаю, на РСДН неприлично замечать орфографические ошибки. А семантические ? K>Добавлять к "оптимально" "наиболее" — значит снижать весомость совета
Спасибо
Но орфография и семантика могут проистекать как из того что человек малограмотен, так и из того, что он мало общается по русски, читай забывает его
ЗЫ Я и так по три раза проферяю текст на предмет ляпов перед тем как отправить
Здравствуйте, BlackHeretic, Вы писали:
BH> Спасибо BH> Но орфография и семантика могут проистекать как из того что человек малограмотен, так и из того, что он мало общается по русски, читай забывает его BH> ЗЫ Я и так по три раза проферяю текст на предмет ляпов перед тем как отправить
Тьфу, не посмотрел, откуда сообщение, так что прошу пардону, искренне, черт меня дернул.
Наверное, домозолило-таки глаза который день висящее вверху РСДН: "Самый оптимальный тариф для любого сайта"...
Хотя Visual C++ и позволяет писать managed (и mixed) code, IMHO — это изврат, один тошнотворный синтаксис чего стоит — годится разве что для написания врапперов чего-нибудь нативного, но не для разработки приложений. Если уж связываться с .NET (IMHO, .NET == глючный, тормозной, тяжеловесный код + гарантированный геморрой с runtime и его версиями) — брать C#.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Вертер, Вы писали:
В>>CLR != CRT
А>CLR == .NET == managed code
А>Хотя Visual C++ и позволяет писать managed (и mixed) code, IMHO — это изврат,
для защиты (функций и модулей, для выполнения критический вещей)...
А>один тошнотворный синтаксис чего стоит —
это дело привычки, а не религии...
А>годится разве что для написания врапперов чего-нибудь нативного, но не для разработки приложений.
зависит от задач, условий и других критериев. Не надо быть категоричным...
А>Если уж связываться с .NET (IMHO, .NET == глючный, тормозной, тяжеловесный код + гарантированный геморрой с runtime и его версиями) — брать C#.
религия?!
Re[4]: Начало
От:
Аноним
Дата:
20.12.05 12:33
Оценка:
Здравствуйте, Andrew S, Вы писали:
BH>>>Я бы писал на MFC — проще имхо для начинающего. M>>К сожалению надо не проще, а эффективно.
AS>Тогда — WTL.
Что означает слово"эффективно" в данном контексте? Скорость разработки или же скорость выполнения программы?
Я рекомендовал бы MFC. В ATL/WTL вы сейчас вряд ли разберётесь (исхожу из вашего писания имеющихся skills). С точки зрения производительности/размера программы MFC действительно несколько проигрывает ATL/WTL, но это умозрительно — для современного компьютера пара лишних тактов или лишние 200 КБ размера модуля не принципиальны. Но писать UI с MFC заметно быстрее (и проще для новичка). Надо заметить, что MFC, IMHO, бесполезен вне задач связанных с написанием UI.
Re[5]: Начало
От:
Аноним
Дата:
20.12.05 12:40
Оценка:
Здравствуйте, Вертер, Вы писали:
А>>Если уж связываться с .NET (IMHO, .NET == глючный, тормозной, тяжеловесный код + гарантированный геморрой с runtime и его версиями) — брать C#.
В>религия?!
Критика .NET — это "IMHO". По делу — совет писать под .NET на C#, а не на С++, кроме исключительных случаев.
Что касается .NET — он бы мне лично очень нравился, если бы действительно всё было так хорошо, как Майкрософт рассказывает.
Re[4]: Начало
От:
Аноним
Дата:
20.12.05 12:47
Оценка:
Здравствуйте, BlackHeretic, Вы писали:
BH>Здравствуйте, mrdemon, Вы писали: M>>Спасибо большое за совет, я думаю так и поступлю. Лучше сразу идти по трудному пути, зато после будет намного легче
BH>Вопрос как правило в стоимости, по крайней мере у меня на работе. До сих пор пишу на MFC, хоть и знаю что на WTL программы будут компактнее и гибкости больше. Причина проста. Размер и соответственно сложность моих проектов таковы, что при написании на WTL я буду тратить на их разработку и поддержку на 2-3 месяца в году больше.
Аналогично. UI пишу на MFC + MFC-based third party libraries, остальное — ATL + STL + всё что угодно.
ок...
А>По делу — совет писать под .NET на C#, а не на С++, кроме исключительных случаев.
А>Что касается .NET — он бы мне лично очень нравился, если бы действительно всё было так хорошо, как Майкрософт рассказывает.