Привет! Наш коллега, Скотт Хансельман, считает, что в рамках изучения языка программирования важно не только кодить и практиковаться в написании, но и изучать чужой код. «Читайте чужой код» говорит Скотт и приводит полезные материалы, которые он нашел в наработках своего коллеги. Подробнее под катом!
Рубрика «.net» - 59
RabbitMQ — SQL Server
2018-08-08 в 6:58, admin, рубрики: .net, AMQP, big data, C#, clr, Microsoft SQL Server, sql server; rabbitmq; c#; .netНеделю или две назад я увидел сообщение на форуме RabbitMQ Users, о том, как наладить отправку сообщений из SQL Server в RabbitMQ. Поскольку мы плотно с этим работаем в Derivco, я оставил там некоторые предложения, а также сказал, что пишу в блоге о том, как это можно сделать. Часть моего сообщения была не совсем верной — по крайней мере, до этого момента (сорри, Бро, был очень занят).
Потрясающая штука, этот ваш SQL Server. С его помощью очень легко поместить информацию в базу данных. Получить данные из базы с помощью запроса столь же просто. А вот получить только что обновленные или вставленные данные уже немного сложнее. Подумайте о событиях в реальном времени; совершена покупка — кого-то нужно уведомить об этом в тот же момент, как только это произошло. Возможно, кто-то скажет, что такие данные должны выталкиваться не из базы данных, а откуда-то еще. Безусловно, так оно и есть, но довольно часто у нас попросту нет выбора.
Читать полностью »
typeof(T) vs. TypeOf⟨T⟩
2018-08-07 в 9:35, admin, рубрики: .net, C#, Программирование, Промышленное программированиеИногда рефлексивные вызовы дороги в терминах производительности и не могут быть опущены.
В этой статье представлены паттерны, позволяющие существенно повысить производительность множественных рефлексивных вызовов посредством техники виртуализации (кэширования) результатов.
Создаем простой API-шлюз в ASP.NET Core
2018-08-06 в 9:49, admin, рубрики: .net, .net core, api, backend, C#Привет! Представляю вашему вниманию перевод статьи "Creating a simple API Gateway in ASP.NET Core".
Время чтения: ~10 минут
В моей предыдущей статье, JWT аутентификация для микросервисов в .NET, я рассмотрел процесс создания микросервиса для аутентификации пользователей. Это может быть использовано для проверки личности пользователя перед совершением любых действий в других компонентах системы.
Другой жизненно необходимый компонент для работы продукта это API-шлюз — система между приложением и бэкэндом, которая, во-первых, маршрутизирует входящие запросы на соответствующий микросервис, и во-вторых, авторизует пользователя.
Существует много фреймворков которые могут быть использованы для создания API-шлюза, например, Ocelot в .NET core или Netflix Zuul в Java. Тем не менее, в этой статье я опишу процесс создания простого API-шлюза с нуля в .NET Core.
Додо: IT-компания, которая делает пиццу. Программирование и IT-процессы – АйтиХайп
2018-08-02 в 6:03, admin, рубрики: .net, agile, tdd, xp, айтихайп, Блог компании Конференции Олега Бунина (Онтико), додо, парное программирование, управление разработкойВ первом выпуске видеоблога АйтиХайп мы пришли в гости в Додо Пиццу, где обсудили интеграцию IT и бизнеса, экстремальное программирование, Agile, удаленную работу, архитектуру их систем и особенности найма. Можно пройти под кат и почитать цитаты из интервью и немного истории, а можно сразу перейти к видео.
[DotNetBook] Span: новый тип данных .NET
2018-08-01 в 13:15, admin, рубрики: .net, C#, clrbook, memory, memory management, span, unsafe
С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом (уже готово около 200 страниц книги, так что добро пожаловать в конец статьи за ссылками).
Как язык, так и платформа существуют уже много лет: и все это время существовало множество средств для работы с неуправляемым кодом. Так почему же сейчас выходит очередной API для работы с неуправляемым кодом если по сути он существовал уже много-много лет? Для того чтобы ответить на этот вопрос достаточно понять чего не хватало нам раньше.
Разработчики платформы и раньше пытались нам помочь скрасить будни разработки с использованием неуправляемых ресурсов: это и автоматические врапперы для импортируемых методов. И маршаллинг, который в большинстве случаев работатет автоматически. Это также инструкция stackallloc
, о которой говорится в главе про стек потока. Однако, как по мне если ранние разработчики с использованием языка C# приходили из мира C++ (как сделал это и я), то сейчас они приходят из более высокоуровневых языков (я, например, знаю разработчика, который пришел из JavaScript). А что это означает? Это означает что люди со все большим подозрением начинают относиться к неуправляемым ресурсам и конструкциям, близким по духу к C/C++ и уж тем более — к языку Ассемблера.
Статья хоть и большая, но является вводной в тему
Span<T>
иMemory<T>
. Планируется что выйдет еще две: первая проMemory<T>, MemoryManager<T>, MemoryHandler<T>
иMemoryPool<T>
. Вторая — про низкоуровневые особенности и вопросы кSpan<T>
иMemory<T>
.
Akka Streams для простых смертных
2018-07-31 в 8:40, admin, рубрики: .net, akka streams, C#, dotnext, dotnext2018moscow, Блог компании JUG.ru Group, ПрограммированиеКак можно несколькими строками кода распечатать непрерывный поток сообщений из Твиттера, добавив в него данные о погоде в местах проживания их авторов? И как при этом ограничить скорость запросов к провайдеру метеоусловий, чтобы они не внесли нас в черный список?
Расскажем вам сегодня, как это сделать, но сначала познакомимся с технологией Akka Streams, позволяющей работать с потоками данных в реальном времени так же просто, как программисты работают с LINQ-выражениями, не требуя при этом ручной реализации ни отдельных акторов, ни интерфейсов Reactive Streams.
В основе статьи — расшифровка доклада Вагифа Абилова с нашей декабрьской конференции DotNext 2017 Moscow.
Читать полностью »
От простых скриптов к клиент-серверному приложению на WCF своими руками: почему мне нравится работа в CM
2018-07-26 в 8:00, admin, рубрики: .net, C#, configuration management, Блог компании «Veeam Software», Программирование, управление проектамиРабота в команде Configuration Management связана с обеспечением функциональности билд-процессов — сборки продуктов компании, предварительной проверки кода, статистического анализа, ведения документации и многого другого. Помимо этого, мы постоянно работаем над оптимизацией различных процессов, и, что замечательно, мы практически свободны в выборе инструментов для этой интересной работы. Далее я подробно расскажу о том, как, обладая лишь разного уровня знаниями в C# и C++, я сделал функциональный WCF-сервис для работы с очередями фиксов. И почему решил, что это очень важно.
Кроссплатформенная разработка с помощью .NET, реактивного программирования, шаблона MVVM и кодогенерации
2018-07-24 в 8:30, admin, рубрики: .net, android, avaloniaui, C#, fody, reactive programming, reactiveproperty, reactiveui, uwp, windows, wpf, xamarin.forms, Программирование, разработка под windowsСегодня платформа .NET является по-настоящему универсальным инструментом – с её помощью можно решать широчайший круг задач, включая разработку прикладных приложений для популярных операционных систем, таких, как Windows, Linux, MacOS, Android и iOS.
В настоящей статье рассмотрим архитектуру кроссплатформенных .NET приложений с использованием шаблона проектирования MVVM и реактивного программирования. Познакомимся с библиотеками ReactiveUI и Fody, научимся реализовывать интерфейс INotifyPropertyChanged с помощью атрибутов, затронем основы AvaloniaUI, Xamarin Forms, Universal Windows Platform, Windows Presentation Foundation и .NET Standard, изучим эффективные инструменты для модульного тестирования слоёв модели и модели представления приложения.
Материал является адаптацией статей "Reactive MVVM For The .NET Platform" и "Cross-Platform .NET Apps Via Reactive MVVM Approach", опубликованных автором ранее на ресурсе Medium. Читать полностью »
Напиши мне GraphQL сервер на C#
2018-07-23 в 7:33, admin, рубрики: .net, C#, graphql-server graphql-dotnet, Блог компании ДоксВижн, Программирование, Разработка веб-сайтовКак-то выдалась у меня пара выходных, и я набросал GraphQL сервер к нашей Docsvision платформе. Ниже расскажу, как все прошло.