• Чем занимается Product Marketing Manager в JetBrains
    0
    Эта культура закладывалась и проповедовалась где-то с 2001 отцами-основателями. По ходу роста, культивировалась дополнительно через других людей, разные вики, общение и тд. — ну и отцы не спят до сих пор, также иногда есть и возникают проблемы — что греха таить. В частности, уже как пару лет нанят отдельный «игил*-коач», как ласково называем тренера.
    * не имеет отношения к запрещенной организации — просто по корявому произношению Agile:-)
  • Чем занимается Product Marketing Manager в JetBrains
    +1
    Ага, благодарю за уточнение. У нас стендапы и обертки в виде Scrum — дело частое, но добровольное — каждая команда решает сама как лучше организовать работу. Вот приверженность принципам Agile и особенно следование XP уже не опция.
  • Чем занимается Product Marketing Manager в JetBrains
    0
    Ясно, спасибо. Тоже гибко в зависимости от трайба (следуем Spotify модели) и по структуре похоже: также нет отдельных тестеров + техписатели еще под боком, все варятся в одном инфопотоке. В большинстве, обязанности PO по сути выполнял тех-тимлид помимо другой работы сам или с помощью коллег (например, часть PMM задач делегируется евангелистам или маркетинг отделу — без командной работы никуда и тут). Экспериментируем с full-time PO/PM, чтобы ни на что другое не отвлекались.
  • Чем занимается Product Marketing Manager в JetBrains
    0
    Спасибо, что в очередной раз рассказываете про ваш PMM. До этого смотрел ваши посты типа habrahabr.ru/company/JetBrains/blog/294994. Мне особенно интересно, т.к. сам занимаюсь 5+ лет занимаюсь уже подобным для крупного продукта (проблемы все очень близки, типа переключения контекста, тяжесть совмещения — решаю большим делегированием обязанностей в команду или по принципу www.mountaingoatsoftware.com/blog/the-chief-product-owner-on-large-agile-projects последнее время), только называется у нас это «Product Owner/Manager»…

    Также как и в комментарии выше, ваш список обязанностей «Если в целом, я» в очередной раз навел меня на мысль, что Marketing в названии вашей должности лишнее или не основное… Я примерно занимаюсь тем же самым и по целям и по конкретным примерам деятельности, разве что за исключением конференций. Большое вовлечение в разработку (также потому, что у нас клиенты разработчики, как и у вас), общение с пользователями, поддержка. Больше перечислено тут:
    agiletrail.com/2011/11/29/37-tasks-for-a-product-owner%E2%80%99s-job

    Вопрос: у вас есть отдельные Product Owner еще или расскажите поподробнее про устройство/работу продуктовых команд изнутри (помимо маркетинга-евангелизма). Спасибо заранее.
  • Как организовать Performance Review в IT-компании: опыт Badoo
    0
    Спасибо за статью, Алексей (актуальная тема и в нашей компании). Интересно узнать больше о вашей системе:
    1. Насколько подробны ваши общие описания уровней или примеры их проявлений по 3м ценностям компании?
    2. Уточняете ли вы отдельно ожидания по ролям (разработчик, дизайнер, супорт, тестировщик, техписатель и др.)?
    3. Как сотрудники в среднем оценивают ясность и полезность этих критериев?
    Для пояснения того, приведу пример другой известной компании:
    https://labs.spotify.com/2016/02/15/spotify-technology-career-steps/ (см. Expectations for each Step).
    Еще раз благодарю за то, что решили поделиться опытом.
  • На второй линии фронта: наш опыт развития технического отдела поддержки
    0
    Павел, сложности есть всегда, и многое зависит от самих людей. По мне основной секрет успеха — это прививка ценности на уровне компании — люди должны понимать где и для чего они работают (опять же в «Put everyone on the front lines» главе из Rework от 37 signals неплохо расписано). Помимо передачи «кастомер-боли»/сценариев использования разработчикам, у нас само руководство, например, читает каждый отзыв в «Uninstall Feedback» письмах, налажена передача информации напрямую либо через мыл-листы и др. каналы, чтобы все были в курсе интересных вещей/серьезных проблем и могли формировать понимание, принимать решения. OKR опять же — тоже неплохой фреймворк в помощь для лучшего следования ценностям компании/трайба.

    К разработчикам опять, есть такое неплохое летучее выражение: «Пиши код так, как будто в дальнейшем его будет поддерживать сумасшедший психопат-убийца, который знает, где ты живешь». На практике его пробовали реализовывать для некоторых особо важных новых фич даже путем технической поддержки самими разработчиками на протяжении нескольких месяцев после релиза. Так авторы еще лучше могут «прочувствовать» слабые места и оперативно выпускать обновления.
    Удачи!
  • На второй линии фронта: наш опыт развития технического отдела поддержки
    0
    Спасибо за развернутые ответы, Павел!
    По п.4 смотрю у меня там опечатки, простите. Имел ввиду возможные потери пользовательского фидбека (как хорошего, так и плохого) или недонесение его до разработчиков за счет прослойки между клиентов. Уточнял это отдельно, так как мы с этим сталкивались в некоторых командах и эта проблема также описывается в сообществе. Хорошо, что у вас все хорошо:-) и п.5 лишний раз это подтверждает.

    Мои ответы на ваши вопросы:
    1. Да, линии по сути просто сортируют работу на день: все что можно простое — отвечаем сразу, сложные кейсы просто требуют доп. исследований и времени.
    2. Да, сложностей куча, начиная от элементарного владения деловым английским языком и заканчивая чисто мотивационными «не барское это дело» или «я пишу код, а донести у вас все равно лучше получится», а также желанием соблюсти баланс между супортом и разработкой (фичи писать и тесты поднимать тоже ведь надо). В компании у нас огромное внимание уделяется сервису клиентов, и поэтому одним из принципов является «поддержка клиентов — это ответственность ВСЕЙ команды». Поэтому считаю немаловажным, чтобы разработчики и остальные понимали эту ценность на уровне подкорки. Когда будет понимание, тогда и не будет отношения к процессу поддержки как к повинности. Конечно, как писал выше, также необходим базовый тренинг aka «неделя в супорте», который длится у все по разному в зависимости от исходных данных. Во время него разработчик работает в паре с опытным супортистом и делает обычный разбор линий, пишет сам ответы, получает корректировки по ходу дела и знакомится со всеми остальными секретами данного дела. Дальше плотный контроль потихоньку ослабевает. Если все хорошо, то разработчик идет уже сам в бой и со временем присмотр вообще становится не нужен. Некоторым ребятам вообще очень нравится отвечать тикеты так как приятно все таки общаться с живыми пользователями твоей фичи, получать благодарности, что даже просят иногда «подкиньте посупортить, а то давно не было»:-) — так что это вполне может быть дополнительной мотивацией к работе, тем более полезно менять сферу деятельности. Есть также вообще уникальные команды, где поддержку оказывают целиком дежурные разработчики (как писали выше в коментах), но это скорее исключение. В среднем по больнице, привлекать разработчиков мы стараемся только по реальной необходимости, такой как перегрузы или праздники (по договоренности/желанию разработчики могут выйти в праздники вместо коллег супортистов). Для этого координатор группы супорта продукта в начале дня (чтобы ребята могли лучше спланировать свой день и не переключаться лишний раз) выделяет тикеты на спец линию Developers Queue или «девку» — сей процесс мы даже шутливо называем «разогрев девки»:-)

    Так как английский язык очень важен для нашего бизнеса (не только для супорта, но и тупо метод в классе нормально назвать, сделать ревию новой статьи в документации или понять о чем говорили на вебинаре с маркетингом), компания всячески мотивирует сотрудников на улучшение этого навыка (это даже упоминается в оценке уровней) и создает условия для его изучения (компенсации или курсы на базе офиса, причем супорту курсы вообще бесплатно и за счет рабочего времени). В своей команде я лично всегда ставлю поднятие уровня языка на ревию уровней молодым или проблемным ребятам. И это вроде действует — после осознания многие стали ходить на курсы/наняли репетиторов и прокачивают этот навык сами. Дай бог скоро совсем не будет переменных «needRepit» и шуток про «Минаков-стайл»:-)
    Конечно, для ответов на тикеты для всех в компании есть специально обученные знатоки языка aka «корректоры» (местные и нативные), которые помогают с грамматикой, стилями и правильными коннотациями, перед тем как ответ уйдет клиенту.
    Вроде все из основного — почти на статью получилось… Спрашивайте, если что интересует еще!
  • На второй линии фронта: наш опыт развития технического отдела поддержки
    0
    Спасибо за статью, Павел – было очень интересно узнать о вашем опыте, так как уже давно занят в данной области — мы правда продаем и обслуживаем инструменты/компоненты для других разработчиков бизнес приложений. Хотел бы задать несколько вопросов:
    1. Расскажите, сколько в среднем инцидентов (всего, простых L1 и сложных L2) отвечает рядовой сотрудник супорта и Т2 агент, если это не секретная информация?
    2. Как у вас распределяются задачи в работу из очередей (новые и реактивированные инциденты)? В частности, имеет ли каждый супортер всегда в разработке в любой момент времени только одну задачу, которую потом оставляет на себе (AssignedTo)? Берет ли он следующую из общего пула только когда закончит с предыдущей или возможна ситуация, когда на одного сотрудника приходится несколько задач сразу, так как он с ними уже сильно и много разбирался до последней реактивации (ну т.е. личная ответственность vs групповая)?
    3. Интересно, возможно ли в вашей системе прогнозирование доступности ресурсов «на будущее», т.е. предсказание ждущим клиентам в очередях типа «При текущей загрузке специалистов вам ответят примерно через 1ч.30», если в вашем бизнесе такое вообще требуется.
    4. Как у вас происходит передача запросов и проблем клиентов к разработчикам и другим членам команды? В частности, нет ли с таким T2 подходом проблем с утаиванием/потерей важной информации до тех, кто написал исходный код продукта?
    5. Расскажите, пожалуйста, какой еще проактивной работой помимо улучшения качества базы знаний, документации, самого продукта занимаются ваши сотрудники техподдержки.

    В заключение, хотелось бы поделиться опытом нашей компании (live chat я брать не буду, пока только расскажу кратко про online help desk с тикетами или почтой). У нас в 2016 году есть те же L1 и L2, но на них практически работают одни и те же сотрудники техподдержки (aka support developers), которые находятся физически рядом с ответственными разработчиками и др. членами команды. Например, мой текущий трайб XAF и в нем есть сквады WinForms, ASP.NET, Mobile, Core, Security, Analytics, которые имеют разработчиков, супортеров, техписателей, дизайнеров (последние два шарятся на трайб ввиду дефицита данных ресурсов). Отдельных тестеров или отдела QA у нас нет — автоматическое юнит, функциональное и ручное тестирование производится силами всей команды. Специалист супорта в трайбе у нас универсален и может ответить на любой вопрос по продукту/направлению, но в то же время он также старается больше фокусироваться на теме своего сквада, например, Core (эта специализация касается как поддержки так и разработки/тестирования новых фич). В тоже время есть небольшое число очень опытных и мега универсальных спецов. Ответы стараемся давать в течение бизнес дня или в большинстве случаев раньше (<24ч), основной язык общения — английский (по-русски тоже можно пообщаться в приватных тикетах при большой необходимости), есть вторая смена (15.00-00.00) для охвата западного побережья, priority line для некоторых подписок типа Universal, эскалация на руководство. Как и думаю везде, стараемся чтобы на L1 не залеживалось тикетов старше нескольких часов (1-2 в идеальном мире), на L2 попадают сложные кейсы, которые нельзя/быстро сразу ответить (например, какой-то сложный проект для долгой отладки) либо с полной инфой после всех уточнений, чтобы любому можно было сразу взять без усилий и начать разбираться. Например, если прислали проект, надо убедиться, что он собирается и запускается, есть шаги и др. необходимые данные. Супорт должен хорошо разбираться в поддерживаемом продукте с технической стороны, отлаживать проекты клиентов, грамотно и вежливо передавать им решения и др. информацию, искать и оформлять баги со всеми шагами (все баги должны предварительно заверяться вместе с разработчиками), анализировать код и запросы клиентов, быть передатчиком клиентской боли и запросов в команду, взаимодействовать со всеми коллегами, чтобы планировать будущие релизы и улучшать сам продукт, базу знаний и онлайн документацию. «Идеальный» супортер у нас — эдакий чтец, жнец и на дуде игрец, разве что баги сам не фиксит и фичи с тестами не пишет (хотя есть и такие исключения). Конечно, создание такого «швейцарского ножа» требует долгой и серьезной подготовки, но плюсы очевидны и также легче сохранять мотивацию таких специалистов на высоком уровне за счет большого разнообразия задач. Конечно, это все было бы невозможно или сложно, если бы под боком не было друзей-разработчиков, которые вместе с нами слушают customer pain/suggestions (мы стараемся следовать принципу Put everyone on the front lines как в Rework от 37 signals и доводить эту инфу до авторов напрямую), планируют изменения и помогают в сложных случаях или делятся знаниями. Иногда, в случае больших завалов или на праздники, сами разработчики напрямую привлекаются для ответов на тикеты (конечно, каждый предварительно проходит тренинг, чтобы соответствовать стандартам техподдержки компании по вежливости, грамотности, стилю и др.). Вкратце вроде все описал:-)

    P.S.
    Пользуемся вашим продуктом для некоторых marketing задач, спасибо!
  • DevExpress 15.1: что нового и интересного?
    +4
    Спасибо за ваш отзыв. Грид всегда ищет по вхождению в контент или теги. Для булевских колонок там в качестве тегов слова checked/unchecked (или их локализованные аналоги). Собственно, если искать по фрагменту, входящему в оба слова («che») то оба варианта и покажутся в результате.
    Для более тонкого поиска можно применять разные модификаторы, например "-un" — покажет все что НЕ unchecked — т.е. то что checked. Также хочется отметить, что для булевских колонок кажется намного удобнее и быстрее применять не поиск, а фильтрацию по значению через column filter dropdown (пару кликов вместо набора текста). Наконец, если текущее поведение не нравится, то всегда можно отключить поиск для булевских колонок в опциях грида. Надеюсь данная информация будет полезной.
  • Смотрим солнечное затмение вместе
    +6
    Так вот ты зачем отгул на работе сегодня взял — респект!:-)
  • Больше возможностей с новой версией продуктов DevExpress 14.2
    +6
    … и саппорт вместо ответов на вопросы будет просить продлить подписку.

    Хотел уточнить, что сейчас техподдержка по старой версии продукта, которую вы купили однажды, оказывается в обычном режиме, даже если ваша подписка истекла — без помощи с нашей стороны вы точно не останетесь.
    По новой версии тоже можно свободно задавать вопросы в рамках пробного периода для этой самой новой версии.
  • 10 моих любимых функций CodeRush для .NET разработки в Visual Studio
    0
    Да, я упоминал его в п.3.
    Плюс в 13й студии они избавились от модальности этого окна. Эх, еще бы сделали побольше опций, чтобы можно было сильнее урезать результаты поиска (файл, тип, метод и другие, как в кодераше), а не только по @, тогда и правда задумаюсь о переходе. Вообще приятно видеть, как Visual Studio улучшается последнее время… чую вполне можем увидеть какие-то из перечисленных выше «киллфич» в Visual Studio 201NEXT:-)
  • 10 моих любимых функций CodeRush для .NET разработки в Visual Studio
    0
    В начале поста писал про разработчиков, сидящих на Visual Studio 2010 или более ранних версиях, которые не такие продвинутые как последние. Во-вторых, даже если студия умеет что-то, то инструмент может делать это более изящно, хотя не всегда (например, я использую стандартный Shift+F12 (Find All References) вместо кодерашевского диалога).
    Ну и, конечно же, студия с CodeRush тоже умеет много всего, что тут не описано.
  • DXperience 13.1 — Новая версия .NET компонентов от DevExpress
    0
    Забыл дать ссылку, где можно подписаться на новости по данному вопросу: www.devexpress.com/Support/Center/Question/Details/S39311
  • DXperience 13.1 — Новая версия .NET компонентов от DevExpress
    0
    Спасибо, Иван. Были уже подобные предложения от других заказчиков, но время реализации пообещать не смогу.
  • DXperience 13.1 — Новая версия .NET компонентов от DevExpress
    0
    Когда лоб-в-лоб столкнулся с New SecuritySystem, предполагал, что она работает несколько иначе (теперь это относится ещё и к контролю доступа member'ов): объект можно изменить, но контроль осуществляется по состоянию объекта, хранящегося в БД. В текущей же реализации стоит изменить какое-то поле, например типа bool, которое не соответствует критерию доступа на запись (до изменения соответствовало), то всё, запись запрещена.

    Мы здесь полностью копируем поведение системы безопасности Windows. Представьте, что у вас запрещен доступ на запись в каталог файлов с именем autorun.exe. Логично будет предположить, что нельзя нарушить это правило путем переименования существующего файла в этом каталоге.
  • DXperience 13.1 — Новая версия .NET компонентов от DevExpress
    0
    По WPF клиенту, не планировали пока. Сугубо мое личное мнение: для конечного пользователя типичное бизнес приложение будет выглядеть также, да и делать будет то же самое, только возможно будет чуть медленнее + выше требованиями к железу, что может быть уже чувствительным для бизнеса.

    Но есть кое-какие планы освежить Веб (не факт, что ASP.NET MVC) или подружить ксаф с PhoneJS. Конечно для этого мы еще хотим усилить серверную часть, так как без хорошего сервера (security, workflow, audit, validation, etc.) сейчас никуда (говорю со взглядом на мобильные клиенты).
  • DXperience 13.1 — Новая версия .NET компонентов от DevExpress
    0
    Все проверки системы безопасности в сценарии с отдельным сервером происходили и происходят на стороне сервера. Вот тут можно почитать больше.
    Хочу заметить также, что для различных нужд заказчиков и удобства развертывания есть еще и «клиентский» режим работы системы безопасности aka Client-Side Security — Integrated Mode. Например, это удобно в сценарии с ASP.NET приложением (оно уже само по сути клиент-серверное) ну или когда простой сценарий и нет таких требований по безопасности, чтобы не возиться с отдельным сервером и ящиком для него.
    По вашему описанию я понял как раз, что вы и трогали этот Integrated Mode.

    Про view или хранимки, мое мнение, что в таких сценариях вам вообще ксаф не нужен и лучше все сделать без него. Ну или по-другому: вы не поимеете всех его «плюшек» с таким подходом. Все таки это ORM-based фреймворк, где подразумевается оперирование бизнес сущностями, представленными CLR объектами, а не таблицами и др. объектами базы напрямую через SQL. Точки-то расширения для вас мы всегда найдем, но боюсь получится опять «через жопу к звездам»:-)
    Резюмируя, мы не особо «затачивали» фреймворк под этот (неосновной) сценарий. Если очень сильно нужно, то подлезть можно, но я бы не рекомендовал. Спасибо за отзыв, как бы там ни было, будем держать в голове ваше пожелание.
  • DXperience 13.1 — Новая версия .NET компонентов от DevExpress
    +3
    >>Никто не мешает хакнуть соединение с сервером БД.
    Мм… так есть же у ксаф свой сервер, на котором собственно и происходят проверки безопасности. Т.е. клиентское ксаф приложение соединено не напрямую с базой, а с сервером и клиент не получает вообще нефильтрованные данные. Это опция как раз подходит для таких серьезных сценариев. Единственное, что этот сценарий с сервером еще в процессе шлифовки, чтобы обеспечить более лучшую производительность, а так все должно работать.

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

    >>а еще есть у XPO проблемки с oracle odp.net провайдером (текут сессии, нет нормальной поддержки транзакций)… потом отпишу в суппорт.
    Будем очень признательны за подробности в тикете в www.devexpress.com/sc
  • DXperience 13.1 — Новая версия .NET компонентов от DevExpress
    +2
    Иван, спасибо за отзыв, но только пожалуйста не говорите про это нескольким десяткам наших заказчиков, которые хотели эту возможность:-)
    Если серьезно, то хотел бы поправить вас в том (похоже на опечатку), что новый функционал предназначен именно для защиты определенных (не всех сразу) полей объекта по критерию. Поясню: раньше уже была возможность запретить доступ к объекту по критерию (ObjectAccessPermission), но эта защита распространялась на все его поля. Также была возможность контроля доступа на уровне определенных полей объекта (MemberAccessPermission), но это была безусловная защита для всех записей, без возможности задать исключение с помощью критерия. Так вот, новый функционал сочетает в себе ранее описанные возможности и дает пользователю больше гибкости и удобства при разграничении прав доступа, например чтобы не городить дополнительные роли для Васи, который не смог бы редактировать только поле Price в зависимости от какого-нибудь бизнес правила. Есть конечно и куча других сценариев, где это улучшение было бы полезным. Надеюсь ценность стала чуть более очевидной. Если нет, было бы интересно услышать от вас побольше про трудности с данным подходом.

  • «Умные» формы eXpressApp Framework (XAF). Часть 2 — Метамодель UI приложения
    0
    Еще раз спасибо за ваш отзыв, Алексей. Мы мониторим подобные предложения от русскоязычных пользователей, и ваш голос будет несомненно учтен при очередном рассмотрении вопроса о проведении такого мероприятия в России.
    На данный момент, к сожалению, ничего конкретного пообещать не смогу, а только дам ссылку на XAF классы Оливера в Европе и Штатах, так как возможно это пригодится/подойдет кому-то из сообщества.
  • «Умные» формы eXpressApp Framework (XAF). Часть 2 — Метамодель UI приложения
    +2
    Если я правильно понял, то в конце вас интересуют данные об отрендеренных элементах управления (например XtraGrid, XtraLayoutControl и др.). Если так, то они сами позволяют сохранять/восстанавливать свое состояние (расположение, внешний вид и др.) через методы SaveLayourToXXX/RestoreLayoutFromXXX. Вот несколько ссылок на для начала: раз, два, три
    Хочу заметить, что несмотря на это, в основном в нашем фреймворке данные о состоянии элементов управления (например вы подвигали колонки в таблице по-своему) автоматически сохраняются в формат метамодели не используя API SaveLayoutToXXX. Это сделано чтобы 1) не сохранять ничего лишнего, а только важные настройки 2) чтобы можно было потом эти настройки легко менять через визуальный редактор Model Editor. Исключениями являются только случаи, когда предствление настроек в XAF формате будет очень сложным: пример 1.

    Если это не то, расскажите пожалуйста про ваш сценарий поподробнее. Буду рад помочь.
  • Kendo UI — новейший UI-фреймворк от Telerik
    0
  • Как создать приложение, используя eXpressApp Framework
    0
    Я не говорю, что extjs чем-то плох. Как я уже упомянул выше, просто по-моему не совсем корректно сравнивать эти продукты ввиду разных категорий, платформ (к примеру, XAF помимо Веб поддерживает еще и десктоп), используемых технологий (XAF Веб интерфейс сейчас из коробки не оптимизирован для мобильных браузеров) и языков (с XAF ты пишешь в основном на C# или VB.NET, а не на JavaScript), уровней абстракции наконец. Приведу еще пример, если вы захотите сделать типичное Веб бизнес приложение для Интранета наподобие Main Demo вот отсюда, то затратите меньше времени с XAF. Просто потому, что с ним вам не нужно думать о типичных задачах типа доступа к данным, работе с формами, виртуализации, если вдруг нужно показывать тысячи записей в списке. Вы просто фокусируетесь на своей бизнес логике и пишете свои плагины, а уже готовое приложение из всего этого для вас скомпонует фреймворк. Тоже самое на extjs займет сотни строк кода и намного больше времени, хоть возможно и с большей гибкостью.
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +1
    Да еще и туляк!
    Если совсем серьезно, то прежде всего спасибо вам за отзыв.
    Не могли бы пожалуйста отписать в личку или прямо сюда конкретные причины ухода (например отсутствие функционала Х, проблема Y и т.д.), помимо сильного желания использовать возможности WPF/SL, начальник требует? Еще раз спасибо за ваше время.
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +2
    Оливер кстати из Шотландии, а не из Штатов (как вы могли подумать), так что не очень-то далеко от нас:-)
    Ну и он уже давно облюбовал для своих классов Германию — вообще рукой подать:-)
    Насчет своих курсов пока вот никаких конкретных планов, но может быть соберемся когда-нибудь!
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +4
    Сами мы пока не очень-то влезли в бизнес консалтинга, но есть много сторонних компаний делающих тренинги по нашим продуктам.
    Например, наш бывший сотрудник Oliver Sturm профессионально начал заниматься DevExpress тренингами:
    www.oliversturm.com/dxtraining.html
    Оливер особенно силен в XAF и XPO, так как был продукт менеджером по этим продуктам одно время.

    Советую вам стать членов группы DevExpress в LinkedIn, так как там постоянно такие темы проскакивают. Если что, пишите в личку, так как могу дать больше информации.

    А так вообще наша техподдержка всегда рада (и главное бесплатно) направить вас в нужное русло, только обращайтесь, не стесняйтесь!
  • Как создать приложение, используя eXpressApp Framework
    0
    Все таки немножко разные категории у этих продуктов, не говоря уже про используемые технологии и платформы. В комментариях вот к этому посту удалось побольше рассказать про это.
    Как бы там ни было, не исключаю, что логичным развитием текущего XAF ASP.NET Web Forms UI будет нечто подобное.
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +2
    Начал было писать большой развернутый ответ, а в итоге получилась «простынь» формата A4, которую вряд ли кто осилит прочесть — даже коллеги пожурили…

    Поэтому коротко отвечу так: XAF это не конфигуратор или генератор, а чистой воды фреймворк, который по сути дает тебе пустое приложение, для которого ты пишешь свои плагины/модули (например, свои бизнес объекты, контроллеры, команды и т.д.).
    Абсолютно все, что есть сейчас в XAF из коробки — это плагины (например плагин создания нового объекта, плагин удаления, плагин навигации, плагин системы безопасности или управления процессами). Не нравится стандартный плагин, настрой его через доступный API или напиши свой, где все делаешь как хочешь.
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +2
    Прошу прощения, я имел ввиду не саму платформу, а XAF WinForms UI, который совершенствуется за счет улучшений в самих компонентах и также нового функционала в XAF. Например в 12.1 XAF получит улучшенный Tabbed MDI интерфейс аля Visual Studio 2010 UI. А там глядишь какая-нибудь еще оболочка, оптимизированная под сенсорные экраны появится (будет полезно для приложений, используемых в киосках)…
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +2
    Да, в данный момент поддерживается старые-добрые и неумирающие WinForms и ASP.NET Web Forms, которые постоянно совершенствуется. Также конечно не спим и смотрим в WinRT и мобильное будущее. Несмотря на то, что еще в 2009 году сделали прототип WPF UI за неделю (ядро фреймворка не трогалось, поменялась лишь рендережка UI), решили не инвестировать в него дальше, также по причине отсутвующих контролов на тот момент. Почему не планируем WPF/SL UI на ближайшее будущее описано тут.
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +3
    Поймать ошибку в этой строке (она не компилируется) вы должны в блочном тесте, который в идеале у вас должен быть создан еще до создания поля SaleAmount в коде. Например в демке, из которой я скопировал этот кусок, у нас написан вот такой тест:
            [Test]
            public void SaleAmount() {
                IProduct product = ObjectSpace.CreateObject<IProduct>();
                product.Price = 10;
    
                ISaleItem saleItem1 = ObjectSpace.CreateObject<ISaleItem>();
                saleItem1.Product = product;
                saleItem1.Quantity = 10;
    
                IInvoice invoice1 = ObjectSpace.CreateObject<IInvoice>();
                invoice1.SaleItems.Add(saleItem1);
                invoice1.Discount = 10;
                invoice1.DiscountPercent = 15;
    
                ICustomCustomer account = ObjectSpace.CreateObject<ICustomCustomer>();
                account.Invoices.Add(invoice1);
    
                Assert.AreEqual(0, account.SaleAmount);
    
                invoice1.Status = InvoiceStatus.Completed;
                Assert.AreEqual(76.5m, account.SaleAmount);
            }
    

    Если вы не покрываете код блочными тестами по какой-то причине, то ошибка может быть отловлено за счет скрипта, сгенеренного встроенной системой функционального тестирования, поставляемой с фреймворком.
    Иначе, упадет во время исполнения при первом доступе к форме…

    Насчет самого объектно-ориентированного языка критериев (по ссылке есть синтаксис), это не C# и никакой другой язык. Его прототипом является OPath из ObjectSpaces. Он используется у нас во всех без исключения продуктах DevExpress для составления запросов выборки данных и вычисляемых выражений.
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +2
    XAF скорее ближе к фреймворку, чем к конфигуратору, несмотря на достаточно широкие возможности донастройки во время исполнения. Собственно и расчитан он был изначально больше на разработчиков, которые не просто умеют собирать что-то из конструктора, а используют TDD, BDD, наконец проверяют качество созданных приложений с помощью функциональных тестов, и просто хотят съэкономить время на таких рутинных операциях как реализация доступа к данным, ручное создание форм, реализации клиент-сервера, создание систем безопасности, контроля данных, отчетов, аналитики и др., т.е. те задачи, с которыми они столкнуться при создании любого нормального бизнес приложения уровня предприятия. И никто этим разработчикам не мешает настраивать существующие модули, создавать свои собственные модули и надстройки над фреймворком типа Galaktika Ranet XF и eXpand.

    Как бы там ни было раньше, в последние годы наметился устойчивый тренд к снижению порога вхождения, который принесет еще более продвинутые визуальные дизайнеры (например в добавок к исходным database-first и code-first будет еще и model-first (в 12.1) для облегчения создания бизнес сущностей), конструкторы (например конструктор «дашбордов») и др.
  • «Умные» формы eXpressApp Framework (XAF). Часть 1
    +5
    В первую очередь фреймворк предназначен для создания реальных (продакшин) бизнес приложений. Вот вам пару примеров продакшин приложений на XAF от российских компаний: раз, два.
    XAF в полном смысле этого слова является «фреймворком», т.е. полностью расширяемый под различные требования разработчика (в том числе и во время исполнения), так что вам возможно даже не придется лезть в его исходники. Как бы там ни было, полные исходные коды DevExpress компонент и самого фреймворка идут в поставке.
  • Как создать приложение, используя eXpressApp Framework
    +3
    Буду вам очень признателен, если напишете поподробнее про первые две проблемы в личку.
    Если я правильно понял проблему c merge-м (т.е. сложности при работе нескольких разработчиков с одним XAFML файлом), то она была исправлена начиная с версии 10.1, когда была переписана система генерации метаданных. Если нет, то пожалуйста опишите поподробнее, если есть время и желание.
    Насчет XPO, вроде есть куча работающих приложений использующих его в ASP.NET, взять тот же самый наш главный сайт или Support Center, XAF Web UI вроде тоже работает без проблем. Если писали про эту проблему в нашу техподдержку, хорошо бы взглянуть на номер заявки. Буду рад помочь.
  • Как создать приложение, используя eXpressApp Framework
    +2
    Я вас понимаю… Очень много слышал подобных отзывов от других людей, особенно когда общались у нашего стенда на TechEd Russia осенью. Видимо каждый разработчик в своей жизни хочет написать свой собственный фреймворк (что с нами и случилось).

    ЗЫ:
    Первый релиз XAF вышел в 2007 году. До этого год-полтора были общедоступные альфа и бета версии.
    Фреймворк полностью построен на наших WinForms и ASP.NET компонентах.
  • Как создать приложение, используя eXpressApp Framework
    +2
    Я думаю такое сравнение заслуживает отдельного поста. Если можете подождать, я напишу его, так как уже делал подобный сравнительный анализ для внутреннего пользования, на английском правда. Возможно у команды LightSwitch тоже есть какие-то готовые наработки по «конкурентам», которыми можно поделиться с общественностью — было бы интересно посмотреть. Прямо сейчас могу только дать ссылку на обзор, сделанный нашим евангелистом в прошлом.