Для чего используете WinAPI? О WinAPI, .NET, Java и т.д.

Автор: tatjana-
Опубликовано: 415 дней назад (4 января 2011)
Рубрика: Без рубрики
0
Голосов: 0
есть Windows, есть WinAPI. но есть же еще и .NET (считайте, что это обертка с хороших дизайном над WinAPI). я не перестаю удивляться, почему многие мучаются, но продолжают писать под голый WinAPI?
p.s. если не сложно, поддержите меня на конкурсе msdn. по ссылке softmaker.org.ua/wall-14448489_463 надо нажать "мне нравится" и все.
Нужен толковый веб-программист | C или Delphi
doktor-h # 6 января 2011 в 17:47 0
Татьяна, не хочется управляемый код и зависимости от платформы .NET;
хочется скорости, например.
nikolaj- # 7 января 2011 в 06:17 0
видимо потому что не осилили .NET )
aleksand # 8 января 2011 в 09:15 0
Имхо, иногда стоит спускаться с высоких "небес" на более низкий уровень, чтобы не приболеть синдромом ПоХапэ Г-М )))
tatjana- # 8 января 2011 в 13:31 0
Доктор, .NET - это часть Windows. сказать, что нехочется зависимости от .NET - это получается, что пчелы против меда))
tatjana- # 9 января 2011 в 06:18 0
Александр, "чтобы не приболеть синдромом ПоХапэ" -- как удалось сравнить php с .NET?
aleksej- # 15 января 2011 в 10:36 0
Я полностью пишу на нем программы.

Зачем использовать .NET, если всё то же самое можно сделать на WinAPI? При этом возможно использовать части свой программы (не сильно связанные с WinAPI) под любым железом и ОС, ведь C++ поддерживают все. Если прижмет, то я буду использовать CLI.

Лично я вижу у .NET единственное преимущество. Ваша программа компилируется под используемый процессор при запуске. То есть из процессора выжимается максимум. Но сам способ написания программ на .NET заставляет нас создавать тысячами объекты, что полностью съедает ОЗУ и процессор. И это сводит на нет преимущества .NET.

А вообще .NET - это такая не кроссплатформенная JAVA от Microsoft. Из этого и делайте выводы.
tatjana- # 15 января 2011 в 16:32 0
Алексей, > При этом возможно использовать части свой программы (не сильно связанные с WinAPI) под любым железом и ОС

теоретически можно все. есть конкретные примеры?

> способ написания программ на .NET заставляет нас создавать тысячами объекты

на .NET не пишут. это не язык. есть примеры принуждения к созданию тысяч объектов?)

> NET - это такая не кроссплатформенная JAVA от Microsoft

величайший миф. ни о какой кросплатформенности речи не было.
.NET - это развитие технологии COM, на которой построены почти все продукты Microsoft.
aleksej- # 17 января 2011 в 23:07 0
>> NET - это такая не кроссплатформенная JAVA от Microsoft
> величайший миф. ни о какой кросплатформенности речи не было.
> .NET - это развитие технологии COM, на которой построены почти все продукты Microsoft.

Во первых .NET - это виртуальная машина или JIT-компилятор. Можно еще сказать, что это набор команд IL-ассемблера. И стандартная библиотека (классы, перечисления, константы там всякие).

COM же занимается только взаимодействием процессов (упрощенно). Там нет виртуальной машины и сборщика мусора. И при этом .NET для этого активно использует старый добрый COM. (Да не, COM злой)

> на .NET не пишут. это не язык. есть примеры принуждения к созданию тысяч объектов?)

Пишут на множестве языков, которые компилируются в IL-код для .NET платформы. А за примерами прожорливости ходить не надо далеко, гляньте на вызовы в отладчике, что лежит в памяти и расход памяти. Сплошное выделение и освобождение памяти.

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

> теоретически можно все. есть конкретные примеры?

Начиная с простого на C++
http://vinxru.livejournal.com/10798.html
http://vinxru.livejournal.com/10280.html
http://vinxru.livejournal.com/9937.html
http://vinxru.livejournal.com/11341.html

Заканчивая сложным
http://habrahabr.ru/company/rtit/blog/125189/
http://habrahabr.ru/company/rtit/blog/125491/

А вообще, я знаю и применяю более 20 языков, которые лучше подходят для решения проблем, чем .NET. Тот же JS и PHP например :) Но речь сейчас о WinAPI.
doktor-h # 23 января 2011 в 01:07 0
Татьяна, да вы шо? А ничего, что на данный момент на большинство windows машин установлен ХР, в котором .NET из коробки не установлен? Я конечно понимаю, один раз поставил и пользуйся, но рекомендую всё же почитать статью джоэла про то, как он часики на дотнете писал)
aleksej- # 24 января 2011 в 11:19 0
А еще я думаю, что MS очень часто меняет технологии. Каждые несколько лет появляется революционная технология, а старая признается ошибкой. MFC, ATL, WTL, OLE, COM... уже в помойке Майкрософта. А уж API драйверов меняется с каждым выпуском новой ОС. Единственный WinAPI используется вот уже 25 лет и пока его полноценно никто заменить не может.

Скоро та же участь придет к .NET. И мы будем пользоваться .NEXT каким нибудь. А WinAPI останется.

Писать на нем программы целиком вас никто не заставляет, но для решения исключительных ситуаций программисту Windows знать его надо обязательно.
doktor-h # 25 января 2011 в 11:59 0
Алексей, вы не правы. СОМ до сих пор поддерживается и повсеместно применяется. И .NET никуда не денется, слишком масштабный проект.
aleksej- # 28 января 2011 в 18:35 0
Технология жива, пока её выбирают для новых проектов. А с вашей точки зрения живы все технологии вплоть до DOS и языка программирования COBOL. В США еще много где поддерживаются программы на COBOL-е (1959 год:)
doktor-h # 30 января 2011 в 09:23 0
Алексей, на технологии COM достаточно новых проектов.
tatjana- # 30 января 2011 в 23:12 0
Алексей,

> Во первых .NET - это виртуальная машина или JIT-компилятор

ну откуда вы это взяли?) .NET - это собирательное название для множества технологий.
Common Language Runtime (CLR) - среда выполнения. есть Common Language Infrastructure (CLI) .... вообщем почитайте.

> COM же занимается только взаимодействием процессов

COM ничем не занимается. это модель/соглашение по взаимодествию.

> Сплошное выделение и освобождение памяти.

но не системной же. после старта берется у системы 10+ mb. в ней происходят все дальнейшие манипуляции с памятью.
тоже самое делают очень многие на C++
поищите: свой менеджер памяти на С++ ))

> я знаю и применяю более 20 языков, которые лучше подходят для решения проблем

20?! О_о не верится. назовите проблему которую можно решить на одном языке и нельзя на другом. и какая разница какой язык?) язык это средство манипуляции объектами. нет?
tatjana- # 1 февраля 2011 в 05:08 0
Алексей,

> MS очень часто меняет технологии. Каждые несколько лет появляется революционная технология, а старая признается ошибкой. MFC, ATL, WTL, OLE, COM... уже в помойке Майкрософта

.NET появился в начале 2000-х. все тенологии поддерживаются.
а если не развиваются - это не значит, что они на помойке.

> Скоро та же участь придет к .NET

))

> А WinAPI останется.

а вы в курсе что приложения для windows можно будет создавать на html, css и javascript? вот http://softmaker.org.ua/wall-12335760_1463
и что появится windows без всякой обратной совместимости.
- # 2 февраля 2011 в 22:14 0
Со своей стороны хочу добавить, что написанные под платформу .NET приложения очень трудно защитить от анализа/взлома реверсерами, т.к. тот же Reflector без проблем покажет исходник скомпилированной проги, остаётся только обфускация, которая не столь уж и помогает. В то время, как написанные без использования .NET программы, доставят массу проблем при взломе из-за грубого ассемблерного листинга и, в ряде случаев, всё же принесут разработчику желаемую материальную выгоду.
tatjana- # 5 февраля 2011 в 06:48 0
Доктор,

> да вы шо? А ничего, что на данный момент на большинство windows машин установлен ХР, в котором .NET из коробки не установлен?

а еще у многих вообще нет компов.
кстати, на XP легко ставится .NET
tatjana- # 5 февраля 2011 в 09:46 0
↔,

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

взломать и стащить можно все что угодно.
поэтому надо продавать программы+сервисы/услуги
tatjana- # 7 февраля 2011 в 05:10 0
↔,

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

взломать и стащить можно все что угодно.
поэтому надо продавать программы+сервисы/услуги
- # 7 февраля 2011 в 11:45 0
Татьяна
>взломать и стащить можно все что угодно.
Разумеется, только профессионализм разный требуется. Любой школьник, мало мальски знаюший один ЯП, разнесёт сборку .NET в пух и прах.

>поэтому надо продавать программы+сервисы/услуги
Этим можно завлечь лишь компании, частные же лица пренебрегают плюсами легальной покупки программ.