|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
mad_nazgulskyANAТС пишет: "Приложение будет проверять счета от поставщиков(например сверка кол-ва и цен)". Это что за счёт такой должен быть, чтобы его больше минуты обрабатывать? Не счет обрабатывается, а проверка. Причем не понятно, с какая там будет задержка. Хорошо если нет связи с внешними системами. А если есть, а на "той стороне" оператор ручками делает проверку счета. :-) Ну хорошо, хорошо :) Task.Run Не вижу необходимость в какой-то очереди и воркере. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 09:39 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
И как-то мы смело решили, что пользователь не готов ждать. 200-300 счетов в день, 20 пользователей. Они их явно не пачками проверяют: отдал одну, пошёл за следующей. :) Хотя тут можно гадать, что из-за бизнес-процесса оно так. И сейчас мы коллективно придумает систему, что позволит проверять 2000-3000 счетов в день силами 2-х пользователей (остальных уволить). :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 09:46 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
mad_nazgulХорошо если нет связи с внешними системами. А если есть, а на "той стороне" оператор ручками делает проверку счета. :-) связь есть, но именно с системами. никаких операторов. операторы это как раз те мои 20 пользователей, они будут нужны, когда не сходятся кол-ва в счете и в DWH или цена в счете и в нашей системе закупок ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 12:10 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
skyANAИ сейчас мы коллективно придумает систему, что позволит проверять 2000-3000 счетов в день силами 2-х пользователей (остальных уволить). :) идея и есть в том, чтобы 70-80% счетов проверялась автоматом, без участия человека и как можно больше счетов приходили электронно(на схеме это отмечено словом EDI) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 12:12 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
skyANAПри такой нагрузке никакой worker не нужен. Прилетел файл, сохранили, Task.Run. Всё. так вопрос не в том, нужен Worker или нет, а в том, как хостить модуль обработки(я его обозвал BACKEND'ом). Как уже было сказано, счета поступают по 2м каналам: электронно(будут импортированы в БД BACKEND'ом) и ручками в браузере. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 12:16 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
шеф кстати вообще настаивает на вот таком варианте по идее она самое православное, только мне не хочется делать Мэппинг из Persistence объектов в Business сначала в Backend'е и потом еще раз в ASP.NET ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 12:22 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabs, таки в чём проблема сделать единый API, с которым будет работать и то, что Вы называете EDI и то, что у Вас отмечено как ASP.NET in IIS? API на ASP.NET WebAPI + IIS ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 14:01 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabs, на чём написан EDI? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 14:03 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
skyANAЧто-то на схеме нет внешних систем :) ну вон же EDI, там либо документы хранятся (они оттуда поступают, либо их надо скачать), либо данные для сверки, и как вариант там может и не быть веб-клиента - тогда по идее некуда будет пихнуть web worker yabsшеф кстати вообще настаивает на вот таком варианте по идее она самое православное, только мне не хочется делать Мэппинг из Persistence объектов в Business сначала в Backend'е и потом еще раз в ASP.NET не будет такого двойного маппинга, бэк-енд отдает всем потребителям (и принимает от них) модели, которые внутри него мапятся один раз (но в обе стороны) на сущности ORM например бэк-енд как уже сказали - можно в виде WebApi, а можно и wcf отдельный и только на публичные методы для EDI а тут опять же, если EDI сам документы присылает - это одно, если надо их скачивать оттуда - другое ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 15:20 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabsтак вопрос не в том, нужен Worker или нет, а в том, как хостить модуль обработки(я его обозвал BACKEND'ом) модуль обработки хостить как сервис (web-api или wcf) можно сделать так, чтобы сайт тоже работал с сервисом, но там надо лезть глубже но нужно еще средство вызова обработки, которое не давало бы сбой, тут три варианта: 1. не делать фоновой обработки вообще (если позволяет время ожидания и скорость алгоритмов и отклика внешних систем) - тогда как только документ поступает каким либо образом в систему - сразу же идет проверка 2. сделать планировщик на сервере (виндовая служба, либо воспользоваться внешним сервисом - hangfire) 3. сделать планировщик на клиенте (web worker), как предложили - но тут мне лично не понятно, а что если файл придет ночью, никто не работает в веб приложении - как воркер запуститься? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2016, 15:36 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
17-77, По пункту 3 - если документ приходит электронно, то вмешательство человека вообще не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 02:31 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
skyANAyabs, на чём написан EDI? EDI это стандарт передачи документов https://ru.m.wikipedia.org/wiki/Электронный_обмен_данными Парсер ещё не написан. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 02:36 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
17-77не будет такого двойного маппинга, бэк-енд отдает всем потребителям (и принимает от них) модели, которые внутри него мапятся один раз (но в обе стороны) на сущности ORM например Может я чего-то не понимаю, но в варианте 3 у меня будут 3 набора классов: 1. Persistent 2. Business 3. ViewModels Т.е. Для разработки минус это мэппинг в двух местах Для быстродействия - лишняя сериализация/десериализация. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 02:48 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabs, теоретически можно обойтись только одним набором моделей - типа объекты предметной области, их же использовать в качестве контрактов для сервисов и уровень сериализации/десериализации будет на границе между бэк-ендом и потребителями (EDI/ASP.NET) эти же сущности можно замапить на таблицы БД через ОРМ, я видел однажды очень хороший пример - довольно сложные сущности, но с помощью замысловатых маппингов с тонкой настройкой это все отражалось в таблицы БД через nHibernate но на практике постоянно возникают всякие проблемы, то с контекстом ORM, то сущности становятся слишком перегруженными, то с отображением на UI (когда одна сущность имеет несколько экранов с немного разным набором полей для разных ролей пользователей), и т.п. поэтому делают два слоя - объекты (сущности) предметной области (они же маппятся на БД) и модели для отображения (они же контракты для сервисов), маппинг соответственно между сущностями и моделями, наружу отдают модели, третий по идее лишний ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 10:54 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabsskyANAyabs, на чём написан EDI? EDI это стандарт передачи документов https://ru.m.wikipedia.org/wiki/Электронный_обмен_данными Парсер ещё не написан. Хм, а почему именно EDI? Что из себя счёт представляет? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 09:16 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
skyANA, Насколько я понял, это распространённый формат у поставщиков. Причём на него можно весь обмен информацией перевести: заказы, подтверждение, накладные и счета. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 12:52 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabs, Счёт состоит из отправителя, получателя, позиций(кол-во, цена, ставка НДС), конечной суммы и банковских реквизитов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 12:58 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabsyabs, Счёт состоит из отправителя, получателя, позиций(кол-во, цена, ставка НДС), конечной суммы и банковских реквизитов. у 1С более конкретно всё построено на CommerceXML http://www.sql.ru/forum/319685-4/vybor-alternativy-1s?mid=2960843&hl=1c xml#2960843 а этот EDI что ода вода и одни слова менеджеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 14:02 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
Petro123yabsyabs, Счёт состоит из отправителя, получателя, позиций(кол-во, цена, ставка НДС), конечной суммы и банковских реквизитов. у 1С более конкретно всё построено на CommerceXML http://www.sql.ru/forum/319685-4/vybor-alternativy-1s?mid=2960843&hl=1c xml#2960843 а этот EDI что ода вода и одни слова менеджеров. Во-первых, это оффтоп Во-вторых, EDI это какой-никакой стандарт, в отличие от предложенного вами. Тут как в анекдоте "ради одного засранца трактор заводить не будут" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 18:28 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
yabs, по ссылке, что Вы привели, перечислено 14 стандартов, 8 протоколов и 4 формата. Вы всё это собираетесь поддерживать? При том, что "Счёт состоит из отправителя, получателя, позиций(кол-во, цена, ставка НДС), конечной суммы и банковских реквизитов". ИМХО проще последний распарсить и в электронном виде передать, чем с EDI заморачиваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 07:47 |
|
Вопрос по архитектуре приложения (ASP.NET, C#)
|
|||
---|---|---|---|
#18+
skyANA, Из 14 стандартов наверняка используется этот авторСтандарт EANCOM используется в торговле Поддержек всех протоколов реализовать, думаю, не составит труда. И вообще планы таковы, что формат EDIFACT скорей всего будет конвертироваться во что-то удобоваримое сторонней фирмой авторПри том, что "Счёт состоит из отправителя, получателя, позиций(кол-во, цена, ставка НДС), конечной и банковских реквизитов". ИМХО проще последний распарсить и в электронном виде передать, чем с EDI заморачиваться. Только не парсить, а распознавать отсканированные счета. Удовольствие сомнительное. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 10:52 |
|
|
start [/forum/topic.php?fid=33&gotonew=1&tid=1547317]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 166ms |
0 / 0 |