Рубрика «разработка» - 240

Мотивация

Для desktop-мира wcf остаётся самым распространенным способом организации клиент-серверного взаимодействия в .net как для локальных, так и для глобальных сетей. Он гибок в настройке, прост в использовании и прозрачен.
По крайней мере, так должно быть. На практике добавление нового сервиса — это рутина. Нужно не забыть прописать конфигурацию на сервере, сделать то же самое на клиенте, нужно написать или сгенерировать proxy-класс. Поддерживать конфиги неудобно. Если сервис изменился, то нужно вносить изменения в proxy-класс. А ещё не забыть про регистрации в IoC-контейнере. И добавление новых хостов для новых сервисов. И еще хочется простой асинхронности. По отдельности всё просто, но даже для статьи я дописывал этот список уже трижды, и не уверен, что не упустил чего-нибудь.
Время автоматизировать. Простейший сценарий от создания решения до вызова wcf-сервиса выглядит так:

  1. Install-Package Rikrop.Core.Wcf.Unity
  2. Пишем ServiceContract и их реализации
  3. На сервере и клиенте добавляем одну строку регистрации в IoC (конфиги править не надо)
  4. Поднимаем хосты с двух строк
    var assembly = Assembly.GetExecutingAssembly();
    _serviceHostManager.StartServices(assembly);
    
  5. На клиенте резолвим IServiceExecutor<TService>. Эта обёртка служит для вызова методов сервиса и скрывает работу с каналом.
  6. Можно пользоваться
    var articles = await _myServiceExecutor.Execute(service => service.GetArticles());
    

Читать полностью »

Создание окружения для веб-разработки на основе Docker - 1Под катом расскажу как я усовершенствовал автоматическое создание и разворачивание окружения для веб-разработки на основе Docker, Fig, DNSMasq и nsenter. По сути, это разворачивание LAMP сервера и запись о нем в DNSMasq, но приоритетами является незасоренность хост-машины ненужным софтом типа web-, db-серверов на хост машине и минимальное количество команд для запуска
Читать полностью »

Начнём с пианино. Очень упрощёно этот музыкальный инструмент представляет собой набор белых и чёрных клавиш, при нажатии на каждую из которых извлекается определённый звук заранее заданной частоты от низкого до высокого. Конечно, каждый клавишный инструмент имеет свою уникальную тембральную окраску звучания, благодаря которой мы можем отличить, например, аккордеон от фортепиано, но если грубо обобщить, то каждая клавиша представляет собой просто генератор синусоидальных акустических волн определённой частоты.

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

image

Читать полностью »

Конференции, которые ждут нас в 2015 году - 1

Профессионалов в первую очередь отличает стремление учиться и повышать свой уровень знаний и умений. Мы всячески стараемся в этом содействовать, поддерживая в течение года различные тематические IT-конференции. Как и в прошлом году, предлагаем вашему вниманию информационную памятку по профильным конференциям, которые могут быть интересны различным специалистам.

К сожалению, организаторы многих конференций пока не объявили о планах на 2015 год, поэтому здесь представлена информация только о заявленных мероприятиях.
Читать полностью »

13 и 14 декабря в Воронеже прошла третья ежегодная конференция GDG DevFest Воронеж 2014, организованная компанией Google, Воронежским государственным университетом и DataArt. Мероприятие собрало около двухсот разработчиков, дизайнеров и просто Google-энтузиастов.


Читать полностью »

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

Сегодня мне хотелось бы рассказать о концепции конференции – нашем видением, ключевыми идеями, с помощью которых мы сделаем DevCon 2015 полезным, запоминающимся и интересным.

Живой код конференции DevCon 2015 - 1

Разрешите представить вам “Живой код” конференции DevCon 2015 – наша история, рассказанная в картинках.
Читать полностью »

В этой статье я хочу сделать две вещи: рассказать, почему макросы — зло и как с этим бороться, а так же продемонстрировать пару используемых мной макросов C++, которые упрощают работу с кодом и улучшают его читаемость. Трюки, на самом деле, не такие уж и грязные:

  • Безопасный вызов метода
  • Неиспользуемые переменные
  • Превращение в строку
  • Запятая в аргументе макроса
  • Бесконечный цикл

Заранее предупреждаю: если Вы думаете увидеть под катом что-то крутое, головоломное и сногсшибательное, то ничего такого в статье нет. Статья про светлую сторону макросов.Читать полностью »

Анализ Вконтакте на примере книжных предпочтений участников культурных сообществ - 1
Рис.  3. – Книги каких авторов из рейтинга топ100 читают пользователи Вконтакте

Для всех диаграмм в статье есть интерактивные визуализации: graphgrail.com/gg-client/vk_books.html
К 2014 году потенциал традиционных подходов к развитию аналитики социальных процессов оказался исчерпан в силу нескольких причин, главная из которых – неспособность созданных в рамках данных подходов решений адаптироваться к изменившимся условиям формирования общественных законов. Речь идет об их недостаточной динамичности и неприспособленности для обработки данных, поступающих в больших объемах в режиме времени, близком к реальному. Но самый серьезный удар по классической аналитике нанес взрывной рост объемов неструктурированных данных. [1]
Читать полностью »

Много времени прошло с момента появления AngularJs (в масштабах веб-технологий конечно). Сейчас в интернетах есть огромное количество постов восхваляющих этот фреймворк до небес, что это манна небесная не иначе, а критики не так уж и много как он того заслуживает. Сразу хочу сказать, что фреймворк я знаю хорошо, даже больше чем мне хотелось бы его знать, я программировал на нем в течении 2 лет. И для следующего проекта я его точно не выберу. Так что же не так с ним? Тут нет однозначного ответа, слишком много разных недостатков, которые создают такой облик фреймворку. Если одним словом – непродуманная архитектура.
Распространенная практика в мире ангуляра — решать проблемы, которые сам себе же и создал. Хотя на самом деле этой проблемы можно было бы и избежать, если хорошо спроектировать архитектуру. И ЭТОТ ПАТТЕРН ЕСТЬ ПРАКТИЧЕСКИ В КАЖДОМ АСПЕКТЕ ФРЕЙМВОРКА. Под катом я приведу много конкретных примеров, так что устраивайтесь поудобнее.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js