В коммерческом .net с 2012 года.

Могу бэкенд, облака, мудрёные интеграции и экзотические сервисы. Люблю XAML и кроссплатформу. Тимлидил и тимлидю потому что умею.

Веду @tasdev с 2011.
Контакты
Местоположение
Узбекистан, Ташкентская обл., Ташкент

Наибольший вклад в теги

Все теги (22)

Лучшие ответы пользователя

Все ответы (40)
  • Как принято у программистов: использовать для переменной свойство или давать параметр в каждом методе?

    @i_light
    Backend, XAML, crossplatform
    Это вопрос концепции. Свойства класса, которые принадлежат семантически его объекту - делайте свойствами. Данные, не относящиеся к объекту - передавайте параметрами.

    Например, для теоретического класса "яблоко", свойства - "размер", "вес", "цвет" - принадлежат яблоку, делаем их свойствами класса. Для теоретического метода "разделить" в этом классе необходим параметр "количество частей" - понятное дело, что он не является свойством яблока.
    Ответ написан
    Комментировать
  • Как задать Binding для PasswordBox?

    @i_light
    Backend, XAML, crossplatform
    Binding для PasswordBox не реализован вполне намеренно, чтобы не было так просто перехватить пароль, введённый в поле.

    В качестве стандартной и относительно безопасной практики, часто пользуюсь передачей PasswordBox-а в команду логина параметром.

    <TextBox Text="{Binding Login}" x:Name="TbxLogin" />
    <PasswordBox x:Name="PasswordBox" />
    <Button Content="Log in" Command="{Binding SigninCommand}"
    		CommandParameter="{Binding ElementName=PasswordBox}" IsDefault="True" />


    public ICommand SigninCommand { get; set; }
    private void Signin(object param)
    {
    	var passwordBox = param as PasswordBox;
    	if (passwordBox == null)
    		return;
    	var password = passwordBox.Password;
            ...
    }
    Ответ написан
    Комментировать
  • С чего начать изучать C#?

    @i_light
    Backend, XAML, crossplatform
    Книжка Microsoft в соавторстве с intuit, C# для школьников - отличное начало.

    А потом Троелсен.
    Ответ написан
    Комментировать
  • MVVM с ним или без него?

    @i_light
    Backend, XAML, crossplatform
    Всегда использовать. Просто - всегда. WPF изначально разработан под связывание и нормальную архитектуру.

    То, что можно делать так же, как в WinForms, не говорит о том, что это стоит делать.

    Просто запомнить как мантру, создал проект - добавь референс на MVVM фреймворк, и работай. Фреймворк любой, например MVVMLight. Или Prism. Или свой велосипед (я так делаю), любой.
    Ответ написан
    Комментировать
  • Как лучше хранить картинку?

    @i_light
    Backend, XAML, crossplatform
    Не вижу смысла сохранять результирующую картинку куда-либо, кроме как по запросу клиента. Чтобы её просто показать, достаточно хранить коллекцию ссылок на PNG-файлы (JPEG не поддерживает прозрачность) и накладывать их прямо в браузере друг на друга, поверх, не сводя в единое изображение.
    Плюсы:
    - картинки кэшируются
    - никакой нагрузки на сервер
    - никакой нагрузки на клиент
    Минусы:
    - картинка выдаётся не мгновенно, а загружаются все части по очереди.
    Ответ написан
    Комментировать