Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 |

 

  Вопрос: .NET - достоинства платформы Добавлено: 08.02.04 16:42  

Автор вопроса:  Павел | Web-сайт: www.vbnet.ru | ICQ: 326066673 

Ответить

  Ответы Всего ответов: 35  

Номер ответа: 16
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #16
Добавлено: 12.02.04 01:17

2 Alex3

Давайте пример любейзнейший . А то поисковик при поиске "драйверы на C ++ 7" выдал кучу мусора и ссылку на WASM.RU, где действвительно есть статьи про написание драйверов, но про Це никогда не слыхали

.2 Chill

http://www.compexp.ru/doc/VxDWriting/part1.html

Ответить

Номер ответа: 17
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #17
Добавлено: 12.02.04 01:22

Да, не люблю когда ламеры надо мной смеются.

Формат файлов LE.
VxD используют линейно исполняемый (LE - linear executable) формат файлов. Этот формат был разработан для OS/2 версии 2.0. Он содержит и 16-ти и 32-х разрядный код, что является необходимым для VxD. VxD берут свое начало от Windows 3.x. В то время Windows грузился из DOS, таким образом VxD могло потребоваться выполнять какую-либо инициализацию в реальном режиме, перед тем как Windows переключит систему в защищенный режим. 16-разрядная часть реального режима должна быть в том же файле, что и 32-разрядная защищенного режима, поэтому выбор формата LE выглядит вполне логичным. Драйвера Windows NT не имеют кода инициализации в реальном режиме, поэтому они вместо LE используют PE формат.
Исполняемый код и данные в LE файле хранятся в сегментах с различными атрибутами. Ниже перечислены все классы сегментов.

Ответить

Номер ответа: 18
Автор ответа:
 Alex3



ICQ: 9481061 

Вопросов: 18
Ответов: 132
 Профиль | | #18 Добавлено: 12.02.04 14:54

И нафига весь этот треп под VxD? Они вообще под NT не используются.

В общем после этого твое утверждение "Драйвер - это 32 битная прога под ДОС" умнее не стало.

Если сомниваешься, что-то что можно сделать под C++ 6 нельзя сделать под C++ 7 не проще попробовать это, а не пудрить людям мозги?

Ответить

Номер ответа: 19
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #19
Добавлено: 12.02.04 18:41

Имхо, имелся ввиду не C++ 7, а принципиальная возможность создания низкоуровневых приложений (типа драйвер) на основе .NET. Предполагаю, что это невозможно.

Ответить

Номер ответа: 20
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #20
Добавлено: 13.02.04 06:21

Вот ещё адана канкретеная ссылка. Особенно интересен пункт 3.

2002 г. Начало четвертого поколения Basic — Microsoft Visual Basic .NET:

  1. Интеграция всех средств разработки Microsoft в единый набор Visual Studio .NET, который, в свою очередь, "намертво" привязывает к платофрме Microsoft .NET Framework.
  2. Одна из ключевых идей архитектуры Microsoft .NET — использование единой библиотеки базовых классов для всех языков программирования. При этом библиотека становится компонентом операционной среды, а не средства разработки, как это было раньше.
  3. VB опять лишается возможности создания "настоящего" машинного кода. Более того, VB может создавать только "управляемый" код (в отличие от VC++ и C#, которые могут создавать и "управляемый", и "неуправляемый" коды), работающий исключительно под управлением .NET Framework.
  4. Тем не менее VB .NET существенно приближает VB-программистов к возможностям C++ в отношении широты применения языка.

Источник вроде солидный. Я бы не стал с ним спорить.

http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/VBInHistory/445.mspx

Т.е. наСильник какой хотят код создают, а VB-шники только "под управлением .NET Framework". Вроде же кричали что это абсолютно одинаковые языки.

Ответить

Номер ответа: 21
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #21
Добавлено: 13.02.04 06:36

А эта фраза

"работающий исключительно под управлением .NET Framework. "

Единственный вывод из этих слов - VB.NET - интерпритатор.

Может он не один к одному интерпритатор с GW-BASIC, но всё что я говорил в предыдущих топиках подтверждается.

Просто сам интерпритатор видоизменяется для предоставления ещё большего удобства начинающим программистам.

Разве все интерпритаторы микрософт похоже друг на друга?

Сравните

GW-BASIC->QuickBasic->VB3->VB6->VB.NET

Всем предыдущим версиям присуща полная или частичная интерпритация. Не думаю что Микрософт отошёл принципов, с успехом практикуемых уже почти 20 лет. Так что компилятором VB не станет до тех пор пока его производит Микрософт. Этот вывод вполне логичен. Или есть другие логичные выводы?

Ответить

Номер ответа: 22
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #22
Добавлено: 13.02.04 06:48

Интерпритация->Интерпретация

Вот блин что называется привычка - вторая натура. Хотя VB подходит скорее к первому варианту.

Ответить

Номер ответа: 23
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #23 Добавлено: 13.02.04 07:48
2CyRax
> Единственный вывод из этих слов - VB.NET - интерпритатор.

??? Тут это, по-моему, уже 100 раз говорили, что .NET ни в коем случае
н является интерпретатором. Это - полноценный компилятор, причем этих
конпиляторов аж 2!

Тот факт, что он работает под управлением среды .NET не меняет тот
факт, что это компилятор. На машине пользователя выполняется
_конкретный_ машинный код. Исполнительную среду .NET можно образно
сравлить с исполнительной средой VB6, а сам .NET Framework - это
просто набор кода, который ты вовсе не обязан использовать. Хотя,
конечно, это не совсем верное сравнение.

Вот еще помню, Д. Эпплман писал, не ручаюсь за точность цитаты, тк
читал давно:

Все программисты пишут код для виртуальной машины: И программисты Java
(для виртуальной машины Джава), и программисты VB6 - для виртуальной
машины VB6, и программисты .NET - для виртуальной машины .NET, и даже
программисты ассемблера, которые пишут код для "виртуальной машины",
которая в свою очередь реализуется микрокодом самого процессора.

Если судить по твоим рассуждениям и этой цитате, то, получается, все
языки являются интерпретотаторами (даже АСМ), а чтоб программа была
_полноценной скомпилированной_, ее нужно зашить на кристалл
процессора. Интэрэсно...


И еще по поводу управляемого/неуправляемого кода. Я не вижу причин
использовать второй, тк Managed код имеет огромный ряд преимуществ
перед UnManaged:

Он теоритически является системнонезависимым, т.е. теоритически сможет
выполняться в любой системе, где установлен рантайм и библиотека
классов .NET Framework. Увы, пока она достаточно хорошо реализована
только для Windows

Управляемый код не подвержен ошибкам утечки памяти и ошибкам
исключения защиты памяти, он не может вызвать критический сбой
системы.

Управляемый код по умолчанию не может иметь проблем с Hell DLL.

Ды и вообще,

Unmanaged Code Must Die
Managed Code Rulezzz Forever!!!

Ответить

Номер ответа: 24
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #24
Добавлено: 13.02.04 09:07
Артём, браво!
Остаётся только добавить, что, ИМХО, MS добавила в C# поддержку
неуправляемых вставок, только чтобы те, кто переходит с C++ на
C# .NET не сильно комплексовали.

To CyRax: а что ты так за .NET вцепился? Вроде уже хорошо всё
растолковали, что такое интерпретатор, а что такое компилятор, а ты
опять начинаешь... Что-то это уже надоедает. Думаю, далее флуд буду
килять без предупреждения...

Ответить

Номер ответа: 25
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #25
Добавлено: 13.02.04 21:58

> Тут это, по-моему, уже 100 раз говорили, что .NET ни в коем случае

н является интерпретатором. Это - полноценный компилятор, причем этих

конпиляторов аж 2!

Один из них, может, и компилятор, а вот другой - стопудовый транслятор, т.к. IL никогда машинным языком не был (разве что Intel выпустит камень с .NET-опкодами)

> На машине пользователя выполняется _конкретный_ машинный код.

Вот это новость! Первый раз слышу, чтобы на какой-то машине выполнялся не конкретный машинный код :) Это не определение компилятора...

> Исполнительную среду .NET можно образно сравлить с исполнительной средой VB6, а сам .NET Framework - это просто набор кода, который ты вовсе не обязан использовать. Хотя, конечно, это не совсем верное сравнение.

Совсем неверное. Я и виртуальную машину VB6 использовать не обязан, надо просто не писать на VB6

> Все программисты пишут код для виртуальной машины: И программисты Java

(для виртуальной машины Джава), и программисты VB6 - для виртуальной

машины VB6, и программисты .NET - для виртуальной машины .NET, и даже

программисты ассемблера, которые пишут код для "виртуальной машины",

которая в свою очередь реализуется микрокодом самого процессора.

Только надо учитывать, что JavaVM написана Sun, VBVM и FW написаны Microsoft, а микрокод процессора зашит в него самого программистами Intel и поменять его нельзя.

> Он теоритически является системнонезависимым, т.е. теоритически сможет

выполняться в любой системе, где установлен рантайм и библиотека

классов .NET Framework. Увы, пока она достаточно хорошо реализована

только для Windows

Сильно уверен, что FW никогда не будет реализован даже для Linux.

> Управляемый код не подвержен ошибкам утечки памяти и ошибкам

исключения защиты памяти, он не может вызвать критический сбой

системы.

Это только предположение, вызванное мелкомягкой рекламой. Нам ведь никто не показывал исходники, не так ли?

> Управляемый код по умолчанию не может иметь проблем с Hell DLL.

А вот это что-то новое... Почему?

Ответить

Номер ответа: 26
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #26 Добавлено: 13.02.04 23:17
> Совсем неверное. Я и виртуальную машину VB6 использовать не обязан,
> надо просто не писать на VB6

Да, собственно, ты не обязан использовать виртуальную машину .NET -
просто пиши на Delphi, Assembler, Pascal.

> Это только предположение, вызванное мелкомягкой рекламой. Нам ведь
> никто не показывал исходники, не так ли?

Нет, не показывали.
Но я уверен в том, что исключений защиты памяти быть не может потому,
что .NET при работе с объектами не использует подсчет ссылок, а сборку
мусора, поэтому "случайно" объект быть удален не будет.

> А вот это что-то новое... Почему?

Хм. Хотя бы потому, что он не требует регистрации компонентов,
использует сильные имена для компонентов и в нем есть JIT компилятор.

Ответить

Номер ответа: 27
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #27
Добавлено: 14.02.04 02:07

>и даже программисты ассемблера, которые пишут код для "виртуальной машины", которая в свою очередь реализуется микрокодом самого процессора.
 - Совершенно бредовое утверждение человека никогда не видевшего АСМ. На нём нет никакой виртуальной машины. Там все 100% подключается. Даже работа под виндой подключается.
  И уже эти слова заставляют относится ко всем остальным словам с недоверием.
 Я бы мог по твоему высказыванию развить мысль что всё в мире делается через (нет не ж...) виртуальную машину. Но по моему это совершенно тупиковое направление разговора.
 Какая может быть виртуальная машина когда ты просто переключаешь те или иные триггеры или пересылаешь те или ниые данные.
 И хвалить за столь бредовое утверждение можно только если сам разбираешся в такой же степени.
 Это касается и других компиляторов (в отличие от интерпретатора VB.NET). Я уже сказал по моему что любой интерпретатор жёстко привязан к своей среде. Разве это не видно из всех предыдущих версий МS BASIC?
 Для всех продуктов MS ты привёл примеры их виртуальных машин. А для АСМ ты просто туманно заявил "виртуальной машины"! Разве это серьёзно???

>И еще по поводу управляемого/неуправляемого кода. Я не вижу причин использовать второй, тк Managed код имеет огромный ряд преимуществ перед UnManaged
 - Конечно интерпретатор в общем имеет ряд приемуществ по сравнению с компилятором. Но его главный недостаток - он работает только в пределах своей среды и не может от него отклоняться. Ты не можешь контролировать процессы, происходящие на компьютере, а только слепо доверяться виртуальной машине. Как бы хороша она не была, но она по любому будет несовершенной. И ты не можешь внести в прогамму никаких изменений, улучшений или дополнений только потому что этого тебе не позволяет виртуальная машина.

>Управляемый код по умолчанию не может иметь проблем с Hell DLL.
 Да, потому что она находится за пределами контроля виртуальной машины. Просто она не видит её и по этому ей совершенно начхать на все внешние проблемы пока они её не трогают. И всякие "безопасные указатели" это всего лишь внутренний инструмент среды, а вовсе не реальные адреса модулей в памяти.

 Жёстакая привязка к среде виртуальной машины (не подключаемых статически или динамически модулей) способ контроля инструмента разработки программ, предназначенный для начинающих и непрофессиональных программистов. БЕЙСИК и являетсь инструментом создания программ именно для таких программистов. Те, кто уже освоил основы программирования, как правило переходят на нормальные языки. Те же кому удобен синтаксис Бейсика (или например они к нему привыкли) ищут нормальный компилятор с его синтаксисом.
 Если обучение основам программирования закончено, то зачем переходить во второй класс с учебником за первый. Он там просто не нужен будет. Получается что ты вроде всё время остаешся на второй год.

Ответить

Номер ответа: 28
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #28 Добавлено: 14.02.04 10:32
Как вы (CyRax, Sharp) можете утверждать может ли произойти утечка в
памяти или "кошмар DLL", не зная самого .NET? Чего вы вообще
добиваетесь?

Ответить

Номер ответа: 29
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #29 Добавлено: 14.02.04 14:56
> Совершенно бредовое утверждение человека никогда не видевшего АСМ.

Хм. Это далеко не мое утверждение - я просто процитировал господина Д.
Эпплмана - он программирует на Windows с момента ее выхода - думаю, он
все же видел Ассемблер и разбирается в этих вещах получше нас вместе
взятых. Вот, чисто из принципа не поленился найти эту фразу в его
книге:

Глава 4, страница 43, примечание 1

Не путайте понятия "виртуальная машина" и "исполнительная среда".
Напримет, виртуальная машина Java реализована на базе исполнительной
среды и классов. Именно виртуальная машина определяет среду
программирования, одноко этот термин относится к _любой_ среде. Даже
при работе на ассемблере программист пишет код для виртуальной машины,
определяемой набором инструкций процессора (которые, в свою очередь,
раелизуются микрокодом самого процессора).

Я бы мог развить эту мысль, чтоб показать тебе, что управление любым
мехнизмом, токарным станком или компьютером, осуществляется через
виртуальную машину, но не буду этого делать.

И еще раз - можно было, прочитав это тут уже десяток раз, запомнить:
VB .NET - это не интрепретатор, а полноценный компилятор.

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

Однозначно, фраза века. Это ж какая виртуальная машина не позволит мне
добавить в свою программу еще 100 кб исходного кода?????

И еще - управляемый код не распределяет для себя память, он не создает
и не удаляет указатели, не имеет доступа к регистрам процессора и
практически не может работать с оборудованием напрямую. И такие
"возможности" мне ну нужны, ибо я, когда пишу программу, не хочу
тратить свое время на реализацию всего этого. Любой программист должен
прежде всего думать об логике программы, а не реализации всех тонких
технических мелочей, которые может взять на себя CLR.

> Да, потому что она находится за пределами контроля виртуальной
> машины. Просто она не видит её и по этому ей совершенно начхать на
> все внешние проблемы

Ну это уже совсем неверное утверждение. Вам уже сказали - надо сначала
хотя бы разобраться с тем, как оно работает, а потом уже доказывать,
что оно вообще не работает.

Кошмар DLL невозможен потому, что теперь в системе может работать
одновременно несколько версий одного и того же компонента и совершенно
необязательно эти компоненты должны быть зарегестрированы.

Ответить

Номер ответа: 30
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #30
Добавлено: 15.02.04 03:42

> Как вы (CyRax, Sharp) можете утверждать может ли произойти утечка в

памяти или "кошмар DLL", не зная самого .NET? Чего вы вообще

добиваетесь?

Мы зато хорошо знаем, откуда растут руки у программистов Microsoft и более чем уверены, что .NET, так же, как и 95 и 98 и 2000 и Ме и ХР и 2003 не станут панацеями против всего вместе взятого и совсем не стоит убеждать людей в непогрешимости .NET только потому, что это все пообещал дядя Билли :)

> Я бы мог развить эту мысль, чтоб показать тебе, что управление любым

мехнизмом, токарным станком или компьютером, осуществляется через

виртуальную машину, но не буду этого делать.

Сравнение неправомерно. Микрокод процессора не продается отдельно от компьютера, в отличии от Windows с FW. Практически уверен, что когда мелкомягкие вдоволь поорут о совершенстве и невероятной кроссплатформенности .NET и все на него перейдут, они даже не подумают реализовывать его для других платформ (ну разве что Pocket PC+Windows CE)... Прежде чем рассуждать о программной технологии или программном продукте от Microsoft, стоит подумать, как на этом можно нагреть руки. Тогда многое становится понятным. Никогда прежде мелкомягкие не руководствовались принципами человеколюбия и свободной конкуренции, не будут и впредь.

О стабильности и безопасности Managed-кода: оно гарантируется только стабильностью и безопасностью самой Винды, а она легенда в этом плане недаром.

> И еще раз - можно было, прочитав это тут уже десяток раз, запомнить:

VB .NET - это не интрепретатор, а полноценный компилятор.

Какй же он компилятор, если использует управляемый код? Подчеркнем: управляемый .NET код...

> И еще - управляемый код не распределяет для себя память, он не создает

и не удаляет указатели, не имеет доступа к регистрам процессора и

практически не может работать с оборудованием напрямую.

Наверно, мне с моей колокольни программирования прикладных научных и инженерных задач видно немного по другому, но, имхо, это совсем не есть гуд... Была бы моя воля, я бы писал программу, работающую, скажем, после загрузки компа с сидюка, т.е. однозадачную среду с полным управлением вычислительным устройством... Но раз пользователь любит многозадачность, то я бы предпочел бы иметь мультизадачную ОС с микроядром и свободным доступом к аппаратным ресурсам... Посему я все больше подумываю о переходе на какой-нибудь Linux или FreeBSD...

А что такое сильные имена?

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам