Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6464
Последний выпуск: 19.06.2015

Нафига козе боян?

20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Вот многие говорят .NET да .NET!!! А в чём его смысл? Для каких целей мне стоит, использовать этот ваш .NET? Что мне это даст?
Я не прошу в ответах кидать сюда ссылки на другие сайты где можно почитать длинные, пространные и замудрёные статьи о точканете. Я хочу услышать ПРОСТОЙ и по-возможности КОРОТКИЙ ответ на вопрос озвученный выше. Заранее благодарю.:)
Страницы:
7
27 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: InoY
Для каких целей мне стоит, использовать этот ваш .NET? Что мне это даст?


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

20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Цитата: hardcase
Деньги зарабатывать.


Деньги можно и без программирования в точкаНете зарабатывать. Я имею ввиду для каких программистких целей?
З.Ы. Хорошо, что вы не модер.

11
27 июля 2010 года
oxotnik333
2.9K / / 03.08.2007
А для чего тебе нужно правое яйцо? Левое прекрасно справиться (если вообще понадобиться).
7
27 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: InoY
Деньги можно и без программирования в точкаНете зарабатывать.

Деньги можно зарабатывать и без программирования на чем либо вообще.

Цитата: InoY
Я имею ввиду для каких программистких целей?

Самореализация личности. Вас устроит?

384
27 июля 2010 года
KIV
432 / / 20.01.2009
Вообще то я тоже дотнет не люблю. Если подумать, то его главное преимущество - возможности, вытекающие из его некомпилируемости в машинный код (там динамическое изменение кода и прочее) и большая стандартная бибилиотека с кучей полезных классов. А вот несмотря на то, что это байткод кроссплатформенности нет (спасибо MS, про Mono не говорите - он не от MS и пока ещё сырой. к тому же в .NET есть возможность вызывать DLL и исполнять неуправляемый код). .NET это та же Java только с большей библиотекой и без нормальной кроссплатформенности.
7
27 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: KIV
возможности, вытекающие из его некомпилируемости в машинный код (там динамическое изменение кода и прочее)

Возможности дотнета вытекают не из "некомпилируемости" в машинный код - CIL код в конечном счете (NGEN-ом или JIT-компилятором) компилируется под конечную аппаратную платформу - а из "богатого внутреннего мира": наличия метаданных для всего. Именно благодаря наличию метаданных работает сборка мусора и механизмы рефлексии.
По поводу кроссплатформенности. Для начала надо определиться с термином "платформа" - это аппаратная платформа (архитектура компьютера) или программно-аппаратная (ОС + архитектура компьютера)?
Если первое, то MS сделала JIT компиляторы для x86, AMD64, Itanium и ARM (для мобильников я к сожалению не в курсе). По поводу второго толкования, взгляни на MonoDevelop. ;)

Цитата: KIV

там динамическое изменение кода и прочее


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

20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Цитата: hardcase
Деньги можно зарабатывать и без программирования на чем либо вообще.


Можно. Но, я уверен, большинство юзеров этого ресурса хотели бы (и у них получается) зарабатывать именно этим.

Цитата: hardcase
Самореализация личности. Вас устроит?


Я самореализовался за 9 месяцев до своего рождения.

Теперь мне бы узнать для каких программистких целей мне лучше его использовать?

P.S. KIV, спасибо за нормальный ответ.
hardcase'у таки тоже спасибо.

384
27 июля 2010 года
KIV
432 / / 20.01.2009
Цитата:
По поводу кроссплатформенности. Для начала надо определиться с термином "платформа" - это аппаратная платформа (архитектура компьютера) или программно-аппаратная (ОС + архитектура компьютера)?


Например, Java можно запустить и в Windows, и в Linux, и Mac OS и на многих других системах. Причём Sun сама позаботилась о том, чтобы JVM были для всех распрастранённых ОС.
В .NET часто использую обращения к DLL. А это очень плохо. Кроссплатформенные на уровне бинарников приложения не должны знать ни про WinAPI, ни про POSIX, ни ещё какие-либо архитектурно спецефичные возможности. В идеале приложение просто не должно иметь возможность обратиться к функциям ОС напрямую. Лишь к ос-независимым прослойкам. Насколько мне известно у MS была попытка выпустить свою JVM, в которой предоставлялись дополнительные виндоспецифичные функции. Как можно считать кроссплатформенным язык где имется (и самое главное - часто используется) возможность вызова DLL? Проект Mono ещё сыроват. К тому же это получается почти то же, что и Wine - ведь придётся имитировать USER32.DLL и прочие библиотеки о которых Linux и прочие системы понятия не имеют.

P. S. Теме место в "Общалке"...

7
27 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: KIV
Например, Java можно запустить и в Windows, и в Linux, и Mac OS и на многих других системах. Причём Sun сама позаботилась о том, чтобы JVM были для всех распрастранённых ОС.

И где теперь Sun? ;)
Впрочем, .NET была и остается системой для программирования под Windows, в отличие от Mono. Под кроссплатформенностью .NET понимают двоичную переносимость сборок, которую обеспечивает международный стандарт CLR (форматы, базовый АПИ и прочее, а вот WinForms кстати не входит в этот стандарт).

Цитата: KIV
В .NET часто использую обращения к DLL. А это очень плохо.

Так никто ведь не заставляет PInvok-ать. ;)
Если целевая платформа - Windows, то зачем заботиться о переносимости? Если планируется несколько платформ, за зачем тогда использовать платформенно-зависимый API?

Цитата: KIV
Как можно считать кроссплатформенным язык где имется (и самое главное - часто используется) возможность вызова DLL?

Хм... в Java есть возможность вызвать нативный код на C (к сожалению не помню как это называлось).

7
27 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: InoY

P.S. KIV, спасибо за нормальный ответ.
hardcase'у таки тоже спасибо.


Вы таки хотите получить ответ, осмыслив который придете к мысли о том, что .NET вам не нужен? Или вы предлагаете процитировать рекламные слоганы с http://www.microsoft.com/net/ (там кстати наглядная картинка есть)?

11
27 июля 2010 года
oxotnik333
2.9K / / 03.08.2007
К плюсам дотнета можно отнести низкий порог вхождения для разработчиков, а следовательно более низкую оплату труда и удешевление ПО для конечного пользователя, либо увеличение прибыли для конторы, которая это ПО выпускает. При этом о кроссплатформенности особо никто не вспоминает, т.к. >90% пользователей сидят на виндах.
20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Цитата: hardcase
Вы таки хотите получить ответ…



Я хочу получить ответ, а нужен ли он мне, как разработчику ПО? Стоит ли мне заморачиваться на его изучение, чтобы потом иметь с этого какой-то неведомый %$@нный профит?

6
27 июля 2010 года
@pixo $oft
3.4K / / 20.09.2006
Не стоит:)
Я тоже не понимаю этой платформы.Почему бы тогда функциональным программированием не заняться?
246
27 июля 2010 года
Iktomy
1.2K / / 11.10.2004
Два орла из Орла.
Такое чувство, что афтора фашисты в Бухенвальде заставляют .NET изучать. Очередной "унылый гот"(ц)
20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Имеешь что-то против Орла?
"Унылый гот"????? БУГАГА!!!! Это про меня, чтоли? Ты прям Петросян!

Цитата: KIV
P. S. Теме место в "Общалке"...



ИМХО, Теме место в FAQ раздела.

7
27 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: InoY
Теме место в FAQ раздела.


Напрашивается ассоциативный ряд:

Зачем изучать Java?
Зачем изучать C++?
Зачем изучать русский язык?
Зачем вообще учиться?

И как вообще все эти знания позволят получать "неведомый %$@нный профит"?

20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Изучать русский язык, чтобы можно было учиться программированию на С++ (коль уж зашла речь о Си), чтобы потом было проще создавать кроссплатформенные приложения на Ява. Всё просто!

Как следствие, полученное умение даст возможность устроиться на хорошую работу и получать "неведомый %$@нный профит" в виде денег
246
27 июля 2010 года
Iktomy
1.2K / / 11.10.2004
Теме место в FAQ раздела "Козы и Овцы", форума, посвященного обучению домашних животных игре на музыкальных инструментах.

Афтар, тебя что, правда заставляют? Я угадал? По работе? Беги от них - они идиоты. Я не шучу.

А если тебя просто терзают смутные сомненья "чем бы заняться?", а друзья/приятели насоветовали .NET, но ты его в корне не понял, то всем пох на твои проблемы.

Помни, главное - это цель. Цель, как я понял - бабло. Цель верная. А язык/платформа/фреймворк - всего лишь средства. А ты сейчас ставишь средство выше цели - это основная ошибка.
20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Цитата: Iktomy
Афтар, тебя что, правда заставляют? Я угадал? По работе? Беги от них - они идиоты.



Нет на работе меня не заставляют изучать эту херотень. И слава Б-гу!

Цитата: Iktomy
главное - это цель



Вот и я спрашиваю для каких целей? При каких условиях этот ваш точкаНет станет почти идеальным средством разработки?

11
27 июля 2010 года
oxotnik333
2.9K / / 03.08.2007
Цитата: InoY

Вот и я спрашиваю для каких целей? При каких условиях этот ваш точкаНет станет почти идеальным средством разработки?


Когда надо быстро, без всяких заморочек на особенности работы с железом/памятью и пр. решить задачу - написать аппликуху под винду.

20K
27 июля 2010 года
InoY
75 / / 24.02.2008
Вот, товарищи! Наконец-то я под конец рабочего дня дождался таки внятного ответа!
Правда у меня появились другая пара вопросов:
1) Хотелось бы конкретизировать: В какой области программирования его лучше юзать? Построение клиент-серверных приложений, математические алгоритмы, проги для работы с железом et cetera
2)
»без всяких заморочек на особенности работы с железом/памятью
Сдаётся мне что так можно сказать и про средней руки проги на Делфи
11
27 июля 2010 года
oxotnik333
2.9K / / 03.08.2007
Цитата: InoY

Правда у меня появились другая пара вопросов:
1) Хотелось бы конкретизировать: В какой области программирования его лучше юзать? Построение клиент-серверных приложений, математические алгоритмы, проги для работы с железом et cetera


Во всех можно пользовать. Сама библиотека довольно удобно спроектирована. Единственное, что в неуправляемых языках мат. алгоритмы будут несколько быстрее работать (сборщик мусора мешаться не будет).

Цитата: InoY

2)
Сдаётся мне что так можно сказать и про средней руки проги на Делфи


Дык дотнет это реинкарнация ВЦЛ-а от микрософта.

246
27 июля 2010 года
Iktomy
1.2K / / 11.10.2004
.NET - это, в первую очередь, бизнесс приложения. где критична скорость разработки.
246
27 июля 2010 года
Iktomy
1.2K / / 11.10.2004
Афтар, кстати, классический троль. Мот и правда его забанить?
384
27 июля 2010 года
KIV
432 / / 20.01.2009
Подведу небольшой итог:
1. C/C++ - чтобы писать относительно быстрые приложения и даже с переносимостью на уровне исходников (если немного постараться)
2. Java - если скорость не критична, но важна переносимость на уровне бинарников (почти ничего специально для этого делать не придётся)
3. C# - если переносимость в любом виде (на уровне исходников или бинарников) не волнует, но хочется получить всякие плюшки ввиде сборщика мусора и богатого набора классов. Скорость несколько ниже, чем у C++, но должна быть выше, чем у Java (ведь код в самом конце перед запуском переводится в машинный)

Для любых задач подойдут первые два варианта. Но при желании (исходя из преимуществ и недостатков C#) можно выбрать и 3 вариант. Лично я бы его никогда использовать не стал, но...
7
27 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: KIV
1. C/C++ - чтобы писать относительно быстрые приложения и даже с переносимостью на уровне исходников (если немного постараться)
2. Java - если скорость не критична, но важна переносимость на уровне бинарников (почти ничего специально для этого делать не придётся)
3. C# - если переносимость в любом виде (на уровне исходников или бинарников) не волнует, но хочется получить всякие плюшки ввиде сборщика мусора и богатого набора классов. Скорость несколько ниже, чем у C++, но должна быть выше, чем у Java (ведь код в самом конце перед запуском переводится в машинный)

Хочу разочаровать, но Java приложения во многих случаях рвут по производительности аналогичный софт на C/C++. А вот с .NET дела похуже, так как платформа значительно моложе оптимизатор там не такой продвинутый.

20K
28 июля 2010 года
InoY
75 / / 24.02.2008
Цитата: Iktomy
Афтар, кстати, классический троль. Мот и правда его забанить?



Это не моя вина, господа, что мой простой и наивный вопрос смог вызвать у вас такое бурление говн. Никто никого троллить не собирался! Так-то!

Post Scriptum: Всем ответившим спасибо. Что хотел узнать я узнал.

72
28 июля 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Хочу разочаровать, но Java приложения во многих случаях рвут по производительности аналогичный софт на C/C++.



Заинтриговал. Можешь привести примеры?

246
28 июля 2010 года
Iktomy
1.2K / / 11.10.2004
Бурление говн... гыгыгы. Цитатель.

Афтар, никакого бурления нет. Такие темы создают либо троли, либо люди с альтернативным развитием.
48
28 июля 2010 года
Zorkus
2.6K / / 04.11.2006
Цитата: KIV
Например, Java можно запустить и в Windows, и в Linux, и Mac OS и на многих других системах. Причём Sun сама позаботилась о том, чтобы JVM были для всех распрастранённых ОС.
В .NET часто использую обращения к DLL. А это очень плохо.


Ок. Не используй :).

Цитата: KIV

Кроссплатформенные на уровне бинарников приложения не должны знать ни про WinAPI, ни про POSIX, ни ещё какие-либо архитектурно спецефичные возможности. В идеале приложение просто не должно иметь возможность обратиться к функциям ОС напрямую. Лишь к ос-независимым прослойкам. Насколько мне известно у MS была попытка выпустить свою JVM, в которой предоставлялись дополнительные виндоспецифичные функции. Как можно считать кроссплатформенным язык где имется (и самое главное - часто используется) возможность вызова DLL? Проект Mono ещё сыроват. К тому же это получается почти то же, что и Wine - ведь придётся имитировать USER32.DLL и прочие библиотеки о которых Linux и прочие системы понятия не имеют.
P. S. Теме место в "Общалке"...


Так и внутри JVM и стандатной библиотеки Java используются вызовы Dll, как во твоему иначе например можно реализовать работу с потоками, IO и прочим :)

Да и мне случалось использовать JNI самому (правда, только один раз, и я больше постараюсь никогда без крайней необходимости больше не прибегать к этому).

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

48
28 июля 2010 года
Zorkus
2.6K / / 04.11.2006
Цитата: InoY
Вот, товарищи! Наконец-то я под конец рабочего дня дождался таки внятного ответа!
Правда у меня появились другая пара вопросов:
1) Хотелось бы конкретизировать: В какой области программирования его лучше юзать? Построение клиент-серверных приложений, математические алгоритмы, проги для работы с железом et cetera
2)
»без всяких заморочек на особенности работы с железом/памятью
Сдаётся мне что так можно сказать и про средней руки проги на Делфи


Нет!
Суть в другом.
.NET -это платформа управляемого кода. CLR, CTS, и прочее. Это MSIL, слой совместимости множества языков, от C# до F/R#, IronPython, и еще многих. Это интеграция с MSSQL, и еще многими виндовыми платфорами.

Сравнивать это с формочками на дельфи - смешно.

48
28 июля 2010 года
Zorkus
2.6K / / 04.11.2006
Цитата: Kogrom
Заинтриговал. Можешь привести примеры?


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

Фундаментальное обоснование - JIT компилятор позволяют генерить машинный код для часто вызываемых метотов в тот момент, когда уже известны аппаратные характеристики хоста. Конкретный тип процессора и его характеристики, в т.ч. размер кеша, конвееры и прочее, количество памяти и ее лейаут.

Статические компиляторы такой информации не имеют. И потому, приложение на С, реализующее какой-нибудь численный метод, скомпиленное под i386 generic arch, или просто скомпиленное обычным компилятором без ультраоптимизации (последний GCC, Intel CC), будет работать медленнее.

Писать пример маленький..мне лениво :( Простите меня пожалуйтса.

72
28 июля 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: Zorkus
Фундаментальное обоснование - JIT компилятор позволяют генерить машинный код для часто вызываемых метотов в тот момент, когда уже известны аппаратные характеристики хоста. Конкретный тип процессора и его характеристики, в т.ч. размер кеша, конвееры и прочее, количество памяти и ее лейаут.


Теперь я понимаю, почему многие проги на Java стартуют по минуте.

Цитата: Zorkus
Писать пример маленький..мне лениво :( Простите меня пожалуйтса.



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

7
28 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
Для настольных программ это не слишком здорово. Придётся не выключать комп и не закрывать приложение, чтобы не чувствовать раздражения от долгого запуска.


Закрывать можно. Система кэширует скомпилированный код. В .NET статическую прекомпиляцию осуществляет ngen. Как правило, при инсталляции .NET приложений все сборки прогоняются через него.

384
28 июля 2010 года
KIV
432 / / 20.01.2009
Цитата:
Так и внутри JVM и стандатной библиотеки Java используются вызовы Dll, как во твоему иначе например можно реализовать работу с потоками, IO и прочим


Я не отриацл, что любая программа рано или поздно обращается к API. Просто в идеале не должно быть возможности обраться к API из программы напрямую. То есть у приложения, например, есть класс Window. Оно может его создать. Однако вызвать напрямую CreateWindowEx возможности быть не должно.

Цитата:
Да и мне случалось использовать JNI самому (правда, только один раз, и я больше постараюсь никогда без крайней необходимости больше не прибегать к этому).


Вот и молодец, что не используешь. JNI используется не так уж и часто. А вот Pinvoke в .NET приложениях встречается с завидной регулярностью.

72
28 июля 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Закрывать можно. Система кэширует скомпилированный код. В .NET статическую прекомпиляцию осуществляет ngen. Как правило, при инсталляции .NET приложений все сборки прогоняются через него.



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

Например, NetBeans, Eclipse - запускаются по минуте, тормозят. Понятно, что это монстры, но всё же. А больше известных настольных приложений на Java и не припомню. Вроде OpenOffice как-то с ней связан был, и тоже тормозной.

С другой стороны Paint.Net - стартует быстро, работает без тормозов. Хотя, это и не монстр, конечно.

В теории то всё красиво, а на практике как-то так.

48
28 июля 2010 года
Zorkus
2.6K / / 04.11.2006
Цитата: Kogrom
Теперь я понимаю, почему многие проги на Java стартуют по минуте.
Я же не код просил, а примеры приложений. Из твоей теории следует, что это какие-то серверные приложения. Для настольных программ это не слишком здорово. Придётся не выключать комп и не закрывать приложение, чтобы не чувствовать раздражения от долгого запуска.


Следует различать клиентскую и серверную версии JVM. И понимать различие между ними, в том числе различие в приоритетах оптимизации.
А для клиентской существует, например, так называемый class data sharing, значительно уменьшающий время загрузки для мелких приложений.

А еще, посмотри, сколько времени стартует Visual Studio (написанная на .net / C++) с солюшеном в котором 10 тысяч классов, и сравни со временем старта Idea/ Eclipse :)

48
28 июля 2010 года
Zorkus
2.6K / / 04.11.2006
Цитата: hardcase
Закрывать можно. Система кэширует скомпилированный код. В .NET статическую прекомпиляцию осуществляет ngen. Как правило, при инсталляции .NET приложений все сборки прогоняются через него.


Ты имеешь в виду, что нативный код, сгенеренный JIT, дампится где-то? Поблизости от GAC или еще где? Если так, это разумная оптимизация.

В Java кешируются только внутреннее представление core library classes, тот самый class data sharing который я упоминал. Да и то, он работает по дефолту только на клиентской версии JVM.

А от решения кешировать скомпиленный нативный код отказались по двум соображениям, оба из которых мне не кажутся разумными:

1) Security caveats. (Как насчет хешей, ключей, trusted storages..etc)
2) Якобы нет смысла хранить скомпиленный неизвестно когда код, так как он мб быть уже "устаревшим" в плане оптимальности и лучше его перегенерить.

А вообще для серверной версии JVM суть проста -- лучше долгий старт сервера и потом более быстрая работа, чем быстрый старт. На десктопной версии - наоборот (часто, но не всегда).

Кстати, Когром. Предпочел бы ты старт IDE, который ты вряд ли делаешь чаще чем раз 5 в день, за 10 секунд, или старт старт в 1 минуту, и работу среды затем скажем, процентов на 10-15 быстрей?

20K
29 июля 2010 года
InoY
75 / / 24.02.2008
Цитата: Iktomy
с альтернативным развитием.



Альтернативное не значит плохое!;)

7
29 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: InoY
Альтернативное не значит плохое!;)


Пост #5.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог