Все потоки
Поиск
Написать публикацию
Обновить
264.68

C# *

Объектно-ориентированный язык программирования

Сначала показывать
Период
Уровень сложности

Factory pattern. Пример применения в Unity

Время на прочтение2 мин
Количество просмотров17K

Фабричных методов на самом деле много.
Даже базовые конструкции if else являются фабричным методом, так как и switch.
Но ведь это не удобно читать и расширять.


Представим простой пример. У нас есть игра slasher с монстрами. У нас есть несколько режимов: easy, medium, hard. Следовательно пусть у нас будут отличаться у монстров жизни и урон. Как организовать удобное создание монстров и в одном месте? Все в подcut`e.

Читать дальше →

Почему по статистике Яндекс и StackOverfow C# программисты самые дешёвые?

Время на прочтение2 мин
Количество просмотров22K
В общем недавно тут публиковалось статистика Яндекса по зарплатам в IT в России и еще на StackOverfow можно посмотреть на статистику по ЗП в США и тут грустный факт можно увидеть.
Читать дальше →

Антиципации при разработке диалога с чат-ботом

Время на прочтение7 мин
Количество просмотров2.8K


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

В процессе работы над чат-ботом я столкнулся с необходимостью антиципировать (то есть предвосхищать) развитие диалога. Раньше об этом как-то не задумывался, а тут – решая, какие слова вкладывать в компьютерные уста в ответ на ту или иную человеческую фразу, – пришлось поразмыслить.

Выводы показались мне небезынтересными. Они лежат на поверхности проблематики и, возможно, не станут откровением для тех, кто занимался ИИ ранее, однако прямых формулировок в печати я не встречал. Посему приступим…
Читать дальше →

Как сделать простую трехмерную игрушку на Unity за два дня

Время на прочтение5 мин
Количество просмотров15K


Самым графически впечатляющим проектом нашего хакатона был Skyeng Action. Когда автор накануне мероприятия презентовал свою идею, мало кто верил, что она будет доведена до рабочего состояния за двое суток. Тем не менее, команда из трех не знакомых до того ни друг с другом, ни с Unity разработчиков с задачей успешно справилась. Рассказываем, как это было.
Читать дальше →

Как я писал свой чат

Время на прочтение13 мин
Количество просмотров66K
Привет, Хабр!
В статье я написал, о том как разрабатывал чат. О его архитектуре и о технических решениях принятых в ходе его разработки.

Чат представляет собой клиент-серверное приложение с элементами p2p.
С поддеркжой:
  • Личных сообщений.
  • Комнат.
  • Передачи файлов.
  • Голосового чата.




Исходный код проекта: GitHub
Читать дальше →

Первый опыт разработки под Windows Phone: In-App Purchasing

Время на прочтение6 мин
Количество просмотров8.5K


В данной статье рассмотрена возможность использования внутренних платежей в ваших мобильных Windows Phone 8 приложениях на примере собственного приложения «Ежедневный гороскоп».
Если данная тема интересна, то прошу под кат.
Читать дальше →

Цикличность и временное отключение приемников событий в SharePoint

Время на прочтение5 мин
Количество просмотров4.9K
Как Вы можете знать, в SharePoint существует множество приемников событий (EventReceiver), которые позволяют вызывать пользовательский код при выполнении стандартных операций с объектами SharePoint, например добавление/удаление/изменение элементов списков. Работа с приемниками событий заслуживает отдельной статьи, но их по данной тематике и так довольно много, например тут.

Сегодня мы рассмотрим 2 частных случая проблем, которые могут возникнуть у начинающего разработчика SharePoint при работе с ресиверами:
Читать дальше →

Автоматическое обновление программ на C#

Время на прочтение5 мин
Количество просмотров91K
Несколько лет назад, программируя еще на Delphi, лично для себя соорудил некий код автоматического обновления, который в последствии стал незаменимым при разработке любой программы, где есть обновление. В настоящий момент этот код полностью переписан на c# и я хочу с Вами им поделиться.

image

Вначале определим цели этой реализации:

  1. При обнаружении новой версии обновление должно происходить автоматически;
  2. После обновления программа должна автоматически перезапускаться;
  3. После обновления имя программы должно остаться прежним.

Проблема состоит в том, что программа не может саму себя удалить, заменить и вновь запустить. И, казалось бы, как решить этот вопрос? Здесь нам поможет второй файл, отвечающий за переименование и перезапуск программы, так как мы не гонимся за целью хранить все коды в 1 файле.
Читать дальше →

Incoding Rapid Development Framework ( part 2 CQRS )

Время на прочтение7 мин
Количество просмотров6.6K
image

Пред история


Моя предыдущая статья была знакомством с Incoding Framework, которое начиналось с IML (наша флагманская фича ). IML подтолкнул нас развить проект больше, чем набор утилит ( такого добра полно в любой команде разработчиков ) используемых в проектах компании, но это не значит, что другие компоненты не прорабатываются, а напротив «полируются» с не меньшей детализацией и это я попробую Вам доказать.

Серебренная пуля ?


Раньше я всегда был сторонником того, что у каждого решения есть свои минусы и плюсы, но CQRS на мой взгляд превосходит N-Layer, а также не имеет «противопоказаний» или «побочных эффектов», что делает его кандидатом на первый патрон в обойму, но обо всем по порядку.

Кто-то не слышал про CQRS?


Для тех, кто уже использует CQRS, первые разделы могут быть не интересны, поэтому прежде чем поставить ярлык «велосипед», предлагаю ознакомиться с разделом killing feature, который может Вас убедить в обратном. Тем же, кто использует N-Layer архитектуру, стоит задуматься о переходе на CQRS и чтобы подкрепить свое предложение я опишу наш путь к CQRS
Читать дальше →

Windows Phone 8: Создаем приложение. Матрица. Часть 3. MVVM

Время на прочтение39 мин
Количество просмотров9.8K
И так, как и обещал, третья часть приложения Матрица для платформы WP8 с использованием паттерна MVVM. Для самых нетерпеливых можно сразу скачать с Github, а также опробовать у себя на смартфоне, скачав с Windows Phone Store.

Поддерживаются расширения экранов HD720P (720x1280), WVGA (480x800), WXGA (768x1280). Есть маленький минус: при использовании расширения отличного от 480x800, нужно перезапустить приложения после установки, так как не нашел как получить высоту и ширину элемента Grid до загрузки модели вида. А теперь по порядку.

Windows Phone 8: Создаем приложение. Матрица. Часть 1
Windows Phone 8: Создаем приложение. Матрица. Часть 2
Windows Phone 8: Создаем приложение. Матрица. Часть 3. MVVM


Развернутый вид всего приложения на экране WVGA (480x800)

Читать дальше →

Начало Windows Phone 8 Development: урок 4. Связь с сервисами и привязка к данным

Время на прочтение5 мин
Количество просмотров13K
Начало Windows Phone 8 Development: урок 1. Макет приложения и обработчик событий
Начало Windows Phone 8 Development: урок 2. Доступ к локальному хранилищу приложения
Начало Windows Phone 8 Development: урок 3. Навигация по страницам и передача параметров
Начало Windows Phone 8 Development: урок 4. Связь с сервисами и привязка к данным

Как и было обещано, к концу этого урока Вы уже будете себя чувствовать почти настоящим разработчиком под Windows Phone 8 ). Сейчас мы уже умеем строить GUI используя XAML, создавать обработчики событий, переходить по страницам, сохранять данные в локальном хранилище. Все, что осталось освоить, что б создавать настоящие приложения – это привязка к данным и взаимодействие между сервисами.
Читать дальше →

Сериализация .NET объекта в JavaScript variable на HTML странице внутрь Script-блока

Время на прочтение3 мин
Количество просмотров7.8K

Старые добрые hidden inputs


Часто приходится передавать в HTML страницу данные, которые необходимо потом использовать из JavaScript. Издавна для этого используется самый простой способ: hidden inputs. То есть, если нам нужно передать Uri адрес веб сервиса, мы на странице рендерим что-то вроде

  <input type="hidden" name="webServiceUri" value="URI we need"/>

и можем при помощи jQuery или plain old JavaScript найти этот input по имени и прочитать переданное значение.

Но когда нужно передавать много параметров или даже массивы, то этот способ становится не удобным. Можно конечно сделать REST сервис, который отдает все данные по AJAX-запросу со страницы (сессионные данные), но в большенстве случаев это излишне.

В настоящее время часто используется другой способ — на стороне сервера отрендерить в HTML все необходимые данные в виде JavaScript переменной внутри Script-блока.

Рассмотрим как это сделать в ASP.NET MVC.

Читать дальше →

Дружим System.Web.Optimization Bundle с Windows Azure Storage

Время на прочтение3 мин
Количество просмотров2.6K
Я все ждал, ждал, ждал, когда же все-таки умные ребята, разрабатывающие System.Web.Optimization добавят поддержку автоматической загрузки содержимого бандла в контейнер Azure Storage. На днях вышла «1.0.0-beta2», но желаемого функционала так я и не нашел, а быстроты то хочется…
Читать дальше →

Ближайшие события

Басни на ночь — Хорошие имена как залог успеха

Время на прочтение3 мин
Количество просмотров1.5K
image
Доброго времени суток всем.

«Как лодку назовешь, так она и поплывет» — довольная известная фраза, которая вполне подходит к функциям, переменным, классам.

Сколько раз вам приходилось читать чужой (а бывает и свой код, каюсь, бывало подобное с моим же кодом) и разбираться с написанным месивом. Назначение переменных, функций, а то и вовсе классов не являются интуитивно понятным.
Казалось бы, есть переменная, есть ее имя, но ее назначение не понятно.

Например
enum Dates{
  GET_FIRST,
  GET_SECOND,
  GET_BOTH,
  None
}



Вот и думай, что этот енам делает эдакого в вашем коде. Вроде из названия перечисления понятно, что дело связано с датами. Может методу передаются две даты, и нужно выбрать какую то из них. А может в расчет нужно брать только определенные даты, первую и вторую из списка. А может что еще, может быть много мнений.
Читать дальше →
12 ...
160

Вклад авторов