Подтвердить что ты не робот

Что меня озадачивает... Являются ли языки .NET основными для Windows (автономных) приложений?

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

Q1.Если вы смотрите на рабочие сайты,.NET, как правило, используется в основном для веб-приложений, не так много для приложений Windows? (Моя мечта - разработать автономные небольшие приложения для Windows.)

Q2.В большинстве основных приложений Windows, разработанных с использованием C/С++? например приложения для обработки текстов, такие как MS Word или OpenOffice; программное обеспечение для редактирования фотографий, например, ACD See или Photoshop; MSN или Yahoo Messenger; дисковых горелок....NET слишком медленный и слишком непрямой для решения этих задач?

Q3. Языки .NET, в основном используемые только в SIMPLE бизнес-приложениях с использованием бэкэнд базы данных? Например. платежных ведомостей или приложений GPS. Потому что это слишком медленно и слишком непрямо для основных программных приложений?

Q4.I думал, что последние несколько лет .NET был единственным средством разработки, поддерживаемым приложениями Microsoft для Windows, а C/С++ - устаревшими языками? Используют ли они MFC для доступа к Windows API, который также устарел в новых версиях Windows (обратно совместимый, но не поощряемый Windows)?

Q5.Если C/С++ являются основными инструментами для основных автономных приложений Windows, то (медленный) управляемый кодовый подход - это только шутка? Или доминирование C/С++ связано с тем, что большинство основных приложений старше .NET? Можете ли вы дать мне несколько известных имен программного обеспечения, разработанных с использованием .NET?

Большое спасибо за вашу индустриальную проницательность!

4b9b3361

Ответ 1

Если вы посмотрите на рабочие сайты,.NET, по-видимому, в основном используется для веб-приложений, не так много для приложений Windows?

1).NET не очень распространен для "обычных" настольных приложений, если вы считаете, что основной темой является Photoshop и т.д. Это часто происходит из-за того, что основные приложения основаны на коде, который был написан задолго до .NET. приходили, и эти приложения никогда не переписывались, только выросли. Они несут огромное количество устаревшего кода из предыдущих версий.

Разработаны ли большинство "основных" приложений Windows с использованием C/С++?

2a) См. № 1.

Является ли .NET слишком медленным и слишком непрямым для решения таких задач?

2b) Абсолютно нет..NET может быть быстро или медленно медленным. Как и любой инструмент, это зависит от того, кто его использует.

Являются ли языки .NET, которые в основном используются только в бизнес-приложениях SIMPLE с использованием бэкэнд базы данных? Например. платежных ведомостей или приложений GPS

3) Расчет заработной платы или GPS вряд ли прост. Приложения бизнес-приложений (LOB) могут быть чрезвычайно сложными, и .NET часто подходит для них именно потому, что они настолько сложны.

Я думал, что последние несколько лет .NET был единственным средством разработки, поддерживаемым приложениями Microsoft для Windows, а C/С++ - устаревшими языками?

4) Это неправильно. C/С++ не устарели, они просто разные. Они обеспечивают более точный уровень контроля над машиной в обмен на более длительный и более сложный срок разработки.

Если C/С++ являются основными инструментами для основных автономных приложений Windows, то (медленный) управляемый кодовый подход - это только шутка? Или доминирование C/С++ связано с тем, что большинство основных приложений старше .NET? Можете ли вы дать мне несколько известных имен программного обеспечения, разработанных с использованием .NET?

5) Доминирование очень унаследовано. Опять же,.NET не медленный. Основные приложения хорошо известны во многом потому, что они были дольше, чем .NET, поэтому нет причин ожидать, что многие, если таковые имеются, приложения .NET, известные или популярные как Word или Photoshop. Несколько лет в будущем, небезосновательно ожидать появления некоторых известных приложений, основанных на .NET.

Edit:

Некоторые люди, похоже, смущены и считают, что где-то в этом ответе утверждается, что .NET так же быстро, как и С++. Единственный аргумент в том, что и .NET, и С++ достаточно быстры, чтобы запускать большинство приложений. И любой, кто считает, что время разработки в С++ и .NET одинаково, при прочих равных условиях, не развилось в одном из двух:)

Ответ 2

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

При этом C/С++ все еще используется в этом пространстве. Однако в Windows большая часть "передовой" работы выполняется в .NET или в сочетании с .NET с собственным кодом.

Последнее, честно говоря, вероятно, там, где происходит самая захватывающая работа. Это позволяет вам при необходимости находить "близкий к металу" собственный код, но при этом все они имеют всю мощь, обеспечиваемую новейшей платформой .NET(например, WPF) для уровня пользовательского интерфейса и критических разделов, не относящихся к производительности. Это становится все более распространенным с течением времени - например, Visual Studio по-прежнему носит в основном собственный (С++) код, но весь пользовательский интерфейс был написан с использованием WPF (.NET).

Я ничего не делаю, кроме разработки Windows. Я лично предпочитаю использовать .NET для всего, что я могу, и вернуться к C/С++ для очень маленьких (и все более мелких) частей, где .NET не имеет смысла.

Ответ 3

Одна из проблем, которые я беру с вашим вопросом, заключается в том, что вы задаете фактический вопрос ( "Большинство" основных "приложений Windows, разработанных с использованием C/С++?) и субъективный/причинный вопрос (" Является ли .NET слишком медленным и слишком косвенным справиться с этими задачами? ") за один раз.

Действительно, большинство настольных приложений Windows (например, Microsoft Office, Adobe Photoshop и т.п.) написаны в собственном коде. Однако также вполне справедливо, что на стороне сервера, по крайней мере в стеке Microsoft, это все ASP.NET, то есть управляемый код.

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

Как отмечали другие, во время выбора метода внедрения для вашего настольного приложения существует множество требований. Это может быть переносимость, традиция, существующая база кода, обучение ваших разработчиков, наличие управляемых оболочек для определенных API (исторически Windows часто не хватало последних) и многие другие факторы.

Для конкретных примеров "всех управляемых" настольных приложений я бы привел ReSharper - это полностью настольное приложение .Net с нетривиальным пользовательским интерфейсом и логикой. Visual Studio 2010 также имеет значительную часть (включая уровень пользовательского интерфейса/презентации), написанный в управляемом коде.

Ответ 4

Есть несколько основных проблем, которые, я считаю, по-прежнему способствуют относительной нехватке коммерческих приложений .NET(тип, который вы покупаете в коробке в локальном магазине программного обеспечения):

  • Требование клиентов (возможно) загрузить правильную версию среды выполнения и/или установить ее перед запуском вашего приложения.
  • В тех случаях, когда требуется сверхвысокая производительность, проверка границ массива/коллекции .NET(защита управляемого кода в целом), очевидно, медленнее, чем языки/инструменты, которые этого не делают.
  • Представление, что компиляция JIT вызывает более медленное время запуска.
  • Часто бывает мало бизнес-ценности при переписывании 1000 строк рабочего кода C/С++ в .NET.

Я не говорю, являются ли эти проблемы действительными или нет, просто пытаясь ответить на ваш вопрос относительно того, почему по-прежнему существует относительное отсутствие коммерческого (сжатого) программного обеспечения .NET.

Ответ 5

  • .NET определенно используется для автономных приложений, хотя определение точных процентов практически невозможно.
  • Да, они в основном сделаны с более старыми языками. Многие наверняка можно было бы сделать с .NET, но вам понадобилось бы много стимулов для перезаписи чего-то большего, чем Word, Photoshop и т.д. С нуля.
  • Не обязательно, но он может выглядеть так просто потому, что огромный процент бизнес-приложений может быть (и написан) в виде баз данных.
  • Я не думаю, что MS имеет действительно унифицированное сообщение здесь - они, безусловно, много работали в .NET, но они также продолжают разрабатывать и улучшать альтернативы, такие как MFC (возможно, по крайней мере отчасти потому, что они используйте его сами).
  • Некоторые из них. Более чем скорость, С++ и C обеспечивают гибкость, переносимость (например, Office для Mac) и большую способность отличать ваше приложение от других.

Ответ 6

Большинство крупных приложений Windows - это С++, потому что они были написаны до того, как .NET существовал. Было бы бессмысленным потратить 2 года на переработку времени Microsoft Office (скажем) на .NET, только в точности то, что вы начали с двух лет назад в результате.

Вместо этого большинство крупных программных приложений встраивают .NET в них медленно. Посмотрите VSTO, например, для отличного примера совместимости .NET в приложении С++.

С другой стороны, Microsoft выпустила ряд программных пакетов, которые были написаны полностью (или в первую очередь) на языках .NET. Expression Blend, вероятно, был их первым. Visual Studio 2010 (который в значительной степени основан на WPF) является последним.

Ответ 7

  • ASP.NET очень велик, потому что вы управляете оборудованием. Это не важно, если ваши пользователи находятся на Linux или на Mac. Страница отображается и работает. Когда у вас есть аппаратное обеспечение в качестве параметра, люди с осторожностью относятся к .NET, который (моно-в сторону) является довольно обширным окном. (Моно работает, но менее восприимчив, чем другие подходы к платформе X-платформы).

    .NET также требует, чтобы загрузка была установщиком (.NET Framework). Там много трений для пользователей, которые устанавливают вещи, чтобы ИСПОЛЬЗОВАТЬ вашу вещь, это был небольшой барьер в XP, но теперь, когда 3.0/3.5 запекается в vista/win7, он становится без проблем.

  • В прошлом да. В эти дни, не так много. (Исправьте меня, если я ошибаюсь, потому что это очень возможно) Я считаю, что VStudio 2010 и Office 2007+ теперь разработаны в .NET, так как они не требуют большой производительности. C/С++ все еще быстрее для игр, но даже некоторые инди-разработчики создают игры для xbox/pc на XNA (DX для .NET, sorta)

  • Нет..NET не так медленно, как раньше. В настоящее время есть множество больших больших приложений, встроенных в .NET, потому что он предлагает широкий спектр функций для разработки приложений BIG FASTER, BETTER и MORE STABLE.

  • .NET не использует MFC. Winforms перехватывает GDI + и WPF перехватывает Windows Presentation Foundation, чтобы сделать это api-звонки..NET по большей части перезаписывается, но некоторые вещи (например, direct file-i/o, завернуты в API окон)

  • Программное обеспечение разработано на C/С++, потому что оно: a) быстрое b) общеизвестно. Но с сегодняшними новыми программистами, я думаю, это смещение. Я также считаю, что новые версии Sony Vegas были переписаны для .NET, но я снова ошибаюсь. Ключом, который следует помнить, является то, что .NET не так медленен, как раньше, MS работает над проблемой производительности, потому что хочет продать .NET для разработки Windows.

Ответ 8

Сама Windows не написана в .NET. Там хорошая причина для этого...

Ответ 9

Одной из основных проблем для .NET в основных приложениях является то, что ISV, производящий их, хотел бы иметь переносимый код. Photoshop, например, имеет очень успешную версию Mac OSX. Конечно, такая переносимость - это точно не цель Microsoft.

Теперь для Интернета это не имеет большого значения. Вы можете использовать .Net на стороне сервера и по-прежнему создавать веб-сайт, совместимый с Safari.

Ответ 10

IMHO прилив придет всякий раз, когда IE станет управляемым приложением.

Ответ 11

Если вы хотите разрабатывать приложения LOB для небольших магазинов, которые не могут позволить себе нанимать программистов, и вы хотите предложить максимальные возможности для минимальной работы, напишите их в MS-Access. Серьезное.

https://stackoverflow.com/info/2437387/is-ms-access-still-the-most-efficient-rad-tool-for-small-scale-custom-apps