|
Использование в TypeScript классов .Net | ☑ | ||
---|---|---|---|---|
0
Serginio1
13.01.17
✎
11:24
|
Выложил стать на свое видение
http://ru.stackoverflow.com/questions/613820/%d0%98%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-typescript-%d0%ba%d0%bb%d0%b0%d1%81%d1%81%d0%be%d0%b2-net Суть в том, что используя Native Client Messaging System, Proxy и Promise vs можем вызывать методы .Net классов асинхронно через await let HttpClient=await NetWrap.GetType("System.Net.Http.HttpClient","System.Net.Http.dll"); let HttpClientHandler = await NetWrap.GetType("System.Net.Http.HttpClientHandler","System.Net.Http.dll"); let client=await NetWrap.new(HttpClient); let responst= await (await client.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx")).Result(); //Result вызываем как функцию Для чего это нужно. Возьмем пример нынешнего Xamarin. Xamarin.Forms очень беден, поэтому многие делают общую логику отдельно (которая может быть сложной), а морду рисуют для каждой ОС отдельно. Сейчас для отличных от Win декстопов нет UI. Но например у тебя есть приложение на UWP или WPF. Можно выделить логику отдельно, а морду нарисовать на Angular 2 Разница использования .Net кода только в том, что все методы асинхронные. При этом можно подписываться к событиям 1С,.Net Core. Динамическая компиляция класса обертки для получения событий .Net объекта в 1С. Для Вэб апи нужно городить SignalR или WebSocket. То есть перенести приложение достаточно легко, в отличие от web api-host. |
|||
1
Asmody
13.01.17
✎
11:27
|
Круто, конечно, но где это может использоваться? Только в Xamarin?
|
|||
2
Вафель
13.01.17
✎
11:30
|
разве в ноде не достаточно класссов?
|
|||
3
Кирпич
13.01.17
✎
11:38
|
Читать не буду. Поздравляю Serginio1 с очередным удачным скрещиванием ужа и ежа и желаю удачи на этом нелёгком поприще.
P.S. Столько всякого геморроя в этом .NET с нативом, аж противно. Идея управляемого и неуправляемого кода изначально дебильная. |
|||
4
Mauser
13.01.17
✎
11:54
|
Возникла слабая надежда, что Serginio1 отстанет от 1С и пойдет рассказывать о своих видениях другим.
(0) Мы правда больше не услышим зажигательных и искрометных рассказов про Ъ? |
|||
5
Serginio1
13.01.17
✎
12:06
|
(1) Нет это может использоваться в браузере совместо с Angular 2.
(2) Ну многое оочень отличается от .Net классов, плюс нужно отдельно устанавливать. Муторно это все (3) Не вижу геморроя. Легче кстати чем COM. (4) Запомни теперь новое слово await |
|||
6
Вафель
13.01.17
✎
12:07
|
(5) ну если ангулар, то с нодой полюбому нужно работать
|
|||
7
Serginio1
13.01.17
✎
12:07
|
(1) А как изменить шапку добавить про Angular 2
|
|||
8
Serginio1
13.01.17
✎
12:14
|
(1) Кстати написано Можно выделить логику отдельно, а морду нарисовать на Angular 2
Я даже статью написал про ASP.NET Core, Angular 2, SignalR для чайников https://habrahabr.ru/post/318480/ (3) Зря. Там кстати мало про .NET с нативом. Но есть про Proxy, Promise await в TypeScripr. Используя Proxy можно делать различные удобные обертки |
|||
9
trdm
13.01.17
✎
12:16
|
Как же трудно впаривать арктический снег жителям антарктики!
Эти эскимосы в упор не понимают всей прелести холодильников! |
|||
10
Кирпич
13.01.17
✎
12:16
|
(8) "можно делать различные удобные обертки"
про обертки не интересно. создаем геморрой, потом создаем для него обертки. неинтересно. |
|||
11
lock19
13.01.17
✎
12:25
|
(5) "Ну многое оочень отличается от .Net классов, плюс нужно отдельно устанавливать. Муторно это все"
МБ забить на js? |
|||
12
Вафель
13.01.17
✎
12:28
|
(11) лучше забить на c#
|
|||
13
lock19
13.01.17
✎
12:29
|
(12) Лучше на оба, раз так.
|
|||
14
Fragster
гуру
13.01.17
✎
12:30
|
«Если из всех инструментов у тебя есть только молоток, то в каждой проблеме ты увидишь гвоздь» (с) Марк Твен.
|
|||
15
Serginio1
13.01.17
✎
12:38
|
(10) Ну для примера
я могу сделать обертки с Вэб или HTTP сервисам с автоматической сериализацие и десериализацией Например вместо http.get('/api/SampleData/WeatherForecasts').subscribe(result => { this.forecasts = result.json();} ) Который можно получить более удобоваримо и сразу с автоматической оберткой this.forecasts = await wrap.WeatherForecasts(); Я понимаю, что второй ваиант для тебя это геморрой. Только не могу понять почему? |
|||
16
Serginio1
13.01.17
✎
12:40
|
(11) На JS однозначно. TypeScript рулит.
Я могу использовать как родные библиотеки так и .Net. Котрые могут быть уже написаны для WPF или UWP Чем больше инструментов, тем меньше гвоздей |
|||
17
Вафель
13.01.17
✎
12:47
|
(16) но await и так есть в js без всякого .Net
|
|||
18
lock19
13.01.17
✎
12:49
|
(17) У него TypeSript ;)
|
|||
19
Вафель
13.01.17
✎
12:51
|
(18)тайпскрипт - это надстройка над js расширяющая язык
|
|||
20
lock19
13.01.17
✎
12:51
|
Что там с поддержкой ES6?
|
|||
21
Кирпич
13.01.17
✎
12:53
|
(15) да я ничо в этом не понимаю. я знаю только, что ты любитель прикрутить к чему нибудь красивому какую нибудь ненужную, уродливую хрень. потому и не согласен :)
|
|||
22
lock19
13.01.17
✎
12:56
|
+(18) (20) Не мог понять откуда нужда тащить NET в js, а оно оказывается обёртки породили проблему...
|
|||
23
Вафель
13.01.17
✎
12:57
|
(17) пример чистого js (требуется нода 7)
(async function() { const request = require("request-promise") let someData = await request.get("http://example.com/"); let anotherData = await request.get("http://example2.com/"); // манипуляции с данными console.log(/*результат манипуляций*/); })(); |
|||
24
Serginio1
13.01.17
✎
13:05
|
(23)
Что касается HttpClient то я просто привел пример использования. При чем тут .Net. await это TypeScript. В C# let используется в Linq. Ты хоть по ссылке ходил? Там все расписано |
|||
25
Вафель
13.01.17
✎
13:08
|
(24) твои статьи читать невозможно абсолютно
|
|||
26
Вафель
13.01.17
✎
13:08
|
только заголовок
|
|||
27
Вафель
13.01.17
✎
13:08
|
Ты пишешь как ты делаешь, а нужно зачем ты делаешь
|
|||
28
Serginio1
13.01.17
✎
13:11
|
(27) Не читал, но осуждаешь
Например для 15. Используя Proxy. Еще раз например у тебя уже есть логика на C#. Для того, что бы все не переписывать на TS или JS можно использовать готовые классы .Net |
|||
29
Serginio1
13.01.17
✎
13:13
|
28 Еще раз для Linux не аналога WPF вернее есть авалония, но она на этапе альфы. Но можно легко перевести приложение используя Angular 2.
|
|||
30
Вафель
13.01.17
✎
13:14
|
(29) с wpf на ангулар тоже нужно будет переписыать. А это ого-го
|
|||
31
Torquader
13.01.17
✎
13:15
|
(28) Если у тебя есть готовый код на C#, то тебе уже повезло.
Так как, чтобы на C# что-то заработало, нужно очень и очень постараться, особенно в части использования библиотек, когда выясняется, что два приложения используют разные библиотеки с одним названием. |
|||
32
lock19
13.01.17
✎
13:16
|
(29) А можно изначально пользовать какой-нибудь Qt, который заведомо работает везде.
|
|||
33
Serginio1
13.01.17
✎
13:48
|
(30) Переписывать только морду и события морды.
(31) Для этого есть версии и PublicKeyToken mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Я не разу с таким не сталкивался, но и проблем особо не будет если у них разные версии и PublicKeyToken и лежат в разных папках. (32) Можно и делают. Но я о другом, что бы не переписывать кучу кода. Или использовать классы .Net которых нет в JS |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |