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

C# *

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

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

Нужна ли нормализация в числах с плавающей точкой?

Время на прочтение4 мин
Количество просмотров16K
В прошлом топике (1 ) мы говорили о числах с плавающей точкой/запятой, нормализованных в соответствии со стандартом IEEE754. Там же были рассмотрены денормализованные числа, искусственное введение которых в стандарте привело к чудовищным программно-аппаратным затратам, тормозящим процессы компьютерной обработки чисел в десятки и сотни раз. Но, так уж ли нужна эта самая нормализация и тем более оправдано ли введение экзотического класса денормализованных чисел в компьютерную арифметику? Попробуем разобраться с этим вопросом.
Читать дальше →

Пул соединений MySQL и как это можно использовать для распараллеливания

Время на прочтение14 мин
Количество просмотров17K
Я хочу поделиться со всеми читателями интересной темой, с которой столкнулся совсем недавно, и мне она понравилась. Развитие этой темы доставило мне удовольствие и добавило немного опыта в копилку. Вероятно, многие, а может и нет, сталкивались с пулом соединений БД. После ознакомления с этой интересной опцией мне захотелось написать статью и поделиться ею с вами. Возможно, статья получится немного длинной, но я думаю, что данный пост кому-то все же будет интересно почитать, и его заинтересует данная тема. Может быть наработки с этой статьи кто-то использует в своем проекте, в любом случае, мне будет интересно ее писать и рассказывать ее вам.
Читать дальше

Типичные исправления после обновления Windows Store приложений с версии 8 до 8.1

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

Переводя свои приложения на платформу 8.1, я обнаружил, что это довольно несложное занятие, которое не требует особых усилий.
После перевода зачастую возникают типовые предупреждения, возникшие в результате несоответствия платформ. Разумеется, эти предупреждения желательно исправить.
Рассмотрим самые популярные исправления?
Да, рассмотрим их вместе!

Хочешь вкусного пива, Arduino в помощь

Время на прочтение12 мин
Количество просмотров40K
Данная публикация навеяна другой. Она называется «Контроллер для домашней пивоварни Mega Brewery. Part I» и опубликована за авторством megadenis.

С чего все началось?


Я студент технического ВУЗа. Однажды, сидя в кафе с другом, который тогда учился в медицинском университете, решили открыть бар. Было много идей, которые, в принципе, заслуживали некоторого внимания. Например, танц-пол, который изменяет угол наклона в зависимости от стиля музыки… Но, наряду со всем многообразием идей, так же была еще одна —

… а не сварить ли нам свое пиво?


Через пару недель я сварил пиво, взяв ингредиенты с пивзавода, на котором работал друг отца. Но многие технологические процессы были нарушены, поэтому вместо пива вышло что-то с не очень приятным запахом.

Через несколько лет решил повторить процесс, немного автоматизировав его с помощью Arduino UNO. И вот, что получилось.
Читать дальше →

CRUD Operations Using the Generic Repository Pattern and Unit of Work in MVC

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

От переводчика


После публикации статьи пошло активное обсуждение. Советую почитать комментарии, так как статья не совсем правильна с технической точки зрения. Я рекомендую ее как материал для рассуждений, а не пособие к действию.

Вступление


Сегодня познакомимся с паттерном «Общий репозиторий» (Generic Repository) и подходом Unit of Work в приложениях ASP.NET MVC. Для этого создадим приложение «Книги», в котором будут реализованы операции создания, получения, обновления и удаления данных. Для упрощения понимания материала пример будет построен на использовании только одной сущности книги.

В предыдущей статье «CRUD Operations Using the Repository Pattern in MVC» мы уже создавали приложение с использованием репозитория для сущности книги, реализующее CRUD операции. Но если мы захотим создать подобное приложение, но уже корпоративного уровня, то нам придется создавать по репозиторию на каждую новую сущность. Проще говоря, мы будем дублировать код, что идет в разрез с подходом DRY — поэтому необходимо воспользоваться паттерном «общий репозиторий».


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

Удобный двоичный источник данных взамен Stream

Время на прочтение9 мин
Количество просмотров8.6K
Как обычно получают двоичные данные ваши .NET-компоненты? Если отбросить примитивный случай когда все данные уже в байтовом массиве, то уверен что в виде System.IO.Stream. В общем случае он позволяет собственно только одну операцию — считать в указанный байтовый массив (буфер) указанное количество байтов. При выполнении чтения с помощью этой операции возникают два вида затруднений и одно нерациональное использование ресурсов.

Затруднение номер один: если данные одного и того же источника нужны в нескольких компонентах, то после того как один компонент считал какие то данные из Stream, то он их «потребил», и другим компонентам они уже никак не достанутся. Затруднение номер два: данные нам нужны в виде некоторых блоков, а в результате чтения блок может оказаться в буфере лишь частично (только три байта 32-х битного числа, только половина букв слова и т.д.). Нерациональное использование ресурсов возникает из-за того, что каждый читающий данные компонент должен создавать свой собственный буфер для чтения. Далее я предлагаю простое в использовании решение указанных затруднений, которое позволит очистить ваш код, получить высокую производительность чтения и получать универсальные компоненты.
Читать дальше →

Как тестировать не-публичные методы в .NET

Время на прочтение3 мин
Количество просмотров32K
image Любишь покрывать код тестами? Тебе нравится приятное теплое чувство защищенности, которое возникает при прохождении тестов?

Молодец!

Настоящие профессионалы не полагаются на случай, они стелют соломку заранее держат все под контролем.

Хочешь чтобы внутри, за публичным интерфейсом, тоже все было покрыто тестами?

Пойдем, я расскажу, как это сделать

Эффективное обучение C# разработчиков или Правильное программирование на C# с нуля

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

Эффективное обучение C# разработчиков или Правильное программирование на C# с нуля (Фишки для новичков в программировании организационного характера)



Добрый день тебе, Читатель.

Причиной написания этой статьи стало моё увлечение C# и некотоые наблюдения, изложенные ниже.
Я и помогавшие мне тренеры по избранной мной дисциплине, применяли свой опыт и наблюдательность, преследуя простую цель: Хоть кому-то облегчить жизнь программиста, сделать обучение лучше и удобней. К тому же это такое, своего рода, инсайдерство — Чистой воды GNU философия, приложенная к Майкрософтовскому продукту.

Как и многие другие, я столкнулся с отсутствием систематических и позволяющих получить понимание предмета материалов, рассчитанных на людей, к программированию ранее отношения не имевших. Говоря иначе, стало ясно, что — Нету в Укрнете такого ресурса или библиотеки с online консультантом профи, которые давали бы возможность взять и понять основы программирования. Вы скажете, минуточку, а как же Сертификационные центры Майкрософт. Есть ещё мощный и системный «Кибер Бионик Систематикс». Есть академия «ШАГ», прости Господи, ставшая притчей во языцех. Но все же обучающая. Все же…
Конечно, всё это есть. Платно, но ладно — «Бог с ними». Лишь бы доступно. Лишь бы с пользой для людей…
Здесь речь пойдёт не совсем об этом. Здесь статья о Старте. Той ситуации, когда человек хочет научиться и ищет информацию. Ищет. Ищет. Хочет. Очень хочет. И, всё-же, находит (Речь же всё таки идёт о наших студентах:) и, конечно-же, делает ошибки (Речь же всё таки идёт о наших студентах:).
Вот на их (ошибок) базе и базе здравого чувства юмора, мы и построили данный материал.
Надеемся, он понравится Вам.
Читать дальше →

Singleton serialization или сад камней

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

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

Работаем с реестром запрещенных ресурсов

Время на прочтение15 мин
Количество просмотров81K
Автоматизация получения реестра запрещенных ресурсов средствами C#, OpenSSL и фильтрация средствами RouterOS на базе оборудования MikroTik

image

Внимание! Статья изменена согласно последних изменений на 19/03/2014
Читать дальше →

Футбол на плюсе, ч.2: практическая

Время на прочтение4 мин
Количество просмотров6.9K
Несмотря на некоторый скепсис, по поводу первой части материала, как и обещал, публикую результаты, и то как они были получены.
В основном манипуляции производились с данными, хранимыми в Excell, таблицы которого сформированы по 3НФ, поэтому в некоторых местах кода вместо индексов используются данные из ячеек. Итак согласно алгоритму необходимо получить коэффициент клуба и климатическую характеристику города, в котором этот клуб принимает соперников = команда: {климат, рейтинг} — это и есть основная цель. Поехали.
Читать дальше →

DropDownList, Задать «value» для default option в MVC 4

Время на прочтение3 мин
Количество просмотров20K
Здравствуйте. Больше двух лет создавал сайты на ПХП и все было прекрасно. Но в один прекрасный день проснулся и понял, что пхп — хорош, но не то. Потом рассматривал еще долго на чем лучше писать веб приложения, сравнивал, анализировал. В итоге остановился на C# и ASP.NET MVC 4. Даже после Zend Framework 2 — MVC 4 просто нечто: легко, красиво, просто, быстро, мало кода.

Но вот столкнулся с проблемой, решение которой в Гугле не нашел. Как вывести выпадающий список и задать значение по умолчанию. Думаю для «бывалых» — это будет не проблема. Это то, что один раз «проехать» и больше никогда не вспомнишь, что были проблемы с этим. но вот проехать для новичка бывает довольно затруднительно. Если честно, то поначалу было просто вывести выпадающий список тяжко. Хотя мануалы по ASP.NET MVC на порядок превосходят «Быстрый старт» для любого фреймворка пхп.

Сей мануал предполагает, что Вы уже оперируете знаниями, полученными при ознакомлении с этими статьями: Entity Framework в приложении ASP.NET MVC. Или этими: ASP.NET MVC 4 Tutorials

Начнем с вывода Выпадающего списка.
1) Модель. Аннотаций и связей нету для упрощения примера.
Читать дальше →

C# консоль для выполнения простых «скриптов»

Время на прочтение13 мин
Количество просмотров44K
Вы когда нибудь выполняли массовое переименовывание файлов, или какую-нибудь другую, кажущуюся банально лёгкой, но рутинную задачу? Ни разу не создавали bat'ники, но знаете C#?

Находясь в похожей ситуации, в течение 15 минут было создано довольно простое приложение которое похоже на консоль, но которое понимает C#.

image

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

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

Работа с GPS в WinCE (C#)

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

Введение


Всем привет!
В этой статье я хочу рассмотреть вопрос реализации доступа к данным GPS в устройствах на базе WindowsCE. При создании продукта СКАУТ-Навигатор, необходимо было разработать приложение, работающее как в WinСЕ версии 5.0, так и в WinCE версии 6.0, которое умеет получать данные NMEA с навигационного приемника, и записывать их в журнал.

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

Использование JSON контроллера MVC в Visual Studio на шаблоне Empty Web Site и языке C#

Время на прочтение5 мин
Количество просмотров14K
Речь в этой статье пойдет про подключение библиотеки MVC3 в Visual Studio 2010. Но мы не будем использовать шаблон проекта «ASP.NET MVC3 Web Application», а создадим Веб-сайт (Веб-узел) на основе шаблона «Empty Web Site», то есть с нуля. Мы будем подключать библиотеку к пустому Веб сайту, т.к. шаблона MVC для Веб сайта нет.
В конце статьи будет реализован JSON контроллер на основе библиотеки MVC.
Читать дальше →

Жизненный цикл Request в MVC 3 Framework приложении

Время на прочтение7 мин
Количество просмотров8.6K
Любой разработчик знает, что URL в маршрутизации MVC играет ключевую роль. Как известно, существует стандартная маршрутизация:

routes.MapRoute(
                "Default",
                "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional );


Она представляет собой правило по которым выбираются маршруты. В простейших случаях, можно поменять местами action и controller, или добавить еще множество параметров, которые будут выглядеть в url следующим образом- param1/param2/param3/. Иногда, например в CMS системах, необходимо сделать так, чтоб часть url приходила как переменная.

routes.MapRoute(
                "Default",
                "{controller}/{action}/{*url}",
               new { controller = "Content", action = "Home", url = UrlParameter.Optional
});


Это правило выделяет Action и Controller, а остальную часть присваивает переменной url.
Регистрируются Routes при старте приложения. А именно в файле Global.asax в методе Application_Start().

Для создания большинства приложений этих знаний хватает. Цель же моей статьи пройти весь жизненный цикл Request и посмотреть, что же происходит, перед тем как приложение разберет url и передаст управление нужному action.

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

Ликвидатор велосипедов, часть 3: языки программирования

Время на прочтение4 мин
Количество просмотров2.8K
Вообще говоря, речь пойдет о разработке компиляторов не Just for fun, а для каких-либо проектов. Это могут быть проекты для внутреннего использования, или может быть это будут проекты, которые направлены на продажу. А может быть, на самововлечение сообщества для последующего доения этого сообщества. Я не буду разбирать причины, по которым может показаться, что создание нового языка программирования выведет компанию на новый уровень, однако причины находятся, языки пишутся, создавая, на мой взгляд, огромные проблемы, как самой компании, так и сотрудникам этой компании.

Ссылка на первую часть серии: оконные системы
Ссылка на вторую часть серии: построение графиков

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

Просто о сложном: архитектура фронта для техлида

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров743

Привет, Хабр! Меня зовут Максим Вишневский, я архитектор (в основном фронтенда) и автор небольшого Telegram-канала Вишнёвые истории. Эта статья основана на моём докладе с TeamLead Conf++ 2024.

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

Читать далее

C#, Кодогенерация и DDD Часть 3.2 — Добавляем шины, обработчики сообщений и реализацию обработчиков сообщений

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров2.7K

В прошлой статье мы сгенерировали Enpoint-ы WebApi по описанию на основе классов, свойств и атрибутов.

(первая часть, вторая часть, третья часть, четвертая часть)

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

Читать далее

Балансирование нагрузки при разделяемых ресурсах при помощи очередей в Hangfire

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.9K

Привет, Хабр! При создании фоновых работ, например, через Hangfire, может быть актуально учитывать разделяемые ресурсы (например, базы данных, внешнюю API или файловую систему). Поскольку такие ресурсы являются ограниченными, возникает потребность управления количеством параллельно исполняемых задач без написания сложной логики. Интересующимся особенностями распределения ресурсов в Hangfire при помощи очередей — пожаловать под кат :)

Читать далее

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