ФлеймФорумПрограммирование

C# без .NET Framework

Страницы: 1 2 3 Следующая »
#0
18:58, 22 дек 2010

Собственно возможно ли как то скомпилировать C# в нативный код под конкретную платформу?

#1
19:22, 22 дек 2010

Нет. Даже при использовании NGEN требуется наличие CLR.
Если же интересует C#-подобный язык, но с компиляцией в native код, можете попробовать D.

#2
19:23, 22 дек 2010

Duplex
> Собственно возможно ли как то скомпилировать C# в нативный код под конкретную платформу?

Я тебе по секрету скажу, он и так компилируется JIT-компилятором на целевой машине в нативный код.

> C# без .NET Framework

C# без .NET Framework, как женщина без сисек. Глупость, вобщем, не более.

#3
19:47, 22 дек 2010

Facepalm
> Если же интересует C#-подобный язык, но с компиляцией в native код, можете
> попробовать D.
<trollmode Но, в принципе, они оба не нужны.>

#4
20:04, 22 дек 2010

Facepalm
> Если же интересует C#-подобный язык, но с компиляцией в native код, можете
> попробовать D.

Vala, же.... правда костыля с рефлекшенами нету.

#5
20:10, 22 дек 2010

oistalker
> Vala, же.... правда костыля с рефлекшенами нету.

Фуууу, даже в Delphi он уже есть.

#6
20:11, 22 дек 2010

.NightmareZ.
> Фуууу, даже в Delphi он уже есть.

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

#7
20:17, 22 дек 2010

oistalker
> Один хрен не нужен,... а применение их в рабочем коде, - показывает узколобость и бездарность программиста.

Узколобость и бездарность ты показываешь сейчас, утверждая такие вещи.

#8
14:12, 23 дек 2010

Duplex
Даже если бы и была такая фича, то в C# потерял бы некоторые языковые возможности.

#9
18:39, 23 дек 2010

Facepalm
> Если же интересует C#-подобный язык, но с компиляцией в native код, можете
> попробовать D.
Куда больше похож Vala.
.NightmareZ.
> C# без .NET Framework, как женщина без сисек. Глупость, вобщем, не более.
Наоборот, как сиськи без девушки :)
oistalker
> Vala, же.... правда костыля с рефлекшенами нету.
+1, но оно и не нужно.

#10
20:10, 23 дек 2010

то есть если хочется написать консольную утилитку на шарпе которая будет читать один файл, считать, потом выводить в другой, и все равно придется тянуть весь .Net?

#11
21:09, 23 дек 2010

Pushkoff
Ага. Куда ж без него. Как и для простой утилиты на яве придется всю ява-машину тащить.

#12
21:23, 23 дек 2010

фиговый какойто язык :D
вот можно былобы как то чтоб отдельные куски из .NET присабачивал только к exe и тогда можно б было без нее

#13
21:40, 23 дек 2010

Sbtrn. Devil
> <trollmode Но, в принципе, они оба не нужны.>

D плох хотя бы тем, что он никому не нужен. Если бы у него была хорошая поддержка и на него было завязаного много чего - другое дело.

oistalker
>> Фуууу, даже в Delphi он уже есть.
> Один хрен не нужен,... а применение их в рабочем коде, - показывает узколобость и бездарность программиста.

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

Ну, например, я пишу редактор некоторой фигни. Это простое десктопное windows-приложение с главным окном, меню в нём, кнопочками под меню и рабочей областью. Как можно сформировать меню? Ну самый простой формошлёпский вариант - это тупо в IDE его мышекликаньем расставить, а в событии OnClick писать какой-то код (в самом быдлокодерском и формошлёпском варианте - бизнес-логику). И вот если мне вдруг нужно будет что-то поменять (например, перенести пункты меню из одной ветки меню в другую), мне прийдётся долго и усердно в IDE мудохаться с этим и бояться как бы что не поломалось. Если меню большое и разветвлённое, это настоящий ментальный анонизм, ибо жутко не наглядно. Ведь не будешь же спорить, что порою представить в текстовом виде информацию можно гораздо нагляднее, чем в виде кучи менюшек?

Я так и сделал. Описание всех пунктов меню (текст, изображение и т.д.) у меня находится в xml-файле. Но как связать пункт меню с кодом? В случае с рефлекшеном всё элементарно. У меня есть базовый класс, скажем AbstractEvent, имеющий абстрактный метод Do. От этого класса наследуются много-много других классов и этот метод определяют. В xml для каждого пункта меню я пишу имя класса (наследника AbstractEvent), к которому нужно привязаться. И при запуске приложения для каждого класса при помощи рефлекшена находится соответствующий класс, создаётся его экземпляр и на событие OnClick пункта меню привязывается вызов метода Do.

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

StimorolD3DX
> Даже если бы и была такая фича, то в C# потерял бы некоторые языковые возможности.

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

Хотя, с другой стороны, конечно, например, кодогенерацию, как у дотНета не сделаешь. Но во всяком случае, делфи в этом плане более мощное средство, чем С++.

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

Pushkoff
> то есть если хочется написать консольную утилитку на шарпе которая будет читать один файл, считать, потом выводить в другой, и все равно придется тянуть весь .Net?

Тянуть не прийдётся. На всех современных операционных системах от мелкософта (Vista, Server, 7) есть дотНет искаропки.

#14
21:53, 23 дек 2010

Duplex
> фиговый какойто язык :D
> вот можно былобы как то чтоб отдельные куски из .NET присабачивал только к exe и тогда можно б было без нее

Тебя никто не заставляет его использовать. Можешь писать хоть на ассемблере, ибо это же супер язык: можно написать такую программу, которой даже операционная система не будет нужна. Вот оно счастье киберманьяка!

А тем временем мы выпустили бету третьей версии Artisteer'а под винду:  http://www.artisteer.com/?p=news  и есть бета под Mac. На C#.

Страницы: 1 2 3 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.