Обновить
124.52

C# *

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

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

Универсальный способ настройки внешнего вида WinForms приложения (на примере FAQ.Net)

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

Введение


После размещения первой статьи о своем приложении FAQ.Net (программа заметок под Windows), появились первые пользователи, для которых хочется дальше развивать свою программу для заметок.

Чтобы повысить интерес у пользователей, возникла идея повысить его привлекательность за счет настройки цвета и шрифта.

Требования к настройке внешнего вида приложения


  1. хранить и загружать свойства отдельных компонентов в XML-файле
  2. пользователь должен иметь простой инструмент по настройке внешнего вида
  3. список настраиваемых компонентов должен очень просто расширяться (одной строкой кода)
  4. при изменении значения свойства пользователь должен сразу видеть изменения на форме
  5. должна быть кнопка отмены, которая позволит вернуть все изменения назад

Результат работы


Окно настройки внешнего вида:



До и после настроек внешнего вида:



Для решения задачи необходимо


  1. использовать компонент PropertyGridEx, для отображения и изменения свойств компонентов
  2. создать класс CustomDesignControl для удобства хранения свойств в XML
  3. создать форму MainForm, на которой будем изменять внешний вид
  4. создать форму AppSettingsForm, на которой будем настраивать внешний вид MainForm
  5. создать класс SettingsXml для удобства работы с XML

Функция отмены изменений внешнего вида


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

Открытый вебинар «Fluent Validation как инструмент валидации данных»

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


И снова здравствуйте! В рамках запуска курса «Разработчик C#» мы провели традиционный открытый урок, посвящённый инструменту Fluent Validation. На вебинаре рассмотрели, как избавиться от кучи if-ов на примере проверки корректности заполнения данных покупателя, изучили внутреннюю реализацию библиотеки и способы применения подхода Fluent Interface на практике. Вебинар провёл Алексей Ягур, Team Lead в компании YouDo.


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

Добавляем функциональность Razor Pages в стандартный .NET

Время на прочтение4 мин
Количество просмотров14K
Razor Pages — новая фича, появившаяся в Core.Net 2.0. Razor Page — это страница, состоящая из стандартной разметки (View) и бэкенд класса. В каком то смысле напоминает Web Forms только без поддержки сохранения состояния. Преимущество такого решения очевидно — мы избавляемся от ненужной прослойки — модели страницы (модель данных в виде например Entity это само собой). Бэкенд страницы является и контроллером и моделью — классика ООП — инкапсуляция данных и методов работы с ними в одном объекте. В конце концов модель страницы — это просто класс, нет никаких причин почему этим классом не может быть контроллер.

Иными словами, Razor Pages — более вменяемое решение для веба чем MVC, теперь мы имеем дело с традиционным и логичным понятием «страница» а не с контролерами и моделями разбросанными по всему проекту. Но поскольку .NET будет развиваться по направлению Core.Net то вряд ли Razor Page появятся в стандартном фреймворке, несмотря на то что ближайшие годы большинство проектов будет оставаться на стандартном .NET. Тем не менее можно изобразить функциональность Razor Pages и на стандартном фреймворке.
Читать дальше →

Путь школьника к разработке мобильных приложений

Время на прочтение6 мин
Количество просмотров14K
Здравствуйте, хочу рассказать о том, как я пришёл к созданию своей первой относительно серьезной игры для IOS и Android.

Предыстория


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

Прототипирование мобильной игры, с чего начать, и как это делать. Часть 3(финал)

Время на прочтение8 мин
Количество просмотров3.9K
В первой части я рассуждал для чего прототипирование и в целом с чего начать
Часть 1

В второй части немножко пробежались по ключевым классам
и архитектуре — Часть 2

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

Скриншоты про ракету в целом унылые, поэтому предлагаю посмотреть видео другого прототипа, который был собран за 2е недели вместе с графикой, и был заброшен в связи с тем что в жанре платформеры и так не протолкнуться. Это кстати одна из ключевых идей вокруг прототипа — собрать, посмотреть, не гавно ли это, нужно ли это? И честно забросить в корзину если вам ответы кажутся недостаточно убедительными. Но! Это не касается творческих проектов — иногда творчество бывает ради творчества ).

Итак видосик, смотреть надо на тексты расставленные по уровню, а не на геймплей ):

Прототипирование мобильной игры, с чего начать, и как это делать. Часть 2

Время на прочтение9 мин
Количество просмотров3.2K
Для тех кто пропустил первую часть — Часть 1
Следующая часть — Часть 3

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

Итак, начинаем собирать всё в кучу



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

Создание системы отчетности для 1С:ERP на базе OLAP и Excel

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

Как программистам так и пользователям известно, как долго и сложно создаются отчеты в 1C. Однако, мы можем предложить на рассмотрение не стандартное решение — это загрузка данных в OLAP. OLAP — онлайн аналитическая отчетность для предприятий с возможностью построения таблиц и графиков. Для тех, кто это попробовал, оказалось экстремально удобным средством для построения аналитической отчетности в Microsoft Excel, как говорится, привычным способом для рядовых пользователей на предприятиях использующих 1С:ERP.


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

Организация системы эвентов в Unity — глазами геймдизайнера

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

Заранее извиняюсь за дилетантизм, но я почитал статью о том, как человек пытался бороться с чрезмерной связностью сущностей в Unity, и подумал, что было бы интересно рассказать о своём велосипеде, который я сколотил для создания игровых прототипов как геймдизайнер.

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

В итоге моя система позволяет не делать таких ссылок вовсе. Она решает главную задачу: мне с ней удобно работать, она не захламляет код лишним мусором и, вроде бы, не так ужасна по производительности как постоянные вызовы GetComponent().

Буду рад любой критике на тему, почему так делать не надо, и как делать всё-таки надо.
Читать дальше →

Руководство по ML.NET — первое приложение за 10 минут

Время на прочтение3 мин
Количество просмотров38K
В прошлом году мы представили ML.NET, кросс-платформенную и открытую систему машинного обучения для разработчиков .NET. За это время она очень сильно развилась и прошла через множество версий. Сегодня делимся руководством по тому, как создать свое первое приложение на ml.net за 10 минут.

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

Veeam Academy для C#-разработчиков: новый сезон

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

Осенью 2018 года Veeam Academy в очередной раз откроет двери для студентов, которые хотят прокачать свои навыки в разработке на C# и .Net Framework.


В этой статье мы хотим рассказать вам, как проходят занятия в Veeam Academy, из каких основных этапов состоит обучение, и что дает Академия нашим выпускникам. Обо всем этом вы узнаете из первых уст, заглянув под кат.

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

Скорость работы скомпилированного Linq Expression Tree

Время на прочтение5 мин
Количество просмотров5.7K
Вот в этой статье в комментариях произошёл не то, чтобы спор, но некоторое «не схождение» в сравнении скорости IL Emit и скомпилированного Linq Expression Tree.

Данная мини статья — код теста скорости + результаты прогона этого теста.
Читать дальше →

Оповещение об ошибках: с каждого контура по-своему

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

Концептуально


Цель кратко


Нужно добиться оперативного (моментального) оповещения ответственных людей об ошибках во всех instance'ах приложения. Причем для разных instance'ов должны быть разные способы доставки логов: для локального запуска программистом оповещать только его; с ПРОДа — лидов проекта, сразу их мобилизуя; с тестового сервера — ответственных за соответствующий контур.

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

Простой плагин для локализации приложений на Unity3D

Время на прочтение9 мин
Количество просмотров8.6K
Я думаю, каждый разработчик на Unity3D рано или поздно сталкивается с необходимостью локализации приложения на несколько языков. В любом случае, лучше заранее заложить это в архитектуру, даже если на старте приложения несколько языков и не требуется.

В данной статье я опишу разработку простого плагина для локализации UI Text-компонентов с возможностью динамической смены языка и редактирования текста в редакторе.
Читать дальше →

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

Векторная геометрия для разработчиков Revit API

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


Класс XYZ представляет координаты в RevitAPI. А раз мы имеем дело с координатами, то следует рассмотреть азы векторной геометрии. Всего два действия: сложение и вычитание векторов, позволят сделать кучу полезной работы.
Читать дальше →

Разработка менеджера тем в UWP-приложении

Время на прочтение13 мин
Количество просмотров5.5K
Приветствую, %username%!

Меня зовут Роман Гладких, я студент третьего курса Сибирского Государственного Университета Телекоммуникаций и Информатики по профилю Супервычисления. Так же являюсь студентом-партнером Майкрософт. Мое давнее хобби – это разработка приложений для Windows Phone и UWP на языке C#.

По умолчанию приложения UWP поддерживают две темы: темную (Dark) и светлую (Light). Так же имеется еще высококонтрастная тема (HighContrast). Такого набора обычно хватает для любого приложения, однако, что делать, если требуется быстро менять тему приложения на лету, причем ограничиваться Light и Dark нет желания?

В данном материале я расскажу, как реализовать свой менеджер тем. Материал ориентирован на новичков, однако и профессионалам может быть интересен. Милости просим под кат!
Читать дальше →

Создание расписания для SCADA системы на основе cron

Время на прочтение5 мин
Количество просмотров5.2K
В продолжение о SCADA системе моего «любимого» торгового центра

Я думаю не мало инженеров в АСУТП сталкивались с требованием заставить «что-то» работать по расписанию. Покажу как реализовал сделал расписание в составе сервера SCADA.
Читать дальше →

Создание простого аудиоредактора

Время на прочтение13 мин
Количество просмотров7.2K
Предлагаем вниманию читателей продолжение статьи от наших партнеров, Music Paradise. В прошлый раз команда представила туториал по извлечению аудиоданных из wav-файлов; сегодня речь пойдет о том, как использовать этот функционал в более широком контексте — при разработке полноценного аудиоредактора со стандартным набором функций.


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

Однолинейные схемы в Revit

Время на прочтение3 мин
Количество просмотров21K
image
Revit — программный комплекс, реализующий принцип информационного моделирования зданий. Изначально программа предназначалась для архитекторов. Теперь все больше компаний при устройстве на работу требуют от инженеров умения работы в Revit. Autodesk Revit предоставляет мощный .NET API, позволяющий разрабатывать собственные приложения для решения различных задач. В данной статье хочу поделиться опытом создания однолинейных схем в Revit.

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

Получаем информацию о рабочем месте пользователя

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

image


0. Предисловие


Все началось с очередного звонка пользователя, который с гордостью сообщил сообщил: — „Всё сломалось“, и с моих „потуг“ удаленно найти PC, на котором работает данный пользователь..


Решение планировало быть простым до безумия и собираться на коленке. Так-как большинство наших сотрудников работают под "виндой" и все рабочие станции входят в домен, был задан вектор поиска решения. Изначально, планировалось написать небольшой скрипт. В его задачу входило собрать базовую информацию о системе и сотруднике, который за этой системой работает. Набор информации минимальный. А именно: логин, название рабочей станции и ее ip. Результат работы сохраняем на сервере, а сам скрипт "вешаем" на пользователя через GPO.


В такой реализации были существенные недостатки в виде:


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

После раздумий пришло решение: использовать бота в Telegram. Прибегнув к небольшой ловкости рук, скрипт был переписан в небольшую программку для отправки информации в чат, за место "скучной" записи в файл на сервере. (+ были добавлены еще некоторые параметры которые оправлялись боту)

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

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