Конференция ".Net" » Компиляция
 
  • MeF Dei Corvi © (13.09.05 15:38) [0]
    Имеются ли утилиты для компиляции MSIL кода в машинный код?
    Например, если потребуется сделать программу на C#, которую можно запускать и без наличия .net framework. Или это невозможно?
  • Priest © (13.09.05 16:30) [1]
    Поищи в нете....Уйму таких вопросов. Только нормальных инструментов нет.....
  • Lamer@fools.ua © (13.09.05 17:15) [2]
    >>MeF Dei Corvi ©   (13.09.05 15:38)

    А каков смысл вырывать гланды через задний проход?
  • MeF Dei Corvi © (13.09.05 17:19) [3]

    > А каков смысл вырывать гланды через задний проход?

    Ну иногда приходится...
    > Поищи в нете....Уйму таких вопросов. Только нормальных инструментов
    > нет.....

    Но ведь чисто теоритически такое возможно?
  • Lamer@fools.ua © (13.09.05 17:23) [4]
    >>MeF Dei Corvi ©   (13.09.05 17:19) [3]

    Зачем писать приложение под .NET Framework, чтобы потом "руками" генерировать машинный код по IL-коду? К тому же, откуда вы возьмёте без установленного Framework'а код классов, которые используется практически любым .NET'овским приложением? И это ещё не всё. Есть ещё много моментов.

    Ваш вопрос сродни такому:
    как заставить заработать программу, написанную под Win32, в DOS.
  • MeF Dei Corvi © (13.09.05 18:01) [5]

    > К тому же, откуда вы возьмёте без установленного Framework'а
    > код классов, которые используется практически любым .NET'овским
    > приложением?

    Вопрос в том, как запустить программу без .net-а, а не как скомпилировать без него.
    > Зачем писать приложение под .NET Framework, чтобы потом
    > "руками" генерировать машинный код по IL-коду?

    С# классный язык... А фреймворк есть далеко не у всех.

    Вопрос ставлю следующим образом:
    Возможно ли, чисто теоритически, перевести IL-код+код требуемых сборок и библиотек в машинный код, чтобы приложение могло работать независимо от .net?

    P.S. А вообще всё это глупость, но интересно реально ли?
  • DiamondShark © (13.09.05 18:50) [6]

    > С# классный язык... А фреймворк есть далеко не у всех.

    БОльшая часть его классности обеспечена именно фреймворком.
  • мимо (13.09.05 22:26) [7]

    > DiamondShark ©   (13.09.05 18:50) [6]

    > БОльшая часть его классности обеспечена именно фреймворком.


    Ну уж если человек сказал, что язык хорош, зачем перевирать на то что этот язык фреймворком классный. Тогда и дельфи ничуть не хуже, так, тоже ведь фр-к тот же самый поддерживает? C# гораздо более изящный язык чем Д. Мое мнение, и мнение многих.

    П.С. На чем пишешь? ??На клавиатуре!
  • Джо © (13.09.05 22:30) [8]
    [7] мимо   (13.09.05 22:26)
    >  C# гораздо более изящный язык чем Д. Мое мнение, и мнение
    > многих

    Кому и кобыла невеста :)
  • мимо (13.09.05 22:38) [9]
    Забавно. Только вот кому то и корова невеста, Джо.
  • Джо © (13.09.05 22:41) [10]

    >  [9] мимо   (13.09.05 22:38)

    Забавно. То, что кому-то и Сишарп "изящнее" Делфи.
  • мимо (13.09.05 22:49) [11]
    Ну что ты пристал как (?)лист (?)банный. Ну нету никакого сравнения в удобстве написания, у тебя на паскале половину текста begin занимает, тратишь время на то чтобы править и объявление и реализацию, пишешь i := i + 1, при написании кода объяви его на два метра вверху, хотя переменная тебе нужна только вот здесь.. да что там. Все таки кобыла лучше коровы, я бы свою жену лучше так называл)))
  • Джо © (13.09.05 23:39) [12]

    >  [11] мимо   (13.09.05 22:49)
    > Ну что ты пристал как (?)лист (?)банный. Ну нету никакого
    > сравнения в удобстве написания, у тебя на паскале половину
    > текста begin занимает,

    угу. А какой <cencores> придумал в Сишарпе перед каждой(!) функцией обязательно (!) указывать область видимости?? Когда смотришь на класс, сплошные спецификаторы только в глаза и бросаются. Это разве можно назвать изящным? Нет уж, лучше кобыла...
    Только не нужно Страуструпа обвинять, он к Сишарпу руку не прикладывал, но зачем эту гадость было в него тянуть, непонятно...
    А по поводу begin...end - это ИМХО гораздо лучше и ЧИТАБЕЛЬНЕЙ, чем бесконечные скобки...
    А почему любой метод - это только функция? Где мои любимые процедуры? Верните мне их, пожалуйста, не надо мне этих дурацких void'ов! 8-| И не нужно на C пенять - хуже языка, действительно, не было :))

    :P
  • Джо © (13.09.05 23:40) [13]
    И какого <censored> нельзя было нормально разделить объявление и реализацию в классе - нет, нужно все в кучу свалить было :-() Пока класс просмотришь, глаза сломаешь :(
    :P
  • мимо (14.09.05 01:00) [14]
    Не надо глазами по коду бегать чтобы посмотреть класс - для этого и есть Code Explorer или Structure, и прочие аналоги. Там все прекрасно видно. То есть на настоящий момент возможность разобраться в коде, особенно чужом, решается инструментальными средствами на уровне IDE или посторонних средств (а для FW есть прекрасные утилиты), без этого никак.

    Про Си и Сипп никто ничего не говорит, у них общего меньше чем у Delphi Object Pascal и Pascal as is.

    Область видимости - это кто такое говорит что обязательно - пожалуйста, не указывай, метод будет приватным. Зато при конкретном указании ясно видно по месту, в какой области видимости живет данный идентификатор.

    А кто сказал что функция void не процедура? Вернуть из нее ничего не удается. Да и какая разница? Можно ведь и в дельфи использовать аналогичный WinAPI подход, возвращая код ошибки например.

    Вот, например еще this и Self. В бейсике мне лично не нравится слово Me. Блеяние какое-то)) Так вот, например, if Self is TObject - читаем: если сам есть объект. То if (this is object) читаем: если это объект. Как то более по-русски, хотя и на C#.)

    По поводу читабельности - хорошо офомленный код всегда приятно читать, чем плохо оформленный. А примеры того и другого не зависят от языка. Каждая скобка идет на отдельной строке, вот и все что нужно для читабельного кода. Очень быстро привыкаешь. Семантически не вижу разницы между begin и {. Но. Во первых, белого пространства больше. Во вторых, пока он раз-два-три-четыре... вы уже раз-два-раз-два, бодренько так. Писать меньше. Это приятно. К тому же, разве вы не привыкли уже читать исходники на С - подобных языках? Уже пора привыкнуть, если еще нет.

    Ну а что насчет i := i + 1? или +5? ))) В книге пачеко и тейксейры о 6 дельфи, по-моему, встретилась мне опечатка, (по-моему с.74) что дескать, теперь язык поддерживает do-and-assign. Хе. Промахнулись ребята, нету такого, а жаль, но это мелочь.

    Да в общем, какая разница, речь немного не об этом. Меня всегда как-бы немного удивляли такие споры хали-вары - на чем хочешь на том и пиши, я предпочитаю писать на клавиатуре. Все зависит от платформы, задачи и ограничений (не языка, разумеется, а, так сказать, техусловий).

    Роль фреймворка в развитии С# - ключевая. Язык, можно сказать, создан для фреймворка. Вот и все. Поэтому, как я себе порекомендовал писать для .NET на C#, так и пишу, ибо это есть два продукта, созданных вместе. Так же как если писать для VCL на DOP.

    В общем, не ругайте всех почем зря, а просто пишите на клавиатуре, кто во что горазд.
  • Джо © (14.09.05 01:39) [15]

    >  [14] мимо   (14.09.05 01:00)

    Хе, я всего-лишь на вот это отвечал:

    >  C# гораздо более изящный язык чем Д.

    Ну вот лично для меня - С# имеет неуклюжий, "неизящный" синтаксис и хоть режь меня :) Даже и рядом с OP поставить не могу. Ни по читабельности, ни по удобству самого писания. Ну ты и сам-таки признался, что без посторонних аналитических средств при просмотре кода обойтись сложно :p
    ---

    > а просто пишите на клавиатуре, кто во что горазд.

    тут, разумеется, спорить невозможно, согласен :)
  • Джо © (14.09.05 01:40) [16]
    П.С. Объявление переменных в любом месте кода считаю большим злом. Дурная наследственность С.
  • мимо (14.09.05 04:57) [17]
    Мда, я не пытался описать когда следует пользоваться CodeExplorer и и же с ним. В своих проетах пользуюся довольно таки редко. В больших классах и в чужих каракулях. Внешние инструментальные средства, которыми пользуюсь предназначены для просмотра кода в библиотеках FW, потому что там точно черт ногу сломит.

    Ну а вот лично для меня - группа языков С имела неуклюжий синтаксис, хотя и не такой уж супер степени, но до тех пор, пока сам не перешел на С#, т.е. пока он был для меня в режиме read-only.

    А. Ладно. Заходить сюда травить душу.
    Я и сам год назад стоял бы на твоей стороне и что-то доказывал.

    П.С. Объявление переменных в любом месте кода считаю большим добром. От этого никто не страдает, как минимум. Разве можно считать признаком хорошей читабельности необходимость держать в голове блок var при просмотре кода?
  • Игорь Шевченко © (14.09.05 11:30) [18]
    Не надо холиворов :)
  • DiamondShark © (14.09.05 11:33) [19]
    Удалено модератором
  • Суслик © (14.09.05 17:39) [20]
    активность форма по NET заметно поднялась, но вот беда - все больше не потрепаловку смахивает.

    Куда хозяин смотрит?
  • MeF Dei Corvi © (14.09.05 18:02) [21]

    > активность форма по NET заметно поднялась, но вот беда -
    >  все больше не потрепаловку смахивает.

    Холивар - хороший способ повышения активности. :)
    Можно холиварить на темы .net vs win32, win vs linux, win vs mac, C# vs VB.NET, php vs asp.net, C# vs Delphi, C# vs C++, winxp vs winvista, asp vs asp.net, FCL vs VCL... и многие другие...
  • аноним (16.09.05 00:29) [22]

    > Джо ©   (14.09.05 01:40) [16]
    >
    > П.С. Объявление переменных в любом месте кода считаю большим
    > злом. Дурная наследственность С.

    А в C нету ничего такого, по крайней мере в ANSI С.
  • alexbou (03.10.05 18:42) [23]
    эх.... do-and-assign и временные переменные..... это все что я теперь хочу еще от дельфи для полного счастия :)... остальные хотелки (типа each или record record end end) уже есть
  • Woolen © (04.10.05 18:24) [24]
    2 MeF Dei Corvi

    > P.S. А вообще всё это глупость, но интересно реально ли?

    Вовсе и не глупость. Есть куча тулзовин, которые делают возможным запуск без .NET Framework. Не помню, как они правильно называются, но однажды вопросом задался таким же как и вы месяца 3 назад. Цены этих вещей рознятся от 100 до 10000 у.е. Поскольку рисковать с дешевыми смысла не усмотрел, а потратить дополнительно 5 - 10 тысяч гринов к проекту не реально. Пришлось ставить .NET Framework как обязательный патч к винде. Все подобные системы основываются на перекомпоновке exe или dll на MSIL, включают туда код из Framework и если есть в системе Framework, к нему не обращаются. Получается большой exe, ну, например 2, 5 или 10 метров. В зависимости от тулзы, подключенных к проекту сборок и еще каких-то критериев.
    Ищи на Гугле. Я находил...
 
Конференция ".Net" » Компиляция
Есть новые Нет новых   [134428   +41][b:0][p:0.001]