|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Есть информационная система. На данный момент она двухзвенная: WinForms Client + MS SQL Server. Работает только во внутренней сети. Количество пользователей обычно 5-30, windows authentication. Заказчик хочет переделать ее в трехзвенную. То есть нужно написать сервер приложений и механизм общения сервера с клиентами. В будущем возможно потребуется поддержка работы через web. Хотелось бы заложить реализацию такой возможности в архитектуру, но только если это не скажется существенно на увеличении объема работы сейчас. Подскажите какие технологии на сегодня для этого актуальны? А так же если смысл переходить на WPF c WinForms? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2016, 13:29 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_12112Заказчик хочет переделать ее в трехзвенную. Выкати ему шестизначный счёт и его хотелка резко скукожится. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2016, 13:55 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
>guest_12112 ... Подскажите ... 1. Приглядись к сервисам WCF (3-й слой). 2. Попробуй сам написать приложение на WPF - начнёшь спотыкаться, то сюда и сюда . С уважением, Владимир ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2016, 15:28 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_12112Есть информационная система. На данный момент она двухзвенная: WinForms Client + MS SQL Server. Работает только во внутренней сети. Количество пользователей обычно 5-30, windows authentication. Заказчик хочет переделать ее в трехзвенную. То есть нужно написать сервер приложений и механизм общения сервера с клиентами. В будущем возможно потребуется поддержка работы через web. Хотелось бы заложить реализацию такой возможности в архитектуру, но только если это не скажется существенно на увеличении объема работы сейчас. Подскажите какие технологии на сегодня для этого актуальны? А так же если смысл переходить на WPF c WinForms? Спасибо. Зачем городить посредника, если всю логику проще и быстрее выполнять на СУБД через хранимые процедуры. В той же 1с сервер приложений полезен только из-за бедности языка запросов и отсутствия хранимых процедур на уровне СУБД. Недавно экспериментировал с 1с, оказалось, что вызов процедуры с простым выражением "А=1+1" на сервере приложения в 3 раза медленнее запроса "ВЫБРАТЬ 1+1 КАК А" в файловой СУБД на этой же платформе ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2016, 22:15 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
>sereginseregin > ... всю логику проще и быстрее выполнять на СУБД через хранимые процедуры Не могу с Вами согласиться. Многое зависит от задачи. Вот фрагмент листинга работы со списками объектов, имеющих географические координаты: Полученная по запросу из базы данных выборка представлена на компьютере рабочего места (сервера приложений) в форме списка (List<>) или ObservableCollection<>. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Как Вы это реализуете хранимой процедурой? С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2016, 23:54 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovguest_12112Заказчик хочет переделать ее в трехзвенную. Выкати ему шестизначный счёт и его хотелка резко скукожится. В какой валюте? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 09:13 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
sereginsereginguest_12112Есть информационная система. На данный момент она двухзвенная: WinForms Client + MS SQL Server. Работает только во внутренней сети. Количество пользователей обычно 5-30, windows authentication. Заказчик хочет переделать ее в трехзвенную. То есть нужно написать сервер приложений и механизм общения сервера с клиентами. В будущем возможно потребуется поддержка работы через web. Хотелось бы заложить реализацию такой возможности в архитектуру, но только если это не скажется существенно на увеличении объема работы сейчас. Подскажите какие технологии на сегодня для этого актуальны? А так же если смысл переходить на WPF c WinForms? Спасибо. Зачем городить посредника, если всю логику проще и быстрее выполнять на СУБД через хранимые процедуры. В той же 1с сервер приложений полезен только из-за бедности языка запросов и отсутствия хранимых процедур на уровне СУБД. Недавно экспериментировал с 1с, оказалось, что вызов процедуры с простым выражением "А=1+1" на сервере приложения в 3 раза медленнее запроса "ВЫБРАТЬ 1+1 КАК А" в файловой СУБД на этой же платформе Сейчас все так и работает, через хранимые процедуры. 3 уровень нужен по нескольким причинам. 1. заказчик получил такую рекомендацию от аудитора безопасности. Аудитор утверждает что двухзвенная архитектура не достаточно безопасна в сравнении с трехзвенной. 2. параллельная работа нескольких пользователей с одним объектом. 3. доступ через веб(возможно в будущем) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 11:01 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_12112, п 3 - может быть реализован и без перекройки ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 12:34 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
>guest_12112 >... Аудитор утверждает что ... Если возможно, то что конкретно. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 12:38 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_121123 уровень нужен по нескольким причинам. 1. Аудитор бредит. Добавь один нолик к сумме. 2. Трёхзвенка никак этому не помогает. 3. Совершенно не нуждается в третьем звене: уэб-приложения работают непосредственно с базой не хуже, чем через кривую прокладку. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 13:51 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov1. Аудитор бредит. Добавь один нолик к сумме. +1 )) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 14:37 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovguest_121123 уровень нужен по нескольким причинам. 1. Аудитор бредит. Добавь один нолик к сумме. 2. Трёхзвенка никак этому не помогает. 3. Совершенно не нуждается в третьем звене: уэб-приложения работают непосредственно с базой не хуже, чем через кривую прокладку. Можно подробней про 2 и 3? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 14:39 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_12112Можно подробней про 2 - чем больше прослоек от скретных данных к клиенту, тем больше потенциальных ошибок и ниже безопасность. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 14:40 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_12112и 3 Веб проект это новый отдельный проект дажу у MS с его сильвером. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 14:42 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Аудитор вполне здравомыслящий. проверка двухзвенной системы = Х денег. проверка трехзвенной системы еще = Х+У денег. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 14:44 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Petro123guest_12112Можно подробней про 2 - чем больше прослоек от скретных данных к клиенту, тем больше потенциальных ошибок и ниже безопасность. п2 был про параллельную работу нескольких пользователей с одним объектом. Как без сервера приложений всех пользователей просматривающих какой то объект уведомить о том что объект вдруг кем то изменен? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 15:00 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_12112п2 был про параллельную работу нескольких пользователей с одним объектом. Как без сервера приложений всех пользователей просматривающих какой то объект уведомить о том что объект вдруг кем то изменен? т.е. как? Такой простой вопрос? - куча вариантов: 1) Нужно назвать не объект - а Бизнес объект (сущность). Т.к. например "Адрес" может быть сущностью, а может быть просто строкой. 2) Напр. Бизнес объект адрес можно заблокировать (методы блокировки). Уведомления в 3-х звенке абсолютно те же что и в двух звенке. -------- Вы уверены что хотите чтобы сервер САМ уведомлял? (нагрузка в разы). А не по требованию клиента? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 15:23 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
ВМоисеев>sereginseregin Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Как Вы это реализуете хранимой процедурой? Если я правильно понял листинг: Из одного списка получаем другой, группируя по округленным координатам (int)(lat * 10 + 0.5) и (int)(lng * 10 + 0.5), указывая флаг blm в true, если записей с похожими координатами > 1 Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2016, 22:54 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
>sereginseregin >Если я правильно понял ... Вы правильно поняли. Спасибо за ответ, Вы мне помогли. С уважением, Владимир ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2016, 00:10 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Petro123guest_12112Можно подробней про 2 - чем больше прослоек от скретных данных к клиенту, тем больше потенциальных ошибок и ниже безопасность. Э-э-э с точностью до наоборот. Количество ошибок не зависит от количества слоев в приложении. А вот безопасность - зависит. Грубо говоря если слой вообще не знает о существовании каких-то секретных данных, то злоумышленник не сможет их получить. А когда все данные в БД и к нему напрямую обращаются из приложения с которым работают пользователи, то получение секретных данных это вопрос выковыривания логина и пароля к БД. :-) Плюс SQL-injection. Это не говоря уже о том, что РМД это ограниченная модель и она не всегда точно отражает предметную область. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2016, 07:06 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
guest_12112Как без сервера приложений всех пользователей просматривающих какой то объект уведомить о том что объект вдруг кем то изменен?Сервер приложений нужен для конкретных целей. Да, вот если нужно уведомлять пользователей об изменении объектов, то он нужен (точнее, без него это реализовать сложнее, и это + в пользу сервера приложений). Хотя, конечно, в реальности такое требование встречается редко. Вот тут мы обходимся без уведомления о изменении ветки, которую смотрим, и слава богу. Соответственно, обычно пользователи работают параллельно с одним объектом и вполне успешно обходятся без уведомлений. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2016, 09:28 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
mad_nazgulА когда все данные в БД и к нему напрямую обращаются из приложения с которым работают пользователи, то получение секретных данных это вопрос выковыривания логина и пароля к БД. :-) Плюс SQL-injection.Если так писать трёхуровневые приложения (то есть у всех один логин с админскими полномочиями, и запросы склеиваются из строк), то безопасности будет ещё меньше, чем в двухуровневом :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2016, 09:48 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Да, вот если нужно уведомлять пользователей об изменении объектов, то он нужен точнее, без него это реализовать сложнееДа неужели!! Какая проблема раз в хх_сек перезапросить какую-нить крошечную табличку со списком измененных объектов ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2016, 12:27 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
всё таки прав Dimitry Sibiryakov во втором посте)) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2016, 12:37 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
ВМоисеевКак Вы это реализуете хранимой процедурой? Проще и эффективнее. Код: plsql 1.
И никакого O(n^2), который Вы ухитрились организовать на O(n) задаче. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2016, 16:17 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
>softwarer, сегодня, 16:17 [19445533] >Проще и эффективнее ... Вы ухитрились ... М-да. Задача несколько сложнее. В базе данных (Oracle) хранятся параметры объекта (сущности, но это не экономика). Параметры каждого объекта "размазаны" по нескольким таблицам. Для предмета обсуждения важно, что объект имеет имя и географические координаты. По запросу пользователя приложение отображает положение объекта на географической карте в виде цветного маркера (геометрическая фигурка). Маркеры могут располагаться "близко" друг к другу и даже перекрывать друг друга. Некоторые объекты настолько рядышком, что имеет смысл заменить их маркеры одним. Формируем: маркер красный, значит здесь несколько объектов, зеленый - один объект. Как на картинке (zoom=4). Для выбора объекта на карте пользователь перемещает мышиный курсор по карте. Как только курсор подходит "близко" к маркеру места, то на карте высвечивается метка с именем объекта. Щелчок мышки и если один объект на маркере (зеленый), то выдаются все его параметры, включая и точные географические координаты, иначе запрос на выбор объекта из списка места с дальнейшем выводом параметров. По запросу пользователя, приложение выдает SELECT к базе, получает выборку и строит список (List<>) объектов. Теперь надо их сгруппировать по мере "близости", поместить в новый список и его уже отобразить разноцветными маркерами на карте. Привел листинг фрагмента своей программы, но sereginseregin показал более изящный вариант. В новой версии сделал так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Если есть интересные идеи, милости прошу. С уважением, Владимир ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2016, 19:43 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
ВМоисеевПо запросу пользователя, приложение выдает SELECT к базе, получает выборку и строит список (List<>) объектов. Теперь надо их сгруппировать по мере "близости", поместить в новый список и его уже отобразить разноцветными маркерами на карте. Приложению не нужно ни группировать, ни помещать. Надо просто попросить у базы готовый список. В вашем случае примерно так: Код: plsql 1.
Приложению останется только вывести готорый результат - конечно, после того, как из него будут выкинуты забавные приплясы с округлением и прочие нелепицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2016, 20:29 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
>softwarer, сегодня, 20:29 [19446081] >Приложению не нужно ни ... Вы не поняли задачи и ошибаетесь. Нужны оба списка. Поэтому получаю первый (исходный) с сервера, второй формирую на рабочей станции. Запрашивать оба с сервера считаю неразумным. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2016, 21:14 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
ВМоисеевЗапрашивать оба с сервера считаю неразумным. Можно, конечно, сделать и так. Но для экономии времени предлагаю отметить, что с вопросом "ну как такое сделаешь в СУБД" получилось "как всегда у трёхзвенщиков, которые не умеют пользоваться СУБД". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2016, 21:24 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
>softwarer, сегодня, 21:24 [19446213] >... которые не умеют пользоваться СУБД. Согласен. Тонкостей Oracle не знаю. Для моего случая на сервере приложений сделал бы запрос на выборку, преобразовал данные (хранить широту и долготу как double крайне расточительно), упаковал и зашифровал преобразованную информацию перед отравлением пользователю. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2016, 21:45 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Прошу прощение за легкий оффтоп, но тема отчасти соответствует и моему вопросу: какую систему безопасности и управления инфраструктурой вы посоветуете? Работа предполагается немалая, связана с отдельно взятым производством. По перечню необходимых работ, приблизительный список здесь:konsom.ru/solutions Буду рад любой информации (как по системе, так и по рекомендации специалистов). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2016, 14:59 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Марк36но тема отчасти соответствует и моему вопросу заводите новую тему. Где вы увидели схожесть тем? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2016, 19:02 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Была у нас трехзвенка, но каким-то чудесным образом винда, стоявшая на сервере, регулярно получала по сети обновления. т.е. даже при трехзвенке есть официальные лазейки, о которых прекрасно знают хакеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2016, 11:21 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Sergey_rbвинда, стоявшая на сервере, регулярно получала по сети обновления. админа поменяйте ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2016, 11:47 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Sergey_rbБыла у нас трехзвенка, но каким-то чудесным образом винда, стоявшая на сервере, регулярно получала по сети обновления. Звучит как "у нас был водопровод но в почтовом ящике всё равно каким-то чудесным образом появлялись газеты". Админа-то, как раз, не факт, что надо менять. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2016, 14:01 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovSergey_rbБыла у нас трехзвенка, но каким-то чудесным образом винда, стоявшая на сервере, регулярно получала по сети обновления. Звучит как "у нас был водопровод но в почтовом ящике всё равно каким-то чудесным образом появлялись газеты". Админа-то, как раз, не факт, что надо менять. +1 )) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2016, 15:21 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
Petro123, Винда, вопреки регламенту получающая обновления — проблеиа админа, а не водопроводчика — смейтесь дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2016, 22:54 |
|
Подскажите с технологиями.
|
|||
---|---|---|---|
#18+
ИзопропилВинда, вопреки регламенту получающая обновления Откуда ты протелепатил "вопреки регламенту"? Даже если тот сервер стоял внутри защищённой зоны, он мог (и должен был) получать обновления через WSUS в ДМС. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2016, 14:05 |
|
|
start [/forum/topic.php?all=1&fid=33&tid=1547342]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 171ms |
0 / 0 |