Имелись в виду конечно же универсальные фреймворки, которые позволяют свести портирование к простой перекомпиляции. А не какие-то отдельные специфические библиотеки. Да, Qt естественно подходит, просто я слышал, что там всё печально с winrt. Может мои данные устаревшие уже и там всё отладили.
Здравствуйте, fdn721, Вы писали:
_>>Вот WinRT — это действительно что-то типа революции. Только вот существенно запоздавшей — далеко не факт, что сейчас взлетит. Тем более, что старый api на десктопе никто не запрещает, а metro пока и не особо актуально.
F>Проблема WinRT в магазине MS.
Сама идея фильтрации приложений, контроля над качеством, противодействию малварями — не плохая. Пусть бы сделали качественный каталог проверенных фирм и этого было бы достаточно. Но зачем ограничивать разработчиков в рамках одного монопольного стора, оставляя за собой эксклюзивные права запретов, принудительно указывая что можно, а что нельзя запускать в системе?
F>До MS ну ни как не доходит что нельзя сужать свободу пользователей.
Ладно там наивные юзвери — они слабо разбираются, и поэтому со стороны кажется, что они даже рады анальному рабству быть заключёнными эппла, гугла и майкрософта. Страшнее то, что MS — методично, год за годом сужает свободу программистам. Началось это ещё с драйверов. А с кодерами шутки плохи. Их так просто не обведёшь вокруг пальца, как рядовых пользователей. Во времена Билла Гейтса — это хорошо понимали, поэтому раньше создавалась соответствующая дружественная атмосфера для разработчиков, их мнение хотя бы учитывалось. Сейчас MS другая. Решили пойти по пути Apple. Общеизвестно, что теоретически корпорации могут мутировать с целью адаптации. Но не все подобные мутации идут на пользу в конечном итоге.
F>Если один раз разрешили свободно писать/запускать/распространять ПО, то теперь это не запретить.
Вообще-то, как руководство решит, так и будет. Это же их интеллектуальная собственность. После фейла с Нокией — стало очевидно, что решения руководителей бывают не всегда разумны и не всегда оптимальны (даже с точки зрения максимализации прибыли).
F>Как следствие FOSS сообщество игнорирует WinRT. Нет FOSS — нет бесплатных(без рекламы) программ и библиотек.
Потому что, абсурд ситуации: чтобы написать бесплатную программу на WinRT — надо заплатить.
F>Нет бесплатных библиотек, не на чем писать коммерческие программы. Не на чем писать программы под WinRT , бизнес пишет их под WinAPI.
А кому хочется связываться с непредсказуемыми выбрыками, капризами монополиста, который вполне может запретить использовать ваш софт? Многим бизнесам не нужны лишние деструктивные посредники. Поэтому независимый Win32 API — на порядки выгоднее.
F>Не помогли MS даже все возможные заманухи с бесплатной студией, грошовой регистрацией в магазине, и возможностью писать программ сразу для десктопа/планшета и в некотором смысле для телефона.
Эти заманухи рассчитаны на идиотов.
F>Спасти ситуацию может разрешение устанавливать программы в обход магазина, ну и как следствие разработка без получения всяких сертификатов MS. Только MS на это не пойдёт, не дают покоя лавры Apple и желание получать деньги с каждой запущенной программы под WinRT.
Время покажет. Пока MS чешется и поплёвывает на разработчиков, Linux Android и ChromeOS завоёвывают рынки. На подходе полностью свободный Tizen.
F>Мой прогноз на будущее, если не будет свободы запуска программ, то WinRT не взлетит и будет похоронен MS после выхода Windows 9 или возможно чуть раньше.
Они держатся только на маркетинге. Если произойдёт выпиливание Win32 в пользу WinRT, массовый переход на Linux неизбежен. Например, в Steam — этот коварный вариант уже заранее предусмотрели, и на всякий случай подстраховались.
Здравствуйте, ononim, Вы писали:
_>>если хочется влезть в метроинтерфейс, то можно заинжектить в экплорер свою длл, которая должна выполнить примерно такой вот код в нем: O>
O>typedef HWND (WINAPI *CreateWindowInBandProc)(DWORD dwExStyle, LPCWSTR lpClassName,
O> LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight,
O> HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam, DWORD dwBand);
O> CreateWindowInBandProc pCreateWindowInBand = (CreateWindowInBandProc)
O> ::GetProcAddress(::GetModuleHandle(TEXT("user32.dll")), "CreateWindowInBand");
O> if (!pCreateWindowInBand)
O> {
O> ::MessageBox(0, TEXT("CreateWindowInBand not found"), TEXT("Hello"), MB_ICONWARNING);
O> return;
O> }
O> DWORD cy = ::GetSystemMetrics(SM_CYMAXIMIZED), y = 10, x = 10;
O> TCHAR txt[0x100] = {0};
O> for (DWORD i = 0; i<=0x20; ++i)
O> {
O> wsprintf(txt, TEXT("Band %u\n"), i);
O> HWND w = pCreateWindowInBand(WS_EX_TOPMOST, TEXT("Edit"), txt,
O> WS_VISIBLE|WS_OVERLAPPEDWINDOW, x, y, 200, 40, 0, 0, ::GetModuleHandle(0), 0, i);
O> if (!w)
O> {
O> wsprintf(txt, TEXT("Failed %u\n"), i);
O> pCreateWindowInBand(WS_EX_TOPMOST, TEXT("Edit"), txt,
O> WS_VISIBLE|WS_OVERLAPPEDWINDOW, x, y, 200, 40, 0, 0, ::GetModuleHandle(0), 0, 0);
O> }
O> if (( (y+= 40 ) +40)>=cy)
O> {
O> y = 10;
O> x+= 200;
O> }
O> }
O> ::MessageBox(0, TEXT("In loop.."), TEXT("Hello"), MB_ICONWARNING);
O>}
O>
А приходилось ли вам вызывать SetWindowBand?
Вроде как ее можно вызвать без инжекта и хука, перед этим вызвав недокументированную NtUserEnableIAMAccess.
Здравствуйте, Pavel Dvorkin, Вы писали: PD>У меня большие сомнения в том, что .net, позиционирующаяся как некоторая революционная технология, таковой окажется.
Поддерживаю. несмотря на удобство и простоту использования дотнет не стал с годами быстрее как минимум.
Баловался вчера с различными ЯП, в том числе dotnet core 5 F#, просто создание класса Person {Name, Age} и вывод на печать 100 раз.
d(ldc2), rust, gcc, f#(core 5), common lisp (sbcl).
вообщем, скорость отработки бинарника rust === c. это удивляет и радует.
cl все равно быстрее core(причем комплил в релиз под linux-x64 self-container).
d всего в 4 раза медленнее релизного rust (правда я не оптимизировал его сборку).
и кора ну прям расстраивает(старый FW стартовал побыстрее как-то).
Ну конечно у каждго ЯП свои приемущества. вот слегка коснулся пару лет назад с си++ и удивился насколько проще в нем сетевое программирование (по сравнению с сишарпом).
никаких тебе сериализаций. записал память в сокет и на другом конце просто связал память со ссылкой. так кажется. сам яп конечно ужасный. сколько там правил это просто невероятно.
Ну и лисп поражает. ведь это динамический ЯП, а стартует быстрее ВМ разработанной в могущественной МС.
результаты
КОРЭ(5 linux-x64 F#):
real 0m0,167s
user 0m0,133s
sys 0m0,030s
лисп(exe):
real 0m0,008s
user 0m0,008s
sys 0m0,000s
ДИ:
real 0m0,004s
user 0m0,004s
sys 0m0,000s
СИ:
real 0m0,001s
user 0m0,001s
sys 0m0,000s
RUST:
real 0m0,001s
user 0m0,000s
sys 0m0,001s
Можно сделать вывод чтобы писать безопасные приложения не обязательны gc и vm.
при этом оно еще и быстрое получается.
Что такого грузит коснольная апликуха при старте остается загадкой. цифры просто ужасные.
Здравствуйте, ononim, Вы писали:
O>>>- Транзакционные операции с файлами и реестром, и API для них. Например раз, два. C>>Для новой файловой системы уже открутили обратно. O>Судя по некоторым отзывам ReFS — это фэйловая, а не файловая система...
refs — это попытка избавится от чудовищных извращений ntfs, оставив только быстрое ядро.
M>Win32 API замораживается на уровен ХаРэ. На анменеджед-С++ теперь будут писаться низкоуровневые АПИ. Все новые высокоуровневые АПИ: Авалон (графическая библиотека), Индиго (комуникации), ВинФС (интелектуальная файлова система) будут исключительно в менеджед-виде. Для Авалона возможно удастся выковырять низкоуровневые либы (декомпиляторми), а вот Индиго и ВинФС максимум через обертки будут доступны.
M>Исполнилось ли предсказание?
если managed это powershell, то они везде его пихают, хотя менеджер покаетов с зависимостями и версиями так и не придумали. мож он и не нужен в 7й версии я хз.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>У меня большие сомнения в том, что .net, позиционирующаяся как некоторая революционная технология, таковой окажется.
Ну так чё, всё ещё не видишь, как ты облажался??
.NET вполне себе революция, вернее "копия другой революции — Жабы" Другой вопрос, что в ней не было особой потребности — просто ЕЩЁ ОДИН вариант написания программ 1 раз и запуска везде.
Проблема всех революций в том, что идею выдают "самые буйные", да вот воплощают — какие-то долбо****бы. Как можно было умудриться ПСЕВДОКОД сделать windows-only???
Вот вам и революция!