Member
Статус: Не в сети Регистрация: 07.05.2003 Откуда: Москва
Цитата:
Внимание!!! соблюдайте чистоту в ветке. Удаляйте те свои посты,которые уже не имеют актуальности\смысла. соблюдайте чистоту!
Книги,обязательные для прочтения: 1)Любая приличная книга по языку .Net,который вы выбрали 2) ".Net Framework" Джеффри Рихтер-книга даст базовые понятия о платформе .Net, без которых Вы ничего не сможете делать. 3) http://msdn.microsoft.com/library/rus/ официальный перевод MSDN
могу сказать что не надо брать: - из серии "Библия...", такая толстенная рыжая книга VB.NET (однако говорят,что Visual C++.Net (Том Арчер и Эндрю Уайтчепел) из этой серии очень неплоха...) -не брать книгу "программирование в тональности C#"-полнейшая чушь -Разработка WEB-приложений на Microsoft Visual Basic.NET и Microsoft Visual C# .NET. мне тоже не понравилась -не следует брать книги серии "Изучаем за 24 часа" -книги BHW бывают разные по качеству... в основном не очень доходчивые объяснения и внимание зачастую заостряют на малозначимых темах,а важные мельком.. -"C# без лишних слов"-чушь -Язык программирования C#. Лекции и упражнения Микелсен К.-просмотрел в магазине..насколько помню-не понравилась..
хорошие книги: -C#: учебный курс Шилдт Г.-сам не читал,но много положительных отзывов но лучше не брать от издательства "Питер"-у них переводы мне не понравились -та,которую читаю "Visual C#.Net полное руководство" Джейсон Прайс. издательство "Корона принт". книга в мягкой обложке нежно-салатового цвета очень доходчиво объясняется суть ООП(Объектно-Ориентированного Программирования),синтаксис,даны базовые понятия о сборках,потоках и важнейших классах .Net
ЗАЧЕМ НУЖЕН ЭТОТ .НЕТ? НАМ И ТАК ХОРОШО...
Цитата:
Смысл перехода.... ну, c# - очень приятный язык. После c++ пользоваться им легко и приятно. Через некоторое время возвращение к c++ вызывает отторжение. Неудобно. Забота о ресурсах принимает другой характер. Более мягкий. Уходят в прошлое проблемы с некорректным доступом к памяти. Совсем. Наконец-то появляется простая и согласованная система обработки исключений. НАМНОГО проще отладка. Библиотека классов очень богатая и развлетвленная. Продуманная. Нет нужды в написании 1001 wrapper-а. Типизированные указатели на функции!!! Асинхронное программирования становится легче в разы. Если забыть про проблемы синхронизации, то в десятки раз. Reflection дает новое измерение в написании утилит и мета-оберток. Атрибуты позволяют обогнать Java в технологичности. Библиотека классов богаче и приятнее. Делегаты опять же. Простая в кодировании и в использовании (а также относительно простая в расширении) система удаленного взаимодействия. Наконец-то MS создало удобный метод конструирования UI. Не только не хуже, чем у конкурентов, но и лучше. ASP.Net - это просто сказка, по сравнению с другими методиками разработки web-приложений. Хотя, Java тут тоже довольно сильна.
Преимуществ - вагон и маленькая тележка. Игнорировать эту платформу - значит обрекать себя на технологическое отставание. Единственная альтернатива - Java+IBM+Rational+Linux. Объединив все это вместе, можно попытаться что-то противопоставить. Лично я думаю - кишка тонка, но время покажет.
P.S. Одни только xml-comments в студии .net в с# - это фича, из-за которой стоит сменить платформу.
(C)Mong
ЗАБЛУЖДЕНИЯ И ОПРОВЕРЖЕНИЯ
Цитата:
1. Программистов нужно переучивать. Да, но обучение .net-у тех, кто привык к c++, проходит очень легко. Вообще, много званых, но мало избранных. Пишут на сях многие, а умеют писать - процентов 10 от силы. Радикальное упрощение отладки кривовато написанного программистами средней квалификации кода - это огромное преимущество.
2. Собственные наработки, библиотеки и т.д. Если они узко специализированы - их можно оставить и заврапить для использования из .net. Если речь идет о библиотеках широкого назначения, то в свете clr их ценность, скорее всего, невысока.
3. Есть готовый работающий код. Это реальное основание. Не ломалось - не чини.
4. .net медленный, с++ - быстрый. На самом деле - довод смешной. Отпрофилируйте приложение. Скорее всего, основной источник тормозов - запросы к БД, сетевые обращения и кривые руки. Если нет... ну тогда может вам стоит отказаться от c++ в пользу asm-а? На самом деле, .net тоже достаточно быстрый. Все зависит от конкретной задачи. Можно показать, что в некоторых ситуациях код, написанный на c# может быть быстрее. Точно также, как это бывало в сравнениях Java и с++.
5. с++ - переносимый, а .net - нет. Если нужен переносимый код - Java рулит. .Net к Java в ближайшие годы приблизится, скорее всего. Хотя полностью не догонит никогда, скорее всего.
6. Драйвера и т.д. Вопросов нет.
(C)Mong
_________________ Вы все еще жарите на AMD??? Тогда мы идем к Вам!
подпись: Intel & Ko -----------------------> (C) Smoke
Последний раз редактировалось Smoke 05.08.2005 10:43, всего редактировалось 13 раз(а).
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Ну и по теме малость тоже напишу. Данный топик было решено открыть для тех, кто начал или только собирается началь, изучение программирование под платформу .Net. В принципе выбор языка как такового не важен, все одно платформа одинаковая. Но для начала хотелось бы ввести несколько правил в эту ветку, думаю что все с ними согласятся.
1. Никаких обсуждение о достоинствах и недостатках .Net. Раз ветку создали, значить тема актуальна. Флеймить идем во "Флейм"
2. Обязательно при вопросе указывайте используемый вами язык программирования. И постарайтесь подробнее изложить суть проблемы.
3. Давайте изначально не засорят ветку и не будем рассуждать на чем же лучше писать. Выбор языка, сугубо личное дело, но! Если Вы не знаете какой язык взять, то думаю что каждый , кто уже пишет под .Net может описать свой язык. И большая просьба не пытаться насильно переубедить в выборе языка. Это тема наболевшая на всех програмистстких форумах.
__________________
Предложения по теме:
Составить список полезных книг по тематике. С указанием обязательных к прочтению. По своему опыту скажу, с "налету" ничего не получится. Так как программирование под .Net немного отличается от стандартного Win API.
_________________
Ну вот в принципе и все.
От себя добавлю. Сам я в основном пишу на Delphi, так уж получилось , что я нам нем сижу ах с 1 бета версии, не считая Turbo Pascal 1.0 с которого я начал писать на Паскале вообще. Так вот, Delphi .Net что-то мне совсем не понравился. Попробовал C++ .Net, хмм, вроде и язык тотже и многое похоже , но опять что-то не так. А вот С# как ни странно понравился, проще вьехать чтоли. Может потому, что он сильно отличается как от Delphi так и от C++. Так что мой выбор пока что C# И соответственно Microsoft Visual Studio 2003 .Net.
Последний раз редактировалось Ray Adams 29.01.2005 16:17, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 07.06.2004 Откуда: Питер
VB .NET - Я вот на нем хотел начать писать, но после VB 6.0 SP5 мне на .NET никак не перейти.
Подскажите книжки для прочтения. Только желательно в целюлозно-бумажном формате, а то
с сети не охота качать. Если кто знает где они продаются в Питере, то это еще лучше... Заранее Спасибо.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
По VB.Net сказать ничего не могу, а вот для тех кто хочет учить C# есть пара хороших книг, правда все на английском, не уверен что есть переводы
"C# - Your Visual Blue Print for building .NET Applications" авторы Eric Butow, Tommy Ryan.
"Visual C# .NET Programming" автор Harold Davis - Большой уклон в WEB
"Programing C#" - Jesse Liberty (Описание на Amazon.com)
Первая очень хорошая!
А третья просто отличная книга для начинающих писать на C# под .Net. Разжевывается все, начиная с самых основ языка. Сейчас я ее читаю, в принципе многое я и так знаю, что такое переменные и константы. Но информация подается в очень хорошей манере.
Member
Статус: Не в сети Регистрация: 07.05.2003 Откуда: Москва
очень прикольно будет,если мы будем по мере того,как читаем книги пресказывать главы сюда письменно,основное содержание,без воды, с пояснениями и додумками, своими комментариями и тд.
_________________ Вы все еще жарите на AMD??? Тогда мы идем к Вам!
подпись: Intel & Ko -----------------------> (C) Smoke
Последний раз редактировалось Smoke 28.01.2005 17:26, всего редактировалось 2 раз(а).
Member
Статус: Не в сети Регистрация: 07.05.2003 Откуда: Москва
теперь насчет перевода в машинные коды и производительности:
Цитата:
Поверьте,я и сам из тех,кто программирует на C/C++,и,переходя на CLR,я достаточно скептически рассматривал ...дополнительные накладные расходы....Microsoft проделала значительную работу,чтобы свести эти издержки к минимуму.....сами создайте приложение и проверьте его производительность....вас удивит, насколько она высока на самом деле..
".Net Framework" изд 2 Джеффри Рихтер стр.14.
NGen.exe компилирует весь IL код некоторой сборки в файл на диске,который содержит уже реальный х86 процессорный код. т.е. трансляция из IL при выполнении не производится
_________________ Вы все еще жарите на AMD??? Тогда мы идем к Вам!
подпись: Intel & Ko -----------------------> (C) Smoke
Последний раз редактировалось Smoke 29.01.2005 16:58, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
при выполнении компиляции не производится - программа уже скомпилирована в "особые" процессоронезависимые "машинные" кода виртуальной машины .NET - трансляция их в реальные машинные команды при выполнении программы - вот где источник уменьшения производительности
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Smoke Читал я это и в принципе похожее есть в книге Programming C# и еще немного, есть интересные цитаты.
Попробую своими словами изложить.
Цитата:
Корпорация Microsoft тратит до 80% из своего бюджета , выделенного на исследования и раработку, именно на .Net. Раз уж такая компания тратит миллионы долларов на систему .Net, то к этому стоит присмотреться
Цитата:
Компиляция В платформе .Net, программа не комппилируется в исполняемый файл, а компилируется в файлы Microsoft Intermediate Language (MSIL) , которые запускаются «расширителем» CLR. Файлы MSIL (в обычном разговоре называемый как IL) , полученные при компиляции C#, идентичны с файлами скомпилированными при использовании других .Net языков. (прим мое. Это и так понятно )
код программы на C# компилируется в IL и сохраняется на диске. При запуске программы, IL компилируется опять , используя Just In Time (JIT) компилятор, в результате получаем уже машинный код.
Стандартный компилятор JIT вызывается только при надобности. Когда вызывается метод программы, JIT анализирует код IL и создает высоко эффективный код, который работает очень быстро. JIT не глуп, и сам может определить, когда код уже был скомпилирован и не будет компилировать его еще раз. После запуска программы .Net она будет работать быстрее и быстрее, так как многие части программы уже скомпилированы.
Правда я тут не понял, повторная компиляция не происходит даже если ты программу выгрузил, а потом запустил заново, или это относится только к единовременному запуску программ и если ее запустить заново, то все будет компилироваться заново?.
Но я лично не соглашусь с Джеффри Рихтер, да, скорость высока, намного выше чем у Java, но все же медленнее чем чистый код. Хотя при современных скоростях машин это уже не так заметно
Member
Статус: Не в сети Регистрация: 07.05.2003 Откуда: Москва
МS делает упор не столько на производительность,как на СТАБИЛЬНОСТЬ приложений- слабое место всех вин. приложений.
Цитата:
или это относится только к единовременному запуску программ и если ее запустить заново, то все будет компилироваться заново
я тоже думаю,что при первом запуске приложения выволняется компиляция,а при последующих запусках копий приложения\его сборок машинные коды уже запускаются из некоторого кэша. Будем рыть этот вопрос
_________________ Вы все еще жарите на AMD??? Тогда мы идем к Вам!
подпись: Intel & Ko -----------------------> (C) Smoke
Последний раз редактировалось Smoke 29.01.2005 16:04, всего редактировалось 1 раз.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Цитата:
как на СТАБИЛЬНОСТЬ приложений
К сожалению это больше зависит от программера чем от платформы
Кстати кто что использует для программинга под .Net? У меня VS 2003 .Net, но видел еще несколько вариантов оболочек, хотя им конечно далековато до VS.
Member
Статус: Не в сети Регистрация: 28.12.2003 Откуда: Vladivostok
Visual studio.NET 7.0 - лучшее что видел вообще для программинга. и жалкие потуги в освоении басика
Добавлено спустя 2 минуты, 4 секунды: а не подскажет кто. если надо в программе использовать какую то программу из виндовс (в итоге надо получить NET SEND в нормальной оболочки), где искать как использовать?
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Цитата:
а не подскажет кто. если надо в программе использовать какую то программу из виндовс (в итоге надо получить NET SEND в нормальной оболочки), где искать как использовать?
Member
Статус: Не в сети Регистрация: 28.12.2003 Откуда: Vladivostok
Ray Adams Служба Messenger в xp\2000 и т.д. знаем? Пуск - выполнить - cmd - net send <ip> <текст>
Надо графическую часть, чтобы был обычный чат. К чему приступить то ?
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Vlad_Diver Ну так зачем мучать NET SEND? Можно и через Net API запросто это сдлетаь, я делал на VC++, правда под C# не переводил. Вот кстати будет мне небольшая задачка!
все,кто хочет это сделать-стучитесь ко мне в аську(желательно) или в ЛС будем вместе делать. Есть работающий пример,уже с ГУИ. но его надо конкретно переработать.
_________________ Вы все еще жарите на AMD??? Тогда мы идем к Вам!
подпись: Intel & Ko -----------------------> (C) Smoke
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Ray Adams
Цитата:
Правда я тут не понял, повторная компиляция не происходит даже если ты программу выгрузил, а потом запустил заново, или это относится только к единовременному запуску программ и если ее запустить заново
ИМХО, компилируется промежуточный код в _реальный_ машинный x86 код только при перво запуске проги, а полученный образ кладется куда-то внутрь винды... Потом, насколько я понял, запускается именно он...
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Да вот и первые блины комом.
Попробовал переписать свою прогу с Си++ на C#. Сам язык С# просто до безобразия, но вот тот факт, что изначально C# практически не имеет описания Win32 функций, точнее не имеет описания больше половины функций, просто напрягает!
Сейчас сейчас за создание классов и assembly для работы с Lan Manager. Если кто уже что-то делал, дайте знать.
Member
Статус: Не в сети Регистрация: 07.05.2003 Откуда: Москва
Вообще,Джентельмены,я считаю,что учить втупую все подряд бессмысленно. Даже если делать миниатюрные программки на каждый класс-это не научит писать настоящие программы. Только КОЛЛЕКТИВНАЯ работа над существенным проектом может научить реальным задачам. Кроме того если делаешь что-то в коллективе-морально легче собраться(знаешь,что работаешь не один и не говоришь "а ладно..завтра доделаю" ведь знаешь,что такое поведение тормозит весь коллектив...вобщем это самое лучшее средство для борьбы с ленью), если появляется проблема-ее решают ВСЕ(потому что твоя проблема-общая проблема), а не смотрят между строк,как это обычно происходит в форумах.
Кроме того,платформа .Net, как никакая другая раздвигает "границы", один пишет на VB.Net-другой на C#, приходит интуитивное понимание того,как это ВСЕ взаимодействует: сборки,версии,локализации...
Я предлагаю тем,кто действительно хочет научиться программировать,не боится перебороть собственную лень и ВСЕГДА найдет время(независимо от загруженности и усталости),чтобы написать пару..десяток..другой..третий.. строк:
Давайте делать! Вместе! Не важно что,но делать! Один общий проект!
я совершенно серьезно. и прошу каждого отнестись к этому серьезно. Иначе-просто бросьте затею изучения .Net-Вы ее не выучите.
все,кто готов: в ЛС. Комментарии сюда.
_________________ Вы все еще жарите на AMD??? Тогда мы идем к Вам!
подпись: Intel & Ko -----------------------> (C) Smoke
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения