Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 07:13
Оценка:
Вот смотрю я на развитие Angular 2 Ionic 2

Это очень близко к WPF. Сейчас для .Net Core нет кроссплатформенного декстопного GUI.
Но вот есть идея скрестить Angular 2 и .Net Core.
В свое время я сделал обертку для использования классов .Net Core из неуправляемого кода
Мои статьи.

Там кстати есть и статья про Angular 2.

В обертке реализован доступ к классам из сборок, итераторы, вывод типов для дженериков, методы расширения, поддержка событий. То есть можно писать код близкий к C# на 1С.
К моему огромному сожалению 1С это оказалось не нужно. В том плане, что они не хотят модернизировать Native Api для передачи в параметрах объектов и возврате объектов из методов. Поэтому ссылки на объекты передаются виде строки и из которых создаются объекты ВК. Это очень неудобно.

Но вот подумалось, что эту технологию можно прикрутить к браузеру через плагин .
То есть можно создавать обертку на стороне браузера. При этом можно для TypeScript генерить интерфейсы (в свое время предлагал псевдоинтерфейсы для динамиков в .Net) и использовать IntelliSense на полную катушку.
То есть можно как в Xamarin писать единую общую часть в Dll, а гуй писать отдельно.
Я знаю, что 1С использует технологию «Создание компонент с использованием технологии Native API». и в Web клиенте через плагины.
Буду благодарен за конструктивную критику, идеи и ссылки на создание плагинов.
и солнце б утром не вставало, когда бы не было меня
Отредактировано 04.01.2017 14:45 Serginio1 . Предыдущая версия . Еще …
Отредактировано 28.12.2016 7:49 Serginio1 . Предыдущая версия .
Отредактировано 28.12.2016 7:48 Serginio1 . Предыдущая версия .
webbrowser angular2 .net core typescript javascript
Re: Angular 2 и .Net Core
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.12.16 07:50
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Это очень близко к WPF.


Нет, это не очень близко к WPF. Близко к react.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 08:10
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>>Это очень близко к WPF.


AVK>Нет, это не очень близко к WPF. Близко к react.

Хорошо. Смыл в том, что несложно написать GUI. Есть куча готовых компонентов.
И есть возможность через плагин использовать классы .Net Core для создания кроссплатформенных приложений.
и солнце б утром не вставало, когда бы не было меня
Re[2]: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 09:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Андрей можешь дать ссылочки на создание плагинов для Хрома?
Буду премного благодарен.
Обязуюсь писАть их только на английском!
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.12.2016 9:10 Serginio1 . Предыдущая версия . Еще …
Отредактировано 28.12.2016 9:09 Serginio1 . Предыдущая версия .
Отредактировано 28.12.2016 9:08 Serginio1 . Предыдущая версия .
Re[3]: Angular 2 и .Net Core
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.12.16 09:25
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Андрей можешь дать ссылочки на создание плагинов для Хрома?

S>Буду премного благодарен.
S> Обязуюсь писАть их только на английском!

Вот посмотри ты какой непрошибаемый человек. Буквально вчера:

AVK>> В том что если у тебя в голове засела какая то мысль, то ты бежишь с этой мыслью во все топики, никакого отношения к этой мысли не имеющие.

S>Насчет упертости неправда.


Ты вообще как, адекватным свое поведение в форуме считаешь?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[4]: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 09:31
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>>Андрей можешь дать ссылочки на создание плагинов для Хрома?

S>>Буду премного благодарен.
S>> Обязуюсь писАть их только на английском!

AVK>Вот посмотри ты какой непрошибаемый человек. Буквально вчера:


AVK>

AVK>>> В том что если у тебя в голове засела какая то мысль, то ты бежишь с этой мыслью во все топики, никакого отношения к этой мысли не имеющие.

S>>Насчет упертости неправда.


AVK>Ты вообще как, адекватным свое поведение в форуме считаешь?


Я специально создал отдельную тему. В чем неадекватность?
Мне пришла идея, что можно сделать кроссплатформенный GUI на Angular 2 ghb этом использовать классы .Net Core.
При этом у меня есть опыт использования классов .Net Core из неуправляемого кода?

В чем моя неадекватность? И я всего то попросил ссылку на написания плагина для Хрома, что соответствует заданному вопросу в этом топике.
Я сейчас ищу, но не могу найти ничего путного
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.12.2016 9:33 Serginio1 . Предыдущая версия .
Re[5]: Angular 2 и .Net Core
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.12.16 09:41
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Я специально создал отдельную тему. В чем неадекватность?


В том что твой ответ мне никак не связан с тем, что я написал. Абсолютно никак.

Или вот сегодняшнее прекрасное: Re[8]: ASP.NET Core, Angular 2, SignalR для чайников
Автор: Serginio1
Дата: 28.12.16

Ты чего, правда не понимаешь, что так с людьми общаться нельзя?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[6]: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 09:48
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>> Я специально создал отдельную тему. В чем неадекватность?


AVK>В том что твой ответ мне никак не связан с тем, что я написал. Абсолютно никак.


AVK>Или вот сегодняшнее прекрасное: Re[8]: ASP.NET Core, Angular 2, SignalR для чайников
Автор: Serginio1
Дата: 28.12.16

AVK>Ты чего, правда не понимаешь, что так с людьми общаться нельзя?
Тогда прошу прощения за этот ответ.
Но это никак не касается моего вопроса к тебе в этой ветке.
Вот нашел ссылочки How to create a PPAPI plugin for Google Chrome in Windows?
и солнце б утром не вставало, когда бы не было меня
Re: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 14:49
Оценка:
Здравствуйте, Serginio1, Вы писали:

А может кто нибудь сказать насколько реально через плагин загрузить .Net Core?
Какик флаги безопасности использовать при загрузке CoreClr

// Set up the startup flags for the clr runtime
        STARTUP_FLAGS dwStartupFlags = (STARTUP_FLAGS)(
            STARTUP_FLAGS::STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN |
            STARTUP_FLAGS::STARTUP_SINGLE_APPDOMAIN |
            STARTUP_FLAGS::STARTUP_SERVER_GC
            );

        hr = pCLRRuntimeHost->SetStartupFlags(dwStartupFlags);


И при загрузке домена

const wchar_t* property_keys[] =
        {
            L"APPBASE",
            L"TRUSTED_PLATFORM_ASSEMBLIES",
            L"APP_PATHS",
        };

        const wchar_t* property_values[] = {
            // APPBASE
            pCoreClrStartupParams->AppBase.c_str(),
            // TRUSTED_PLATFORM_ASSEMBLIES
            pCoreClrStartupParams->FullTrustedAssembliePaths.c_str(),
            // APP_PATHS
            pCoreClrStartupParams->AppPaths.c_str()
        };

        DWORD domainId;
        DWORD appDomainFlags = APPDOMAIN_ENABLE_PLATFORM_SPECIFIC_APPS | APPDOMAIN_ENABLE_PINVOKE_AND_CLASSIC_COMINTEROP;

        int nprops = sizeof(property_keys) / sizeof(wchar_t*);

        ICLRRuntimeHost2* pCLRRuntimeHost = ClrLoader::pClrLoader->pCLRRuntimeHost;


        hr = pCLRRuntimeHost->CreateAppDomainWithManager(
            L"NetObjectToNative",
            appDomainFlags,
            NULL,
            NULL,
            nprops,
            property_keys,
            property_values,
            &domainId);


И для чего лучше писать плагин для Хрома или Edge (под него вообще писать плагины можно?)
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.12.2016 15:01 Serginio1 . Предыдущая версия . Еще …
Отредактировано 28.12.2016 14:59 Serginio1 . Предыдущая версия .
Re: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.12.16 07:36
Оценка:
Здравствуйте, Serginio1, Вы писали:

Кстати развивается и JINT https://blogs.msdn.microsoft.com/dotnet/2016/12/28/the-week-in-net-on-net-with-steve-smith-jint/
и солнце б утром не вставало, когда бы не было меня
Re: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.12.16 12:01
Оценка:
Здравствуйте, Serginio1, Вы писали:
Скачал по ссылке https://developer.chrome.com/native-client/sdk/download хромовского клиента.
Нашел часто используемую структуру в файле ..\nacl_sdk\pepper_49\include\ppapi\c\ppVar.h



* The <code>PP_VarType</code> is an enumeration of the different types that
 * can be contained within a <code>PP_Var</code> structure.
 */
typedef enum {
  /**
   * An undefined value.
   */
  PP_VARTYPE_UNDEFINED = 0,
  /**
   * A NULL value. This is similar to undefined, but JavaScript differentiates
   * the two so it is exposed here as well.
   */
  PP_VARTYPE_NULL = 1,
  /**
   * A boolean value, use the <code>as_bool</code> member of the var.
   */
  PP_VARTYPE_BOOL = 2,
  /**
   * A 32-bit integer value. Use the <code>as_int</code> member of the var.
   */
  PP_VARTYPE_INT32 = 3,
  /**
   * A double-precision floating point value. Use the <code>as_double</code>
   * member of the var.
   */
  PP_VARTYPE_DOUBLE = 4,
  /**
   * The Var represents a string. The <code>as_id</code> field is used to
   * identify the string, which may be created and retrieved from the
   * <code>PPB_Var</code> interface. These objects are reference counted, so
   * AddRef() and Release() must be used properly to avoid memory leaks.
   */
  PP_VARTYPE_STRING = 5,
  /**
   * Represents a JavaScript object. This vartype is not currently usable
   * from modules, although it is used internally for some tasks. These objects
   * are reference counted, so AddRef() and Release() must be used properly to
   * avoid memory leaks.
   */
  PP_VARTYPE_OBJECT = 6,
  /**
   * Represents an array of Vars. The <code>as_id</code> field is used to
   * identify the array, which may be created and manipulated from the
   * <code>PPB_VarArray</code> interface. These objects are reference counted,
   * so AddRef() and Release() must be used properly to avoid memory leaks.
   */
  PP_VARTYPE_ARRAY = 7,
  /**
   * Represents a mapping from strings to Vars. The <code>as_id</code> field is
   * used to identify the dictionary, which may be created and manipulated from
   * the <code>PPB_VarDictionary</code> interface. These objects are reference
   * counted, so AddRef() and Release() must be used properly to avoid memory
   * leaks.
   */
  PP_VARTYPE_DICTIONARY = 8,
  /**
   * ArrayBuffer represents a JavaScript ArrayBuffer. This is the type which
   * represents Typed Arrays in JavaScript. Unlike JavaScript 'Array', it is
   * only meant to contain basic numeric types, and is always stored
   * contiguously. See PPB_VarArrayBuffer_Dev for functions special to
   * ArrayBuffer vars. These objects are reference counted, so AddRef() and
   * Release() must be used properly to avoid memory leaks.
   */
  PP_VARTYPE_ARRAY_BUFFER = 9,
  /**
   * This type allows the <code>PP_Var</code> to wrap a <code>PP_Resource
   * </code>. This can be useful for sending or receiving some types of
   * <code>PP_Resource</code> using <code>PPB_Messaging</code> or
   * <code>PPP_Messaging</code>.
   *
   * These objects are reference counted, so AddRef() and Release() must be used
   * properly to avoid memory leaks. Under normal circumstances, the
   * <code>PP_Var</code> will implicitly hold a reference count on the
   * <code>PP_Resource</code> on your behalf. For example, if you call
   * VarFromResource(), it implicitly calls PPB_Core::AddRefResource() on the
   * <code>PP_Resource</code>. Likewise, PPB_Var::Release() on a Resource
   * <code>PP_Var</code> will invoke PPB_Core::ReleaseResource() when the Var
   * reference count goes to zero.
   */
  PP_VARTYPE_RESOURCE = 10
} PP_VarType;
и солнце б утром не вставало, когда бы не было меня
Отредактировано 29.12.2016 12:10 Serginio1 . Предыдущая версия .
Re: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.01.17 13:50
Оценка:
Здравствуйте, Serginio1, Вы писали:
Будем продвигаться потихоньку.
в ECMAScript 6 появились Динамические прокси
Это аналог DynamicObject.

Кроме свойств, можно вызвать метод

Remote objects

Proxies allow you to create virtual objects that represent remote or persisted objects. To demonstrate this, let's write a wrapper around an existing library for remote object communication in Javascript. Tyler Close's web_send library can be used to construct remote references to server-side objects. One can then "invoke" methods on this remote reference via HTTP POST requests. Unfortunately, remote references cannot be used as objects themselves. That is, to send a message to a remote reference ref, one writes:


Q.post(ref, 'foo', [a,b,c]);
It would be a lot more natural if one could instead treat ref as if it were an object, such that one could call its methods as ref.foo(a,b,c). Using the Proxy API, we can write a wrapper for remote web_send objects to translate property access into Q.post calls:

function Obj(ref) {

  return Proxy.create({

    get: function(rcvr, name) {

      return function() {

        var args = Array.prototype.slice.call(arguments);

        return Q.post(ref, name, args);

      };

    }

  });

}

Now one can use the Obj function to write Obj(ref).foo(a,b,c).


Прокси-объект (JavaScript)

Так понимаю, что можно сцепить и с apply https://learn.javascript.ru/proxy
То есть узнать, что вызывается метод, можно только по arguments?
Или использовать ]__noSuchMethod__ [/url<br />
<br />
Хотя можно использовать [url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod]noSuchMethod


Из Native Client Messaging System

Можно обмениваться через сообщения. Впринципе можно организовать вызов через аналог ContinueWith.
Или можно вызвать метод синхронно?

Можно конечно, через async await promise
и солнце б утром не вставало, когда бы не было меня
Отредактировано 05.01.2017 15:43 Serginio1 . Предыдущая версия . Еще …
Отредактировано 05.01.2017 10:56 Serginio1 . Предыдущая версия .
Отредактировано 05.01.2017 10:48 Serginio1 . Предыдущая версия .
Отредактировано 05.01.2017 10:45 Serginio1 . Предыдущая версия .
Отредактировано 04.01.2017 14:46 Serginio1 . Предыдущая версия .
javascript typescript angular2 .net core
Re[2]: Angular 2 и .Net Core
От: TK Лес кывт.рф
Дата: 04.01.17 15:08
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Можно обмениваться через сообщения. Впринципе можно организовать вызов через аналог ContinueWith.

S> Или можно вызвать метод синхронно?

Только, причем тут .net core? уже есть nodejs как backend для хромиума. хочется добавить .net — общайтесь с новой через ipc
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.01.17 15:50
Оценка:
Здравствуйте, TK, Вы писали:

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


S>> Можно обмениваться через сообщения. Впринципе можно организовать вызов через аналог ContinueWith.

S>> Или можно вызвать метод синхронно?

TK>Только, причем тут .net core? уже есть nodejs как backend для хромиума. хочется добавить .net — общайтесь с новой через ipc


При том, что у меня есть аалог Idispatch для создания любого объекта .Net Core и вызова любого его метода из натива.
Вот все мои публикации по этому поводу https://habrahabr.ru/users/serginio1/topics/

Сейчас для кроссплатформенного GUI декстопа есть телько авалония https://github.com/AvaloniaUI/Avalonia

Про Electron.js я в курсе. Но реально сделать описание классов и использовать их в TypeScript для типизированных объектов.
Практически это кроссплатформенная замена silverlight
и солнце б утром не вставало, когда бы не было меня
Отредактировано 04.01.2017 16:40 Serginio1 . Предыдущая версия .
Re[3]: Angular 2 и .Net Core
От: fddima  
Дата: 29.01.17 20:48
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Хорошо. Смыл в том, что несложно написать GUI. Есть куча готовых компонентов.

S>И есть возможность через плагин использовать классы .Net Core для создания кроссплатформенных приложений.
Несложно?! При всей моей нелюбви к WPF — я его посоветую любому вместо web-based псевдо ерунде основанной на псевдокомпиляторах. Я говорил много раз на этом форуме — единственный подход который достоин рассмотрения — это google closure library. В остальных — просто нет модульности и тайпскрипт сосет здесь. Причем это можно было бы решить в рамках тайпскрипта, но нет — они упоролись в свои модули.
Одако — один класс на один файл — это пришло далеко не из шарпа и это работает лучше всего остального досих пор.
Учитывая в какие я грабли вступил с ангуляром 1 — а именно лики 50 мб в минуту — и сам же полечил — и реакция мэйнтейнеров...
Вернула меня к началу — юзай тока то что можешь сам допиливать, необязательно своё.
А нужные компоненты — пишутся всегда легко. Ну если оно реально надо.
Если квак-квак и в продакш — это одно. Я например пересмотрел кучу гридов и ни один по функционалу не подошел... лет 8 назад. Но блин, то что я раньше сочинил для себя — всего 300 кб кода — щас вложится в 200.
Короче — лучше безобразный но более менее единый WPF, чем анархисты в gtml/js, навроде меня. Но последние — доминируют. На сейчас — выбор настолько богат что глаза теряются нафиг.
Re[4]: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 30.01.17 07:36
Оценка:
Здравствуйте, fddima, Вы писали:

F> Короче — лучше безобразный но более менее единый WPF, чем анархисты в gtml/js, навроде меня. Но последние — доминируют. На сейчас — выбор настолько богат что глаза теряются нафиг.

Я только за. Но посмотри на тот же Electron. На нем куча народу пишет. При этом там возня с модулями и прочие неудобства.

Кстати уже написал и протестировал методы свойства, асинхронные методы. Сейчас добавлю поддержку дженериков и операторов.
Единственно не удалось мне прикрутить для CefSimple DevTools. Ну да если кого то заинтересует можно и прикрутить
и солнце б утром не вставало, когда бы не было меня
Re: Angular 2 и .Net Core
От: kekekeks  
Дата: 02.02.17 21:16
Оценка: 4 (1) +1
Здравствуйте, Serginio1, Вы писали:


S> Сейчас для .Net Core нет кроссплатформенного декстопного GUI.


Теперь есть. https://www.youtube.com/watch?v=UHEW-ZInr6A
Re: Angular 2 и .Net Core
От: bobby23  
Дата: 03.02.17 10:02
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Вот смотрю я на развитие Angular 2 Ionic 2



S>[/url] и в Web клиенте через плагины.

S> Буду благодарен за конструктивную критику, идеи и ссылки на создание плагинов.

прикрути ангуляр к NW.js и половина проблем исчезнет
Re[5]: Angular 2 и .Net Core
От: bobby23  
Дата: 03.02.17 10:05
Оценка:
Здравствуйте, Serginio1, Вы писали:

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


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


S>>>Андрей можешь дать ссылочки на создание плагинов для Хрома?

S>>>Буду премного благодарен.
S>>> Обязуюсь писАть их только на английском!

AVK>>Вот посмотри ты какой непрошибаемый человек. Буквально вчера:


AVK>>

AVK>>>> В том что если у тебя в голове засела какая то мысль, то ты бежишь с этой мыслью во все топики, никакого отношения к этой мысли не имеющие.

S>>>Насчет упертости неправда.


AVK>>Ты вообще как, адекватным свое поведение в форуме считаешь?


S> Я специально создал отдельную тему. В чем неадекватность?

S>Мне пришла идея, что можно сделать кроссплатформенный GUI на Angular 2 ghb этом использовать классы .Net Core.
S>При этом у меня есть опыт использования классов .Net Core из неуправляемого кода?

S> В чем моя неадекватность? И я всего то попросил ссылку на написания плагина для Хрома, что соответствует заданному вопросу в этом топике.

S>Я сейчас ищу, но не могу найти ничего путного

.Net Core для лузеров, технология свое отжила, хочешь быть в волне пионеров — делай на js/typescript + nw.js = получаются красивые десктоп приложения
Re[2]: Angular 2 и .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 03.02.17 10:13
Оценка:
Здравствуйте, kekekeks, Вы писали:

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



S>> Сейчас для .Net Core нет кроссплатформенного декстопного GUI.


K>Теперь есть. https://www.youtube.com/watch?v=UHEW-ZInr6A


Про авалонию я писал. Она была альфой https://github.com/AvaloniaUI/Avalonia
и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.