Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Что же такое .NET ?


Автор: AntonSaburov 3.2.2004, 17:44
Т.к. последнее время я неоднократно встречал вопросы «Что же такое .NET» то, IMHO, единственным правильным решением было написание заметки о том, что же это такое - .NET.
В данной статье я не буду использовать всевозможные рекламные словечки типа "распределенные", "Internet",
"высокопродуктивная", "безопасная" и прочая. Это оставим на совести продавцов. Постараюсь коснуться именно главного – из чего состоит и как работает.
Дальнейшие статьи (а я надеюсь, что я буду делать это более регулярно, чем раньше) буду посвящать различным аспектам программирования под .NET. Само собой все ваши замечания будут приняты с благодарностью и учтены в дальнейшей работе.

Итак, начнем.

Из чего состоит .NET Framework.
.NET Framework состоит из двух основных частей:
1. Среда исполнения
2. Библиотека классов

Среда исполнения
Наверно самое простое объяснение будет выглядеть так – это программа, которая выполняет команды Вашей программы. По сути это интерпретатор. Когда с помощью компилятора какого-либо языка для .NET вы собираете (компилируете) Вашу программу Вы получаете не реальные команды процессора, а некие абстрактные команды, байт-код, промежуточный ассемблер – как Вам удобнее понимать. Т.е. кто помнит QBasic, тот должен помнить, что там команды исполнялись по строчкам. Строка сразу интерпретировалась и исполнялась. В .NET это несколько оптимизировано – среда исполнения работает не с текстом программы, а с уже оптимизированным байт-кодом на языке MSIL - Microsoft Intermediate Language.
На само деле все несколько сложнее – Ваше приложение загружает библиотеку mscorlib.dll и передает управление ей. И уже эта библиотека (которая работает само собой не на MSIL, а на реальных командах процессора)выполняет Ваш код. Кроме этой библиотеки в каталоге с установленной средой исполнения находится еще немало библиотек, но о них речь сегодня мы вести не будем. После загрузки Вашего приложения в память начинается его исполнение. Но и здесь продолжается оптимизация его работы – используется JIT компилятор (Just In Time). Этот компилятор занимается тем, что при первой загрузке кода на MSIL, преобразует его в реальные команды процессора и в дальнейшем Ваше приложение будет использовать уже не MSIL, а полученный код. Такое поведение особенно хорошо видно, когда вы открываете форму с большим количество компонентов, потом закрываете ее и после открываете опять. Первый раз, даже на глаз видно, что система работает гораздо медленнее, чем в последующие.

Как Вы наверно уже поняли, для того, что бы программы написанные под .NET могли быть запущены на другом компьютере, на нем должна быть установлена среда исполнения (устанавливается она в каталог \WINDOWS\Microsoft.NET\Framework\<номер версии>).
Если на компьютере, на котором Вы запускаете свою программу .NET Framework не установлена, то будет выдано, что система не может найти библиотеку mscorlib.dll (о которой я уже упоминал) и само собой дальше этого ничего не пойдет.
По поводу совместимости - на самом деле нормально все это работает начиная с Windows 2000. Хоть и объявлено, что должно работать на Windows 98, Me и Windows NT 4 SP6, но (во всяком случае первая версия .NET) работало это с большим количеством глюков. Так что используйте 2000 или XP.

Что же это нам дает:
1. Возможность повышенной безопасности – Ваша программа не может делать больше того, что ей разрешается. Вы можете с меньшими опасениями использовать незнакомые программы из Internet.
2. Возможность использовать любые языки программирования, которые подпадают под спецификацию - Common Language Specification (CLS) в одном проекте. Почему такое возможно должно быть достаточно очевидно – компилятор любого высокоуровневого языка, удовлетворяющий спецификации, может породить корректный код на MSIL, который в свою очередь без каких-либо проблем будет интерпретироваться средой выполнения.
3. Т.к. код является управляемым, то возникают дополнительные возможности типа метаданных, т.е. данных о самих данных. Вы можете на лету определить тип данных, и даже создать новый тип, скомпилировать и выполнить его.
4. Исчезает «ад dll». Кто уже писал много программ или хотя бы устанавливал много программ, знает, что часто динамические библиотеки могут иметь разные версии, могут быть вообще разными, но иметь одно имя. И все они почему-то хотят стоять в каталоге WINDOWS\System32. Чтобы уметь управлять всем этим хаосом надо немало потрудится. В .NET предполагается, что все, что относится к Вашему приложению должно лежать в одном каталоге и никаких противоречий быть не должно. Мало того, используя механизм метаданных, Вы можете установить точно – какой версии dll будет использоваться Вашим приложением. И никакая другая версия ему не подойдет.
5. Из вышеизложенного должно быть понятно, что система исполнения работает поверх ОС. Таким образом Ваша программа не должна работать с ОС напрямую. Это обеспечивает устойчивость и безопасность системы в целом. Но тем не менее без каких-либо особых затрат Вы можете писать приложения, которые будут работать в операционной системой напрямую. Это может быть обращение к обычным dll или использование так называемого «неуправляемого кода», который будет выполняться как обычный код.

Думаю, что этого объяснения должно быть достаточно для понимания того, что из себя представляет среда исполнения.

Рассмотрим Библиотеку классов
Библиотека классов охватывает просто огромные объемы всевозможных классов и компонент, которые служат для облегчения работы со всевозможными системами и технологиями. Это XML и базы данных, работа с сетевыми ресурсами, технологии SOAP, графическая подсистема. Используя эту библиотеку, Вы можете писать всевозможные виды приложений. Вот список от Microsoft:

- Console applications.
- Windows GUI applications (Windows Forms).
- ASP.NET applications.
- XML Web services.
- Windows services

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

Наверно на этом можно закончить предварительное знакомство с .NET. До скорых встреч.

Автор: Kurt 26.2.2004, 20:00
Никак не могу понять - является ли .NET просто оболочкой над WinAPI?
Мне кажется, что весь этот байт-код в конечном итоге ДЛЯ Windows переводится все в те же вызовы API. Т.е виртуальная машина работает с API..
Или я не прав? Тут все функции переписаны?.. confused.gif

Автор: Paradox 27.2.2004, 09:48
Оболочкой для WinAPI является MFC
При программировании с использованием FCL забудьте об API,MFC,COM,CORBA и так далее
это совет от MICROSOFT

Автор: Dana 4.6.2004, 00:54
Цитата(AntonSaburov @ 3.2.2004, 17:44)
По поводу совместимости - на самом деле нормально все это работает начиная с Windows 2000. Хоть и объявлено, что должно работать на Windows 98, Me и Windows NT 4 SP6, но (во всяком случае первая версия .NET) работало это с большим количеством глюков. Так что используйте 2000 или XP.


А как на счет Linux'a?

Автор: Kurt 4.6.2004, 01:08
Под Linux?
Тяжко, хотя теоретически реализуемо.
Под Linux есть проект http://www.go-mono.com/.
Но за 3 (по-моему..) года они не смогли обеспечить работу Windows Forms, а вот консольные приложения работают..
Оно и понятно, ведь поддержки толком никакой.
Вот если б M$ позаботился об этом также как Sun о Java.. rolleyes.gif

З.Ы. Сам еще не пробовал.. rolleyes.gif

Автор: chipset 4.6.2004, 07:06
Слышал что приложения .NET под Линухом бегают очень быстро...
К сожалению сам не опровергнуть не потвердить информацию не могу... sad.gif

Автор: arilou 16.7.2004, 13:37
Цитата(Kurt @ 26.2.2004, 20:00)
Никак не могу понять - является ли .NET просто оболочкой над WinAPI?
Мне кажется, что весь этот байт-код в конечном итоге ДЛЯ Windows переводится все в те же вызовы API. Т.е виртуальная машина работает с API..
Или я не прав? Тут все функции переписаны?.. ???

На текущей платформе Windows .NET действительно в конечном итоге вызывает WinAPI. А вот когда выйдет Longhorn, все станет наоборот - WinAPI будет эмулироваться средствами .NET. В MS говорят, что WinAPI развиваться дальше не будет, а вся ОС будет работать в managed среде.

Автор: Deeoni$ 5.8.2004, 22:39
Цитата(arilou @ 16.7.2004, 05:37)
На текущей платформе Windows .NET действительно в конечном итоге вызывает WinAPI. А вот когда выйдет Longhorn, все станет наоборот - WinAPI будет эмулироваться средствами .NET. В MS говорят, что WinAPI развиваться дальше не будет, а вся ОС будет работать в managed среде.

а что будеь с ассемблером когда выйдет Longhorn??? как на нем будет писать под .NET не используя эмуляции WinAPI

Автор: arilou 6.8.2004, 12:08
Deeoni$
Честно говоря, даже не знаю, как-то не задумывался о судьбе ассемблера. Наверное, IL придет ему на замену wink.gif

Автор: ReSeT 19.8.2004, 14:46
Цмтата с одного инф сервера:
Цитата
...Windows Longhorn будет основан на технологии .NET, а приложения Win32(API) будут выполняться в режиме эмуляции...

Но вот вопрос насколко хорошо будет реализована эмуляция???
Кстати, скажите ,плз, что такое IL?

Автор: arilou 19.8.2004, 14:53
Цитата(ReSeT @ 19.8.2004, 14:46)
Но вот вопрос насколко хорошо будет реализована эмуляция???
Кстати, скажите ,плз, что такое IL?


Насчет качества эмуляции не знаю, но наверное хуже чем Win 95 - Win 3.11 не будет smile.gif
А нсчет MSIL -
Цитата(AntonSaburov @ 3.2.2004, 17:44)
Среда исполнения
Наверно самое простое объяснение будет выглядеть так – это программа, которая выполняет команды Вашей программы. По сути это интерпретатор. Когда с помощью компилятора какого-либо языка для .NET вы собираете (компилируете) Вашу программу Вы получаете не реальные команды процессора, а некие абстрактные команды, байт-код, промежуточный ассемблер – как Вам удобнее понимать. Т.е. кто помнит QBasic, тот должен помнить, что там команды исполнялись по строчкам. Строка сразу интерпретировалась и исполнялась. В .NET это несколько оптимизировано – среда исполнения работает не с текстом программы, а с уже оптимизированным байт-кодом на языке MSIL - Microsoft Intermediate Language.


Автор: DeeZ 26.11.2004, 01:55
Цитата

На текущей платформе Windows .NET действительно в конечном итоге вызывает WinAPI. А вот когда выйдет Longhorn, все станет наоборот - WinAPI будет эмулироваться средствами .NET.

Цитата

Честно говоря, даже не знаю, как-то не задумывался о судьбе ассемблера. Наверное, IL придет ему на замену

У меня уже стоИт Longhorn build 4074, эмуляция эта работает ч\з раз, а то и ч\з два - некоторые программы (в частности, использующие RASAPI, IMAP и т.п.) иногда вообще не запускаются, т.е. процесс создается, а форма не рисуется - может программа и работает, но отсутствие GUI делает общение с приложением весьма затруднительным smile ... а иногда все нормально пашет.
Что касается ассемблера, то fasm программы у меня работают нормально (правда ничего серьезного не запускал, так - свои побрякушки). IL придет на смену API, скорее всего придется нам учить этот новый "Microsoft Intermediate Language" и в include пхать модули с описанием IL констант и функций.
Ну а за судьбу чистого асма (ч\з прерывания, стэк, регистры и т.д. работающего) я спокоен smile
Если только M$ не прикупит вслед за Borland еще и Intel с AMD smile
-
Надо срочно искать D8.

Автор: Exception 9.2.2005, 12:20
Цитата
По сути это интерпретатор

Не совсем согласен. Интерпретатор исполняет текстовые команды, а в .НЕЕЕЕЕЕТ сначала происходит JIT-компиляция. Т.е. при вызове какогонить метода Just-In-Time компилятор сначала компилит IL-код а потом исполняет уже откомпиленный код.

Автор: AntonSaburov 9.2.2005, 16:45
Цитата(Run @ 9.2.2005, 12:20)
Не совсем согласен. Интерпретатор исполняет текстовые команды, а в .НЕЕЕЕЕЕТ сначала происходит JIT-компиляция.


А внимательнее читать не пробовал ?

Цитата(AntonSaburov @ 3.2.2004, 17:44)
После загрузки Вашего приложения в память начинается его исполнение. Но и здесь продолжается оптимизация его работы – используется JIT компилятор (Just In Time). Этот компилятор занимается тем, что при первой загрузке кода на MSIL, преобразует его в реальные команды процессора и в дальнейшем Ваше приложение будет использовать уже не MSIL, а полученный код.


Автор: Петрович 9.2.2005, 22:02
Цитата(arilou @ 16.7.2004, 14:37)
На текущей платформе Windows .NET действительно в конечном итоге вызывает WinAPI. А вот когда выйдет Longhorn, все станет наоборот - WinAPI будет эмулироваться средствами .NET.

Интересно посмотреть как высокоуровневыми средствами можно эмулировать низкоуровневый WinAPI.

Автор: Vex 10.2.2005, 00:11
Цитата(arilou)
что WinAPI развиваться дальше не будет, а вся ОС будет работать в managed среде.

Они вроде собираются полностью переписать весь API, вроде будет называться WinFX.

Цитата
Интересно посмотреть как высокоуровневыми средствами можно эмулировать низкоуровневый WinAPI.

Ну приложение обращается к .NET, а .NET в свою очередь к API, что мешает "интегрировать" в среде исполнения .NET функции, которые дает WinAPI... smile

Автор: [Last]Wizard 10.2.2005, 16:01
Цитата(Vex @ 9.2.2005, 23:11)
Они вроде собираются полностью переписать весь API, вроде будет называться WinFX

Да, а еще будет такая штука, как Avalon - замена стандартному GDI. Декларативное программирование и все такое...

Автор: Exception 10.2.2005, 19:25
Цитата
А внимательнее читать не пробовал ?

Сам себе противоречишь:

Цитата(AntonSaburov @ 3.2.2004, 18:44)
И уже эта библиотека (которая работает само собой не на MSIL, а на реальных командах процессора)выполняет Ваш код.


Цитата(AntonSaburov @ 3.2.2004, 18:44)
используется JIT компилятор


Библиотека НЕ ИСПОЛНЯЕТ IL-код. Она его компилирует. Хоть и JIT.
Если я не прав не злись а объясни, ОК?

Автор: Петрович 10.2.2005, 19:41
Цитата(Vex @ 10.2.2005, 01:11)
Ну приложение обращается к .NET, а .NET в свою очередь к API, что мешает "интегрировать" в среде исполнения .NET функции, которые дает WinAPI... 

Дык речь шла о
Цитата(arilou @ 16.7.2004, 14:37)
WinAPI будет эмулироваться средствами .NET.


Автор: Exception 11.2.2005, 16:01
Тогда ОС надо бы назвать Windows .NET smile

Автор: $tatic 28.2.2005, 19:01
Вся эта затея с Windows.NET (привет, Run-time error) мне кажется довольно стремной: полностью менять внутренности системы, эмулировать WinAPI и т.п. будет очень сложно даже самому Биллу smile
Как мне кажется, такие извращения приведут к следующему:

* Все программы, кроме .NET, уже написанные на настоящий момент (и по-любому использующие WinAPI), особенно игры, будут работать значительно медленнее (покупайте новый компьютер! ??? smile )

* Эмуляция естественно будет глючить (любая программа содержит ошибку, при ее устранении появляются еще две smile ), а значит почти все программы (см. пункт выше) по принципу наследования будут глючить (в т.ч. и Винда - еще больше)

* Эмуляция может не поддерживать очень сложных программ (как это было когда-то с эмуляцией MS DOS)

* Так как код .NET полностью защитить (в настоящее время) нельзя, то воровства кода и крякинга (MSIL - это не ASM) будет еще больше (Неужели наступает пришествие Open source)


Вот, вроде бы, все. Будет что-то еще - дополняйте.

Кстати, Мелкософт может эмуляцию эту сделать по принципу VirtualPC (который они когда-то купили smile ). Т.е. фактически в отдельной тормозной (поскольку виртуальной) Винде.

Автор: chipset 28.2.2005, 19:35
Цитата
полностью менять внутренности системы, эмулировать WinAPI и т.п. будет очень сложно даже самому Биллу smile

А кто тебе сказал что это будут делать? smile

Автор: Domestic Cat 28.2.2005, 19:40
Цитата
А кто тебе сказал что это будут делать?

Так будут или нe будут? smile

Автор: $tatic 1.3.2005, 14:10
Это лчно мое мнение. Скорее всего - нет.

Автор: WolfON 6.5.2005, 17:23
Цитата
эмулировать WinAPI и т.п. будет очень сложно даже самому Биллу

тут даже вопрос не в сложности [вполне реально], а впроизводительности, те старые преложения замедляться как минимум на 20% smile

Автор: РКК 28.5.2005, 22:08
Господа, а все же что будет с асемблером?

Автор: Ch0bits 29.5.2005, 00:31
Скорее .НЕТ исчезнет, чем ассемблер!

Автор: stab 29.5.2005, 18:34
Цитата(Domestic @ 28.2.2005, 16:40)
Так будут или нe будут?

Мне кажется, что ни чего во внутренностях переделывать не будут, просто, сверху навесят .NET и в дальнейшем будут наращивать только его возможности, все новые API публично будут доступны только через .NET сборки, например, тот же Avalon, который уже сейчас работает под Windows XP и которой будет частью Longhorn. Не ясно откуда вобще появилась идея эмуляции Win32 API, технология .NET под Windows опирается на Win32 API, а это тонны отлаженного кода, полученного большой кровью, сомневаюсь, что кто-то будет рубить сук на котором сидит.

Автор: NixoL 8.6.2005, 20:27
2Петрович : низкоуровневый WinAPI !!!???? smile

Автор: nikf 8.6.2005, 20:51
если писать прогу под DOS она будет работать везде и без API. вот только одна эмуляция от доса к сожалению осталась, DirectDraw работает без GDI. Эмуляция GDI в частности, и APi в целом не такая уж кощунственная идея... асм пока никуда не денется, а вот все надстройки над апи(VCL MFC) уже сейчас не так актуальны, в большинстве случаев они нужны для поддержки старых проектов. Сейчас нет смысла использовать эти библиотеки в новых проектах, при возможности использования сретств дотнет..

Автор: neutrino 31.8.2005, 23:30
Не понимаю...

На .NET Framework не может быть сделана ОС => эмулировать (интерпретировать) будут именно байт-код, а не API. API останется и никакой эмуляции не будет. И вообще не надо пользоваться API, иначе ваши приложения будут не кросплатформенными.

Кстати, что там с .NET в Linux и в MacOS? Мне кажется воняет мертвичиной. Надо переходить на Java. Там реальная кросплатформенность, а не ее подражание. Чего стоит .NET без нее?

Автор: Ch0bits 1.9.2005, 00:54
Во-во! Правильно говоришь. Я про енто чудо-юдо МелкоНЕТ уже забыл давно.

Автор: Denn 1.9.2005, 09:08
Цитата из Рихтера: в далеком будущем планируется, что процессор будет поддерживать IL. ЖУТЬ!

Автор: neutrino 1.9.2005, 09:30
Цитата(Denn @ 1.9.2005, 08:08)
Цитата из Рихтера: в далеком будущем планируется, что процессор будет поддерживать IL. ЖУТЬ!

ИМХО не реально. В IL переменные, а не адреса. ЦП не может оперировать данными в такой абстрактной (относительно) форме.

Автор: mr.DUDA 1.9.2005, 10:25
Цитата(neutrino @ 1.9.2005, 09:30)
ИМХО не реально. В IL переменные, а не адреса. ЦП не может оперировать данными в такой абстрактной (относительно) форме.

Что такое переменная ? Адрес в памяти.

Автор: arilou 1.9.2005, 11:48
Во-первых,

Цитата(neutrino @ 31.8.2005, 23:30)
На .NET Framework не может быть сделана ОС => эмулировать (интерпретировать) будут именно байт-код, а не API.

Не ну можно было почитать немного прежде чем выражать сомнение и непонимание? Не надо называть IL байт-кодом, потому что
  • 1) это разные вещи
  • 2) байт-код интерпретируется, IL - компилируется! в native

IL - это не p-code из VB6, который интерпретировался при помощи VBRUNx00.DLL.

Во-вторых,
На .NET framework никто ОС писать не собирается. Вы слышали про такое понятие "уровень абстракции" ? Вы писали бизнес-приложения для платформы Windows, которые бы работали с COM+, SQL Server, BizTalk и другими серверными платформами?

API - метрв. Он не будет расширяться и дорабатываться. Он останется, как режим совместимости для старых программ. MFC, VCL и проч. упрощали работу с WinAPI, за что им большое спасибо. Как сейчас помню программы из тысяч строк кода на C, которые окно отрисовывали и мышкой в нем линии выводить позволяли под Win 3.0.

Нельзя бесконечно тюнинговать Запорожец - рано или поздно это перестанет приносить выгоду. Так же и в программировании.

А решать умозрительные задачи, типа реализовать синглтон без статиков, это пусть на олимпиадах студенты делают, алгоритмизацию свою прокачивают. В реальном мире, где программер зарабатывает созданием бизнес-приложений, это не нужно. Нужно уметь в сроки укладываться и программы стабильные выпускать. Так вот такой уровень абстракции над сервисами ОСи и дает эту возможность.

Вот.

Автор: Denn 1.9.2005, 12:28
Цитата(arilou @ 1.9.2005, 11:48)
API - метрв. Он не будет расширяться и дорабатываться. Он останется, как режим совместимости для старых программ.

Это возможно, но только не в ближайшем будущем. Для того, чтобы .NET стала действительно стОящей системой, ее еще развивать и вазвивать. Я год пишу под нее и слишком много обнаруживаю недоделок, багов, тормозов... Ждем .NET framework 2.0, можт будет по-лучше.

Автор: Дрон 1.9.2005, 12:37
Цитата(Denn @ 1.9.2005, 13:28)
Я год пишу под нее и слишком много обнаруживаю недоделок, багов, тормозов...

Да ню?
Списочек пожалуйста smile

Я не говорю, что .НЕТ идеален, но всё-таки пока реальных недостатков я не видел.
Добавлено @ 12:38
Цитата(neutrino @ 1.9.2005, 00:30)
Не понимаю...

Точно подмечено.

Цитата(neutrino @ 1.9.2005, 00:30)
На .NET Framework не может быть сделана ОС => эмулировать (интерпретировать) будут именно байт-код, а не API. API останется и никакой эмуляции не будет. И вообще не надо пользоваться API, иначе ваши приложения будут не кросплатформенными.

У Windows есть такая вещь как ядро, которое выставляет наружу свой интерфейс -- WinAPI.
Теперь интерфейсом к ядру будет .NET.
По-моему, очевидно smile

Автор: Denn 1.9.2005, 13:27
Цитата
Списочек пожалуйста

Да сейчас только некорректно наследуется форма, контролы невозможно нормально разместить на наследованной - они располагаются непонятно как после компиляции.

Тормозит. MFC очевидно быстрее в большинстве случаев.

В C# нет некоторых вещей - шаблонов, например, вроде как есть 2.0.

Некоторые исключения не ловятся - например, обращение по null указателю иногда продолжает выполнение.

smile
Продолжу позже... Когда всплывет очередное...

Автор: Дрон 1.9.2005, 13:31
Цитата(Denn @ 1.9.2005, 14:27)
Некоторые исключения не ловятся - например, обращение по null указателю иногда продолжает выполнение.

Хмм... Маловероятно.

Единственное, где я видел, что исключения не ловятся вообще -- так это в обработчике событий ActiveX объекта. Помню долго не мог найти этот глюк, а потом пришлось принять как факт.

Цитата(Denn @ 1.9.2005, 14:27)
В C# нет некоторых вещей - шаблонов, например, вроде как есть 2.0.

Вот именно. Будет. Они особо-то и не нужны. Типизированные контейнеры делаются очень легко и без них smile

Цитата(Denn @ 1.9.2005, 14:27)
Тормозит. MFC очевидно быстрее в большинстве случаев.

Это совсем разные вещи. Нечего сравнивать.

Цитата(Denn @ 1.9.2005, 14:27)
Да сейчас только некорректно наследуется форма, контролы невозможно нормально разместить на наследованной - они располагаются непонятно как после компиляции.

Переустанавливаем драйвера рук и головы -- всё будет Ок smile
Добавлено @ 13:34
По поводу последнего.
Загляни Windows Form Designer Generated Code и посмотри внимательно каким именно способом в .NET создаются формы. Тогда и поймёшь smile

Автор: Denn 1.9.2005, 14:31
Цитата
Хмм... Маловероятно.

Что не было такого - отлаживаешь строчка за строчкой, а на строке, где указатель null отладка прерывается и выполнение приложения продолжается?

Цитата
Вот именно. Будет.

Мда ждем...

Цитата
Это совсем разные вещи. Нечего сравнивать.

А почему бы и не сравнить скорость выполнения однотипных приложений?

Цитата
Загляни Windows Form Designer Generated Code и посмотри внимательно каким именно способом в .NET создаются формы. Тогда и поймёшь

Я понимаю как создаются формы. А ты пробовал когда-нить менять этот сгенеренный код? Лучше не пытаться. И не редактировать имена сгенеренных переменных в начале исходника.

Автор: Дрон 1.9.2005, 14:37
Цитата(Denn @ 1.9.2005, 15:31)
Я понимаю как создаются формы. А ты пробовал когда-нить менять этот сгенеренный код? Лучше не пытаться. И не редактировать имена сгенеренных переменных в начале исходника.

А мне это никогда не было нужно smile
Зачем извращаться-то. Наоборот, я как-то долго матерился, когда увидел, что один из моего проекта вручную отредактировал сгенерённый код.
Вообще надо стараться не злоупотреблять дизайнером форм, а генерировать в рантайме.

Цитата(Denn @ 1.9.2005, 15:31)
А почему бы и не сравнить скорость выполнения однотипных приложений?

Заказчика волнует больше скорость разработки, а не скорость выполнения. Тут MFC нельзя сравнивать с .NET


Что-то мы наоффтопили тут... smile

Автор: arilou 1.9.2005, 16:49
Цитата(Denn @ 1.9.2005, 13:27)
Да сейчас только некорректно наследуется форма, контролы невозможно нормально разместить на наследованной - они располагаются непонятно как после компиляции.

Много раз так делал и никогда не было проблем.

Цитата(Denn @ 1.9.2005, 14:31)
где указатель null отладка прерывается и выполнение приложения продолжается?

Что такое указатель smile ? Ты имеешь ввиду ссылку? Тож не видел. Скорее всего, сырцы были модифицированы, но не было перекомпиляции.

Цитата(Denn @ 1.9.2005, 14:31)
А ты пробовал когда-нить менять этот сгенеренный код?

А вот этого никогда не стоит делать. На то код и сгенерированный. Если тебе надо что-то поменять в сгенерированном классе - наследуешься от него и меняешь. Вот так вот.

Кстати, и в MFC лезть руками в сгенерированный код - себе дороже выйдет.

Цитата
Заказчика волнует больше скорость разработки, а не скорость выполнения

Согласен.

Автор: Denn 1.9.2005, 20:12
Цитата(arilou @ 1.9.2005, 16:49)
Много раз так делал и никогда не было проблем.

Это вылазит иногда, если форма нагружена контролами.

Цитата(arilou @ 1.9.2005, 16:49)
Что такое указатель smile ? Ты имеешь ввиду ссылку? Тож не видел. Скорее всего, сырцы были модифицированы, но не было перекомпиляции.

Да, ссылка. Скомпиленные, конечно. В run-time такое видно, как если бы функция не отработала.

Цитата(arilou @ 1.9.2005, 16:49)
А вот этого никогда не стоит делать. На то код и сгенерированный. Если тебе надо что-то поменять в сгенерированном классе - наследуешься от него и меняешь. Вот так вот.

Я знаю, что не надо. А зачем тогда этот код, сгенеренный компилятором, лежит в исходнике? Пусть тогда в .resx будет.

Автор: mr.DUDA 1.9.2005, 23:04
Цитата(Denn @ 1.9.2005, 20:12)
Я знаю, что не надо. А зачем тогда этот код, сгенеренный компилятором, лежит в исходнике? Пусть тогда в .resx будет.

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

Цитата
Что не было такого - отлаживаешь строчка за строчкой, а на строке, где указатель null отладка прерывается и выполнение приложения продолжается?

Если и бывают подобные проблемы - всё дело в том, что в директории с исполняемой программой отсутствуют PDB-файлы для исходников, в которых возникло исключение. Лечится сие выставлением опции "отлавливать все .NET-исключения" (сочетание клавиш Ctrl+Alt+E, поставить красный крестик напротив "Common Language Runtime Exceptions"), и "подкидыванием" pdb-файлов для всех длл-ок в директорию с программой. В этом случае, если уж приаттачишься к процессу - точно не пропустишь ни одного исключения.

З.Ы. приаттачитсья к процессу можно с пом. Ctrl+Alt+P.

Автор: Denn 2.9.2005, 09:05
Цитата(mr @ 1.9.2005, 23:04)
Бред полный. Код, сгенерированный дизайнером, отлаживается точно так же как и любой другой код.

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

Цитата(mr @ 1.9.2005, 23:04)
Лечится сие выставлением опции "отлавливать все .NET-исключения" (сочетание клавиш Ctrl+Alt+E, поставить красный крестик напротив "Common Language Runtime Exceptions"), и "подкидыванием" pdb-файлов для всех длл-ок в директорию с программой

спасибо, посмотрю.

Ладно. На это надо тему отдельную заводить.

Автор: Hidrag 11.9.2005, 07:23
Интересно а что будет с драйверами? Будут новые драйвера под .NET или подойдут старые виндовские в новой винде... или тоже в эмуляции будет все? )

Автор: mr.DUDA 11.9.2005, 13:12
Цитата(Hidrag @ 11.9.2005, 07:23)
Интересно а что будет с драйверами? Будут новые драйвера под .NET или подойдут старые виндовские в новой винде... или тоже в эмуляции будет все? )

По крайней мере эта версия Windows (Vista aka Longhorn) построена на старом ядре (WinXP), поэтому и дрова будут старые, вроде.

Автор: Guest 9.11.2005, 08:49
Народ, присоветуйте... smile
Я немного программирую на Visual C++ 6.0, на какую систему мне лучше переходить: на С++.NET или на C#.NET А то я уже весь в растерянности smile
Кстати, это правда, что на С++.NET легче работть с контролами диалогами и т.д и т.п.

Автор: Exception 9.11.2005, 14:39
1. на с#.
2. мс++.нет умрёт.
3. неправда, наоборот сложнее
4. один топик - один вопрос
5. это уже неоднократно обсуждалось

Автор: Diless 7.3.2006, 07:04
Цитата

Как Вы наверно уже поняли, для того, что бы программы написанные под .NET могли быть запущены на другом компьютере, на нем должна быть установлена среда исполнения (устанавливается она в каталог \WINDOWS\Microsoft.NET\Framework\<номер версии>).

Понять то поняли, но тормозим как это с делать.. подскажите пожалуйста. где ее взять как ее устанавливать?))

Автор: kobra 7.3.2006, 09:27
Цитата(Diless @ 7.3.2006, 07:04 Найти цитируемый пост)
Понять то поняли, но тормозим как это с делать.. подскажите пожалуйста. где ее взять как ее устанавливать?))
заходим на саит к MS, находим .NET Framework 1,1 (там ещо и обдеиты имеются) и/или 2,0, качаем, инсталируем.

Автор: Calve 10.3.2006, 10:25
OS на C#:
http://research.microsoft.com/os/singularity/

будущее шарпа:
http://research.microsoft.com/phoenix/
http://research.microsoft.com/act/
http://research.microsoft.com/~nick/polyphony/
http://research.microsoft.com/comega/
http://research.microsoft.com/projects/specsharp/

Как вам такие наработки?

Автор: mr.DUDA 10.3.2006, 13:25
Цитата(Calve @ 10.3.2006, 09:25 Найти цитируемый пост)
Как вам такие наработки?

Главное - не красивое название, а практическая польза. Пока что ничего нового не предлагается (разве что датасеты превратили в часть языка и обозвали Linq-ом smile )

Автор: arilou 10.3.2006, 13:32
mr.DUDA, не скажи. Например, Singularity OS - это другой подход к разработке ОСи

Автор: mr.DUDA 10.3.2006, 13:56
Цитата(arilou @ 10.3.2006, 12:32 Найти цитируемый пост)
mr.DUDA, не скажи. Например, Singularity OS - это другой подход к разработке ОСи

я грю про "C omega", XLinq, DLinq, blablabla-Linq... smile

Автор: Exception 10.3.2006, 14:14
Цитата(mr.DUDA @ 10.3.2006, 14:56 Найти цитируемый пост)
я грю про "C omega", XLinq, DLinq, blablabla-Linq... smile

LINQ не трожь smile . Мне очччень понравился DLinq.
Добавлено @ 14:16
Это гораздо лучше, чем типизованные датасеты, по крайней мере.

Автор: Calve 13.3.2006, 07:00
В этих языках интересен не только LINQ. Там есть такие штуки как асинхронные вызовы функций и свойств, ключевые слова requires ... otherwise ..., ensures, expose, assert и т.п. Это я про Spec#, остальное еще не смотрел smile

Автор: chipset 13.3.2006, 08:16
Цитата(Calve @ 12.3.2006, 21:00 Найти цитируемый пост)
Там есть такие штуки как асинхронные вызовы функций и свойств, ключевые слова requires ... otherwise ..., ensures, expose, assert и т.п. Это я про Spec#, остальное еще не смотрел emo&:)endemo

Однако-ж ты меня заинтриговал! Качаю smile

Автор: Exception 13.3.2006, 13:02
На самом деле функциональность Spec# реализуется штатными средствами С#, но более коряво.

Автор: Calve 14.3.2006, 12:29
Цитата(Exception @ 13.3.2006, 13:02 Найти цитируемый пост)
На самом деле функциональность Spec# реализуется штатными средствами С#, но более коряво.

Даже более того, средствами асемблера smile))
Вопрос только лишь в стоимости применения того или иного функционала.

Автор: Lord Dagger 15.3.2006, 12:07
Цитата(Hidrag @ 11.9.2005, 07:23 Найти цитируемый пост)
Интересно а что будет с драйверами? Будут новые драйвера под .NET или подойдут старые виндовские в новой винде... или тоже в эмуляции будет все? )

Бред какой, драйверы на .Net... Долго смеялсоsmile Вот до чего уже неокрепшие молодые умы додумалисьsmile
Шучу, шучу;)
Обычные там драйверы, на C\С++ написанные, как и вся ОСsmile Старые драйверы(Win XP) подходят прекрасно и к Windows Vista.

Автор: Exception 15.3.2006, 16:14
Цитата(Lord Dagger @ 15.3.2006, 13:07 Найти цитируемый пост)
Бред какой, драйверы на .Net...

Singularity OS вся на .NET smile

Автор: arilou 15.3.2006, 16:22
Exception, я так и знал, что ты это скажешь smile

Автор: nettitan 14.6.2006, 15:04
Привет всем !!!

Насколько я знаю и слышал есть два вида програмирования под .NET:
1. Windows Form
2. програмирование под WEB

Я шас пишу на С# (под Windows), но меня также интересует второй пункт, так как над первым пунктом я сейчас работаю...
Хотелось бы узнать побольше о програмировании под WEB, что это такое и с чем его едят.....
Так как на С# можно писать и под WEB, хочу о  нем узнать больше, может в будущем займусь всем этим.

Зарание благодарен !!!
 

Автор: arilou 14.6.2006, 22:35
Цитата(nettitan @  14.6.2006,  15:04 Найти цитируемый пост)
Зарание благодарен !!!

за что?  smile  

Автор: Ch0bits 14.6.2006, 22:56
nettitan
Для начала изучи HTML и JavaScript, потому что без них "програмирование под WEB" как сапожник без сапог.  smile  

Автор: kaa 15.6.2006, 00:28
А у мя такой аопрос: можноли компилить программу на C# не в IL-код а в native сразу? любапытно ж черт возьми  smile  

Автор: VisualProgrammerNET 15.6.2006, 01:58
Мнэээ... внутренний голос подсказывает, что только из MC++ можно компилить native код  smile  

Автор: Ch0bits 15.6.2006, 05:55
kaa
Низя. 

Автор: mr.DUDA 15.6.2006, 10:51
kaa, а зачем ?

Цитата(Ch0bits @  15.6.2006,  04:55 Найти цитируемый пост)
kaa
Низя. 

Воистину так, аминь  smile  

Автор: ivashkanet 15.6.2006, 12:37
Цитата(mr.DUDA @  15.6.2006,  10:51 Найти цитируемый пост)
kaa, а зачем ?

Могу предложить массу вариантов ответа. 

Автор: VisualProgrammerNET 15.6.2006, 13:58
А как же MC++?  smile Стопудово где-то читал, что оттуда можно компилить native код 

Автор: Exception 15.6.2006, 14:00
Цитата(VisualProgrammerNET @  15.6.2006,  14:58 Найти цитируемый пост)
А как же MC++?   Стопудово где-то читал, что оттуда можно компилить native код  


C++/CLI только. Можно, конечно. 

Автор: nettitan 15.6.2006, 14:47
Вот это я новость нашел, радуйтесь братья мои.....   smile 

"Мне кажется, что переименование WinFX в .NET v3.0 вполне разумно, но я ни встречал ни одного упоминания, значит ли это, что в состав пакета будут включены C# 3.0 и LINQ, не говоря уже о DLINQ и ADO.NET v3.0. Похоже, что .NET v3.0 выйдет скорее, нежели C# 3.0 и ADO.NET v3.0, и не похоже, чтобы последние были выпущены раньше; итого, значит ли все это очередную задержку WinFX, или надо ли нам ожидать, что все другие продукты будут переименованы в 3.х или вообще в 4.0? Извиняюсь за игнорирование VB, но с тех пор как он не носит имени 3.0, то и не возникает проблемы с переименованием или задержкой выхода."


 

Автор: Exception 15.6.2006, 17:52
Цитата(nettitan @  15.6.2006,  15:47 Найти цитируемый пост)
Извиняюсь за игнорирование VB, но с тех пор как он не носит имени 3.0, то и не возникает проблемы с переименованием или задержкой выхода


Он носит имя VB 9.0

Добавлено @ 17:53 
Цитата(nettitan @  15.6.2006,  15:47 Найти цитируемый пост)
Похоже, что .NET v3.0 выйдет скорее, нежели C# 3.0 и ADO.NET v3.0, и не похоже, чтобы последние были выпущены раньше


Это почему же? 

Автор: kaa 9.7.2006, 02:02
А вот возник вопрос. Существует-ли в C#.NET вариант компиляции сразу в бинарный код с включением внего всех необходимых библиотек и функций? 

Автор: Evghenii 9.7.2006, 10:52
Цитата

А вот возник вопрос. Существует-ли в C#.NET вариант компиляции сразу в бинарный код с включением внего всех необходимых библиотек и функций? 


Насколько мне известно нет. 

Автор: ivashkanet 9.7.2006, 11:06
Цитата(kaa @  9.7.2006,  02:02 Найти цитируемый пост)
Существует-ли в C#.NET вариант компиляции сразу в бинарный код с включением внего всех необходимых библиотек и функций? 

 smile Нет, не существует, не реализовано smile 
P.S. Уже тысячу раз обсуждалось!!!!! 
P.P.S. Модераторы: Предлогаю попросить у Вовы (илу у кого там просят, dm9? ) добавить в шапку раздела большими буквами:
 smile Приложения под .Net НЕ компилятся в бинарный код smile 

Красными, жирным.... 

Автор: kaa 9.7.2006, 12:38
Понял  smile

Добавлено @ 12:39 
А насчет того что сто раз обсуждалось - так я пытался найти поиском и ничё невышло, может у мя конечно руки кривые, а может... smile  smile  

Автор: sgi1981 14.7.2006, 12:20
Цитата(ivashkanet @ 9.7.2006,  11:06)
 smile Приложения под .Net НЕ компилятся в бинарный код smile 

Красными, жирным....

Опарафинились Microsoft? 

Автор: ivashkanet 14.7.2006, 12:28
Цитата(sgi1981 @  14.7.2006,  12:20 Найти цитируемый пост)
Опарафинились Microsoft? 

Врятли, это такой маркетинговый ход --- типа все устанавливаем FrameWork и баста
sgi1981, неужели ты думаешь, что MS не могла написать компилятор IL в native-код smile 
Тем более это делает JIT-компилер при запуске проги 

Автор: mr.DUDA 14.7.2006, 12:54
http://www.xenocode.com/

И подобные ему позволяют создавать .NET приложения, не требующие установки Framework.

З.Ы. насчёт "микрософт опарафинилась", sgi1981, SUN что тоже опарафинилась с Java ??? 

Автор: sgi1981 14.7.2006, 15:32
Цитата(mr.DUDA @ 14.7.2006,  12:54)
http://www.xenocode.com/
З.Ы. насчёт "микрософт опарафинилась", sgi1981, SUN что тоже опарафинилась с Java ???

Ну, знаешь ли. Джава первоначально был предназначен совсем не для того, для чего его применяют сейчас - в то время и не думали даже...

А насчет исполняемых файлов под .NET - есть свои преимущества и недостатки.
Первое преимущество, которое я заметил - маленький размер "*.exe" - весь машинный код по инициализации окна теперь в ОС (включая .NET).

А недостаток - много ограничений в программировании.
Ну хотя бы кто-нибудь мне ответит на вопрос: как мне вставить мной составленную последовательность инструкций процессора на C# ? Никак. А почему я должен всегда подчиняться NET ? Она умнее моего мозга ? Или комп должен права качать ? Компилятор никогда не создаст код эффективнее чем это может сделать человек. А почему я должен использовать средства WINDOWS только через NET постоянно ? А может я могу эффективнее использовать АПИ в некоторых случаях !

Да, а как там вообще SSE2 инструкции процессора - чё, только .NET их будет генерить ? Она самая умная да ? А как же мне обрабатывать графические изображения с применением инструкций SSE2 собственным алгоритмом. Ну неужели все алгоритмы по обработке графики исчепываются ОС ? НИКОГДА ! Потому что их бесконечное множество.

Так я непонимаю - у меня есть шанс на применение собственного машинного кода в C# ? Как мне добавить в прогу исходный код на асме (помните меня на АСМ-форуме, если не помните - просмотрите мои сообщения) ? Может можно составить DLL а потом подключить. Так чего то я не нахожу неи в одной книге из двух книг как подключить DLL к проекту. Да, надо же вспомнить, что вызываться могут только те подпрограммы, которые являются методами класса. А если DLL не экспортирует классов, то вообще тогда непонятно... Как мне использовать DLL-библиотеки в своей программе на C# ? 

Автор: Дрон 14.7.2006, 15:45
Гражданин, sgi1981, поменьше эмоций, пожалуйста. Вас никто не заставляет писать на .NET

Цитата(sgi1981 @  14.7.2006,  16:32 Найти цитируемый пост)
А может я могу эффективнее использовать АПИ в некоторых случаях !

Никто и не запрещает smile

Цитата(sgi1981 @  14.7.2006,  16:32 Найти цитируемый пост)
Как мне использовать DLL-библиотеки в своей программе на C# ?  

Легко. Поиск на форуме по слову DllImport

Цитата(sgi1981 @  14.7.2006,  16:32 Найти цитируемый пост)
Она умнее моего мозга ?

А почему бы и нет...  smile   

Автор: mr.DUDA 14.7.2006, 15:51
Цитата(sgi1981 @  14.7.2006,  15:32 Найти цитируемый пост)
 Так чего то я не нахожу неи в одной книге из двух книг как подключить DLL к проекту. Да, надо же вспомнить, что вызываться могут только те подпрограммы, которые являются методами класса. А если DLL не экспортирует классов, то вообще тогда непонятно... Как мне использовать DLL-библиотеки в своей программе на C# ? 

Если только в этом вопрос... smile

Пишем любую длл с любыми экспортируемыми функциями. Затем на C# пишем класс, в котором объявляем метод с модификаторами public static extern и ставим над методом атрибут [DllImport("имя dll")]. Всё, при вызове метода будет вызвана длл-функция с тем же именем, что имя метода.

Добавлено @ 15:52 
Цитата(Дрон @  14.7.2006,  15:45 Найти цитируемый пост)
А почему бы и нет..

Иногда, к сожалению, наоборот.

З.Ы, а native код никогда не умрёт, ИМХО. Не будут же САПРы и движки баз данных писать на .NET 

Автор: sgi1981 14.7.2006, 16:39
Первоначально мне понравился маленький размер *.exe файла по сравнению с исполняемым файлом, сгенерированным C++ Builder. В общем кажется странным, почему размер "*.exe" такой сравнительно большой получается на C++ Builder даже если просто пустую форму создать. То бишь если так сделать, чтобы программа могла выполняться на других машинах и ничего не поместить на форму, то и тогда количество кода будет в полметра. Может я не знаю способа как уменьшить объем генерируемого кода С++ Builder ?

По поводу DLL. Да, я просто хотел спросить как можно подключить DLL. А динамически никак ?

И чего то оно странно. Могла бы Майкрософт и предусмотреть возможность вставки native-кода в "*.exe". Допустим предшествует в файле некая директива, которая означает что следующие байты будут просто native-кодом. Неужели такая нужна супер-безопасность кода ? Они че думают, что хакеры накроют в скором будушем их WINDOWS ?  smile  

Автор: mr.DUDA 14.7.2006, 16:49
Цитата(sgi1981 @  14.7.2006,  16:39 Найти цитируемый пост)
 Могла бы Майкрософт и предусмотреть возможность вставки native-кода в "*.exe". Допустим предшествует в файле некая директива, которая означает что следующие байты будут просто native-кодом.

А какой смысл тогда был бы в промежуточном языке ? Вместо IL можно было бы компилировать прямо в native-код, и делать вставки на асме в C#. Задумано всё было ради переносимости: JIT в рантайме переводит IL в исполняемый код, оптимизированный под конкретную платформу, под процессор и т.д. Кстати, поэтому .NET-приложение скомпилированное под x86, по идее должно без перекомпиляции работать под x64 (не проверял).
 

Автор: arilou 14.7.2006, 17:34
Цитата(sgi1981 @  14.7.2006,  16:39 Найти цитируемый пост)
И чего то оно странно. Могла бы Майкрософт и предусмотреть возможность вставки native-кода в "*.exe". 

Visual C++ вам в помошь. Там все это можно сделать. 

Автор: sgi1981 14.7.2006, 18:45
А знаете, в HELPе Borland Developer Studio по поводу использования DLL написан пример использования АПИ из User32.dll smile  smile  smile 

Код

using System;
using System.Runtime.InteropServices;
class MyClass 
{
   [DllImport("User32.dll")]
   public static extern int MessageBox(int h, string m, string c, int type);

   public static int Main() 
   {
      string myString; 
      Console.Write("Enter your message: ");
      myString = Console.ReadLine();
      return MessageBox(0, myString, "My Message Box", 0);
   }
}


 

Автор: mr.DUDA 14.7.2006, 20:35
Цитата(sgi1981 @  14.7.2006,  18:45 Найти цитируемый пост)
А знаете, в HELPе Borland Developer Studio по поводу использования DLL написан пример использования АПИ из User32.dl

Замечательно ! Об этом я и говорил выше.

  

Автор: Freelancer 25.12.2006, 09:51
Моё мнение по поводу .НЕТ:
Майкрософты как всегда стремяться урвать все более-менее хорошие идеи дабы в будущем предоставлять пользователям большую свободу (в плане что всё уже включено). Типичный пример технология Флеш. Как она набрала популярнгость её активХ включили в пакет ОС. Чтоб юзер сразу после установки ОС мог выйти в нет и не чувствовать каких либо неудобств.
Сейчас они идут по пути натоптаному Явой. И у них все получиться больше чем уверен. Так как денег у них и не на то еще хватит. .НЕТ это конкурент яве причем мощный. Прикинте подержку .НЕТ на мобилах! В плане безопасности тоже .НЕТ рулит в плане того что чо попало не напишиш. Это конечно сужает возмжности. Так же зделали те же Макромедия кода не стали включать в свой интерпритатор возможность работы с файлами... Хочеш чото сохранить на винте? Будь добр использовать спецальный метод. Который сам куда нада что нада запишет... А вообще это "Бизнес"! Как продать старую конфету? Правильно... завернуть её в новую обертку. Тут кондитерам(программистам) придеться покупать новые инструменты, а юзерам... ОС. И все счастливы... Все радуються прогрессу : )

Автор: Yama 25.12.2006, 11:46
sgi1981, по моему, Майкрософт решила сделать .нет фреймворк исключительно для того, что бы защитить свою ОС, т.к. постоянно фиксить глюки и баги просто невозможно(на моей памяти более-менее стабильно работала только win2kSP4), они решили придумать "принципиально новую технологию" и еще на этом прилично заработать. При компиляции сразу в native-код можно было  сделать многочего как хорошего, так и не совсем  smile  с ОС. А под .нет такого просто невозможно сделать - ни хорошего, ни плохого.
По сути .нет фреймворком Майкросовт решила свои проблемы за счет энд-юзеров. +1 их маркетинговому отделу  smile  .

Автор: Deja_Vu 28.9.2007, 21:58
Сколько воды утекло с далекого 2001 года?! 
.NET растет - цветет.

Не так быстро, как хотелось MS, но все же.
.NET программисты все больше и больше требуются, а Internet технолог
ии уже полностью переходят под .NET.
ASP.NET - загляденье ... используй понравившийся тебе язык.

Я за .NET, ведь тогда никто не сможет ничего плохо сделатьмоему компьюторику -))

Автор: Geolog 11.2.2008, 13:40
Здравствуйте.

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

1) Vista уже более года как вышла - работает она на платформе NET Framework (эмулируя при этом Win32) или всё работает также как и в WinXP?

2) Какие из NET Framework в Vista уже предустановленны, а какие необходимо ставить?

3) В чем отличия между NET Framework 3.0, NET Framework 2.0, NET Framework 1.1 (аккумулируют ли более новые версии более старые версии )?

4)Почему, если стоит NET Framework 3.0, и пробуешь ставить Google SketchUP (ему нужна NET Framework 1.1), он не ставиться требует установки NET Framework 1.1? (к стати под Vista SketchUP  тоже отказался ставить)

5) На сегодняшний день есть удачные проекты по реализации работы приложений .NET на Linux (сама Microsoft  в этом направлении работает)?

Автор: kemiisto 11.2.2008, 13:59
Цитата

1) Vista уже более года как вышла - работает она на платформе NET Framework (эмулируя при этом Win32) или всё работает также как и в WinXP?

Скорее так: платформа .NET работает поверх платформы Win32 (ну или Win64). А в самой Win32 по сравнению с XP были сделаны существенные изменения. Все таки как никак новая ОС. 

Цитата

2) Какие из NET Framework в Vista уже предустановленны, а какие необходимо ставить?

Версии 1.1, 2.0 и 3.0. По поводу 3.5 не уверен, видимо надо ставить.

Цитата

3) В чем отличия между NET Framework 3.0, NET Framework 2.0, NET Framework 1.1 (аккумулируют ли более новые версии более старые версии )?

Отличий много, главное то что новые версиии не аккумулируют старые, и вот поэтому то и 

Цитата

4)Почему, если стоит NET Framework 3.0, и пробуешь ставить Google SketchUP (ему нужна NET Framework 1.1), он не ставиться требует установки NET Framework 1.1? 


Цитата

(к стати под Vista SketchUP  тоже отказался ставить)

Может банальная несовместимость. Google все таки конкурент  smile  

Цитата

5) На сегодняшний день есть удачные проекты по реализации работы приложений .NET на Linux (сама Microsoft  в этом направлении работает)?

M$ сотрудничает с Novell, которая разрабатывает платформу http://www.mono-project.com/Main_Page (.NET может устанавливаться только поверх Win32 или Win64? а у Mono - кросплатформенность (Win, Linux, MacOS,...)). Есть даже IDE http://www.monodevelop.com/Main_Page (пока, imho, продукт сыроват).

Автор: arilou 11.2.2008, 15:29
Цитата(kemiisto @  11.2.2008,  13:59 Найти цитируемый пост)
M$ сотрудничает с Novell,

э-э-э, а ссылку на первоисточник?

Автор: kemiisto 11.2.2008, 15:44
arilou, их море:
http://www.novell.com/linux/microsoft/faq.html (предпоследний вопрос касательно mono)
Сделке уже больше года! http://www.nixp.ru/news/7924

Автор: arilou 11.2.2008, 17:57
kemiisto, о я не знал. думал новел это всё сам делает.

Автор: kemiisto 11.2.2008, 19:27
arilou, Novell имеет к Mono вообще очень интересное отношение. Была такая компания Ximian - вот она то все и разработала, а потом... Novell ее купила! Сейчас Ximian - часть Novell. 
http://www.novell.com/linux/ximian.html

Автор: Geolog 12.2.2008, 11:54
Спасибо за ответ.
Меня смутил тот факт, что в Vista в разделе компоненты системы явно висит только NET Framework 3.0, ну и SketchUP  отказался устанавливаться пока я не установил на висту NET Framework 1.1 - обидно всё таки, что даже под висту приходиться ставить пакет обновления многолетней давности.

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