По первому пункту: пробовали ли вы (бесплатную) VIsual Studio Express Edition? Это прекрасно подходит для многих вещей. У вас просто не так много помощников / дизайнеров и нет поддержки плагинов (для расширений IDE).
Что касается второго: исключая некоторые неприятные уловки, вы не можете создать чистый родной исполняемый файл из .NET; он сильно полагается на доступность инфраструктуры на локальном компьютере. Сборка - это просто пакет IL и может содержаться (обычно) либо в dll, либо загружаться в исполняемый файл, который загружает точку входа сборок; но в этом сценарии exe - это просто простой загрузчик плюс обычная сборка.
Собственно, CLR больше похожа на JVM; «каркас» на самом деле эквивалентен BCL. Основная структура MS + CLR, безусловно, имеет некоторые оптимизации для Windows, но другие среды выполнения / платформы (компактный, micro, Silverlight, Mono) будут разные оптимизации.
Повторно многоядерный - у вас есть полная поддержка потоков (для самостоятельного выполнения), но основная автоматизированная многоядерная поддержка (надеюсь) будет в .NET 4.0 с "параллельные расширения" работают.
По последнему пункту: действительно должно быть очень знакомо. На самом деле, если вы хотите провести некоторые сравнения, "отражатель" (бесплатно) может возьмите скомпилированную сборку и покажите вам код на C # или delphi (или некоторых других).
[обновить вопросы]
IL = промежуточный язык; .NET компилируется не под собственные инструкции ЦП, а с чем-то промежуточным, что становится инструкцией ЦП во время выполнения (скомпилировано «Just In Time» (JIT) на основе метода за методом). Это означает, что JIT-компилятор может оптимизировать тот же IL для локальной машины. Вы можете сделать это заранее, используя NGen.
CLR = Common Language Runtime; по сути виртуальная машина
BCL = Библиотека базовых классов; набор классов разделял мои многие приложения
Повторное развертывание: сначала установите .NET framework на клиенте ;-p
После этого - разные варианты. На самом простом уровне вы можете просто скопировать exe / etc на локальный компьютер и запустить. Например, я использую «robocopy» для отправки кода на веб-серверы.
Для полной локальной установки сложного клиентского приложения можно использовать msi (и полная VS IDE поможет вам в этом).
Для простых клиентов вы можете использовать ClickOnce - который упаковывает приложение в подписанный пакет, который обеспечивает возможности самообновления и т. д. и позволяет вам делать заявления о том, какая безопасность вам нужна (полное доверие и т. д.). Express Edition позволяет создавать пакеты ClickOnce. ClickOnce можно использовать даже на заблокированных клиентах, на которых пользователь не может устанавливать приложения, поскольку приложение изолировано и изолировано.
Наконец, вы можете запустить приложение .NET из общего сетевого ресурса, но это может сказаться на безопасности: уровень «Безопасность доступа для кода» не будет предоставлять сетевому ресурсу «полное доверие» (хотя в последнее время в него были внесены некоторые изменения, так что сопоставленные (F: etc) общие ресурсы являются доверенными). Поэтому вам нужно использовать CASPOL на каждом клиенте, чтобы доверять коду. ClickOnce было бы проще ;-p
person
Marc Gravell
schedule
26.10.2008