Popular Tags:

Разработка игры на WPF

21.06.2014 at 12:00

Вчера на работе прошел второй хакатон. На этот раз темой был рабочий проект – все, что давно хотелось сделать, но в спринт никогда не попадет. Мы с Сашей Решетниковым решили делать игру, которую можно будет встроить в клиентское приложение в виде пасхального яйца.

Идея игры

Решили делать ремейк старой игры “Попади в меня кирпич”. read more

Рецензия. Семь баз данных за семь недель.

06.06.2014 at 03:50


В книге описывается несколько типов баз данных:

  • Реляционные БД (PostgreSQL)
  • Хранилища ключ-значение (Riak, Redis)
  • Документо-ориентированные БД (CouchDB, MongoDB)
  • Столбцовые (HBase)
  • Графовые (Neo4J)

Книга посвящена сравнению этих СУБД. Рассматриваются: область применения, связь между данными, масштабируемость, отказоустойчивость, построение запросов.
Что в книге хорошего:

  • Масштабируемость. Для всех баз расписана модель масштабирования – получился набор паттернов, полезный и без привязки к СУБД.
read more

Доска рекордов на WCF и RavenDB. Хранение данных

16.04.2014 at 19:32

В предыдущей части мы сделали сервис. Теперь напишем для него прокси, который будет использоваться в клиентском коде. Прокси для WCF сервисов можно генерировать прямо в студии: в контекстном меню на узле Refernces -> Add Service Reference, далее указываем адрес сервиса, нажимаем Go – и получаем сгенерированный прокси класс.


Можно оставить сгенерированный класс без изменений, но я решил удалить все лишнее. read more

Доска рекордов на WCF и RavenDB. Сервис

16.04.2014 at 19:29

Несколько раз на работе делали миниигры – пасхалки на новый год или еще какой праздник. Каждый раз единственное, что не успевали – таблица рекордов. Ее и буду делать. Доска будет представлять собой сервис с 2 методами – добавить результат и получить топ n результатов.

Для начала создадим интерфейс сервиса – контракт в терминах WCF

/// <summary>
/// Контракт сервиса доски рекордов.
read more

Зачем нужен домашний проект и как выбрать тему для него

13.03.2014 at 18:23

Насчет программирования дома для себя чаще всего возникают два вопроса: для чего это нужно и что бы такое написать. На эти вопросы я и постараюсь ответить.

Польза от домашнего проекта

  • Самообучение. Очень сложно изучать новую технологию по книжкам. Намного больше знаний останется в голове, если учиться на отдельном небольшом проекте. Тему проекта лучше выбирать подходящую для технологии.
read more

Линкблог #23

24.02.2014 at 19:53
read more

Code Behind для стиля в WPF

24.02.2014 at 19:29

Часто возникает ситуация, когда нужно добавить обработчик через стиль или шаблон. Для этого нужно объявить partial класс для словаря ресурсов, в котором находится стиль. В этом классе и будут обработчики. Сделать это очень просто. Сначала создадим словарь ресурсов, в котором укажем класс с помощью атрибута “x:Class”:

<ResourceDictionary x:Class="TestApplication.MyDictionary" 
                    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Style TargetType="{x:Type Button}" x:Key="ButtonStyle">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type Button}">
          <Border BorderThickness="1" BorderBrush="Black">
            <Label Content="{TemplateBinding Content}" Margin="10" 
                   MouseEnter="MouseEnterHandler" 
                   MouseLeave="MouseLeaveHandler" />
          </Border>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
</ResourceDictionary>

Здесь переопределен шаблон для кнопки. read more

Редактор html и подсветка синтаксиса

11.12.2013 at 19:44

В проекте на MVC4 решил сделать возможность редактировать текст материала в WYSIWYG редакторе, добавить подсветку для программного кода и добавить в редактор поддержку этой подсветки. К счастью, писать самому ничего не пришлось, хватило сторонних решений.

WYSIWYG редактор.

Я использовал TinyMCE. Подключается он очень просто, нужно в .cshtml файл добавить такие строчки:

@Scripts.Render("//code.jquery.com/jquery-1.10.2.min.js")
@Scripts.Render("//tinymce.cachefly.net/4.0/tinymce.min.js")

Хотя можно и добавить эти файлы в проект, это не важно. read more

Линкблог #22

05.12.2013 at 18:51

.Net

GameDev

read more

Импорт записей из WordPress в приложение на ASP.NET MVC 4

07.11.2013 at 19:47

Модель данных

Создадим три сущности – пост, категория и тег. У каждого поста может быть одна категория и несколько тегов.

[Table("Category")]
public class Category
{
  [Key]
  [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
  public int CategoryId { get; set; }

  public string Name { get; set; }
}

[Table("Tag")]
public class Tag
{
  [Key]
  [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
  public int TagId { get; set; }

  public string Name { get; set; }

  public ICollection<Post> Posts { get; private set; }

  public Tag()
  {
    this.Posts = new List<Post>();
  }
}

[Table("Post")]
public class Post
{
  [Key]
  [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
  public int PostId { get; set; }

  public string Title { get; set; }

  [Column(TypeName = "ntext")]
  public string Body { get; set; }

  public Category PostCategory { get; set; }

  public ICollection<Tag> PostTags { get; set; }

  public Post()
  {
    this.PostTags = new List<Tag>();
  }
}

Для доступа к данным создаем контекст

public class PostContext : DbContext
{
  public PostContext() : base("DefaultConnection") { }

  public DbSet<Post> Posts { get; set; }
  public DbSet<Category> Categories { get; set; }
  public DbSet<Tag> Tags { get; set; }
}

Благодаря механизму Code First в Entity Framework, база создастся сама. read more