Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Специфика .NET технологии и отличя от старых  (Прочитано 21212 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« : 13-11-2003 22:04 » 

Кроме громких криков и лишних объектов в коде - создаваемом визардом, я не нашел отличй в VC7 от VC6

Т.е. нашел конечно, но не такие, ради чего кричать о новой технологии.

Что есть фреймворк для меня сишника - не понимаю...

Поэтому, давайте сформулируем для начала, что есть фреймворк, что он дает, какие новыевозможности - язык С-шарп привязан к этому и как...и т.д.
Записан

А птичку нашу прошу не обижать!!!
AYK
Гость
« Ответ #1 : 14-11-2003 05:40 » 

Framework дает возможность создавать "машинонезависимый" код.
C# - IMHO, очередная ступень к созданию "единого для всех" языка.
Записан
ErnEE
Гость
« Ответ #2 : 14-11-2003 06:34 » 

Цитата: Гром
Что есть фреймворк для меня сишника - не понимаю...
VS .net kompilit svoj soft ne v mashinnyj kod... a v tak nazyvajemyj Byte-kod... Jego operacionka ne ponimajet... Poetomu nuzhen framework - nakladka na operacionku, kotoraja vypolniajet rol' posrednika mezhdu operacionkoj i byte-kodom... Princip znakom jescio s javy... Ved' tam analogicno - byte-kod i Virtualnaja mashina...

Цитата: Гром
Поэтому, давайте сформулируем для начала, что есть фреймворк, что он дает, какие новыевозможности - язык С-шарп привязан к этому и как...и т.д.
kompiliacija v byte-kod, kak uzhe govorilos', teoreticeski osvobozhdajet ot platformennoj zavisimosti... byte-kod odinakov dlia vsex i window i *nixov.... vazhno tol'ko shtoby na mashyne stojal framework kotoryj etot byte-kod ponimajet.
Plius - platformonezavisimost'
Minus - skorost'...

Krome togo - paket VS.net gromko raspevajetsia kak cross-language compatible... il' cego-to tak. Tobish mozhesh pisat' odin modul' na c#, drugoj na basic'e, tretij na j# i moduli eti bez problem budut rabotat' i druzhit' drug s drugom...

Vrode tak.
Записан
Alf
Гость
« Ответ #3 : 14-11-2003 10:39 » 

Вообще-от странновато, как можно было не заметить саму основу технологии .NET - т.наз. "управляемую" (managed) среду исполнения CLR, к тому же единую для всех языков .NET.
А общая для всех языков библиотека классов FCL - тоже "громкий крик"? Или она скорее попадает под определение "лишние объекты в коде"?  :?
Насчет ADO .NET, которая решает массу насущных проблем удаленного доступа к данным, даже спрашивать не отважусь. Никому не нужная заморочка. Windows Forms, видимо, тоже. Даже еще вреднее, наверное, поскольку лишает программера удовольствия покувыркаться со всякими хэндлами для окошек или там хуками для перехвата сообщений. Придется вместо этого заниматься кодированием самой предметной задачи, а это ведь так скучно, да и под стать скорее ламерам от сохи (пардон, от Visual Basic'а).
Идея представлять ЛЮБЫЕ типы в виде объектов или при необходимости конвертироваться в них, на мой взгляд, тоже достаточно разумна, чтобы хотя бы удостоить ее вниманием.
Конечно, совместимость с VC++ V6 осталась весьма неплохой, поэтому еще некоторое время можно делать вид, что ничего не произошло, и ваять приложения на основе MFC. Метод не новый, еще Пост в свое время писал, что "...закоренелый настоящий программист может написать фортрановскую программу на любом языке". Вряд ли С в этом отношении уступает фортрану.
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #4 : 14-11-2003 11:01 » 

Итак:
1. Что такое FCL
2. Что такое CLR
Я именно об этом и спрашиваю, я не работал и очень мало читал про эту новую разработку.

Наверное надо пояснить насчет "лишних объектов".
Я приверженец минимализма в программировании...
Это не значит что мой код - это образец, но я не буду использовать MFC если мне надо сделать 1  нопочку на диалоге. И я постараюсь сделать макимально сокращенный код. по использованию огромных библиотек.
Однако буду использовать MFC, если диалог сложный.

Для создания диалога в MFC Class Wizard мне не нужны слассы СОМ - еще в время оно читал в книжке по программингу, что идалоговые программы не являются часто большими, а в основном утилиты.
Зачем встраивать добавления интерфейсов для диалога, еслипрограмма будет использоваться только для управления к римеру конкретным устройством на USB :?:

Как в Вынь 98 встраивали ксплорер нам навязывают структуру СОМ - для любой маленькой программки в VC7.

Вот что имелось ввиду...
Записан

А птичку нашу прошу не обижать!!!
Alf
Гость
« Ответ #5 : 14-11-2003 14:23 » 

Тогда пардон за, возможно, несколько сердитый отклик. Ибо "я не работал и очень мало читал про эту новую разработку" и "Кроме громких криков и лишних объектов в коде - создаваемом визардом, я не нашел отличй в VC7 от VC6" - это две большие разницы, согласитесь.
Итак, по порядку:

1. Что такое FCL
FCL (Framework Class Library) - библиотека классов .NET. Зачем на нашу голову свалилась еще одна библиотека? Причина проста: она наконец-то ЕДИНА ДЛЯ ВСЕХ ЯЗЫКОВ в составе .NET. Те, кому реально приходится параллельно работать на двух-трех языках, по достоинству оценят этот подарок. Да и, скажем, работа со строками в VB из кошмара превратится в обычные трудовые будни.

2. Что такое CLR
CLR (Common Language Runtime) - это... Впрочем, название все о себе сказало само. Опять же - ВСЕ языки .NET получили унифицированную исполняющую систему. Отпала проблема совместимости - попробуйте-ка прицепить к MFC-проекту парочку процедур, написанных коллегой на VB. В среде .NET это нормальная ситуация, общая исполняющая система позволяет сводить воедино ранее несовместимое. Начинаем забывать про различия в реализациях типов данных разных языков, соглашения о передаче параметров и т.д.
Есть в CLR и другие приятные сюрпризы. Например, автоматический сборщик мусора в куче. Кому-то покажется ерундой, а кто-то облегченно вздохнет, припомнив бессонные ночи в отладчике в поисках утечек памяти.

"...но я не буду использовать MFC если мне надо сделать 1 нопочку на диалоге"
Во-первых, "диалог", состоящий из одной кнопочки, для меня почему-то больше смахивает на монолог. Во-вторых, вряд ли кто-то испытет муки творчества при создании подобного шедевра, ибо вызов MessageBox из состава библиотеки User32 справится с этим на отлично, еще и иконку дорисует. Хотя IMHO при нынешних объемах памяти персоналок беспокоиться о нескольких десятках килобайт за счет отказа от библиотеки - перебор, время программиста куда дороже. Но тут уж на вкус и цвет...

"Для создания диалога в MFC Class Wizard мне не нужны слассы СОМ..."
Отныне .NET позволяет обойтись без компонентов COM и взамен предлагает новое решение - сборки. От этого известия кто-то запрыгает от радости, кто-то посыпет голову пеплом, но это факт. Разумеется, поддержка COM осталась, при желании можно использовать старые добрые объекты, зачем же добру пропадать. А кому надоели кошмары подмены .DLL, проблемы совместимости компонентов, сложности с их регистрацией и т.п. вполне могут попробовать обойтись и без них.
Так что вслед за MFC можно постепенно начинать забывать и о COM. Хотя лично я бы с этим не спешил.

"Как в Вынь 98 встраивали ксплорер нам навязывают структуру СОМ - для любой маленькой программки в VC7"
Опоздали малость с жалобами, батенька...  Улыбаюсь
Вам (да и нам, пожалуй, хотя мы не сильно протестовали) навязывали COM, причем весьма навязчиво, вплоть до появления .NET. А вот теперь-то как раз и появилась альтернативная возможность (см. предыдущий пункт). Так что погорячились насчет "любой маленькой программки в VC7". Да и раньше, кстати, подавляющее большинство маленьких программок весьма успешно обходились без COM.

"Вот что имелось ввиду..."
Весьма знакомо, правда, больше по части художественной литературы. "Не читали, но категорически осуждаем..." Распространенная позиция, но не совсем конструктивная, особенно в части программирования.
Записан
Life_Is_Fun
Гость
« Ответ #6 : 14-11-2003 16:57 » 

Alf, молодец точно и по сути.  Pryamo slova izo rta vunyl. Отлично
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #7 : 14-11-2003 19:20 » 

Alf, 2 сообщение + 1 к репутации, такого еще не было, спасибо огромное - мне надо переставть студию и еще раз перепроверить код, тогда смогу ответить, в любом случае еще раз спасибо за подробности - несколько стало все на место.

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

А птичку нашу прошу не обижать!!!
Serega
Гость
« Ответ #8 : 14-11-2003 20:17 » 

Alf, я какраз обо всем этом пищу статью, но по стечению обстоятельств у меня нет ни времени ни настроя что бы ее довести до ума, не хочешь помочь ?
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #9 : 14-11-2003 20:56 » 

Да разделу .NET срочно  Ага нужны авторы...
Записан

А птичку нашу прошу не обижать!!!
Alf
Гость
« Ответ #10 : 14-11-2003 21:36 » 

Если не возражаете, подключусь еще к дискуссии по поводу того, что же представляет из себя этот самый загадочный Framework.
Рискну навлечь на себя гнев модератора и не согласиться с его мнением на этот счет.
Во-первых, то представление, в которое компилируется исходный текст программы, имеет определенное название - Microsoft Intermediate Language, или MSIL (иногда - просто IL). Термин "байт-код" лично мне при изучении документации .NET не попадался, и думаю, его употребление может привести к недоразумениям. Все-таки на сегодняшний день программирование базируется на математике, а в ней четкость терминов и определений играет далеко не последнюю роль.
Во-вторых, при запуске скомпилированного таким образом приложения MSIL обрабатывается своеобразным компилятором в "родной" код процессора Intel, который называется Just-in-time compiler (или просто JIT). Представляет он собой не загадочную "прокладку" между операционной системой и приложением, а всего лишь является частью исполняющей системы .NET - CLR (о которой уже говорили). JIT преобразует MSIL в исполняемые коды процессора, которые потом выполняются. Кстати, впоследствии коды остаются в памяти и используются при повторных вызовах процедур, что приводит к достаточно высокой скорости выполнения программ.
Вроде бы немного разобрались, чем Framework НЕ является. Дело за малым - выяснить, что же это такое.
На самом деле Framework - это набор, минимально необходимый для компиляции и выполнения программ .NET. Он включает в себя: JIT-компиляторы для языков .NET, CLR, FCL. Ну и, разумеется, целую кучу документации по платформе.
В принципе, установив .NET Framework, можно уже приступать к разработке приложений. Конечно же, комфорта, к которому мы привыкли в среде Visual Studio, тут не будет. Все по-спартански. Исходный текст набирается в Notepad'е или что там под руку подвернется, потом компилируется из командной строки.
С другой стороны, программиста, имеющего опыт работы в Unix, такими условиями не испугать. Уж не говорю о тех, кто еще помнит перфокары, они знавали времена и похуже.

Кстати, возможно, будете смеяться, но основную часть информации по C# и .NET я почерпнул именно здесь, в библиотеке сайта, когда тайком от Императора таскал книги из хранилища Его Величества. Тут же целая сокровищница собрана, только бери и читай, не ленись.
Записан
Sommer
Молодой специалист

us
Offline Offline

« Ответ #11 : 14-11-2003 21:48 » 

в полку хакеров прибыло
Записан

когда-нибудь, я верю, ты будешь ехать по этому городу и поймёшь, что хочешь увидеть меня за рулём мчащейся по соседней полосе машины.
но тогда меня уже не будет
в этом городе
forever yours.
Alf
Гость
« Ответ #12 : 14-11-2003 21:49 » 

Цитата: Serega
Alf, я какраз обо всем этом пищу статью, но по стечению обстоятельств у меня нет ни времени ни настроя что бы ее довести до ума, не хочешь помочь ?


Давай попробуем, может, что и выдадим путевое совместно...

Мои контакты:
ICQ 50730453
Email alf63@list.ru

Тоже в принципе от безделья не страдаю, но для полезного дела время всегда найдется. К тому же, поработав над материалом, приводишь содержимое головы в порядок и сам начинаешь лучше понимать вроде бы знакомые вещи. Так что давай рискнем.
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #13 : 14-11-2003 23:54 » 

Alf, пишешь ты неплохо - будет время я прочту те книги - )) из сокровищницы и поспорим.
Однако мысль о том, что я буду гневатся, каждый раз меня наводит на мысль, что идея с моей подписью все же не очень хороша, я никогда не гневаюсь на мнения отличные от моих - могу спорить но не более, и этим от государя императора отличаюсь...
Надо продумать новую подпись Улыбаюсь
Записан

А птичку нашу прошу не обижать!!!
Sashok
Молодой специалист

us
Offline Offline
Пол: Мужской

« Ответ #14 : 15-11-2003 20:12 » 

Цитата: Alf
Если не возражаете, подключусь еще к дискуссии по поводу того, что же представляет из себя этот самый загадочный Framework.
Рискну навлечь на себя гнев модератора и не согласиться с его мнением на этот счет.
Во-первых, то представление, в которое компилируется исходный текст программы, имеет определенное название - Microsoft Intermediate Language, или MSIL (иногда - просто IL). Термин "байт-код" лично мне при изучении документации .NET не попадался, и думаю, его употребление может привести к недоразумениям. Все-таки на сегодняшний день программирование базируется на математике, а в ней четкость терминов и определений играет далеко не последнюю роль.
Во-вторых, при запуске скомпилированного таким образом приложения MSIL обрабатывается своеобразным компилятором в "родной" код процессора Intel, который называется Just-in-time compiler (или просто JIT). Представляет он собой не загадочную "прокладку" между операционной системой и приложением, а всего лишь является частью исполняющей системы .NET - CLR (о которой уже говорили). JIT преобразует MSIL в исполняемые коды процессора, которые потом выполняются. Кстати, впоследствии коды остаются в памяти и используются при повторных вызовах процедур, что приводит к достаточно высокой скорости выполнения программ...

Ну что же, если немного поменять сокращения, выкинуть сочетание MS, то получится в точности описание техноголии и подхода, которые существуют уже много лет в Jave. Кстати, термин "байт-код" именно оттуда и означает он ровно то же самое, что и MSIL.
Записан

Если бы окружающие нас объекты содержали столько же ошибок, сколько программы, цивилизация обрушилась бы от первого порыва ветра...
Alf
Гость
« Ответ #15 : 15-11-2003 23:01 » 

Извини - стер твое сообщение - будь внимателен к происходящим переменам в теме...

Гром
Записан
ErnEE
Гость
« Ответ #16 : 17-11-2003 06:26 » new

Цитата: Sashok
Ну что же, если немного поменять сокращения, выкинуть сочетание MS, то получится в точности описание техноголии и подхода, которые существуют уже много лет в Jave. Кстати, термин "байт-код" именно оттуда и означает он ровно то же самое, что и MSIL.
Aha, imenno eto ja i imel vvidu, nu da ne sut' delo... Ага
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines