|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
примерчик БЛ на SQL в 2-х звенке http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1051867&msg=14946648 http://www.sql.ru/forum/1051867-2/zadacha-na-nakopitelnyy-itog?mid=14951113#14951113 Код: sql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
пусть будет Много методов)...хороших и разных))....аминь. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 10:56 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей КPetro123пропущено... Дык приведи свою бизнес-логику. ОРМ делает из таблицы Заказы на 50 млн. - коллекцию на 50 млн. Отчёты это отдельная тема, которая ОРМ не по зубам. Тут недавно было обсуждений. Приводил пример реализации на EF. в качестве примера как не нужно делать бизнес-логику хорошо подойдет, буду студентов учить. Или это с этой целью и приводилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 11:34 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123Алексей К Тут недавно было обсуждений. Приводил пример реализации на EF. действительно) Портянка не для слабонервных. Тут палка о двух концах. Если пытаться писать запросы к РСУБД по ООП, то процедуры не должны быть портянками ((с) МСУ) У меня на работе было даже требование - размер не больше окна монитора)). Прикладной код отличается от системного. "Портянка" в прикладном коде - нормальное явление. Petro123А на SQL код всё таки более лаконичный при работе с множествами и кортежами записей.Стандартная фраза для подобного рода обсуждений. Обратите внимание, в том примере ООП используется только в системных целях. Прикладная задача решена в процедурном стиле. Работа с множествами в LINQ ничем не отличается от SQL. Но в отличие от SQL, в нём присутствует ряд полезных возможностей, вроде ассоциаций (альтернатива join) и оператора let (альтернатива вложенным запросам). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 17:28 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmАлексей Кпропущено... Тут недавно было обсуждений. Приводил пример реализации на EF. в качестве примера как не нужно делать бизнес-логику хорошо подойдет, буду студентов учить. Или это с этой целью и приводилось?Мне кажется, данный пример заслуживает, как минимум, конструктивной критики. Если Вам по делу сказать нечего - лучше промолчать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 17:30 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей Кiscrafmпропущено... в качестве примера как не нужно делать бизнес-логику хорошо подойдет, буду студентов учить. Или это с этой целью и приводилось?Мне кажется, данный пример заслуживает, как минимум, конструктивной критики. Если Вам по делу сказать нечего - лучше промолчать. я по делу сказал, конструктивно. Мне всегда такие "портянки" хочется приводить в качестве примеров бессмысленного, беспощадного и требующего невероятных усилий в сопровождении подхода к реализации прикладной логики. Простая и конструктивная критика. Ничего личного как говориться, у меня не было цели вас задеть именно подколками. Просто у меня кардинально другой взгляд по построение прикладных систем, а вы дали хороший пример для сравнения. Так уж получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 17:40 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К"Портянка" в прикладном коде - нормальное явление. с точностью до наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 17:41 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmАлексей Кпропущено... Мне кажется, данный пример заслуживает, как минимум, конструктивной критики. Если Вам по делу сказать нечего - лучше промолчать. я по делу сказал, конструктивно. Мне всегда такие "портянки" хочется приводить в качестве примеров бессмысленного, беспощадного и требующего невероятных усилий в сопровождении подхода к реализации прикладной логики. Простая и конструктивная критика. Ничего личного как говориться, у меня не было цели вас задеть именно подколками. Просто у меня кардинально другой взгляд по построение прикладных систем, а вы дали хороший пример для сравнения. Так уж получилось.Просто я под словом "конструктивно" понимаю несколько иное. Например: "почему бы не заменить магические числа константами", или "методы слишком большие, я бы произвёл выделение метода". Что-то в этом роде... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 17:47 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmАлексей К"Портянка" в прикладном коде - нормальное явление. с точностью до наоборот.Если метод должен вернуть таблицу с 20+ полями - без "портянки" никак. Вероятно, у Вас просто другие задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 17:49 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей Кiscrafmпропущено... я по делу сказал, конструктивно. Мне всегда такие "портянки" хочется приводить в качестве примеров бессмысленного, беспощадного и требующего невероятных усилий в сопровождении подхода к реализации прикладной логики. Простая и конструктивная критика. Ничего личного как говориться, у меня не было цели вас задеть именно подколками. Просто у меня кардинально другой взгляд по построение прикладных систем, а вы дали хороший пример для сравнения. Так уж получилось.Просто я под словом "конструктивно" понимаю несколько иное. Например: "почему бы не заменить магические числа константами", или "методы слишком большие, я бы произвёл выделение метода". Что-то в этом роде... ок. Я бы не стал использовать ООП портянки для реализации простейших прикладных задач. Для того, чтобы в базе данных удалить запись достаточно написать Код: sql 1.
к примеру, а не warning Код: 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. 29. 30. 31. 32. 33. 34. 35.
а если завтра понадобиться удалять по другим ключам, то этот снежный ком будет расти не по дням, а по часам. Так и рождаются монстры, которые потом требуют невероятных усилий в поддержке. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 18:03 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей Кiscrafmпропущено... с точностью до наоборот.Если метод должен вернуть таблицу с 20+ полями - без "портянки" никак. Вероятно, у Вас просто другие задачи. у меня такие же задачи. Просто я их решаю другими способами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 18:04 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К, просьба не воспринимать мои взгляды на это все, как попытку выставить именно Ваш код в каком-то качестве. Я только саму идеологию рассматриваю ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 18:07 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafm, скорее всего уэтих ЕВ и т.д. не хватает мозгов для номалього удаления связанных типов ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 18:10 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmАлексей Кпропущено... Просто я под словом "конструктивно" понимаю несколько иное. Например: "почему бы не заменить магические числа константами", или "методы слишком большие, я бы произвёл выделение метода". Что-то в этом роде... ок. Я бы не стал использовать ООП портянки для реализации простейших прикладных задач. Для того, чтобы в базе данных удалить запись достаточно написать Код: sql 1.
к примеру, а не warning Код: 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. 29. 30. 31. 32. 33. 34. 35.
а если завтра понадобиться удалять по другим ключам, то этот снежный ком будет расти не по дням, а по часам. Так и рождаются монстры, которые потом требуют невероятных усилий в поддержке.Там циклическая зависимость между таблицами. MSSQL в таком случае каскадное удаление делать не умеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 18:22 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К, как я вижу и ЕФ не умеет, а то бы ты не читал в контекст всякую белиберду только для удаления ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 18:41 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
ViPRosАлексей К, как я вижу и ЕФ не умеет, а то бы ты не читал в контекст всякую белиберду только для удаленияЗачем EF уметь каскадное удаление, если это умеет СУБД? Впрочем, мне не нравится, что в EF сохранение только через UnitOfWork. Считаю это его недостатком. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 19:44 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей КViPRosАлексей К, как я вижу и ЕФ не умеет, а то бы ты не читал в контекст всякую белиберду только для удаленияЗачем EF уметь каскадное удаление, если это умеет СУБД? Впрочем, мне не нравится, что в EF сохранение только через UnitOfWork. Считаю это его недостатком. СУБД может много чего не уметь (другие требования), а вот ты можешь в своих классах делать что хошь, так? но в таком случае долбаный маппер должен делать все, что ты делаешь в коде со своими классами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 19:49 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
>MasterZiv, сегодня, 01:46 [14959694] >...Но кол-во звеньев на самом деле никак не связано с безопасностью ... >Ещё раз, по буквам: ВООБЩЕ НИКАК НЕ СВЯЗАНО. Я достаточно долго размышлял над этим вопросом и пришел к прямо противоположному - в некоторых системах количество звеньев может существенно усилить безопасность. Рассмотрим 2 системы: 1. 3-х звенку, где сервер приложений (СП) базируется на IIS (WCF сервисы) и расположен на 2-м звене, считая от клиента. Здесь СП имеет прямой выход в незащищенную сеть и значительную функциональную избыточность. Здесь выполняются криптооперации. 2. Многозвенку прототип . Здесь сервера приложений находятся на 4-ом уровне по отношению к клиенту. Здесь сервера коммуникаций (СК) (WCF сервисы) также имеют прямой выход в незащищенную сеть, но их функциональность примитивна и полностью контролируется. И никаких криптоопераций в этом звене. "Положить" 3-х звенку, можно не только "положив" сервер базы данных, но и сервер приложений. Когда начинал проектировать прототип, было достаточно много сообщений о "дырах" и IIS. Перегнать в нештатную СК достаточно сложно, весь его функционал заключается в "перекладывании" информационного пакета. Как то так. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 22:38 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей Кiscrafmпропущено... в качестве примера как не нужно делать бизнес-логику хорошо подойдет, буду студентов учить. Или это с этой целью и приводилось?Мне кажется, данный пример заслуживает, как минимум, конструктивной критики. Если Вам по делу сказать нечего - лучше промолчать. Критика простая. Где же простота и скорость разработки, за которую ты так ратовал в топике, где писал, что тебе репозитории не нужны? Что дают эти много километровые портянки? Если бы были нормальные view в БД, то все твои сервисы можно было бы генерить с помощью кодогенераторов, где была бы одна сточка с вызовом метода обобщенного репозитория. В некоторых фреймворках подобные сервисы уже в комплекте и этого не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 23:45 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
ВМоисеев>MasterZiv, сегодня, 01:46 [14959694] >...Но кол-во звеньев на самом деле никак не связано с безопасностью ... >Ещё раз, по буквам: ВООБЩЕ НИКАК НЕ СВЯЗАНО. Я достаточно долго размышлял над этим вопросом и пришел к прямо противоположному - в некоторых системах количество звеньев может существенно усилить безопасность. Рассмотрим 2 системы: 1. 3-х звенку, где сервер приложений (СП) базируется на IIS (WCF сервисы) и расположен на 2-м звене, считая от клиента. Здесь СП имеет прямой выход в незащищенную сеть и значительную функциональную избыточность. Здесь выполняются криптооперации. 2. Многозвенку прототип . Здесь сервера приложений находятся на 4-ом уровне по отношению к клиенту. Здесь сервера коммуникаций (СК) (WCF сервисы) также имеют прямой выход в незащищенную сеть, но их функциональность примитивна и полностью контролируется. И никаких криптоопераций в этом звене. "Положить" 3-х звенку, можно не только "положив" сервер базы данных, но и сервер приложений. Когда начинал проектировать прототип, было достаточно много сообщений о "дырах" и IIS. Перегнать в нештатную СК достаточно сложно, весь его функционал заключается в "перекладывании" информационного пакета. Как то так. С уважением, Владимир. WCF сервисы в IIS никто уже давно не хостит. Какая может быть безопасность, если данные гоняются по сети в открытом виде? Зачем нужны свои мультики, если шифрование и так есть в комплекте? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 23:55 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
SeVaЧто дают эти много километровые портянки? Если бы были нормальные view в БД, то все твои сервисы можно было бы генерить с помощью кодогенераторов, где была бы одна сточка с вызовом метода обобщенного репозитория.Если бы были "нормальные view в БД", "портянка" была бы в T-SQL скриптах. А это, на мой взгляд, хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 09:24 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей КSeVaЧто дают эти много километровые портянки? Если бы были нормальные view в БД, то все твои сервисы можно было бы генерить с помощью кодогенераторов, где была бы одна сточка с вызовом метода обобщенного репозитория.Если бы были "нормальные view в БД", "портянка" была бы в T-SQL скриптах. А это, на мой взгляд, хуже. это лучше на самом деле. Портянка хороша если она хорошо прилегает к ноге. Тем более в СУБД она намного короче получается и без дополнительных прокладок. Вытягивание на средний уровень таких операций только ради вытягивания ничего не дает, кроме накладных расходов ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 10:45 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
>SeVa, вчера, 23:55 [14962082] >WCF сервисы в IIS никто уже давно не хостит. Если Вам не трудно, то Google, запрос "wcf сервис iis" >Какая может быть безопасность, ... Это Вы о чем? >Зачем нужны свои мультики ... О каком комплекте идет речь? С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 11:37 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmАлексей Кпропущено... Если бы были "нормальные view в БД", "портянка" была бы в T-SQL скриптах. А это, на мой взгляд, хуже. это лучше на самом деле. Портянка хороша если она хорошо прилегает к ноге. Тем более в СУБД она намного короче получается и без дополнительных прокладок. Вытягивание на средний уровень таких операций только ради вытягивания ничего не дает, кроме накладных расходовНу давайте, я попробую ещё раз сформулировать преимущества и недостатки: Преимущества: 1. Строгая типизация. Тесная интеграция с другими частями проекта. 2. Возможности рефакторинга IDE Visual Studio. 3. Оператор let удобнее вложенных запросов. 4. Ассоциации удобнее join. 5. Возможность использования средств ООП для организации прикладного кода. Недостатки: 1. Неудобный синтаксис для left join. С другой стороны, в основном используются ассоциации, join приходится делать достаточно редко. Но сам факт неприятен. :-) 2. Накладные расходы на преобразование expression tree => SQL и DbDataReader => entity object . В Entity Framework 6 это оптимизировано, проблем с производительностью по этим причинам больше нет. Раньше были. 3. Сохранение только через UnitOfWork. Ну в крайнем случае придётся написать SQL сохранения самому, если сторонние средства не устраивают. Особой проблемы тут тоже не вижу. зы: У меня есть проект, содержащий ~3 МБ T-SQL скриптов с прикладной логикой. Работать с ними крайне неприятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 11:41 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmАлексей Кпропущено... Тут недавно было обсуждений. Приводил пример реализации на EF. в качестве примера как не нужно делать бизнес-логику хорошо подойдет, буду студентов учить. Или это с этой целью и приводилось? Это не бизнес логика, это элементарный запрос. А-ля курам на смех. Вот бизнес логика: http://ru.wikipedia.org/wiki/Бизнес-логика Бизнес-логика — в разработке информационных систем — совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика — это реализация правил и ограничений автоматизируемых операций. Является синонимом термина «логика предметной области» (англ. domain logic). Проще говоря, бизнес-логика — это реализация предметной области в информационной системе. К ней относятся, например, формулы расчёта ежемесячных выплат по ссудам (в финансовой индустрии), автоматизированная отправка сообщений электронной почты руководителю проекта по окончании выполнения частей задания всеми подчиненными (в системах управления проектами), отказ от отеля при отмене рейса авиакомпанией (в туристическом бизнесе) и т. д. Твой "запросик" ну никак не тянет на "реализация предметной области". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 13:06 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123МСУВо-первых, это не логика. Во-вторых, есть орм. В-третьих, отчеты это вообще отдельная тема. Дык приведи свою бизнес-логику. ОРМ делает из таблицы Заказы на 50 млн. - коллекцию на 50 млн. Отчёты это отдельная тема, которая ОРМ не по зубам. Выше привел, могу привести реальным кодом. По сути это будет реализация метода шаблона репозитория , которая через IoC доступна контроллеру. Про отчеты я вообще ничего не говорил, это отдельная тема, которой управляет сервер отчетов. В разрезе майкрософта пусть это будет отдельный SSRS и SSAS. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 13:09 |
|
|
start [/forum/topic.php?fid=33&msg=38425512&tid=1547650]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
143ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 540ms |
0 / 0 |