Имя: Пароль:
1C
 
.Net Core, обмен с 1C по TCP/IP между различными устройствами
0 Serginio1
 
28.09.16
12:10
Выложил статьи
http://catalog.mista.ru/public/551698/
https://habrahabr.ru/post/311128/
Примеры можно скачать здесь https://yadi.sk/d/jRSHEA19svgrn

Решил написать кроссплатформенное решение из своего опыта 8 летней давности для обмена данными по TCP/IP между ТСД на Win CE и 1С еще 7-ки. Конечно, с 1С можно обмениваться через Web и HTTP-сервисы, но есть задачи, где нужно взаимодействие с оператором для выбора данных, брать данные, подготовленные на клиенте, печать на мобильный принтер.

    Основные проблемы связаны с сетями с плохим соединением на складах. Поэтому, нужно было уменьшить трафик за счет сжатия данных. Так, при работе в терминальных сессиях были проблемы с проброской портов в медленных сетях — Тормозит печать чека на фискальный регистратор через RDP.

    Также были проблемы при считывании двумерного штрихкода. Медленная печать с терминального сервера. Для решения этих проблем на машине клиента устанавливалась локальная 1С, которая работала как клиент и сервер. Данные со сканеров отправлялись на терминальный сервер и там обрабатывались. Для печати на фискальный регистратор отправлялись данные с сервера по TCP/IP, и с локальной 1С печатался чек. При печати этикеток с сервера оправлялись данные, на основании которых на локальной 1С формировался документ и отправлялся на печать.

    Кроме того, под многое оборудование для Linux нет драйверов. Можно, используя виртуализацию, держать Linux и Windows на одной машине, на Windows считывать данные и обмениваться с Linux по TCP/IP.

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

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

   В большом .Net я часто использую обмен по TCp/IP
http://catalog.mista.ru/public/238584/
http://catalog.mista.ru/public/525806/
1 Кирпич
 
28.09.16
12:31
(0) Где про .Net Core можно хорошо почитать?
2 Garykom
 
гуру
28.09.16
12:35
3 Garykom
 
гуру
28.09.16
12:36
4 Кирпич
 
28.09.16
12:38
(2) это я и сам видел
5 Garykom
 
гуру
28.09.16
12:39
(4) Уточни что не видел, т.е. про что и на каком уровне хочешь почитать?
6 Serginio1
 
28.09.16
12:42
(2) А мало где. Сам выкорчевываю информацию.
Вот из недавнего https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
7 Кирпич
 
28.09.16
12:42
(5) да любое, больше hello world
8 Кирпич
 
28.09.16
12:44
хотя ну её нафиг. подожду версию 4.0 с нормальной документацией
9 Garykom
 
гуру
28.09.16
12:44
10 Garykom
 
гуру
28.09.16
12:45
(8) Правильно, лучше подождать, но планировать надо в будущем будет знатный холивар .NetCore vs NodeJS
11 Serginio1
 
28.09.16
12:46
Там суть такая, что они раскидали классы по разным библиотекам. Приложение может идти только с необходимыми библиотеками при компиляции через
dotnet publish -c release -r win10-x64

(8) Основное это кроссплатформенность. Для только Windows нет смысла.
12 Garykom
 
гуру
28.09.16
12:46
13 Кирпич
 
28.09.16
12:47
(10) да NodeJS уже сейчас в подметки .NetCore не годится. какой нафиг холивар
14 Serginio1
 
28.09.16
12:48
(10) .Net Core это больше чем NodeJS.
Прежде всего это .Net Native
15 Serginio1
 
28.09.16
12:50
(8) Подожди хотя бы до выхода новой студии. Там будут нормальные инструменты. Пока все превью
16 Кирпич
 
28.09.16
12:50
+(13) я имею ввиду саму идею
17 Garykom
 
гуру
28.09.16
12:51
(13) (16) Холивар в стиле Java vs C# ))
18 Serginio1
 
28.09.16
12:51
Которая выйдет с .Net Core 2.0, NetStandard 2.0
19 eklmn
 
гуру
28.09.16
12:54
ну вот, разбудили демона произнести TCP/IP и он тут как тут с темой ))
20 Кирпич
 
28.09.16
12:55
(18) короче понятно. строчим дальше на паскалях с питонами и поглядываем на Net Core
21 Serginio1
 
28.09.16
13:00
(20) Ну можешь посматривать мои статьи. Я стараюсь искать новые вещи. Посмотри в сторону Xamarin. Там сейчас идет движение в сторону .Net Core.

Кстати статья из последних
https://habrahabr.ru/company/microsoft/blog/310704/
22 Кирпич
 
28.09.16
13:02
(21) да твои статьи меня пугают как то. я уж лучше подожду книжки и когда понапишут кучу кроссплатформенных библиотек для этой кори.
23 Кирпич
 
28.09.16
13:03
а Xаmarin вроде платная
24 Garykom
 
гуру
28.09.16
13:04
(23) MS же купил и сделал бесплатной включив в свою студию - попытка вскочить на уходящий мобильный поезд
25 Serginio1
 
28.09.16
13:06
(23) Нет она в составе студии уже давно идет. Они же её купили.

Вот кстати статья про применение конфигурационных файлов в .Net Core

https://blogs.msdn.microsoft.com/dotnet/2016/09/21/reusing-configuration-files-in-asp-net-core/
26 Кирпич
 
28.09.16
13:06
(24) надо посмотреть чо за хрень. правда студия тоже нифига не бесплатная
27 Garykom
 
гуру
28.09.16
13:09
(26) Эээ студия уже давно есть бесплатная
28 Garykom
 
гуру
28.09.16
13:10
29 Serginio1
 
28.09.16
13:10
(26) Есть и бесплатный вариант. https://www.microsoft.com/ru-ru/download/details.aspx?id=48146
Есть ктати превью 4 https://habrahabr.ru/post/311112/
30 Serginio1
 
28.09.16
13:11
(26) Ну есть же торренты
31 Кирпич
 
28.09.16
13:12
(28) да у меня такая стоит. я думал что это для ковыряния бесплатно, а на продажу небесплатно.
32 Serginio1
 
28.09.16
13:13
(31) Если будешь продавать приложения, то придется купить.
33 Serginio1
 
28.09.16
13:14
Если для собственного использования то нет
34 Кирпич
 
28.09.16
13:15
(33) на работе нельзя получается
35 Кирпич
 
28.09.16
13:16
хотя пофигу конечно :) всё равно оно у меня для баловства только
36 Serginio1
 
28.09.16
13:18
(34) Если для конторы то тоже можно.
37 Oftan_Idy
 
28.09.16
13:18
(30) теперь чекисты весь трафик сохраняют
38 Serginio1
 
28.09.16
13:19
Любой индивидуальный разработчик может создавать бесплатные или платные приложения с помощью Visual Studio Community.
39 Serginio1
 
28.09.16
13:20
Visual Studio Community может использовать неограниченное число пользователей в организации в следующих случаях: в учебных аудиториях, для научных исследований или участия в проектах с открытым кодом.


Для всех прочих сценариев использования:В некорпоративных организациях Visual Studio Community могут использовать до 5 пользователей.В корпоративных организациях (в которых используется более 250 ПК или годовой доход которых превышает 1 млн долларов США) использование запрещено, за исключением случаев, перечисленных выше (открытый код, научные исследования и учебные аудитории).
40 Кирпич
 
28.09.16
13:20
(36) вот же ж хитрые капиталисты
41 Garykom
 
гуру
28.09.16
15:17
(40) Нет просто снова попытка вскочить на поезд ибо https://www.google.com/trends/explore?date=all&q=.net


Сравни к примеру с https://www.google.com/trends/explore?date=all&q=nodejs
42 Кирпич
 
28.09.16
16:22
(41) Чо их сравнивать. Это несравнимые вещи. Node.js это баловство типа питона, а на .NET можно реальные приложения разрабатывать.
43 Garykom
 
гуру
28.09.16
16:24
(42) Пример покажи? Реального приложения с его популярностью.
44 Кирпич
 
28.09.16
16:26
(43) ну например paint.net
а это тебе правильный график, где твой node.js в заднице
https://www.google.com/trends/explore?date=all&q=C%23,node.js
45 eklmn
 
гуру
28.09.16
16:28
(42) Node.js баловство? )) ну эт вы батенька лукавите
46 Кирпич
 
28.09.16
16:29
(45) Node.js офигительная штука, но баловство
47 Torquader
 
28.09.16
16:34
Только вот на том же ТСД .NET уже тупит, а про Javascript я вообще помолчу - и только старый добрый Си позволяет что-то из него выжать.
А новые ТСД все вообще на Андройде - там только Java и остаётся.

Кроссплатформенность хороша, когда у вас один и тот же процессор, просто вы не решили Windows или Linux на него поставить - в остальных местах уже будет неоправданное хождение по граблям.
48 Garykom
 
гуру
28.09.16
16:40
(44) сравнивать язык с фреймворком/технологией?
Может C# правильнее с JS сравнивать?
49 Кирпич
 
28.09.16
16:42
(48) "Может C# правильнее с JS сравнивать?" неправильно. JS это вообще отдельная тема
50 Garykom
 
гуру
28.09.16
16:44
(49) В чем разница? Между C# + ASP.NET vs JS + NodeJS ?
51 Кирпич
 
28.09.16
16:48
(50) да нафиг их сравнивать. ну наверное NodeJS будет тормознутее.
52 Garykom
 
гуру
28.09.16
16:48
(44) paint.net хорошая штука, но к сожалению ее сложновато засунуть на сайт как http://leimi.github.io/drawingboard.js/
53 Кирпич
 
28.09.16
16:48
а может и наоборот :)
54 Кирпич
 
28.09.16
16:50
(52) а нафиг его на сайт. есть дебилы которые в браузерах графику рисуют?
55 Garykom
 
гуру
28.09.16
16:54
(54) Ну есть же такие которые там в игрушки играют или учет ведут ))
56 Garykom
 
гуру
28.09.16
16:55
(55)+ Или даже мечтают там программировать, блин хочу веб-конфигуратор для 1С для фреша...
57 Garykom
 
гуру
28.09.16
16:56
(56)+ Причем для своего фреша, который могу поднять на своем сервере и через браузер конфигурировать.
58 Кирпич
 
28.09.16
16:57
(57) RDP клиенты вроде есть для браузеров
59 Serginio1
 
28.09.16
16:58
(50) .Net Core это не только C# + ASP.NET.
Это Xamarin, .Net Native, UWP http://metanit.com/sharp/uwp/1.1.php
60 trdm
 
28.09.16
16:59
(29) > Есть и бесплатный вариант. https://www.microsoft.com/ru-ru/download/details.aspx?id=48146

системные требования какие?
61 Кирпич
 
28.09.16
17:01
(60) тыщ в 40 должен уложиться
62 trdm
 
28.09.16
17:03
ось какая должна быть в смысле и ОЗУ.
63 Garykom
 
гуру
28.09.16
17:05
(58) RDP это не то ((
64 Serginio1
 
28.09.16
17:06
Есть еще кроссплатформенный Visual Studio Code – редактор кода для Linux, OS X и Windows
https://habrahabr.ru/company/microsoft/blog/262523/
65 trdm
 
28.09.16
17:06
нравится мне фразы типа "$ 25 кредитной в месяц в течение 12 месяцев".
сосуны..
66 sh8ce
 
28.09.16
17:06
(63) Тебе чисто из эстетических соображений7 )))
67 Garykom
 
гуру
28.09.16
17:06
(60) Как для винды такие же минимальные.
68 Кирпич
 
28.09.16
17:07
(60) там по ссылке всё написано. умножай на 10 и работай
69 sh8ce
 
28.09.16
17:07
(58) правда все эти клиенты написаны на богомерзком флеше или чем то подобном
70 Garykom
 
гуру
28.09.16
17:07
(64) Visual Studio Code - это редкостная хрень типа блокнота и даже до уровня Notepad++ и тем более NetBeans не дотягивает
71 Кирпич
 
28.09.16
17:08
(69) ну так они и нафиг не нужны(так же как и конфигураторы в браузере). потому и пофиг на чем написаны.
72 Garykom
 
гуру
28.09.16
17:09
(70)+ Но есть плюс у нее что кучу левого хлама не ставит как полная VS загаживает всю "Установка и удаление программ"
73 Кирпич
 
28.09.16
17:09
(70) согласен
74 Serginio1
 
28.09.16
17:10
(60) https://www.visualstudio.com/ru-ru/productinfo/vs2015-sysrequirements-vs

Visual Studio Community 2015 с обновлением 3
Требования к оборудованию
•Процессор с тактовой частотой 1,6 ГГц или большей
•1 ГБ ОЗУ (1,5 ГБ при выполнении в виртуальной машине)
•4 ГБ доступного пространства на жестком диске. Жесткий диск 5400 об/мин
•Видеоадаптер с поддержкой DirectX 9 (разрешение 1024 x 768 или выше)
75 trdm
 
28.09.16
17:10
Paint.NET имеет ряд преимуществ, отличающих его от конкурентов:

1    программа бесплатна для распространения и использования;
2    оптимизирован для работы с двуядерными и четырехядерными процессорами;
3    имеет удобный интерфейс, похожий на Photoshop;
4    позволяет работать с несколькими документами одновременно;
5    поддерживает работу со слоями;
6    прост в использовании.

типа ни у кого из редакторов нет ни одного пункта из 6-ти.
шиздюки.
гетзефакт сумасшествие...
76 Кирпич
 
28.09.16
17:11
(74) у меня на i5 с 8 гигами памяти тормозит
77 Serginio1
 
28.09.16
17:13
74+ Для использования .Net Core лучше использовать 10 ку
(76) .Net? C++ тормозит. С 4 гигами несколько студий тормозят. Одна нормально. Видно у тебя какие то громоздкие проекты
78 Кирпич
 
28.09.16
17:13
(75) ну они не с фотошопом конкурируют, а с простыми редакторами
79 trdm
 
28.09.16
17:15
+(75) ну и как этим овном пользоваться, если они привирают уже на главной странице.
Я вот взял обыкновенный фришный паинт-браш и рихтую его под себя: https://github.com/trdm/EasyPaint
Стрелки научил рисовать к приммеру.
А то парит в пеинте карандашом махать.
Редактор не хуже паинтнета с многодокументным интерфейсом.
80 Кирпич
 
28.09.16
17:16
(77) да это я пробовал сегодня всякие xamarinы запускать :)
81 Кирпич
 
28.09.16
17:17
(79) а мне нравится. там еще плагины можно всякие устанавливать
82 Кирпич
 
28.09.16
17:18
(79) а слои там есть? на вид уёище
83 sh8ce
 
28.09.16
17:18
(82) Тут цель писать код, а не рисовать )))
84 Кирпич
 
28.09.16
17:21
(83) мышкой писать? это к Garykom. Он любит такие извращения. Особенно если оно будет на адруине и в браузере. и чтобы нода была непременно
85 trdm
 
28.09.16
17:21
(82) > на вид уёище

Да, есть такое, но дело свое делает.
86 trdm
 
28.09.16
17:22
+ Слоев нет, но можно прифигачить.
87 Garykom
 
гуру
28.09.16
17:22
(54) Кста подумалось что мне в сервисах скриншотов типа http://pastenow.ru/ сильно не хватает встроенного редактора графического простейшего.

Чтобы банально кружочек или стрелочку, спасибо (79), нарисовать ))
88 Garykom
 
гуру
28.09.16
17:23
(87)+ И что самое классное оказывается оно там уже давно есть, просто кнопку "Редактировать скриншот" не замечал до этого ;)
89 Кирпич
 
28.09.16
17:25
(88) всё таки от мисты есть польза. ляля ляля и бац! что то полезное узнаешь
90 Serginio1
 
28.09.16
17:27
(80) Хамарины там проблема с виртуальными машинами для эмуляции КПК. На старом Xamarin это было, что то. Кстати нужно заняться Xamarin
91 Кирпич
 
28.09.16
17:29
(90) сегодня пробовал.
создал проект. не скомпилировалось и выдало кучу ошибок. плюнул. стёр.
92 trdm
 
28.09.16
17:34
(87) > Чтобы банально кружочек или стрелочку, спасибо (79), нарисовать ))

Ага, на здоровье.
https://github.com/trdm/EasyPaint/tree/master/bin
Бинарь выложил.

Мне Qt нравится тем, что надо чего - полез поправил и работаешь.
К примеру парило то, что строго вертикальные/горизонтальные  линии слозно рисовать.
Полез поправил - при зажатом шифте/сонтроле/альте стрелки и линии рисуются строго как надо.
Мну довольный :)))
Правде стрелку пол дня рисовал. Забыл начисто тригонометрию О_о.
93 Кирпич
 
28.09.16
17:37
(92) а в paint.net стрелки сами рисуются. нужно только выбрать какую хочешь. так что уёище твой редактор.
94 Serginio1
 
28.09.16
17:43
(91) С не прывычки всегда так. Много нюансов
95 trdm
 
28.09.16
17:44
(93) Он не мой.
Это во первых.
А во вторых его наворотить нет проблем.
96 Кирпич
 
28.09.16
17:45
(95) зачем воротить, если всё давно наворочено
http://pastenow.ru/112E2
97 Кирпич
 
28.09.16
17:49
+(96) плюс еще штук 500 плагинов на любой случай
98 Кирпич
 
28.09.16
17:52
Garykom, там на скриншоте в (96) внизу слева значок с ключиком. это дверь в кабинете открывать :) как у тебя типа.
99 Garykom
 
гуру
28.09.16
18:01
(98) Эээ у меня закладка в браузере с видео
100 Garykom
 
гуру
28.09.16
18:03
(99)+ Главное очень удобно с телефона снаружи открывать, когда ключи забыл ))
101 Garykom
 
гуру
28.09.16
18:05
(100)+ Сча вот хочу сделать чтобы в телеграм звонок в дверь поступал с фото/видео что за дверью и там кнопка/клавиатура сразу открыть телеграмовская
102 Loky9
 
28.09.16
18:12
Между прочим, Гимп легко скриптуется.
103 Loky9
 
28.09.16
18:15
(55) Сугубо от безысходности.
104 trdm
 
28.09.16
18:18
(96) > зачем воротить, если всё давно наворочено

Я принципиальный противник пиндосского и завязаного на пиндоских технологиях ПО.
Опенсурс, не использующий высеры мелкософта рулит.
105 Кирпич
 
28.09.16
18:54
Недавно права менял. Ходил к психиатру за справкой. Долго сидел в очереди вместе с дураками. В больнице был  wi-fi.
106 Garykom
 
гуру
28.09.16
18:57
(105) А поподробнее?
107 Кирпич
 
28.09.16
18:59
(101)телеграм тема интересная. Я делал бота для саморазвития. Он мне картинку с вебкамеры посылает. Можно всякие такие хотелки для 1с делать.
108 Loky9
 
28.09.16
19:11
(106) Какой-то док припёр вайфай а тут понабежали поциенты.
109 Serginio1
 
28.09.16
20:49
(108) Главное в тему! Обмен по TCP/IP используя Wi-Fi в медленных сетях с дураками.
110 Loky9
 
28.09.16
20:58
(109) Мне кажется, тема с TCP/IP твою идею не вытянет.
111 Torquader
 
28.09.16
23:00
(110) Просто TCP в общем виде - это писать свой протокол или брать готовый типа ModBus-овских расширений.
Опять же - работа в режиме "точка-сеть" требует UDP и достаточно внимательной работы на низком уровне, так как не все роутеры эти пакеты правильно доставляют.
А в режиме "точка-точка" всё уже реализовано - берётся любой аналог telnet и всё.
112 Serginio1
 
28.09.16
23:08
(110) Моя идея расширение возможностей 1С от кроссплатформенного использования .Net Core, зависит и от TCP/IP и еще сотни тысяч классов. Используй какой хочешь.

Просто по Tcp/IP удобно общаться как с ТСД, терминальными серверами по VPN, между клиентами итд. Это просто пример из моего опыта. Кому нужно тот использует. В том числе для изучения .Net Core.
  
  Я давно понял, что в большинстве это расширение не нужно .
Кто что хочет от 1С

В том числе и самой 1С. Да мне это непонятно, но такова жизнь. Значит я глуп. Но вот бросать помирать своё детище я не могу. Поэтому пока ещё цепляюсь.
113 Loky9
 
28.09.16
23:22
(112) "— Что же из этого следует?— Следует жить,
шить сарафаны и легкие платья из ситца.
— Вы полагаете, все это будет носиться?
— Я полагаю,что все это следует шить."

Бог помощь, как говорится, но удерживаться от выражения своего отношения к .NET Яве и "веб-технологиям" я особо не буду.
114 Serginio1
 
28.09.16
23:34
У нас никто никого не удерживает. Все технологии прекрасно живут и совершенствуются. Но если ты не хочешь их использовать, то ты просто обедняешь самого себя. Только и всего. А технологиям наплевать на чьё то мнение, они развиваются. Это эволюция. Иначе развития не будет. А вот 1С развивается не особо быстрыми темпами.
115 trdm
 
29.09.16
07:50
(112) Это слишком низкоуровнево для 1С-ников. Не для всех, но для большинства.
116 Loky9
 
29.09.16
07:58
(114) Эти технологии уже давно стыли бы историей, а то и вообще не появились бы без благословлённых маркетолухами финвливаний.
117 Mauser
 
29.09.16
08:00
(114)
>Но если ты не хочешь их использовать,
> то ты просто обедняешь самого себя

У тебя во многих статьях и комиентарияз прослеживается один и тот же "полемический" прием. Нейтрально-положительная вода, потом твое утверждение, зачастую взятое с потолка, и снова нейтрально-положительная вода. Ты осознано это делаешь, чтобы задать тон, или это образ мышления такой?
Эдакий "бутерброд Гитлера" наизнанку.
118 Serginio1
 
29.09.16
10:05
(115) Это ничем не низкоуровнее COMОбъект или ОбъектXDTO
Пробдема только в поддержке 1С
(116) Дело в том, что эти технологии упрощают программирование сложных задач. Только и всего.

(117) Ты сам то понял, что написал?
119 Кирпич
 
29.09.16
10:19
(115) Это не низкоуровнево. Это просто не нужно, а если нужно, то очень редко и может решаться любым другим способом.
120 Serginio1
 
29.09.16
10:26
(119) И чем это отличается от COMОбъект или ОбъектXDTO?
При этом  у этих объектов есть ограничения на типы используемых объектов.
У моей обертки этих ограничений нет. Ты пишешь не Com совместимый класс, а обычный класс. Но можно ничего своего и не писать, так как уже есть куча библиотек.
121 Кирпич
 
29.09.16
10:26
+(119) т.е. теоретически может появиться ещё какой нибудь красноглазик, который начнет накидывать на мисту про "технологию" на Python или Java или ещё какую нибудь хрень.
122 Serginio1
 
29.09.16
10:28
(121) А какая разница? Есть задача используй классы Python или Java. Ты же на COM можешь использовать объект написанный на любом языке, платформе
123 Кирпич
 
29.09.16
10:38
(122) "Есть задача используй классы Python или Java" так все же пользуются молча и не имеют проблем. Ты же зачем то загадил мисту своими ветками. Засоряешь мозги юным дарованиям и раздражаешь прочих. Если ты таким образом себя рекламируешь, подбирая клиентов среди тупых и безруких, то я понимаю. А если ты реально хочешь, чтобы твои обертки с кракозяблами широко использовались одинесниками, то я кручу тебе пальцем у виска.
124 Serginio1
 
29.09.16
10:54
(123) Они используются наравне с кракозяблами  с ComОбъект и ОбъектXDTO. Просто ты об этом не знаешь.
Опять же если тебе это не нужно, то не читай. Я никого не заставляю засорять мозги. Читай про другое.
125 oleg_km
 
29.09.16
10:54
(119) Да вот во многих случаях нафик не нужны "любым другим способом.". Всего лишь один раз прикручиваешь эту обертку к 1С и уже больше не волнуют поиски этих других способов. Просто берешь и программируешь, а не зависаешь сутками на ИС в поисках "любым другим способом."
126 Serginio1
 
29.09.16
11:02
(125) Проблема то на самом деле только в одном. Нет поддержки со стороны 1С. А так бы все пользовались наравне  ComОбъект и ОбъектXDTO.

И Кирпич это несколько раз поддерживал. Просто брать непонятно чью разработку и использовать её немногие решаются.

Но 1С это не нужно, как и кроссплатформенная замена COM.
Почему? Не знаю? Может у них нет специалистов по .Net?
127 Кирпич
 
29.09.16
11:03
(125) "Просто берешь и программируешь" мягко сказано. Сначала просто берешь и программируешь на C# и отлаживаешь. Потом все это переписываешь на русскосишарпскую лабуду в 1С. Ну очень просто.
128 Кирпич
 
29.09.16
11:10
(126) "Может у них нет специалистов по .Net?" :)))
специалистов .Net как собак нерезаных.
"Нет поддержки со стороны 1С". Так и не будет.
Просто чтобы было красиво как с COM, нужно чтобы либо в 1C использовались типы .NET, либо в .NET все было на динамической типизации. И того и другого не будет.
129 Serginio1
 
29.09.16
11:12
(127) Необязательно. Ты COM компонент так же используешь.
Можешь написать под себя, можешь использовть динамическую компиляция, а можешь использовать готовые компоненты. Например для парсига сайта http://catalog.mista.ru/public/466196/

Выбирай свой путь.

(128) Еще раз использвание классов .Net не сложнее использования COM и Вэб сервисов. Те же типы (классы), пространства имен, методы.
Если ты этого не видишь, то ....
130 Кирпич
 
29.09.16
11:17
(129) динамическая компиляция решает все проблемы. ВК, которая может выполнить код C# у меня была еще года три назад. остальные твои фантики глупое насилие над собственными пальцами.
131 Serginio1
 
29.09.16
11:23
(130) CodeDom был давно, а вот Roslyn недавно. Кроме того твоя компонента не кроссплатформенна в отличие от моей.
Еще раз я предлагаю кроссплатформенную замену COM.
Ты говоришь, что это не нужно. Я в недоумении.
Опять же твоя ВК может работать с простыми типами. В моей Com обертке я могу динамически компилировать  и использовать любые типы, в том числе и объеты 1С. Например
132 Serginio1
 
29.09.16
11:25
str = "public class ВычислительAngleSharp
    |{
     |public  static void ЗаполнитьТз(dynamic ТЗ)
     |   {
     |
     |
     |       var config = Configuration.Default.WithDefaultLoader();
     |       // Устанавливаем адрес страницы сайта
     |       var address = ""https://en.wikipedia.org/wiki/List_of_The_Big_Bang_Theory_episodes"";;
     |       // загружаем страницу и разбираем её
     |       var document = BrowsingContext.New(config).OpenAsync(address).Result;
     |       // Используем CSS селектор для получения строк таблицы с классом  и выбрать из этой строки 3 колонку
     |       var rowSelector = ""tr.vevent"";
     |       var Строки = document.QuerySelectorAll<IHtmlTableRowElement>(rowSelector);
     |       foreach (var str in Строки)
     |       {
     |           dynamic стрТз = ТЗ.Добавить();
     |           var ячейки = str.Cells;
     |           for (int i = 0; i < Math.Min(ячейки.Length, 8); i++)
     |           {
     |
     |               стрТз.Установить(i, ячейки[i].TextContent);
     |
     |           }
     |
     |
     |       }
     |
     |   }
    |}
|
|return  new Action<dynamic>(ВычислительAngleSharp.ЗаполнитьТз);";

            Каталог=Врап.ПолучитьТип("System.AppDomain").CurrentDomain.BaseDirectory;
            КаталогGAC = Path.GetDirectoryName(Врап.ТипКакОбъект(string).Assembly.Location);
            
            ПутьКДлл="d:\Vs2015Programs\ScriptApiDlls\ScriptApiDlls\bin\Debug\";
            КлассДляВычесленияВыражений=Врап.ПолучитьТипИзСборки("ScriptApiDlls.КлассДляВычесленияВыражений",ПутьКДлл+"ScriptApiDlls.dll");
          
            Опции=КлассДляВычесленияВыражений.Опции;

              scr = Опции
                .WithReferences(Каталог + "\AngleSharp.dll", КаталогGAC + "\Microsoft.CSharp.dll")
                //  .WithReferences(typeof(Configuration).Assembly)
                .WithImports("System", "AngleSharp", "AngleSharp.Dom.Html", "AngleSharp.Extensions");

               result = КлассДляВычесленияВыражений.Вычислить(str, scr);
              Тз=новый ТаблицаЗначений;
    Колонки=Тз.Колонки;
    Колонки.Добавить("НомерСерии");
    Колонки.Добавить("НомерСерииВСезоне");
    Колонки.Добавить("Название");
    Колонки.Добавить("Режиссер");
    Колонки.Добавить("Автор");
    Колонки.Добавить("Дата");
    Колонки.Добавить("Код");
    Колонки.Добавить("Просмотров");

    врап.ВыполнитьДелегат(result,Тз);
    
    тз.ВыбратьСтроку();
133 uno-group
 
29.09.16
11:27
(131) Вроде не совсем дуб читал несколько твоих статей хуже учителя не встречал. потратил пару дней пытаясь разобраться в итоге через поиск нашел другие примеры работы и решил проблему за 30 минут. Учись писать технические тексты. Уметь программировать и уметь учить программированию это разные вещи. Если первое у тебя получается то со вторым все очень плохо.
134 uno-group
 
29.09.16
11:28
(130) поделись вк под си
135 Кирпич
 
29.09.16
11:32
(131) Да я свою компоненту и не использую. Валяется где то в архивах. Практически мне проще сделать отдельную ВК для конкретной задачи и не париться. У меня их всего то десяток.
136 uno-group
 
29.09.16
11:33
Если на одной машине поднято и линукс и винда то не проще обмениваться через файл. да и все связки по сети разных 1с через файл записать в сетевую папку работают штатными средствами без всяких вк. а потом развернуть юзерский ком целая наука. то того не хватает то того. То мелкие обновят что-то и все накрылось медным тазом и работа стала.
137 Кирпич
 
29.09.16
11:33
(134) шо такое "вк под си"?
138 oleg_km
 
29.09.16
11:34
(127) 90 % использования .НЕТ вообще не потребовало никакой дополнительной отладки. Что можно отлаживать у Sleep или у FileStream?
139 Serginio1
 
29.09.16
11:35
(133) Не спорю. Но я стараюсь. Мне просто сложно понять например ты мыслишь. Как подать материал так, что бы тебе это было понятно. Для меня то все просто. Кстати мою стать на Хабре закинули в чулан.
  Другое дело, что я даю материал для более подготовленных программистов.
Но опять же само применение ничем не сложнее использование Com объектов или Вэб сервисов.

(135) А при моем подходе ВК писать не надо. Пиши класс и все.
140 Serginio1
 
29.09.16
11:39
(136) А сообщать о том, что возникло событие будешь как? Опрашивать каталог или вешать System.IO.FileSystemWatcher?
А если таких событий сотни или тысячи?
  Насчет про медный таз. Я использую эту обертку больше 5 лет. Про никакого таза ни разу не видел.
141 Кирпич
 
29.09.16
11:41
(139) " А при моем подходе ВК писать не надо. Пиши класс и все" не один хрен? и класс и ВК - буквы.
Просто геморно всякие потусторонние сборки цеплять и отлаживать это всё. Мне проще всё запихнуть в одну dll и чтобы оно работало как часы.
142 Garykom
 
гуру
29.09.16
11:43
(139) Дети есть? Ну или хотя бы племянники или там просто дети подходящего возраста у друзей/знакомых.

Попробуй взять парочку (видишь что играют в игрушки на планшете/смартфоне значит возраст подходит и требования) и объяснить им что такое программирование.
И тут же объяснить простыми словами что такое ты сам придумал.

Суть хорошего преподавателя - умение популярно (для любого уровня) объяснить что угодно почти и к тому же интересно и завлекательно объяснить, чтобы не уснули в процессе.
143 Serginio1
 
29.09.16
11:46
(133) Кстати, что тебе непонятно из http://catalog.mista.ru/public/448668/

(141) Так запихивай никто же не мешает. Просто если пишешь ВК ты зависим от используемых типов передаваемых в параметрах и возвращаемые функцией. Используя мою обертку у тебя этих ограничений нет. Если ты кстати читал мою статью, то очень удобно использовать объет при получении внешнего события
144 Serginio1
 
29.09.16
11:46
Процедура ПолучениеДанныхПоTCP(знач Данные)
     Сообщить("Команда="+Данные.Команда);
     Сообщить("Данные="+Данные.Данные);
     Сообщить("ЕстьОтвет="+Данные.ЕстьОтвет);    
    
     ъ(Task.Delay(1000)).Wait();
     Если Данные.ЕстьОтвет Тогда
         Ответ="Ответ на команду "+Данные.Команда+"
         |Данные "+Данные.Данные+"
         |ВремяНаСервере="+XmlСтрока(ТекущаяДата());
         Данные.Ответить(Ответ);
     КонецЕсли;
    
КонецПроцедуры


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    
     Если Источник="TCPConnector" Тогда
               //Получим объект по переданной ссылке
         Данные=ъ(Данные);
         Сообщить("Данные="+Врап.ВСтроку(Данные.ПолучитьСсылку()));
         // Тест из отчета  ТестNetObjectToIDispatch
         Если Событие="Тест Отправки Сообщения" Тогда
            
             ПолучениеДанныхПоTCP(Данные)    
         иначе
               // Запускаем метод переданный в коанде
             Выполнить(Событие+"(Данные)");
            
         КонецЕсли;
     КонецЕсли;
    
КонецПроцедуры
145 Serginio1
 
29.09.16
11:49
(142) Сын уже институт закончил.
У меня нет дара объяснить. У меня мозг по другому мыслит, чем у них. И мне их тяжело понять, а мне их. У меня в свое время был переводчик, он панимал меня и мог объяснить другим.
146 Кирпич
 
29.09.16
11:49
(143) "Просто если пишешь ВК ты зависим от используемых типов передаваемых в параметрах и возвращаемые функцией"
да ни от чего я не зависим. всё просто работает и всё. чо ты там выдумываешь.
147 Кирпич
 
29.09.16
11:51
(145) да всроде всё понятно. листинги только по короче рисуй.
148 Garykom
 
гуру
29.09.16
11:52
(145) Да иметь "переводчика" это очень удобно конечно, но по факту означает лишь отсутствие усилий/желания научиться тому что не интересно или плохо дается от не знания основ.

К примеру этот переводчик как то умудрялся же переводить, т.е. понимать и то и то? И пенять на отсутствие "дара" это не очень правильно.

(147) Суть у него понятная, но внешняя форма это пипец какой то...
149 Serginio1
 
29.09.16
11:53
(141) Так напиши на Native ВК 132
Или парсинг сайтов http://catalog.mista.ru/public/466196/
Или будешь под разбор каждого сайта писать свою DLL?
150 Serginio1
 
29.09.16
11:54
(148) Понимаешь как бы я не учился рисовать, мой сын когда был маленьким рисовал лучше. Есть люди с математическим складом ума, а есть гуманитарии, а есть кто может мылить и так и так. Вот из последних и получаются хорошие преподаватели.
151 Кирпич
 
29.09.16
11:57
(149) под разбор сайта я dll делать не буду. я скрипт напишу или exe
в dll у меня только фундаментальные штуки всякие. файлы, http, текст, графика, сеть, com порт.
152 Garykom
 
гуру
29.09.16
11:58
(144) Вот почему нельзя хотя бы код делать вот примерно так:

Процедура ПолучениеДанныхПоTCP(знач Данные)
    Сообщить("Команда="+Данные.Команда);
    Сообщить("Данные="+Данные.Данные);
    Сообщить("ЕстьОтвет="+Данные.ЕстьОтвет);    
    
    ъ(Task.Delay(1000)).Wait(); // Клево можно делать пауза да?
    
    Если Данные.ЕстьОтвет Тогда
        Ответ="Ответ на команду "+Данные.Команда+"
        |Данные "+Данные.Данные+"
        |ВремяНаСервере="+XmlСтрока(ТекущаяДата());
        Данные.Ответить(Ответ);
    КонецЕсли;
КонецПроцедуры

Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Источник="TCPConnector" Тогда
        Данные=ъ(Данные); //Получим объект по переданной ссылке
        Сообщить("Данные="+Врап.ВСтроку(Данные.ПолучитьСсылку())); //Глянем че получили
        
        // Проведем тест
        Если Событие="Тест Отправки Сообщения" Тогда
            ПолучениеДанныхПоTCP(Данные)    
        Иначе
            Выполнить(Событие+"(Данные)"); // Запускаем метод переданный в коанде
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
153 Кирпич
 
29.09.16
11:59
(152) пустые строки еще удалить
154 Garykom
 
гуру
29.09.16
11:59
(152)+ Блин... что за фигня объясни что ты засовываешь внутрь своего кода что оно в блокноте нормально а при копировании на мисту так разъезжается???
155 Garykom
 
гуру
29.09.16
11:59
(153) Пойми я их удалил!!!!
156 Кирпич
 
29.09.16
12:02
а ну я попробую

Процедура ПолучениеДанныхПоTCP(знач Данные)
    Сообщить("Команда="+Данные.Команда);
    Сообщить("Данные="+Данные.Данные);
    Сообщить("ЕстьОтвет="+Данные.ЕстьОтвет);
    ъ(Task.Delay(1000)).Wait();// Клево можно делать пауза да?
    Если Данные.ЕстьОтвет Тогда
        Ответ="Ответ на команду "+Данные.Команда+"
        |Данные "+Данные.Данные+"
        |ВремяНаСервере="+XmlСтрока(ТекущаяДата());
        Данные.Ответить(Ответ);
    КонецЕсли;
КонецПроцедуры

Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Источник="TCPConnector" Тогда
        Данные=ъ(Данные);//Получим объект по переданной ссылке
        Сообщить("Данные="+Врап.ВСтроку(Данные.ПолучитьСсылку()));//Глянем че получили
        // Проведем тест
        Если Событие="Тест Отправки Сообщения" Тогда
            ПолучениеДанныхПоTCP(Данные)    
        Иначе
            Выполнить(Событие+"(Данные)");// Запускаем метод переданный в коанде
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
157 Кирпич
 
29.09.16
12:02
:))))
158 Serginio1
 
29.09.16
12:09
(151) Так результат будешь передавать в виде строки, потом разбирать её или писать Вэб сервис.
Любите вы батенька штаны через голову одевать. В моем подходе, все делается в одно действие.
159 Serginio1
 
29.09.16
12:12
(152) Я просто выхватил один метод из трех.
В статье и про очередь написано, и зачем задержка

// В Net core для NetStandard System.Threading.Tasks не существует
     Task=ъТип("System.Threading.Tasks.Task","System.Threading.Tasks");

Процедура СканированШК(знач Данные)
    
     // Съэмулируем долгую обработку для проверки очереди событий
     ъ(Task.Delay(1000)).Wait();
     Ответ="Ответ на команду "+Данные.Команда+"
     |Данные "+Данные.Данные+"
     |ВремяНаСервере="+XmlСтрока(ТекущаяДата());
     Данные.Ответить(Ответ);
КонецПроцедуры
160 Кирпич
 
29.09.16
12:15
(158) "Любите вы батенька штаны через голову одевать"
вот твои обертки как раз и есть "штаны через голову"
161 Serginio1
 
29.09.16
12:22
(160) И в чем они через голову. Еще раз я могу написать DLL полный аналог твоей ВК и вызываться от будет так же.
  Но я могу использовать любые типы как в 132, а ты нет.
Я могу использовать и в Native ВК любые типы в параметрах.
Вот кстати можно посмотреть пример из ограничений
аналога моей разработки на  CLR Hosting API http://forum.infostart.ru/forum24/topic116151/
162 Mauser
 
29.09.16
12:25
(123) +многа

Serginio1, видишь ли в чем дело. С одной стороны есть пример @Tormozit, который поднял себе свой сайт с инструментами разработчика, пилит их тихонько, регистрирует ошибки, обсуждает недочеты и в конечном итоге все счастливы.
А с другой стороны есть персонаж, который фигачит статьи где не попадя, раскидывает исходники по сети, и проповедует свое учение в каждую дырку, не забывая агрессивно отпинываться - "а Мне так удобней, если вас не устраивает, проходите мимо, Я не могу бросить Свое Детище". Ну и получает за это в панамку.

Закрадывается впечатление, что это персонаж - латентный махозист.
163 Кирпич
 
29.09.16
12:34
(161) я верю, что ты всё можешь. просто мне ничего не нужно из списка твоих "могу". Это уродливые костыли. А я люблю просто и красиво.
164 Serginio1
 
29.09.16
12:48
(163) Ты используешь более уродливые костыли в виде COM и Native Api и Вэб ервисов. Но они тебе роднее потому что, это сделала 1С. Только и всего.
(162) Давай так я никого не отпинываю. Помогаю всем. Другое дело, что есть люди у которых нет конструктивной критики. Но и их я не отпинываю. Они держат топик в верху.
В панамку я не получаю. Это только тебе так кажется.
А вот конструктивной критике я только рад.
В итоге сделал кроссплатформенное использование классов на .Net Core? использующий минимум ресурсов.
Есть динамическая компиляция, асинхронное программирование итд и тп. Все по заявкам радиослушателей.
165 Loky9
 
29.09.16
12:56
(164) "Ты используешь более уродливые костыли в виде COM и Native Api и Вэб ервисов. Но они тебе роднее потому что, это сделала 1С. Только и всего."
Но и ты же их используешь.
166 Serginio1
 
29.09.16
13:36
(165) Конечно. Но у меня более высокоуровневая настройка, позволяющая использовать больше типов и инструментов.
Например  Кирпич на 132 так и не дал своего аналога.
167 Кирпич
 
29.09.16
13:49
(166) "Кирпич на (132) так и не дал своего аналога"
Я тебе обещал давать какие то аналоги? Запостил какую то портянку, которую никто не читал и ждет аналоги какие то. Ты здоров вообще?
168 Serginio1
 
29.09.16
13:53
(167) Ты утверждал, что можешь все. Я привел тебе простенький пример. Ты меня больным обвинил. Вот и пойми тебя.
169 Serginio1
 
29.09.16
13:54
168+ Если тебе коднепонятен там есть комментарии. Если, что непонятно спрашивай.
170 Кирпич
 
29.09.16
14:01
(168) не заметил простенького примера и не помню, что я говорил, что могу всё. хотя конечно же я всё могу ))
171 Serginio1
 
29.09.16
14:06
(170) Например 146
>> да ни от чего я не зависим. всё просто работает и всё. чо ты там выдумываешь.
172 Serginio1
 
29.09.16
14:06
Простенький пример в 132
173 Кирпич
 
29.09.16
14:07
(172) и что в том примере? мне лень разбираться в кракозяблах
174 Кирпич
 
29.09.16
14:07
(171) и где там написано, что я всё могу.
175 Serginio1
 
29.09.16
14:11
(174) Раз ты независим, значит можешь сделать всё! Логика.
(173) Вот откуда ноги то растут! "Не читал, но осуждаю!"

Я подробно все расписывал в http://catalog.mista.ru/public/466196/
176 Кирпич
 
29.09.16
14:17
(175) ну не хочешь объяснять, не объясняй. Лучше расскажи чо нибудь про core net. Там GUI есть вообще?
177 Serginio1
 
29.09.16
14:34
(176) В NetStandart обещают. Но опять же NetStsndart это больше библиотки которые могут использоваться в визуальных компонентах ориентированных на неё и использующие XAML.
Например
http://metanit.com/sharp/uwp/2.1.php
http://metanit.com/sharp/xamarin/2.9.php

Сейчас XAML развивается.

А насчет 132. То там пример разбора HTML и записи данных в таблицу значений.
Динамически компилируется класс, который возвращает ссылку на делегат void ЗаполнитьТз(dynamic ТЗ).
Которая вызывается через
врап.ВыполнитьДелегат(result,Тз);

где
result это ссылка на метод, а ТЗ это пустая ТЗ которая заполняется вутри метода.
178 Serginio1
 
29.09.16
14:38
По ссылке отсюда можно почитать комментарии на эту тему
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
179 Serginio1
 
29.09.16
14:41
https://blogs.msdn.microsoft.com/dotnet/2016/09/14/the-week-in-net-net-core-1-0-1-on-net-with-peachpie-avalonia-folk-tale/

Avalonia является мультиплатформенной UI инструментарий, несколько как WPF.  Он поддерживает XAML и гибкую систему укладки, и работает под управлением Windows, Linux, MacOS, IOS, и Android.
180 Serginio1
 
29.09.16
18:21
181 Mauser
 
29.09.16
18:44
(164)
>В панамку я не получаю. Это только тебе так кажется.

Это кому там на хабре карму в ноль загнали?
182 Serginio1
 
30.09.16
10:09
(181) Ну не 0, а 1.
И у меня там тоже поддержка есть

sidristij  28 сентября 2016 в 18:32 (комментарий был изменён) ?  ? ?  

? ?
Вставлю свои 5 копеек. Про Хабр часто говорят, что дескать нет технических статей, только реклама. Вот вам автор, который написал 9 статей. Хороших таких статей про работу .NET/1C, котоые потом вполне возможно будутпользоваться спросом, в свое время. Но его заминусовали (карма) за руслиш. Видите-ли он не пишет именно так, как нравится вам. Ему за это не платят, замечу. Он хотел сделать вам приятно. А теперь его карма = 0 и он больше не может писать статьи, хотя хочет.
183 Serginio1
 
30.09.16
10:09
182+ с Rsdn

Дело в том, что хабр — развлекательный ресурс (у администрации немножко пена изо рта капает, когда им про это намекают, но это их проблемы). Поэтому уникальный контент, если он тяжело читается (а читается действительно адово), там неформат.
Ближайший аналог — всякие какэтосделано, в которых скучный хардкор не катит, ибо не цепляет аудиторию.

Рекомендую не заморачиваться и подобрать нормальную площадку, или завести блог и кросспостить статьи и туда.
184 Serginio1
 
30.09.16
10:10
185 Кирпич
 
30.09.16
10:18
(183) ты какой то стоеросовый, ей богу. тебе два года долдонят, что руслиш жуткое уродство, а ты всё гнёшь свою линию. Пиши всё на английском и будет красиво, и комментировать будут по делу, а не про дебильность написания твоих примеров.
186 Кирпич
 
30.09.16
10:19
хотя ты наверное и правда мазохист
187 Serginio1
 
30.09.16
10:20
(185) Я добавил использование синонимов. Но мне проще писать используя Руслиш.
188 Кирпич
 
30.09.16
10:21
(187) "мне проще писать" так пиши себе и людям не показывай тогда
189 Serginio1
 
30.09.16
10:25
(188) На вкус и цвет товарищей нет. Не хочешь не читай. Никто никого не заставляет. Мне тоже много чего не нравится.
Если мне что то не нравится, то я либо не читаю, либо подстраиваюсь под стиль автора. У всех свои предпочтения.
190 Serginio1
 
30.09.16
10:27
Опять же из последней статьи
21 человеку понравилось
8 людям нет.
191 Кирпич
 
30.09.16
10:28
(190) объясни пожалуйста, если не в лом, какова цель всей этой твоей компании? чего ты добиваешься?
192 Serginio1
 
30.09.16
10:31
(191) Поделиться опытом. Не только с 1С никами но и .Net чикам. Многие находят мои статьи полезными. А это главное.
193 Кирпич
 
30.09.16
10:35
(192) таким опытом весь интернет завален, не считая книжек. ты страдаешь какой то другой херней.
194 Serginio1
 
30.09.16
10:45
(193) Возможно. Мне просто интересно программировать, решать сложные задачи.
  Но мой опыт уникален. И я рад если помогу, хоть немногим людям.
Кстати сам спрашивал, про .Net Core. А по нему не так уж и много информации, а книг вообще нет.
Использование .Net Core из натива вообще 2 статьи на весь интернет. Так, что "Борис ты не прав"
195 Garykom
 
гуру
30.09.16
10:47
(194) Это .net core никому совершенно не сдался ибо есть mono
196 Кирпич
 
30.09.16
10:51
(194) так пиши про NET Core, почитаю с удовольствием. тема интересная. а про динамическую компиляцию, TCP/IP и как сайты парсить не надо. про это навалом инфы и так.
197 sh8ce
 
30.09.16
10:51
(195) Моно вряд ли будет дальше развиваться
198 Serginio1
 
30.09.16
10:54
(195) .Net Core это следующее развитие Mono. Новые проекты делаются уэе на Asp.Net Core, а старые ждут подхода NetStandard 2.

Идет плавный переход на использование в UWP и Xamarin. Сейчас там для portable куча профилей. Сам в свое время задолбался с ними.

Да и использование в 1С кроссплатформенных и более легковесных библиотек тоже предпочтительнее. Другое, дело, что 1С наплевать, на развитие Native Api.
Но это другая песня. 1С++ прекрасно живет и до сих пор.
199 Garykom
 
гуру
30.09.16
10:56
(197) Форкнут без вопросов и MS пойдет лесом полем, но только если оно кому то понадобится.

(198) Чем то напоминает сказки про белого бычка, тут недавно сказали что самый известный проект на .Net это Paint.Net случаем когда его на .Net Core переведут?
200 Кирпич
 
30.09.16
10:58
(199) самый известный проект на .Net это наверное Visual Studio
201 Garykom
 
гуру
30.09.16
10:59
(200) Оно на С++ ...
202 Кирпич
 
30.09.16
11:00
(201) да там пополам
203 Кирпич
 
30.09.16
11:02
(199)"когда его на .Net Core переведут?" нахрена всё куда то переводить, если оно и так прекрасно работает
204 Gary417
 
30.09.16
11:04
(199) если появится референсная версия от создателя стандарта, то умрёт, т.к. нафига оно надо. ситуация в яве с OpenJDK исключение
205 Gary417
 
30.09.16
11:04
(199) много проектов на asp существует, десктопные приложения вымирают потихоньку
206 Кирпич
 
30.09.16
11:05
будет всё как обычно. лет через 10 будет NET Core 4.0 и все будут на нём царапать. Остальное будет параллельно существовать.
207 Gary417
 
30.09.16
11:06
раньше моно был нужен чтобы оно под линухом работало. а теперь то зачем?
208 Serginio1
 
30.09.16
11:08
(199) Самый цитируемый это Stack Overflow
(205) Не вымирают. Просто их доля сокращается. Поэтому и .Net Core как раз и направлена на мобильный контент, Облака итд. То, что сейчас приносит прибыль.

Тот же C# сейчас один из мощнейших языков, особенно при сравнении ObjectivC и Java для андроид.
209 Кирпич
 
30.09.16
11:09
(207) теперь он работает на Android
210 Serginio1
 
30.09.16
11:10
(209) Кирпич МОНО MS купила вместе с xamarin. И дальнейшее развитие это NetStandart 2, .Net Native
211 Кирпич
 
30.09.16
11:16
(210) ну как бы и пофигу чем там кончится. NET тем и хорош, что MONOписуально где писать на C#, в моно или не в моно. Я так понимаю, что в NET Core стандартные библиотеки такие же как и в .NET будут? Или я ошибаюсь?
212 Serginio1
 
30.09.16
11:28
(211) Почитай статью https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

Там все расписано.
Вкратце. Многие стандартные классы из mscorlib.dll раскиданы по разным библиотекам. Много нужно подгружать через NuGet.
NetStandard 2 будет приближен к взрослому .Net.
Почитай хоть в переводчике Googl. Там все хорошо расписано.

В любом случае .Net Core это будущее, особенно учитывая .Net Native
213 Кирпич
 
30.09.16
11:53
(212) "В любом случае .Net Core это будущее" будущее это хорошо, но пока для меня есть единственный способ делать быстро кроссплатформенное - это тридолбаный паскаль :))) в виде Lazarus. Остальное долго и "там работает, тут не работает"
Летом запилил приложение типа маленького автокада, в котором юзер рисует фигуры всякие поверх картинки и они потом печатаются с данными из 1С. Работало на винде и линуксе без проблем. На маке чота не стало, но и хрен с ним.
Так что Mono здохнет или NET Core не так уж и важно, а вот если сдохнет Lazarus, придется реально работать в три раза больше :)
214 Garykom
 
гуру
30.09.16
12:04
(213) лазарус весчь, но сильно не хватает пакетной системы или некоего менеджера с онлайн хранилищем
215 Loky9
 
30.09.16
12:29
Лазарус выручит разве что при программировании мышкой и то ему ещё придётся с Qt потягаться. В быстрой кроссразработке питон уделывает всё.
216 Кирпич
 
30.09.16
12:29
(214) да фигня. всё на git лежит. библиотек пишут для него мало - вот проблема. но и того что есть, мне лично пока хватает.
217 Кирпич
 
30.09.16
12:32
(216) GUI на питоне задолбаешься рисовать, а в Lazarus тяп-ляп, подправил и готово.
218 Loky9
 
30.09.16
12:33
(217) В Qt-дизайнере всё нормально рисуется.
219 Serginio1
 
30.09.16
12:35
(213) Mono не сдохнет. Он плавно перенесется на .Net Core.
Xamarin развивается достаточно быстро. В том числе и Xamarin.Forms. Сейчас как раз сам изучаю.
220 Torquader
 
30.09.16
12:35
Вы вот спорите о технологиях, и каждый отстаивает свою версию.
Но, скоро появятся машинные трансляторы, которые код с одного языка или библиотеки прекрасно переводят на другой, и все ваши вопросы и споры отпадут за ненадобностью.
221 Кирпич
 
30.09.16
12:35
(218) да эта возня... питон поставь Qt поставь. ярлычки, хренучки.
222 Кирпич
 
30.09.16
12:36
(220) ага. роботы уже бороздят просторы вселенной
223 Garykom
 
гуру
30.09.16
12:39
(220) Угу и гуи переведут... сам такое пытаюсь сделать но очень тяжко идет ибо логика/технология работы совсем иная
224 Loky9
 
30.09.16
12:43
(221) Да ну... Единожды пакуется всё нужное в архив и всё. А ещё есть fabric.
225 Serginio1
 
30.09.16
12:43
(220) Для того, что бы что то перевести, надо это что то написать. А вот писать сейчас удобно на C#.
Не все переводится оптимально в машинный код. Поэтому в .Net есть направление Native которое компилируется используя компилятор от C++.
А Гуи это отдельная тема, так как для каждой оси куча прибамбасов. И кроссплатформенный Гуи сильно урезан от всех возможностей оси.
226 Serginio1
 
30.09.16
12:44
(220) На самом деле не отстаивает, а делится своим опытом и знаниями.
227 trdm
 
30.09.16
12:47
(218) > В Qt-дизайнере всё нормально рисуется.
Это если въедешь в систему лайотов и политику размеров.
228 sh8ce
 
30.09.16
12:49
(225) Всем удобно писать на разных языках. Иначе бы их не было
229 Кирпич
 
30.09.16
12:49
(220) ты видел какой код Serginio1 строчит на руслише? :) никакой робот не сможет понять чего там понаписано.
230 Mauser
 
30.09.16
12:57
(182)(183)(192) Господи, какая наивность. 1964 год рождения...

Если хабр — развлекательный ресурс, то зачем, зачем ты туда пишешь?
Многие, да...
231 Кирпич
 
30.09.16
13:07
(224) а есть пример какого нибудь приложения на QT и питоне? я бы глянул. чота подозреваю, что тормознутое уг получится. так то я питон уважаю.
232 Garykom
 
гуру
30.09.16
13:15
(231) https://ru.wikipedia.org/wiki/Deluge юзаю но там не Qt а GTK
233 Кирпич
 
30.09.16
13:33
(232) ну вроде ничо так. некрасиво, но шустро. дохрена файлов, но работает :)
234 Gary417
 
30.09.16
13:45
давайте для разнообразия
https://ru.wikipedia.org/wiki/QupZilla
прототип на питоне, в итоге плюсы, "Какжежтак"?
235 Кирпич
 
30.09.16
13:54
На эти Qt дизайнеры после VS и Delphi без слёз трудно смотреть. Последний раз смотрел на них лет 5 назад. Ничего не поменялось. Ну их...
236 Кирпич
 
30.09.16
13:54
(234) потому что тормоза
237 Loky9
 
30.09.16
13:57
(227) Если нужен адаптивный дизайн с интернационализацией и поддержкой стилей придётся въезжать. WPF тоже не мёд.
(231) http://orange.biolab.si/download/windows/
https://sourceforge.net/projects/pythoncad/
238 Loky9
 
30.09.16
13:58
(234) Так потому что изначально не знали зачем им там питон.
239 Gary417
 
30.09.16
13:58
(238) потому что блин помешались на этом питоне помоему
240 Кирпич
 
30.09.16
13:59
(237) щас заценим
241 Loky9
 
30.09.16
14:03
(239) Он прошел проверку временем. https://www.google.ru/trends/explore?date=all&q=python
Скоро браузеры на расте будут ;)
242 Loky9
 
30.09.16
14:06
Вообще, учитывая что питон - язык прототипирования в том числе, всё нормально и становится на свои места.
243 Gary417
 
30.09.16
14:08
(242) ога, только если сказать это в современном ИТ сообществе сразу закидают, "патамушта питон самый лучший язык!! он всех победит"
244 Loky9
 
30.09.16
14:11
(243) Если производительностью можно пренебречь, так оно и есть.
245 Gary417
 
30.09.16
14:13
(244) чем обоснована самалучшесть? чем питон _принципиально_ отличается от 100500 языков?
246 Loky9
 
30.09.16
14:15
(245) Лучшесть определяется не принципиальными отличиями. Он только чуть-чуть лучше второго хорошего языка)
247 Serginio1
 
30.09.16
14:16
(228) Удобно потому, что нет альтернативы. При сравнении C#,Objective-C, Java для андроид. Первый выигрывает объективно. Другое дело, что Xamarin только завоевывает рынок.
(230) Да я молодой и наивный
248 Gary417
 
30.09.16
14:20
(246) какой второй хороший?
249 Loky9
 
30.09.16
14:23
(248) Лисп) Хоть я его толком не знаю.
250 Gary417
 
30.09.16
14:25
(249) а как можно делать вывод о лучшести если не знаете? :)

Религиозные причины не рассматриваем :)
251 Loky9
 
30.09.16
14:39
(250) Ну, я же не 100% серьёзно говорю о лучшести питона!
Его код лучше других выражает реализуемый алгоритм, без отвлечения внимания на второстепенные детали. Это способствует производительности труда. Для меня это главный плюс.
252 Garykom
 
гуру
30.09.16
14:50
(251) Попробуйте и поймете что производительность труда даже на языке 1С или basic'е выше )) почему то
253 Loky9
 
30.09.16
14:52
(252) Пробовали, не поняли.
254 Gary417
 
30.09.16
14:55
(251) <Его код лучше других выражает реализуемый алгоритм>

Это вы про идиотские отступы когда вместо пробела таб нажмёшь или ентер не в том месте и ничерта не работает?
==
уже давным давно все IDE текст программы форматируют
255 Loky9
 
30.09.16
14:55
(252) Поиск наибольшей общей подстроки на питоне:

def long_substr(data):
    substr = ''
    if len(data) > 1 and len(data[0]) > 0:
        for i in range(len(data[0])):
            for j in range(len(data[0])-i+1):
                if j > len(substr) and all(data[0][i:i+j] in x for x in data):
                    substr = data[0][i:i+j]
    return substr

print(long_substr(['hello',
                   'I prefer Jelly Belly beans.',
                   'When hell freezes over!']))

Запишите то же самое на бейсике, или 1С.
256 Loky9
 
30.09.16
14:56
(254) Так вы табы с ентерами в IDE и жмите, а не в блокноте.
257 Gary417
 
30.09.16
14:57
(256) в 21 веке код писать в блокноте это мазохизм
258 Loky9
 
30.09.16
14:58
(257) Потому в блокноте на питоне пишут только мазохисты. Потом ещё и опытом своим в интернетах делятся.
259 Gary417
 
30.09.16
14:58
(255) это вы так полюбили питон за то что в нём встроенная ф-ция all?
260 Gary417
 
30.09.16
14:59
(258) а тогда вопрос, нафига железно прибитая структура форматирования в языке, когда эту структуру рисует за программиста IDE?

Сейчас это в питоне выглядит только как генератор тупых ошибок
261 Loky9
 
30.09.16
15:02
(259) Нет
(260) Она не железно прибитая. Никаких ошибок связанных с отступами никогда не получал.
262 Gary417
 
30.09.16
15:04
(261) если половину программы писать с пробелами, а половину с табами, ошибок не будет?
263 Gary417
 
30.09.16
15:05
(261) А чем тогда этот пример (255) не реализуется в другом языке? он буквально дословно одинаков везде кроме all и немного другим обращением к массиву
264 Loky9
 
30.09.16
15:07
(262) Будет. Только IDE не даст до них дойти.
(263) Именно этот довольно легко реализуется, но всё же будет потолще.
265 Serginio1
 
30.09.16
15:08
(255) На Linq будет даже красивее.
266 Loky9
 
30.09.16
15:09
(265) Напишите.
267 Gary417
 
30.09.16
15:13
(264) так это просто частный случай, не удивлюсь что есть язык где эта операция вообще одной строчкой выполняется, однако это ни о чём не говорит.

<Будет. Только IDE не даст до них дойти. >
так в чём тогда плюс питона то? Если IDE во всех языках предотвращает логические ошибки и расставляет красивое форматирование чтобы видеть структуру
268 Serginio1
 
30.09.16
15:15
(266) Лень. Просто на Linq я не каждый день пишу, нужно тратить на то, что бы вспомнить все конструкции. А его у меня сейчас нет.
Но решение таких задач полно в интернете.
269 Loky9
 
30.09.16
15:16
(267) "так в чём тогда плюс питона то? Если IDE во всех языках предотвращает логические ошибки и расставляет красивое форматирование чтобы видеть структуру"
В синтаксисе, полиморфизме, рефлексии, экосистеме и т.д.
270 Garykom
 
гуру
30.09.16
15:21
(255)

Функция НаибольшаяОбщаяПодстрока(Строка1, Строка2)
    Результат = "";    
    Для i = 1 По СтрДлина(Строка1) Цикл
        Рез = Рез + Сред(Строка1, i, 1);
        Если СтрНайти(Строка2, Рез)>0 Тогда
            Если СтрДлина(Рез)>СтрДлина(Результат) Тогда
                Результат = Рез;
            КонецЕсли;
        Иначе
            Рез = "";
        КонецЕсли;
    КонецЦикла;
    Возврат Результат;
КонецФункции

271 Gary417
 
30.09.16
15:21
(269) экосистема в других языках то понасыщенней будет
синтаксис - на любителя (я понял что я не любитель)

полиморфизм...что под этим подразумевается?

Рефлексии и в других языках полно
272 Garykom
 
гуру
30.09.16
15:22
(270)+ Написал с 0 за 5 минут а Вы?
273 Loky9
 
30.09.16
15:24
(270) Там было для произвольного количества строк.
274 Loky9
 
30.09.16
15:27
(271) Да куда уж насыщенней.
Под полиморфизмом подразумеваю возможность использовать одну функцию для широкого спектра классов.
275 Кирпич
 
30.09.16
15:27
(260) там отступы не только для форматирования, но и чтобы меньше писать. чтобы не было операторных скобок begin end или {}
276 Кирпич
 
30.09.16
15:30
питон он собственно и задуман чтобы меньше писать
277 Кирпич
 
30.09.16
15:32
ну и чтобы в глазах меньше рябило
278 Serginio1
 
30.09.16
15:36
(276) Писть может и меньше, а вот без IntelliSense не ахти и быстрее
279 Loky9
 
30.09.16
15:39
(278) Что вы там такое интеллисенсом делаете? Автокомплит есть, если что.
280 Кирпич
 
30.09.16
15:44
(278) ну да. просто есть люди, которые печатают как разговаривают и которым нужно быстро наваять скрипт. кто ж знал, что на этом питоне будут целые приложения писать и здоровенные сайты.
281 Serginio1
 
30.09.16
15:47
(279) То есть Питон стал типизированным языком?
282 Loky9
 
30.09.16
15:48
(281) Питон - язык со строгой динамической типизацией. То есть он им и был.
283 Serginio1
 
30.09.16
15:52
(282) Тогда откуда возьмется подсказка о методах и свойсвах класса? Проблема в 1С кстати во многом, что нет возможности указать тип в параметрах и функции. А вот популярность TypeScript как раз в его типизации. Меньше ошибок, большая скорость набора
284 Loky9
 
30.09.16
16:03
(283) Из описания класса?
285 Loky9
 
30.09.16
16:07
Когда класс определить невозможно, атрибуты хинтятся из уже вводившихся в данной области видимости.
286 Serginio1
 
30.09.16
16:15
(284) Так где ты возьмешь описание класса, если типизация динамическая. В 1С тоже есть автокомплит, но вот параметры и результат функции не типизирован
287 Loky9
 
30.09.16
16:16
(286) Там же где они берутся в динамиках и генериках.
288 Serginio1
 
30.09.16
16:19
(287) В динамиках как раз ничего не берется. Если конечно ты приведение типа не сделаешь.
В Дженериках там либо вывод типа по параметрам, либо нужно указывать тип.
289 Serginio1
 
30.09.16
16:20
(288) Но у ExpandoObject или DynamicObject типы не известны
290 trdm
 
30.09.16
16:27
https://www.opennet.ru/opennews/art.shtml?num=45247
Анализатор PVS-Studio помог выявить 10000 ошибок в различных открытых проектах.
....
Качество различных открытых проектов сильно отличается. Например, в недавних проверках проявил себя пакет NUnit, в котором удалось найти всего одну ошибку, порадовал высоким качеством кода и отладчик GDB.

С другой стороны, при проверке Mono были выявлены сотни ошибок и возникли проблемы со сборкой.
291 trdm
 
30.09.16
16:31
http://www.viva64.com/ru/b/0431/
Ищем ошибки в Mono: сотни их!

static bool AreEqual (VisualStyleElement value1,
                      VisualStyleElement value2)
{
  return
    value1.ClassName == value1.ClassName && // <=
    value1.Part == value2.Part &&
    value1.State == value2.State;
}

Приятного как коворится юзания :)))
292 trdm
 
30.09.16
16:32
button_pressed_highlight = use_system_colors ?
                             Color.FromArgb (150, 179, 225) :
                             Color.FromArgb (150, 179, 225);
293 trdm
 
30.09.16
16:37
Что-бы не говорили, какой дотнет в усмертть кросплатформеный...
Сотни ошибок - это глюкавое ведро...
294 Garykom
 
гуру
30.09.16
16:37
(291) Хорошая бага не всегда проявляющаяся кста ну забыли 1 на 2 исправить, бывает
295 Garykom
 
гуру
30.09.16
16:38
(293) Тя плафтормы 1С не удивляют?
296 Serginio1
 
30.09.16
16:50
(293) Ты сравнивай .Net Core. Mono уже считай умер. С NetStandart 2 все перейдут на .Net Core.
297 Garykom
 
гуру
30.09.16
16:54
(296) "Все" это кто? Полтора разраба корпоративных поделок? Которые не на java задумали писать?
298 trdm
 
30.09.16
17:03
(296) не, даром не надо.
299 Serginio1
 
30.09.16
17:34
(297) На самом деле их много. Как и на Asp.Net Core
300 Serginio1
 
30.09.16
17:43
Можно посмотреть по активности на http://stackoverflow.com/questions/tagged/asp.net-core-mvc
301 Garykom
 
гуру
30.09.16
17:44
(299) Пробовал писать сайт/сервисы на asp.net и да поначалу вау как круто!

Но потом начинаются грабли, то тут глючит не пойми почему то там, то нагрузку в 100 каких то юзеров не держит (хотя php или jsp легко) или просто взяло и повисло нафик что пришлось сервер ребутать.
302 Garykom
 
гуру
30.09.16
17:47
(300) Если посмотреть "активность" тупых вопросов по 1С то легко можно подумать что все остальное во всем мире просто в загоне ))

Суть что на java или php достаточно просто погуглить, то на asp.net приходится спрашивать и не факт что ответ будет.
303 Serginio1
 
30.09.16
17:49
(301) Ну это зависит от того как код напишешь. Сейчас в .Net Core практически выкинули все синхронные методы.
Многие еще потоки используют.
(302) По Asp.Net на том же http://stackoverflow.com все легко находится.
304 Garykom
 
гуру
30.09.16
17:51
(303) Счас то может и находится, но когда пробовал писать тогда был ужас, причем самый ужас что никаких бесплатных либ не было, только платные за огромные бабки.
В результате плюнул и перешел на яву, там либ оказалось море и с мануалами.
305 Garykom
 
гуру
30.09.16
17:51
(304)+ Почему мне понравилась нода, что да технология новая но либ уже больше чем на C#
306 Masquerade
 
30.09.16
18:49
(304)

-- самый ужас что никаких бесплатных либ не было,
-- там либ оказалось море и с мануалами
-- что да технология новая но либ уже больше чем на C#

О каких либах речь то идет?
307 Garykom
 
гуру
30.09.16
18:58
(306) работа с офисными форматами xls, doc и прочие разные билиотеки для сетки, баз данных и прочего.

т.е. для всего что выходит за рамки лабораторно/учебного программирования, изначально C# это такая идеальная замена для языка обучения в школах/универах вместо устаревшего Паскаля и слишком сложных C++
308 Garykom
 
гуру
30.09.16
18:59
(307)+ Тем более что был (ну и есть но уже странно это) такой VB.Net как развитие VB6
309 Masquerade
 
30.09.16
19:00
(307)

изначально C# это такая идеальная замена для языка обучения в школах/универах

Я просто был не в курсе
310 Garykom
 
гуру
30.09.16
19:07
(309) Ну мне пришлось осваивать C# когда писал под WinMobile/WinCE ибо иначе никак (нативно это сдохнуть там было).

И тогда нифига не было, вот банальный FTP и нету (( что есть оно на PocketPC урезано по самое оказалось и полных либ не найти, пришлось на tcp/udp и http обмен переходить причем с 0 все изучая и ваяя.
311 Кирпич
 
30.09.16
19:07
(305) да побойся бога. На шарпах уже все на свете понаписали.
312 Gary417
 
30.09.16
19:08
(307) C# этож "убийца явы", какойже это язык для обучения
313 Garykom
 
гуру
30.09.16
19:10
(311) сам язык и .net фреймворк вышли на удивление удобными

на том же паскале-дельфи писать менее удобно оказалось
314 Serginio1
 
30.09.16
19:11
(307) Видно это давно было. Есть и Open XML.
Если не было на C? то был интероп. Особенно на WinMobile/WinCE.
Сейчас многое все поменялось.
315 Garykom
 
гуру
30.09.16
19:11
(312) ну рынок у явы он отжал это не поспоришь
316 Garykom
 
гуру
30.09.16
19:12
(314) 10 лет уже как
317 Serginio1
 
30.09.16
19:12
(313) Я сам с огромным сожалением оставл Delphi в прошлом.
318 Garykom
 
гуру
30.09.16
19:15
(317) угу чего мне сча реально не хватает так это C# + Lazarus, в смысле писать на C# и компиляция под любые платформы в нативный код ((
319 Garykom
 
гуру
30.09.16
19:16
(318)+ Без громоздких .Net Framework'ов чтобы запускалось нативно.
Java кстати тоже сча пипец уже с размерами...
320 Serginio1
 
30.09.16
19:16
(318) Сейчас есть .Net Native. Но, он только вначале пути.
321 Garykom
 
гуру
30.09.16
19:17
(320) не взлетит он, не смогут перелопатить весь .Net никак, а без этого смысла уже мало, мощщи классов/либ будет не хватать привычной.
322 Gary417
 
30.09.16
19:18
(321) ну всё зависит от желания МС выйти на линукс
323 Serginio1
 
30.09.16
19:21
324 Serginio1
 
30.09.16
19:21
(322) Так у них есть смысл в облаках. Они там кучу денег зарабатывают.
325 Gary417
 
30.09.16
19:25
(324) а причём тут облака и .Net?
326 Garykom
 
гуру
30.09.16
19:37
Кста кто еще удивился что MS для своей мобильно-телефонной платформы не додумались реализовать AndroidJava машину?

Или додумались но не смогли? Так бы куча софта/игрушек сразу были для Windows Phone и покупали бы на ура. А то ценник сча смешной (как и на планшеты с Windows 10) но не берутс.

Сам взял для отделов более дорогие (хуже технически/функционально) планшеты но зато с Android а не с Windows 10. Ибо повозился и плюнул, нафик мне траблы от отделов.
327 Gary417
 
30.09.16
19:38
(326) вообщето они хотели, но проект прикрыли
328 Gary417
 
30.09.16
19:39
Project Astoria называлось вродбы
329 Garykom
 
гуру
30.09.16
19:39
(327) Не-не то что читал то было полный эмулятор android'а включая натив софт а не только под Далвик
330 Serginio1
 
30.09.16
19:48
(326) А при том, что они туда перетягивают Linux и прочее и дают свои инструмены.
331 Masquerade
 
30.09.16
19:59
(266)

В лоб. Чтоб понятно было.

var string_array = new String[] {"hello",
                   "I prefer Jelly Belly beans.",
                   "When hell freezes over!" };




            var min_word = string_array.OrderBy(x => x.Length).FirstOrDefault();

            var all_indexes = Enumerable.Range(0, min_word.Length+1);

            var index_pairs = from index1 in all_indexes
                        from index2 in all_indexes
                        where index1 < index2
                        select new { start = index1, end = index2 };

            var all_variations = from index_pair in index_pairs
                                select new { result = min_word.Substring(index_pair.start, index_pair.end - index_pair.start) };

            var _max_substring = from variant in all_variations
                                 from word in string_array
                                 select new { variant_length = variant.result.Length, substring = variant.result, present = word.IndexOf(variant.result)>-1 ,word = word  };

            var max_substring = _max_substring.
                Where(x => x.present).
                GroupBy(x=>x.substring).
                Where(x=>x.Count()==string_array.Count()).
                OrderByDescending(x=>x.Key.Length).
                FirstOrDefault().
                Key;

            Console.Out.WriteLine(max_substring);
332 Masquerade
 
30.09.16
20:00
(331) +

Можно и в a la одну строчку, но тутошний народец этого не любит))))))
333 Serginio1
 
30.09.16
20:10
(326) Да вроде есть https://www.ikvm.net/
Но проблема не в софте. Там и сейчас софта хватает, и аппараты цена качество отменное. Просто народ уже подсел на андроид Ios
334 Masquerade
 
30.09.16
20:20
(266)

Покороче

var string_array = new String[] {"hello",
                   "I prefer Jelly Belly beans.",
                   "When hell freezes over!" };

            
            var all_variations = from start in Enumerable.Range(0, string_array.OrderBy(x => x.Length).FirstOrDefault().Length + 1)
                              from end in Enumerable.Range(0, string_array.OrderBy(x => x.Length).FirstOrDefault().Length + 1)
                              where start < end
                              select new { result = string_array.OrderBy(x => x.Length).FirstOrDefault().Substring(start, end - start) };


            var max_substring = String.Empty;

            foreach (var variant in all_variations.OrderByDescending(x => x.result.Length))
            {
                if (string_array.Select(word => word.IndexOf(variant.result) > -1 ? 1 : 0).Sum() == string_array.Count())
                {
                    max_substring = variant.result;
                    break;
                }
            }

            Console.Out.WriteLine(max_substring);
335 Serginio1
 
30.09.16
20:49
(334) Добавил в PasteBin

<iframe src="//pastebin.com/embed_iframe/jPaqH4dX" style="border:none;width:100%"></iframe>


http://pastebin.com/jPaqH4dX
336 Loky9
 
30.09.16
22:03
(331) Спасибо! Это было познавательно.
(334) (335) И какой вывод можно сделать?
337 Serginio1
 
30.09.16
22:49
Что в 1С не хватает Linq to SQL и Linq to Object
338 Loky9
 
30.09.16
22:52
(337) И статической типизации, конечно же.
339 Loky9
 
30.09.16
23:11
Немного побаловался с тем кодом, найденным в инете:

from itertools import permutations

def long_substr(data):
    first, substr = data[0], ''
    if len(data) > 1 and len(first) > 0:
        for i, j in permutations(range(len(first) + 1), 2):
            if j - i > len(substr) and all(first[i:j] in x for x in data):
                 substr = first[i:j]
    return substr

print(long_substr(['hello',
                   'I prefer Jelly Belly beans.',
                   'When hell freezes over!']))
340 Masquerade
 
30.09.16
23:51
(339)
Тю, так ты еще и в нете код ищешь, а потом сюда постишь...
341 Loky9
 
01.10.16
00:00
(340) Когда как. Не вижу проблемы.
342 Loky9
 
01.10.16
00:15
http://pastebin.com/qsyyjE1N - 100% моё, чтоб вопросов не было. С блэкджеком и ОРМ.
343 Masquerade
 
01.10.16
00:49
(342)
Да что там подстроку искать - скука.

Вот была задача - есть массив адресов.

Один адрес - одна строка.

Надо выдрать первую букву улицы/проспекта/площади.

На LINQ несколько строк.))))
344 Masquerade
 
01.10.16
00:49
(343)

-- На LINQ несколько строк.

Не самых коротких, правда))))
345 Serginio1
 
01.10.16
10:49
Нужно иметь ввиду, что Linq расширяем за счет своих методов расширителей. Например
http://rsdn.org/forum/prj.codejam/6569269.flat
346 Masquerade
 
01.10.16
11:15
(345)
Это ты к чему?
347 Serginio1
 
01.10.16
12:26
(346) Я к тому, что стандартная библиотека прежде всего направлена на Sql. Да и там много не хватает. Но она расширяема.
Например в C++ можно найти минимальное значение для любого типа.
В .Net метод Min только для числовых
https://msdn.microsoft.com/ru-ru/library/system.linq.enumerable.min(v=vs.110).aspx

Но можно расширить например http://rsdn.org/forum/dotnet/6506104.1

  В данном случае вместо
Enumerable.Range(0, string_array.OrderBy(x => x.Length).FirstOrDefault().Length + 1)


Можно написать

Enumerable.Range(0, string_array.MinItem(x => x.Length).Length + 1)
348 Serginio1
 
01.10.16
12:40
А вообще то для данного случая нужно было тспользовать

Enumerable.Range(0, string_array.Min(x => x.Length)+ 1)

https://msdn.microsoft.com/ru-ru/library/bb548864(v=vs.110).aspx
349 Masquerade
 
01.10.16
14:00
(348)
Так можно и всю задачу решить ОДНИМ методом расширения.

И то что "стандартная библиотека направлена на SQL" - это твои фантазии.

И "вообще-то" тебе предложили написать код - ты слился в лучших традициях.

Так что незачет.
350 Loky9
 
01.10.16
14:14
(343) [i.group(1) for i in map(re.compile(r'(?:\s+|\A)(?:ул|пр-кт|пл)(?:\.|\s+)\s*(\w)', re.I).search, adresses) if i]

Всего делов.
351 Loky9
 
01.10.16
16:08
(286) В питоне3 появился type hinting. Рантайм типы не проверяются, но любые нуждающиеся средства могут получить подсказку по типу аргумента. IDE это используют
http://savepic.su/7534189.png
352 Serginio1
 
01.10.16
21:59
(349) Нет не фатазии. Ибо стандартный Linq подходит под IQueryable

https://habrahabr.ru/post/256821/

Что касается
Enumerable.Range(0, string_array.MinItem(x => x.Length).Length + 1
То это стандартный метод. А насчет слился считай как хочешь.

(351) Вот интересно. Идут по пути TypeScript. Чего и 1С нужно брать на вооружение
353 Masquerade
 
01.10.16
22:02
(350)
Ты такой простой.

Ты не знаешь, как заданы эти сокращения, улица может быть как

ул.
у-ца
улица

и прочее. С проспектами и площадями - тоже самое.

Максимум что известно, что способ (формат) более менее одинаков.
354 Serginio1
 
01.10.16
22:03
(349)
Я не знаю чего ты так возмутился
Я просто привел стандартный Linq метод
string_array.Min(x => x.Length)

https://msdn.microsoft.com/ru-ru/library/bb548864(v=vs.110).aspx

Вместо

string_array.OrderBy(x => x.Length).FirstOrDefault().Length
355 Loky9
 
01.10.16
22:13
(353) Обычно всё что не определено во вводной берётся на своё усмотрение. Я усмотрел из "Приложение 1 к описанию классификатора адресов Российской Федерации (КЛАДР)". Если однозначно определить вхождение элемента невозможно, задача не решается.
Так что добавьте недостающие варианты в регулярку и не имейте мне мозг.
356 Masquerade
 
01.10.16
22:20
(355)

-- и не имейте мне мозг.

Да больно надо, это не я код из нета сюда пощу с лозунгами :"А ну-ка, девочки!"

Это был чисто спортивный интерес - вычислить паттерн формата адреса и извлечь из него искомое.
357 Loky9
 
01.10.16
22:24
(356) С конкретно тем кодом был подтекст спецом для Garykom
Успехов в освоении регулярок!
358 Masquerade
 
02.10.16
00:54
(355)

--Если однозначно определить вхождение элемента невозможно, _задача не решается_.

Тобой.)))

Это значит, что регулярка не работает.
А по другому ты не умеешь.

Признаешь?
359 Loky9
 
02.10.16
00:56
(358) Я могу эту примитивную задачу решать как угодно. Хватит понтов.
360 Loky9
 
02.10.16
00:57
Неточные методы дают неточные решения. Только и всего.
361 Loky9
 
02.10.16
01:07
(344) Жду обещанного решения на LINQ "в несколько строк" уже для строк произвольного формата.
Осилишь?
362 Masquerade
 
02.10.16
10:14
(361)
А ты в нете поищи.
363 Loky9
 
02.10.16
10:15
(362) Быстро ты слился.
364 Masquerade
 
02.10.16
10:28
(363)
Тебе хватит и того бисера, что я уже наметал
365 Loky9
 
02.10.16
10:30
Пока вывод: LINQ - громоздкое, бесполезное унылое уг.
366 Serginio1
 
02.10.16
12:12
(365) Ну тебе виднее. Огромная куча народа использует в том числе и для SQL. Намного удобнее 1С кого конструктора итд.
367 Mauser
 
02.10.16
22:40
(366) Когда очередную статью на хабре ждать?
368 Serginio1
 
03.10.16
10:05
(367) Наверное когда уже выйдет .Net Core 1.1
Или, что маловероятно, когда 1С добавит возможность передавать в параметрах и возвращать объекты ВК.
Сейчас займусь Xamarin. Посмотрю, что изменилось с времен 1C Messenger для отправки сообщений, файлов и обмена данными между пользователям

Если появится, что то интересное, то тоже напишу
369 Loky9
 
03.10.16
12:09
(366) Виднее. Смотри, берём код (331) и дословно транслируем:

from itertools import groupby

string_array = ['hello',
                'I prefer Jelly Belly beans.',
                'When hell freezes over!']

min_word = min(string_array, key=len)
all_indexes = range(len(min_word))
index_pairs = [(index1, index2)
               for index1 in all_indexes
               for index2 in all_indexes
               if index1 < index2]
all_variations = [min_word[start:end] for start, end in index_pairs]
_max_substring = [(len(variant), variant, variant in word, word)
                  for variant in all_variations
                  for word in string_array]
max_substring = max((gkey
                     for gkey, grp in
                     groupby(sorted(filter(lambda x: x[2], _max_substring),
                                    key=lambda x: x[1]),
                             key=lambda x: x[1])
                     if len(tuple(grp)) == len(string_array)),
                    key=len)
print(max_substring)

Исключительно на базовых средствах получилось более кратко.
370 Serginio1
 
03.10.16
13:22
(369) Тоже самое и с Linq

Там легко расширить.
И вместо
min_word = min(string_array, key=len)
all_indexes = range(len(min_word))
index_pairs = [(index1, index2)


index_pairs=Enumerable.Range(0, string_array.Min(x => x.Length- 1);

Все остальное как в .Net Core, обмен с 1C по TCP/IP между различными устройствами

Большой разницы не вижу. Особенно если ввести MinItem.


Вместо
string_array.OrderBy(x => x.Length).FirstOrDefault()

string_array.MinItem(x => x.Length)

Даже еще короче получится. А вот читаемость у Linq лучше. При этом Автодополнение итд.

Кратко, не значит понятно.
371 Loky9
 
03.10.16
21:42
(370) " Тоже самое и с Linq
Там легко расширить."

С другой стороны тоже можно расширить:

from itertools import permutations, product, groupby

def group_by(iterable, **kwargs):
    for key, grp in groupby(sorted(iterable, **kwargs), **kwargs):
        yield key, tuple(grp)

string_array = [
    'hello',
    'I prefer Jelly Belly beans.',
    'When hell freezes over!']

min_word = min(string_array, key=len)
all_variations = (
    min_word[start:end]
    for start, end in
    permutations(range(len(min_word)), 2))
usable_vars = (
    variant
    for variant, word in
    product(all_variations, string_array)
    if variant in word)
max_substring = \
    max((gkey
         for gkey, grp in
         group_by(usable_vars)
         if len(grp) == len(string_array)),
        key=len)
print(max_substring)

Кому хочется большего пишут свои линки ( https://github.com/heynemann/pynq/wiki ), или используют бронебойный http://pandas.pydata.org/pandas-docs/stable/10min.html

"А вот читаемость у Linq лучше."
Я бы не сказал. Ни SQL, ни функциональный стиль, куча дополнительных ключевых слов и с ними правил синтаксиса, борьба с типизацией.

"Кратко, не значит понятно."
Не значит, но зачастую сопутствует.
372 Serginio1
 
03.10.16
22:45
(371) Там синтаксиси именно под SQL, но сделан для того, что бы использовать intellisense.
B код под коллекции так же работает и с Таблицами SQL

http://catalog.mista.ru/public/402433/

>> Я бы не сказал. Ни SQL, ни функциональный стиль, куча дополнительных ключевых слов и с ними правил синтаксиса, борьба с типизацией.

Дело привычки, а автодополнение сокращает время написания и количество синтаксических ошибок.

  Лень вчитываться, а каков смысл твоего алгоритма?
373 Loky9
 
03.10.16
23:21
(372) "Лень вчитываться, а каков смысл твоего алгоритма?"
Это всё ещё алгоритм Masquerade .
Он берёт самую короткую строку из набора и генерирует все возможные её подстроки. Из полученного набора подстрок отбирает входящие во все строки, а из входящих самую длинную. В итоге получаем самую длинную общую подстроку, о чем спрашивали в Быстрый алгоритм наибольших общих подстрок .
Не самый оптимальный алгоритм даже для ложащихся на логику РБД, но он таки с БД работать может.
374 Garykom
 
гуру
03.10.16
23:59
(373) Интересный алгоритм задачка приводится на sql к куче like'ов
И если слегка допилить то можно реализовать "группировку" по общим подстрокам.
375 Serginio1
 
04.10.16
00:31
(373) Спасибо. Теперь понятно.
А что касается формирования подстрок, то там и без Linq можно обойтись. Опустим.
  
Сравним Linq

foreach (var variant in all_variations.OrderByDescending(x => x.result.Length))
            {
                if (string_array.Select(word => word.IndexOf(variant.result) > -1 ? 1 : 0).Sum() == string_array.Count())
                {
                    max_substring = variant.result;
                    break;
                }
            }

и Питон

_max_substring = [(len(variant), variant, variant in word, word)
                  for variant in all_variations
                  for word in string_array]
max_substring = max((gkey
                     for gkey, grp in
                     groupby(sorted(filter(lambda x: x[2], _max_substring),
                                    key=lambda x: x[1]),
                             key=lambda x: x[1])
                     if len(tuple(grp)) == len(string_array)),
                    key=len)
376 Serginio1
 
04.10.16
01:20
Или
if (string_array.Select(word => word.IndexOf(variant.result) > -1 ? 1 : 0).Sum() == string_array.Count())
                
Можно переписать

if (string_array.Count(word => word.IndexOf(variant.result) > -1 ) == string_array.Count())
                
377 Loky9
 
04.10.16
08:18
(375) "Сравним Linq
и Питон"
Ты сравниваешь различные конструкции. Приведённой тобой линковой соответствует

for variant in sorted(all_variations, key=len, reverse=True):
    if sum(variant in word for word in string_array) = len(string_array):
        max_substring = variant
        break
378 Serginio1
 
04.10.16
09:47
Ну давай сравним

if sum(variant in word for word in string_array) = len(string_array):

и

if (string_array.Count(слово=> слово.IndexOf(variant) > -1 ) == string_array.Count())
379 Serginio1
 
04.10.16
09:51
По сути это сокращенная Sql инсnруция

if (string_array.Where(слово=> слово.IndexOf(variant) > -1 ).Count() == string_array.Count())
380 Loky9
 
05.10.16
10:41
(378) Хочешь сказать линк тут понятнее? Или короче?
381 Serginio1
 
05.10.16
10:47
(380) Понятнее. Мало того эта же конструкция прекрасно ложится на SQL
382 Loky9
 
05.10.16
10:51
(381) Одна конструкция ложится на другую, но на SQL ложатся не обе? ) Так бывает? Там ещё и кириллицей тоже можно.
383 Serginio1
 
05.10.16
11:03
Вернее будет правильнее

if (string_array.Count(слово=> слово.Contains(variant) > -1 ) == string_array.Count())

А, что Unicode в SQL отменили?

Но  IndexOf работает, прорсто Contains короче

http://stackoverflow.com/questions/835790/how-to-do-sql-like-in-linq
384 Serginio1
 
05.10.16
11:04
Тьфу Копи пасте
if (string_array.Count(слово=> слово.Contains(variant)) == string_array.Count())
385 Serginio1
 
05.10.16
11:06
А внутри SQL кстати не будет никакой Киррилицы.
Почитай для интереса

Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I
http://catalog.mista.ru/public/393228/
Продолжение здесь http://catalog.mista.ru/public/402038/

Здесь лежит практика использования http://catalog.mista.ru/public/402433/