Popular Tags:

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

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

  • Паттерн CRTP на C#. Пригодится при реализации fluent интерфейса.
  • Еще одна подборка интересных моментов в C#.
  • Архитектура StackOverflow.
  • Использование Thrift в .Net.
  • Фичи, которые возможно появятся в C# 6.0.
  • Миграции при использовании Entity Framework CodeFirst.
  • Построение графиков в .Net.
  • Подробный рассказ о создании REST API.
  • Ускорение операций update и delete в Entity Framework.
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

  • Поиск утечек памяти.
  • Внутреннее устройство Dictionary и ConcurrentDictionary.
  • Очень подробно о событиях и делегатах.

GameDev

  • Генератор хрущевок на Unity3D.
  • Алгоритм построения фрактальных ландшафтов.
  • Описание архитектуры легковесного игрового фреймворка.
  • Краткая история Greenlight.
  • Ранний доступ в Steam.
  • Построение графа видимости и дорожных карт.
  • Рассказ о создании Rabbit Must Die.
  • Туториал по созданию плоских ретро-теней.
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

Линкблог #21

04.10.2013 at 18:54

.Net

  • Библиотека для использования Twitter Bootstrap в MVC.
  • Бесплатная книга от Microsoft об инъекции зависимостей с использованием Unity.
  • Анонс восьмой версии ReSharper.
  • Описание работы таймера в .Net.

GameDev

  • Анонс Unity 4.3. Из плюшек — инструменты для разработки 2D игр и инструмент для встраивания рекламы.
  • GOG собирается заняться изданием игр.
  • Инъекция зависимостей в Unity 3D.
read more