| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > VB.NET стал лучше? |
| Автор: -Mikle- 1.12.2004, 03:18 | ||||||||
| Стал ли VB.NET теперь проще или наоборот? Что изменилось в нем в лучшую сторону, и что в худшую? Отпугивает ли вас огромный список пространства имен? И все другие подобные вопросы предлагаю обсудить в этом топике. Всю свою програмерскую жизнь я был заядлым VB6 программистом Теперь меня за уши не оттянешь Я начну с очень простых примеров в защиту VB.NET 1. Сделать окно, которое находится поверх всех остальных: -> VB6 Нет встроеных средств, нужно использовать WinAPI: SetWindowPos -> VB.NET В режиме дизайна установить свойство TopMost формы в True или False, или в процедуре обработки события Load у формы написать одну строчку:
2. Сделать окно полупрозрачным: -> VB6 Нет встроеных средств, нужно использовать WinAPI: GetWindowLong, SetWindowLong, SetLayeredWindowAttributes -> VB.NET в любом месте пишете:
и окно становится полупрозрачным на заданное значение 3. Задать ограничения минимального и максимального размера формы: -> VB6 Нет встроеных средств, нужно использовать WinAPI для сабклассинга формы, что вообще само по себе в VB6 является не надежной вещью. -> VB.NET Пишем это:
4. Обрезать форму по картинке, где прозрачным должен быть например белый цвет -> VB6 Нет встроенных средств. Нужно проанализировать попиксельно изображение, создать регион, и затем присвоить его форме. Все это выполняется очень медленно, требует написания не малого кода, использование WinAPI, и обладает рядом недостатков. -> VB.NET 1. Задаете форме картинку, ложите ее на форму или рисуете программой. 2. Пишем:
после этого, все что на форме имеет белый цвет, становится абсолютно прозрачным, включая даже белую надпись в заголовке окна. --------------------------------------------------------------------------- Это так, для начала |
| Автор: -Mikle- 12.12.2004, 20:36 |
| Ну так что? Жалающих высказать свое мнение по поводу простоты или сложности VB.NET нет? Никто спорить не будет ни с тем, ни с другим мнением. |
| Автор: YoD 15.12.2004, 13:08 |
| Ко всему вышеуказанному могу добавить: среда разработки стала значительно удобнее. Выравнивание кода - раз, улучшенные всплывающие подсказки - два, выделение элементов управления типа Таймер, которым не нужна визуализация, в отдельное окошко. Едигнственное, что мне не особо нравится 6 это безусловно Дот Нет. Я понимаю все его преимущество, но другие этого не понимают. И не всегода соглашаются для маленькой программы ставить двадцатипятиметровый фрэёмворк... |
| Автор: -Mikle- 15.12.2004, 19:05 | ||
Спасибо за высказанное мнение.
На данный момент конечно это проблема и неудобство, так как Framework не встроен в Windows'ы. (в Windows XP есть, но не по умолчанию) Но в скором времени ситуация изменится, его будут встраивать как часть Windows, и соответственно проги будут работать без дополнительной предустановки CLR. Если верить мелкософтам, то уже в следующей версии Windows он станет не отъемлемой его частью. |
| Автор: Akina 15.12.2004, 19:21 | ||
Это все бантики. Где принципиальные плюсы? которые перевесят необходимость фреймворка...
Это 1) ужасно 2) бардак 3) та же хрень что и с ослом, жабой и прочими наворотами. Нахрен мне в компе этот слон? |
| Автор: -Mikle- 15.12.2004, 20:02 | ||||
А какие принципиальные плюсы чтоб использовать Direct3D? Хотя я не убеждаю тебя в своей позиции(как я и обещал не спорить), однажды тебе придется ставить новую Windows, в которой ты даже и не заметишь реально этот CLR. |
| Автор: arilou 21.12.2004, 13:00 |
| Поддерживаю -Mikle- ! |
| Автор: [Last]Wizard 24.12.2004, 14:08 |
| Ещё следует отметить, что VB.NET стал полноценным объектно-ориентированым языком. Одно только это дает множество огромных плюсов. |
| Автор: -Mikle- 25.12.2004, 08:48 | ||
К тому же, это поставило сам VB.NET на один уовень с другими .NET языками Конечно работа с указателями в нем пока не предусмотрена(может быть и такую фишку сделают), но освоив идеологию и нэймспейсы .NET, с ними(указателями) можно будет работать и в C#, компиля эти ф-ии в dll'ки. В нем предусмотрена возможность использования не безопасного кода. Так что VB-программисты, радуйтесь!!! |
| Автор: chipset 25.12.2004, 15:29 |
| В VB.NET только синтаксис остался На самом деле это такой же существенный прыжок как от QBasic к VB1.0. У'а това'иши! |
| Автор: korob2001 26.12.2004, 22:13 |
| Господа, я в VB6.0 начинающий. Но так же хотел бы, в последствии, выучить и VB .NET. Но меня вот что смущает - насколько я знаю, если в VB .NET написан .EXE файл, то его нельзя запустить на компе, на котором не установлен VB .NET. Отсюда вопрос, зачем нужен такой эксешник? Только поймите правильно, я не спорю, а спрашиваю. |
| Автор: -Mikle- 27.12.2004, 08:12 | ||
Для работы .NET программ, нужен не VB.NET, а Framework. Это совсем не проблема, потому как VB6 прога без библиотек Runtime, тоже не будет работать ни на одном компе. Установив Framework, любая .NET прога будет работать без проблем. Единственное что не удобно на данный момент, так это то, что Framework весит около 50 метров и не каждый захочет найти его или скачать. Но это временно, так как во всех следующих Windows, он будет встраиваться по умолчанию. Отталкивать это не должно, потому как если рассуждать что необходимость установки Framework'а это неудобно, то в сравнении можно сказать что устанавливать Direct3D для того чтоб играть в трехмерки, это тоже не удобно. Но Direct уже стали встраивать в Windows, и это не приносит никаких проблем. Так же и Framework будут встраивать в систему как ее часть, и обладатели новой винды смогут без проблемно запускать .NET программы. Так что не пугайся, и смело начинай изучать VB.NET или C# |
| Автор: Exception 27.12.2004, 11:32 |
| Лично у меня от этих бесчисленных system.xml да windows.forms башка кружится Хотя я конечно понимаю, это всё круто, но это уже другой язык. И смысла тогда прогить на VB смысла (кроме моей безграничной к нему любви) не вижу Тогда можно и на C# переходить, теперь и у него хорошая IDE!!! |
| Автор: bankuss 27.12.2004, 14:28 |
| Run-time error IDE там у всех одна а что тебе даст C#? только что синтаксис другой...ну и кое какие фичи есть дополнительные, которые простому программеру и не нужны вовсе. да и вообще какая разница на чем делать? главное чтоб работало... |
| Автор: Exception 27.12.2004, 15:24 |
| Вот этим я этот dotnet и не люблю Раньше был C++, был VB, был Java. А теперь всё смешали и вышла дотнет Разницы между языками как между бабой и мужиком и иде одна. Какой же я пессимист... Зато никаких CLSID и прочей дребедени |
| Автор: -Mikle- 28.12.2004, 15:47 | ||
Ну так это ж только к лучшему! Представь себе, один проект, и десять человек на его выполнение. Раньше нужно было бы искать C++ программеров, а сейчас хоть кого! Все могут писать на удобном для каждого синтаксисе, и при этом не замечать этого никаким образом! Это же классно! |
| Автор: arilou 28.12.2004, 16:44 |
| Единственное, что я бы хотел сказать - это когда в команде есть человек, который мало знаком с нормальным стилем программирования, и часто копи-пэйстит, и ко всему, еще и от VB6 к VB.NET перешел - хавайся в бульбу. |
| Автор: [Last]Wizard 28.12.2004, 17:10 | ||
http://forum.vingrad.ru/index.php?showtopic=37445 |
| Автор: korob2001 11.1.2005, 22:21 | ||
-Mikle- - спасибо за пояснение.
Синтаксис другой, но он может быть кому-то и удобнее. Я вот раньше писал на Perl, в сентябре прошлого года начал учить VB6.0, теперь в Perl забываю ставить точку с запятой Это я к тому, что кто к какому синтаксису привык, тот ему и роднее. Говорят C# сильно на Java похож но Java и сам по себе язык довольно мощный, потому те кто программировал на Java, предпочетают именно его а не C#. Может я не прав? |
| Автор: [Last]Wizard 12.1.2005, 12:54 | ||||
тогда тебе будет проще C# чем VB.NET
да и Java сама сильно на C++ смахивает |
| Автор: -Mikle- 12.1.2005, 20:25 | ||
Если кто писал на Java, то проще для него будет не C#, а Java.NET |
| Автор: [Last]Wizard 12.1.2005, 21:19 | ||
Ну, не факт. Например в MSDN и прочих хелпах, сообществах и форумах почти все примеры написаны на C# или VB.NET. Не очень удобно переводить синтаксис одного языка на другой, пусть там и отличия небольшие. Во-вторых большинство человек пишут на C#, меньшее количество на VB.NET, а на прочих языках - небольшой процент. Если человек попадает в команду, где 10 человек пишут на C#, а он один - на J#, то у него будет проблема с общением с командой. Ради чего все это, если там отличия незначительные? Хотя, конечно, это личное дело каждого, на каком языке писать. |
| Автор: Exception 12.1.2005, 21:41 |
| Я конечно в яве не знаток ЗЫ Угадай почему MS в хэлпе не даёт J#? Она просто Sun Microsystems не уважает |
| Автор: Mephisto 2.2.2005, 18:46 |
| Тяжело отвыкнуть от фукции Set Но в остальном просто супер. |
| Автор: -Mikle- 7.2.2005, 20:30 | ||
Оно того стоит!!! |
| Автор: Dron2004 26.3.2005, 20:33 |
| Смотря с какой позиции судить :-). Поясняю: Вот поставил себе недавно VB .NET 2003. Чувства двойственные. С одной стороны - прекрасная IDE, уйма новых возможностей, удобный редактор кода... С другой - ОЧЕНЬ СИЛЬНО (по моему мнению) ИЗМЕНЁН СИНТАКСИС ЯЗЫКА, а также работа с ФОРМАМИ (вместо них теперь Windows Forms), и, что самое "весёлое" в этой ситуации, все проги требуют гигантский фреймворк. Про фреймворк: его (фреймворка) почти ни у кого из моих знакомых не установлено. Ну да у знакомых нет - не страшно, я если что им вместе со своей прогой на CD дам... А вот в инет выкладывать прогу... Представляю ситуацию... Качает себе кто-нибудь калькулятор, а он ему: "мне фреймворк надо в 23 Мега скачать"... Большинство, я думаю, качать не будет :-((( Про синтаксис и форму: вот те на... Я, например, до сих пор с этим делом разобраться не могу... То, что на ВБ6 делалось легко и просто, тут как-то подругому делается. А вообще, нынче писать под .NET удобно не всегда, причина - всё тот же Framework |
| Автор: Exception 1.4.2005, 13:01 | ||||
в лучшую сторону
Чем хороши W.F. : ТЕПЕРЬ ВСЕ - КЛАССЫ ИЛИ МОДУЛИ. Теперь нет никаких чудес, какие были в VB6. Откуда бралась форма??? Это было неясно. А теперь форма - простой наследник класса System.Windows.Forms.Form . Советую почитать книгу "Переход на VB .NET: Стратегии, концепции, код." Дэна Эпплмана. Там рассматриваются все плюсы и минусы этой технологии. Еще и к [+] и к [-] можно отнести декомпилируемость .NET - кода. С помощью http://www.aisto.com/roeder/dotnet'a ты можешь узнать весь исходный код .NET Framework, но твой код также легко декомпилировать, как и код мелких. |
| Автор: bankuss 22.11.2005, 17:36 |
| Скачал с мелких VB2005. Первые впечатления - намного лучше 2003! Внешность IDE изменилась, ну и добавлено то, что было убрано из VB6 Скорость кода немного выросла, тестировал на циклах с кучей вычислений. Рекомедую всем VB-нетчикам! |
| Автор: lovermann 22.11.2005, 21:20 |
| Не с глаголами пишется раздельно. Третий класс, первая четверть. |
| Автор: bankuss 23.11.2005, 10:10 |
| lovermann Это мне? извиняюсь за оффтоп... |
| Автор: lovermann 25.11.2005, 03:01 |
| создателю опроса + по совместительству всем, кто не знает. Прошу прощения, но мне это просто режет глаз. |
| Автор: Exception 25.11.2005, 11:30 |
| Да.. с правописанием у нас на форуме не очень. И все же все это оффтоп. |
| Автор: FL 12.12.2005, 17:27 | ||
Сейчас все серьёзные фирмы переходят на .NET. (Пример тому, если не верите, хотя бы Sony, Sound Forge 8 которой требует .Net) Так что мне кажется, что в скором времени( или не очень) ДотНет будет установлен на подавляющем числе компов. А VB.NET мне очень понравился. Переучиваться к новому синтаксису - это конечно обидно, но тьма новых возможностей это компенсирует. Конечно WinApi всё равно иногда приходится использовать, но пригресс налицо. VB начинает подтягиваться до уровня C++. Конечно только начинает подтягиваться, но и это уже радует. |
| Автор: Spawn™Production® 12.12.2005, 19:47 | ||
скорее отдалятся... Microsoft делает язык всё более высокоуровневым... так что драйвера ты всё ещё не можешь и никогда не сможешь писать на нём. |
| Автор: arilou 12.12.2005, 20:18 | ||
Взгляни на http://research.microsoft.com/os/singularity/ |
| Автор: Spawn™Production® 12.12.2005, 23:57 | ||||
Хм, ну посмотрим, к чму их research'ество приведёт... |
| Автор: Exception 13.12.2005, 17:33 | ||
Однако... Интересный проект Только я не понял, это что -- альтернатива Lonhhorn'у что ли? Или там Black-чего-то? Или потом их соединят? |
| Автор: arilou 13.12.2005, 17:39 | ||
Это просто исследовательский проект. Деньги вкладываются в исследования новых подходов к разработке ОС. Возможно, что-то из этого мы увидим в Windows XXII |
| Автор: Void 13.12.2005, 17:41 | ||
Ни то, ни другое. Это просто прототип ОС будущего, основанной на управляемом коде. До применения этого в реальных продуктах еще годы, если не десятилетия. |
| Автор: Exception 14.12.2005, 13:01 | ||
Смотрим в будущее M$ это что, спонсировать будет? Ресёрчеры |
| Автор: arilou 14.12.2005, 13:57 | ||
Ты сайт вообще видел? Это лабы Microsoft'а. Они за это платят. |
| Автор: Exception 14.12.2005, 15:14 | ||
Точно... Ну дак если проект будет удачным, они его себе загребут что ли? |
| Автор: arilou 14.12.2005, 15:19 |
| Run-time error У Microsoft есть свой исследовательский центр, где умные головастые дядьки ничего не делают, а только занимаются тем, что им нравится, и что потенциально нравится самому Microsoft'у. За это им платят денюшку, а правами на их разработки обладает сам MS. Вот такие, брат, дела. |
| Автор: Терминатор 7.5.2006, 23:50 |
| Сижу сейчас в VB.NET 2005. Пробую переписать то что так хорошо работало в VB.6 Труба полная. Всё время приходится сидеть в MSDM, вернее 60% 30% рыскать по Инету в поисках практического решения (кстати в интете есть варианты получше чем в MSDM, например работа с TabControl1) остальные 10% это уже написание самого кода. Какие трудности кодеры испытывают по всему миру - просто дива! Американцы, Европейцы, Африканцы, Индусы и Русские. Читая их проблемы и видя что 40% не находят решения (или решение нашлось, но на форуме не опубликовано) что-то прям мурашки по коже бегать начинают, от мысли "А как я буду переписывать прогу от которой зависит сейчас 90% работы на фирме, и вообще моё присутствие на работе?" Вот к примеру - переписываю процедуры в модулях. Там проблема: теперь из модуля обратиться к конролу на формах напрямую нельзя. Прошелся по инету - у всех от этого головная боль. Но кто-то уже быстро это освоил, кто-то пишет, цитирую дословно - "..Да, ну теперь всё, теперь я просто не использую обращение к контролам из модулей. В модулях пишу только функции..." Потом проблема при использовании Char, проблема при использовании As String * 1 и т.д. Так это только малюсенькая часть! А если у меня в программе более 30 форм, и куча всего того что вообще никак не хочет переноситься. Вывод один - писать абсолютно всё заново. Кстати, я заметил что 2005 получше 2003. Это радует. Может и дальше будут улучшения. Лично для себя я понял одно, это совсем другой язык. Я помню как просто по дороге на работу, я продумывал часть кода в голове, а уже на работе писал по памяти. Теперь по дороге на работу я стараюсь просто закрыть глаза - чтоб они немного отдохнули и поспать, - потому что приходится сидеть до глубокой ночи, в попытках разобраться как же ту или иную задачу выполнить. Да, я наверное отношусь к той категории людей которым всё новое даётся тяжело. Собственно вопрос - Я что-то не пойму, когда говорят о VB.8 - это какую версию имеют в виду? У меня Ноябрьская 2005. В ней нет прямого обращения из модулей. А как меня это достало! |
| Автор: Exception 8.5.2006, 00:00 |
| Я тебе вот что скажу. VB .NET совсем никак не связан с VB 6 и не подходит для переписывания проектов. Тебе придётся познакомиться с новой идеологией программирования на .NET, научиться писать с использованием ООП.. Так что лучше на нём писать новые проекты, однозначно. Добавлено @ 00:04 А к формам так обращаться - дурной тон. Я тебе ОБЯЗАТЕЛЬНО советую почитать книжку "Переход на VB .NET: Стратегии, концепции, код" Дэна Эпплмана. Это то, что тебе необходимо. |
| Автор: Терминатор 8.5.2006, 13:30 | ||
Да, я это понимаю, я обладатель не самых лучших привычек, которые развил благодаря VB6. Но требования тогда были невысокие, для любой небольшой конторы самые критичные данные - их базы данных. Для написания, которых связка VB+Access, VB+SQL не занимала вообще никаких усилий. Наверное многие (даже знающие Си)в те годы использовали VB для создания СУБД. Очень рентабельно получалось. Да и не 3D игры же писать Бейсике! Деваться некуда буду учить. Только вот подскажи пожалуйста, какой подход мне лучше избрать. Но для начала немножко войди в моё не лучшее положение. Я человек взрослый, работаю, учиться в учебных заведениях мне не с руки (семью кормить надо). То образование которое я получал в 80-гг теперь уже = 0 (нулю). Да и что кто-то научит языку который вышел пол года назад (согласись версия 2005 это уже не 2003) я слабо верю. Хотя конечно есть гуру, но они как раз всегда при деле, а "не за партой". Ну и ещё два весомых фактора, которые давят так, что хоть кричи, - в 40 лет не так просто заучивать, запоминать и разбираться в большом объёме информации. Второй фактор, который меня просто убивает на повал, это вот это новая технология. Может тебе знакомо такое со школьных или студенческих лет - ну никак не даётся химия или французский! Или ещё лучший пример, который всё чаще всплывает у меня пред глазами - 90-е гг. программист, который мне в отцы годился, с такими большими очками, толстыми линзами, говорит мне - «Всё что делается, теперь делается для Вас, для молодого поколения. Жалко, что только про нас забыли. Наверное, мне придется забыть про свою профессию.» У него был такой безысходный взгляд, что мне его жалко стало. Помню, он так в сердцах возмущался – «Да что же это за устройство такое придумали!» (про мышь, чувствовал, наверное, сердцем, что всё, не будет больше ДОС-а) А с другой стороны, я тогда думал, "вот из-за таких людей у нас нет прогресса!". Ты смотр-ка, как в жизни всё разворачивается. Теперь получи и распишись. Мне даже теперь жена со стороны сказала, "ты что-то старшее поколение уважать начал. Стареешь чтоль?" Так вот вопрос. Учитывая всё это, но самое главное, учитывая то что мне этим свой хлеб зарабатывать надо а не просто "познавать невиданное", какой подход лучше выбрать для изучения "этого ООП." Книгами я уже обложился, слава Богу Интернет есть и дома и на работе.(инет - это дар, для всех программистов!) Но чувствую я, что-то не так я делаю. Одно только ADO.net чего стоит. Но ведь как-то же люди изучают языки за пол года! Если у кого был такой этап, и он пройден хотя бы наполовину, поделитесь. Что является залогом успешного изучения такого языка.? Ведь "нахрапом" не возьмешь. Сейчас я пытаюсь по кусочкам реализовать то что у меня было. Почему это не правильно? Также я просматриваю готовые варианты небольших программ, которые можно скачать в инете. Книги? в прицепе да. Но, например мне надо решить то-то и то-то, в книгах такого нет. Там общие решения. Справка помогает, благо английский не забыл. Но ведь наверное не так должен изучаться новый язык.? В общем, поделитесь ребята. Я вот тут по-написал, может так на форуме не стоит откровенно, но тяжко мне, честно. В реальной жизни вида не подаю, но в уме шок. ------------------------------------------------------------------- Если кто-то ответит на моё послание даже через месяц - буду рад. |
| Автор: Exception 10.5.2006, 22:10 |
| Да, наверное, в моём возрасте учиться новому легче |
| Автор: XPurple 12.5.2006, 14:11 |
| Немного в оффтоп. Если программа требует для своей работы Framework.NET - например Sony Vegas- значит ли это, что она написана на языке Visual Basic.NET ? |
| Автор: Exception 12.5.2006, 16:02 |
| Это значит, что она написана на каком-либо языке .NET, будь то VB .NET, C#, Delphi .NET, etc. |
| Автор: XPurple 15.5.2006, 06:01 |
| Exception, Ясно |
| Автор: HellMasterHaiL 10.8.2006, 13:09 |
| к сожалению судить не могу, т.к. VB6 никогда в глаза не видел, а начал сходу изучать VB.NET, но думаю в каждой версии есть свои плюсы и минусы, будь то сложность разработки или качество... |
| Автор: DarkDragon 4.10.2006, 00:56 | ||||||
Приемущество VB6 перед VB.NET: Заключается в том что у VB6 [Native Code], а это означает что программа работает под Win32, с использованием всего одной библиотеки, которая поступает уже вместе с XP. Весит эта библиотека в чистом виде 1 метр с хвостом (10 - 500 килобайт). У VB.NET, и других языков той же самой платформы .NET, Intermediate Language (промежуточный язык), который обязательно переводится в машинный язык, при старте. Первое: снижение запуска приложения! Обязательно Framework 23-25 мега(В будущем, возможно данный недостаток будет устранен). Теперь по поводу недостатков VB6, VB.NET. Это пропорции. Это очень круто снижает скорость приравнивания/получения значения, нежели если мы будем обращаться напрямую к переменной. По мойму лучше написать процедуру приравнивания SetValue (ByVal Val As Value). VB.NET - Form->Control->Боевое снабжение на все случаи жизни. Если я не ошибаюсь то он используется визде, где нужен Visual Control. Размер в памяти у него очень не маленький. Можно даже сравнить используя NativeWindow и Control. Все типы в VB.NET стали структурами, недостаток: меньше и быстрее реальная переменная (int), чем структура Integer в VB.NET. Вообщем самая главная проблема .NET это оптимизация. Проги на данной платформе грузятся и выполняются медленне чем на платформе Win32. Хватит о плохом, пора переходить к хорошим! Какая простота работа с массивами.
Можем спокойно в run-time создовать массивы практически любых типов. А как легко создавать контролы в run-time, добавлять, удалять.
А как легко пишутся плагины А как легко модернизируются контролы А как легко работать в VS 2003/VS 2005:) А как легко дизайнить формы, с помощью конструктора. А как круто, когда к Object можно передать любой тип (byte,short,integer,....,string,.....,control.....). А как круто когда есть System.Windows.Forms, System.IO, System.Reflection, System.Runtime, System.Web, System.Net, и многие другие (есть и DirectX манагед!). Кланю к тому что там столько классов, тока создавай и пользуйся ф-циями. А как круто, конвертится:
А как круто выполнить динамический код в runtime. +ковсему этому можно пределать то что степень риска вредоностности программы снижается! Т. е. не зделаешь на VB.NET вирус, хотя кто его знает. Ведь в VB.NET И др. языках .NET можно свободно пользоваться функциями из реальных библиотек работающих на Win32. Вообщем яб рассказал как это возможно, но помоему незя этого обсуждать на форумах Vingrada. Вообщем можно книгу писать Достоинство VB.NET И сех Language.NET. |
| Автор: Exception 4.10.2006, 15:01 | ||||
| Что хорошего в native code? Быстродействия он не обеспечивает, т.к. код целиком состоит из вызовов функций msvbvmxx.dll. Фреймворк будет поставляться с Windows Vista, конечно, он большой, но - сравни возможности библиотек! А преимущества .NET перед COM очевидны. Контроль версий (прощай, DLL hell), , стандарты языков, обеспечивающие межъязыковое взаимодействие. Богатый набор классов. Очень мощный GUI и фреймворк для взаимодействия с БД. Ты ошибаешься: IL-код компилируется не перед стартом приложения, а перед выполнением метода в первый раз, причём результирующий машинный код можно оптимизировать. Если очень хочется - можно заранее скомпилировать весь код и запретить JIT-компиляцию с помощью утилиты ngen.exe. Это ты свойства (properties) называешь "пропорциями"? К твоему сведению, из свойства SomeProperty компилятор генерирует два метода - get_SomeProperty и set_SomeProperty, так что я не понимаю, о какой потере производительности идёт речь. Далее, что значит - "нужен Control"? Control - всего лишь базовый класс, какие к нему могут быть претензии По поводу переменных типа Integer - ты вновь ошибаешься. Они оборачиваются в структуру только по необходимости, и эта операция называется упаковкой (boxing). Дабы пояснить, приведу пример:
По поводу кода создания массива - он вызывает ошибку компилятора, потому что ты пытаешься неявно привести тип System.Array к массиву Byte. Ошибку можно отключить, выставив Option Strict в Off, но это чревато ошибками, и за такой подход обычно дают пинка. На самом деле следует явно привести тип оператором CType. По поводу того кода, который ты написал для конвертации: да, он работает, но этот подход не одобряется и присутствует лишь в VB .NET. В С# так делать нельзя. Ведь подумай сам: что делает функция CInt? Она приводит класс к Integer, если он это разрешает. У System.String этого оператора приведения нет. Поэтому правильно делать так:
Да, ты совершенно прав, степень риска очень заметно снижается благодаря хитрой системе безопасности в .NET. Например, можно настроить систему так, чтобы сборки, загруженные из интернета, не имели доступ к файловой системе или, например, не могли вызывать/выполнять небезопасный код. |
| Автор: DarkDragon 4.10.2006, 23:53 | ||||
Насчет Properties: То что properties генерируют в функции get и set, я понял когда в C++.NET строил приложения. Я имею виду использовать функцию в том случаи, если требуется при преравнивании выполнить еще какие нибудь действия. А если просто потребуется получить, приравнить значение, то лучше обращаться на прямую к variable, нежели стучаться в функции. И как ты думаешь, что быстрее: Прямая адресация к переменной, либо вызов функций? Насчет ngen (и il), незнал. Попробую Control - всего лишь базовый класс. Согласен. Размер смотрел этого класса? Даю 100% я напишу контрол "Button", которая в 20 раз быстрее и меньше чем при использовании Control. Конечно нельзя будет добавлять с помощью Controls.Add, но можно будет написать свой Array для контролов которые основываются на NativeWindow, либо еще ускорить написав структуру WindowClassEx. Насчет упаковки, и распоковке, и структур - значить ошибся Я вот Exception непонимаю, для чего ты пишешь код? Для того чтобы им пользовались другие? если так, то пускай радуются что для них еще пишут. А то можно и вооще забить. Если я пишу какой то код, то для начала я убеждаюсь, что он в реале работает на определенном языке, и не стараюсь чтоб кто нибудь переписывал его на другой язык. Так что если пишу на VB.NET, мне грубо говоря напливать что кто то будет переписывать на C#. Пусть тогда сразу просить на каком языке ему приводить пример. А типа писать красивый код, чтобы другие любовались, пускай сами пишут для себя. Насчет CType - привиди пример. Array, у меня на VB.NET работают без глюков, и без сообщения компилятора. Все нормально компилируется, без установки опций. +Хорошего в .NET, не так сложно написать свой язык программирования(.NET). |
| Автор: DarkDragon 5.10.2006, 17:37 | ||
Насчет релизе - Release - это уже окончательное компилированние без доп. инфы относительно Debugerra. Когда то писал все под Debuger. А потом прочил что Release, максимально сжимает и оптимизирует выходной код. Ну естестно стал писать под Release. К стате если используешь Release то ошибки в коде(не путать с синтаксисом) не будет высвечеваться, если запускаешь из под студию. Лучше мастерить под Debug, а в самом конце компилить в Release, когда проект будет готов.
|
| Автор: Exception 6.10.2006, 20:38 | ||||||
А главное, какая аргументация! В .NET всё равно ты не увидишь никакой прямой адресации
И что? А что ты скажешь о переносимости твоего кода в перспективе под тот же, например Mono? О том, что же придётся делать бедняге, который возьмётся когда-нибудь за твой код, чтобы понять его суть? О работе твоего приложения, если WinAPI поменяется? Для себя, других или заказчика.
А мне нет. Потому что в конце концов из VB .NET уберут всю эту VB6-дрянь.
Rubbish. Красивый и понятный код вкупе с грамотным проектированием существенно сокращает стадию отладки и тестирования приложения. Читай "Совершенный Код" Макконнелла. |
| Автор: DarkDragon 7.10.2006, 19:22 | ||||||||||||
.NET под Windows, не использует своей структуры (имею в виду Forms, Controls), а использует WinAPI, который полностью, или частично скрыт, от пользователя. Так что если перенести в Mono, или в ноый WinAPI, то из этого ничего хорошего не выйдет. Хотя если, переписать все библиотеки на другую платформу, или ОС (вчастности оставив прежнии названия процедур), то возможно переносимость обеспечена. Не могу утверждать, так как глубоко в платформе .NET не копался.
Ну это уже извращение, писать совершенный код под VB. Могу согласиться в том случаи если пишешь под Assembler.
А вот за такие слова, и действительно можно получить в репу. А если уберут все ф-ции VB6, то буду тоскать библиотеку из VS2003, со своими приложениями
Это уже косается лично тебя.
Ошибаешься. Через указатели, можно получить доступ к памяти. И можно написать свои функции для создания переменных в неуправляемой, или управляемой памяти
Вот представь себе ситуацию: тебе предлогают VB компилятор, и VB интерпретатор. У них возможности одинаковы, за исключением конечно выходного файла. Что ты выберешь? |
| Автор: Exception 7.10.2006, 21:50 | ||
| Интересная разворачивается дискуссия Я говорю о том, что, если использовать исключительно классы Windows Forms, проблем с переносимостью, реализуй WF полностью в Mono, не будет. А завязываться на конкретных API.. какой тогда вообще смысл в использовании .NET, как не абстрагирование от этих API?
Не понял Зачем тебе функции VB 6? Чем тебе не нравятся аналогичные методы классов .NET Framework? Скажи, зачем тебе нужно так извращаться с этой памятью? Указателей в .NET нет и не будет. Есть лишь специальные обёртки для них. Неужели ты действительно думаешь, что так работа ощутимо пойдёт быстрее? Тогда приведи два куска кода с тестами. Я лично устал повторять, что .NET - никакой не интерпретатор. Я считаю схему с JIT-компилятором более расширяемой и универсальной, нежели схему с прямой компиляцией в нативный код, нацеленный на конкретную платформу. Да - кстати, VB 6 как раз и был интерпретатором. |
| Автор: DarkDragon 8.10.2006, 02:05 | ||||||
Да они мне впринцепе и не нужны. Я могу полностью писать средствами .NET. Просто вьелись мне VB6, и се тут. Если ты говоришь, что вскоре уберут эти функции(т. е. библиотеку), то больше их трогать не буду.
Я просто привел пример языка, для которого, как я считаю нужно писать код, так чтобы можно было потом делать нормальную отладку, модификацию, и т. д. А для VB.NET я думаю есть очень хороший стилист(редактор в VS7 и выше). Это я о красивом коде. Когда говорил о интерпретаторе, то не имел ввиду VB.NET:) И ты что так быстро устаешь?
Приведу небольшой пример: в VB.NET есть таковой класс Bitmap(сам наверное знаешь). Скажем нужно приделать такую фичу, которая называется негатив. В класс Bitmap входят 2 функции (GetPixel, SetPixel). Единственное где можно использовать эти функции, то только если изображение не больше 124x124. А то ждать конца функции придется очень долго. Но если мы используем неуправляемую память, куда вобщем то и помищаются данные изображения, то данная функция займет считанные секунды, и разрешения изображения могут быть хоть 1024x1024. Поверь, это личный, горький мой опыт. Столкнулся я с ним, когда разрабатывал алгоритм увелечения изображения. Использовал я именно GetPixel, SetPixel, и изображение 320x240. Так запарился, что к черту проект стер. Только потом я узнал как работать с Unman. памятью. |
| Автор: Exception 8.10.2006, 12:00 |
| Нет-нет, Асм тут уж точно ни при чём |
| Автор: DarkDragon 8.10.2006, 23:34 |
| Вообще когда я делаю серьезные проекты на .NET, я разбиваю программу на отдельные части (количество определяется функционированием проекта, ну и некоторыми процедурами). Так мне в принцепе не составляет труда отлаживать программу. Насчет книги: читать то не лень, а вот найти книгу вотето проблема. У нас компьютеры и интернет только начинают развиваться(по этому литературу, трудно найти), так что приходится заказывать. Конечно возможно что кто то заталкал книгу на CD, но читать на экране, только вредить своему здоровью. Тем более, если книга толстая. Но если найду, то обязательно надо будет прочесть. Вдруг я тоже ошибаюсь |
| Автор: DviRUS 24.10.2006, 22:35 |
| Начал пользаться 8-й версией - даволен всем!!!!! Кроме одного! мало помощи.... Еслиб ещё учебник в электронном виде к нему прилогался... Эх... *задумчиво вздыхает смотря в поталок и улыбаясь* Очень понравилось присутствие нескольких примеров программ с множеством функци, по которым можно многое узнать! |
| Автор: Piphon 24.10.2006, 23:09 |
| А мне например пофиг что .NET 20-50 мб., пускай качают. Ленивый пользователь не менее опасен, чем любопытный. VB6 и VB .NET вообще не собираюсь ставить в ряд. 'Шестерка' это классика простоты среди всех языков программирования и мой первый язык, но в нем мне не хватало функциональности (API в то время для меня были дебрями). А .NET - это лучшее, что есть у прикладного программиста... P.S. И все-таки VB .NET рулит. Причина: я рисую на control'ах. |
| Автор: ivashkanet 25.10.2006, 07:52 |
Ужас нах, ему мало MSDN |
| Автор: Exception 25.10.2006, 14:39 | ||
Ага, абсолютно согласен. |
| Автор: $tatic 27.10.2006, 20:02 | ||
Ну Мелкософтцы это предусмотрели и сделали System.Drawing.Imaging.BitmapData.Scan0 и System.Runtime.InteropServices.Marshal.Copy(). При этом единственно используется высокоуровневый указатель IntPtr. Я конечно понимаю неудобство копирования информации (из неуправляемого битмапа в управляемый массив и обратно), но скорость работы выше, чем при использовании GetPixel и SetPixel. К тому же, даже на C# я бы не стал использовать небезопасный код для прямой работы с памятью чисто идеологически (а то программировал бы на C++ |
| Автор: Nephrit 29.10.2006, 20:09 |
| Прочитал я всё, что Вы написали, но так и не понял, что выбрать лучше. Какой язык программирования оптимален. Я сейчас Программирую на VB6. Решил попробовать поработать на VB.NET, но там полнейший караул с Базами даннных |
| Автор: Exception 29.10.2006, 20:37 |
| Какой ещё караул с базами данных P.S. VB .NET - это не просто "новая версия" языка, а скорее принципиально новый язык, и, чтобы эффективно программировать на нём, тебе придётся много чего забыть и много чему научиться заново. В частности, тебе нужно будет научиться нормально, рационально использовать ООП и избавиться от дурных привычек (модули, глобальные переменные, отсутствие классов), оставшихся от VB 6. P.P.S. Будущее за VB .NET однозначно; Microsoft уже прекратила поддержку VB 6. |
| Автор: Piphon 29.10.2006, 21:15 | ||
Вот только кое какие вещи для переноса с VB6 они все-таки оставили в .NET (namespace Microsoft.VisualBasic). Я до сих пор не понимаю как они работают managed или unmanaged? |
| Автор: Exception 29.10.2006, 22:21 |
| Эта библиотека была создана только для обеспечения хоть какой-то совместимости и работы Upgrade Wizard, на мой взгляд, кстати, зря. Конечно, она полностью managed |
| Автор: DarkDragon 10.11.2006, 08:33 | ||||||
Эта я и узнал
А вот мне не пофиг! Потому что не у всех интернет с High Speed. Вот у меня например средняя скорость 9,2 Кбит/с это только он рисует, на самом деле около 1.2, а качка в 0.75. 2 метра качаются около 18 часов. И как интерестно мне скачать Framework.NET 2.0?
Давай, давай. Посмотрим сможешь ли чего интерестного нарисовать. |
| Автор: Exception 10.11.2006, 17:50 | ||||
Между прочим, можно самому и правда очень красивые компоненты мутить средствами GDI+ (тут у нас mr.DUDA спец).
А как ты игры устанавливаешь? Тоже из интернета выкачиваешь? Они ведь громадный DX требуют. |
| Автор: DarkDragon 11.11.2006, 08:06 | ||||
А востновном приносят друзья диски. А так покупаю. А купил игру я в последний раз где то 4 года назад. |
| Автор: Exception 11.11.2006, 16:39 |
Нет-нет, в VB6 не было GDI+ и всех этих градиентов и прочего Ну, ты ведь не юзер. Вот видишь, ты игры даже не пытаешься качать из инета. Заказчику-то ты всё равно сможешь диск сунуть. |
| Автор: DarkDragon 14.11.2006, 07:57 |
| В принцепе в GDI+, просто реализованы алгаритмы, которые также можно реализовать и с помощью GDI. Правда для этого нужно разбираться в графике. А в .NET все зделали за нас мелкософт'цы. Если работать с заказчиком в прямую. Но если работаешь через инет, 23 мега, могут привратить заказ в отказ. |
| Автор: Piphon 14.11.2006, 09:13 | ||
Жди. Время будет сделаю... У меня тоже не High Speed. Хотя и побыстрее твоего будет. Аргумент весомый... но для приклодных приложений Windows .NET становиться тем же самым, что DirectX для Windows или OpenGL для *nix игр. Framework .NET 2.0 уже распространяется уже и в играх(NeverWinter Night 2). А вот насчет инета. Заказчику отправляешь ЛИШЬ свою программу и дополнительны библиотеки. А CLR ему прейдется достовать самому (хотя он может и пойти в отказ). |
| Автор: Exception 18.11.2006, 18:30 | ||
Это уже не раз обсуждалось на моей памяти. |
| Автор: DarkDragon 20.11.2006, 17:01 |
Ну и в моей памяти. Просто опять идет речь про Framework.NET. Если в скором времени большинство людей подсядут на Vist'у(естестно после выпуска релиза, а не бэта версий), тогда этой проблемы не будет. |
| Автор: Exception 20.11.2006, 19:15 |
| Будет, кстати |
| Автор: Piphon 20.11.2006, 22:42 |
Возможно, но не факт. |
| Автор: DarkDragon 24.11.2006, 17:52 |
| Даю волю своей фантазии: Чтобы большинство людей могли спокойно качать программы основанные на платформе .NET, Биллу Гейтсу нужно купить один отдельный спутник, запустить его по середине континентов, так чтобы любой имеющий у себя цифравую тарелку и модуль к матери(компьютера), мог свободно получить к ней доступ. Ну и транстлировать последнии версии Framework'a, через этот спутник. Теперь я не говорю что эта проблема будет исчерпана, но все же много людей смогут подсесть под .NET(Зная что Framework эта уже не проблема. если есть компьютер и тарелка |
| Автор: Piphon 24.11.2006, 19:32 |
| DarkDragon, Добавлено @ 19:43 Но не думаю что все заведут себе тарелки... |
| Автор: DarkDragon 25.11.2006, 11:31 |
Обсалютно согласен. Но все же спутниковое телевидение растет(сужу по тому признаку что цена на эти тарелки значительно упали, НТВ+ не всчет, у них как раз наоборот - цены растут |
| Автор: Exception 25.11.2006, 16:24 |
| Модератор: Давайте вернёмся к теме обсуждения. |
| Автор: RST8 14.1.2007, 16:34 | ||
Во во, точно. Никак не пойму логику работы. А это, ну вобще нет слов, авторы в книга объясняют как. Кинут сетку на форму и в дизайне подстыкуют к ней таблицу. Вот смотрите как все просто и легко. Ну и что с этим потом делать. Такое практически никогда ненужно. Где нормально написано как просто из таблицы, полностью в коде, получить значение одного поля одной записи. Да этих книг десяток перерыл пока нашел нормальный пример. Нашел его все работает, но стиль, логика, всего этого проста ужасна. З.Ы. А как все красиво в делфях, создал конект, выполнил запрос, и вот тебе все данные. В нормальной логичной форме. |
| Автор: MBars 18.1.2007, 06:40 |
| Начнем с того, что FW-это прежде всего "системные" библиотеки. 1.1, скажем, вообще идет вместе с Win2003. И половина профессионального софта уже писана под .NET. А если сравнивать среды разработки VB6 и VS2003(VS2005) - то тут уж никаких вопросов. Я не профессиональный программер, однако переход с VB6 на VS2003-2005 прошел безболезненно. И вообще считаю, что VB6 - был и остается средством |
| Автор: Exception 29.3.2007, 19:32 | ||
Если Вам непонятно, как работать с System.Data, это вовсе не значит, что библиотека плоха / неудобна / etc. Если разобраться, то в .NET работа с БД организована очень хорошо. |
| Автор: Darth_Sidious 10.11.2007, 18:29 |
| Плюсы: VB.NET стал удобнее: нет лишних команд (типа Set, особенно при работе с объектами), появилось ООП (что делает язык гораздо мощнее, чем раньше), появилось много новых инструментов на Toolbox, а значит увеличивается производительность труда программиста. Минусы: Добавление платформы .NET - это добавление необходимости изучения этой технологии (а она, судя по всему, не маленькая), а значит приводит (по крайней мере, на первых порах) к резкому снижению производительности труда программистов, если у них есть жизненная необходимость работать именно с этой технологией. |
| Автор: Maryzybina 8.4.2008, 10:00 |
Модератор: Сообщение скрыто. |
| Автор: -Mikle- 8.4.2008, 20:00 |
| Модератор: [B]Maryzybina, прочтите правила форума: http://forum.vingrad.ru/index.php?act=boardrules[/B] |
| Автор: SaschaL 8.8.2008, 19:41 |
| Ну безусловно это шаг вперед , и несомненно стал лучше. |
| Автор: NeoKesha 25.8.2011, 07:55 |
| Лучше! Он стал поддерживать DirectX 9 и выше. Стал продвинутее, много много чего. Например: множество свойств объектов. |