[ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 15.09.11 13:54
Оценка: 196 (17)
Я тут попробовал описать свои впечатления от WinRT
Честно, даже не знаю куда отправить По логике вещей это надо в COM, или C++. Но что-то мне кажется, что это нужно в первую очередь в .NET, так как по идее, это то, что нас всех ждет в самом ближайшем будущем. Копирую сообщение сюда, чтобы в блог было необязательно ходить Сиплюсплюсник из меня аховый, конечно, если что — поправляйте.

После второго дня конференции сложилось впечатление, что ходить нужно только на сессии про С++. Все остальное лишь показывает, как использовать новые API WinRT, но при этом остается непонятно, как собственно этот WinRT устроен. Я напишу, как понял сам

Итак, WinRT — это COM следующей версии. В общем, это и неудивительно, учитывая что Steven Sinofsky делал и предыдущую версию. Плюс к этому, WinRT использует расширения C++, как стандарта 11, так и собственные. Некоторой частью эти расширения похожи на расширения managed C++, но не нужно их путать. WinRT не использует CLR, и несмотря на то, что синтаксис местами одинаковый (например, Search::QueryOptions^), в WinRT это означает совсем другое. Для начала, чтобы создать библиотеку WinRT, используется ключ компилятора /ZW (чтоб никто не догадался), в то время как для managed C++ нужно использовать ключ /clr.
Как же выглядит код на C++ для WinRT? Примерно так:

using namespace Windows::Storage;

Search::QueryOptions^ options = ref new Search::QueryOptions(Search::CommonFileQuery::DefaultQuery, nullptr);
options->FolderDepth = Search::FolderDepth::Deep;
auto query = KnownFolders::PicturesLibrary->CreateFileQueryWithOptions(options);


Первое, что тут бросается в глаза — это ref new. В документации написано, что таким образом мы получаем smart pointer, который автоматически уменьшает счетчик ссылок, когда объект выходит из области видимости. То есть, это тот же COM. Пока не ясно, предпринято ли что-нибудь для решения проблемы циклических ссылок, и что именно это за указатели (думаю, что std::shared_ptr). Сборщика мусора здесь, как такового, нет.

Ключевое слово auto как раз из нового стандарта С++ 11, это вывод типа, по смыслу аналогичный var в С#. Язык шагнул очень далеко вперед — появились такие вещи, как лямбды (с поддержкой замыканий, но их надо явно описывать) и туплы (видимо чтобы была хоть какая-то замена анонимным типам).

В WinRT есть хитрый маршаллинг, благодаря чему можно в C# итерироваться по вектору из C++ кода WinRT компоненты. Как я понимаю, это достигается тем, что на типы WinRT наложен ряд жестких ограничений. Подробно про это можно посмотреть здесь: http://msdn.microsoft.com/en-us/library/windows/apps/hh454062(v=VS.85).aspx. Если укладываться в рамки ограничений, то можно использовать любые нативные библиотеки для разработки своих компонентов WinRT, и это очень здорово.

Все типы WinRT наследуются от Platform::Object.Мне пока нигде не удалось найти, что этот тип содержит, но логика подсказывает, что он должен выполнять базовую поддержку <b>IInspectable</b> — нового фундаментального интерфейса, который отвечает за получение метаданных типа. На слайдах также было нарисовано, что все типы WinRT реализуют IUnknown (что, в общем-то, неудивительно). Метаданные WinRT типов лежат в некоторой системной директории Windows, и имеют расширение winmd. Эти метаданные можно открывать ildasm'ом, они имеют стандартный дотнетный формат.

На мой взгляд, это пока главное, что нужно понимать про WinRT. Конечно, там еще огромное количество всего — C++-ые свойства, делегаты, события. Специальная работа со строками — в WinRT для этого свой тип, и т.п., все это можно прочитать по ссылке выше (хотя информации пока немного, надеюсь будут обновлять оперативно). Но самое главное уже более-менее понятно. Перед нами новая версия COM.
Eugene Agafonov on the .NET

winrt
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: Аноним  
Дата: 01.10.11 20:56
Оценка: 13 (3) +1 -3 :)))
Здравствуйте, fddima, Вы писали:

А>>Reference counting? Вы меня шутите? И для reference counting'а делать синтаксические расширения?

F> Я в общем-то такого же мнения обо всём, но чем не угодил то ref counting?

Ну, вообще, это сложная и обширная тема, но коротко можно сказать, что, на мой взгляд, tracing garbage collection это более совершенная и эффективная техника (хотя ее эффективность сильно зависит от реализации), чем reference counting, особенно это касается многопроцессорных систем. И в дотнете выбрали tracing collection неспроста.

Хотя, если Микрософт использует эту свою наработку, то все еще не так плохо.

Но, учитывая, что там COM, возникают некоторые сомнения в том, что эффективность этого решения будет достойной и, тем более, сравнимой с эффективностью сборки мусора в дотнете.

Ну и очень не хотелось бы сталкиваться с дурацкой проблемой циклических ссылок. Хорошо, если они там ее решили.

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

С ужасом вспоминаю COM — это, наверное, одна из самых говенных технологий программирования, с которой мне доводилось работать. Это был настоящий ад. По сравнению с ним дотнет и C# — как переход из тени в свет. И тут — на тебе! опять к старым баранам.

Кстати, я сейчас колупаюсь именно с reference counting'ом в C++, изучаю научные работы на эту тему, пытаясь в неравной битве побороть циклические ссылки, улучшить его производительность и подружить с многопоточностью. Скорее всего, ничего достойного не выйдет.
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: Аноним  
Дата: 01.10.11 15:31
Оценка: 5 (2) +4 -1 :)))
Здравствуйте, Gollum, Вы писали:

G>Я тут попробовал описать свои впечатления от WinRT


Я в шоке. Нет слов. Это какое-то чудовищное г..но. Какой же это C++? Зачем они изменили синтаксис? Это не C++ и не дотнет. Какая-то технология-выродок с языком-мутантом.

Главные вопросы, которые у меня возникают: "WTF?" и "нафига?", а также "нафига?!", "нафига?!!" и "нафига?!!!".

Что ж это такое будет-то? Получается какая-то еще одна какая-то непонятная платформа со своим собственным довольно поганым языком (никакой это, конечно же, не C++).

Reference counting? Вы меня шутите? И для reference counting'а делать синтаксические расширения?

COM? В 2011 году? Они там совсем долбанулись?

Я бы понял, если бы они все перевели на дотнет, понял бы если бы они все сделали на C++, но эту хрень я не понимаю совершенно.

У меня нет больше никаких слов, кроме матных. Товарища Синофского надо подвесить за определенную часть тела и больше никогда не подпускать к компьютеру.
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 02.10.11 06:32
Оценка: 1 (1) +3 -3 :)
Здравствуйте, Аноним, Вы писали:

А>Кстати, я сейчас колупаюсь именно с reference counting'ом в C++, изучаю научные работы на эту тему, пытаясь в неравной битве побороть циклические ссылки, улучшить его производительность и подружить с многопоточностью. Скорее всего, ничего достойного не выйдет.


Не можешь — ну не колупайся.

Все там нормально. И все друг с другом дружит. В том числе — reference counting и многопоточность (по моему скромному мнению — второе без первого, это перевод денег времени). Справа от моего имени есть ссылочка на нефиговый по размерам проект, где все это (COM/MT/ref count) согласованно работает вместе без каких либо проблем.

Правда надо дружить с головой понимать с чем имеешь дело

PS. "Научные работы" — это ты наверное речь для детского сада неискушенного слушателя готовил?
PSS. У меня был еще более крупный проект чем провайдер (он был его мааааленькой частью), тоже C++/COM/ref count — но там (в плане сложности самой природы задачи) был полный мрак. Но все работало без AV/утечек/зависаний и прочих нелепых ужосов

----
Да. Я развлекаюсь с .NET потому что скучно.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: IB Австрия http://rsdn.ru
Дата: 25.10.11 13:56
Оценка: +6
Здравствуйте, DorfDepp, Вы писали:

DD>Программирование "под Windows" уже много лет как не интересует широкие массы. Все давно переехали в веб. Я, к примеру, уже много лет игнорирую все их десктопные технологии. Пережиток прошлого.

Это хорошая мантра, продолжай ее повторять ))
Мы уже победили, просто это еще не так заметно...
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 02.11.11 13:57
Оценка: 5 (2) +1 :))
Здравствуйте, IB, Вы писали:

IB>Так вот студия во-первых вся на сквозь WPF, а во-вторых если там что и тормозит, то уж не WPF точно. =)


У меня в студии больше всего тормозит решарпер.
Если нам не помогут, то мы тоже никого не пощадим.
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 02.10.11 15:51
Оценка: +4
Здравствуйте, lazy_walrus, Вы писали:

_>В языках с поддержкой IUnknown на уровне компилятора (напр. Delphi) это делается автоматически.


С интересом послушаю, как Delphi подсчитывает ссылки для произвольного графа COM-объектов с не менее произвольными манипуляциями над ним.
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.10.11 07:12
Оценка: +4
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Здравствуйте, drol, Вы писали:


D>>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>>А теперь покажи мне реализацию стандартного IComparer<T>, которая позволит искать в list по string


D>>Я же намекал — всё также как в стандартном C++. Контракт BinarySearch аналогичен схеме используемой binary_search\equal_range. Поэтому либо передаёте — прямо в BinarySearch — dummy-объект TData, у которого key проставлен в то что надо искать. Либо определяете некоторый выделенный объект TData — можно и null взять, лишь бы не встречался в качестве содержимого списка — и засовываете вместе с ключом для поиска в реализацию IComparer<TData>.


D>>Понятно ? Или без кода не осилите ?


КД>1. Мне не нужен dummy.

Ага, тебе нужен Dictionary

КД>А если TData — хрень с финализатором? Нафига такое счастье?

И много у тебя такого?

КД>Надо просто по-другому думать. Если FW что-то предлагает делать через ... — то это не значит, что именно так нужно поступать.

Это ты предлагаешь делать через это самое место. Для поиска по ключу есть словари.
Re[23]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 13:01
Оценка: +4
Здравствуйте, grosborn, Вы писали:

G>Я же очень конкретно написал:

G>"Как минимум понятие элемент проектирования не соответствует понятию визуальный элемент/примитив, опираясь на это образуется другая структура рабочих объектов"
G>и
G>"Но я не буду здесь писать вам архитектуру, поскольку это надо со специалистом разговаривать"
G>Что непонятного в этих двух предложениях?
Я прошу обозначить концепцию в WPF, к которой относится первое предложение. Что за рабочие объекты? Что за элемент проектирования? Неужто столь взрослый человек не может написать по простому: сделали класс/механизм такой-то, а надо было такой-то?
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: fddima  
Дата: 03.10.11 23:13
Оценка: 6 (1) +2
Здравствуйте, Коваленко Дмитрий, Вы писали:

Поскипал — что-то много вроде для простых вещей, да и поздно.

КД>Нормальные указатели — это в unsafe. Так? Или я что то пропустил?

Да, это в unsafe. Но, незачем его так избегать, ничего в нём плохого нет. Использование IntPtr не менее unsafe, чем unsafe который ключевое слово, если его применять так же как указатели, или с такими наворотами. Более того, использование нормальных указателей — позволяет получить типо-безопасный код, в отличии прыжков с IntPtr.
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: hi_octane Беларусь  
Дата: 03.10.11 18:23
Оценка: +3
КД>Во. Меня еще заколбасило от того, что StringBuilder.Clear появился только в NET4. Это жесть

На StringBuilder наезд совершенно не по делу. До NET4 можно было просто Length в 0 установить, и получить тот же Clear. Или тебе принципиально метод нужен?
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.10.11 18:40
Оценка: :)))
Здравствуйте, hi_octane, Вы писали:

КД>>Во. Меня еще заколбасило от того, что StringBuilder.Clear появился только в NET4. Это жесть


_>На StringBuilder наезд совершенно не по делу. До NET4 можно было просто Length в 0 установить, и получить тот же Clear. Или тебе принципиально метод нужен?


И получается — чтобы код компилировался и там и там, про Clear можно забыть. Нафиг его тогда вообще добавили? Короче, я юзаю установку нуля. А наезд чисто на изначальный интерфейс — Clear должен был быть с самого рождения.

Я вообще сижу под VS2010 и генерирую код под NET4. А 2008 (NET3.5) я юзаю чисто как средство для доп. проверок. Привычка такая — чем нибудь еще откомпилировать и проверить. Вот и обнаруживаются такие вот забавные вещи.

---
Опять же. Заморочка с двумя компиляторами — это мои личные тараканы. На плюсах я в качестве альтернативы юзал BCB5. Но он у меня (окончательно) рехнулся за пару месяцев до релиза
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.10.11 19:21
Оценка: :)))
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>Опппа. А что в .NET можно замутить триггеры на вызовы/завершения методов?

MM>Какую задачу решаем?

"запрещать (или откладывать) вызова Dispose, пока работает один из методов объекта"


То есть запретить другим потокам освобождать объект, пока его юзает другой поток.

Речь идет о дополнительной защите. Понятно, что потоки сами должны предотвращать такое безобразие. Но тем не менее.

Про lock(...){} я знаю. Но по-моему можно обойтись и без этой синхронизации. Такая задача, я думаю, вполне решабельна на уровне ... счетчика ссылок и interlocked-функций
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.10.11 22:07
Оценка: +1 :))
Здравствуйте, Gollum, Вы писали:


G>WinRT ... все это можно прочитать по ссылке выше (хотя информации пока немного, надеюсь будут обновлять оперативно). Но самое главное уже более-менее понятно. Перед нами новая версия COM.


Тут будет очень кстати вспомнить краткую историю программных революций от Microsoft:

История программных революций от Microsoft, вкратце: Сначала были Windows API и DLL Hell. Революцией №1 было DDE – помните, как ссылки позволили нам создавать статусные строки, отражающие текущую цену акций Microsoft? Примерно тогда же Microsoft создала ресурс VERSION INFO, исключающий DLL Hell. Но другая группа в Microsoft нашла в DDE фатальный недостаток – его писали не они!

Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом. В OLE появились интерфейсы, исключающие DLL Hell. Помните болезнь с названием «по месту», при которой мы мечтали встроить все свои приложения в один (возможно, очень большой) документ Word? Где-то в то же время Microsoft уверовала в религию С++, возникла MFC решившая все наши проблемы еще раз.

Но OLE не собиралась, сложа руки смотреть на это, поэтому оно заново родилось под именем COM, и мы внезапно поняли, что OLE (или это было DDE?) будет всегда – и даже включает тщательно разработанную систему версий компонентов, исключающую DLL Hell. В это время группа отступников внутри Microsoft обнаружила в MFC фатальный недостаток – его писали не они! Они немедленно исправили этот недочет, создав ATL, который как MFC, но другой, и попытались спрятать все замечательные вещи, которым так упорно старалась обучить нас группа COM. Это заставило группу COM (или это было OLE?) переименоваться в ActiveX и выпустить около тонны новых интерфейсов (включая интерфейсы контроля версий, исключающие DLL Hell), а заодно возможность сделать весь код загружаемым через броузеры, прямо вместе с определяемыми пользователем вирусами (назло этим гадам из ATL!).

Группа операционных систем громким криком, как забытый средний ребенок, потребовала внимания, сказав, что нам следует готовиться к Cairo, некой таинственной хреновине, которую никогда не могли даже толком описать, не то, что выпустить. К их чести, следует сказать, что они не представляли концепции «System File Protection», исключающей DLL Hell. Но тут некая группа в Microsoft нашла фатальный недостаток в Java — её писали не они! Это было исправлено созданием то ли J, то ли Jole, а может, и ActiveJ (если честно, я просто не помню), точно такого же как Java, но другого. Это было круто, но Sun засудило Microsoft по какому-то дряхлому закону. Это была явная попытка задушить право Microsoft выпускать такие же продукты, как у других, но другие.

Помните менеджера по J/Jole/ActiveJ, стучащего по столу туфлей и говорящего, что Microsoft никогда не бросит этот продукт? Глупец! Все это означало только одно – недостаток внимания к группе ActiveX (или это был COM?). Эта невероятно жизнерадостная толпа вернулась с COM+ и MTS наперевес (может, это стоило назвать ActiveX+?). Непонятно почему к MTS не приставили «COM» или «Active» или «X» или «+» – они меня просто потрясли этим! Они также грозились добавить + ко всем модным тогда выражениям. Примерно тогда же кое-кто начал вопить про «Windows DNA» (почему не DINA) и «Windows Washboard», и вопил некоторое время, но все это почило раньше, чем все поняли, что это было.

К этому моменту Microsoft уже несколько лет с нарастающей тревогой наблюдала за интернет. Недавно они пришли к пониманию, что у Интернет есть фатальный недостаток: ну, вы поняли. И это приводит нас к текущему моменту и технологии .NET (произносится как «doughnut (пончик по-нашему)», но по-другому), похожей на Интернет, но с большим количеством пресс-релизов. Главное, что нужно очень четко понимать — .NET исключает DLL Hell.

В .NET входит новый язык, C#, (выясняется, что в Active++ Jspresso был фатальный недостаток, от которого он и помер). .NET включает виртуальную машину, которую будут использовать все языки (видимо, из-за фатальных недостатков в процессорах Интел). .NET включает единую систему защиты (есть все-таки фатальный недостаток в хранении паролей не на серверах Microsoft). Реально проще перечислить вещи, которых .NET не включает. .NET наверняка революционно изменит Windows-программирование... примерно на год.


Ну, что же, группа операционных систем (или это была группа COM?) громким криком, как забытый средний ребенок, потребовала внимания, сказав, что нам следует готовиться к WinRT! Они в очередной раз нашли фатальный недостаток, на этот раз, в .NET и COM сразу. Ну, вы знаете какой!

ЗЫ

Всем запастись попкорном и ждать новых серий из цикла "краткие истории программных революций от Microsoft". Ведь WinRT наверняка революционно изменит Windows-программирование... примерно на год



26.10.11 07:58: Перенесено из '.NET'
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: DorfDepp  
Дата: 25.10.11 13:55
Оценка: :)))
Здравствуйте, Аноним, Вы писали:

А>С ужасом вспоминаю COM — это, наверное, одна из самых говенных технологий программирования, с которой мне доводилось работать. Это был настоящий ад. По сравнению с ним дотнет и C# — как переход из тени в свет.


Согласен. технология была ужасная. Технология ради технологии, но пользоваться ею было невозможно.

Программирование "под Windows" уже много лет как не интересует широкие массы. Все давно переехали в веб. Я, к примеру, уже много лет игнорирую все их десктопные технологии. Пережиток прошлого.
Re[23]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 01.11.11 16:00
Оценка: +3
Здравствуйте, hardcase, Вы писали:

H>Спасибо, я не фанат программирования мышкой (на самом деле я просто не ослил бленду), мне буквы набивать с борды быстрее.


Напрасно. Бленда умеет много полезного и без постоянного возения мышкой. Я её использую в режиме split, редактирую xaml и весьма доволен.
Если нам не помогут, то мы тоже никого не пощадим.
Re[17]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 09:20
Оценка: 10 (1) +1
Здравствуйте, gandjustas, Вы писали:

G>А вот у меня наоборот: Paint.net, Live Writer, Catalyst Control Panel, Visual Studio, Expression Blend. Остальное — офис, аська, скайп, все сильно старше 5 лет.


Кстати, после того как эти умники из AMD переписали Каталиклизус на WPF им стало решительно неудобно пользоваться, особенно на мониторах с большим разрешением.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 20:39
Оценка: 10 (1) +1
Здравствуйте, IB, Вы писали:

G>>Кстати, вот для повышения образованности — назови хотя бы еще пару wpf приложений которыми ты пользуешься?

IB>Студия, твиттер клиент, Zune, LinqPAD и все что установлено на моем телефоне — там приложений больше десятка. И, что характерно, не смотря на наличие GC, WPF-а и дохлого телефонного процессора работает это все шустрее чем в яблофоне, не говоря уже об андроиде. ))

Только у тебя на телефоне не WPF, а Silverlight (что вообще-то великая разница), штатные контролы которого чуть менее чем все — нативный код.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 26.10.11 03:59
Оценка: 1 (1) :)
Здравствуйте, VladD2, Вы писали:

VD>.NET наверняка революционно изменит Windows-программирование... примерно на год.


А ведь прошло уже почти 10.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 02.10.11 09:36
Оценка: +1 -1
Здравствуйте, MxMsk, Вы писали:

КД>>Скажу про то, что знаю — что бы заставить согласованно и без проблем работать (драйвер базы данных) требуется колоссальные усилия и затраты. Которые хрена лысого сократятся если задействовать супер-пупер технологии/ЯП.

MM>Непонятно, почему мы все должны возиться с подсчетом ссылок лишь потому, что это устраивает драйвер Interbase

1. при нормальном подходе с ними никто не возится. как не возятся с голыми указателями на память, к примеру.
2. это всего лишь (реальный) пример того, где все эти "страшные" вещи без проблем работают.
3. да никто никого не заставляет. Чего нервничать то?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 02.10.11 11:58
Оценка: -2
Здравствуйте, Аноним, Вы писали:

А>Главные вопросы, которые у меня возникают: "WTF?" и "нафига?", а также "нафига?!", "нафига?!!" и "нафига?!!!".


Да прекрасно понятно. Планете давно нужен нормальный язык\платформа для натива. И если комитет забивает болт, то в игру приходится вступать Microsoft'у.

А>Что ж это такое будет-то? Получается какая-то еще одна какая-то непонятная платформа со своим собственным довольно поганым языком (никакой это, конечно же, не C++).


Конечно же это C++. В него просто добавлен нормальный синтаксис\система типов — вместо всяких макросно-шаблонных извращений предыдущей эпохи — для поддержки компонентных систем. Причём с практически полным сохранением совместимости с C++\CLI по "буковкам".

А>Я бы понял, если бы они все перевели на дотнет, понял бы если бы они все сделали на C++, но эту хрень я не понимаю совершенно.


Наоборот, нормально всё. "Чистый" C++ это очевидный капец и путь в никуда. Сделан же очередной шаг в правильном направлении, просто он сделан с другой\непривычной стороны — со стороны натива.
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 02.10.11 20:08
Оценка: +2
Здравствуйте, lazy_walrus, Вы писали:

D>>Может быть они и нормальные, только вот в COM о них надо постоянно думать...

_>Постоянно думать о подсчёте ссылок надо в C++. В языках с поддержкой IUnknown на уровне компилятора (напр. Delphi) это делается автоматически.
Проблемы не в том, чтобы автоматизировать вызовы AddRef и Release. Проблема в том, как быть уверенным, что всё это согласуется с внешним кодом, который не ты пишешь и не ты поддерживаешь.
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 02.10.11 22:56
Оценка: -1 :)
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, gandjustas, Вы писали:


G>>Если внешний код корректно делает addref и release, то какая тебе разница? А если неорректно, то опять нет разницы несколько корректно это делаешь ты или компилятор за тебя.

MM>Правильно. Поэтому нафиг reference counting. Другого я и не говорил.
Как раз наоборот, нужно делать свое дело (addref и release) и не париться как делают подсчет ссылок компоненты.
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 03.10.11 21:19
Оценка: :))
Здравствуйте, Аноним, Вы писали:

А>Это не C++, потому что он не соответствует стандартам ни 2003, ни 2011 года и не компилируется другими компиляторами, кроме микрософтовского.


Вы так говорите, как-будто в предыдущих версиях реализации C++ от Microsoft не было никаких их "личных" языковых расширений. Тогда как килотонны... нет, килотонны это мало... мегатонны существующего кода оные во всю используют, и ничем кроме MSVC никогда не скомпилируются.

А>Да, и "макросно-шаблонные извращения" в новом стандарте уже являются частью стандартной библиотеки.


Да ну ? С интересом послушаю, как Вы на этих "частях" будете делать поддержку системы типов WinRT.

А>1) у меня есть большая кодовая база на C++ и винапи, WinRT не нужен (не переписывать же все?);


Зачем переписывать ??? Там прямой interop аналогичный схеме C++\CLI. Новые внешние интерфейсы делаете на WinRT, а в потрохах всё тот же старый добрый legacy C++.

А>2) я собираюсь начать новое приложение, выберу, естественно, дотнет (WPF, WinForms),


А если платформа это Windows Phone ? И приложение это какой-нибудь навороченный ГИС-клиент ? Для которого опять-таки куча C++ кода уже есть ? Тоже .NET выберете ?
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 04.10.11 19:09
Оценка: +1 :)
Здравствуйте, MxMsk, Вы писали:

MM>Лучше бы они вместо отвержения, продавили оптимизацию .Net.


Вместо не получится. Это не то что разные команды, это разные подразделения. А поскольку первые деньги напрямую зарабатывают, а вторые — нет, то и получаем что имеем.
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 04.10.11 19:14
Оценка: :))
Здравствуйте, AngeL B., Вы писали:

AB>И вопрос тут не в том, что ребята решили создать новый COM. Может он и нужен для низкоуровневых работ, а именно в том, что они решили продлить агонию С++ превратив его из кошмарного франкенштейна (чего стоит синтаксис лямбд) с замусоренным синтаксисом в нечто совсем уж убожеское. Надо было создавать новый язык. Пусть низкоуровневый, но новый.


Ну а чего ты от Синовского хотел? Да, у него классно получается разведенный в разработке бардак устранить и начать выпускать продукты качественно и в срок. Но вот технически, в плане новых идей, даже просто их оценки — он импотент. Нет у него инженерной чуйки.
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 10:12
Оценка: +2
Здравствуйте, aloch, Вы писали:

A>Надеюсь, что ты сам то понимаешь, что этот текст изначально писал идиот (или человек, им притовряющийся)?


Ты про историю революций то? Его писал очень не глупый челове — Рон Барг (на то время главный редактор Windosw Develeoper Jornal, в последствии Windows Magazine).
То что ты не понимаешь иронии этого текста, и то что, возможно, он вызывает у тебя батхерт — это твои личные проблемы.

Для тех кто не умеет воспринимать аллегории и сарказм, поясню прямым текстом. Он тонко ухватил суть многих проблем МС. МС это не огромная единая корпорация с единым планом развития, единым руководством определяющим это развитие, и единым и сплоченным коллективом разработчиков и менеджеров. МС это множество разных команд (можно сказать кланов). И то одна, то другая, временно, перетягивает на себя одеяло. Отсюда и кажущиеся странности.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 24.10.11 10:43
Оценка: +1 -1
> Для тех кто не умеет воспринимать аллегории и сарказм, поясню прямым текстом. Он тонко ухватил суть многих проблем МС. МС это не огромная единая корпорация с единым планом развития, единым руководством определяющим это развитие, и единым и сплоченным коллективом разработчиков и менеджеров. МС это множество разных команд (можно сказать кланов). И то одна, то другая, временно, перетягивает на себя одеяло. Отсюда и кажущиеся странности.

Я бы не назвал это проблемой. Наоборот, это достаточно правильный подход. Имхо в большой копорации монолита и не может быть, а жесткая иерархическая структура из за несогласованности частей обязательно превращается в полный идиотизм. Поэтому рабочие группы, соревнующиеся за финансирование. Тут все верно, проблема у них в другом месте.
А мы смеемся над результатом.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: aloch Россия  
Дата: 25.10.11 04:14
Оценка: -1 :)
Здравствуйте, VladD2, Вы писали:

VD>Мне не надо. У меня батхерта нет.


Есть, есть Не обманывай себя. Быть Гуру .Net, даже написать крутой .Net-язык, в свое время утверждать, что MS в Viste сделает Managed Internet Explorer. И тут такой облом — WinRT


Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 26.10.11 03:46
Оценка: +2
Здравствуйте, VladD2, Вы писали:

VD>Что до языка, то мы тут как раз подумываем о сваливании с дотнета. Точнее о мультиплатформности. Так шта...

С этого места можно подробнее?
Sapienti sat!
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 31.10.11 08:46
Оценка: -1 :)
Здравствуйте, Gollum, Вы писали:

НС>>СОМ был тем еще отстоем, и только массовое его использование самим МС не дало ему склеить оапки.


G>Я не согласен.


А это не вопрос твоего согласия.

G> Но даже если и так, какая компонентная система была лучше?


Java.

НС>>Рано об этом пока говорить.


G>Почему рано


Потому что все может 100 раз поменяться, да и для нормальной оценки надо плотно повозиться с технологией хотя бы месяц-другой. Тот же WPF, про который ты поминаешь — очень красиво смотрелся на пререлизах. А к релизу море неприятностей вылезло. Или WCF — прекрасная, без преувеличения, технология. Однако порог вхождения, как показала практика, очень высок.
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 31.10.11 13:57
Оценка: :))
Здравствуйте, Gollum, Вы писали:

G>Тогда почему не появилось большое количество десктопных приложений на WPF? На аспнете появилось, но ни winforms ни wpf не взлетели. На мой субъективный взгляд оно медленно работает.


Это очевидно. Ты же сам пишешь на ASP.NET, вот вокруг тебя и появляются только приложения на ASP.NET.
Если нам не помогут, то мы тоже никого не пощадим.
Re[22]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 12:31
Оценка: +2
Здравствуйте, MxMsk, Вы писали:

MM>Лямбды в конвертерах имеют и обратную сторону: код размазывается между декларативной и императивной частью.


Не знаю что ты понимаешь под императивом, но у меня хватает конвертеров, использующихся один раз и содержащих 1-2 строки вида
  simpleCondition(value) ? Visibility.Collapsed : Visibility.Visible;

либо
  ((FooType)value).PrettyPrint()

и т.п.

Нафига в этом случае 1) объявлять класс, 2) декларировать его в ресурсах, 3) ссылаться из байндинга.

PS Имею дело с Сервелатом.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[22]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 12:50
Оценка: -2
Ох, детские наезды начинаются.
Я же очень конкретно написал:

"Как минимум понятие элемент проектирования не соответствует понятию визуальный элемент/примитив, опираясь на это образуется другая структура рабочих объектов"
и
"Но я не буду здесь писать вам архитектуру, поскольку это надо со специалистом разговаривать"

Что непонятного в этих двух предложениях?
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[21]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 01.11.11 15:30
Оценка: -1 :)
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, MxMsk, Вы писали:


MM>>Здравствуйте, hardcase, Вы писали:


H>>>XML для "языка создания объектов" (чем по сути и является XAML) — это фейл, впрочим чистого XML-я им нехватило — прикрутили {Binding ...} (да-да, закон дырявых абстракций в силе). Почему же они не сделали отдельный язык для этого (апеллирую к JSON и прочим YAML)?

MM>>Ой. Да никакой разницы. Ну двоеточие вместо равно, ну фигурные скобки, вместо вложенного тега. Не принципиально. И в чем кроется роль Binding-а, как решателя недостатков XAML?

H>XML многословен и неудобен для ручного написания. Сравни с конструкцией инициализации в C# (в Nemerle этой конструкцией можно вообще целые формы изготавливать). Без "расширений", лишь средствами XML, этот Binding выглядел бы предельно хреново.

XML не для того чтобы его руками писать. Запускай expression blend и делай в нем что захочешь
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.10.11 19:24
Оценка: 11 (1)
Здравствуйте, grosborn, Вы писали:

G>За свое выдать не удастся, ставь копирайты или ссылку на оригинал


Классику знать надо. Ни то, скоро, придется копирайт к сказкам Пушкина приделывать.

В гугле тебя не забанили пока?

ЗЫ

Что до авторства, то если что, я автор перевода.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 01.11.11 09:00
Оценка: 10 (1)
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, gandjustas, Вы писали:


G>>>Тогда почему не появилось большое количество десктопных приложений на WPF?

G>>А сколько вообще новых приложенй для десктопа появилось за последние 10 лет?

G>Да, их не много. Но среди тех, что использую я managed нет.


А вот у меня наоборот: Paint.net, Live Writer, Catalyst Control Panel, Visual Studio, Expression Blend. Остальное — офис, аська, скайп, все сильно старше 5 лет.
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 09:29
Оценка: 1 (1)
> Можно пример того, что очень плохо сделано в WPF? Из того, чем я пользовался — однозначно лучший UI Framework (для программиста).

Монструозный код, который если бы переписал хороший программист, сократился бы раза в два минимум даже без изменения подходов. Неправильные подходы, понятия, ненужные сущности, которые ни разу не упрощают разработку. Там где интерфейс может перерисовываться за 10-20 миллисекунд, он перерисовывается в режиме слайд-шоу. Приложение с одной кнопкой на рядовой машине может запускаться 15 секунд. и тд. Зачем об этом спрашивать?
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[21]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 04.11.11 15:18
Оценка: 1 (1)
Здравствуйте, IB, Вы писали:

IB>Там где новые приложения есть — телефон, там WPF 100% =)

Там не WPF, а недосервелат, причем сами контролы вынесены в нативную часть. Так же как в Win8, только без промежуточного слоя в виде WinRT.

IB>Очень в тему — там .Net, GC и WPF и не тормозит. )

Если ты напишешь .NET программу, испольующую WinRT, будет то же самое — GC, .NET и быстро. Собственно WP7 и был первым шагом в этом направлении.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 02.10.11 08:14
Оценка: :)
Здравствуйте, MxMsk, Вы писали:

КД>>Не можешь — ну не колупайся.

КД>>Все там нормально. И все друг с другом дружит. В том числе — reference counting и многопоточность (по моему скромному мнению — второе без первого, это перевод денег времени). Справа от моего имени есть ссылочка на нефиговый по размерам проект, где все это (COM/MT/ref count) согласованно работает вместе без каких либо проблем.
MM>Вопрос в том, сколько потребовалось времени, чтобы оно начало согласовано и без проблем работать.

Скажу про то, что знаю — что бы заставить согласованно и без проблем работать (драйвер базы данных) требуется колоссальные усилия и затраты. Которые хрена лысого сократятся если задействовать супер-пупер технологии/ЯП.

Впрочем, если бы не компилятор C++ из VS2005 — проект бы помер

И оно везде так. Было и будет.

Чтобы они там не родили — этим можно будет пользоваться через 10 лет, когда у них все устаканится. К этому моменту, они (как обычно) объявят это устаревшим и начнут все сначала
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: lazy_walrus  
Дата: 02.10.11 15:17
Оценка: +1
Здравствуйте, drol, Вы писали:

КД>>2. правильные принципы владения объектами. У COM они нормальные.


D>Может быть они и нормальные, только вот в COM о них надо постоянно думать...


Постоянно думать о подсчёте ссылок надо в C++. В языках с поддержкой IUnknown на уровне компилятора (напр. Delphi) это делается автоматически.
Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 02.10.11 20:01
Оценка: +1
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>>>1. при нормальном подходе с ними никто не возится. как не возятся с голыми указателями на память, к примеру.

MM>>Нормальный подход — это какой?
КД>1. смарт-указатели. с правильной реализацией. или это уже не актуально?
КД>2. правильные принципы владения объектами. У COM они нормальные.
Правильное на правильном. Вот это и называется возиться. Всегда нужно применять только правильное и только с правильной реализацией. А мне нравится просто создавать объекты, без оберток, борющихся с языком.

КД>>>2. это всего лишь (реальный) пример того, где все эти "страшные" вещи без проблем работают.

MM>>Ну, в этом мире вообще много чего работает. Хочется, чтобы платформы двигались вперед, а не назад.
КД>Можно оглянуться и достичь нужного эффекта
КД>По-любому, назад движения нет. Достаточно сравнить уровни компиляторов C++ 199x (VC5/VC6/BCB3), 2000 (BCB5), 2003 (VC7 — не вставил), 2005 (VC8 — это был нереальный прорыв), 2008 (VC9), 2010 (VC10). Начиная с VC8 — можно писать на плюсах и получать от этого удовольствие. Это три версии компилятора — VC8/VC9/VC10.
Я не понял причем здесь компилятор. Мы вроде ведем речь, что есть концепции более удобные, гибкие и надежные, чем reference counting.
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 02.10.11 22:47
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>Если внешний код корректно делает addref и release, то какая тебе разница? А если неорректно, то опять нет разницы несколько корректно это делаешь ты или компилятор за тебя.

Правильно. Поэтому нафиг reference counting. Другого я и не говорил.
Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.10.11 16:03
Оценка: :)
Здравствуйте, fddima, Вы писали:

F>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>И это видно по допиливанию такой тривиальной вещи как IntPtr. Сложно было сразу его сделать полноценную реализацию что ли?

F> А что с текущей не так? Да и вообще в C# есть нормальные указатели.

Сложения IntPtr с целыми числами. По-моему оно отсутствует как класс. Какой-то зародыш появился в NET4.
При том при всем, что они юзают IntPtr для указания адреса памяти. Ну так сразу и добавили бы к нему все, что нужно для счастья.

Нет возможности определить верхнее/нижнее значения IntPtr (иногда нужно для контроля переполнения)

Вообщем, я плюнул, и накатал свои алгоритмы для IntPtr. Текущий вариант (без претензий на идеал) выглядит так:
  Скрытый текст
////////////////////////////////////////////////////////////////////////////////
using IntPtr_NumType         =System.Int64;
using IntPtr_UnsignedNumType =System.UInt64;
////////////////////////////////////////////////////////////////////////////////
//class intptr_utils

public static class intptr_utils
{
 private const ste_err_src_id c_src_id=ste_err_src_id.intptr_utils;

 //-----------------------------------------------------------------------
 public static readonly IntPtr_NumType Zero
  =0;

 public static readonly IntPtr_NumType MaxValue
  =t_intptr_utils__data.GetProvider().MaxValue;

 public static readonly IntPtr_NumType MinValue
  =t_intptr_utils__data.GetProvider().MinValue;

 //-----------------------------------------------------------------------
 public static IntPtr_NumType ToNumeric(IntPtr x)
 {
  return x.ToInt64();
 }//ToNumeric

 //-----------------------------------------------------------------------
 public static IntPtr ToIntPtr(IntPtr_NumType x)
 {
  if(!(MinValue<=x && x<=MaxValue))
   throw_sys_error.arithmetic_overflow(c_src_id,"ToIntPtr__NumType",x);

  return (IntPtr)x;
 }//ToIntPtr

 //IntPtr+UInt32 ---------------------------------------------------------
 public static IntPtr Add(IntPtr a,UInt32 b)
 {
  Debug.Assert(MinValue<0);
  Debug.Assert(MaxValue>0);

  var a1=ToNumeric(a);
  var b1=b;

  while(b1>MaxValue)
  {
   if(a1>0)
    throw_sys_error.arithmetic_overflow(c_src_id,"Add__IntPtr_UInt32",a,b);

   a1+=MaxValue;
   b1-=(UInt32)MaxValue;
  }//while b1>MaxValue

  Debug.Assert(b1>=0);
  Debug.Assert(b1<=MaxValue);

  Debug.Assert(a1>=MinValue);
  Debug.Assert(a1<=MaxValue);

  if(a1>=0)
  {
   if((MaxValue-a1)<b1)
    throw_sys_error.arithmetic_overflow(c_src_id,"Add__IntPtr_UInt32",a,b);
  }//a1>=0

  return (IntPtr)(a1+((IntPtr_NumType)b1));
 }//Add - IntPtr+UInt32

 //-----------------------------------------------------------------------
 public static IntPtr Add(UInt32 a,IntPtr b)
 {
  return Add(b,a);
 }//Add - UInt32+IntPtr

 //IntPtr+UInt64 ---------------------------------------------------------
 public static IntPtr Add(IntPtr a,UInt64 b)
 {
  Debug.Assert(MinValue<0);
  Debug.Assert(MaxValue>0);

  var a1=ToNumeric(a);
  var b1=b;

  while(b1>((IntPtr_UnsignedNumType)MaxValue))
  {
   if(a1>0)
    throw_sys_error.arithmetic_overflow(c_src_id,"Add__IntPtr_UInt64",a,b);

   a1+=MaxValue;
   b1-=(IntPtr_UnsignedNumType)MaxValue;
  }//while b1>MaxValue

  Debug.Assert(b1>=0);
  Debug.Assert(b1<=((IntPtr_UnsignedNumType)MaxValue));

  Debug.Assert(a1>=MinValue);
  Debug.Assert(a1<=MaxValue);

  if(a1>=0)
  {
   if(((IntPtr_UnsignedNumType)(MaxValue-a1))<b1)
    throw_sys_error.arithmetic_overflow(c_src_id,"Add__IntPtr_UInt64",a,b);
  }//a1>=0

  return (IntPtr)(a1+((IntPtr_NumType)b1));
 }//Add - IntPtr+UInt64

 //-----------------------------------------------------------------------
 public static IntPtr Add(UInt64 a,IntPtr b)
 {
  return Add(b,a);
 }//Add - UInt64+IntPtr
 
 //IntPtr+Int32 ----------------------------------------------------------
 public static IntPtr Add(IntPtr a,Int32 b)
 {
  Debug.Assert(MinValue<0);
  Debug.Assert(MaxValue>0);

  if(b>=0)
   return Add(a,(UInt32)b);

  return Sub(a,remove_numeric_sign.exec(b));
 }//Add - IntPtr+Int32

 //-----------------------------------------------------------------------
 public static IntPtr Add(Int32 a,IntPtr b)
 {
  return Add(b,a);
 }//Add - Int32+IntPtr

 //IntPtr+UIntPtr --------------------------------------------------------
 public static IntPtr Add(IntPtr a,UIntPtr b)
 {
  Debug.Assert(MinValue<0);
  Debug.Assert(MaxValue>0);

  var a1=ToNumeric(a);
  var b1=uintptr_utils.ToNumeric(b);

  while(b1>((IntPtr_UnsignedNumType)MaxValue))
  {
   if(a1>0)
    throw_sys_error.arithmetic_overflow(c_src_id,"Add__IntPtr_UIntPtr",a,b);

   a1+=MaxValue;
   b1-=(IntPtr_UnsignedNumType)MaxValue;
  }//while b1>MaxValue

  Debug.Assert(b1>=0);
  Debug.Assert(b1<=((IntPtr_UnsignedNumType)MaxValue));

  Debug.Assert(a1>=MinValue);
  Debug.Assert(a1<=MaxValue);

  if(a1>=0)
  {
   if(((IntPtr_UnsignedNumType)(MaxValue-a1))<b1)
    throw_sys_error.arithmetic_overflow(c_src_id,"Add__IntPtr_UIntPtr",a,b);
  }//a1>=0

  return (IntPtr)(a1+((IntPtr_NumType)b1));
 }//Add - IntPtr+UIntPtr

 //-----------------------------------------------------------------------
 public static IntPtr Add(UIntPtr a,IntPtr b)
 {
  return Add(b,a);
 }//Add - UIntPtr, IntPtr

 //-----------------------------------------------------------------------
 public static IntPtr Sub(IntPtr a,UInt32 b)
 {
  Debug.Assert(MinValue<0);
  Debug.Assert(MaxValue>0);
  Debug.Assert(MaxValue==-(MinValue+1));

  var a1=ToNumeric(a);
  var b1=b;

  if(a1>=0)
  {
   if(a1>=b1)
    return (IntPtr)(a1-((IntPtr_NumType)b1));

   b1-=(UInt32)a1;
   a1=0;
  }//if a1>0

  Debug.Assert(a1<=0);

  while(b1>MaxValue)
  {
   Debug.Assert(a1>=MinValue);
   Debug.Assert(a1<=MaxValue);

   if(a1<0)
    throw_sys_error.arithmetic_overflow(c_src_id,"Sub__IntPtr_UInt32",a,b);

   a1-=MaxValue;
   b1-=(UInt32)MaxValue;
  }//while b>MaxValue

  Debug.Assert(a1<=0);
  Debug.Assert(a1>=MinValue);
  Debug.Assert(b1<=MaxValue);

  if(a1<0)
  {
   if((a1-MinValue)<b1)
    throw_sys_error.arithmetic_overflow(c_src_id,"Sub__IntPtr_UInt32",a,b);
  }//if a1<0

  return (IntPtr)(a1-((IntPtr_NumType)b1));
 }//Sub - IntPtr, UInt32

 //private data ----------------------------------------------------------
 private static readonly t_intptr_utils__provider
  sm_Impl=t_intptr_utils__data.GetProvider();
}//class intptr_utils

Нечто аналогичное сделано и для UIntPtr.

Нормальные указатели — это в unsafe. Так? Или я что то пропустил?

Еще этот Marshal, который не понимает беззнаковые числа. Ну сложно было что ли сразу замутить? Чтобы любой, кто пришел с плюсов, почувствовал себя как дома. Нет — нехай помучается. Очередная надстройка c unsafe методами. Там как раз нормальные указатели юзаются

Сегодня разбирался с сериализацией. Опять какая-та лажа. Нафига мне нужно указывать (километровые) типы — выводите из значений параметров! C# же позволяет. Опять свой код.
  Скрытый текст
public static class serialization_utils
{
 public static void read_value<T>(SerializationInfo si,string name,out T value)
 {
  Debug.Assert(si!=null);
  Debug.Assert(name!=null);
  Debug.Assert(name!="");

  value=(T)si.GetValue(name,typeof(T));
 }//read_value

 //-----------------------------------------------------------------------
 public static void write_value<T>(SerializationInfo si,string name,T value)
 {
  Debug.Assert(si!=null);
  Debug.Assert(name!=null);
  Debug.Assert(name!="");

  si.AddValue(name,value,typeof(T));
 }//write_value
}//class serialization_utils

Во. Меня еще заколбасило от того, что StringBuilder.Clear появился только в NET4. Это жесть

Нормальных алгоритмов поиска по ключу в List я не нашел. Нужны алгоритмы которые бы работали с (а-ля) IComparer<T1,T2>. Плохо искал? Опять свой код.

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

Да, это всего лишь бурчание по поводу того, что "опять все надо делать самому, своими руками"
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.10.11 17:54
Оценка: :)
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>>>1. при нормальном подходе с ними никто не возится. как не возятся с голыми указателями на память, к примеру.

MM>>>Нормальный подход — это какой?
КД>>1. смарт-указатели. с правильной реализацией. или это уже не актуально?
КД>>2. правильные принципы владения объектами. У COM они нормальные.
MM>Правильное на правильном. Вот это и называется возиться. Всегда нужно применять только правильное и только с правильной реализацией. А мне нравится просто создавать объекты, без оберток, борющихся с языком.

Ты не поверишь — я вообще не парюсь с такими вещами. Последние траблы были так давно, что я уже забыл когда именно Правда опять же — я по-большому счету варился в собственном котле. С UI-шным ActiveX я соприкасался только один раз. Когда прикручивал Forms от офиса к своей системе. Из чужих COM-ов только ScriptControl+MSXML+ADODB. Наверное из-за этого минимализма у меня все и работало. Внутри же, все, то есть абсолютно все (что движется) — на счетчиках ссылок. Плюс жесточайший контроль обнулений/освобождений и прочего, что может намекать на утечку ресурсов. На плюсах по-другому писать как-то тяжко. Но зато спишь спокойно.

А я вот сейчас морально готовлюсь бороться с Dispose. Конкретнее — запрещать его вызов, пока работает один из методов объекта.

То что при подсчете ссылок делается автоматом (тот кто вызывает метод объект, удерживает его в памяти), на .NET прийдется реально городить: try/finally + CER. В КАЖДОМ PUBLIC-МЕТОДЕ!

Подобная защита предоставляется SafeHandle. Между вызовами DangerousAddRef/DangerousRelease — хоть обвызывайся Dispose. Но, если был вызов Dispose, последний DangerousRelease освободит объект.

--
Но я пока не уверен, что я тут все правильно понимаю. Хотя, как защиту от многопоточного дурака, я думаю такое все таки прийдется делать
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.10.11 18:19
Оценка: :)
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>То что при подсчете ссылок делается автоматом (тот кто вызывает метод объект, удерживает его в памяти), на .NET прийдется реально городить: try/finally + CER. В КАЖДОМ PUBLIC-МЕТОДЕ!

MM>Это почему же?

Опппа. А что в .NET можно замутить триггеры на вызовы/завершения методов?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: Аноним  
Дата: 03.10.11 21:00
Оценка: +1
Здравствуйте, drol, Вы писали:

D>Конечно же это C++. В него просто добавлен нормальный синтаксис\система типов — вместо всяких макросно-шаблонных извращений предыдущей эпохи — для поддержки компонентных систем. Причём с практически полным сохранением совместимости с C++\CLI по "буковкам".


Это не C++, потому что он не соответствует стандартам ни 2003, ни 2011 года и не компилируется другими компиляторами, кроме микрософтовского.

Да, и "макросно-шаблонные извращения" в новом стандарте уже являются частью стандартной библиотеки.

Вообще, если я буду разрабатывать софт для винды у меня два юзкейса:

1) у меня есть большая кодовая база на C++ и винапи, WinRT не нужен (не переписывать же все?);

2) я собираюсь начать новое приложение, выберу, естественно, дотнет (WPF, WinForms), ну или, на худой конец, QT, так как он мощный и еще и кроссплатформенный, а нафига мне ни с чем не совместимый и убогий (по сравнению с C#) WinRT с его кривым недосиплюсплюсом в этом случае?

Не, не понимаю, хоть убейте. Глупость и все тут.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 03.10.11 22:14
Оценка: +1
Здравствуйте, drol, Вы писали:

C>>Мне не очень понятно в чём тут плюсы по сравнению с классическим решением на умных указателях.

D>Ну расскажите, как Вы собираетесь реализовывать полную поддержку системы типов WinRT исключительно на smart-pointer'ах. Лично я с большим интересом послушаю.
А какие сложности? Проблемы только с синтаксисом свойств и событий/делегатов. Их можно с помощью препроцессора реализовать (см. QT MOC).
Sapienti sat!
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 04.10.11 10:19
Оценка: -1
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Ну, вообще говоря, постижение я начал с того, что вдумчиво прочитал Рихтера.


Вопрос не в этом. Вопрос в том, зачем Вам interop

КД>Не угадал — я переехал с паскаля


Я ничего и не угадывал. Это всего лишь перенос стиля Ваших вопросов по .NET на случай миграции с C на C++.

КД>Нет, просто надежный и, по-возможности, красивый код.


Так пишите его. Только вот зачем Вам для этого interop ???

D>>Позволяет C# 2.0 и выше. А код той сериализации был написан ещё во времена самой первой версии .NET\C#


КД>Дык, надо трясти базовый код.


Конечно же не надо. Этот код уже используют миллионы приложений\библиотек. Любая, даже самая минимальная, правка там — потенциальные массовые грабли с их совместимостью. И именно поэтому нормальные люди базовые библиотеки практически не изменяют, а только расширяют.

КД>Find-ы я не смотрел, потому что линейный поиск не интересовал.


List совершенно не обязан быть отсортированным, да ещё и по какому-то левому оператору. Формулируйте вопросы точнее.

КД>как мне искать не T, а TKey?


List<T> хранит объекты типа T. Причём здесь какой-то левый TKey ???

КД>Я не хочу делать словари TKey->TItem. Поскольку TKey и так хранится в TItem.


Ну так и реализуйте соответствующий IComparer<T>, который будет сравнивать T, используя его поля\свойства с этим Вашим TKey.

*И эти люди ~15 лет писали на С++
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 04.10.11 18:22
Оценка: +1
Здравствуйте, Silver_S, Вы писали:

S_S>Подразделение занимающееся виндой отвергло .NET как вариант на чем можно переписать WinAPI, из-за проблем с производительностью.

Лучше бы они вместо отвержения, продавили оптимизацию .Net. Ну, ладно. Если фича с простым подключением натива, как сборок, будет работать, то круто.
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: Sinix  
Дата: 05.10.11 05:38
Оценка: -1
Здравствуйте, AndrewVK, Вы писали:

AVK>То ли у тебя полная каша в голове насчет шарпа и фреймворка, то ли ты не можешь нормально объяснить, что хочешь


Охх, ну зачем так всё усложнять? Нужен только Ilspy и 10-15 минут времени:
    public static int BinarySearch<T, TKey>(
      this IList<T> values, TKey key, Func<T, TKey, int> comparison)
    {
      Code.NotNull(values, "values");
      Code.NotNull(comparison, "comparison");

      return BinarySearchCore(values, 0, values.Count, key, comparison);
    }

    public static int BinarySearch<T, TKey>(
      this IList<T> values, int startIndex, int count, TKey key, Func<T, TKey, int> comparison)
    {
      Code.NotNull(values, "values");
      Code.NotNull(comparison, "comparison");
      EnumerableCode.ValidIndex(startIndex, "startIndex", values.Count);
      EnumerableCode.ValidCount(count, "count", values.Count - startIndex);

      return BinarySearchCore(values, startIndex, count, key, comparison);
    }

    // BASEDON: System.Collections.Generic.ArraySortHelper<T>.InternalBinarySearch()
    private static int BinarySearchCore<T, TKey>(
      IList<T> values, int startIndex, int count, TKey key, Func<T, TKey, int> comparison)
    {
      bool succeed = false;
      int searchIndex = startIndex;
      int maxIndex = startIndex + count - 1;

      while (searchIndex <= maxIndex)
      {
        int newSearchIndex = searchIndex + ((maxIndex - searchIndex) >> 1); // searchIndex + ((maxIndex - searchIndex) / 2)
        int comparisonResult = comparison(values[newSearchIndex], key);

        if (comparisonResult == 0)
        {
          searchIndex = newSearchIndex;
          succeed = true;
          break;
        }
        else if (comparisonResult < 0)
        {
          searchIndex = newSearchIndex + 1;
        }
        else
        {
          maxIndex = newSearchIndex - 1;
        }
      }

      return succeed ? searchIndex : ~searchIndex;
    }


По-хорошему надо бы сделать отдельную перегрузку для массивов, но и так сойдёт.
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 05.10.11 07:01
Оценка: :)
Здравствуйте, drol, Вы писали:

D>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>А теперь покажи мне реализацию стандартного IComparer<T>, которая позволит искать в list по string


D>Я же намекал — всё также как в стандартном C++. Контракт BinarySearch аналогичен схеме используемой binary_search\equal_range. Поэтому либо передаёте — прямо в BinarySearch — dummy-объект TData, у которого key проставлен в то что надо искать. Либо определяете некоторый выделенный объект TData — можно и null взять, лишь бы не встречался в качестве содержимого списка — и засовываете вместе с ключом для поиска в реализацию IComparer<TData>.


D>Понятно ? Или без кода не осилите ?


1. Мне не нужен dummy. А если TData — хрень с финализатором? Нафига такое счастье?
2. std::binary_search — это совсем не тоже самое что List.BinarySearch. Впрочем, std::lower_bound — тоже другое.

Надо просто по-другому думать. Если FW что-то предлагает делать через ... — то это не значит, что именно так нужно поступать.

Задача поиска в List<TData> по TKey решается с помощью таких конструкций:
IComparer2
  Скрытый текст
////////////////////////////////////////////////////////////////////////////////
//interface IComparer2_Base

public interface IComparer2_Base<T1,T2,tagID>
{
 int Compare(T1 a,T2 b);
};//interface IComparer2_Base

////////////////////////////////////////////////////////////////////////////////

public class tagComparer2_Base_ID1<T1,T2>{};                                    
public class tagComparer2_Base_ID2<T1,T2>{};                                    
public class tagComparer2_Base_ID3<T1,T2>{};                                    
public class tagComparer2_Base_ID4<T1,T2>{};

////////////////////////////////////////////////////////////////////////////////
//interface IComparer2

public interface IComparer2<T1,T2>:IComparer2_Base<T1,T2,tagComparer2_Base_ID1<T1,T2>>,
                                   IComparer2_Base<T2,T1,tagComparer2_Base_ID2<T1,T2>>,
                                   IComparer2_Base<T1,T1,tagComparer2_Base_ID3<T1,T2>>,
                                   IComparer2_Base<T2,T2,tagComparer2_Base_ID4<T1,T2>>
{
};//interface IComparer2

lower_bound
  Скрытый текст
////////////////////////////////////////////////////////////////////////////////
//class lower_bound

public static class lower_bound
{
 static public int exec<TItem,TKey>(IList<TItem>           container,
                                    TKey                   key,
                                    IComparer2<TItem,TKey> comparer)
 {
  Debug.Assert(container!=null);
  Debug.Assert(comparer!=null);

  int left=0;
  int right=container.Count;

  while(right>left)
  {
   int middle=left+(right-left)/2;

   Debug.Assert(right>middle);
   Debug.Assert(comparer.Compare(container[left],container[middle])<=0);

   if(comparer.Compare(container[middle],key)<0)
   {
    left=middle+1;
    continue;
   }

   right=middle;
  }//for[ever]

  return left;
 }//exec

 //-----------------------------------------------------------------------
 static public int exec<TKey>(IList<TKey>     container,
                              TKey            key,
                              IComparer<TKey> comparer)
 {
  Debug.Assert(container!=null);
  Debug.Assert(comparer!=null);

  int left=0;
  int right=container.Count;

  while(right>left)
  {
   int middle=left+(right-left)/2;

   Debug.Assert(right>middle);
   Debug.Assert(comparer.Compare(container[left],container[middle])<=0);

   if(comparer.Compare(container[middle],key)<0)
   {
    left=middle+1;
    continue;
   }

   right=middle;
  }//for[ever]

  return left;
 }//exec
}//class lower_bound

t_search_result
  Скрытый текст
public struct t_search_result<TPosition>
{
 public TPosition position;
 public bool      result;

 public t_search_result(TPosition pos,bool res)
 {
  this.position=pos;
  this.result  =res;
 }//t_search_result
};//struct t_search_result

lower_search
  Скрытый текст
public static class lower_search
{
 public static t_search_result<int>
  exec<TItem,TKey>(IList<TItem>           container,
                   TKey                   key,
                   IComparer2<TItem,TKey> comparer)
 {
  Debug.Assert(container!=null);
  Debug.Assert(comparer!=null);

  int x=lower_bound.exec(container,key,comparer);

  Debug.Assert(x>=0);
  Debug.Assert(x<=container.Count);

  if(x<container.Count)
  {
   int c=comparer.Compare(key,container[x]);

   if(c==0)
    return new t_search_result<int>(x,true);

   Debug.Assert(c<0);
  }//if

  return new t_search_result<int>(x,false);
 }//exec

 //-----------------------------------------------------------------------
 public static t_search_result<int>
  exec<TKey>(IList<TKey>            container,
             TKey                   key,
             IComparer<TKey>        comparer)
 {
  Debug.Assert(container!=null);
  Debug.Assert(comparer!=null);

  int x=lower_bound.exec(container,key,comparer);

  Debug.Assert(x>=0);
  Debug.Assert(x<=container.Count);

  if(x<container.Count)
  {
   int c=comparer.Compare(key,container[x]);

   if(c==0)
    return new t_search_result<int>(x,true);

   Debug.Assert(c<0);
  }//if

  return new t_search_result<int>(x,false);
 }//exec
};//class lower_search

Дарю. Код оттестирован.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: Sinix  
Дата: 05.10.11 10:00
Оценка: +1
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Следуя своей любимой тактике, ну понятно какой, замечу, что твой алгоритм не позволяет (в отладочном режиме, естественно) контролировать упорядоченность исходного массива.


Это не мой алгоритм, честная копипаста из System.Collections.Generic.ArraySortHelper<T>.InternalBinarySearch().

Если требуется проверить сортировку массива — почему бы не делать этого отдельным методом и не городить тонну добавочных классов и интерфейсов?
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.10.11 11:24
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>Охх, ну зачем так всё усложнять?


Забавное понимание упрощения — написать код в несколько раз больше и сложнее.
... << RSDN@Home 1.2.0 alpha 5 rev. 1530 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.10.11 23:43
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>А не пробовал использовать VS2010 и компилятор С#4 и собирать под 3.5 фреймворк?


Не спортивно! Там же багов старого компилятора нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.10.11 00:40
Оценка: +1
Здравствуйте, drol, Вы писали:

D>А если платформа это Windows Phone ? И приложение это какой-нибудь навороченный ГИС-клиент ? Для которого опять-таки куча C++ кода уже есть ? Тоже .NET выберете ?


Гы. Ты для начала узнал на чем можно под Windows Phone писать. Тебя это повеселит.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 09.10.11 08:16
Оценка: -1
За свое выдать не удастся, ставь копирайты или ссылку на оригинал
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 09.10.11 08:26
Оценка: -1
Здравствуйте, VladD2, Вы писали:

VD>Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом.


А я вспоминаю ретивого докладчика из MS на одной конфе в 2002 году. И его "следующая операционная система будет позволять выполнять только .NET приложения.". Я на тот уже вроде как должен был бы сказать "данунах", но все равно — что-то внутри вздрогнуло... Пошел уже четвертый год как я сижу на этой "следующей операционной системе" — Vista x64. Все работает. Даже то, что было последний раз откомпилировано в 2001. Страшненьким плюсовым компилятором 98 года.

Жаль, что нельзя вернуться и сказать "не говори гоп, пока не перепрыгнешь"
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 13.10.11 00:50
Оценка: +1
Здравствуйте, VladD2, Вы писали:

C>>Её можно было сделать и без изнасилования С++. Win RT в общем и целом выглядит как Yet Another Reference Counted Object Framework с автоматической генерация обёрток по метаинформации,

VD>Вроде как где-то тут проскакивала информация, что можно и без оберток жить (сам себе уши обморожу...).
Почему же? То что я вижу не является чем-либо лучше классических умных указателей. Если бы я писал на Win RT интерфейс для существующего кода, то написал бы обёртку для boot::shared_ptr.

C>>чего-то идеологически нового в нём нет.

VD>А надо?
VD>По сравнению с WinAPI — это явный прогресс — типизация + модульность.
Кстати, я не уверен, что внутри WinRT нет старого доброго CreateWindowW — вполне возможно, что там большая часть — просто хорошие обёртки.

C>>Из аналогов: в QT есть бесшовная интеграция с JavaScript, а в GTK издревле вообще интеграция со всем есть (с помощью GObject).

VD>Причем тут QT и JavaScript? Как я понимю, тут речь идет об АПИ ОС. Остальное уже детали.
А разница? libglib тоже может использоваться для общения на уровне ОС, даже разговоры о GNOME OS идут. Так что тут Win RT и GTK/QT как раз примерно на одном уровне по абстракциям и реализации.

VD>Я тут могу только согласиться лишь с мнением, что можно было тупо взять дотнет за базу для АПИ. Только предварительно подкрутить производительность и сделав его ядренным. Точнее даже лучше было бы взять то что было разработано в рамках Сингулярити. Они ведь доказали, что быстрый ЖЦ возможне. А джит он на фиг не нужен. Достаточно компиляции при инсталляции или даже вообще без нее. Формат дотнетных сборок это позволяет.

Не получается, GC всё портит. Не столько даже из-за скорости, сколько из-за того, что для надёжности ВСЁ должно использовать один большой хип.

Ну и практика показала, что GC для кода оконных систем особо и не нужен, и даже вреден.

C>>чтобы увеличить lock-in для клиентов.

VD>Как новый АПИ может сделать это? И почему это не делал старые расшерения API основанные на WinAPI. Ведь WinAPI не был заморожен в 91-ом.
Я могу компилировать приложения для WinAPI под GCC. И сам WinAPI очень дружественен к С. А тут MS хочет, чтобы использовали только их компилятор, да и ещё активно насаживает расширения языка.
Sapienti sat!
Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 24.10.11 12:14
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Тогда не фига было это называть новым Windows API.


Была проблема — под iOS легко писать простые и безопасные приложения для продажи через онлайновый магазин, а под WinAPI нет. Новый API ограничивающий возможности взаимодействия с системой и упрощающий разработку мелких апов решает эту проблему.

VD>В прочем, зачем сужать рынок этого App Store для меня тоже остается загадкой.


Это как спрашивать, зачем они выпустили XP и Семёрку отдельными операционными системами, а не сервис паками к Win2k и Висте.
Ce n'est que pour vous dire ce que je vous dis.
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: aloch Россия  
Дата: 24.10.11 14:03
Оценка: -1
Здравствуйте, VladD2, Вы писали:

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

Т.к. мы знаем, что OLE 1 был развитием DDE. А OLE2 это и есть COM. И при этом многие части Win API существуют в виде COM-интерфейсов (например, DirectX, URL Monikers, Windows Shell, тот-же хостинг .Net и множество жругих вещей..). Или нужно было остановиться на DDE, и больше ничего не дедать? При этом и DDE и COM и OLE работали и работают и ни куда из Windows не денуться.

Ну и других нестыковок по тексту — масса. Ты сам их найдешь.

Возможно это и разновидность сарказма. Просто мне не нравиться сарказм, основанный на передергивании фактов.


Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: aloch Россия  
Дата: 25.10.11 13:40
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

А может быть и заведут свой отдельный счетчик чтобы IUnknown лишний раз не дергать (как это сделано в .Net).


Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.10.11 18:25
Оценка: +1
Здравствуйте, Gollum, Вы писали:

G>пока GUI и GC не особо дружат, к сожалению.


Честно говоря, за 10 лет так особых проблем в гуях именно с GC я не заметил.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: IB Австрия http://rsdn.ru
Дата: 01.11.11 08:33
Оценка: +1
Здравствуйте, Gollum, Вы писали:

G>Да, их не много. Но среди тех, что использую я managed нет.

Десятую студию тоже не пользуешь? =)
Мы уже победили, просто это еще не так заметно...
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 09:17
Оценка: :)
Здравствуйте, Gollum, Вы писали:

G>*Новые приложения*. Студия к таковым не относится. Кстати, вот для повышения образованности — назови хотя бы еще пару wpf приложений которыми ты пользуешься?


ILSpy, SharpDevelop
/* иЗвиНите зА неРовнЫй поЧерК */
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 12:10
Оценка: -1
> Нельзя ли более предметно? Что нужно было сделать вместо того, что сделано сейчас?

Архитектурно? Там много чего должно быть сделано иначе. Как минимум понятие элемент проектирования не соответствует понятию визуальный элемент/примитив, опираясь на это образуется другая структура рабочих объектов. Но я не буду здесь писать вам архитектуру, поскольку это надо со специалистом разговаривать, а в этом форуме может только к холивару привести.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[21]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 12:33
Оценка: +1
Здравствуйте, grosborn, Вы писали:

>> Нельзя ли более предметно? Что нужно было сделать вместо того, что сделано сейчас?

G>Архитектурно? Там много чего должно быть сделано иначе. Как минимум понятие элемент проектирования не соответствует понятию визуальный элемент/примитив, опираясь на это образуется другая структура рабочих объектов. Но я не буду здесь писать вам архитектуру, поскольку это надо со специалистом разговаривать, а в этом форуме может только к холивару привести.
Блин, два поста в ответ, и никакой конкретики. Я не собираюсь холиворить, я понять хочу, о чем идет речь приментильно к вещам, с которыми работаю каждый день.
Re[26]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 14:05
Оценка: :)
> Я, к слову, тоже не понял о чем речь. Поясните плз. эти два предложения внятными примерами.

Ок. Упростим ситуацию. Сфокусируемся на втором предложении.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: Аноним  
Дата: 01.11.11 17:35
Оценка: -1
Здравствуйте, MxMsk, Вы писали:

C>>Кроме того иньекции браузер-джава никуда не денутся. Чуть более чем домохозяйки обоих полов отключают UAC, из-за долбаных окошек по любому поводу, и отчасти этот гнев обоснован!. Почему меня МакОсь так не задалбывает подобными окошками (а там еще и пароль ввести надо между прочим).

MM>Не первый раз читаю такое и всё никак не пойму. Вы чем таким противоестесственным с ОС занимаетесь, что она вас с UAC задалбывает? Меня раз в месяц спросит, или когда программу ставлю, да и ладно. Хех, ну а Мак ОС, например, спрашивает постоянно "страшно: этот файл был загружен из иНета, бла-бла-бла".

Спрашивает, но без повышения привилегий, ито редко. Иногда повышение привилегий в МакОси есть необходимость и надо ввести пароль — вопрос очень скользкий. В двух словах все это вообще не повышение привилегий. Это вопрос о вменяемости юзера, и что именно кликнул. Не смотря на то что МакОсь тру Unix, в ней по умолчанию вообще нет учетной записи root. А зачем? Если нужно реальное повышение привилегий такую учетную запись придется завести ручками, под ней зайти и уже тогда ломать себе операционку. В общем и целом МакОсь неубиваема без намерения и воли продвинутого юзера, который точно знает как всё поломать. А 99% всех юзеров не знают что это вообще Юникс, и тем более что такое root, им это лишнее знание ни на что не влияющее.

А в винде если спрашивает, то это реальное повышение привилегий вплоть до возможности рут-кит в Ось внедрить. А задалбывает... На неслабом компе двухмониторная конфигурация, оба монитора FullHD (да, я богатый буржуй, второй монитор 42" LCD панель) когда окошко UAC хочет всплыть начинается коллапс всех систем секунд на 5-10. Все что было под DirectX запущено вываливается в эксцепшн, начинается коллапс всех систем у эксплорера, медиаплеер наинается заикаться как эпилептик. И начинается мучительная отрисовывка затенения десктопов на двух мониторах и потом наконец появляется диалог UAC. Бесит ли это? Поначалу не очень, даже приколько когда музыка начинается заикаться, звук похож на семплы транс-музыки. Когда эффект новизны прошел начинает БЕСИТЬ! Отключение второго монитора зело помогает.
Индусам надо как-то законодательно в ООН ограничить рождаемость и приход в профессию программистов.
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 01.11.11 18:03
Оценка: -1
Здравствуйте, Gollum, Вы писали:

НС>>А это не вопрос твоего согласия.

G>А это не тебе решать

А я и не решаю. Я просто констатирую факт.

НС>>Java.

G>Ну-ну

Вот тебе и ну-ну.

НС>>Потому что все может 100 раз поменяться,

G>Уже слишком много сделали, чтобы все "100 раз менять"

Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.11 18:08
Оценка: +1
Здравствуйте, hardcase, Вы писали:

H>XML для "языка создания объектов" (чем по сути и является XAML) — это фейл


Его никто не заставляет использовать.

H>Почему же они не сделали отдельный язык для этого (апеллирую к JSON и прочим YAML)?


Возьми да сделай, делов то. Если это действительно кому то надо — будут пользоваться.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[26]: [ANN] WinRT - новое компонентное API для Windows 8
От: Andy77 Ниоткуда  
Дата: 08.11.11 02:20
Оценка: +1
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Andy77, Вы писали:


IT>>>Конвертеры в сад. Определяем свойство с нужной логикой во ViewModel и поехали.

A>>А как ты будешь ссылаться на сам объект, который нужно конвертировать? Пример — разрисовываем элементы ListBox'а в разные цвета в зависимости от значения.

IT>От какого значения?


Например, если ты байндишься на List<double> VolumesInMicroLiters и на этой же форме существует комбо бокс единиц измерения (миллилитры-литры-и т.д.) — в этом случае свойства никак не помогут (даже если и не нужно переводить в другие единицы, а, скажем, нужно просто отформатировать число).
Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 04.12.11 18:05
Оценка: +1
Здравствуйте, enCobalt, Вы писали:

C>Тогда и ПО у вас будет писаться быстрое и производительное, и работать оно будет предсказуемо у юзеров.


Только писаться оно будет на порядок дольше. И не потому что комп на порядок медленнее, а потому что для программиста между одной и десятью секундами не девять секунд разницы, а порой минут тридцать.
Если нам не помогут, то мы тоже никого не пощадим.
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: Аноним  
Дата: 01.10.11 11:33
Оценка:
Еще по теме:
http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/17/under-the-covers-of-winrt-using-c.aspx
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: fddima  
Дата: 01.10.11 15:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Reference counting? Вы меня шутите? И для reference counting'а делать синтаксические расширения?

Я в общем-то такого же мнения обо всём, но чем не угодил то ref counting?
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 02.10.11 07:17
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Не можешь — ну не колупайся.

КД>Все там нормально. И все друг с другом дружит. В том числе — reference counting и многопоточность (по моему скромному мнению — второе без первого, это перевод денег времени). Справа от моего имени есть ссылочка на нефиговый по размерам проект, где все это (COM/MT/ref count) согласованно работает вместе без каких либо проблем.
Вопрос в том, сколько потребовалось времени, чтобы оно начало согласовано и без проблем работать. Автор ведь имел ввиду сложность решения. Понятно, что и с reference counting можно жить. Но это очевидный шаг назад по-сравнению со сборщиком мусора в .Net. Не люблю кивать в сторону Apple, но у них наоборот появился сборщик мусора для Objective-C, который до этого жил только с reference counting на naming conventions.
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 02.10.11 08:26
Оценка:
Здравствуйте, Аноним, Вы писали:

А>У меня нет больше никаких слов, кроме матных. Товарища Синофского надо подвесить за определенную часть тела и больше никогда не подпускать к компьютеру.


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

Я думаю он сам хорошо понимает — "если что, то лучше самому себе сделать харакири"
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 02.10.11 08:37
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Скажу про то, что знаю — что бы заставить согласованно и без проблем работать (драйвер базы данных) требуется колоссальные усилия и затраты. Которые хрена лысого сократятся если задействовать супер-пупер технологии/ЯП.

Непонятно, почему мы все должны возиться с подсчетом ссылок лишь потому, что это устраивает драйвер Interbase
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 02.10.11 10:29
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>1. при нормальном подходе с ними никто не возится. как не возятся с голыми указателями на память, к примеру.

Нормальный подход — это какой?

КД>2. это всего лишь (реальный) пример того, где все эти "страшные" вещи без проблем работают.

Ну, в этом мире вообще много чего работает. Хочется, чтобы платформы двигались вперед, а не назад.

КД>3. да никто никого не заставляет. Чего нервничать то?

Не, мои нервы сейчас целиком тратятся на Детройт Тайгерз в плэй-офф MLB
Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 02.10.11 13:31
Оценка:
Здравствуйте, MxMsk, Вы писали:

КД>>1. при нормальном подходе с ними никто не возится. как не возятся с голыми указателями на память, к примеру.

MM>Нормальный подход — это какой?
1. смарт-указатели. с правильной реализацией. или это уже не актуально?
2. правильные принципы владения объектами. У COM они нормальные.

Но я тут вникал в одни доморощенные правила... все шиворот навыворот. И как-то реально стремно становится

КД>>2. это всего лишь (реальный) пример того, где все эти "страшные" вещи без проблем работают.

MM>Ну, в этом мире вообще много чего работает. Хочется, чтобы платформы двигались вперед, а не назад.

Можно оглянуться и достичь нужного эффекта

По-любому, назад движения нет. Достаточно сравнить уровни компиляторов C++ 199x (VC5/VC6/BCB3), 2000 (BCB5), 2003 (VC7 — не вставил), 2005 (VC8 — это был нереальный прорыв), 2008 (VC9), 2010 (VC10). Начиная с VC8 — можно писать на плюсах и получать от этого удовольствие. Это три версии компилятора — VC8/VC9/VC10.

А тот же компилятор C# — я (хотя и пишу меньше двух месяцев) уже натыкался на конструкции которые VS2010 может откомилировать, а 2008 тупит — надо подсказывать. Сам фреймворк, большой да. Но в основе своей, по-моему, туповатый. И это видно по допиливанию такой тривиальной вещи как IntPtr. Сложно было сразу его сделать полноценную реализацию что ли?

Впрочем меня оно не сильно напрягает. Так всего пару раз побесился . И порадовался что это не .NET v1. С которым, я так понимаю (если хочешь создать что-то отказоустойчивое), вообще ловить нечего.

Оно и на плюсах такое было, когда желания начали обгонять возможности компилятора/STL

Да. Я говорю про создании невизуальных вещей. С UI я завязал
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 02.10.11 14:55
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я в шоке. Нет слов. Это какое-то чудовищное г..но. Какой же это C++? Зачем они изменили синтаксис? Это не C++ и не дотнет. Какая-то технология-выродок с языком-мутантом.


+100.

А>Что ж это такое будет-то? Получается какая-то еще одна какая-то непонятная платформа со своим собственным довольно поганым языком (никакой это, конечно же, не C++).


Там вроде можно использовать чистый С++, пользуясь WRL, но при этом получаем старый добрый COM, а эти уродские расширения мол нужны для того, чтобы не думать о COM.

А>Я бы понял, если бы они все перевели на дотнет, понял бы если бы они все сделали на C++, но эту хрень я не понимаю совершенно.


Я тут недавно копался в MSDN, WinRT в паре с C# (или VB) выглядит довольно органично. А вот код на C++

А>У меня нет больше никаких слов, кроме матных. Товарища Синофского надо подвесить за определенную часть тела и больше никогда не подпускать к компьютеру.


Да зачем так себе нервы трепать, проще будет тупо не программировать под Windows платформой больше, выбора выше крыши: Java/Web/Mac OS X/iOS/Android/...
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 02.10.11 14:56
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>1. смарт-указатели. с правильной реализацией.


Вы только что охарактеризовали систему управления памятью .Net

КД>2. правильные принципы владения объектами. У COM они нормальные.


Может быть они и нормальные, только вот в COM о них надо постоянно думать...

КД>Но в основе своей, по-моему, туповатый.


А по-моему — в сравнении с C++ — всё ровно наоборот. Один только System.String и его обвязка чего стоят.

КД>И это видно по допиливанию такой тривиальной вещи как IntPtr. Сложно было сразу его сделать полноценную реализацию что ли?


"Я плакаль" (c) не мой

Вы бы ещё пожаловались, что на .NET драйвера разрабатывать затруднительно

IntPtr это "наследие царского режима", вызванное к жизни исключительно необходимостью организации interop'а. И нормальные люди им пользуются от силы пару раз в год.
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 02.10.11 22:21
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, lazy_walrus, Вы писали:


D>>>Может быть они и нормальные, только вот в COM о них надо постоянно думать...

_>>Постоянно думать о подсчёте ссылок надо в C++. В языках с поддержкой IUnknown на уровне компилятора (напр. Delphi) это делается автоматически.
MM>Проблемы не в том, чтобы автоматизировать вызовы AddRef и Release. Проблема в том, как быть уверенным, что всё это согласуется с внешним кодом, который не ты пишешь и не ты поддерживаешь.

Если внешний код корректно делает addref и release, то какая тебе разница? А если неорректно, то опять нет разницы несколько корректно это делаешь ты или компилятор за тебя.
Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: Lloyd Россия  
Дата: 02.10.11 23:08
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>А тот же компилятор C# — я (хотя и пишу меньше двух месяцев) уже натыкался на конструкции которые VS2010 может откомилировать, а 2008 тупит — надо подсказывать.


Можно подробнее?
Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: fddima  
Дата: 03.10.11 07:28
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>И это видно по допиливанию такой тривиальной вещи как IntPtr. Сложно было сразу его сделать полноценную реализацию что ли?

А что с текущей не так? Да и вообще в C# есть нормальные указатели.
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.10.11 16:09
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Наверное, я где то загнался. Но по-другому желаемое пока реализовать не удается


КД>Да, это всего лишь бурчание по поводу того, что "опять все надо делать самому, своими руками"


Что же ты такое реализовать пытаешься и главное зачем?
Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.10.11 16:56
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>А тот же компилятор C# — я (хотя и пишу меньше двух месяцев) уже натыкался на конструкции которые VS2010 может откомилировать, а 2008 тупит — надо подсказывать.


L>Можно подробнее?


Воспроизвести это можно так.
  Скрытый текст
using System;
using System.Collections.Generic;

////////////////////////////////////////////////////////////////////////////////

interface IProcessor2<T1,T2>
{
};

////////////////////////////////////////////////////////////////////////////////
//class utils

class utils
{
 public static void exec<T1,T2>(IList<T1> list,T2 key,IProcessor2<T1,T2> proc)
 {
 }
}//utils

////////////////////////////////////////////////////////////////////////////////
//processors

class TProcessor:IProcessor2<string,int>,IProcessor2<Guid,int>
{
};//class TProcessor

////////////////////////////////////////////////////////////////////////////////

class Program
{
 static int Main()
 {
  var list_str=new List<string>();
  var list_guid=new List<Guid>();

  var proc=new TProcessor();

  int n=0;
  
  //VS2010 - ok.
  
  //VS2008 - fail
  //Ошибка    1    Аргументы-типы для метода
  //"utils.exec<T1,T2>(System.Collections.Generic.IList<T1>, T2, IProcessor2<T1,T2>)"
  //не должны определяться по использованию. Попытайтесь явно определить аргументы-типы.
  
  utils.exec/*<string,int>*/(list_str,n,proc);
  utils.exec/*<Guid,int>*/(list_guid,n,proc);
  
  return 0;
 }//Main
}//class Program

Не спрашивай — "а нафига я засунул в один класс две разных реализации IProcessor2?". Так получилось
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.10.11 18:01
Оценка:
Здравствуйте, drol, Вы писали:

D>Вы бы ещё пожаловались, что на .NET драйвера разрабатывать затруднительно


Пожалуй я так и сделаю
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 03.10.11 18:14
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>То что при подсчете ссылок делается автоматом (тот кто вызывает метод объект, удерживает его в памяти), на .NET прийдется реально городить: try/finally + CER. В КАЖДОМ PUBLIC-МЕТОДЕ!

Это почему же?
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.10.11 18:20
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Здравствуйте, MxMsk, Вы писали:


MM>>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>>То что при подсчете ссылок делается автоматом (тот кто вызывает метод объект, удерживает его в памяти), на .NET прийдется реально городить: try/finally + CER. В КАЖДОМ PUBLIC-МЕТОДЕ!

MM>>Это почему же?

КД>Опппа. А что в .NET можно замутить триггеры на вызовы/завершения методов?


А зачем тебе?
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: AngeL B. Россия  
Дата: 03.10.11 18:49
Оценка:
Здравствуйте, Gollum, Вы писали:

G> Некоторой частью эти расширения похожи на расширения managed C++, но не нужно их путать. WinRT не использует CLR, и несмотря на то, что синтаксис местами одинаковый (например, Search::QueryOptions^), в WinRT это означает совсем другое.


Одна синтаксическая конструкция имеющая разный смысл при разных ключах компилятора (то есть по сути два разных языка) очевидно один из самых быстрых путей к полному .....
И вопрос тут не в том, что ребята решили создать новый COM. Может он и нужен для низкоуровневых работ, а именно в том, что они решили продлить агонию С++ превратив его из кошмарного франкенштейна (чего стоит синтаксис лямбд) с замусоренным синтаксисом в нечто совсем уж убожеское. Надо было создавать новый язык. Пусть низкоуровневый, но новый.
И лично я считаю, что это может очень плохо сказаться на отрасли в целом и на компании MS в частности.
Печально
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 03.10.11 19:03
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Опппа. А что в .NET можно замутить триггеры на вызовы/завершения методов?

Какую задачу решаем?
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: x64 Россия  
Дата: 03.10.11 19:23
Оценка:
КД>Я думаю он сам хорошо понимает — "если что, то лучше самому себе сделать харакири"

В таком случае, ему пора начинать готовиться к ритуалу, я думаю.
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: x64 Россия  
Дата: 03.10.11 19:40
Оценка:
Всё же, я думаю, это в раздел Win32 надо было. Потому что вот меня, например, больше беспокоит вопрос: зачем это всё, в смысле, какую цель преследует этот WinRT и какие задачи/проблемы призван решить? Почему не .Net просто? Они же могли сказать, мол, с сегодняшнего дня все, кто хотят кодить прикладные вещи, будете кодить их на C#, VB или на худой конец C++/CLI, а всякие там MFC и вообще нативные вещи объявляем устаревшими и оставляем только для всяческих системных разработок. И всё, всем сразу стало бы понятно, что к чему. Но зачем нужен новый C++? Зачем нужен COM (не важно в каком виде), если есть .Net? Короче, может кто-нибудь вразумительно ответить на эти вопросы? Если вопрос не понятен, тогда спрошу конкретнее. Представим, что я технический директор софтовой компании, которому заказали определённый софт написать, ну, скажем, аналог какого-нибудь там Office, вопрос: на чём его писать? Я ведь могу взять C# и не парится, или взять MFC и опять же не парится, или могу взять голый Windows API, если я конченный извращенец, и получать своё извращенческое удовольствие, потому что я знаю, что в итоге с помощью данных инструментов я смогу сделать всё, что мне нужно. Но внезапно я узнаю, что появился какой-то там ещё WinRT, а чем он лучше для моей задачи, — мне не понятно, что мне делать?
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 03.10.11 20:55
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Вообщем, я плюнул, и накатал свои алгоритмы для IntPtr.


М-да...

Начинать постижение идей managed-платформы с ковыряния в кишках interop'а это нечто. Представляю Ваши впечатления при переезде с С на C++:

"Что они там курят ??? Конструкторы\деструкторы вызывает непонятно кто, непонятно когда, и код ошибки из них нормально не прокинуть... А виртуальные функции это вообще капец, там какой-то фатальный pure virtual function call на каждый чих вылезает — придётся кучу защитной обвязки писать, а то вдруг... А уж с указателями совсем бардак — почему моему обычному C'ишному указателю на функцию нельзя просто присвоить указатель на функцию-член класса ???"

...и т.д. и т.п.

*Вы на .NET собрались писать mission critical приложения для исполнительных устройств атомных электростанций ???

КД>Сегодня разбирался с сериализацией. Опять какая-та лажа. Нафига мне нужно указывать (километровые) типы — выводите из значений параметров! C# же позволяет. Опять свой код.


Позволяет C# 2.0 и выше. А код той сериализации был написан ещё во времена самой первой версии .NET\C#

КД>Во. Меня еще заколбасило от того, что StringBuilder.Clear появился только в NET4. Это жесть




КД>Нормальных алгоритмов поиска по ключу в List я не нашел. Нужны алгоритмы которые бы работали с (а-ля) IComparer<T1,T2>. Плохо искал? Опять свой код.


У List<T> есть куча Find'ов от предиката, например. Внутри предиката Вам никто не мешает позвать какой Вашей душе угодно IComparer... И это ещё не касаясь LINQ to Objects...
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 03.10.11 21:09
Оценка:
Здравствуйте, drol, Вы писали:

А>>Главные вопросы, которые у меня возникают: "WTF?" и "нафига?", а также "нафига?!", "нафига?!!" и "нафига?!!!".

D>Да прекрасно понятно. Планете давно нужен нормальный язык\платформа для натива. И если комитет забивает болт, то в игру приходится вступать Microsoft'у.
Мне не очень понятно в чём тут плюсы по сравнению с классическим решением на умных указателях. Генерация метаинформации — ну ладно, ещё можно простить.
Sapienti sat!
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 03.10.11 21:21
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Мне не очень понятно в чём тут плюсы по сравнению с классическим решением на умных указателях.


Ну расскажите, как Вы собираетесь реализовывать полную поддержку системы типов WinRT исключительно на smart-pointer'ах. Лично я с большим интересом послушаю.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: Аноним  
Дата: 03.10.11 22:01
Оценка:
Здравствуйте, drol, Вы писали:

D>Вы так говорите, как-будто в предыдущих версиях реализации C++ от Microsoft не было никаких их "личных" языковых расширений. Тогда как килотонны... нет, килотонны это мало... мегатонны существующего кода оные во всю используют, и ничем кроме MSVC никогда не скомпилируются.


Ну это неправда. У MSVC есть некоторые расхождения со стандартом в том плане, что он компилирует невалидный с точки зрения стандарта код, но это все не такие большие проблемы и довольно легко допиливаются при портировании. В то время, как в WinRT с его "крышками" это вообще считай другой язык.

А>>Да, и "макросно-шаблонные извращения" в новом стандарте уже являются частью стандартной библиотеки.

D>Да ну ? С интересом послушаю, как Вы на этих "частях" будете делать поддержку системы типов WinRT.

Дык примерно так я и пишу все программы на C++, с reference counting'ом.

А>>1) у меня есть большая кодовая база на C++ и винапи, WinRT не нужен (не переписывать же все?);


D>Зачем переписывать ??? Там прямой interop аналогичный схеме C++\CLI. Новые внешние интерфейсы делаете на WinRT, а в потрохах всё тот же старый добрый legacy C++.


А в чем профит перед C++/CLI, учитывая идентичный поганый синтаксис? Ну и для дотнета я бы скорее использовал автоматическую генерацию оберток, чем писать это уродство на C++/CLI. Хотя, это, конечно, лучше, чем делать COM-обертки, спору нет.

А>>2) я собираюсь начать новое приложение, выберу, естественно, дотнет (WPF, WinForms),


D>А если платформа это Windows Phone ? И приложение это какой-нибудь навороченный ГИС-клиент ? Для которого опять-таки куча C++ кода уже есть ? Тоже .NET выберете ?


Не понял эту реплику. А WinRT что дает для Windows Phone? C#-то вроде как раз и дает общую кодовую базу с Windows Phone (кроме UI).
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 04.10.11 05:40
Оценка:
Здравствуйте, drol, Вы писали:

D>М-да...


D>Начинать постижение идей managed-платформы с ковыряния в кишках interop'а это нечто.


Ну, вообще говоря, постижение я начал с того, что вдумчиво прочитал Рихтера. Главы типа "автоматическая сборка мусора" — несколько раз. Ну еще Троелсена почитал. Так что тут все путем

Практику это не заменило, но какой-то стартовый багаж знаний сформировало.

D> Представляю Ваши впечатления при переезде с С на C++:


Не угадал — я переехал с паскаля (в 96. тесноват стал, для моих задумок) на плюсы. Я конечно тогда тоже конкретно попарился, но по-большому счету из за глобального непонимания. И того, что многие базовые вещи (типа подсчета ссылок) пришлось выводить самому. Прорыв (в управлении объектами) произошел летом 2001, когда я сам допер, что у объекта может быть больше одного счетчика. Это было ночью. Утром я напился

D>*Вы на .NET собрались писать mission critical приложения для исполнительных устройств атомных электростанций ???


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

КД>>Сегодня разбирался с сериализацией. Опять какая-та лажа. Нафига мне нужно указывать (километровые) типы — выводите из значений параметров! C# же позволяет. Опять свой код.


D>Позволяет C# 2.0 и выше. А код той сериализации был написан ещё во времена самой первой версии .NET\C#


Дык, надо трясти базовый код. Прикольно в FW4 обнаруживать использование атрибутов, которые "не рекомендуется" использовать с NET4 Правда, это они наверное нам не рекомендуют.

КД>>Нормальных алгоритмов поиска по ключу в List я не нашел. Нужны алгоритмы которые бы работали с (а-ля) IComparer<T1,T2>. Плохо искал? Опять свой код.


D>У List<T> есть куча Find'ов от предиката, например. Внутри предиката Вам никто не мешает позвать какой Вашей душе угодно IComparer...

Find-ы я не смотрел, потому что линейный поиск не интересовал. А вот BinarySearch-а по предикату не наблюдается.
int BinarySearch(int index, int count, T item, IComparer<T> comparer)
int BinarySearch(T item)
int BinarySearch(T item, IComparer<T> comparer)

как мне искать не T, а TKey? Я не хочу делать словари TKey->TItem. Поскольку TKey и так хранится в TItem.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 04.10.11 05:44
Оценка:
Здравствуйте, fddima, Вы писали:

КД>>Нормальные указатели — это в unsafe. Так? Или я что то пропустил?

F> Да, это в unsafe. Но, незачем его так избегать, ничего в нём плохого нет. Использование IntPtr не менее unsafe, чем unsafe который ключевое слово, если его применять так же как указатели, или с такими наворотами. Более того, использование нормальных указателей — позволяет получить типо-безопасный код, в отличии прыжков с IntPtr.

Спасибо, я прислушаюсь к этому совету
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.10.11 05:49
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Нет, просто надежный и, по-возможности, красивый код. Это долго, дорого и мутно, но в конечном итоге — быстрее и дешевле чем ...

Суд по постам — идешь ровно к обратному.

КД>Дык, надо трясти базовый код. Прикольно в FW4 обнаруживать использование атрибутов, которые "не рекомендуется" использовать с NET4 Правда, это они наверное нам не рекомендуют.

Есть набор "внутрениих" атрибутов, которые есть в mscorlib и system и не рекомендуется их использовать в своих либах. Это нормально.
Есть также устаревшие атрибуты, которые использовались в .NET1, а .NET4 достались по наследству. Это тоже нормально.

КД>>>Нормальных алгоритмов поиска по ключу в List я не нашел. Нужны алгоритмы которые бы работали с (а-ля) IComparer<T1,T2>. Плохо искал? Опять свой код.


D>>У List<T> есть куча Find'ов от предиката, например. Внутри предиката Вам никто не мешает позвать какой Вашей душе угодно IComparer...

КД>Find-ы я не смотрел, потому что линейный поиск не интересовал. А вот BinarySearch-а по предикату не наблюдается.
КД>int BinarySearch(int index, int count, T item, IComparer<T> comparer)
КД>int BinarySearch(T item)
КД>int BinarySearch(T item, IComparer<T> comparer)

КД>как мне искать не T, а TKey? Я не хочу делать словари TKey->TItem. Поскольку TKey и так хранится в TItem.

Неубедительный аргумент.

Ты хочешь быстрый поиск, поэтому тебе не подходит обычный Find по предикату , но не хочешь делать словарь который даст тебе максимальную скорость поиска по ключу.

Вопрос: чего ты хочешь добиться?
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 04.10.11 06:20
Оценка:
Здравствуйте, gandjustas, Вы писали:

КД>>Нет, просто надежный и, по-возможности, красивый код. Это долго, дорого и мутно, но в конечном итоге — быстрее и дешевле чем ...

G>Суд по постам — идешь ровно к обратному.

G>Ты хочешь быстрый поиск, поэтому тебе не подходит обычный Find по предикату , но не хочешь делать словарь который даст тебе максимальную скорость поиска по ключу.


Я смотрю на все эти вещи под другим углом И я уже не стесняюсь говорить то, что я о них думаю на самом деле

>Вопрос: чего ты хочешь добиться?

Откуда такой недетский интерес к моим милым развлечениям?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: fddima  
Дата: 04.10.11 07:44
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

F>> Да, это в unsafe. Но, незачем его так избегать, ничего в нём плохого нет. Использование IntPtr не менее unsafe, чем unsafe который ключевое слово, если его применять так же как указатели, или с такими наворотами. Более того, использование нормальных указателей — позволяет получить типо-безопасный код, в отличии прыжков с IntPtr.

КД>Спасибо, я прислушаюсь к этому совету
Тут всё же надо изучать вопрос поплотнее. Из очевидных недостатков — PEVerify будет ругаться, типа unexpected type on stack. Даёт ли это какие-то конкретные ограничения — я честно говоря не знаю, сам проблем не замечал, но этот вопрос нужно рассматривать внимательнее, или кто подскажет? По идее это делает код неверифицируемым, и насколько я понимаю что, что бы его выполнится — понадобится скип проверок — тут надо смотреть где и как твоя сборка будет использоваться и подходит ли это тебе. Я так понимаю что локальные сборки (загруженные с локального диска) не проверяются, и не ограничиваются в плане выполнения неверифицируемого кода. (Повторюсь — проверять / изучать).
Сам я их использую достаточно активно, потому как без информации о типе легко запутаться, и это мне уже сэкономило массу времени. Да и когда-никогда я получаю указатель на массив указателей — вот и адресная арифметика, в нормальном синтаксисе. И это максимально близко к реально происходящим процессам.

PS: Да, с IntPtr они и правда перемудрили, String.Format до сих пор в 32-х битном процессе форматируя IntPtr иногда может выдать 9 знаков.
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 04.10.11 10:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ну это неправда. У MSVC есть некоторые расхождения


Какие ещё "некоторые расхождения" ??? Я об intrinsic'ах, всяких хренях типа __declspec, атрибутах и т.д. и т.п.

А>Дык примерно так я и пишу все программы на C++, с reference counting'ом.


Опять двадцать пять. Система типов это не подсчёт ссылок.

А>А в чем профит перед C++/CLI, учитывая идентичный поганый синтаксис?


В том, что на выходе нативный код. Это interop реализованный с другой стороны.

А>Не понял эту реплику. А WinRT что дает для Windows Phone?


Открывает платформе путь для запуска стороннего нативного кода. WinRT это новый binding для системных API, нормально типизированный и контролируемый.
Re[17]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.10.11 11:46
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

G>>Ты хочешь быстрый поиск, поэтому тебе не подходит обычный Find по предикату , но не хочешь делать словарь который даст тебе максимальную скорость поиска по ключу.


КД>Я смотрю на все эти вещи под другим углом

Под каким?


>>Вопрос: чего ты хочешь добиться?

КД>Откуда такой недетский интерес к моим милым развлечениям?

Есть уверенность что то же чего ты хочешь добиться можно сделать во много раз проще. Теперь осталось понять что же ты хочешь сделать.
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Silver_S Ниоткуда  
Дата: 04.10.11 16:10
Оценка:
x64>... Но зачем нужен новый C++? Зачем нужен COM (не важно в каком виде), если есть .Net? Короче, может кто-нибудь вразумительно ответить на эти вопросы? ... Но внезапно я узнаю, что появился какой-то там ещё WinRT, а чем он лучше для моей задачи, — мне не понятно, что мне делать?
Появилась не просто среда WinRT, а переписывается на нем весь API винды, а реально напишут сколько успеют. И теперь можно использовать весь этот API из обычных проектов на C#, делая ссылки как на .NET сборки, и не возиться с обертками.
Думаю новый WinCPP они делали в первую очередь для себя, но чтоб добро не пропадало выложили как продукт.
Подразделение занимающееся виндой отвергло .NET как вариант на чем можно переписать WinAPI, из-за проблем с производительностью.
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 04.10.11 17:58
Оценка:
Здравствуйте, drol, Вы писали:

D>Ну так и реализуйте соответствующий IComparer<T>, который будет сравнивать T, используя его поля\свойства с этим Вашим TKey.


class TData
{
 string key;

 //а здесь много много больших данных.
};

List<TData> list;


А теперь покажи мне реализацию стандартного IComparer<T>, которая позволит искать в list по string
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: Abyx Россия  
Дата: 04.10.11 19:42
Оценка:
Главная проблема в том, что сейчас WinRT нет у 100% юзеров. Когда выйдет Win8, WinRT будет у тех кто поставит Win8. Может сделают WinRT для Win7, Vista, и даже xpsp3, это будет сколько-то десятков Мб которые надо будет скачать. Но у основной массы юзеров WinRT появится лет через 5.
ИМО будет проще потребовать чтоб юзера был .NET, чем WinRT.
In Zen We Trust
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.10.11 20:01
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Я вообще сижу под VS2010 и генерирую код под NET4. А 2008 (NET3.5) я юзаю чисто как средство для доп. проверок. Привычка такая — чем нибудь еще откомпилировать и проверить. Вот и обнаруживаются такие вот забавные вещи.


А не пробовал использовать VS2010 и компилятор С#4 и собирать под 3.5 фреймворк?
... << RSDN@Home 1.2.0 alpha 5 rev. 1530 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[17]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.10.11 20:01
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>А теперь покажи мне реализацию стандартного IComparer<T>, которая позволит искать в list по string


То ли у тебя полная каша в голове насчет шарпа и фреймворка, то ли ты не можешь нормально объяснить, что хочешь:
public interface IKeyedItem<out TKey>
{
    TKey Key { get; }
}

public static class ListHelper
{
    public static int BinSearchByKey<TKey, TItem>(this List<TItem> list, TKey key, IComparer<TKey> comparer)
        where TItem : IKeyedItem<TKey>
    {
        return list.BinarySearch(default(TItem), new KeyComparer<TKey, TItem>(key, comparer));
    }

    private class KeyComparer<TKey, TItem> : IComparer<TItem>
        where TItem : IKeyedItem<TKey>
    {
        private readonly TKey _key;
        private readonly IComparer<TKey> _comparer;

        public KeyComparer(TKey key, IComparer<TKey> comparer)
        {
            _key = key;
            _comparer = comparer;
        }

        public int Compare(TItem x, TItem y)
        {
            return _comparer.Compare(x.Key, _key);
        }
    }
}

internal class Program
{
    class MyItem : IKeyedItem<string>
    {
        public string Key { get; set; }
    }

    private static void Main(string[] args)
    {
        var items =
            new List<MyItem>
                {
                    new MyItem { Key = "1" },
                    new MyItem { Key = "2" },
                    new MyItem { Key = "3" }
                };
        Console.WriteLine(items.BinSearchByKey("2", StringComparer.OrdinalIgnoreCase));
    }
}

Не компилировал, но должно работать. Коллекция, разумеется, должна быть отсортирована по ключу.
... << RSDN@Home 1.2.0 alpha 5 rev. 1530 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[17]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 05.10.11 01:43
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>А теперь покажи мне реализацию стандартного IComparer<T>, которая позволит искать в list по string


Я же намекал — всё также как в стандартном C++. Контракт BinarySearch аналогичен схеме используемой binary_search\equal_range. Поэтому либо передаёте — прямо в BinarySearch — dummy-объект TData, у которого key проставлен в то что надо искать. Либо определяете некоторый выделенный объект TData — можно и null взять, лишь бы не встречался в качестве содержимого списка — и засовываете вместе с ключом для поиска в реализацию IComparer<TData>.

Понятно ? Или без кода не осилите ?
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: drol  
Дата: 05.10.11 02:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Не компилировал, но должно работать. Коллекция, разумеется, должна быть отсортирована по ключу.


Ваш код кривой В Compare(TItem x, TItem y) Вы на ключ для поиска всегда маппите параметр y, тогда как сравнивающий может подавать тот объект что он ищет и в качестве x.

Хотя работать скорее всего будет, бо в текущей реализации потроха List<T>.BinarySearch передают искомый объект в Compare — ну как минимум на генерическом пути исполнения — в качестве второго параметра
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 05.10.11 07:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

КД>>А теперь покажи мне реализацию стандартного IComparer<T>, которая позволит искать в list по string


AVK>То ли у тебя полная каша в голове насчет шарпа и фреймворка, то ли ты не можешь нормально объяснить, что хочешь:


Возможно, возможно.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 05.10.11 07:44
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>IComparer2


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

Хотя, для использования в отладочном коде — вполне нормально.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 05.10.11 08:03
Оценка:
Здравствуйте, Sinix, Вы писали:

AVK>>То ли у тебя полная каша в голове насчет шарпа и фреймворка, то ли ты не можешь нормально объяснить, что хочешь


S>Охх, ну зачем так всё усложнять? Нужен только Ilspy и 10-15 минут времени:


S>По-хорошему надо бы сделать отдельную перегрузку для массивов, но и так сойдёт.


Следуя своей любимой тактике, ну понятно какой, замечу, что твой алгоритм не позволяет (в отладочном режиме, естественно) контролировать упорядоченность исходного массива.

Через делегат такую поддержку не протащишь.

Не люблю такой код

-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.10.11 11:24
Оценка:
Здравствуйте, drol, Вы писали:

D>Ваш код кривой В Compare(TItem x, TItem y) Вы на ключ для поиска всегда маппите параметр y, тогда как сравнивающий может подавать тот объект что он ищет и в качестве x.


Можно добавить проверку на null, но в данном случае это будет избыточно. Я не рабочий код написал, а только идею показал. Я его даже не компилировал.
... << RSDN@Home 1.2.0 alpha 5 rev. 1530 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: Sinix  
Дата: 05.10.11 13:43
Оценка:
Здравствуйте, AndrewVK, Вы писали:

S>>Охх, ну зачем так всё усложнять?


AVK>Забавное понимание упрощения — написать код в несколько раз больше и сложнее.

Зато он не опирается на недокументированное поведение и не требует промежуточных классов
Re[21]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.10.11 16:45
Оценка:
Здравствуйте, Sinix, Вы писали:

AVK>>Забавное понимание упрощения — написать код в несколько раз больше и сложнее.

S>Зато он не опирается на недокументированное поведение и не требует промежуточных классов

Это все понятно. Но проще это назвать ну никак нельзя.
... << RSDN@Home 1.2.0 alpha 5 rev. 1530 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.10.11 22:11
Оценка:
Здравствуйте, x64, Вы писали:

x64>Всё же, я думаю, это в раздел Win32 надо было. Потому что вот меня, например, больше беспокоит вопрос: зачем это всё, в смысле, какую цель преследует этот WinRT и какие задачи/проблемы призван решить? ... Но внезапно я узнаю, что появился какой-то там ещё WinRT, а чем он лучше для моей задачи, — мне не понятно, что мне делать?


Наивный ты. Видимо ты никогда не читал краткую историю революций от Майкрософт
Автор: VladD2
Дата: 09.10.11
.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.10.11 22:39
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:


Смайлик, в основном, вот за это высказывание:

КД>Справа от моего имени есть ссылочка на нефиговый по размерам проект, где все это (COM/MT/ref count) согласованно работает вместе без каких либо проблем.


Не обижайся, но только использование КОМ и С++ позволило вам сделать из провайдера к СУБД "нефиговый по размерам проект". На самом же деле провайдер к БД это весьма примитивный и незначительный по размерам проект. Но для этого, правда, надо дружить с головой понимать с чем имеешь дело

Для примера объем кода одного из самых сложный языков программирования занимает около двух мегабайт.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.10.11 23:24
Оценка:
Здравствуйте, lazy_walrus, Вы писали:

_>Постоянно думать о подсчёте ссылок надо в C++. В языках с поддержкой IUnknown на уровне компилятора (напр. Delphi) это делается автоматически.


До первой циклической ссылки. Дальше начинаешь думать с удвоенной энергией! Гы-гы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 09.10.11 08:05
Оценка:
Здравствуйте, VladD2, Вы писали:
КД>>Справа от моего имени есть ссылочка на нефиговый по размерам проект, где все это (COM/MT/ref count) согласованно работает вместе без каких либо проблем.

VD>Не обижайся, но только использование КОМ и С++ позволило вам сделать из провайдера к СУБД "нефиговый по размерам проект". На самом же деле провайдер к БД это весьма примитивный и незначительный по размерам проект. Но для этого, правда, надо дружить с головой понимать с чем имеешь дело


Да ну нафиг. Чего обижаться то Я же помню — лет шесть (или уже восемь?) мы с тобой уже общались на эту тему.

Ты просто не в теме.

VD>Для примера объем кода одного из самых сложный языков программирования занимает около двух мегабайт.


Это тот самый
Автор: Коваленко Дмитрий
Дата: 17.09.07
?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.10.11 19:15
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Я не понял причем здесь компилятор. Мы вроде ведем речь, что есть концепции более удобные, гибкие и надежные, чем reference counting.


Все так. Но у них есть только одна пробелма — за них приходится расплачиваться производительностью и потребляемой памятью.

Преимущество подсчета ссылок в том, что оно может применяться как совместно со сборкой мусора, так и совместно с ручным управлением памяти (или полуавтоматическом, на деструкторах. При этом оно не противоречит детерминированной финализации (ужасный термин ).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.10.11 19:21
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Мне не очень понятно в чём тут плюсы по сравнению с классическим решением на умных указателях. Генерация метаинформации — ну ладно, ещё можно простить.


Думаю, главный плюс — это бесшовная интеграция с дотнетом в купе с поддержкой нэйтивного программирования.

Вообще, писать виндовс-приложения на голых плюсах всегда было не удобно. Для упрощения всегда делали кучу оберток. И даже с ними постоянно появлялись проблемы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.10.11 19:28
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

VD>>Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом.


КД>А я вспоминаю ретивого докладчика из MS на одной конфе в 2002 году. И его "следующая операционная система будет позволять выполнять только .NET приложения.". Я на тот уже вроде как должен был бы сказать "данунах", но все равно — что-то внутри вздрогнуло... Пошел уже четвертый год как я сижу на этой "следующей операционной системе" — Vista x64. Все работает. Даже то, что было последний раз откомпилировано в 2001. Страшненьким плюсовым компилятором 98 года.


КД>Жаль, что нельзя вернуться и сказать "не говори гоп, пока не перепрыгнешь"


Ты похоже не понял основного посыла моего высказывания. Ну, да трактавать юмор и сарказм — это последнее дело.

Тебе же я советую не выносить поспешных суждений о дотнете. Ты явно с ним пока что знаком очень поверхностно. Поверь человеку изучавшему COM и .Net по мери их появления — все намного сложнее чем ты себе представляешь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 12.10.11 22:32
Оценка:
Здравствуйте, VladD2, Вы писали:

C>>Мне не очень понятно в чём тут плюсы по сравнению с классическим решением на умных указателях. Генерация метаинформации — ну ладно, ещё можно простить.

VD>Думаю, главный плюс — это бесшовная интеграция с дотнетом в купе с поддержкой нэйтивного программирования.
Её можно было сделать и без изнасилования С++. Win RT в общем и целом выглядит как Yet Another Reference Counted Object Framework с автоматической генерация обёрток по метаинформации, чего-то идеологически нового в нём нет.

Из аналогов: в QT есть бесшовная интеграция с JavaScript, а в GTK издревле вообще интеграция со всем есть (с помощью GObject).

VD>Вообще, писать виндовс-приложения на голых плюсах всегда было не удобно. Для упрощения всегда делали кучу оберток. И даже с ними постоянно появлялись проблемы.

Это всё из-за того, что API было старинное, прямо из 80-х годов.

Win RT можно было бы выпустить в виде кроссплатформенной библиотеки и небольших расширений компилятора для генерации метаинформации. Но MS решили попробовать старый добрый Embrace&Extend, чтобы увеличить lock-in для клиентов. Впрочем, сейчас это выглядит как-то бледновато на фоне того, что всё утекает в web.
Sapienti sat!
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.10.11 23:04
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Её можно было сделать и без изнасилования С++. Win RT в общем и целом выглядит как Yet Another Reference Counted Object Framework с автоматической генерация обёрток по метаинформации,


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

C>чего-то идеологически нового в нём нет.


А надо?

По сравнению с WinAPI — это явный прогресс — типизация + модульность.

C>Из аналогов: в QT есть бесшовная интеграция с JavaScript, а в GTK издревле вообще интеграция со всем есть (с помощью GObject).


Причем тут QT и JavaScript? Как я понимю, тут речь идет об АПИ ОС. Остальное уже детали.

VD>>Вообще, писать виндовс-приложения на голых плюсах всегда было не удобно. Для упрощения всегда делали кучу оберток. И даже с ними постоянно появлялись проблемы.

C>Это всё из-за того, что API было старинное, прямо из 80-х годов.

Ну, да. Вот это и пофиксили.

Я тут могу только согласиться лишь с мнением, что можно было тупо взять дотнет за базу для АПИ. Только предварительно подкрутить производительность и сделав его ядренным. Точнее даже лучше было бы взять то что было разработано в рамках Сингулярити. Они ведь доказали, что быстрый ЖЦ возможне. А джит он на фиг не нужен. Достаточно компиляции при инсталляции или даже вообще без нее. Формат дотнетных сборок это позволяет.

C>Win RT можно было бы выпустить в виде кроссплатформенной библиотеки и небольших расширений компилятора для генерации метаинформации.


+1
Я бы даже сказал, не можно, а нужно. Иначе это АПИ мало кому нужно будет... еще лет 5.

C>Но MS решили попробовать старый добрый Embrace&Extend,


Мне кажется — это что-то из серии охоты на ведьм.

C>чтобы увеличить lock-in для клиентов.


Как новый АПИ может сделать это? И почему это не делал старые расшерения API основанные на WinAPI. Ведь WinAPI не был заморожен в 91-ом.

C>Впрочем, сейчас это выглядит как-то бледновато на фоне того, что всё утекает в web.


Ну, блока — это реальная стратегия МС исправить фатальный недостаток в локальных серверах .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: constant_arapov  
Дата: 14.10.11 02:25
Оценка:
Я смотрю здесь собралась весьма почтенная и грамотная публика. Может кто нибудь сможет ответить на мои вопросы:

1. Сейчас колупаю Windows API. Естественно использую C++ (ну это скорее С, как я понимаю). Более менее разобрался как работать объектами ядра, синхронизацией. Сейчас смотрю, как с GUI работать через WIN API — ну это скорее, чтобы понимать как оно все устроено на нижнем уровне. Вот я смотрю на этот ИМХО говнокод, смесь бульдога с носорогом и крышечками и возникает закономерный вопрос. А БУДУТ ЛИ В WIN 8 ПОДДЕРЖИВАТЬСЯ "КЛАССИЧЕСКИЕ" API ФУНКЦИИ НА СТАНДАРТНОМ С++?


2. Очевидно, что MFC окончательно загинается, GUI на API — долго, нудно, скудно и коряво, скорее всего для GUI будет использоваться в основном .NET, который позволяет быстренько наклепать добротное гуевое приложение. Однако охота использовать API, многопоточность, объекты ядра, синхронизацию, memory mapped files и другие нужные мне низкоуровневые "полезности". Как это все интегрируется ?
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Всем запастись попкорном и ждать новых серий из цикла "краткие истории программных революций от Microsoft". Ведь WinRT наверняка революционно изменит Windows-программирование... примерно на год


Ну про дотнет там то же самое было написано, сам процитировал
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:23
Оценка:
Здравствуйте, Abyx, Вы писали:

A>Главная проблема в том, что сейчас WinRT нет у 100% юзеров. Когда выйдет Win8, WinRT будет у тех кто поставит Win8. Может сделают WinRT для Win7, Vista, и даже xpsp3, это будет сколько-то десятков Мб которые надо будет скачать. Но у основной массы юзеров WinRT появится лет через 5.


WinRT будет только готов через год-два, как часть Win8. Не думаю, что будут выпускать обновление для Win7, нет смысла.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:28
Оценка:
Здравствуйте, constant_arapov, Вы писали:

_>1. Сейчас колупаю Windows API. Естественно использую C++ (ну это скорее С, как я понимаю). Более менее разобрался как работать объектами ядра, синхронизацией. Сейчас смотрю, как с GUI работать через WIN API — ну это скорее, чтобы понимать как оно все устроено на нижнем уровне. Вот я смотрю на этот ИМХО говнокод, смесь бульдога с носорогом и крышечками и возникает закономерный вопрос. А БУДУТ ЛИ В WIN 8 ПОДДЕРЖИВАТЬСЯ "КЛАССИЧЕСКИЕ" API ФУНКЦИИ НА СТАНДАРТНОМ С++?


Дались вам эти крышечки, ей богу, дело же вовсе не в них. Можно использовать winapi напрямую, но тогда metro приложение написать не получится, только обычное

_>2. Очевидно, что MFC окончательно загинается, GUI на API — долго, нудно, скудно и коряво, скорее всего для GUI будет использоваться в основном .NET, который позволяет быстренько наклепать добротное гуевое приложение.


Если речь идет о будущем, то для GUI будет использоваться WinRT и то, что туда перенесли из WPF.

_> Однако охота использовать API, многопоточность, объекты ядра, синхронизацию, memory mapped files и другие нужные мне низкоуровневые "полезности". Как это все интегрируется ?


Можно использовать .NET обертки, можно самому вызывать неуправляемый код как p/invoke так и через COM.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:29
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну а чего ты от Синовского хотел? Да, у него классно получается разведенный в разработке бардак устранить и начать выпускать продукты качественно и в срок. Но вот технически, в плане новых идей, даже просто их оценки — он импотент. Нет у него инженерной чуйки.


Не соглашусь — COM для своего времени был очень ничего, да и WinRT в общем сделан нормально.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:31
Оценка:
Здравствуйте, MxMsk, Вы писали:

S_S>>Подразделение занимающееся виндой отвергло .NET как вариант на чем можно переписать WinAPI, из-за проблем с производительностью.

MM>Лучше бы они вместо отвержения, продавили оптимизацию .Net.
Не уверен, что это возможно. Пытались ведь в longhorn'е, и ничего не вышло.

MM>Ну, ладно. Если фича с простым подключением натива, как сборок, будет работать, то круто.

А почему нет, COM-то уже сейчас работает.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:35
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Я в шоке. Нет слов. Это какое-то чудовищное г..но. Какой же это C++? Зачем они изменили синтаксис? Это не C++ и не дотнет. Какая-то технология-выродок с языком-мутантом.

То есть проблема в синтаксисе примеров на C++? Что вызывает такую реакцию?

А>Что ж это такое будет-то? Получается какая-то еще одна какая-то непонятная платформа со своим собственным довольно поганым языком (никакой это, конечно же, не C++).

Платформа понятная, а для разработки можно и другой язык использовать

А>Reference counting? Вы меня шутите? И для reference counting'а делать синтаксические расширения?

А почему нет

А>COM? В 2011 году? Они там совсем долбанулись?

Предложите свой вариант?

А>У меня нет больше никаких слов, кроме матных. Товарища Синофского надо подвесить за определенную часть тела и больше никогда не подпускать к компьютеру.

... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я тут могу только согласиться лишь с мнением, что можно было тупо взять дотнет за базу для АПИ. Только предварительно подкрутить производительность и сделав его ядренным. Точнее даже лучше было бы взять то что было разработано в рамках Сингулярити. Они ведь доказали, что быстрый ЖЦ возможне. А джит он на фиг не нужен. Достаточно компиляции при инсталляции или даже вообще без нее. Формат дотнетных сборок это позволяет.


А что, в singularity был GUI?

C>>Win RT можно было бы выпустить в виде кроссплатформенной библиотеки и небольших расширений компилятора для генерации метаинформации.

VD>+1
VD>Я бы даже сказал, не можно, а нужно. Иначе это АПИ мало кому нужно будет... еще лет 5.

По-моему этот WinRT еще минимум год докручивать будут.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 23.10.11 20:45
Оценка:
Здравствуйте, Cyberax, Вы писали:

VD>>Вроде как где-то тут проскакивала информация, что можно и без оберток жить (сам себе уши обморожу...).

C>Почему же? То что я вижу не является чем-либо лучше классических умных указателей. Если бы я писал на Win RT интерфейс для существующего кода, то написал бы обёртку для boot::shared_ptr.

Кстати, мне в общем показалось, что эта хрень с крышкой — это сахар для shared_ptr. Нет?
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.10.11 21:59
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, VladD2, Вы писали:


VD>>Я тут могу только согласиться лишь с мнением, что можно было тупо взять дотнет за базу для АПИ. Только предварительно подкрутить производительность и сделав его ядренным. Точнее даже лучше было бы взять то что было разработано в рамках Сингулярити. Они ведь доказали, что быстрый ЖЦ возможне. А джит он на фиг не нужен. Достаточно компиляции при инсталляции или даже вообще без нее. Формат дотнетных сборок это позволяет.


G>А что, в singularity был GUI?


А какая разница? Было бы на чем писать. К тому же, вряд ли кто-то в здравом уме будет переписывать все ядерные сервисы. Переписывание АПИ — это все же не полное переписывание. Это всего лишь новые входные точки, с новым интерфейсом.

VD>>Я бы даже сказал, не можно, а нужно. Иначе это АПИ мало кому нужно будет... еще лет 5.


G>По-моему этот WinRT еще минимум год докручивать будут.


А что это меняет? Он лет пять (а реальная оценка все 10) не будет никому нужен с момента выхода в свет. Так что они могут докруичать сколько угодно.
Тут проблема в том, что этот АПИ нельзя исползовать для разработки под Виндовс. Ведь на прошлых версиях винды (коих подавляющее большинство) этого апи нет.
Так что единственное решение, чтобы эта затея не сдохла, является выпуск Вынь8 АПИ для прошлых версий виндовс. Ну, хотя бы в режиме эмуляции.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 23.10.11 23:07
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А что это меняет? Он лет пять (а реальная оценка все 10) не будет никому нужен с момента выхода в свет. Так что они могут докруичать сколько угодно.

VD>Тут проблема в том, что этот АПИ нельзя исползовать для разработки под Виндовс. Ведь на прошлых версиях винды (коих подавляющее большинство) этого апи нет.
VD>Так что единственное решение, чтобы эта затея не сдохла, является выпуск Вынь8 АПИ для прошлых версий виндовс. Ну, хотя бы в режиме эмуляции.

WinRT нужен для Microsoft App Store, а не Windows в целом. Поэтому и востребован он станет сразу и поддержка прошлых версий не понадобится.
Ce n'est que pour vous dire ce que je vous dis.
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 24.10.11 04:30
Оценка:
Здравствуйте, Gollum, Вы писали:

VD>>>Вроде как где-то тут проскакивала информация, что можно и без оберток жить (сам себе уши обморожу...).

C>>Почему же? То что я вижу не является чем-либо лучше классических умных указателей. Если бы я писал на Win RT интерфейс для существующего кода, то написал бы обёртку для boot::shared_ptr.
G>Кстати, мне в общем показалось, что эта хрень с крышкой — это сахар для shared_ptr. Нет?
Это точно не shared_ptr, но что-то подобное.
Sapienti sat!
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: aloch Россия  
Дата: 24.10.11 05:19
Оценка:
Здравствуйте, VladD2, Вы писали:

Надеюсь, что ты сам то понимаешь, что этот текст изначально писал идиот (или человек, им притовряющийся)?


Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 24.10.11 07:38
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Это точно не shared_ptr, но что-то подобное.


Герб Саттер вроде в своей презентации говорил что это обертка над shared_ptr. А почему точно?
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 24.10.11 07:40
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Так что единственное решение, чтобы эта затея не сдохла, является выпуск Вынь8 АПИ для прошлых версий виндовс. Ну, хотя бы в режиме эмуляции.


Так и про телефонные винды говорили, а потом раз и IOS появился. Может такое быть что как раз наоборот, последствия такого шага не такие уж и негативные. Но это время покажет.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 24.10.11 08:21
Оценка:
Здравствуйте, Gollum, Вы писали:

C>>Это точно не shared_ptr, но что-то подобное.

G>Герб Саттер вроде в своей презентации говорил что это обертка над shared_ptr. А почему точно?
У shared_ptr интересная особенность — он работает с неполными объектами, так как хранит счётчик ссылок и уничтожитель в отдельном блоке памяти. Для COM это не нужно, так как уничтожением занимается сам IUnknown.
Sapienti sat!
Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 10:05
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>WinRT нужен для Microsoft App Store, а не Windows в целом. Поэтому и востребован он станет сразу и поддержка прошлых версий не понадобится.


Тогда не фига было это называть новым Windows API.

В прочем, зачем сужать рынок этого App Store для меня тоже остается загадкой.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: aloch Россия  
Дата: 24.10.11 14:05
Оценка:
Здравствуйте, aloch, Вы писали:

В догонку — ты ведь и сам знаешь один фатальный недостаток у С# — он у тебя в подписи.

Это — сарказм.


Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 15:00
Оценка:
Здравствуйте, aloch, Вы писали:

A>Может он и умный человек, но сказанное им это или "для красного словца" (т.е. журналистская сущность взяла верх и он притворился идиотом), или он не совсем понимает о чем пишет (чистый идиот).


A>Т.к. мы знаем, что OLE 1 был развитием DDE. А OLE2 это и есть COM. И при этом многие части Win API существуют в виде COM-интерфейсов (например, DirectX, URL Monikers, Windows Shell, тот-же хостинг .Net и множество жругих вещей..). Или нужно было остановиться на DDE, и больше ничего не дедать? При этом и DDE и COM и OLE работали и работают и ни куда из Windows не денуться.


Ну, вы батенька и зануда!

Чувак и стебется над тем, что уже и в самом МС никто не понимает что к чему является названием и причем тут Active, X и +.

A>Ну и других нестыковок по тексту — масса. Ты сам их найдешь.


Мне не надо. У меня батхерта нет. Я прекрасно понимаю, что читать надо суть. И прекрасно вижу, что суть эта проявляется и по сей день. И эта тема тому прекрасное доказательство.

A>Возможно это и разновидность сарказма. Просто мне не нравиться сарказм, основанный на передергивании фактов.


А ты еще раз перечитай это дело, но лет эдак через 10.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 15:04
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Я бы не назвал это проблемой. Наоборот, это достаточно правильный подход. Имхо в большой копорации монолита и не может быть, а жесткая иерархическая структура из за несогласованности частей обязательно превращается в полный идиотизм. Поэтому рабочие группы, соревнующиеся за финансирование. Тут все верно, проблема у них в другом месте.

G>А мы смеемся над результатом.

Проблема в том, что МС колбасит из года в год. То они идут в одно направление, то в другое. Нет, в обществе стабильности (с)

Довольно глупо подсаживать миллионную армию разработчиков на дотнет, а потом создавать еще один АПИ похожий на дотнет, но другой.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 15:05
Оценка:
Здравствуйте, aloch, Вы писали:

A>В догонку — ты ведь и сам знаешь один фатальный недостаток у С# — он у тебя в подписи.


Дык я не в МС работаю ведь.

A>Это — сарказм.


Спасибо за подсказку! Я бы ни в жизнь не догадался .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 15:09
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Можно использовать winapi напрямую, но тогда metro приложение написать не получится, только обычное


А что под этим понимается? Встраивание в прокручиваемую панельку? А оно надо для 99% приложений?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 24.10.11 15:28
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А что под этим понимается? Встраивание в прокручиваемую панельку? А оно надо для 99% приложений?


В частности, как уже тут кто-то писал, только metro apps можно будет продавать в app store.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 15:56
Оценка:
Здравствуйте, Gollum, Вы писали:

G>В частности, как уже тут кто-то писал, только metro apps можно будет продавать в app store.


А одтнетные приложения использующие обертки для нового АПИ к таковым относиться будут?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 24.10.11 15:58
Оценка:
Здравствуйте, VladD2, Вы писали:

G>>В частности, как уже тут кто-то писал, только metro apps можно будет продавать в app store.

VD>А одтнетные приложения использующие обертки для нового АПИ к таковым относиться будут?

В visual studio есть некий профиль для metro apps. Надо собирать приложение под этим профилем. Видимо, какой-то набор фич использовать нельзя.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 24.10.11 17:04
Оценка:
> Довольно глупо подсаживать миллионную армию разработчиков на дотнет, а потом создавать еще один АПИ похожий на дотнет, но другой.

Ты чего-то не понимаешь или не хочешь признавать. .NET и ОS API это очевидно несовместимые вещи. Библиотеки разного уровня и назначения. Очевидно нужно и то и другое.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 18:26
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Ты чего-то не понимаешь или не хочешь признавать. .NET и ОS API это очевидно несовместимые вещи.


Есть еще один вариант. Чего-то не понимаешь ты. В Сингулярити почему-то API ОS оказался совместим с клоном дотнета.

G>Библиотеки разного уровня и назначения. Очевидно нужно и то и другое.


Ну, тебе очевидно одно. Мне очевидно другое. Уверен, что там было не хилое противостояние и девелопер-дивижон уступил ОС-ному. Вот и все. А возможно, не возможно — это для баб на базарах разговоры, а не для инженеров. Скажут — сделаем. Вот наш диви!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.11 21:32
Оценка:
Здравствуйте, Gollum, Вы писали:

VD>>Так что единственное решение, чтобы эта затея не сдохла, является выпуск Вынь8 АПИ для прошлых версий виндовс. Ну, хотя бы в режиме эмуляции.


G>Так и про телефонные винды говорили, а потом раз и IOS появился.


В IOS новый АПИ сделали? Там весь АПИ, вроде как на Обжектив С, то есть классика проверенная еще в Next.

G>Может такое быть что как раз наоборот, последствия такого шага не такие уж и негативные.


Может. Но вряд ли. Людям нужны переносимые стандарты, а не очередное пропреитарное АПИ. Вот если бы написав приложение для этого АПИ можно было бы приложение выложить в Эпэл Стор, Вин Стор и еще и на Андройд (что он там?), вот такой АПИ с руками оторвали.

Скоро многие вновь задумаются о переходе на Дельфи .

G>Но это время покажет.


+1
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 25.10.11 08:28
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>В IOS новый АПИ сделали? Там весь АПИ, вроде как на Обжектив С, то есть классика проверенная еще в Next.

Но API-то новый. То есть это была операционка с нуля. Это был сознательный шаг — забить на обратную совместимость, на уже написанные приложения.

VD>Может. Но вряд ли. Людям нужны переносимые стандарты, а не очередное пропреитарное АПИ.

Тут два момента. API никто не сможет сделать переносимым. Он заточен под Win8 на данный момент. По-другому врядли можно сделать, пока GUI и GC не особо дружат, к сожалению.
А вот с С++'ом как-то да, намудрили.

VD>Вот если бы написав приложение для этого АПИ можно было бы приложение выложить в Эпэл Стор, Вин Стор и еще и на Андройд (что он там?), вот такой АПИ с руками оторвали.

Это, к сожалению, фантастика.

VD>Скоро многие вновь задумаются о переходе на Дельфи .

А вот это врядли
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.10.11 14:27
Оценка:
Здравствуйте, DorfDepp, Вы писали:

DD>Программирование "под Windows" уже много лет как не интересует широкие массы. Все давно переехали в веб. Я, к примеру, уже много лет игнорирую все их десктопные технологии. Пережиток прошлого.


В корпоративном секторе — да. А вот пользовательские приложения уже переезжают назад. Лениво людям открывать браузер и набирать ссылки.
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.11 14:57
Оценка:
Здравствуйте, aloch, Вы писали:

A>Есть, есть Не обманывай себя. Быть Гуру .Net, даже написать крутой .Net-язык,


Спасибо за лестную оценку.

A>в свое время утверждать, что MS в Viste сделает Managed Internet Explorer.


Это уже домыслы.

A>И тут такой облом — WinRT


И вот представь себе нет. Когда .Net только появился и некоторые начали пророчить закат эры COM-а у меня действительно было нечто что можно охарактеризовать батхертом — я ощущал себя кинутым.

А сейчас все эти игры уже ничего кроме смеха не вызывают. Я прекрасно понимаю, что дотнет никуда не денеется, да и альтернатив достаточно.

Что до языка, то мы тут как раз подумываем о сваливании с дотнета. Точнее о мультиплатформности. Так шта...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: aloch Россия  
Дата: 25.10.11 15:17
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Спасибо за лестную оценку.


Извини, если обидел. Но батхерт про ты првый начал.

A>>в свое время утверждать, что MS в Viste сделает Managed Internet Explorer.


VD>Это уже домыслы.


http://rsdn.ru/forum/dotnet/452756.1.aspx
Автор: VladD2
Дата: 22.11.03

http://rsdn.ru/forum/dotnet/454291.1.aspx
Автор: VladD2
Дата: 24.11.03


VD>Что до языка, то мы тут как раз подумываем о сваливании с дотнета. Точнее о мультиплатформности. Так шта...


Если не секрет, то куда. Как я понимаю в Nemerle на CLR многое завязано. Mono?


Re[12]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.11 15:22
Оценка:
Здравствуйте, Gollum, Вы писали:

VD>>В IOS новый АПИ сделали? Там весь АПИ, вроде как на Обжектив С, то есть классика проверенная еще в Next.

G>Но API-то новый. То есть это была операционка с нуля. Это был сознательный шаг — забить на обратную совместимость, на уже написанные приложения.

Там 90% АПИ — это юниксовый апи. И операционка с нуля не была написана. Это была адаптация Mac OS X. Нужно рассказывать откуда растут ноги у Mac OS X?

Вот WinRT — это действительно "сознательный шаг — забить на обратную совместимость, на уже написанные приложения". Тут не поспоришь.

VD>>Может. Но вряд ли. Людям нужны переносимые стандарты, а не очередное пропреитарное АПИ.

G>Тут два момента. API никто не сможет сделать переносимым.

О как? А .Net. Java и (скажем) QT как тогда называть?

G>Он заточен под Win8 на данный момент. По-другому врядли можно сделать, пока GUI и GC не особо дружат, к сожалению.


GUI и GC? Та сам то в это веришь? У меня вот немерловая интеграция к МЫ 2010 очень прилично себе работает. А там все на дотнете. И гуи, и парсиг, и все остальное.

G>А вот с С++'ом как-то да, намудрили.


Ну, хоть в чем-то мы с тобой сходимся.
Ты все же фильтруй то что в МС пиарят. Им же по барабану. Пиарщики новую линию двинули и будут хоть красное черным называть.

VD>>Вот если бы написав приложение для этого АПИ можно было бы приложение выложить в Эпэл Стор, Вин Стор и еще и на Андройд (что он там?), вот такой АПИ с руками оторвали.

G>Это, к сожалению, фантастика.

Ты про Delphi Fire Monkey слыхал?

VD>>Скоро многие вновь задумаются о переходе на Дельфи .

G>А вот это врядли

С таким подходом как у МС сказка может стать былью куда раньше чем ты сможешь осознать это.
Я понимаю политику привязки к платформе. Но политика привязки к версии Винды — это уже перебор. Не находишь?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.11 15:34
Оценка:
Здравствуйте, aloch, Вы писали:

VD>>Спасибо за лестную оценку.


A>Извини, если обидел.


Чем?

A>Но батхерт про ты првый начал.


Я дико извиняюсь, но ничего поделать не могу. Ну, нет у меня батхерта по этому поводу. А эта тема просто пронизана им.

Открою очень простой сикрет. Со временем я перестал ассоциировать себя с технологиями и компаниями. Так что я просто оцениваю увиденное. Не более того.

A>>>в свое время утверждать, что MS в Viste сделает Managed Internet Explorer.


VD>>Это уже домыслы.


A>http://rsdn.ru/forum/dotnet/452756.1.aspx
Автор: VladD2
Дата: 22.11.03

A>http://rsdn.ru/forum/dotnet/454291.1.aspx
Автор: VladD2
Дата: 24.11.03


Ты читай внимательнее. Тат речь идет о Лонгхорне. Там действительно планировалось все сделать менеджед. Даже файловую систему (точнее надстройку над ней). Во второй ссылке речь идет об обычном виндовом эксплорере. Так что вообще мимо.

VD>>Что до языка, то мы тут как раз подумываем о сваливании с дотнета. Точнее о мультиплатформности. Так шта...


A>Если не секрет, то куда. Как я понимаю в Nemerle на CLR многое завязано. Mono?


Да Моно и так поддерживается. Думаем сделать бэкэнды для нэйтив и явы. Там публике больше надо удобства и возможностей нежели громких имен и толстых пресс-релизов. Дотнет, само собою, останется. Но будут и другие платформы. Найти бы сил.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 25.10.11 15:46
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Там 90% АПИ — это юниксовый апи. И операционка с нуля не была написана. Это была адаптация Mac OS X. Нужно рассказывать откуда растут ноги у Mac OS X?

Не нужно. Смысл в том, что приложения пришлось писать с нуля, и GUI API новый.

VD>Вот WinRT — это действительно "сознательный шаг — забить на обратную совместимость, на уже написанные приложения". Тут не поспоришь.

Без этого нельзя было обеспечить безопасность неуправляемого кода.

VD>О как? А .Net. Java и (скажем) QT как тогда называть?

Из этого только QT более менее нормально работал. Клиентские приложения на .NET и Java под Win не сильно распространены. Похоже у нас расхождение по тому, что мы называем API.

VD>GUI и GC? Та сам то в это веришь? У меня вот немерловая интеграция к МЫ 2010 очень прилично себе работает. А там все на дотнете. И гуи, и парсиг, и все остальное.

Верю. Все приложения со сложным GUI на дотнете требуют очень приличные ресурсы для работы. Нам например, не смотря на то, что xaml очень нравился, .NET не подошел.

VD>Ты все же фильтруй то что в МС пиарят. Им же по барабану. Пиарщики новую линию двинули и будут хоть красное черным называть.

Думаю, что я вполне адекватно воспринимаю происходящее

VD>Ты про Delphi Fire Monkey слыхал?

Нет. Набрал в гугле — посмотрел. Если у них выходит не явообразный жуткий GUI, и не тормозит — снимаю шляпу.

VD>Я понимаю политику привязки к платформе. Но политика привязки к версии Винды — это уже перебор. Не находишь?

Это не привязка к версии винды. Это политика — мы решились на то, чтобы обрубить тянущийся за нами десятками лет хвост legacy apps, и начинаем жить по-новому. Подход этот мне нравится, но реализация пока настораживает. Новый GUI не подходит, на мой взгляд, для десктопов, и это печально.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: constant_arapov  
Дата: 26.10.11 14:10
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, constant_arapov, Вы писали:


_>>1. Сейчас колупаю Windows API. Естественно использую C++ (ну это скорее С, как я понимаю). Более менее разобрался как работать объектами ядра, синхронизацией. Сейчас смотрю, как с GUI работать через WIN API — ну это скорее, чтобы понимать как оно все устроено на нижнем уровне. Вот я смотрю на этот ИМХО говнокод, смесь бульдога с носорогом и крышечками и возникает закономерный вопрос. А БУДУТ ЛИ В WIN 8 ПОДДЕРЖИВАТЬСЯ "КЛАССИЧЕСКИЕ" API ФУНКЦИИ НА СТАНДАРТНОМ С++?


И все-таки можно ли будет использовать CreateWindow, ShowMessage и т.д. для обычных "классических" десктопных приложений (как я понял метро — для мобильных приложений больше преднахначен) ?
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 26.10.11 18:49
Оценка:
Здравствуйте, constant_arapov, Вы писали:

_>И все-таки можно ли будет использовать CreateWindow, ShowMessage и т.д. для обычных "классических" десктопных приложений (как я понял метро — для мобильных приложений больше преднахначен) ?


В том то и дело, что нет. Можно исопльзовать старый код, будут получаться обычные приложения, которые поддерживаются win8 в привычной среде.
Metro apps декларируются как десктопные приложения следующего поколения. Их можно будет распространять через windows store, использовать его возможности по лицензированию, и т.п.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: constant_arapov  
Дата: 27.10.11 02:51
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, constant_arapov, Вы писали:


_>>И все-таки можно ли будет использовать CreateWindow, ShowMessage и т.д. для обычных "классических" десктопных приложений (как я понял метро — для мобильных приложений больше преднахначен) ?


G>В том то и дело, что нет. Можно исопльзовать старый код, будут получаться обычные приложения, которые поддерживаются win8 в привычной среде.

G>Metro apps декларируются как десктопные приложения следующего поколения. Их можно будет распространять через windows store, использовать его возможности по лицензированию, и т.п.

Не вполне понятно — вот эти новые API WinRT будут оберткой для Win32(64) API ? Или для совместимости будут объявлены Win32(64) API, но фактически вызывать они будут API WinRT ? Типа как с приложениями MS DOS в свое время они как бы поддерживаются — для совместимости старых прог, но дальнейшая разработка приложений в подобном стиле не приветствуется.
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 27.10.11 03:14
Оценка:
Здравствуйте, constant_arapov, Вы писали:

_>Не вполне понятно — вот эти новые API WinRT будут оберткой для Win32(64) API ? Или для совместимости будут объявлены Win32(64) API, но фактически вызывать они будут API WinRT ? Типа как с приложениями MS DOS в свое время они как бы поддерживаются — для совместимости старых прог, но дальнейшая разработка приложений в подобном стиле не приветствуется.


Пока что, это отдельные API с разной функциональностью.
Ce n'est que pour vous dire ce que je vous dis.
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 27.10.11 07:46
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>Пока что, это отдельные API с разной функциональностью.


Не совсем так. Частично они перекрываются, и некоторые вещи из win32 которые можно использовать в WinRT завернуты в прокси, которые пытаются обеспечивать безопасность.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: aloch Россия  
Дата: 27.10.11 10:07
Оценка:
Здравствуйте, aloch, Вы писали:

Мне вот не совсем понятно, за что минус Можно пояснить?


Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 28.10.11 01:18
Оценка:
Здравствуйте, VladD2, Вы писали:

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


Я за переезд на LLVM.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: Hacker_Delphi Россия  
Дата: 28.10.11 06:47
Оценка:
Здравствуйте, IB, Вы писали:

IB>Это хорошая мантра, продолжай ее повторять ))


Правильно — нам работы больше будет — мы и десктопом не побрезгуем
... << RSDN@Home 1.2.0 alpha 5 rev. 1538>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Hacker_Delphi Россия  
Дата: 28.10.11 07:07
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Не соглашусь — COM для своего времени был очень ничего, да и WinRT в общем сделан нормально.


одно маленькое замечание, COM как таковой изобретен вовсе не компанией MS. по-моему — это детище DEC. точно уже не помню.
и изначально там как раз были AddRef, Release, QueryInterface. только называлось это IInterface вроде как (хотя как раз тут могу путать).
... << RSDN@Home 1.2.0 alpha 5 rev. 1538>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Hacker_Delphi Россия  
Дата: 28.10.11 07:13
Оценка:
Здравствуйте, VladD2, Вы писали:

[skipped]

только одно маленькое исправление: COM был раньше, чем OLE — OLE на нем основан а так — вполне даже доходчиво

VD>


соглавен.
... << RSDN@Home 1.2.0 alpha 5 rev. 1538>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 30.10.11 18:27
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Не соглашусь — COM для своего времени был очень ничего


СОМ был тем еще отстоем, и только массовое его использование самим МС не дало ему склеить оапки.

G>да и WinRT в общем сделан нормально.


Рано об этом пока говорить.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 30.10.11 18:42
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Я бы не назвал это проблемой. Наоборот, это достаточно правильный подход. Имхо в большой копорации монолита и не может быть


Может может. Погляди на Яблоко.
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 30.10.11 21:21
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Я тут попробовал описать свои впечатления от WinRT...

G>...skip

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

Нафиг, нафиг. Я вот снова вспомнил... может я лучше дождусь продакшна ветки Singularity ? Или не дождусь, черт его знает что там происходит, из Miscrosoft Research новостей как с альфа-центавры. Что там у них происходит?
(если кто не в курсе Singularity — это микроядерная.. "OS после Windows" (с)Microsoft. старая станица на WIKI и довольно ладно скроена, с нуля, микроядерно)
.
Хочу инвайт на хабру :)
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 31.10.11 06:53
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Честно говоря, за 10 лет так особых проблем в гуях именно с GC я не заметил.


Тогда почему не появилось большое количество десктопных приложений на WPF? На аспнете появилось, но ни winforms ни wpf не взлетели. На мой субъективный взгляд оно медленно работает.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 31.10.11 06:54
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>СОМ был тем еще отстоем, и только массовое его использование самим МС не дало ему склеить оапки.


Я не согласен. Но даже если и так, какая компонентная система была лучше?

НС>Рано об этом пока говорить.


Почему рано, он уже есть, видно что там внутри и выводы делать вполне можно.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 31.10.11 06:57
Оценка:
Здравствуйте, enCobalt, Вы писали:

C>Да ну нафиг, это какой-то мутант-чебурашка.

Да ну нафиг, это не мутант-чебурашка

C>Я даже сегодня не знаю как писать современный софт, если есть заказчики, сотрудники которых сидят за Win2K по сей день. (в глубине души это моя любимая операционка за всю историю)

Это уже другая проблема. Если заказчик готов оплачивать разработку под win2K — пусть платит.

C>Нафиг, нафиг. Я вот снова вспомнил... может я лучше дождусь продакшна ветки Singularity ? Или не дождусь, черт его знает что там происходит, из Miscrosoft Research новостей как с альфа-центавры. Что там у них происходит?

Теперь там происходит Midori.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.11 07:54
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, AndrewVK, Вы писали:


AVK>>Честно говоря, за 10 лет так особых проблем в гуях именно с GC я не заметил.


G>Тогда почему не появилось большое количество десктопных приложений на WPF?

А сколько вообще новых приложенй для десктопа появилось за последние 10 лет?
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 31.10.11 08:46
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Тогда почему не появилось большое количество десктопных приложений на WPF? На аспнете появилось, но ни winforms ни wpf не взлетели.


Причин немало. Начиная с той, что десктопный софт давным давно устаканился и больших продуктов с нуля стартует очень немного. Конкретно по WPF есть дополнительные аспекты, типа доступности только на ХР в момент первого релиза или требования неплохого железа для приемлемой скорости работы собственно графики (с GC это не связано, рендерер там вообще unmanaged).

G> На мой субъективный взгляд оно медленно работает.


Что именно медленно работает? Кривые компоненты типа DevExpress или таки GC?
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 31.10.11 08:48
Оценка:
Здравствуйте, enCobalt, Вы писали:

C>Нафиг, нафиг. Я вот снова вспомнил... может я лучше дождусь продакшна ветки Singularity ?


Не дождешься. Проект никогда для этого не предназначался и сейчас вообще закрыт.

C>(если кто не в курсе Singularity — это микроядерная.. "OS после Windows" (с)Microsoft.


Microsoft никогда не позиционировал Singularity как замену Windows. И NT, кстати, изначально тоже была микроядерной.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: _d_m_  
Дата: 31.10.11 09:31
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Потому что все может 100 раз поменяться, да и для нормальной оценки надо плотно повозиться с технологией хотя бы месяц-другой. Тот же WPF, про который ты поминаешь — очень красиво смотрелся на пререлизах. А к релизу море неприятностей вылезло. Или WCF — прекрасная, без преувеличения, технология. Однако порог вхождения, как показала практика, очень высок.


Дак все оно смотрится сначала как этакое простое и пушистое, а потом оказывается что айсберг не так уж прост. Стоит немного уйти от стандартных юзкейсов, так огребаешь столько тонкостей... Но уж лучше WCF чем Remoting.
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 31.10.11 09:58
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Дак все оно смотрится сначала как этакое простое и пушистое, а потом оказывается что айсберг не так уж прост.


Вот поэтому я и говорю, что говорить о технической состоятельности WinRT пока очень рано.

___> Но уж лучше WCF чем Remoting.


Лучше. Но в свое время МС урезала доступность его W2К3 минимум, что на консервативном серверном рынке было равносильно полной невозможности применения в незаказных продуктах. А сейчас у нас, когда почти весь ремоутинг руками переписали (вчера добил MTOM парсер, осталась только транспортная синка в фреймворке) уже смысла нет переходить. Проще с нуля свой специализированный стек написать на базе голого HTTP.
Re[14]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 31.10.11 11:41
Оценка:
> Тогда почему не появилось большое количество десктопных приложений на WPF? На аспнете появилось, но ни winforms ни wpf не взлетели. На мой субъективный взгляд оно медленно работает.

Оно само по себе очень плохо сделано, дело не в GC. Оно и не взлетит, в этом самолете щели фезюляжа затыкали мешками с песком.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 31.10.11 11:47
Оценка:
> G>Я бы не назвал это проблемой. Наоборот, это достаточно правильный подход. Имхо в большой копорации монолита и не может быть
>
> Может может. Погляди на Яблоко.

Не может. Это классика управления. И что значит погляди на яблоко? Пока внутри не поработаешь именно в орг-структуре, невозможно узнать монолит оно или нет. Да стопроцентов не монолит, они же не дураки там.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 31.10.11 12:38
Оценка:
Здравствуйте, Gollum, Вы писали:

C>>из Miscrosoft Research новостей как с альфа-центавры. Что там у них происходит?

G>Теперь там происходит Midori.

Спасибо! Но информации практически никакой.. Даже не как с альфа-центавры, а как из Apple.
Хочу инвайт на хабру :)
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 31.10.11 12:54
Оценка:
Здравствуйте, AndrewVK, Вы писали:

C>>(если кто не в курсе Singularity — это микроядерная.. "OS после Windows" (с)Microsoft.


AVK>Microsoft никогда не позиционировал Singularity как замену Windows.


Я привел цитату с chanel9. Помню как я тогда мечтал, что стану старым и толстым, по мне будут прыгать внуки и спрашивать "Деда, а расскажи какая она была, Windows?"

Сейчас я думаю можно продолжить ту мысль. Сейчас я бы им ответил "Она была как жена, которая сварливая и с заскоками, но борщ в принципе готовит. Там еще окошки были их можно было перетаскивать, менять размер.. Это правда не с первой Windows началось.. Еще можно было сворачивать и потом опять доставать, а не очень нужные перетаскивать на второй монитор... А потом Б#ЯТЬ в этом прекрасном мире кто-то увидел <b>фатальный недостаток</b> и на десктопах появился Метро. А ботнеты и winlock остался, поому-что это не фатальный недостаток."
.
Хочу инвайт на хабру :)
Re[4]: [ANN] WinRT - новое компонентное API для Windows 8
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 31.10.11 13:57
Оценка:
Здравствуйте, enCobalt, Вы писали:

C>Сейчас я думаю можно продолжить ту мысль. Сейчас я бы им ответил "Она была как жена, которая сварливая и с заскоками, но борщ в принципе готовит. Там еще окошки были их можно было перетаскивать, менять размер.. Это правда не с первой Windows началось.. Еще можно было сворачивать и потом опять доставать, а не очень нужные перетаскивать на второй монитор... А потом Б#ЯТЬ в этом прекрасном мире кто-то увидел <b>фатальный недостаток</b> и на десктопах появился Метро. А ботнеты и winlock остался, поому-что это не фатальный недостаток."


С ботнетами ситуация улучшится когда установка приложений будет только через магазин.
Ce n'est que pour vous dire ce que je vous dis.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 31.10.11 14:33
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>С ботнетами ситуация улучшится когда установка приложений будет только через магазин.


Не улучшится. Майкрософт годами закрывая глаза на пиратсво ради покрытия территории пользователей своей ОС сейчас попытается превратить территорию в качество? Легальную и модерируемую чистую экосистему как у Apple? IMHO утопизм.

Кроме того иньекции браузер-джава никуда не денутся. Чуть более чем домохозяйки обоих полов отключают UAC, из-за долбаных окошек по любому поводу, и отчасти этот гнев обоснован!. Почему меня МакОсь так не задалбывает подобными окошками (а там еще и пароль ввести надо между прочим).

Что-то не так в самой консерватории. Какого черта сама архитектура настолько везде кривая, что все время UAC. А они в этом развлекаются UI начиная с Висты (тьфу-тьфу, не поминай всуе) и WinRT придумывают.

P.S. Я не яблофаг, но как юзеру обоих систем и девелоперу под винду — мне иногда отчаяно грустно
.
Хочу инвайт на хабру :)
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 31.10.11 14:42
Оценка:
Здравствуйте, enCobalt, Вы писали:

C>Не улучшится. Майкрософт годами закрывая глаза на пиратсво ради покрытия территории пользователей своей ОС сейчас попытается превратить территорию в качество? Легальную и модерируемую чистую экосистему как у Apple? IMHO утопизм.


C>Кроме того иньекции браузер-джава никуда не денутся. Чуть более чем домохозяйки обоих полов отключают UAC, из-за долбаных окошек по любому поводу, и отчасти этот гнев обоснован!. Почему меня МакОсь так не задалбывает подобными окошками (а там еще и пароль ввести надо между прочим).


C>Что-то не так в самой консерватории. Какого черта сама архитектура настолько везде кривая, что все время UAC. А они в этом развлекаются UI начиная с Висты (тьфу-тьфу, не поминай всуе) и WinRT придумывают.


IE10 под Метро не поддерживает плагины и, говорят, под ARM будет поддерживаться только Метро. Так что, поверхность для атак уменьшается.
Ce n'est que pour vous dire ce que je vous dis.
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 31.10.11 17:09
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Не может. Это классика управления. И что значит погляди на яблоко?


То и значит, что там как раз таки жесткая иерархическая структура, и Джобс, покуда жив был, жестко контролировал все разрабатываемые продукты лично.

G> Пока внутри не поработаешь именно в орг-структуре, невозможно узнать монолит оно или нет.


В МС, я так понимаю, ты внутри в оргструктуре поработал.
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 31.10.11 18:29
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>IE10 под Метро не поддерживает плагины и, говорят, под ARM будет поддерживаться только Метро. Так что, поверхность для атак уменьшается.


Джава поддерживается даже под метро. Но ваша ошибка тут в том, что они не поддерживаются IE10. Вранье. Поддерживаются. Есть ораничение на уровне песочницы Метро, не более, как только вы в нормальном десктопе — IE10 чудесным образом снова IE9, просто без свистелок и перделок нового фреймворка. А почитайте интернеты про отношение к новому UI, подумайте о уже существующем софте и поймёте весь фейл.

DR>"...ARM будет поддерживаться только Метро. Так что, поверхность для атак уменьшается".


Во-первых я не вижу у ARM какой-то поверхности для атак, на которую что-то бы уменьшилось. Для embedded это актуально, но очень узко, и вообще это совершенно отдельная и изолированая история. Для планшетов... Ну ей богу, не смешите, мы с вами оба прекрасно понимаем майкрософт не влезет на этот рынок, после Apple еще был шанс, а после китайцев с Андроидами там осталось только узкое очко! Где поверхность, простите? Я туда точно не хочу.

И зачем вы вообще ARM вспомнили всуе в разговоре про майкрософт.. Я итак расстроен тем что майкрософт набрал толпу тупорылых тормозящих индусов, которые опоздали уже вообще везде где можно. Только на нервы надавили.
Хочу инвайт на хабру :)
богу
Re[6]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 31.10.11 18:58
Оценка:
Здравствуйте, enCobalt, Вы писали:

C>Кроме того иньекции браузер-джава никуда не денутся. Чуть более чем домохозяйки обоих полов отключают UAC, из-за долбаных окошек по любому поводу, и отчасти этот гнев обоснован!. Почему меня МакОсь так не задалбывает подобными окошками (а там еще и пароль ввести надо между прочим).

Не первый раз читаю такое и всё никак не пойму. Вы чем таким противоестесственным с ОС занимаетесь, что она вас с UAC задалбывает? Меня раз в месяц спросит, или когда программу ставлю, да и ладно. Хех, ну а Мак ОС, например, спрашивает постоянно "страшно: этот файл был загружен из иНета, бла-бла-бла".
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 07:11
Оценка:
> G>Не может. Это классика управления. И что значит погляди на яблоко?
>
> То и значит, что там как раз таки жесткая иерархическая структура, и Джобс, покуда жив был, жестко контролировал все разрабатываемые продукты лично.

Возможно. Я о яблоках совсем ничего не знаю. Но ты-то приводишь яблоко как пример успеха именно жесткой иерархической структуры?
Напомню тебе про их периодические крупные технологические и продажные провалы и смерть их руководителя. Если бы Джобс так не напрягался и не нервничал, прожил бы дольше.
Да, когда Джобс уходил они линяли. И их структура не менялась, важно было кто и как руководит. 1:0 в пользу Джобса, а не жесткой иерархической структуры.
И все же я уверен, что внутри у них так же конкурирующие рабочие группы, те которые успешны руководством продвигаются, которые неуспешны расформировываются. Когда проект успешен, на него переводят людей из других групп. То есть в этом смысле почти так же как в мс.
Проблема как раз не в этих принципах управления, возвращаемся к исходному посту.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 01.11.11 08:19
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Возможно. Я о яблоках совсем ничего не знаю. Но ты-то приводишь яблоко как пример успеха именно жесткой иерархической структуры?


Я не привожу его как пример успеха, я просто демонстрирую, что твое утверждение о том, что все крупные компании, разрабатывающие софт устроены подобно МС противоречит фактам.

G>И все же я уверен, что внутри у них так же конкурирующие рабочие группы, те которые успешны руководством продвигаются, которые неуспешны расформировываются.


С верой не поспоришь.
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 01.11.11 08:23
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>А это не вопрос твоего согласия.

А это не тебе решать

НС>Java.

Ну-ну

НС>Потому что все может 100 раз поменяться,

Уже слишком много сделали, чтобы все "100 раз менять"
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 01.11.11 08:24
Оценка:
Здравствуйте, IT, Вы писали:

IT>Это очевидно. Ты же сам пишешь на ASP.NET, вот вокруг тебя и появляются только приложения на ASP.NET.


От тебя не ожидал
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 01.11.11 08:30
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Причин немало. Начиная с той, что десктопный софт давным давно устаканился и больших продуктов с нуля стартует очень немного. Конкретно по WPF есть дополнительные аспекты, типа доступности только на ХР в момент первого релиза или требования неплохого железа для приемлемой скорости работы собственно графики (с GC это не связано, рендерер там вообще unmanaged).


Это все так. Но если взять .net приложение на winrt и .net приложение на wpf, и попытаться сравнить, я больше чем уверен в результате.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 01.11.11 08:31
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>Тогда почему не появилось большое количество десктопных приложений на WPF?

G>А сколько вообще новых приложенй для десктопа появилось за последние 10 лет?

Да, их не много. Но среди тех, что использую я managed нет.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 01.11.11 08:33
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Оно само по себе очень плохо сделано, дело не в GC. Оно и не взлетит, в этом самолете щели фезюляжа затыкали мешками с песком.


Можно пример того, что очень плохо сделано в WPF? Из того, чем я пользовался — однозначно лучший UI Framework (для программиста).
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[17]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 01.11.11 08:37
Оценка:
Здравствуйте, IB, Вы писали:

G>>Да, их не много. Но среди тех, что использую я managed нет.

IB>Десятую студию тоже не пользуешь? =)

*Новые приложения*. Студия к таковым не относится. Кстати, вот для повышения образованности — назови хотя бы еще пару wpf приложений которыми ты пользуешься?
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 09:46
Оценка:
> С верой не поспоришь.

Я не требую предъявить факты, хотя бы скажи свое честно слово, что вот такого:

"внутри у них так же конкурирующие рабочие группы"

у них нет? Нет рисковых перспективных разработок, они знают заранее что нужно делать (руководство уже приняло архитектурные решения) и на каждое направление у них есть фиксированная структура подразделений, постоянный штат, спущенное сверху "штатное расписание"?
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 09:50
Оценка:
Здравствуйте, hardcase, Вы писали:

G>>А вот у меня наоборот: Paint.net, Live Writer, Catalyst Control Panel, Visual Studio, Expression Blend. Остальное — офис, аська, скайп, все сильно старше 5 лет.

H>Кстати, после того как эти умники из AMD переписали Каталиклизус на WPF им стало решительно неудобно пользоваться, особенно на мониторах с большим разрешением.
А что не так на мониторах с большим разрешением? У меня нет карты AMD, поэтому сам посмотреть не могу
Re[17]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 09:53
Оценка:
Здравствуйте, grosborn, Вы писали:

>> Можно пример того, что очень плохо сделано в WPF? Из того, чем я пользовался — однозначно лучший UI Framework (для программиста).

G>Монструозный код, который если бы переписал хороший программист, сократился бы раза в два минимум даже без изменения подходов. Неправильные подходы, понятия, ненужные сущности, которые ни разу не упрощают разработку. Там где интерфейс может перерисовываться за 10-20 миллисекунд, он перерисовывается в режиме слайд-шоу. Приложение с одной кнопкой на рядовой машине может запускаться 15 секунд. и тд. Зачем об этом спрашивать?
Не мог бы ты раскрыть выделенное? С монструозным кодом согласен, в кишки WPF порой страшно заглядывать.
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 10:19
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>А что не так на мониторах с большим разрешением? У меня нет карты AMD, поэтому сам посмотреть не могу


Дебильная нафигация по настройкам в виде дерева (впрочим она была и в прежнем каталисте), которое нужно самому раскрывать — мышкой нужно еще умудриться попасть в [+]. Крайне мелкие шрифты. Странная прокрутка простыней из ползунков настроек. Было — хреново (но зато со шкурками!!), стало — еще хуже. Нафига они переписали на WPF — не ясно... Технология-то сильно мощнее чем WinForms, позволяет значительно удобнее организовать интерфейс, в общем грустно.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 10:22
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>А что не так на мониторах с большим разрешением? У меня нет карты AMD, поэтому сам посмотреть не могу


А ещё, куда-то пропали кнопки _ [ ] [x] в правом верхнем углу. В общем эти парни решили сэкономить на позиции юзабилити специалиста.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 10:26
Оценка:
> Неправильные подходы, понятия, ненужные сущности, которые ни разу не упрощают разработку.
> Не мог бы ты раскрыть выделенное?

Если разрабатывать библиотеку исходя из анализа процессов написание гуи приложения, то получится совсем другой состав требований и другие архитектурные решения. Причем это достаточно однозначно. Например, идеология привязать событие мышки к конкретному визуальному примитиву. Это однозначно, что они "применяли технологию", нежели "автоматизировали работу". При "автоматизировали работу" привязка была бы к другой сущности. А затрудняя работу разработчика, мы тем самым косвенно снижаем функциональность и презентабельность интерфейса. Правильный же подход — "автоматизировали работу" должно иметь приоритет над "применяли технологию".
Это один пример из множества.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[17]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 01.11.11 10:27
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Монструозный код, который если бы переписал хороший программист, сократился бы раза в два минимум даже без изменения подходов. Неправильные подходы, понятия, ненужные сущности, которые ни разу не упрощают разработку. Там где интерфейс может перерисовываться за 10-20 миллисекунд, он перерисовывается в режиме слайд-шоу. Приложение с одной кнопкой на рядовой машине может запускаться 15 секунд. и тд. Зачем об этом спрашивать?


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

б)Слайд-шоу, 15 секунд на запуск приложения с одной кнопкой
Вот, собственно, это мне и не нравится, и я думаю что WinRT вполне способен эту проблему решить
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 10:43
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Если разрабатывать библиотеку исходя из анализа процессов написание гуи приложения, то получится совсем другой состав требований и другие архитектурные решения. Причем это достаточно однозначно. Например, идеология привязать событие мышки к конкретному визуальному примитиву. Это однозначно, что они "применяли технологию", нежели "автоматизировали работу". При "автоматизировали работу" привязка была бы к другой сущности. А затрудняя работу разработчика, мы тем самым косвенно снижаем функциональность и презентабельность интерфейса. Правильный же подход — "автоматизировали работу" должно иметь приоритет над "применяли технологию".

Нельзя ли более предметно? Что нужно было сделать вместо того, что сделано сейчас?
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 10:51
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Вот я пока могу выделить из написанного две проблемы:

G>а) Претензии к удобству программирования.
G>Тут я не совсем соглашусь наверное, по крайней мере для меня неправильность подхода не столь очевидна. Но это можно замять, потому что вся неприятность в следующем пункте:

XML для "языка создания объектов" (чем по сути и является XAML) — это фейл, впрочим чистого XML-я им нехватило — прикрутили {Binding ...} (да-да, закон дырявых абстракций в силе). Почему же они не сделали отдельный язык для этого (апеллирую к JSON и прочим YAML)?
/* иЗвиНите зА неРовнЫй поЧерК */
Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 11:51
Оценка:
Здравствуйте, hardcase, Вы писали:

H>XML для "языка создания объектов" (чем по сути и является XAML) — это фейл, впрочим чистого XML-я им нехватило — прикрутили {Binding ...} (да-да, закон дырявых абстракций в силе). Почему же они не сделали отдельный язык для этого (апеллирую к JSON и прочим YAML)?

Ой. Да никакой разницы. Ну двоеточие вместо равно, ну фигурные скобки, вместо вложенного тега. Не принципиально. И в чем кроется роль Binding-а, как решателя недостатков XAML?
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 12:04
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, hardcase, Вы писали:


H>>XML для "языка создания объектов" (чем по сути и является XAML) — это фейл, впрочим чистого XML-я им нехватило — прикрутили {Binding ...} (да-да, закон дырявых абстракций в силе). Почему же они не сделали отдельный язык для этого (апеллирую к JSON и прочим YAML)?

MM>Ой. Да никакой разницы. Ну двоеточие вместо равно, ну фигурные скобки, вместо вложенного тега. Не принципиально. И в чем кроется роль Binding-а, как решателя недостатков XAML?

XML многословен и неудобен для ручного написания. Сравни с конструкцией инициализации в C# (в Nemerle этой конструкцией можно вообще целые формы изготавливать). Без "расширений", лишь средствами XML, этот Binding выглядел бы предельно хреново.

Кстати, а как насчет простеньких выражений a + b и ValueConverter-ов на базе лямбд?
/* иЗвиНите зА неРовнЫй поЧерК */
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 12:11
Оценка:
> Нельзя ли более предметно? Что нужно было сделать вместо того, что сделано сейчас?

Архитектурно? Там много чего должно быть сделано иначе. Как минимум понятие элемент проектирования не соответствует понятию визуальный элемент/примитив, опираясь на это образуется другая структура рабочих объектов. Но я не буду здесь писать вам архитектуру, поскольку это надо со специалистом разговаривать, а в этом форуме может только к холивару привести.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[21]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 12:14
Оценка:
Здравствуйте, hardcase, Вы писали:

H>XML многословен и неудобен для ручного написания. Сравни с конструкцией инициализации в C# (в Nemerle этой конструкцией можно вообще целые формы изготавливать). Без "расширений", лишь средствами XML, этот Binding выглядел бы предельно хреново.

H>Кстати, а как насчет простеньких выражений a + b и ValueConverter-ов на базе лямбд?
Ах, вон о чем речь. Ну, может быть, может быть. Не берусь утверждать 100%, что это было бы реально удобнее. Врядли конструкции для Binding-а стали бы проще. Лямбды в конвертерах имеют и обратную сторону: код размазывается между декларативной и императивной частью.
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 01.11.11 13:09
Оценка:
Здравствуйте, Gollum, Вы писали:

IT>>Это очевидно. Ты же сам пишешь на ASP.NET, вот вокруг тебя и появляются только приложения на ASP.NET.

G>От тебя не ожидал

Да ладно, это я так шутю.
Если нам не помогут, то мы тоже никого не пощадим.
Re[23]: [ANN] WinRT - новое компонентное API для Windows 8
От: MxMsk Португалия  
Дата: 01.11.11 13:11
Оценка:
Здравствуйте, hardcase, Вы писали:

MM>>Лямбды в конвертерах имеют и обратную сторону: код размазывается между декларативной и императивной частью.

H>Не знаю что ты понимаешь под императивом, но у меня хватает конвертеров, использующихся один раз и содержащих 1-2 строки вида
В данном случае я подразумеваю код, который исполняется, а не декларирует. Как-правило, ситуации, когда свойство по условию принимает одно из двух значений, легко решаются триггером.

H>Нафига в этом случае 1) объявлять класс, 2) декларировать его в ресурсах, 3) ссылаться из байндинга.

Теперь представь, что куча чуваков, тоже занимающихся интерфейсом, раскидает такие вставочки по куче других XAML файлов. Лазий потом среди них, выискивай. Сомнительное удовольствие, хотя для небольшого проекта это не выглядит критичным. Я поэтому и написал, что не могу точно сказать, как лучше. В обоих подходах есть свои плюсы и минусы По опыту, у XAML куда больше проблем, касающихся реализации, нежели концепции. Чего только стоит возня с Freezable, если нужно связывать свойства по дереву элементов.
Re[24]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 13:33
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, hardcase, Вы писали:


MM>>>Лямбды в конвертерах имеют и обратную сторону: код размазывается между декларативной и императивной частью.

H>>Не знаю что ты понимаешь под императивом, но у меня хватает конвертеров, использующихся один раз и содержащих 1-2 строки вида
MM>В данном случае я подразумеваю код, который исполняется, а не декларирует. Как-правило, ситуации, когда свойство по условию принимает одно из двух значений, легко решаются триггером.

WPF-ных триггеров нету в Silverlight, там есть костыль в виде System.Windows.Interactivity, но тривиальные вещи (типа тернарного оператора) будут выглядеть еще суровей, чем конвертер.

H>>Нафига в этом случае 1) объявлять класс, 2) декларировать его в ресурсах, 3) ссылаться из байндинга.

MM>Теперь представь, что куча чуваков, тоже занимающихся интерфейсом, раскидает такие вставочки по куче других XAML файлов. Лазий потом среди них, выискивай. Сомнительное удовольствие, хотя для небольшого проекта это не выглядит критичным.

1) я не говорил что лямбды нужны именно в XAML (они там вообще дико будут смотреться). Я говорил о том, что нужен совершенно новый язык без привязки к XML (мне кажется реализаторам просто было лень писать парсер), в который органично вписались бы ФП-шные конструкции
2) поиск лямбды в коде этого гипотетического языка не будет отличаться от поиска аналогичных конструкций в C#.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[24]: [ANN] WinRT - новое компонентное API для Windows 8
От: grosborn  
Дата: 01.11.11 13:55
Оценка:
> Я прошу обозначить концепцию в WPF, к которой относится первое предложение. Что за рабочие объекты? Что за элемент проектирования? Неужто столь взрослый человек не может написать по простому: сделали класс/механизм такой-то, а надо было такой-то?

Неужели столь взрослый человек не в состоянии внимательно прочитать два предложения?
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[25]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 13:56
Оценка:
Здравствуйте, grosborn, Вы писали:

>> Я прошу обозначить концепцию в WPF, к которой относится первое предложение. Что за рабочие объекты? Что за элемент проектирования? Неужто столь взрослый человек не может написать по простому: сделали класс/механизм такой-то, а надо было такой-то?


G>Неужели столь взрослый человек не в состоянии внимательно прочитать два предложения?


Я, к слову, тоже не понял о чем речь. Поясните плз. эти два предложения внятными примерами.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[23]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 01.11.11 14:45
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Не знаю что ты понимаешь под императивом, но у меня хватает конвертеров, использующихся один раз и содержащих 1-2 строки вида


Конвертеры в сад. Определяем свойство с нужной логикой во ViewModel и поехали.
Если нам не помогут, то мы тоже никого не пощадим.
Re[24]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 15:40
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, hardcase, Вы писали:


H>>Не знаю что ты понимаешь под императивом, но у меня хватает конвертеров, использующихся один раз и содержащих 1-2 строки вида


IT>Конвертеры в сад. Определяем свойство с нужной логикой во ViewModel и поехали.


Этот подход помогает не всегда, и в моем случае привел бы к классам с фактически полностью продублированными свойствами.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[22]: [ANN] WinRT - новое компонентное API для Windows 8
От: hardcase Пират http://nemerle.org
Дата: 01.11.11 15:41
Оценка:
Здравствуйте, gandjustas, Вы писали:

H>>XML многословен и неудобен для ручного написания. Сравни с конструкцией инициализации в C# (в Nemerle этой конструкцией можно вообще целые формы изготавливать). Без "расширений", лишь средствами XML, этот Binding выглядел бы предельно хреново.

G>XML не для того чтобы его руками писать. Запускай expression blend и делай в нем что захочешь

Спасибо, я не фанат программирования мышкой (на самом деле я просто не ослил бленду), мне буквы набивать с борды быстрее.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[25]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 01.11.11 15:49
Оценка:
Здравствуйте, hardcase, Вы писали:

H>>>Не знаю что ты понимаешь под императивом, но у меня хватает конвертеров, использующихся один раз и содержащих 1-2 строки вида

IT>>Конвертеры в сад. Определяем свойство с нужной логикой во ViewModel и поехали.
H>Этот подход помогает не всегда, и в моем случае привел бы к классам с фактически полностью продублированными свойствами.

Ну если поможет хотя бы на 80%, то уже хорошо.
Если нам не помогут, то мы тоже никого не пощадим.
Re[23]: [ANN] WinRT - новое компонентное API для Windows 8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 01.11.11 17:21
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, gandjustas, Вы писали:


H>>>XML многословен и неудобен для ручного написания. Сравни с конструкцией инициализации в C# (в Nemerle этой конструкцией можно вообще целые формы изготавливать). Без "расширений", лишь средствами XML, этот Binding выглядел бы предельно хреново.

G>>XML не для того чтобы его руками писать. Запускай expression blend и делай в нем что захочешь

H>Спасибо, я не фанат программирования мышкой (на самом деле я просто не ослил бленду), мне буквы набивать с борды быстрее.


Я тоже так думал пока с анимацией не столкнулся.

Кроме того blend для Windows 8 будет уметь не только xaml, но и html для metro приложений делать. Причем с взмодностями "таскать" компоненты из палитры.
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 01.11.11 17:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Спрашивает, но без повышения привилегий...


Если что пост мой, фейл — не залогинился. Если есть пинки по поводу поста адресуйте в мою сторону.
Хочу инвайт на хабру :)
Re[16]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.11 17:53
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Это все так. Но если взять .net приложение на winrt и .net приложение на wpf, и попытаться сравнить, я больше чем уверен в результате.


Я, честно говоря, не очень понимаю в каком результате ты уверен.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 01.11.11 18:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Отключение второго монитора зело помогает.

А>Индусам надо как-то законодательно в ООН ограничить рождаемость и приход в профессию программистов.

А тест-тим всех до единого включая начальнкиков посадить на кол за то что не посмотрели как эта хрень со спецэффектами затетения десктопа ведет себя в многомониторной конфигуриции. На кол! Дебилов.
Хочу инвайт на хабру :)
Re[11]: [ANN] WinRT - новое компонентное API для Windows 8
От: Ночной Смотрящий Россия  
Дата: 01.11.11 18:08
Оценка:
Здравствуйте, grosborn, Вы писали:

G>у них нет? Нет рисковых перспективных разработок


Наверное есть, но это никак не противоречит централизации

G>они знают заранее что нужно делать (руководство уже приняло архитектурные решения)


Смысл неясен. Да, когда решение принято — они о нем знают.

G> и на каждое направление у них есть фиксированная структура подразделений


Да.
Re[21]: [ANN] WinRT - новое компонентное API для Windows 8
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.11 18:08
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Архитектурно? Там много чего должно быть сделано иначе. Как минимум понятие элемент проектирования не соответствует понятию визуальный элемент/примитив, опираясь на это образуется другая структура рабочих объектов. Но я не буду здесь писать вам архитектуру, поскольку это надо со специалистом разговаривать, а в этом форуме может только к холивару привести.


Я такой специалист, но нифига не понял, что ты написал.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[18]: [ANN] WinRT - новое компонентное API для Windows 8
От: IB Австрия http://rsdn.ru
Дата: 01.11.11 19:56
Оценка:
Здравствуйте, Gollum, Вы писали:

G>*Новые приложения*. Студия к таковым не относится.

Если тебя интересуют новые приложения, то вспомни сколько у тебя новых .Net приложений не WPF?
В любом случае, у студии функционал-то новый. Кроме того, в контексте разговора интересны не новые приложения на WPF, а вообще приложения на WPF и как они тормозят. Так вот студия во-первых вся на сквозь WPF, а во-вторых если там что и тормозит, то уж не WPF точно. =)

G>Кстати, вот для повышения образованности — назови хотя бы еще пару wpf приложений которыми ты пользуешься?

Студия, твиттер клиент, Zune, LinqPAD и все что установлено на моем телефоне — там приложений больше десятка. И, что характерно, не смотря на наличие GC, WPF-а и дохлого телефонного процессора работает это все шустрее чем в яблофоне, не говоря уже об андроиде. ))
Мы уже победили, просто это еще не так заметно...
Re[7]: [ANN] WinRT - новое компонентное API для Windows 8
От: Hacker_Delphi Россия  
Дата: 02.11.11 02:49
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

G>> Но даже если и так, какая компонентная система была лучше?


НС>Java.


Шутка детектед ничего хуже жабы в качестве компонентных систем я не видел. а в 95 году жаба только вышла и была ТАКИМ УГ, что аж страшно было. (хотя рекламировали, что через год максимум весь веб будет на жабе).

а COM — это совместная разработка DEC и Microsoft, причем насколько я знаю, инициатива исходила от DEC. И болеее того, CORBA потом базировалась тоже на первой реализации COM.
... << RSDN@Home 1.2.0 alpha 5 rev. 1538>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: Cyberax Марс  
Дата: 02.11.11 03:12
Оценка:
Здравствуйте, Hacker_Delphi, Вы писали:

H_D>Шутка детектед ничего хуже жабы в качестве компонентных систем я не видел. а в 95 году жаба только вышла и была ТАКИМ УГ, что аж страшно было. (хотя рекламировали, что через год максимум весь веб будет на жабе).

Конкретно Java для больших систем опередил только .NET 2.0, после того, как там появились нормальные generic'и. Java в 95-м начала штормом брать мир enterprise, а web упустили из-за противодействия MS и несовершенства технологий.

H_D>а COM — это совместная разработка DEC и Microsoft, причем насколько я знаю, инициатива исходила от DEC. И болеее того, CORBA потом базировалась тоже на первой реализации COM.

Не так. COM — это развитие идей DDE, когда потребовалось начать делать реальную объектную модель. Было выбрано достаточно логичное решение с интерфейсами и IUnknown.

От DCE к MS пришёл DCE RPC и DCOM. Лучше бы не приходили.
Sapienti sat!
Re[8]: [ANN] WinRT - новое компонентное API для Windows 8
От: inviz  
Дата: 02.11.11 03:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А в винде если спрашивает, то это реальное повышение привилегий вплоть до возможности рут-кит в Ось внедрить. А задалбывает... На неслабом компе двухмониторная конфигурация, оба монитора FullHD (да, я богатый буржуй, второй монитор 42" LCD панель) когда окошко UAC хочет всплыть начинается коллапс всех систем секунд на 5-10. Все что было под DirectX запущено вываливается в эксцепшн, начинается коллапс всех систем у эксплорера, медиаплеер наинается заикаться как эпилептик. И начинается мучительная отрисовывка затенения десктопов на двух мониторах и потом наконец появляется диалог UAC. Бесит ли это? Поначалу не очень, даже приколько когда музыка начинается заикаться, звук похож на семплы транс-музыки. Когда эффект новизны прошел начинает БЕСИТЬ! Отключение второго монитора зело помогает.

А>Индусам надо как-то законодательно в ООН ограничить рождаемость и приход в профессию программистов.
Отменить затемнение экрана в настройках UAC религия не позволяет?
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: Hacker_Delphi Россия  
Дата: 02.11.11 03:59
Оценка:
Здравствуйте, enCobalt, Вы писали:

[skip-skip]

не знаю. у меня, конечно не два FullHD — всего лишь один FullHD и один 1200 * 1600 (суммарная площадь на ЦЕЛЫХ 3.7 % меньше)
затемнение работает на ура, никакой DirectX не падает, музыка не затыкается. при этом, чаще всего все происходит еще и на фоне компиляции пары неслабых солюшенов в двух студиях.
и ведь нельзя сказать, что у меня какой-то CRAY — обычный ноут с мобильной видюхой. правда видюха — nVidia. может в этом все и дело?
либо же нелицензионнная ось у тебя — как-то так.
... << RSDN@Home 1.2.0 alpha 5 rev. 1538>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 02.11.11 06:37
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>А я и не решаю. Я просто констатирую факт.

Да нет, ты решил что твое мнение правильное а мое нет. При этом ты присвоил себе право решать что твое мнение — это факт. А я пока вижу только надутый пузырь из чсв.

НС>Вот тебе и ну-ну.

Ты просто не понял вопроса.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[19]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 02.11.11 06:45
Оценка:
Здравствуйте, IB, Вы писали:

IB>В любом случае, у студии функционал-то новый. Кроме того, в контексте разговора интересны не новые приложения на WPF, а вообще приложения на WPF и как они тормозят.

Ок, хорошо.

IB> Так вот студия во-первых вся на сквозь WPF, а во-вторых если там что и тормозит, то уж не WPF точно. =)

Сколько времени они при этом затратили, и как они заставляли WPF-щиков переделывать его под себя? Но хорошо, допустим, вот студия на WPF. Где массовое использование технологии?

G>>Кстати, вот для повышения образованности — назови хотя бы еще пару wpf приложений которыми ты пользуешься?

IB>Студия, твиттер клиент, Zune, LinqPAD
То есть может быть как вариант — wpf не успелf взлететь? В частности ищ-за того, что до выхода студии он был совсем медленным?
Кстати, если Zune на .NET написан — снимаю шляпу.

IB>все что установлено на моем телефоне — там приложений больше десятка. И, что характерно, не смотря на наличие GC, WPF-а и дохлого телефонного процессора работает это все шустрее чем в яблофоне, не говоря уже об андроиде. ))

Это как бы вообще не в тему. Эти приложения работают на своей операционке, мы сейчас про декстопы.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: IB Австрия http://rsdn.ru
Дата: 02.11.11 08:45
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Сколько времени они при этом затратили, и как они заставляли WPF-щиков переделывать его под себя?

Это да, ну так переделали же? И перепилили именно основной WPF, а не отдельную частную ветку для студии.

G>Где массовое использование технологии?

Тут все то же самое — нет новых приложений или существенно переписанных старых, а сам-собой WPF не появится.
Там где новые приложения есть — телефон, там WPF 100% =)

G>То есть может быть как вариант — wpf не успелf взлететь? В частности ищ-за того, что до выхода студии он был совсем медленным?

Он не был совсем медленным, он был не очень быстрым и глючным в определенных сценариях.

G>Это как бы вообще не в тему. Эти приложения работают на своей операционке, мы сейчас про декстопы.

Очень в тему — там .Net, GC и WPF и не тормозит. )
Мы уже победили, просто это еще не так заметно...
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: IB Австрия http://rsdn.ru
Дата: 02.11.11 08:49
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Только у тебя на телефоне не WPF, а Silverlight (что вообще-то великая разница), штатные контролы которого чуть менее чем все — нативный код.

Это не принципиально, да и не штатных контролов хватает.
Мы уже победили, просто это еще не так заметно...
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: IB Австрия http://rsdn.ru
Дата: 02.11.11 15:01
Оценка:
Здравствуйте, IT, Вы писали:

IT>У меня в студии больше всего тормозит решарпер.

Ага, и вот он то как раз сплошной девэкспресс, и тормозит там опять-таки далеко не отрисовка ))
Мы уже победили, просто это еще не так заметно...
Re[20]: [ANN] WinRT - новое компонентное API для Windows 8
От: Hacker_Delphi Россия  
Дата: 04.11.11 03:21
Оценка:
Здравствуйте, IT, Вы писали:

IT>У меня в студии больше всего тормозит решарпер.


А у меня он не тормозит потому, что я его из-за его тормозов и необходимых объемов памяти не использую .
... << RSDN@Home 1.2.0 alpha 5 rev. 1538>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[24]: [ANN] WinRT - новое компонентное API для Windows 8
От: Andy77 Ниоткуда  
Дата: 05.11.11 00:31
Оценка:
Здравствуйте, IT, Вы писали:

IT>Конвертеры в сад. Определяем свойство с нужной логикой во ViewModel и поехали.


А как ты будешь ссылаться на сам объект, который нужно конвертировать? Пример — разрисовываем элементы ListBox'а в разные цвета в зависимости от значения.
Re[25]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 05.11.11 18:28
Оценка:
Здравствуйте, Andy77, Вы писали:

IT>>Конвертеры в сад. Определяем свойство с нужной логикой во ViewModel и поехали.

A>А как ты будешь ссылаться на сам объект, который нужно конвертировать? Пример — разрисовываем элементы ListBox'а в разные цвета в зависимости от значения.

От какого значения?
Если нам не помогут, то мы тоже никого не пощадим.
Re[27]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 09.11.11 08:19
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Например, если ты байндишься на List<double> VolumesInMicroLiters и на этой же форме существует комбо бокс единиц измерения (миллилитры-литры-и т.д.) — в этом случае свойства никак не помогут (даже если и не нужно переводить в другие единицы, а, скажем, нужно просто отформатировать число).


Сделай List<MyFormattedDouble>. Делов-то.
Если нам не помогут, то мы тоже никого не пощадим.
Re[28]: [ANN] WinRT - новое компонентное API для Windows 8
От: Andy77 Ниоткуда  
Дата: 10.11.11 02:27
Оценка:
Здравствуйте, IT, Вы писали:

IT>Сделай List<MyFormattedDouble>. Делов-то.


На каждый чих создавать по классу — слишком жирно будет.
Re[29]: [ANN] WinRT - новое компонентное API для Windows 8
От: _d_m_  
Дата: 10.11.11 04:28
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Здравствуйте, IT, Вы писали:


IT>>Сделай List<MyFormattedDouble>. Делов-то.


A>На каждый чих создавать по классу — слишком жирно будет.


Ну тогда надо переходить на C.
Re[29]: [ANN] WinRT - новое компонентное API для Windows 8
От: _d_m_  
Дата: 10.11.11 05:31
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Здравствуйте, IT, Вы писали:


IT>>Сделай List<MyFormattedDouble>. Делов-то.


A>На каждый чих создавать по классу — слишком жирно будет.


И тогда лучше вообще не чихать.
Re[29]: [ANN] WinRT - новое компонентное API для Windows 8
От: IT Россия linq2db.com
Дата: 10.11.11 05:54
Оценка:
Здравствуйте, Andy77, Вы писали:

IT>>Сделай List<MyFormattedDouble>. Делов-то.

A>На каждый чих создавать по классу — слишком жирно будет.

Это как получится. Может по классу на два-три чиха. А конвертер точно будет по классу на чих. И, кстати, как ты собираешься контекст своему double передавать, чтобы конвертер отформатировал его в соответствии с комбобоксом?
Если нам не помогут, то мы тоже никого не пощадим.
Re: [ANN] WinRT - новое компонентное API для Windows 8
От: Аноним  
Дата: 12.11.11 07:43
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Я тут попробовал описать свои впечатления от WinRT

G>Честно, даже не знаю куда отправить По логике вещей это надо в COM, или C++. Но самое главное уже более-менее понятно. Перед нами новая версия COM.

Нет. Кто вам сказал, что WinRT — новая версия COM? новое компонентное API для Windows 8 — Да
Re[2]: [ANN] WinRT - новое компонентное API для Windows 8
От: Gollum Россия  
Дата: 12.11.11 09:17
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Нет. Кто вам сказал, что WinRT — новая версия COM? новое компонентное API для Windows 8 — Да


Андерс Хайлсберг и Герб Саттер Это новое компонентное API отличается от COM несколькими методами и одним интерфейсом.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Eugene Agafonov on the .NET

Re[30]: [ANN] WinRT - новое компонентное API для Windows 8
От: Andy77 Ниоткуда  
Дата: 14.11.11 22:08
Оценка:
Здравствуйте, IT, Вы писали:

IT>Это как получится. Может по классу на два-три чиха. А конвертер точно будет по классу на чих.


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

IT>И, кстати, как ты собираешься контекст своему double передавать, чтобы конвертер отформатировал его в соответствии с комбобоксом?


Через параметры:

<TextBlock  
    Text="{Binding ., 
           Mode=OneWay, 
           ConverterParameter={Binding SelectedItem, ElementName=unitsComboBox}, 
           Converter={StaticResource UnitConverter}}" />
Re[31]: [ANN] WinRT - новое компонентное API для Windows 8
От: demigor  
Дата: 28.11.11 10:53
Оценка:
Здравствуйте, Andy77, Вы писали:

A>Здравствуйте, IT, Вы писали:


IT>>Это как получится. Может по классу на два-три чиха. А конвертер точно будет по классу на чих.


A>Пойми меня правильно, мне конвертеры тоже не нравятся, я уже стал байндинги описывать лямбдами в коде, так стало проще и гибче.


IT>>И, кстати, как ты собираешься контекст своему double передавать, чтобы конвертер отформатировал его в соответствии с комбобоксом?


A>Через параметры:


A>
A><TextBlock  
A>    Text="{Binding ., 
A>           Mode=OneWay, 
A>           ConverterParameter={Binding SelectedItem, ElementName=unitsComboBox}, 
A>           Converter={StaticResource UnitConverter}}" />
A>


ConverterParameter в SL (а WinRT это SL), не был DependencyProperty, поэтому Binding на него не повесить.

Ну и вообще, какая разница, на каком языке написан WinRT? Главное, что объектная модель на бинарном уровне совместима с .NET, winmd файлы рефлектором читать можно,
вызовы маршалить не надо, никаких накладных расходов нет, графическое двигло от SL XAML жостко через DirectX рендерится (даже IE10 нервно завидует),
всё ядро уже при установке качественно С++ компилятором за-NGEN-ено, под текущую платформу заточено.

Программы работают на телефонах, х*ящиках, телевизорах, планшетах любых архитектур, десктопах — это ли не светлое будущее?
Re[3]: [ANN] WinRT - новое компонентное API для Windows 8
От: demigor  
Дата: 28.11.11 13:44
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, <Аноним>, Вы писали:


А>>Нет. Кто вам сказал, что WinRT — новая версия COM? новое компонентное API для Windows 8 — Да


G>Андерс Хайлсберг и Герб Саттер Это новое компонентное API отличается от COM несколькими методами и одним интерфейсом.


А также совместимыми форматами метаданных (winmd файл можно в рефлекторе паачитать са всеми кааментами),
отсутствием маршалинга (то бишь скорость вызовов как в .NET->.NET), ну и производительностью (ядро не надо JIT-ить)
Re[15]: [ANN] WinRT - новое компонентное API для Windows 8
От: vdimas Россия  
Дата: 30.11.11 15:14
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>Не угадал — я переехал с паскаля (в 96. тесноват стал, для моих задумок) на плюсы. Я конечно тогда тоже конкретно попарился, но по-большому счету из за глобального непонимания. И того, что многие базовые вещи (типа подсчета ссылок) пришлось выводить самому. Прорыв (в управлении объектами) произошел летом 2001, когда я сам допер, что у объекта может быть больше одного счетчика. Это было ночью. Утром я напился


Изобрел агрегацию? Возможность удерживать целое, держась лишь за его часть?
Re[13]: [ANN] WinRT - новое компонентное API для Windows 8
От: vdimas Россия  
Дата: 30.11.11 15:38
Оценка:
Здравствуйте, aloch, Вы писали:

A>А может быть и заведут свой отдельный счетчик чтобы IUnknown лишний раз не дергать (как это сделано в .Net).


Да, возможно. Виртуальные вызовы AddRef/Release дорогие, в сравнении с interlocked increment счетчика по простому указателю... В некоторых сценариях эффективнее будет аналог shared_ptr, который будет иметь свой счетчик, по достижении 0-ля которым произойдет один виртуальный вызов Release() целевого объекта.

Есть еще мнение. Отдать на откуп компилятора это имело смысл еще и затем, чтобы компилятор мог нивелировать избыточные парные вызовы increment/decrement в локальной области видимости в ходе оптимизации, как это делает компилятор нейтивного VB6. Для сравнения, компилируя "честный" С++ код, компилятор никак не может выкинуть избыточные парные вызовы методов AddRef/Release, потому как не имеет права делать предположения о семантике никаких виртуальных ф-ий, или взять инкременты/декременты счетчика, который не на стеке, но в куче (подход shared_ptr) — полностью аналогично, никаких допущений касаемо семантики. Поэтому и выходило в свое время, что для COM надо писать все на голых указателях и прыгать вокруг __finally, как это делает MS в своем коде, либо писать на VB, — оба подхода были всяко эффективнее, чем повальное использование CComPtr или _com_ptr_t в С++. Тут кстати ругали неоднократно MS за внутренний код на голых указателях, не понимая откуда ноги растут у такого подхода — это борьба за тики, за эффективную платформу системного уровня. Теперь MS "забила" себе на сейчас и будущее возможность точно знать семантику происходящего, что позволит развивать оптимизации в этом направлении. Например — даже юзать разные типы смарт-поинтеров, или не юзать их вообще в локальном коде, а только совершать итоговые инкременты/декременты по результатам всех локальных операций.
Re[5]: [ANN] WinRT - новое компонентное API для Windows 8
От: vdimas Россия  
Дата: 30.11.11 15:49
Оценка:
Здравствуйте, Hacker_Delphi, Вы писали:

H_D>одно маленькое замечание, COM как таковой изобретен вовсе не компанией MS. по-моему — это детище DEC. точно уже не помню.

H_D>и изначально там как раз были AddRef, Release, QueryInterface. только называлось это IInterface вроде как (хотя как раз тут могу путать).

QueryInterface был другой, а AddRef/Release (или аналогичное) использовали задолго до и не только в DEC. На самом деле COM, как самостоятельная технология — ничего интересного. Цель была в технологии для OLE, в маршаллинге, в динамических создаваемых по метаинформации из библиотеки типов бинарных проксях и стабах, в диспетчеризации м/у разными типами аппартаментов. Вот это уже целая навороченная платформа... А голый COM на фоне этого — ничто. Даже DCOM и COM+, по-сути, развитие именно OLE. Т.е. ввод буквально одной службы и пару интерфейсов в существующую OLE-инфраструктуру. Просто сама OLE очень обширна, примерно половину платформы занимают интерфейсы, обслуживающие визуальные компоненты, а они не нужны для DCOM/COM+.
Re[26]: [ANN] WinRT - новое компонентное API для Windows 8
От: vdimas Россия  
Дата: 01.12.11 09:35
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Я, к слову, тоже не понял о чем речь. Поясните плз. эти два предложения внятными примерами.


Наверно речь о том, что контролы перестали ими быть в классическом понимании (как бы), но тем не менее всё еще могут продолжать ими быть через кастомный рендеринг. Т.е. их бы назвать следовало Сontroller, хотя бы чтобы не путать с классически устоявшимся взглядом на то, что есть Control в GUI.
Re[10]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 03.12.11 07:36
Оценка:
Здравствуйте, Hacker_Delphi, Вы писали:

H_D>и ведь нельзя сказать, что у меня какой-то CRAY — обычный ноут с мобильной видюхой. правда видюха — nVidia. может в этом все и дело?

H_D>либо же нелицензионнная ось у тебя — как-то так.

Возможно дело в видюхе или дровах к ней, стоит 8600 невидия дискретная поверх интегрированой.
ПО поводу неолицензионной.... — MSDN Subscriber негодует , у мну вообще все операционки лицензионные, от MS-DOS до разных редакций W2008R2, ну и там еще куча софта впридачу.

Однако, кстати, МС-Офисом не пользуюсь, пользую Open Office. Есть фишка приятно потролить людей.
Сейчас объясню.

Есть такая традиция в согласованиях по документу друг другу пересылать и выделять в вордовском документе интересующие или сомнительные места текста фоновой заливкой текста. Обычно желтым, зеленым, красным... пошло с хардварных маркеров на бумаге.

Так вот, если из МС-Офиса вордовский файл с заливкой пришел, то все редактируется в Опен-офисе. ОК.
Но! Все изменения по заливке фона текста что были сделаны Опен-офисе и сохранены в вордовский файл, при открытии в МС-офисе уже никак не изменить без лома. Т.е. манагер выделяет залитый желтым текст, хочет сменить или убрать цвет заливки в Ворде, кликает, но ничего не происходит! Полный игнор.
+1 к троллингу манагеров.
.
Хочу инвайт на хабру :)
Re[9]: [ANN] WinRT - новое компонентное API для Windows 8
От: enCobalt  
Дата: 03.12.11 07:42
Оценка:
Здравствуйте, inviz, Вы писали:

I>Отменить затемнение экрана в настройках UAC религия не позволяет?


Я вам как программист программисту советую..

НЕ надо ничего тюнить в своей операционке, и никаких твикингов! НЕ надо ничего тюнить в таймингах памяти, проца и вольтажа на своей материнке. Комп у программиста должен быть средненьким на текущий момент по поколению и производительности — как офисная серая мышка.

Тогда и ПО у вас будет писаться быстрое и производительное, и работать оно будет предсказуемо у юзеров.
.
Хочу инвайт на хабру :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.