C# Portal | Программирование
13.3K subscribers
1.28K photos
131 videos
31 files
997 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для C#-разработчика

Сотрудничество, реклама: @devmangx

Менеджер: @Spiral_Yuri

РКН: https://clck.ru/3FocB6
Download Telegram
Тема: Юнит-тестирование в C#

Как писать юнит-тесты в C#?

Для написания юнит-тестов в C# часто используется фреймворк xUnit, NUnit или MSTest. Создайте проект тестов, определите тестовые методы и используйте атрибуты для их маркировки.

- Создание проекта тестов
Для создания проекта тестов в Visual Studio можно использовать шаблон "Проект модульного теста". Для этого в меню "Файл" выберите "Добавить > Создать проект" и в поле поиска введите "test". Выберите шаблон "Проект модульного теста" и нажмите кнопку "ОК".

- Определение тестовых методов
Тесты представляют собой методы, помеченные атрибутом [Test]. Атрибут [Test] указывает, что метод является тестовым.

Вот пример определения тестового метода:

[Test]
public void MyTest() {
// ...
}

Пример использования xUnit на скриншоте. Наш чат|Канал на украинском
👍4🏆31
🔥Дайджест по C# на тему: Полезные материалы для всех, от новичков к профи!

1. Разработка десктопных приложений на C#:
- Windows Forms: Официальная документация Windows Forms для создания десктопных приложений.
- WPF (Windows Presentation Foundation): Ресурсы для создания современных десктопных приложений с помощью WPF.
- Учебник по созданию десктопных приложений на C# с использованием WPF: Практическое руководство по WPF на Habr.

2. Разработка веб-приложений на C#:
- Blazor: Официальная страница Blazor - фреймворка для создания веб-приложений на C#.
- ASP.NET Core Identity: Документация по системе аутентификации и авторизации в ASP.NET Core.
- Создание SPA-приложения с использованием Blazor: Руководство по созданию одностраничного приложения с Blazor на Habr.

3. Разработка микросервисов на C#:
- Docker: Официальный сайт Docker - популярной платформы для контейнеризации приложений.
- Microservices in .NET Core with Docker: Ресурсы по созданию микросервисов в .NET Core с использованием Docker.
- Разработка и развертывание микросервисов на .NET Core с Docker: Практическое руководство по микросервисной архитектуре на Habr.

4. Работа с базами данных:
- Entity Framework Core: Официальная документация Entity Framework Core для работы с базами данных.
- Dapper: Страница проекта Dapper, легковесной библиотеки для доступа к данным в C#.
- Сравнение Entity Framework Core и Dapper: Статья на Habr, сравнивающая EF Core и Dapper по производительности и удобству использования.

5. Разработка мобильных приложений:
- Xamarin.Forms: Официальная документация по разработке кросс-платформенных мобильных приложений на C# с использованием Xamarin.Forms.
- Создание мобильных приложений на C# с Xamarin: Учебный курс от Microsoft по созданию мобильных приложений с Xamarin.
- Практическое руководство по разработке мобильных приложений на Xamarin: Подробное руководство на Habr.

6. Разработка игр на C#:
- Unity: Официальный сайт Unity - мощного игрового движка с поддержкой C# для создания игр.
- Unity Learn: Обучающие материалы и уроки по разработке игр на Unity.
- Разработка 2D игры на Unity с использованием C#: Проект на Habr, в котором подробно описывается создание 2D игры на Unity с использованием C#.

Удачи в изучении языка!
Наш чат|Канал на украинском
👍72🏆1
Тема: Наборы в C#

Наборы (коллекции) в C# - это структуры данных, которые позволяют хранить и управлять группами элементов. Они используются для организации данных и обеспечивают удобный доступ и манипуляции с элементами.

Для чего:
- Хранение данных: Наборы используются для хранения и управления данными, такими как числа, строки, объекты и другие типы данных.
- Поиск и сортировка: Они предоставляют методы для поиска и сортировки элементов, что делает их полезными при обработке данных.
- Итерация: Наборы позволяют легко перебирать элементы в цикле.

Как и где используется:
- List<T>: Используется для хранения и управления списками элементов. Пример: список пользователей в приложении.
- Dictionary<TKey, TValue>: Используется для хранения пар ключ-значение. Пример: словарь с переводами слов.
- HashSet<T>: Используется для хранения уникальных элементов. Пример: хранение уникальных идентификаторов.

Пример использования на скриншоте
👍8🏆31🥱1🐳1
Привет, уважаемые подписчики! У вас есть шанс присоединиться к захватывающей команде и стать частью увлекательных проектов для мобильных приложений! Команда готова воплотить в жизнь новые идеи и подарить миру захватывающие игры с пиксельной графикой!

🎮 Кого мы ищем:

Unity Разработчики: Если вы виртуоз в создании игр на Unity, у вас есть опыт работы(хоть и не большой) с мобильными приложениями и жажда креативных вызовов, то мы хотим видеть вас в нашей команде!

2D Художники: Мы ищем талантливых художников, способных создавать удивительную пиксельную графику с использованием Aseprite и плагина PixelLab. Ваша искусство сделает наши игры неповторимыми!

🚀 О проекте:
Мы работаем над несколькими проектами для мобильных приложений, ориентированными на коммерческий успех.

📈 Что мы предлагаем:
Участие в захватывающих проектах с большим потенциалом.
Дружная команда.
Гибкий график работы и удаленная работа.
Возможность воплотить свои идеи и внести вклад в развитие игровой индустрии.

📩 Как связаться с нами:
Если вы готовы присоединиться к нашей команде и внести свой вклад в создание увлекательных мобильных игр, напишите об этом в комментариях или же в личные сообщения - @bellexmk

Не упустите свой шанс стать частью творческой команды и создавать игры, которые будут радовать игроков! 🎉
👍5
C# Portal | Программирование
Тема: Юнит-тестирование в C# Как писать юнит-тесты в C#? Для написания юнит-тестов в C# часто используется фреймворк xUnit, NUnit или MSTest. Создайте проект тестов, определите тестовые методы и используйте атрибуты для их маркировки. - Создание проекта…
Теперь к практике!

Задание: Напишите функцию IsPrime(int n), которая будет принимать целое число и возвращать true, если число является простым, и false, если оно не является простым. Затем напишите несколько юнит-тестов с использованием фреймворка NUnit для проверки правильности работы функции. Убедитесь, что тесты покрывают как случаи, когда число простое, так и случаи, когда число не простое.

Задание: Разработайте класс EmailValidator, который проверяет, является ли строка электронной почты допустимой. Класс должен содержать метод IsValidEmail(string email), который возвращает true, если переданная строка соответствует стандартам электронной почты, и false в противном случае.

Пишите набор юнит-тестов с использованием фреймворка xUnit или NUnit для проверки EmailValidator. Тесты должны включать в себя разнообразные случаи, такие как правильные и неправильные адреса электронной почты, адреса с разными доменами, адреса с разными символами и так далее.

Задание: Разработайте приложение для управления задачами (To-Do List). Создайте класс TaskManager, который позволяет добавлять, удалять и выполнять задачи. Реализуйте методы для добавления задачи, отметки задачи как выполненной и удаления задачи. Напишите обширный набор юнит-тестов с использованием фреймворка MSTest для проверки функциональности TaskManager. Тесты должны покрывать различные сценарии, включая добавление и удаление задач, выполнение задач и проверку статусов задач.

Наш чат|Канал на украинском
👍51
📝Здравствуйте, уважаемые подписчики! Я хотел бы задать вам вопрос: что бы вы хотели видеть чаще — тесты, задачи, посты на разные темы или полезные приложения для программистов? Также, что бы вы хотели изменить в контенте, или всё вас устраивает? Спасибо!
👍123👏2
Тема: Классы и объекты в C#: Основы, применение и примеры

Классы и объекты - это ключевые концепции объектно-ориентированного программирования (ООП) в языке C#. Они позволяют создавать структурированные и многоразовые модели данных и функций.

1. Для чего используются классы и объекты?

Инкапсуляция: Классы позволяют объединить данные (поля) и методы (функции) в одной сущности, скрывая детали реализации от внешнего мира. Это способствует безопасности и управляемости кода.

Абстракция: Классы позволяют абстрагировать реальные объекты или концепции и представлять их в программе, что делает код более понятным и легким для работы.

2. Как и где используются классы и объекты?

Моделирование реальных объектов: Классы используются для моделирования реальных объектов или концепций в программе. Например, класс "Автомобиль" может иметь поля, такие как "марка", "модель" и "год выпуска", а также методы, такие как "завести" и "выключить".

Работа с данными: Классы часто используются для создания объектов, представляющих данные, и для выполнения операций над этими данными. Например, класс "Список" может содержать методы для добавления, удаления и поиска элементов.

Пример использования в комментариях!
Наш чат|Канал на украинском
👍115🔥2🐳1
Тема: Как можно автоматизировать задачи на C#?

Автоматизация задач на C# может быть достигнута с использованием различных инструментов и библиотек, которые позволяют выполнять повторяющиеся задачи или процессы с минимальным вмешательством человека. Основной принцип автоматизации в C# заключается в написании программного кода, который будет выполнять определенные действия без необходимости вручную управлять ими.

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

Пример использования:

Давайте рассмотрим пример автоматизации задачи с помощью C#. Предположим, у нас есть задача по автоматической отправке электронных писем определенным клиентам в определенное время каждый день. Мы можем использовать библиотеку System.Net.Mail для отправки писем и System.Threading.Timer для установки расписания отправки:

using System;
using System.Net;
using System.Net.Mail;
using System.Threading;

class Program
{
static void Main()
{
Timer emailTimer = new Timer(SendEmail, null, TimeSpan.Zero, TimeSpan.FromHours(24));
Console.WriteLine("Автоматическая отправка писем запущена. Нажмите Enter для выхода.");
Console.ReadLine();
}

static void SendEmail(object state)
{
// Код для отправки электронных писем
string smtpServer = "smtp.example.com";
int smtpPort = 587;
string username = "your_username";
string password = "your_password";

using (var client = new SmtpClient(smtpServer, smtpPort))
{
client.Credentials = new NetworkCredential(username, password);
client.EnableSsl = true;

var mailMessage = new MailMessage();
mailMessage.From = new MailAddress("your_email@example.com");
mailMessage.Subject = "Ежедневное уведомление";
mailMessage.Body = "Добрый день! Это ежедневное уведомление.";

// Добавьте адреса получателей
mailMessage.To.Add("recipient1@example.com");
mailMessage.To.Add("recipient2@example.com");

client.Send(mailMessage);
Console.WriteLine("Письмо успешно отправлено.");
}
}
}

Этот пример демонстрирует, как можно автоматизировать отправку электронных писем каждый день в определенное время, используя C#.
Наш чат|Канал на украинском
👍94🔥1
Тема: Что такое терминальные приложения в C#?

Терминальные приложения в C# представляют собой консольные программы, которые выполняются в командной строке операционной системы. Эти приложения обычно не имеют графического интерфейса и взаимодействуют с пользователем через текстовую консоль. Они могут выполнять разнообразные задачи, от обработки данных до управления системными ресурсами.

Где используются:
Терминальные приложения в C# находят применение во множестве сценариев, включая:
- Автоматизация задач: Такие приложения могут использоваться для автоматизации повседневных задач, например, обновления данных, резервного копирования или управления файлами и папками.
- Управление системами: Они могут быть использованы для управления серверами, системными настройками и мониторингом ресурсов.
- Консольные утилиты: Многие командные утилиты операционной системы также реализованы в виде терминальных приложений.

Пример использования:
Давайте рассмотрим простой пример терминального приложения на C#, которое приветствует пользователя и выводит текущее время.

using System;

class Program
{
static void Main()
{
Console.WriteLine("Добро пожаловать в терминальное приложение!");
Console.WriteLine("Текущее время: " + DateTime.Now.ToString("HH:mm:ss"));
Console.ReadLine();
}
}

Это приложение выводит сообщение приветствия и текущее время в текстовой консоли при запуске, а затем ожидает, пока пользователь нажмет клавишу Enter. Такие приложения могут быть разработаны для выполнения более сложных задач, включая взаимодействие с базами данных, файловой системой и сетью.
Наш чат|Канал на украинском
👍81
Задание(Сложное): Автоматическая обработка и анализ текстовых данных из социальных медиа

Описание задачи:

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

Шаги выполнения задания:

Сбор данных: Реализуйте механизм для сбора текстовых данных из разных источников социальных медиа (API Twitter, Facebook, веб-скрейпинг и т. д.). Сохраните данные в удобной структуре данных.

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

Анализ эмоциональной окраски: Используя библиотеки для анализа тональности текста, определите эмоциональную окраску каждого сообщения (например, позитивную, негативную или нейтральную).

Анализ ключевых слов: Извлеките ключевые слова и фразы из текста, которые наиболее часто встречаются или имеют наибольшее влияние на содержание.

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

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

Расширенный анализ: Дополните анализ данными о времени публикации, активности пользователей и другими метаданными.

Интерактивный интерфейс: Создайте пользовательский интерфейс, который позволит пользователям взаимодействовать с анализированными данными и исследовать их.

Документация и отчет: Напишите подробную документацию к вашей программе и создайте отчет о проделанной работе.

После выполнения данного задания, напишите мне (@azusagavo) для проверки.

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

Удачи в выполнении данного задания!
👍92🕊1💋1
Тема: Что такое иерархия наследования в C#?

Иерархия наследования в C# представляет собой структуру, в которой классы могут наследовать свойства и методы от других классов. Этот механизм позволяет создавать иерархию классов, где более специализированные классы могут наследовать функциональность от более общих классов, что способствует повторному использованию кода и улучшает структуру программы.

Где используется:
Иерархия наследования широко используется в разработке программ на C# и в объектно-ориентированном программировании в целом. Она помогает создавать более организованный и гибкий код, а также упрощает его сопровождение и расширение. Иерархия наследования используется для создания новых классов на основе существующих, наследуя их функциональность.

Пример использования на скриншоте. Наш чат
👍103👏1
Тема: Что такое полиморфизм в C#?

Полиморфизм в C# - это одна из основных концепций объектно-ориентированного программирования (ООП), которая позволяет объектам разных типов обращаться к общему интерфейсу или базовому классу, используя одинаковые методы или свойства. Это позволяет упростить код, сделать его более гибким и расширяемым.

Где используется:
Полиморфизм широко используется в C# и других языках программирования для решения различных задач. Он применяется в следующих областях:
- Наследование и интерфейсы: Полиморфизм часто используется при создании иерархии классов с помощью наследования и интерфейсов. Это позволяет создавать классы, которые могут быть использованы как базовые классы для других классов, обеспечивая однородный доступ к методам и свойствам.
- Перегрузка методов: Полиморфизм также проявляется при перегрузке методов, когда один и тот же метод может иметь несколько версий с разными параметрами. Это улучшает удобство использования и понимание кода.

Пример использования на скриншоте.
👍114
🔥 ДАЙДЖЕСТ ПОЛЕЗНЫХ МАТЕРИАЛОВ ПО C#🔥

1. Асинхронное программирование в C#**
- Статья на Metanit: Асинхронное программирование в C#

2. Введение в Dependency Injection в .NET Core
- Статья на Habr: Введение в Dependency Injection в .NET Core

3. Паттерны проектирования на C#
- Серия статей на Habr: Паттерны проектирования на C#

4. Entity Framework Core: руководство с примерами
- Статья на Metanit: Entity Framework Core: руководство с примерами

5. Лучшие практики создания Web API с ASP.NET Core
- Статья на Habr: Лучшие практики создания Web API с ASP.NET Core

6. Оптимизация производительности приложений на C#
- Статья на Habr: Оптимизация производительности приложений на C#

7. Советы и приемы для опытных C# разработчиков
- Статья на Habr: Советы и приемы для опытных C# разработчиков

8. Использование C# в Unity
- Статья на Habr: Использование C# в Unity

9. Стандарты оформления кода на C#
- Статья на Habr: Стандарты оформления кода на C#

Удачи! Кстати, подпишитесь все на следующий канал, спасибо)

Наш чат!
13👍2
🔥Примеры приложений на C#

Генератор случайных паролей

Это приложение генерирует случайные пароли заданной длины и набора символов.

using System;
using System.Text;

class PasswordGenerator
{
static void Main(string[] args)
{
Console.WriteLine("Генератор случайных паролей");

Console.WriteLine("Введите длину пароля:");
int length = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Включить цифры? (Да/Нет)");
bool includeDigits = Console.ReadLine().Equals("Да", StringComparison.OrdinalIgnoreCase);

Console.WriteLine("Включить специальные символы? (Да/Нет)");
bool includeSpecialChars = Console.ReadLine().Equals("Да", StringComparison.OrdinalIgnoreCase);

string charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
if (includeDigits)
charset += "0123456789";
if (includeSpecialChars)
charset += "!@#$%^&*()_+";

Random random = new Random();
StringBuilder password = new StringBuilder();

for (int i = 0; i < length; i++)
{
int index = random.Next(0, charset.Length);
password.Append(charset[index]);
}

Console.WriteLine("Сгенерированный пароль: " + password.ToString());
}
}
👍173🔥2
Тема: Поля в C#

Что такое поля в C#?

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

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

Пример использования на скриншоте.

Наш чат.
👍74🔥1
Тема: Как осуществить перебор массивов в C#?

В C#, существует несколько способов для перебора массивов, в зависимости от требуемой функциональности и контекста. Основные способы включают в себя использование циклов, методов LINQ, а также делегатов и лямбда-выражений. Давайте рассмотрим каждый из них.

Где используется: Перебор массивов в C# используется в различных сценариях, таких как обработка данных, фильтрация, сортировка, поиск и многие другие операции, которые требуют доступа к элементам массива.

Использование цикла for для перебора массива:

int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}


Использование foreach для перебора элементов массива:

string[] names = { "Alice", "Bob", "Charlie" };
foreach (string name in names)
{
Console.WriteLine(name);
}


Использование LINQ для фильтрации и сортировки массива:

int[] numbers = { 5, 2, 8, 1, 7 };
var sortedNumbers = numbers.OrderBy(n => n);
foreach (var number in sortedNumbers)
{
Console.WriteLine(number);
}


Использование делегатов и лямбда-выражений для условного перебора:

int[] numbers = { 10, 20, 30, 40, 50 };
Func<int, bool> isEven = x => x % 2 == 0;
foreach (int number in numbers.Where(isEven))
{
Console.WriteLine(number);
}

Наш чат.
👍6👏2🔥1
Тема: Что такое переменные класса в C#?

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

Где используется: Переменные класса используются внутри классов C# для представления данных и состояния объектов. Они могут хранить различные типы данных, такие как целые числа, строки, объекты других классов и т. д. Переменные класса часто используются в методах класса для выполнения операций, обработки данных и управления поведением объектов.

Пример использования на скриншоте.

Наш чат.
10👍3🤩1
🔥Примеры приложений на C#

Задача расчета факториала:

- Функция: Разработка консольного приложения для вычисления факториала числа.

- Методы: Можно использовать рекурсивный метод для вычисления факториала.

using System;

class FactorialCalculator
{
static long CalculateFactorial(int n)
{
if (n == 0)
return 1;
return n * CalculateFactorial(n - 1);
}

static void Main()
{
Console.WriteLine("Введите число для вычисления факториала: ");
int number = Convert.ToInt32(Console.ReadLine());

if (number < 0)
Console.WriteLine("Факториал не определен для отрицательных чисел.");
else
{
long factorial = CalculateFactorial(number);
Console.WriteLine($"Факториал {number} = {factorial}");
}
}
}
👍9👏1
Важно!!!
🔥 ДАЙДЖЕСТ ПОЛЕЗНЫХ МАТЕРИАЛОВ НА ТЕМУ "C# ЗА МЕСЯЦ"🔥

1. Основы C#:
- Основы C# для начинающих
- Основы C# для начинающих. Часть 2

2. Объектно-ориентированное программирование (ООП) в C#:
- Объектно-ориентированное программирование на примере C#
- ООП в C# на примерах

3. Работа с коллекциями в C#:
- Коллекции в C#
- Примеры использования коллекций в C#

4. Управление памятью и сборка мусора в C#:
- Управление памятью в .NET: сборка мусора
- Про сборку мусора и утечки памяти

5. Многопоточное программирование в C#:
- Параллельное программирование в .NET
- Параллельное программирование в C# 5.0 и TPL

6. Работа с базами данных в C#:
- Работа с базами данных в .NET (C#)
- Работа с базами данных в .NET

7. Графический интерфейс в C#:
- Создание простого приложения на C# с использованием Windows Forms
- Создание графического интерфейса на C# и WPF

8. Веб-разработка на C#:
- ASP.NET Core: Полное руководство
- ASP.NET Core: Практический курс

9. Тестирование и отладка в C#:
- Unit-тестирование на C#
- Тестирование в .NET. Часть 1: основы

10. Разработка игр на C# с использованием Unity:
- Разработка игр на C# с использованием Unity
- Unity3D: создание игр на C#

11. Работа с файлами и сетью в C#:
- Работа с файловой системой на C#
- Работа с сетью на C#

12. Оптимизация производительности в C#:
- Оптимизация производительности приложений на C#
- 10 советов по оптимизации C#-кода
Наш чат
18👍1