Информация об изменениях

Сообщение Re[34]: Программы в сохраненной html-странице -- почему не р от 03.04.2017 14:20

Изменено 03.04.2017 14:27 vdimas

Re[34]: Программы в сохраненной html-странице -- почему не р
Здравствуйте, Serginio1, Вы писали:

V>>Хреново проверил, я тебе ссылки дал.

S>Я тебе привожу РЕАЛЬНЫЙ код. Ты мне ссылки 3 х летней давности.

Да хоть 10-тилетней давности.
Ничего не изменилось.


S>И при этом говришь о совести.


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


V>>Нет и еще раз нет.

S>То есть JS являются обертками над нативом.

Да. Причем, весьма непростыми обертками.
А потом ты эти непростые обертки опять оборачиваешь непростыми обертками C#.


S>Где ссылки на свои утверждения. Я тебе кучу ссылок приводил.


Мне не надо отвечать ссылками, не надо разбрасывать по сторонам моё внимание.
Я хотел услышать обоснование, почему именно так?
Обоснований не услышал.

И да, я тебе давал ссылки только потому что ты споришь с очевидным, утверждая, что к нейтивному DOM можно подцепиться только через JS.
А я сразу и говорил, что для движка Gecko это НЕ так, там проще подцепиться прямо к нейтиву, а в случае Хромиум прямо к нейтиву подцепиться чуть сложнее. По крайней мере у меня сложилось такое ощущение, когда я его смотрел лет ~5 назад.


S>Ну да покажи ка свое творение на использование натива из браузера, а не испоьзование браузера как контрола.


Опять эта пурга...
Любое приложение-браузер — это и есть использование "браузера как контрола" на некоей "форме".

Более того, возьми обычный Хром, попробуй в нём открыть произвольный JS с твоим Net-хелпером. Заработало? Нет? А чего так? ))


V>>Там обсуждается биндинг сугубо к JS, хотя я тебе раз сто повторил уже, что эта прослойка для твоей задачи не нужна от слова совсем.

V>>Ты же сам сформулировал задачу таким образом, что тебе надо кроссплатформенно переиспользовать свои наработки на C#.
V>>Ну и при чём тут тогда вообще JS и галимый v8?
S>Мне нужно вызвать из JS манагед код.

А зачем JS на клиентской приложухе?
Юзверю будет предоставлена возможность динамически править этот JS и перезапускать его?


S>Ну вроде как понятно использование .Net классов из TS/ Что не понятно?


Непонятно, зачем тут TS.


S>Но ты начинаешь развивать свое видение, которое никакого отношения к задаче не имеет.


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


V>>Скажем так, до этого сообщения мне казалось, что ты злостно троллишь, когда делаешь вид, что не понимаешь, чем C#-обертка над нейтивной GUI-библиотекой отличается от того, что сделал ты.

V>>Ан, нет, похоже, ты ДЕЙСТВИТЕЛЬНО не понимаешь ни хрена...
V>>Вот это расклады...
S> Ну только ты один всезнайка.

Да тут не требуется семи пядей во лбу. Тут требуется любопытство здорового человека.


S>Еще раз я говорю об UWP/ Оно имеет свое определение которое работает только на семействе Win 10.


Я рядом на всю эту кашу подробно ответил:
http://www.rsdn.org/forum/flame.comp/6745711.1


S>Под приложением UWP понимается GUI с использованием XAML


Нет. Под приложением UWP понимается способность программы динамически опрашивать наличие неких АПИ в той версии ОС, на которой оно исполняется. Именно отсюда растут ноги у первой буквы в этой аббревиатуре.


V>>Так вот, ты запросто можешь писать на WPF для UWP:

V>>https://www.hanselman.com/blog/HowToCallWinRTAPIsInWindows8FromCDesktopApplicationsWinRTDiagram.aspx
V>>Не знал ведь? ))
V>>Потому что подходящего "шаблона" в Студии нет?
V>>А руками зависимости и target прописать — это высшая математика? ))
S>Я стебя.. Я привел ошибку в тексе которой есть COM.

Еще раз и по русски. Или это опять был ответ не на то, что ты оставляешь для цитирования?


S>Это говорит о том, что ты даже не читаешь о чем я пишу. Ты правда думаешь, что я не знаю, что такое WinRT?


Я достоверно знаю, что ты не знаешь, что такое UWP.
Один раз поправил, два, но ты же опять предпочитаешь включать воинственное невежество.
Неужели тебе не любопытно то, с чем ты работаешь?


V>>Никакие шаблоны Студии разработчику не нужны, можно создать пустой проект и настроить используемые версии фреймворков.

V>>А нужные зависимости и так часто добавлять руками приходится, т.е. занятие это привычное, поди.
S>И какие же версии в UWP?

Для Windows 8.1 номер WinRT АПИ указан как 1.3, для Windows 10 WinRT АПИ идёт за номером 1.4.

В ресурсах указана строка, например для Windows 10 (твоё UWP): "WindowsRuntime 1.4".


S> И кстати например DataGrid UWP не поддерживает. Как впрочем .Net Core не поддерживате DataTable/


V>>Просто дело в том, что на любом даже "обрезанном" Windows RT — планшете можно установить полноценный дотнет.


S> Полноценный нельзя! Это вообще песочница со многими ограничениями.

S>Например по файловой системе
S>https://metanit.com/sharp/uwp/12.1.php

Это для AppStore-приложений, бо они в песочнице исполняются.
А кто тебе мешает установить UWP-приложение обычным копированием, ы? )))

Вот за что я не люблю т.н. "шаблоны приложений" Visual Studio, что они вносят натуральную путаницу.
Потому что тебе, вообще-то доступно АПИ WinRT в твоих обычных приложухах.
Для этого не обязательно размещать приложуху в AppStore.

Причем, если для дотнета надо произвести настроить target в проекте ручками:
https://blogs.windows.com/buildingapps/2017/01/25/calling-windows-10-apis-desktop-application/#qgEKUKOirMDLdX75.97

То посмотри там же — для нейтива вообще ничего особенного делать не надо — просто бери да пользуйся. ))


V>>Обрати внимание на virtual JSObject* WrapObject(...)

S>JSObject это что?

Это та самая обертка, создания которой хотелось бы избежать.


S>Еще раз ты утверждаешь, что в браузере существует две модели.

S>Основными являются нативные, а JS это обертка над нативными?

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


S>И учитвываем, что JS объекты могут компилироваться в натив.


Не могут.
Всё-равно компиллируется динамический вызов обертки.
Потому что JS-движок знает устройство "своих" JS-объектов, но понятия не имеет об устройстве внешних объектов.
Поэтому вызов идёт через аналог IDIspatch.


S>Ну так это оберка над чем, Над


Даже в нейтиве лишняя обертка — это лишние тормоза.
А если еще и каждый метод вызывается через сложный код оберкти — то это ж-па полная.
Хана батарейке.


V>>В то время как ты можешь маршаллить простые типы и структуры из/в C#/нейтив как есть, простым копированием или даже по простой ссылке, без копирования. У тебя есть чудеснейшая возможность пользоваться нейтивным кодом практически напрямую из C#.

S>Ты мне объясняешь как детсадовцу.

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


S>Если бы посмотрел код то я как раз все это маршалю, а объекты передаю индекс в хроанилище и оборачиваю через JS объект.


Но ты оборачиваешь обертку.
Вот в чем ж-па. ))
Даже если тебе Ионика (или кто там) нагенерила тебе красивую страничку (ведь она тебе только для этого нужна, верно?), то раздай ты нужным контролам некие ID и потом из нейтива, вернее, из своей дотнетной обертки, присоединённой непосредственно к нейтивному АПИ запроси эти контролы и подпишись на события от нейтива, а не от JS. Ву а ля, или еще нет?


V>>В C# достаточно разработать ограниченное кол-во disposable-оберток над нейтивными типами — элементами GUI библиотеки.

S>Это ты все WinForms вспоминаеь. Он уже умер.

Это в тебе инженер умер. WinForms тут не при чём.

S>Казалось бы при чем тут .Net Core, Линукс?


А там что, какой-то особенный interop, что ле?
Такой же точно.


V>>Ну или посмотри через dotPeek реализацию дотнетных оберток над нейтивными WinRT интерфейсом.

S>Еще раз причем тут .Net Core, Линукс?

Всё то же самое через такой же точно interop.

V>>Потому что COM-библиотеке MSHTML стукнуло 20 лет, а на момент её разработки не было никаких селекторов.

V>>Я просто сэкономил ровно пару строк кода, работая с DOM через более современное АПИ.
V>>Но ты-то можешь предоставить в C# любое АПИ, какое тебе надо, верно? И дергать его типизированно.
V>>Я же там часть кода дёргаю вполне типизировано, если заметил, где старого АПИ хватило.
S>А то есть COM интерфейсов 20 лет назад не было?

Не было библиотеки MSHTML.


S>GeckoFX это контрол. И его нельзя использовать из .Net Core.


GeckoFX — это исходники. В том числе в этих исходниках содержатся контролы для WinForms, WPF, GTK.
Тебе ведь все-равно нужно окно верхнего уровня в линухах? Вот бери GTK для окна верхнего уровня, бросай на него свой браузер и радуйся.

И только попробуй еще раз озвучить, что под .Net Core это нельзя использовать. Прокляну. )))


S>Но ты упорно это игнорируешь. А потом говоришь о совести.


Я 100 раз тебе на это отвечал, ты игноришь мои ответы. Поэтому я обвиняю тебя в отсутствии совести.
Ты не имеешь права повторять те свои аргументы, на которые уже был дан ответ. Это если речь идёт о техническом обсуждении, а не о ругани на базаре, ес-но.
Ты можешь свои новые аргументы или не дать.
Например, я 100 раз говорил, что interop под .Net Core был реализован одним из первых, бо это вообще фундамент дотнета.
А значит ЛЮБЫЕ интеропные обертки прекрасно в .Net Core компиллируются и работают.

Собсно, сам этот .Net Core в первую очередь для таких оберткок и предназначался — чтобы их можно было не только на Windows собирать, но и под другие платформы.


V>>Гуглить хотя бы GtkSharp или GTK#.

V>>Это тонкие обертки над нейтивной GUI-либой.
V>>В исходниках.
V>>Покажи мне, что помешает собрать эти тонкие либы под Net Core?
S>Вот и я думаю почему это кроме авалонии нет других проектов.

Потому что ты в курсе www.google.com?


S>Опять же ты говоришь о возможности, но реальных продуктов нет.


GtkSharp и GTK# — это самые что ни на есть реальные продукты.
Бери да пользуйся.
Если возникнут непреодолимые сложности с компиляцией их в .Net Core — обращайся.


V>>Брехня. Я давал ссылки на сам проект, где лежат его исходники, которые являются компилябельными как под виндовый дотнет, так и под моно, так и под Core, так и под вообще подо что угодно. Потому что единственное что требуется для таких оберток — это дотнетный Interop, а он идёт самый первый в любом дотнетном фреймворке, ы-ы-ы.

S>Ну вот ты покажи не ссылки на исходники, а реальные обертки под Net Core?

А может ты меня попросишь еще твои исходники для тебя компиллировать? ))
Без няньки уже никак?


S>что бы из .Net Core можно использовать GUI по линукс.

S>А пока одна болтовня.

Т.е., вместо того, чтобы честно сказать: "так мол и так, у меня есть одна постыдная проблема — я не знаю как скомпиллировать дотнетные исходники для .net Core..." ты устроил весь этот цирк?

Ну так не удивляйся, что теперь в бессовестных ходишь. ))
Re[34]: Программы в сохраненной html-странице -- почему не р
Здравствуйте, Serginio1, Вы писали:

V>>Хреново проверил, я тебе ссылки дал.

S>Я тебе привожу РЕАЛЬНЫЙ код. Ты мне ссылки 3 х летней давности.

Да хоть 10-тилетней давности.
Ничего не изменилось.


S>И при этом говришь о совести.


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


V>>Нет и еще раз нет.

S>То есть JS являются обертками над нативом.

Да. Причем, весьма непростыми обертками.
А потом ты эти непростые обертки опять оборачиваешь непростыми обертками C#.


S>Где ссылки на свои утверждения. Я тебе кучу ссылок приводил.


Мне не надо отвечать ссылками, не надо разбрасывать по сторонам моё внимание.
Я хотел услышать обоснование, почему именно так?
Обоснований не услышал.

И да, я тебе давал ссылки только потому что ты споришь с очевидным, утверждая, что к нейтивному DOM можно подцепиться только через JS.
А я сразу и говорил, что для движка Gecko это НЕ так, там проще подцепиться прямо к нейтиву, а в случае Хромиум прямо к нейтиву подцепиться чуть сложнее. По крайней мере у меня сложилось такое ощущение, когда я его смотрел лет ~5 назад.


S>Ну да покажи ка свое творение на использование натива из браузера, а не испоьзование браузера как контрола.


Опять эта пурга...
Любое приложение-браузер — это и есть использование "браузера как контрола" на некоей "форме".

Более того, возьми обычный Хром, попробуй в нём открыть произвольный JS с твоим Net-хелпером. Заработало? Нет? А чего так? ))


V>>Там обсуждается биндинг сугубо к JS, хотя я тебе раз сто повторил уже, что эта прослойка для твоей задачи не нужна от слова совсем.

V>>Ты же сам сформулировал задачу таким образом, что тебе надо кроссплатформенно переиспользовать свои наработки на C#.
V>>Ну и при чём тут тогда вообще JS и галимый v8?
S>Мне нужно вызвать из JS манагед код.

А зачем JS на клиентской приложухе?
Юзверю будет предоставлена возможность динамически править этот JS и перезапускать его?


S>Ну вроде как понятно использование .Net классов из TS/ Что не понятно?


Непонятно, зачем тут TS.


S>Но ты начинаешь развивать свое видение, которое никакого отношения к задаче не имеет.


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


V>>Скажем так, до этого сообщения мне казалось, что ты злостно троллишь, когда делаешь вид, что не понимаешь, чем C#-обертка над нейтивной GUI-библиотекой отличается от того, что сделал ты.

V>>Ан, нет, похоже, ты ДЕЙСТВИТЕЛЬНО не понимаешь ни хрена...
V>>Вот это расклады...
S> Ну только ты один всезнайка.

Да тут не требуется семи пядей во лбу. Тут требуется любопытство здорового человека.


S>Еще раз я говорю об UWP/ Оно имеет свое определение которое работает только на семействе Win 10.


Я рядом на всю эту кашу подробно ответил:
http://www.rsdn.org/forum/flame.comp/6745711.1


S>Под приложением UWP понимается GUI с использованием XAML


Нет. Под приложением UWP понимается способность программы динамически опрашивать наличие неких АПИ в той версии ОС, на которой оно исполняется. Именно отсюда растут ноги у первой буквы в этой аббревиатуре.


V>>Так вот, ты запросто можешь писать на WPF для UWP:

V>>https://www.hanselman.com/blog/HowToCallWinRTAPIsInWindows8FromCDesktopApplicationsWinRTDiagram.aspx
V>>Не знал ведь? ))
V>>Потому что подходящего "шаблона" в Студии нет?
V>>А руками зависимости и target прописать — это высшая математика? ))
S>Я стебя.. Я привел ошибку в тексе которой есть COM.

Еще раз и по русски. Или это опять был ответ не на то, что ты оставляешь для цитирования?


S>Это говорит о том, что ты даже не читаешь о чем я пишу. Ты правда думаешь, что я не знаю, что такое WinRT?


Я достоверно знаю, что ты не знаешь, что такое UWP.
Один раз поправил, два, но ты же опять предпочитаешь включать воинственное невежество.
Неужели тебе не любопытно то, с чем ты работаешь?


V>>Никакие шаблоны Студии разработчику не нужны, можно создать пустой проект и настроить используемые версии фреймворков.

V>>А нужные зависимости и так часто добавлять руками приходится, т.е. занятие это привычное, поди.
S>И какие же версии в UWP?

Для Windows 8.1 номер WinRT АПИ указан как 1.3, для Windows 10 WinRT АПИ идёт за номером 1.4.

В ресурсах указана строка, например для Windows 10 (твоё UWP): "WindowsRuntime 1.4".


S> И кстати например DataGrid UWP не поддерживает. Как впрочем .Net Core не поддерживате DataTable/


V>>Просто дело в том, что на любом даже "обрезанном" Windows RT — планшете можно установить полноценный дотнет.


S> Полноценный нельзя! Это вообще песочница со многими ограничениями.

S>Например по файловой системе
S>https://metanit.com/sharp/uwp/12.1.php

Это для AppStore-приложений, бо они в песочнице исполняются.
А кто тебе мешает установить UWP-приложение обычным копированием, ы? )))

Вот за что я не люблю т.н. "шаблоны приложений" Visual Studio, что они вносят натуральную путаницу.
Потому что тебе, вообще-то доступно АПИ WinRT в твоих обычных приложухах.
Для этого не обязательно размещать приложуху в AppStore.

Причем, если для дотнета надо произвести настроить target в проекте ручками:
https://blogs.windows.com/buildingapps/2017/01/25/calling-windows-10-apis-desktop-application/#qgEKUKOirMDLdX75.97

То посмотри там же — для нейтива вообще ничего особенного делать не надо — просто бери да пользуйся. ))


V>>Обрати внимание на virtual JSObject* WrapObject(...)

S>JSObject это что?

Это та самая обертка, создания которой хотелось бы избежать.


S>Еще раз ты утверждаешь, что в браузере существует две модели.

S>Основными являются нативные, а JS это обертка над нативными?

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


S>И учитвываем, что JS объекты могут компилироваться в натив.


Не могут.
Всё-равно компиллируется динамический вызов обертки.
Потому что JS-движок знает устройство "своих" JS-объектов, но понятия не имеет об устройстве внешних объектов.
Поэтому вызов идёт через аналог IDIspatch.


S>Ну так это оберка над чем, Над


Даже в нейтиве лишняя обертка — это лишние тормоза.
А если еще и каждый метод вызывается через сложный код оберкти — то это ж-па полная.
Хана батарейке.


V>>В то время как ты можешь маршаллить простые типы и структуры из/в C#/нейтив как есть, простым копированием или даже по простой ссылке, без копирования. У тебя есть чудеснейшая возможность пользоваться нейтивным кодом практически напрямую из C#.

S>Ты мне объясняешь как детсадовцу.

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


S>Если бы посмотрел код то я как раз все это маршалю, а объекты передаю индекс в хроанилище и оборачиваю через JS объект.


Но ты оборачиваешь обертку.
Вот в чем ж-па. ))
Даже если тебе Ионика (или кто там) нагенерила тебе красивую страничку (ведь она тебе только для этого нужна, верно?), то раздай ты нужным контролам некие ID и потом из нейтива, вернее, из своей дотнетной обертки, присоединённой непосредственно к нейтивному АПИ запроси эти контролы и подпишись на события от нейтива, а не от JS. Ву а ля, или еще нет?


V>>В C# достаточно разработать ограниченное кол-во disposable-оберток над нейтивными типами — элементами GUI библиотеки.

S>Это ты все WinForms вспоминаеь. Он уже умер.

Это в тебе инженер умер. WinForms тут не при чём.

S>Казалось бы при чем тут .Net Core, Линукс?


А там что, какой-то особенный interop, что ле?
Такой же точно.


V>>Ну или посмотри через dotPeek реализацию дотнетных оберток над нейтивными WinRT интерфейсом.

S>Еще раз причем тут .Net Core, Линукс?

Всё то же самое через такой же точно interop.

V>>Потому что COM-библиотеке MSHTML стукнуло 20 лет, а на момент её разработки не было никаких селекторов.

V>>Я просто сэкономил ровно пару строк кода, работая с DOM через более современное АПИ.
V>>Но ты-то можешь предоставить в C# любое АПИ, какое тебе надо, верно? И дергать его типизированно.
V>>Я же там часть кода дёргаю вполне типизировано, если заметил, где старого АПИ хватило.
S>А то есть COM интерфейсов 20 лет назад не было?

Не было библиотеки MSHTML.


S>GeckoFX это контрол. И его нельзя использовать из .Net Core.


GeckoFX — это исходники. В том числе в этих исходниках содержатся контролы для WinForms, WPF, GTK.
Тебе ведь все-равно нужно окно верхнего уровня в линухах? Вот бери GTK для окна верхнего уровня, бросай на него свой браузер и радуйся.

И только попробуй еще раз озвучить, что под .Net Core это нельзя использовать. Прокляну. )))


S>Но ты упорно это игнорируешь. А потом говоришь о совести.


Я 100 раз тебе на это отвечал, ты игноришь мои ответы. Поэтому я обвиняю тебя в отсутствии совести.
Ты не имеешь права повторять те свои аргументы, на которые уже был дан ответ. Это если речь идёт о техническом обсуждении, а не о ругани на базаре, ес-но.
Ты можешь дать свои новые аргументы или не дать никаких.
Например, я 100 раз говорил, что interop под .Net Core был реализован одним из первых, бо это вообще фундамент дотнета.
А значит ЛЮБЫЕ интеропные обертки прекрасно в .Net Core компиллируются и работают.

Собсно, сам этот .Net Core в первую очередь для таких оберткок и предназначался — чтобы их можно было не только на Windows собирать, но и под другие платформы.


V>>Гуглить хотя бы GtkSharp или GTK#.

V>>Это тонкие обертки над нейтивной GUI-либой.
V>>В исходниках.
V>>Покажи мне, что помешает собрать эти тонкие либы под Net Core?
S>Вот и я думаю почему это кроме авалонии нет других проектов.

Потому что ты в курсе www.google.com?


S>Опять же ты говоришь о возможности, но реальных продуктов нет.


GtkSharp и GTK# — это самые что ни на есть реальные продукты.
Бери да пользуйся.
Если возникнут непреодолимые сложности с компиляцией их в .Net Core — обращайся.


V>>Брехня. Я давал ссылки на сам проект, где лежат его исходники, которые являются компилябельными как под виндовый дотнет, так и под моно, так и под Core, так и под вообще подо что угодно. Потому что единственное что требуется для таких оберток — это дотнетный Interop, а он идёт самый первый в любом дотнетном фреймворке, ы-ы-ы.

S>Ну вот ты покажи не ссылки на исходники, а реальные обертки под Net Core?

А может ты меня попросишь еще твои исходники для тебя компиллировать? ))
Без няньки уже никак?


S>что бы из .Net Core можно использовать GUI по линукс.

S>А пока одна болтовня.

Т.е., вместо того, чтобы честно сказать: "так мол и так, у меня есть одна постыдная проблема — я не знаю как скомпиллировать дотнетные исходники для .net Core..." ты устроил весь этот цирк?

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