Рубрика «C#» - 130

В первой части, было показано и рассказано как собрать машину судного дня 3D-принтер. Теперь, настало время оживить механическое чудо, при помощи программного обеспечения, мозгов и проводов.

Самостоятельная сборка 3d-принтера или покупка готового оборудования для конструирования. ПО. Часть 2 - 1

Для этого я использовал open source бесплатный софт: Repetier-host (для связи компьютера с платой управления 3D-принтером) и Arduino IDE (для работы с прошивкой микроконтроллера). И сам 3D-принтер.О тонкостях настройки этого программного обеспечения будет рассказано в этой части:

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

Всем привет!

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

Ни для кого не секрет, что основной целью наших конференций является дать возможность людям познакомиться на почве профессиональных интересов. Доклады являются пищей для размышления и вводной частью к последующим дискуссиям различной степени детальности. На наш взгляд, такое общение способствует осознанию собственных убеждений в более глубокой мере, так как вы сталкиваетесь с другими, порой диаметрально противоположными мнениями. Так что же приготовлено для конференции Desktop UI & Business Application?

Представление спикеров конференции Desktop UI & Business Application. Про бэкенд - 1

Сначала представим темы, которые относятся к бэкенду, к серверной части, которая будет интересна всем разработчикам, занятым в сфере энтерпрайз разработки. Т.е. это и WPF, и WinForm, и ASP.NET.

История представления реальных данных и процессов в мире программ имеет богатую и долгую историю. Можно сказать, что все началось с транзакционных скриптов, и процедурного программирования. Когда доменную модель пытались полностью представить в виде набора процедур и данных, которые хранятся в базе данных. По сути, все крутилось вокруг таблиц. Шагом вперед, вместе с ООП разработкой стала модель табличных данных, которые уже были представлены набором данных в памяти программы. Теперь таблицы стали отправной точкой в представлении доменной логики. Процедуры уже не объявлялись в глобальном пространстве имен, а были «пристегнуты» к определенной таблице, в зависимости от своих функций. Дальнейшее удешевление и распространение компьютеров привело к тому, что все более широкое применение находило компьютерное моделирование. В то же время сложные реальные доменные модели надо было отображать как можно более проще для поддержки и расширения. Так Мартин Фаулер предложил, а Эрик Эванс развил идею Domain Driven Design, которой большинство сейчас придерживается, в той или иной степени.
Читать полностью »

Недавно была выпущена первая бета версия тестового фреймворка NUnit v3. Кроме всего прочего, эта версия реализует параллельное выполнение тестов (практически «из коробки»). Я решил проверить как это работает на одном реальном проекте и обнаружил, что новая версия nunit-а не поддерживает часть используемых вещей предыдущих версий. В частности предлагается вместо аттрибута ExpectedException использовать Assert.Thorws или Assert.That.
Независимо от релиза этой беты, в одном из проектов начал использовать модель Assert.That вместо всех остальных методов и атрибутов nunit-а.

Под катом небольшой опыт перевода аттрибута ExpectedException в модель Assert.That.
Читать полностью »

Расширение функциональности элементов управления Windows с помощью AttachedProperty - 1

Краеугольным камнем разработки приложений для Windows (WPF, SilverLight, WP, WinRT) является паттерн MVVP. Который основан на концепции связывания данных модели представления и пользовательского интерфейса, что позволяет, используя декларативное описание UI посредством XAML избавится от codebegind (так я и не придумал/нашел русского перевода) и перенести всю логику работы с пользовательским интерфейсом в модель представления.

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

Написать данную статью меня побудила статья habrahabr.ru/company/edusty/blog/253635/. В статье найдено решение конкретной проблемы и предложено работающее решение. Однако для его использования необходимо в codebehind для каждого текстового блока вызывать код. Более того если данные предполагают изменение в процессе работы необходимо следить за их изменением. В процессе своей работы такие решения встречаю довольно часто, они отличаются реализацией, но их все отличает одно неизменное свойство, сложность поддержки и сопровождения кода.Читать полностью »

При разработке игр, довольно часто возникает необходимость в построении системы широковещательной рассылки сообщений. Предположим, Вы хотите сделать так, чтобы в тот момент когда персонаж, управляемый игроком, вошел в определенную зону, или выполнил определенное действие, все заинтересованные в этом объекты получили уведомление. По возможности это уведомление должно нести в себе информацию о произошедшем событии. В данной статье, я предлагаю Вашему вниманию один из возможных способов построения подобной системы. Приведенная система построена на базе Unity3D EventSystem.
Читать полностью »

Приемы разработки ASMX веб-сервисов - 1В этой статье я расскажу о различных приемах разработки SOAP веб-сервисов по технологии ASMX, а также об этой технологии в целом. Кроме SOAP, также будет рассмотрена реализация AJAX. Статья будет полезна как тем, кто уже знаком с ней, так и тем, кто только собирается создать свой первый веб-сервис.
Читать полностью »

… отчет формировался долго. Песочные часы и синяя полоска клонили в сон. Вначале он хотел обезьянку, которая лезет по лестнице, потом градусник, но в итоге остался таймер и счетчик. Глупая улыбка и добрый, сочувствующий, взгляд делают чудеса.

В процессе разработки форм для отчетности, пользователь захотел видеть процесс загрузки данных из базы. Он хотел, чтобы после нажатия кнопки включался секундомер, а по мере получения строк, их количество отображалось на форме.Реализовать это надо было в рамках существующего проекта на ASP.NET.
Читать полностью »

CLRium, последний анонс перед Москвой - 1


03-04 Апреля в Москве, 17 мая — в Екатеринбурге и 29-30 мая — в Санкт-Петербурге пройдет серия семинаров CLRium Это значит, что всего через 1,5 недели наш зал, предоставленный Фондом Развития Интернет-Инициатив будет готов принять почти что до 300 интересующихся разработчиков.

Мы с Андреем Акиньшиным на данный момент тратим все свое время на подготовку к мероприятию так, чтобы оно вам понравилось и запомнилось. Напоминаю сетку вещания (онлайн, Москва, Питер, Екатеринбург)

Андрей DreamWalker Акиньшин

CoreCLR, RuyJIT, ASP.NET, DNX

  • Поговорим про новое .NET-ядро CoreCLR и будущее платформы .NET.
  • Соберём CoreCLR под Windows и Linux, а также поговорим о новом кроссплатформенном .NET-мире.
  • Рассмотрим внутренности CLR, доступные нам по исходным кодам. (Совместный доклад), встроим в ядро свой функционал.
  • Поговорим про особенности нового RyuJIT и что нам даст его использование (например SIMD и ускоренная JIT-компиляция).
  • Разберёмся в JIT-багах под различные процессорные архитектуры.
  • Взглянем на наисвежайший ASP.NET 5 и систему исполнения DNX.
  • Запустим ASP.NET-сайт под Linux.

Станислав sidristij Сидристый

Магия работы с типами, CoreFx, Roslyn

  • Как наладить самое быстрое взаимодействие между приложениями — SharedMemory — без сериализации ссылочных типов? В результате полученный код упрется ко в одно ограничение — время переключения между потоками приложений.
  • Итоги полугода открытого .NET Framework CoreFx.
  • Возросшая производительность от 10х до 1000х кратной в некоторых местах.
  • Пробрасываем объект и все, на что он указывает в песочницу, обходя все барьеры безопасности в .NET так, чтобы песочница не смогла воспользоваться случаем и сломать защиту
  • Рассмотрим варианты покинуть песочницу на паре уже закрытых бажков ядра CLR
  • Мы научимся делать расширения для MS Visual Studio 2015, встраивая различные рефакторинги кода и анализаторы для рабочих задач: реальные примеры из собственного опыта
  • Как только мы их рассмотрим, мы рассмотрим существующие метрики на Roslyn. Как они написаны, как строятся метрики кода.
  • Далее мы напишем не просто подсчитаем количество букв «а» во всех словах исходных текстов, мы напишем поддержку кортежей для C#, тем самым показав, как легко компании Microsoft будет расширять язык в дальнейшем: нас ждет счастливое будущее!!

Цена — 2,000 руб. Что составляет на самом деле 1/2 от похода в Ашан.

cool Я надеюсь, программа получилась максимально вкусной. Регистрируемся!
Читать полностью »

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

В свободное от работы время занимаюсь созданием торговых роботов. Тема финансовых рынков и автоматизации торгов меня интересует давно, и сегодня я рад поделиться примером создания простого робота на примере известного биржевого терминала от Альфа Банка.

Предыстория

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

Так как рынок находится в постоянном движении, цены меняются. Продав или купив инструмент в нужный момент, можно заработать на разнице курсов. Для того, чтобы человеку не приходилось постоянно находиться у компьютера и следить за ходом торгов, разрабатываются программы-роботы, которые работают по заданному алгоритму — выставляют заявки на покупку и продажу, следят за балансом на счетах и оценивают ситуацию на рынке. Такие роботы настраиваются изначально и затем лишь изредка корректируются человеком, в идеальном случае, конечно. На деле все намного сложнее.
Читать полностью »


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