| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > C++(MFC) vs C#(WindowsForms) |
| Автор: it_medved 26.4.2008, 00:08 | ||||
| Полтора года я программировал на VC++ - и радовался жизни, пока не узнал С# - очень удобный язык и технология в общем. Потом ~год программировал на C#. Сегодня решил вспомнить "молодость" и написать чево-нибудь на С++, додумаля просто нарисовать крассный квадратик. Так вот, на это простое действие ушло 20 минут, это очень много для такой незначительной задачи, а как вспомню ODBC, CSocket's так это вообще, ховайся. Это пример отрисовки квадратика на C#:
А это чудовище на С++:
Я вообще теперь не понимаю - почему в MFC все если честно говоря как через эту самую точку выхода? Неужели нелья было сразу сделать так, как в C#? Зачем такие сложности как указатели, ссылки, множественное наследование, а эти страшные DLL... И еще очень раздражает оператор стрелочка -> - пока наберешь уже забудешь для чего ты его писал... Вобщем почуствовав что такое сишарп, я полностью разочаровался в С++. Единственное преимущество С++ как по моему - это возможность LL Hooks да и все вроде... |
| Автор: Ch0bits 26.4.2008, 00:32 | ||
Сразу видно что ты "Полтора года программировал на VC++ - и радовался жизни" QT |
| Автор: it_medved 26.4.2008, 00:38 | ||
Так в том то и прикол что раньше это казалось обыденным, а сейчас набирание стрелочки вызывают определенные трудности)))
А я проверял - не пашет тошо он создает не указатель а там нада именно указатель. и зачем эти указатели? :( Добавлено через 4 минуты и 56 секунд а про QT я только краем уха слышал |
| Автор: Mayk 26.4.2008, 08:18 | ||
лучше бы про MFC краем уха слышал. Узрей:
|
| Автор: mr.DUDA 26.4.2008, 09:43 |
Узри... на ум приходит: "Трепещи о несчастный !!! Ктулху пробуждается !!!" Добавлено через 4 минуты и 22 секунды WPF ! |
| Автор: Lazin 26.4.2008, 10:14 |
WTF!!! |
| Автор: vinter 26.4.2008, 11:33 |
| раз уж мы в курилке надо сворачивать тему в другое русло... поделюсь своими соображениями. Тема связана с Майкрософтом, а следовательно с Америкой исходя из этого смысл темы получается следующим: некий агент ЦРУ, по заданию правительства Буша, проводит агитацию по уничтожению ядерного оружия в России, поясню: стрелочкой можно символически изобразить ракету, из этого нетрудно сделать вывод что речь идет о ракетах, а об обычных ракетах нет смысла разговаривать, следовательно речь идет о ядерном потенциале РФ, и призыве российского населения надавить на власть чтобы оная уменьшала(или полность уничтожала) ядерный потенциал. Ник пользователя выбран тоже не случайно B]it_medved[/B], в нем можно увидеть часть фамилии недавно выбранного президента РФ, но чтобы интернет наслению было яснее фамилия была зашифрована в более понятной для рунетчиков форме. Так же исходя из ситуации с ПРО вокруг РФ, план Буша по агитации Российского населения и братских народов становится прозрачным... Кто что думает по этому поводу? P.S Исходя из того что автор предлагает более короткуб запись, можно сделать вывод, что целью данного топика является так же подрыв образования в РФ. Автор призывает убрать половину предметов из вузов, а оставшуюся часть урезать до невозможности, тем самым лишив современную молодеж способности мыслить.. Вообщем я раскрыл тебя подлый америкос, мы не поддадимся на твою агитацию! |
| Автор: mr.DUDA 26.4.2008, 12:43 |
http://forum.vingrad.ru/forum/index.php?show_type=forum&showforum=503 |
| Автор: anatox91 26.4.2008, 13:01 |
+1000000 |
| Автор: Str!pe 26.4.2008, 13:11 |
| Автор: it_medved 26.4.2008, 18:54 | ||||
Я не омерикоз, я притворяюсь QT,WTF - это может быть все хорошо, но преподавали нам MFC - другого выбора не было, и препод говорил, что это не С++ плохой, это MFC отстой... Добавлено @ 18:58
Сори, не знал что я пишу виндовс формс на WPF, думал просто на .Net Framework а оказывается это такая технология внедренная в технологию фрамеворка. |
| Автор: Fortop 26.4.2008, 19:00 |
| Хе-хе |
| Автор: Mayk 26.4.2008, 19:44 |
| а почему тема перемеща в курилку? Предлагается обсудить откаты в области образования? |
| Автор: it_medved 26.4.2008, 19:52 |
| ачепятки приводят к недоразумениям... |
| Автор: vinter 26.4.2008, 20:31 | ||
а я бы на твоем месте поучил, с помощью RTFM такое можно вытворять... |
| Автор: Fortop 26.4.2008, 20:47 | ||
Отжигаешь |
| Автор: it_medved 26.4.2008, 21:16 |
| шмешно Добавлено через 7 минут и 40 секунд RTFM преподавали - MSDN называется |
| Автор: it_medved 26.4.2008, 21:39 | ||
Вот наклепал за три минуты на сишарпе, цель проста - в таймере увеличивать число в едит/текст боксе
еще прикрутил едит бокс динамически. Так вот, неужели такая же аналогичная задача на MFC тоже будет решена так же просто и быстро? PS создал проект мфс что бы сделать аналог - и не нашел класса CTimer - он вроде так называется... :( |
| Автор: vinter 26.4.2008, 21:44 | ||
да |
| Автор: it_medved 26.4.2008, 21:46 |
| vinter, ну так может покажешь код? *или хотябы скажи как класс с таймером называется, я забыл Добавлено через 1 минуту и 12 секунд и с созданием динамических контролов в MFC не все так гладко и солнечно как в Windows Forms |
| Автор: vinter 26.4.2008, 21:54 | ||
CTimer он и называется.
а что там сложного одна строчка - create |
| Автор: Fortop 26.4.2008, 22:05 |
| it_medved, за скоростью дизайна рюшечек - это тебе к VB надо |
| Автор: it_medved 26.4.2008, 22:17 |
| что такое "рюшечки" ??? |
| Автор: Fortop 26.4.2008, 22:30 |
| ? Добавлено через 11 секунд UI |
| Автор: mr.DUDA 29.4.2008, 09:04 |
![]() |
| Автор: chipset 29.4.2008, 09:20 |
| WPF лучше QT. QT лучше MFC. Добавлено через 3 минуты и 40 секунд Хотя если писать open-source то Qt делает все существующие библиотеки. |
| Автор: Kefir 29.4.2008, 21:21 | ||
ну дык пиши под WPF опен сорц, чего такого-то? |
| Автор: chipset 29.4.2008, 21:21 |
| Kefir, просто Qt бесплатна под опенцорц. А WPF бесплатно ваще |
| Автор: nickless 29.4.2008, 21:31 |
Тока винду к нему купить надо и всё - а так бесплатно Добавлено через 1 минуту и 52 секунды ЗЫ, кстати, можешь в двух словах описать чем лучше? Без холивара, просто WPF не видел ни разу... |
| Автор: Kefir 29.4.2008, 22:40 | ||
в двух словах. вот надо тебе сделать кнопку, внутри которой будет листбокс, в котором каждый итем - чекбокс с комбобоксом, причём чтобы листбокс заполнялся rss-ом, причём всё с каими-нибудь анимациями (mouseover / mouseout, фейды какие-нибудь или ещё что) - вот тогда ты поймёшь насколько WPF лучше QT. клац-клаца на пять минут В), а на QT я даже представить боюсь. |
| Автор: nickless 29.4.2008, 23:50 | ||
Если честно, не знаю зачем так извращаться, но мысль ясна Т.е. там много стандартных классов на все случаи жизни, эффектов и прочих прибамбасов? А как насчет дизайна самой либы, удобности использования итд? Я думаю достаточно будет унаследовать айтем и листвью и добавлять туда что надо, правда насчет эффектов не знаю. |
| Автор: chipset 30.4.2008, 06:53 | ||||||
Нет, там просто мегаудобный язык описания контролов XAML. Это совсем другой масштаб по сравнению с Qt. И оно не тормозит ибо (под Windows) WPF хреначед чериз DirectX а не через тормознутый GDI. Добавлено через 50 секунд
Походу Kefir гораздо больше меня в этом шарит, он уже все обьяснил собственно Ж) Добавлено через 1 минуту и 22 секунды
Боюсь с прорисовкой и координацией пикселей будут траблы. |
| Автор: Kefir 30.4.2008, 08:15 | ||||
ну клац-клац это в Бленде. В отличии от многих ГУИ либ WPF больше не проповедует "для каждого контрола определённый вид контента". Взять, к примеру, ту же пресловутую кнопку. В либах, как правило на кнопку можно поставить текст и одн картинку. В WPF на кнопку можно ставить что угодно, тип контента не определён. Поэтому можноизвращатся как угодно. И так в практически любом контроле (есть пара исключений). это и есть, по-моему, большой шаг вперёд. гуи теперь можно делать любой - главное чтобы фантазия была. добавь возможность 3Д (как уже сказали WPF использует DirectX), добавь вкусности байндинга, прелести анимаций и ещё кучу перков - перечислять не охота. Вот ээто и есть WPF.
согласись - будет тяжко В) |
| Автор: Coocky 30.4.2008, 12:00 |
| Ну и о чем спор? Не пойму Неумеешь работать с МФС,так ненадо ж тогда говорить, что долго Ты на АПИ голом напиши МФС-отличная, хоть и устаревшая либа (слава богу Рибон уже выпустили MFC 2008,хотя -зачем?),для тех,кто хочет писать быстрее АПИ. А не умеем рисовать или устанавливать инет соединения-зачем же на либу валить. Ну сделали вам аля HTML халяву GUI WindowsForms-ну и что-дойдет дело до кастомизации, а не тупо выбирать свойства компонентов-вот тут то вы и остановитесь со скоростью.Делфятина и ее программисты -явный тому пример. http://www.fileheap.com/graphics/screens/elite_anti_keylogger-79518.jpg Интерфейс писался давно.Вашим покорным слугой Прозрачность,анимация,да куча всего...Без всяких тем,независимо от версии линейки NT. На С# ,быстро сваяешь? ;) |
| Автор: Любитель 30.4.2008, 12:25 | ||||||||
WTF - это очень хорошо Правильно говорил.
Сам понял, что сказал?
MFC под линь?
Не, ну кастомизация в WPF без сомнения на самом высоком уровне. В Qt некоторая кастомизация тож есть (те же CSS). В MFC - рисуем всё руками
Интерфейс как таковой тупо рисуется теперь (WPF)... По теме Qt vs WPF. WPF вещь классная, но не идеальная. Во-первых, местами вроде хромает проектирование (ИМХО временно). Много недоделано. Ну и, во-вторых, онли винда и онли дотнет. С Qt в этом плане лучше. |
| Автор: Coocky 30.4.2008, 12:26 | ||||
Нет Добавлено через 4 минуты и 31 секунду
WPF не юзал. Qt баловался.Ну немного поболее халявы, особено, что касается ресайзинга контролов.Ну и на халяву двойная буферизация. Однако если брать совокупность (поддержка доками,интегрируемость и т.д.)-отстает от мелких.Хотя это было 2 года назад. |
| Автор: Lazin 30.4.2008, 13:45 |
| вот с чем, так с доками у Qt все в порядке Добавлено через 2 минуты и 21 секунду Qt - одна из самых хорошо задокументированных библиотек из тех что я видел |
| Автор: Coocky 30.4.2008, 14:06 | ||
Может быть... Но все таки МСДН покруче будет Хотя она охватывает все ,конечно же Вообще разговор шел между МФС и шарпаком ;) Qt и WPF сюда так приплели.. |
| Автор: Любитель 30.4.2008, 14:35 |
Всегда говорил: документация по куте - образец правильной документации. Думаю со мной все, юзавшие куте, согласятся. Просто дотнетчики уже на ВинФормз начинают смотреть как на нечто не очень хорошее => переходят на ВПФ. Сиплюплюсники же на куте В плане именно кастомизации - куте гораздо круче (CSS-подобные стили). Да и графика (QGraphicsView framework) во много раз развитей. |
| Автор: Lazin 30.4.2008, 15:03 |
| еще в куте SVG "из коробки" (да и вообще работа с векторной графикой), в свое время пришлось парсить svg-шки на Builder-e, изысканное извращение |
| Автор: Kefir 30.4.2008, 15:35 | ||
ну, шарп то тут, положим, не при чём. на формах не знаю - давно им не занимался, а на WPF - несколько минут, коли картинки нарезать предварительно. тут, понимаешь, немного разные отношения. если человек может написать на MFC такой интерфес как на картинке - уже можно погордится собой, похвастаться. а на WPF - эт так, ну поклацал в визивиге, ну молодец, но ничего особенного. ну так это же свинство - не дописать такие вещи в тему! В) да и, в конце концов, дайте же возможность выпендрится |
| Автор: mr.DUDA 30.4.2008, 20:48 |
Винформс кстати по кустомизации тоже неплох (картинка снята в XP, абсолютно все контролы - самописанные).![]() |
| Автор: Coocky 30.4.2008, 21:54 |
| mr.DUDA, что ж, согласен.. Но ведь разговор у автора топика начался с времени и сложности разработки Я просто показал-ничего невозможного нет Добавлено через 2 минуты и 2 секунды Кстати,посмотрите новую версию МФС. Ribbon . Там тоже есть такая тема. Причем уже по дефолту такие контролы |
| Автор: mr.DUDA 1.5.2008, 12:14 |
| Coocky, риббон контрол уже неактуален |
| Автор: $tatic 1.5.2008, 13:32 |
| mr.DUDA, а WPF поддерживает паттерн MVC? Поясню, вот в WinForms если существует какой-либо массив структур/классов, то для визуализации его в виде, например, списка необходимо в цикле пройти по элементам этого массива и добавить экземпляры специальных классов в Items. В Java Swing для аналогичного решения используется MVC, т.е. создается реализация интерфейса модели, и контрол производит запросы к этой модели при необходимости. Плюсы: более простая и красивая реализация, удобство при изменении массива (модель только отсылает уведомление о своем изменении). |
| Автор: Kefir 1.5.2008, 13:42 |
| $tatic, конечно! Binding никто не отменял. К примеру, тому же листбоксу можно присвоить коллекцию обьектов. Если у этих объектов реализован интерфейс INotifyPropertyChanged, то все изменения в обьектах будут отображаться и на контролах. Более того, можно у листбокса определить "модель представления", точнее, задать как каждый обьект из коллекции будет отображён (DataTemplate). Не знаю как это делается в Яве (без саркарзма - просто не знаю), но в WPF - элементарно (читай, поклацать в Бленде). |
| Автор: Kefir 1.5.2008, 13:58 |
| Пример того, о чём я уже сказал - тут листбокс, в который подаётс коллекция обьектов класса "завадение". Почти вся информация из объектов отображена в каждом отдельном итеме (название заведения, картинки справа от него, короткое описание и "свойства" заведения). Приложение на восьми языках, поэтому класс "заведение" реализует интерфейс INotifyPropertyChanged. При переключении языка сразу же меняется язык в листбоксе. http://ipicture.ru/Gallery/Viewfull/1618251.html да, кстати, не смотрите что это мокап - то же самое есть написанное и работающее, просто скрин снять не с чего на данный момент |
| Автор: Любитель 2.5.2008, 11:59 | ||
Ну, если есть возможность ручной прорисовке (коея, как я думаю, юзалась в твоём примере) - кастомизировать можно, что угодно. Речь, как я понимаю, про кастомизацию без лишних телодвижений. |
| Автор: mr.DUDA 2.5.2008, 14:15 |
| Любитель, от ручной прорисовки никуда не уйдёшь, даже с Qt, если тебе нужен нетормозючий и красивый интерфейс. Одними битмапами не отделаться. Добавлено через 5 секунд ИМХО ! Добавлено через 17 секунд |
| Автор: Любитель 2.5.2008, 14:28 |
Ну, битмапы битмапами, конечно, речь не о том... Речь о наиболее декларативной кастомизации. ИМХО у ВинФормз с этим не особо (почти никак). Про ВПФ я, конечно, молчу - спорить не буду |
| Автор: mr.DUDA 3.5.2008, 10:28 | ||
А что, у мфц или Qt она присутствует? |
| Автор: Любитель 5.5.2008, 14:00 |
| Я говорил - у куте есть стайлшиты. Всё-таки что-то да есть |
| Автор: mr.DUDA 5.5.2008, 16:24 |
С этим не поспоришь. |