metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-07-04 03:49 pm

Рабочее

Удар головой о стенку, обитую войлоком
"Хочу строгой типизации"
Удар головой о стенку, обитую войлоком
"Хочу автоматический вывод типов"
Удар головой о стенку, обитую войлоком
"Хочу метапрограммирование"
переход к началу.

Альтернатива:
для объекта Config регистрируется TypeDescriptionProvider, который создает и возвращает CustomTypeDescriptor, который из ServiceProvider достает XmlConfigProvider, загружает из него список кастомных свойств объекта, для каждого из них генерит ConfigPropertyDescriptor, добавляя к нему CategoryAttribute,DisplayNameAttribute,DescriptionAttribute,иногда TypeConvertorAttribute и ChoiceDescriptionAttribute, указав для них ChoiceConverter, который возвращает StandardValuesCollection, исходя из ChoiceDescriptionAttribute, найденного в TypeDescriptorContext.

Это всего лишь показ объекта в user-friendly виде с локализованными именами пропертей и динамически меняющимся их списком в PropertyGrid.

PS: А тут еще [livejournal.com profile] max_posedon всякую завлекаловку с LVEE про линуксы и железо пишет. Хоть ты точно, на линукс и какой-нибудь трэшак типа руби с питоном пересядь, чтобы этого дотнета с его гирляндами типов никогда не видеть. Или вообще на low-level работу с железом, там уж ТОЧНО НИКОГДА не придется писать что-нить вроде IServiceProviderFactoryOfProviderForServiceProviderFactoryFacade.
wizzard: (Default)

[personal profile] wizzard 2009-07-04 03:05 pm (UTC)(link)
В Nemerle есть нормальный type inference и гораздо больше метапрограммирования.

А еще мне всегда казалось, что System.ComponentModel несколько ущербно задизайнена, как и виндовс формс, для которого, вроде, оно было сделано.

[identity profile] metaclass.livejournal.com 2009-07-04 03:15 pm (UTC)(link)
Да, на немерле надо опять смотреть, в прошлый раз руки не дошли его прикрутить к продакшену.

А вот ComponentModel и Windows.Forms это да, безумие. В рефлекторе на внутренности страшно смотреть.
wizzard: (Default)

[personal profile] wizzard 2009-07-04 03:33 pm (UTC)(link)
у меня немного ухудшилось впечатление о нём после (успешных, в итоге) попыток билда svn head (бинари на сайте древнейшие и глючные), но вообще проект жив и вполне привлекательно выглядит.

[identity profile] dmzlj.livejournal.com 2009-07-04 03:51 pm (UTC)(link)
Вроде немерле не продакшн. т.е. это будет реально рывок в неведомое. Кастомеры оценят.

[identity profile] metaclass.livejournal.com 2009-07-04 03:56 pm (UTC)(link)
Таки да, это меня в общем-то и останавливает.
Но я предполагаю, что это ненамного страшнее реализации самодельных языков, виртуальных машин для микроконтроллеров и использования в продакшене llvm :)

[identity profile] dmzlj.livejournal.com 2009-07-04 04:00 pm (UTC)(link)
Я смотрю кто и как это немерле пилит, и к чему они в результате пришли. Не внушаить. Ващще.

llvm в продакшене это уже от отчаяния, думаю ничего не получится. Дальше или откат процессора, или забивание на расширенную память и трамбовка кода.

[identity profile] metaclass.livejournal.com 2009-07-04 04:16 pm (UTC)(link)
Вот и у меня аналогично. Или забить на все и сидеть набивать индусским способом гуи руками в дизайнере, или придумывать какой-то нечеловеческий кошмар с автогенерацией кода. Остальное вырождается в половинчатые решения с гирляндами классов, интерфейсов, наполовину статической, на половину фиг знает какой типизацией.

[identity profile] dmzlj.livejournal.com 2009-07-04 04:20 pm (UTC)(link)
А может генерация кода это нормально?

[identity profile] alexott.livejournal.com 2009-07-05 02:15 pm (UTC)(link)
F# ?