Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > и разве это культурно? ... я про среду разработки!


Автор: cmygeHm 29.12.2009, 22:59
Ребят. Я вот все не могу никак воспринять Visual Studio как адекватную среду! Нет! Я не спорю, она может быть и потресающа! Только Вы мне одно объясните! Создаем приложения WindowsFormApplication, кидаем на него батон, щелкаем по батону, создается код метода и тут! Этот код внутри хедера в котором описан класс формы! Я и так, и сяк покрутился. Ну все думаю! Ладно! Значит у них так принято... Кодить методы прямо в классе! Прошло много времени, я еще много раз открывал Visual Studio, повторял всю процедуру и с печалью в душе закрывал её. Ну ни могу я воспринять этот факт как есть! Не могу и все! Вы мне скажите как Вы работаете? Профессионалы! Как Вы кодите методы? Тоже в хедере? Или есть какая настройка студии? А как кодят в программерских фирмах?

Буду благодарен за полноценный ответ! Спасибо smile

Автор: jonie 29.12.2009, 23:22
cmygeHm, руками-то перенести мама не разрашает?
и вообще "WindowsFormApplication" это что-то из области .NET, где принято как раз так как ты описал (у них вообще реализация и определения неразлучны в c# например)...

Автор: cmygeHm 29.12.2009, 23:29
Цитата(jonie @ 29.12.2009,  23:22)
cmygeHm, руками-то перенести мама не разрашает?

мне больше заняться нечем, кроме как оставшуюся жизнь майкрософтовские хедеры делить на реализацию и объявление??? smile 

Автор: Lazin 29.12.2009, 23:46
братюня, WinForms Application, это никак не стандартный С++, и есть у меня подозрение, что для managed кода нет смысла выносить что-либо в cpp файл

Автор: cmygeHm 29.12.2009, 23:58
Цитата(Lazin @ 29.12.2009,  23:46)
братюня, WinForms Application, это никак не стандартный С++, и есть у меня подозрение, что для managed кода нет смысла выносить что-либо в cpp файл

стандартный или нет, а пишут на нем С++ программисты, которые начинали с книг Бьерна Страуструпа и др..... И написали среду для них, а не для инопланетян!

Автор: jonie 30.12.2009, 00:06
Цитата

стандартный или нет, а пишут на нем С++ программисты
на нем пишут извращенцы, а не "С++ программисты", не надо нам тут рассказывать...
Это переходный язык узкоспециализированной направленности - обеспечение моста между managed и unmanaged... больше особо нафиг не сдалось это..

Автор: cmygeHm 30.12.2009, 00:19
[QUOTE=jonie,30.12.2009,  00:06]
Цитата

Это переходный язык узкоспециализированной направленности - обеспечение моста между managed и unmanaged... больше особо нафиг не сдалось это..

давайте поспокойнее smile))
Ребят!
А почему тогда среда (программисты visual studio) пользуется таким большим спросом?

Автор: jonie 30.12.2009, 00:43
cmygeHm, потому что удобна ?) (да еще и бесплатна для студентов... первая ложка она такая...)..да еще интегрируется в нее очень много всего. В общем это вопрос больше к менеджерам

Только среда и С++ мало связаны....

Автор: Vaulter 30.12.2009, 01:23
после нетбинса/эклипса VSка кажетсо убогой поделкой конца 90х

Автор: jonie 30.12.2009, 02:43
Vaulter, видал я нетбинс и С++... ага... умное дополнение кода тупит ужасно, в эклипсе вообще работает через раз (и то не всегда верно, когда работает)... в студии с этом имхо в разы лучше... про память я лучше промолчу вообще..... хотя сейчас поставлю нетбинс посмотрю.... а вдруг..

Автор: jonie 30.12.2009, 03:17
ну чего, быстрый старт в нетбинсе разобчаровал.
поставил последнюю версию netbeans, mingw, gdb, msys, все настроил ... создал типичный велкам проджект (тамошний шаблон заюзав).
итого: напрочь нетбинс не увидил библиотек (ну это скорее всего из-за ненастроенности mingw доконца)...
при этом сборка проходит на ура (да, даже exe получается)...
а вот run вываливается с красочным сообщением: "RUN FAILED"

По мне так это уныло. Очень уныло.

И вы хотите чтобы я ушел со студии на "это"?)) мне моё время дорого.

Автор: cmygeHm 30.12.2009, 07:01
давайте вернемя к самим вопросам:

Вы мне скажите как Вы работаете? Профессионалы! Как Вы кодите методы? Тоже в хедере? Или есть какая настройка студии? А как кодят в программерских фирмах?

smile Интересное рассуждение! Мне пришлось курсовую на eclipse написать, я замучился... Эти настройки, сбои.... VS действительно в этом плане сильна! Никаких сбоев! А вот релиазация в хедере! 

Автор: Lazin 30.12.2009, 09:28
Цитата(cmygeHm @  30.12.2009,  07:01 Найти цитируемый пост)
Вы мне скажите как Вы работаете? Профессионалы! Как Вы кодите методы? Тоже в хедере? Или есть какая настройка студии? А как кодят в программерских фирмах?
кодют на C# smile 

Цитата(cmygeHm @  30.12.2009,  07:01 Найти цитируемый пост)
Интересное рассуждение! Мне пришлось курсовую на eclipse написать, я замучился... Эти настройки, сбои.... VS действительно в этом плане сильна! Никаких сбоев! А вот релиазация в хедере!

видимо это ограничение дизайнера форм, если ты перенесешь методы в cpp файл, то дизайнер не сможет с ними работать, так что просто верни их туда откуда взял smile 

Автор: mrbrooks 30.12.2009, 10:05
Цитата(Vaulter @  30.12.2009,  01:23 Найти цитируемый пост)
после нетбинса/эклипса VSка кажетсо убогой поделкой конца 90х

да же CodeGear кажется эталоном кошерности супротив этих поделок.
Цитата(cmygeHm @  30.12.2009,  07:01 Найти цитируемый пост)
Вы мне скажите как Вы работаете? Профессионалы! Как Вы кодите методы? Тоже в хедере? Или есть какая настройка студии? А как кодят в программерских фирмах?

Одно скажу - пишущие на Managed C++ - конторы мне еще не попадались. Все остальное - как в спецификации к языку написано.

Автор: cutwater 30.12.2009, 10:18
cmygeHm, на С++/CLI пишут только извращенцы. Вы таки попробуйте другой тип проекта создать и определитесь с тем, что Вы изучаете.
 На C# это нормальная практика, так как там нет разделения кода на header file и source file.

Автор: GoldFinch 30.12.2009, 16:45
Цитата(Vaulter @  30.12.2009,  01:23 Найти цитируемый пост)
после нетбинса/эклипса VSка кажетсо убогой поделкой конца 90х

по сравнению с возможностями VisualAssistX - http://www.wholetomato.com/products/default.asp ,  
нетбинс и эклипс - это так, типа notepad++, только тормозят

Автор: cmygeHm 30.12.2009, 23:02
и ни один не смог доказать, что Visual Studio афигенная среда разработки! зато каждая фирма требует опыт разработки в VS!!!!!  После нового года зайду на сайт http://vacancy-tomsk.ru/ и каждой фирме,  что ищет программиста VS дам ссылку на эту тему!!!! посмотрим, что скажут они в свое оправдание!!!


ПОКА ЕЩЕ НЕ ОДИН НЕ СМОГ ПРИНЕСТИ ВЕСОМЫХ АРГУМЕНТОВ!!!!!!

Автор: jonie 30.12.2009, 23:29
cmygeHm, приведи аргументы что VS унылое ###.
Отличные генераторы кода (учитвая T4);
скорость работы самой среды;
поддержка microsoft специфичных расширений языка С++;
быстрый компилятор (учитвая инкрементальные билды, предкомпилируемые хедеры);
огромное количество дополнений;
отличный отладчик (такого gdb не умеет явно);
библиотека ATL (без нее COM особо не "тот") и MFC;
работа из коробки БЕЗ допиливания всяких конфигов (см выше мой коммент про нетбинс);
техническая поддержка продукта;
интеграция продукта в sharepoint server, TFS, MS Office, MSProject;
система записи отладочной информации от тестеров (в vs2010);
совмещение большого количествая языков в одной IDE (по-моему тут больше языков, чем, например, в нет бинсе);
+их отладка без пляски с бубном в настройках...

да много чего тут есть....

Автор: GoldFinch 31.12.2009, 00:22
cmygeHm, shift-1 сначала отожми

Автор: cmygeHm 31.12.2009, 08:29
Цитата(jonie @ 30.12.2009,  23:29)
cmygeHm, приведи аргументы что VS унылое ###.
Отличные генераторы кода (учитвая T4);
скорость работы самой среды;
поддержка microsoft специфичных расширений языка С++;
быстрый компилятор (учитвая инкрементальные билды, предкомпилируемые хедеры);
огромное количество дополнений;
отличный отладчик (такого gdb не умеет явно);
библиотека ATL (без нее COM особо не "тот") и MFC;
работа из коробки БЕЗ допиливания всяких конфигов (см выше мой коммент про нетбинс);
техническая поддержка продукта;
интеграция продукта в sharepoint server, TFS, MS Office, MSProject;
система записи отладочной информации от тестеров (в vs2010);
совмещение большого количествая языков в одной IDE (по-моему тут больше языков, чем, например, в нет бинсе);
+их отладка без пляски с бубном в настройках...

да много чего тут есть....

это все отлично! меня это радует! Это весомые аргументы!

Ты мне скажи почему методы генерируются в хедере! Это что? фишка такая? Это теперь модно???? smile 

Или это просто монополизация майкрософта: "А давайте сделаем так, чтобы теперь все программисты в мире кодили так как мы хотим! Пусть кодят методы в хедере!". А завтра что будет????  smile

Добавлено через 1 минуту и 19 секунд
Цитата(GoldFinch @ 31.12.2009,  00:22)
cmygeHm, shift-1 сначала отожми

не понял! нажал, попал вниз страницы и что? там ответ про VS ???? smile 

Автор: jonie 31.12.2009, 11:20
Цитата

Ты мне скажи почему методы генерируются в хедере! Это что? фишка такая? Это теперь модно???? smile 
да, так сейчас модно. Ты пишешь на языке C++ CLI - чего ты хочешь? Там так дейсвительно модно.

Автор: cutwater 31.12.2009, 12:16
cmygeHm, сударь, Вы таки не поняли своей основной ошибки. Вы создали НЕ С++ проект и пишите НЕ на языке С++. Так что прежде чем поливать грязью средства разработки извольте в них разобраться.

Автор: cmygeHm 31.12.2009, 13:45
Цитата(cutwater @ 31.12.2009,  12:16)
cmygeHm, сударь, Вы таки не поняли своей основной ошибки. Вы создали НЕ С++ проект и пишите НЕ на языке С++. Так что прежде чем поливать грязью средства разработки извольте в них разобраться.

вы хоть одно грызное слово слышали от меня?

я только добиваюсь правды!

Автор: GavriKos 31.12.2009, 16:07
cmygeHm, сначала пойми отличие среды разработки (IDE) от языка. Потом дополни это надстроками над языком. Студия тут совершенно не виновата. Скорее всего как написано в спецификации надстроки, проект которой ты создал, так студия и делает. И, как выше уже было сказано, виндовзформс - это скорее всего дотнет. В с++ насколько я помню форм нет вообще. И окон тоже. Окна там делаются либо винапи, либо мфс, либо еще что нибудь (виджеты, куте и т.д.) - но все равно это будет с++.

Кстати не совсем понял, что тебе не нравится в том, что метод определен в хидере. по моему нормально вполне. Особенно если это метод кнопки - она дочерняя от формы и по ООП вполне нормально, что ее методы объявлены в классе формы. Кстати, в мфс можешь спокойно (средствами той же студии) вынести оттуда эти методы - приурти к кнопке свой класс ;-) 

Ну и свои плюсы касательно студии:
-большая поддержка
-интеграция с мсдн
-хорошее автодополнение кода
-ОНО СРАЗУ РАБОТАЕТ! (приходилось как то настраивать кодблокс...)
-все быстро и удобно
-лично мне нравится интерфейс - можно хорошо под себя настроить
-распространенность - если ты пишешь под студией, то вероятность того, что прийдешь к другому человеку и у него тоже студя больше, чем когда у тебя скажем нетбинс или еще что то.
-стандартизированность - в нескольких доках от зарубежных компаний видел рекомендации, чтобы продукт был собран студийным компилятором (на IDE им в данном случае все равно, но все же).

Автор: cmygeHm 31.12.2009, 16:33
GavriKos, более полный хороший ответ. Но все же мне не нравится, что реализация методов проходит в классе! Меня это действительно напрягает smile 

Автор: Oxy 31.12.2009, 17:14
а мне нравится smile

Добавлено через 42 секунды
Цитата(cmygeHm @  31.12.2009,  13:45 Найти цитируемый пост)
я только добиваюсь правды! 


Цитата(cmygeHm @  31.12.2009,  16:33 Найти цитируемый пост)
Но все же мне не нравится, что реализация методов проходит в классе!

 smile 

Автор: Vaulter 31.12.2009, 22:33
Цитата(GoldFinch @  30.12.2009,  17:45 Найти цитируемый пост)
по сравнению с возможностями VisualAssistX 

ставили, смотрели, теперь надоедает окошком что триал кончилсо. Ломать - вломы, платить тем более.

Цитата(jonie @  31.12.2009,  00:29 Найти цитируемый пост)
совмещение большого количествая языков в одной IDE (по-моему тут больше языков, чем, например, в нет бинсе);

Java ??? JSF??? вот так новости smile



Цитата(GavriKos @  31.12.2009,  17:07 Найти цитируемый пост)
если ты пишешь под студией, то вероятность того, что прийдешь к другому человеку и у него тоже студя больше, чем когда у тебя скажем нетбинс или еще что то

мда. бывало, три дня потрахаешсо в венде (где все работает), окажется, что какая-нибудь завалящая бибка (dll) была собрана в VS2008, а проект в VS2005. 

Для справки - 
Цитата(cmygeHm @  31.12.2009,  09:29 Найти цитируемый пост)
быстрый компилятор

не должен быть частью IDE (но может быть bundled)
ant, maven, gcc что-нибудь говорит? smile

впрочем, как и VS так и в других есть свои плюсы и минусы.
Однако для с/с++ предпочитаю NetBeans когда целевая платформа Linux и VS для винды. Так-то ;)

VS - корпоративный стандарт. без этого никуда. Однако в личных целях ..... 

Автор: cmygeHm 1.1.2010, 02:50
всех с новым годом!

Автор: GavriKos 2.1.2010, 15:00
Цитата

ant, maven, gcc что-нибудь говорит?


Более чем ;-) Только вот чтобы скажем гцц заработал с какой нить иде, нужно немного посидеть и подумать, а студия работает сразу. Хотя сам использую сейчас кодеблоксы - и под виндой, и под линухом. Под виндой настроена работа с компиляторами гсс (мингв) и студийным 2003. Кстати вспомнил еще один "плюс" - во многих солюшенах к разным вещам идут примеры именно к студии. Так например есть библиотечка такая хге. В туториале - пример как настроить студию для работы с ней. А вот потом попробуйте подружить ее с другой иде - будут грабли ;-)

Цитата

Но все же мне не нравится, что реализация методов проходит в классе!


Я что то не понял. А где их реализовывать?
Тебя напрягает  конструкция вида:

Код

void MyClass::MyMethod()
{
}


или как? 

Автор: SVN74 2.1.2010, 15:50
Микрософтовский VS неуклонно переводит нас с С++ на С#.NET и с этим ничего не поделать...
Идея "микрософтовских" заключается в постепенном переводе всех программеров под свой "контроль", и пройдет совсем не много времени и вы уже не сможете создавать ничего (своего) секретного и губительного для Винды (если вам это конечно нужно будет),  тем самым  микрософт пролаживает себе дорогу к самой безопасной и стабильной Винде в мире (в будущем).
============
А по теме: 
По мне так в VS MFC  построение кода запутанней, чем CLR,  почему я в свое время и перешел на Builder.
Отсутствие в VS логичного расположения заголовков и реализаций, да - это их стиль, и с этим увы, ничего не поделать.
============
Поэтому, если это вас раздражает, то может стоит попробовать свои силы в других средах.
Я лично для себя выбрал Builder по двум причинам:
1. Это логичное и приятное расположение всего кода по правилам С++
2. Это спрятанность кода обще принятой реализации самой формы на VCL, тем самым создавая программисту ощущение, - что формы это неотъемлемая часть С++ , хотя сам С++ не имеет ничего общего с визуализацией.
 

Автор: GavriKos 2.1.2010, 17:18
Цитата

2. Это спрятанность кода обще принятой реализации самой формы на VCL, тем самым создавая программисту ощущение, - что формы это неотъемлемая часть С++ , хотя сам С++ не имеет ничего общего с визуализацией.


А некоторым это не нравится ;-)

Автор: SVN74 2.1.2010, 17:35
Цитата(GavriKos @  2.1.2010,  17:18 Найти цитируемый пост)
А некоторым это не нравится ;-) 

Конечно, это дело вкуса и потребностей...

Автор: Earnest 2.1.2010, 17:48
Цитата(cmygeHm @  31.12.2009,  00:02 Найти цитируемый пост)
После нового года зайду на сайт http://vacancy-tomsk.ru/ и каждой фирме,  что ищет программиста VS дам ссылку на эту тему!!!! посмотрим, что скажут они в свое оправдание!!!

Я сейчас от смеха помру... как представлю: приходит ко мне сопливый вчерашний студент и начинает предъявы кидать - типа почему это ты используешь VS в своих разработках, когда есть другие средства, которые мне гораздо больше нравятся. А то я тебе сейчас ссылку на форум дам!
Ох, не оценят потенциальные работодатели твоего юмора... smile 

Автор: 586 3.1.2010, 00:15
Цитата(Vaulter @  31.12.2009,  22:33 Найти цитируемый пост)
Для справки - 
Цитата(jonie @  30.12.2009,  23:29 Найти цитируемый пост)
быстрый компилятор


не должен быть частью IDE (но может быть bundled)
ant, maven, gcc что-нибудь говорит?

а компилятор Майкрософт и не является частью IDE - этот компилятор называется cl.exe. Можно компилировать из командной строки безо всяких IDE.

По теме.
То, что Managed-классы определяются в заголовке - ничего в этом страшного нет.  При подключении такого заголовка куда-либо данные дублироваться не будут, при условии, что эти данные принадлежат платформе .Net. В C# тоже так делается. Для managed классов это нормально.
Вы можете напиасать сколько угодно реализаций Managed-класса  Form1. Но если хотя бы одна реализация отличается, то будет выдана ошибка, и ничего не скомпилируется. А с C++ классами по другому.

Автор: cmygeHm 20.3.2010, 11:32
Цитата(SVN74 @  2.1.2010,  15:50 Найти цитируемый пост)
то спрятанность кода обще принятой реализации самой формы на VCL, тем самым создавая программисту ощущение, - что формы это неотъемлемая часть С++ , хотя сам С++ не имеет ничего общего с визу



Я выбрал Builder  на втором курсе, пользуюсь им три года, он мне очень нравиться по причинам:

1. Это логичное и приятное расположение всего кода по правилам С++
2. Это спрятанность кода обще принятой реализации самой формы на VCL, тем самым создавая программисту ощущение, - что формы это неотъемлемая часть С++ , хотя сам С++ не имеет ничего общего с визуализацией.

Но меня постоянно упрекают, мол не серуозный ты программист, если кодишь в Билдере, а не в Вижуал Студии.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)