Java vs .NET on Win2k

    По совету добргого человека rodem решил использовать Paraffin при создании инсталяции WiX-ом (описанов моем предыдущем посте).

    Но, совершенно неожиданно столкнулся с проблемой — Paraffin требует для работы .NET 3.5, а максимальный .NET, который я могу поставить на билд-машину (по лицензионным соображениям — это Win2k) — .NET 2.0

    Конечно, к парафину прилагаются исходники с Solution-файлом для Visual Studio, и вполне возможно его можно пересобрать для работы с .NET 2.0 — только боюсь у меня на все это не хватит времени.

    Опять-таки — ни в коем случае не собираясь устраивать очередной спор что круче — Java или .NET (думаю оба хороши для своих задач).

    Интересно другое, почему Java работает на Win2k включая последние версии (7-ку не пробовал — ну так она и не в продакшн еще) — а .NET остановился на достаточно древней 2.0 (при том что и .NET и Windows разрабатывается одной и той же компанией и, казалось бы, обеспечить совместимость намного проще)?
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 18

      +4
      java тем и хороша что это кросс-платформенный язык и достаточно только поставить java-машину под нужную OC и всё будет работать прекрастно.
        –1
        Ага, обычно достаточно, но бывает и иначе :)
        +4
        Может быть, по той же причине, по которой скоро прекратят поддержку Win XP?
          0
          именно из-за этого. Поддержка win2000 прекращена в 2005 году
          0
          > а .NET остановился на достаточно древней 2.0
          извените за резкость «хренасебе древней».

          Просто человеку который сделал эту тулзу, было лень писать под 2.0 совместимость.
          В чём он собственно сам и сознался.
            0
            Проблема не в парафине — человек написал тулзу и огромное ему спасибо. Он еще и исходники приложил!

            Опять-таки — приспичит (а судя по всему приспичит) — можно взять исходники и самому пересобрать с .NET 2.0 и допилить напильником на предмет совместимости.

            Почему я не могу поставить .NET Runtime версии старше 2.0 на Win2k? Что такого нет в Win2k по сравнению с WinXP (имеется в виду с точки зрения API) что не возможно обеспечить совместимость .NET & Win2k?
              0
              Linq, дальше слишком долго объяснять, в Win2k Linq не встроить и всё тут…
                0
                Не в Linq дело, а в других сборках, которые включены в .NET 3.5. Например WPF и WCF. Вот их реализация под Win 2k скорее всего влетела бы в копеечку. Вот и отказали.
                  0
                  WPF тоже, оно завязано на графических компонентах которых в 2k нету.
                  Самая большая проблема переписывания тулзы в том что там многое на Linq, не намного проще чем написать заново, но не как с нуля.
                  0
                  а можно хотя бы намек? в чем невозможность встроить линкью состоит?
                    0
                    По-идеи не проблема это. Дело в том, что .NET 3.5 — целостная система и распространять её кусками на устаревшую по их мнению венду не целесообразно.
                  +1
                  На самом деле я могу Вас обрадовать: если проект не завязан ни на что, кроме System.Core (т.е. просто использует LINQ), то этот самый System.Core можно скопировать из установленного .NET 3.5 (или из последнего Mono, если Вас волнуют вопросы лицензионности) и добавить в GAC. Возможно то же получится с некоторыми другими библиотеками.
                    0
                    Сам Wix на моно перетащить не получится (только что гуглил на эту тему) — там используется ряд API — основное это MSI API — хотя могу и ошибаться

                    Если говорить о самом парафине — исходники есть — то есть можно попытаться пересобрать его с .NET 2.0 (ну и допиливать напильником несовместимости)

                    Но — я достаточно далек от .NET разработки что бы сделать это за разумное время — так что продолжу возиться с tallow
                      0
                      Вы не поняли. Если WiX пользуется только System.Core.dll, то её можно просто скопировать из Mono, и у Вас будет .NET 2.0, на котором можно будет запускать некоторые программы .NET 3.5. Эта dll в Mono имеет такой же формат и отвечает тем же стандартам, что и System.Core.dll из .NET 3.5 и полностью с ней совместима.
                0
                из описания LINQ я подумал что это «надстройка» над .NET framework — а не его составная часть. Но — спорить не буду — так как .NET знаю очень поверхностно (можно сказать вообще не знаю)

                На самом деле с точки зрения маркетинга — все понятно. MS выгодно что бы пользователи как можно скорее мигрировали со старых систем на новые. И такими ограничениями (новые продукты работают только на новых версиях ОС) — эта миграция стимулируется

                Просто хотелось понять — только ли маркетинговые резоны здесь задействованы — или все-таки есть технические ограничения
                  +1
                  Насколько я понимаю устремления MS, скорее всего, дело обстояло так — разрабы пришли к маркетам и сказали, мол делать нет35 под винтукэй — это себе дороже, мол API слабенькое и все такое. Те, помараковав, выдали — ОК.
                  И это нормально и понимабельно.
                  +1
                  На самом деле .net 3.5 (и даже 3.5 SP1, который дефакто «3.6») внутри использует тот же рантайм, что и .net 2.0. Так что технических трудностей по запуску на Win2K нет, только маркетинговый ход, состоящий в том, что при установке, в частности, библиотеки WPF от .net 3.5 она требует API оформления, которое доступно только начиная c XP, а без этой библиотеки .net 3.5 фреймворк не поставляется. Попробуйте поставить 3.0, а не 3.5, если Paraffin не требует W*F.

                  LINQ здесь не при чем, он компилится в IL под fw 2.0.
                    0
                    Последнее что получилось поставить на Win2k — это 2.0 — 3.0 тоже не ставилась (так что маркетинговая причина начала работать уже давно)

                    Парафин — command-line тулза — я думаю что никакие W*F ей не нужны :) и человек просто скомпилировал под тот фреймфорк что у него был на тот момент

                  Only users with full accounts can post comments. Log in, please.