Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Программа выведет следующий результат:
Infinity
Infinity
DivideByZeroException


Первые две строчки выполнятся и выведут Infinity. При делении произойдёт конвертация int к double, а операция double operator/(double x, double y) выполняется согласно IEEE 754 (ECMA-334, 14.7.2), а значит при делении положительного числа на положительный ноль должна вернуть положительную бесконечность. Операция int operator/(int x, int y) бросает DivideByZeroException в случае, если правый операнд равен нулю (ECMA-334, 14.7.2). Поэтому третья операция деления выбросит исключение, о чём будет выведено соответствующее сообщение.

Источник: «Задачник.NET» Андрея Акиньшина
RetireNet ― расширение, предназначенное для проверки вашего .NET Core проекта на наличие известных уязвимостей.

https://proglib.io/w/bff6cd49
Вакансия: С# разработчик (full-stack / back-end)
Уровень: Senior
Компания: Mindbox, автоматизация маркетинга в России. Разрабатываем продукт для крупного и среднего бизнеса.
Вилка: 200 000 - 240 000

👨‍🎓 Ожидаем: знания BCL / CLR, чистый код, шаблоны классической и распределенной архитектуры, DDD, оптимизация производительности (желательно, SQL)

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

📌 Условия:
- Прозрачные грейды: разработчиков до 260 000 ₽/мес net, архитекторов, SM — до 320 000 ₽. Квартальные премии от прибыли продуктов
- Комфортный офис (м.Савеловская, м.Белорусская)
- На 100 000 ₽/год софинансируем образование (80%), спорт и здоровье (35%). Книги бесплатно
- Хорошее техническое оснащение
- Молодой коллектив. Спорт, квесты, настолки, ЧГК, VR и караоке

Контакты: @kate_tihorenko

➡️ Подробности - https://proglib.io/vacancies/s-razrabotchik-full-stack-back-end-mindbox-2020-05-19
👍1
Погружаемся в мир 3D-графики, освежаем знания по математике, основам линейной алгебры, тригонометрии, построению матриц и т.д.

В рамках статьи автор рассматривает, как трансформируются 3D-модели и как учитываются источники света. Чтобы помочь с объяснениями, автор приводит диаграммы и примеры кода, чтобы продемонстрировать, как математика и числа обрабатываются в играх.

https://proglib.io/w/cfaa8be0
Действительно, программа выведет str == null и 1/1/0001 12:00:00 AM.

Обе переменные не инициализированы, но string — это ссылочный тип (если более точно, то это immutable тип, что означает reference тип с семантикой value типа), а DateTime представляет из себя тип значения. В связи с тем, что значение по умолчанию неинициализированного типа DateTime определяется как 12:00 1 января 1 года, второе условие не выполнится и мы попадем в альтернативное условие и программа выведет 1/1/0001 12:00:00 AM.
Завершение темы, связанной с рендерингом 3D-игр:

Растеризация и трассировка лучей
Билинейная, трилинейная, анизотропная фильтрация
Освещение и тени. Математика освещения

Вдобавок хотелось бы отметить важную тему про обновление языка C#: ведущий дизайнер языка C# Мэдс Торгерсен делится соображениями по поводу некоторых функций, которые они планируют добавить в C# 9.0.

https://proglib.io/w/34d55d81
Iris_Classon_Migrating_ASP_NET_Microservices_to_ASP_NET_Core_By.pdf
4.9 MB
Migrating ASP.NET Microservices to ASP.NET Core: By Example (2019)

Автор(ы): Iris Classon

Перенесите существующий микросервисный кластер из ASP.NET в ASP.NET Core. Хотя улучшенная производительность и кроссплатформенная поддержка очевидны, эта книга поможет вам преодолеть многие проблемы, чтобы определить, как, когда и в какой степени требуется миграция.

Внедрение Microsoft .NET Core вызвало много радости, но также и путаницу для разработчиков, привыкших к приложениям и сервисам ASP. В этой книге приводятся конкретные шаги по частичной или полной миграции системы микросервисов SaaS с учетом ограниченных ресурсов, времени и финансов.

В дополнение к практическим советам и реальным примерам рассказано о многих неудачах, которые предоставят вам полный 360-градусный обзор миграции.

Автор делится предписывающими рекомендациями по всем частям системы — от кода, зависимостей, редакторов, интеграции и конвейера развертывания до модели распространения.
Конструкция a += Foo(); развернётся в a = a + Foo();, где сначала оценится левый операнд a, равный нулю. Затем оценится правый операнд, который вернёт 1. В итоге в a запишется значение 1, несмотря на то, что внутри метода Foo произошло переприсвоение поля a.

Источник: «Задачник.NET» Андрея Акиньшина
🔝 Топовый Вечный! По смехотворной цене! 🔝

8 ГБ RAM / 4x4.5 ГГц CPU / 80 ГБ NVMe / 500 Мбит/сек / anti-DDoS

Размещение в лучшем московском дата-центре Datapro, подключение к каналу 500 Мбит/сек, выделенный IPv4 адрес, защита от DDoS.

🔥Спешите узнать подробней и заказать
https://proglib.io/w/7b0538bf
Одной из наиболее интересных функций .NET Core 3.0 и C# 8.0 было добавление IAsyncEnumerable <T> (асинхронный поток). Но что в нем особенного? Что мы можем сделать сейчас, что было невозможно раньше?

https://proglib.io/w/2cd1ac6b