Как стать автором
Обновить

Комментарии 39

Лет 5-6 назад пользовался их контролами, потом решил отказаться, ибо не охота было с собой тягать лишние библиотеки. Помню прикольная штука была — смена тем оформления.
Обновление под WinForms — супер! Рядом с такими обновлениями очень смешно смотрится возможность добавить тайтл на дешборд. Киллер фича:-)
VCL больше не будет обновляться?
Будет, конечно. Выйдет чуть позже.
Верните express редакцию к жизни для CodeRush!
Алексей, 22 года, а уже в DevExpress! Отличный рост!
По поводу XAF: уж очень как-то сомнительно смотрятся изменения касательно подсистемы безопасности, касательно условий доступа к критериям. По-моему, впереди ожидается изменение подхода.
Иван, спасибо за отзыв, но только пожалуйста не говорите про это нескольким десяткам наших заказчиков, которые хотели эту возможность:-)
Если серьезно, то хотел бы поправить вас в том (похоже на опечатку), что новый функционал предназначен именно для защиты определенных (не всех сразу) полей объекта по критерию. Поясню: раньше уже была возможность запретить доступ к объекту по критерию (ObjectAccessPermission), но эта защита распространялась на все его поля. Также была возможность контроля доступа на уровне определенных полей объекта (MemberAccessPermission), но это была безусловная защита для всех записей, без возможности задать исключение с помощью критерия. Так вот, новый функционал сочетает в себе ранее описанные возможности и дает пользователю больше гибкости и удобства при разграничении прав доступа, например чтобы не городить дополнительные роли для Васи, который не смог бы редактировать только поле Price в зависимости от какого-нибудь бизнес правила. Есть конечно и куча других сценариев, где это улучшение было бы полезным. Надеюсь ценность стала чуть более очевидной. Если нет, было бы интересно услышать от вас побольше про трудности с данным подходом.

да-да, так и есть, опечатался.
Когда лоб-в-лоб столкнулся с New SecuritySystem, предполагал, что она работает несколько иначе (теперь это относится ещё и к контролю доступа member'ов): объект можно изменить, но контроль осуществляется по состоянию объекта, хранящегося в БД. В текущей же реализации стоит изменить какое-то поле, например типа bool, которое не соответствует критерию доступа на запись (до изменения соответствовало), то всё, запись запрещена. Приходится городить условия через модуль ConditionAppearance. А хотелось бы, чтобы защелка срабатывала после фактического изменения объекта в источнике хранения данных без прибегания к ConditionAppearance, ибо контроль доступа на уровне данных и на уровне представления всё же разные вещи, и вот что-то внутри подсказывает, что так не должно быть ))
Когда лоб-в-лоб столкнулся с New SecuritySystem, предполагал, что она работает несколько иначе (теперь это относится ещё и к контролю доступа member'ов): объект можно изменить, но контроль осуществляется по состоянию объекта, хранящегося в БД. В текущей же реализации стоит изменить какое-то поле, например типа bool, которое не соответствует критерию доступа на запись (до изменения соответствовало), то всё, запись запрещена.

Мы здесь полностью копируем поведение системы безопасности Windows. Представьте, что у вас запрещен доступ на запись в каталог файлов с именем autorun.exe. Логично будет предположить, что нельзя нарушить это правило путем переименования существующего файла в этом каталоге.
тогда хотелось бы ожидать ещё одно поведение а-ля windows: явно запрещать доступ, а не только разрешать )
Спасибо, Иван. Были уже подобные предложения от других заказчиков, но время реализации пообещать не смогу.
есть у XAF проблема — это выполнение проверок безопасности на основе запроса с клиента в базу. Никто не мешает хакнуть соединение с сервером БД. Я не уверен что безопасность можно перенести (комфортно — используя тот самый редактор что на скрине) на middleware слой (хотя использовать его уже год как можно) (не разбирался особо)… В целом мы XAF юзали (и вы о нас даж писали) уже хрен знает скока лет, но местами решения получались из цикла «через жопу к звездам». Так например, проблему хака сессии мы решали запросами только на view базы, которые фильтровали данные сами (юзер коннектится к базе под своим логином), а запись и обновление данных делали через хранимки… вот в 1С как я знаю есть полноценный сервер запросов, и все запросы безопасности перенесены туда…

а еще есть у XPO проблемки с oracle odp.net провайдером (текут сессии, нет нормальной поддержки транзакций)… потом отпишу в суппорт.
>>Никто не мешает хакнуть соединение с сервером БД.
Мм… так есть же у ксаф свой сервер, на котором собственно и происходят проверки безопасности. Т.е. клиентское ксаф приложение соединено не напрямую с базой, а с сервером и клиент не получает вообще нефильтрованные данные. Это опция как раз подходит для таких серьезных сценариев. Единственное, что этот сценарий с сервером еще в процессе шлифовки, чтобы обеспечить более лучшую производительность, а так все должно работать.

>>В целом мы XAF юзали (и вы о нас даж писали)
Дмитрий, к сожалению, слету не припомню вас по одному имени. Можете кинуть название компании в личку или прямо тут?

>>а еще есть у XPO проблемки с oracle odp.net провайдером (текут сессии, нет нормальной поддержки транзакций)… потом отпишу в суппорт.
Будем очень признательны за подробности в тикете в www.devexpress.com/sc
>> клиентское ксаф приложение соединено не напрямую с базой, а с сервером и клиент не получает вообще нефильтрованные данные

Я об этом писал и щюпал этот самый чудо сервер. Но когда я его щупал (первая версия наверно) непосредственно логика проверок безопасности оставалась на клиенте (та, которую прописываешь в редакторе (собственно хоть свой SecuritySystem городи)). Конечно «подфильтровать» данные можно там, но не так комфортно. Хотя может все поменялось уже…

Вообще в таких системах (не только xaf) не хватает указанного мной сценария: читаем с view или хранимки (с хранимками, конечно, гемморойнее в разы в части передачи фильтров-группировок и т.д.), пишем только через хранимку. База сама решит что можно, а что нельзя ибо обладает куда как большими познаниями касательно данных. Да и DBA должны работать ж).
таким образом вы привязываетесь к одной-единственной СУБД без возможности легкого переноса. Хотя обрастание такими корнями должно иметь под собой сильное обоснование
И часто вы в тёплом, ламповом энторпрайзе меняете базу данных?) Будьте реалистами — это нафиг никому не надо в реальном мире. А еще подумайте касательно производительности — я на 146% уверен что DBA построит запрос куда оптимальнее автогенератора.
я на 146% уверен что DBA построит запрос куда оптимальнее автогенератора.


в этом сомневаться не приходится.

И часто вы в тёплом, ламповом энторпрайзе меняете базу данных?

Бывало пишется универсальное решение, не привязанное к конкретному заказчику. А дальше уже выбираешь под стать его мощностям. В более вырожденных случаях да, приходится врастаться корнями. Конечно, премущества, озвученные вами, никто не отменял
Все проверки системы безопасности в сценарии с отдельным сервером происходили и происходят на стороне сервера. Вот тут можно почитать больше.
Хочу заметить также, что для различных нужд заказчиков и удобства развертывания есть еще и «клиентский» режим работы системы безопасности aka Client-Side Security — Integrated Mode. Например, это удобно в сценарии с ASP.NET приложением (оно уже само по сути клиент-серверное) ну или когда простой сценарий и нет таких требований по безопасности, чтобы не возиться с отдельным сервером и ящиком для него.
По вашему описанию я понял как раз, что вы и трогали этот Integrated Mode.

Про view или хранимки, мое мнение, что в таких сценариях вам вообще ксаф не нужен и лучше все сделать без него. Ну или по-другому: вы не поимеете всех его «плюшек» с таким подходом. Все таки это ORM-based фреймворк, где подразумевается оперирование бизнес сущностями, представленными CLR объектами, а не таблицами и др. объектами базы напрямую через SQL. Точки-то расширения для вас мы всегда найдем, но боюсь получится опять «через жопу к звездам»:-)
Резюмируя, мы не особо «затачивали» фреймворк под этот (неосновной) сценарий. Если очень сильно нужно, то подлезть можно, но я бы не рекомендовал. Спасибо за отзыв, как бы там ни было, будем держать в голове ваше пожелание.
Спасибо за pdf viewer
Денис, Алексей, скажите, в планах DevExpress есть перестроение XAF на рельсы WPF и/или ASP.NET MVC? Мне кажется с легкой расширяемостью последнего должно получиться отличнейшее решение под стать трендам промайкрософтовского программостроения.
Кстати, за RealTimeDataSource отдельное спасибо! Отличный концепт оборотно-сальдовой ведомости! Как раз сейчас на работе запиливаем онную с использованием ваших же компонент, realtime на очереди ))
wpf тормозное зло. Вы попробуйте pivot теже DX -вые с бооольшим количеством данных…
asp.net есть, правда на webForms, но компоненты mvc-шные у dx построены поверх веб формовых (еще и жутко кривые местами)… в целом там не особо asp.net mvc нужен имхо.
c wpf непосредственно никогда не имел дела, но наслышан. А привел его в пример как более молодую, нежели WinForms, технологию. Что имеется asp.net-решение тоже в курсе, но речь как раз шла о переводе XAF на рельсы MVC-ного подхода. Предполагаю, раз фреймворк уже давно развивается, дело это не из простых, но чем чёрт не шутит
смысл? Я для XAF может штук 50 кастомных контролов писал (и под веб и под вин), а в целом оно для того и надо — абстракция ж. Что привнесет использование asp.net mvc в XAF?
первое, что приходит в голову, это избавление от всего наследия, что тянется за веб-формами. Гораздо удобнее оперировать теми слоями, что приносит MVC-подход, нежели оставаться с веб-формами. Тем более сами же говорите абстракция, кастомные контролы. Где их проще и красивей реализовать? И при этом хотелось бы сохранить всю ту мощь фреймфорка, что есть на текущий момент. Правда, вполне уверен, что у вас есть свой взгляд на эту сторону вопроса, более матёрый что ли
проблема в том что вы не избавитесь не от чего — сами компоненты devexpress mvc построены просто как адаптеры для asp.net MVC, прикрывая ширмой webforms контролы. Отсюда местами ахтунг запросы компонент, с гонянием туда-сюда viewstate-а и т.д. Касательно где писать проще — пофигу, я пишу на mvc и вставляю в xaf приложения контролы без особого геморроя.
правильно ли я понял, что текущие ваши решения построены на xaf, но с инъекцией mvc. Может, поделитесь опытом? Конкретно именно как вы это делаете
mvc-шные у dx построены поверх веб формовых (еще и жутко кривые местами)

мы два года назад начали использовать mvc-шные, они были сырые, их обещали доработать
до сих пор ничего не изменилось: контролы кривые, хелп кривой, с муками выпиливаем их из проекта
впечатления от девекспреса остались ужасные
По WPF клиенту, не планировали пока. Сугубо мое личное мнение: для конечного пользователя типичное бизнес приложение будет выглядеть также, да и делать будет то же самое, только возможно будет чуть медленнее + выше требованиями к железу, что может быть уже чувствительным для бизнеса.

Но есть кое-какие планы освежить Веб (не факт, что ASP.NET MVC) или подружить ксаф с PhoneJS. Конечно для этого мы еще хотим усилить серверную часть, так как без хорошего сервера (security, workflow, audit, validation, etc.) сейчас никуда (говорю со взглядом на мобильные клиенты).
Щупал демо, скачанное с вашего сайта на прошлой неделе. Есть пара вопросов:
1) Появится ли в Spreadsheet-контроле протягивание ячеек с автозаполнением, аналогичное тому, что есть в Excel (по крайней мере, у меня не получилось такое сделать)?
2) Предполагается ли в будущем поддержка Google- и Яндекс-карт? Я так подозреваю, есть какие-то трудности с лицензированием?
1) Появится конечно, просто не получается сделать всё и сразу.
2) На данный момент нет планов на поддержку google и yandex карт, и вы правы — это связано с лицензированием. Но мы предоставляем вам возможность сделать свой собственный провайдер карт.
А какие чарты (Win, ASP, WPF, SL) вы используете? Мы в каждой версии понемногу улучшаем производительность и, я думаю, вам имеет смысл попробовать 13.1 и посмотреть, удовлетворяет ли вас текущая скорость работы или нет. Если нет — присылайте нам свой тестовый проект на www.devexpress.com/sc и мы обязательно посмотрим, можно ли там что-то оптимизировать.
WPF и Win я пробовал, брал демо версию 12.1. Скажем так: по количеству точек они меня устроили, но скорость перерисовки была не очень, плюс они притормаживали основной тред с интерфейсом. В итоге я остановился на SciCharts. Но у вас плюшек гораздо больше в общем плане. Насчет прислать тестовый проект на www.devexpress.com/sc — хорошая идея.
Я бы внёс маленькую поправку в первое предложение —
Дизайн Windows 8 пришёлся по душе немногим пользователям и разработчикам, но потребность в приложениях для классического десктопа по-прежнему есть.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий