• Насколько сейчас востребован WPF с его XAML или лучше смотреть в сторону ASP.NET MVC?

    newross
    @newross
    Product owner
    XAML - это современный UI для прикладных десктопных программ и современных приложения для маркетплейсов. Разбираться в нем стоит, если это интересно. Работы достаточно, на мой взгляд даже больше, чем на Asp.Net MVC.
    Ответ написан
    2 комментария
  • ListBox, как перекрасить в другой цвет при выборе элемента?

    @renoize
    Android Developer
    Один из вариантов.

    <!-- Создаем стиль, в котором переопределяем системный цвет выделения ListboxItem-->
    <Style x:Key="vksStyle" TargetType="{x:Type ListBoxItem}">
            <Style.Resources>
                <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                                 Color="Green"/>
            </Style.Resources>
        </Style>
    
    <!--Назначаем созданный выше стиль ItemContainerStyle нашего ListBox-->
    <ListBox ItemsSource="{Binding}"
             ItemContainerStyle="{StaticResource vksStyle}">
    Ответ написан
    8 комментариев
  • Как открыть и масштабировать изображение BitmapImage?

    @Sterk
    Программист
    у BitmapImage есть DecodePixelWidth, DecodePixelHeight размер для конвертации.
    var uri = value as string;
                if (string.IsNullOrWhiteSpace(uri))
                    return null;
                var image = new BitmapImage();
                image.BeginInit();
                image.UriSource = new Uri(uri);
                if (Width != null)
                    image.DecodePixelWidth = (int)Width;
                if (Height != null)
                    image.DecodePixelHeight = (int)Height;
                image.EndInit();
                return image;

    Либо можно задавать размер контролу, а не источнику, мне кажется это ваш случай.
    var uri = value as string;
                if (string.IsNullOrWhiteSpace(uri))
                    return null;
                var source = new BitmapImage(new Uri(uri));
                var image = new Image { Source = source };
                if (Width != null)
                    image.Width = (int)Width;
                if (Height != null)
                    image.Height = (int)Height;
                return image;

    Делаете обработку клика и меняете размер у контрола.
    Ответ написан
    Комментировать
  • Есть ли возможность вытащить информацию о владельце сертификата из файла с расширением.sig?

    @polarnik
    Тестировщик
    Раз говорите о КриптоАРМ, то полагаю, речь об алгоритме ГОСТ. Если будете использовать OpenSSL, как советуют выше, то ищите OpenSSL с поддержкой ГОСТ. Вот соответствующая сборка: www.cryptocom.ru/opensource

    Те файлы sig, с которыми сталкивался, использовались при сдаче отчётности в электронном виде. Пара счёт-фактура + подпись, также в комплекте шел набор CRL-файлов со списками отзыва на момент подписания. Сама же подпись шла в формате, близком к формату CAdES-C (Electronic Signature with Complete Data References). Отсоединённая подпись.

    В такой подписи есть:
    • сертификат подписанта
    • сама подпись
    • штамп времени
    • цепочка сертификатов (от сертификата подписанта до сертификата головного УЦ)

    Проверить корректность подписи, проверить состояние сертификата по списку отзыва на текущий момент и получить цепочку сертификатов можно нехитрым кодом на C#:
    using System.Security.Cryptography.X509Certificates;
    using System.Security.Cryptography.Pkcs;
    public class SignChecker
    {
        public X509Certificate2Collection CheckDetachedSignatureAndGetChain
            (byte[] data, byte[] sign)
        {
            var contentInfo = new ContentInfo(data);
            //    true => DetachedSignature
            var signedCms = new SignedCms(contentInfo, true);
            signedCms.Decode(sign);
            //http://msdn.microsoft.com/ru-ru/library/aedbc064%28v=vs.110%29.aspx
            //    false => verifySignature + verifyChain
            signedCms.CheckSignature(false);
            return signedCms.Certificates;
        }
    }

    Метод проверит подпись и отозванность сертификатов и вернёт сертификаты вам для дальнейшей проверки.

    При правильной проверке следует помнить о штампе времени в подписи. Даже если сертификат отозван (был отозван вчера, например), а штамп времени говорит, что подпись была поставлена два года назад и штамп достоверен. То следует проверять состояние сертификата по списку отзыва на момент двухлетней давности.

    КриптоАРМ так и проверяет. Если же будете делать свой механизм проверки, проверяя сертификаты отдельно от подписи и штампа времени в ней, то методы CryptoAPI вернут состояние сертификатов на текущий момент времени. И сертификаты из исторических подписей, которые сегодня отозваны, но были действительны два года назад, сломают цепочку, проверка завершится неудачно.

    Перед вызовом проверки (signedCms.CheckSignature(false)), убедитесь, что у программы будет возможность работы с Интернет. Так как если возможности работы с Интернет нет (прокси, например, не настроен), то списки отзыва не загрузятся. И проверка без актуальных списков отзыва о OCSP-ответов будет всегда завершаться успешно. Даже если некоторые сертификаты уже отозваны.

    OCSP-ответы и списки отзыва кешируются. Поэтому не удивляйтесь, если они вдруг перестанут загружаться. Проверка по ним работает. Очистить кеш можно командами:
    • certutil urlcache crl delete
    • certutil urlcache ocsp delete


    Удачной отладки.
    Ответ написан
    Комментировать
  • Монетизация игры HTML5 (web-browser и/или mobile native-wrapper) и анти-читинг. Реально?

    @Elizavetta
    Matroid: gamedev/js-разработка
    1. Основные принципы монетизации.
    Зависит много от чего, в том числе и вашей идеологии. Вам главное монетизация или искусство ? Чем гибче вы хотите вписать монетизацию, тем больше вложений в геймдизайн это потребует. Но так как вы рассчитываете на быстрый запуск, то стоит выбрать что-то простое для старта, потом смотреть статистику и возможно менять. Как написали выше, в free2play играх основные продажи - это преимущества (pay2win), энергия, и контент. Во всех этих вариантах свои тонкости, не ждите, что с первой игры все сойдется.
    Учтите, что в среднем игроки по миру уже "наелись" free2play, идет снижение продаж и поиск новых моделей.

    Рекламные сетки и отсутствие рекламы - другой вариант. Это уже не сочетается с внутриигровой монетизацией, и нужен хороший трафик.

    Также вы можете продавать лицензии, размещаться на площадках паблишеров, где они сами откручивают рекламу и делятся с разработчиками.

    2. Читерство в html5. Защищаться крайне сложно, может выйти намного дороже, чем саму игру разрабатывать), так что если ваша механика/монетизация сильно пострадают, то надо перестраивать монетизацию. Читеров можете чистить по статиcтике, либо синхронизировать с сервером в процессе действия, и уменьшить воздействие. Но если у вас например битвы между игроками, и какие-то критичные клиентские действия, и платное оружие - то это проблема, вам нужна реалтайм защита. Иначе просто будут жалобы и недовольство.
    Не совсем понятно, при чем тут врапперы.

    Поделюсь опытом больше, напишите здесь вопрос elizavetta.net/question
    Если нужны контакты для паблишинга, тоже пишите.
    Ответ написан
    2 комментария
  • Как реализовать запуск разных страниц *.xaml при запуске приложения?

    @follow39
    запускать MainPage.xaml и если запускается первый раз, то перенаправить на Settings.xaml
    Ответ написан
    1 комментарий
  • Как перестать быть Read Only на Habrahabr?

    Gorily
    @Gorily
    Написать в песочницу достойный пост и надеяться на инвайт: habrahabr.ru/ppg/sandbox
    Ответ написан
    2 комментария
  • Программная работа с ЭЦП

    ystr
    @ystr
    Рекомендую первично ознакомиться с понятием Crypto API и для начала почитать мою давнюю статью Использование Crypto API. Также рекомендую почитать форум фирмы Крипто-ПРО. Различных примеров там приводится множество.
    Ответ написан
    Комментировать
  • Чем обусловленна высокая стоимость книг проф направленности в электронном виде?

    mifa
    @mifa
    Вопрос: Чем обусловленна высокая стоимость книг проф направленности в электронном виде?

    Ответ: Высокой платежеспособностью целевой аудитории.

    Ваш К. О.
    Ответ написан
    Комментировать