Ответ
Моим первым серьёзным проектом на C# было десктопное приложение для учёта книг в небольшой библиотеке, написанное на Windows Forms.
Что я реализовал:
- CRUD-операции: Добавление, редактирование, удаление и поиск записей о книгах и читателях.
- Работа с базой данных: Использовал ADO.NET и SQLite для локального хранения данных.
- Простой UI: Формы с DataGridView для отображения таблиц, TextBox для ввода, кнопки для действий.
Пример фрагмента кода (добавление книги):
private void btnAddBook_Click(object sender, EventArgs e)
{
using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
var command = new SQLiteCommand(
"INSERT INTO Books (Title, Author, Year) VALUES (@title, @author, @year)",
connection);
command.Parameters.AddWithValue("@title", txtTitle.Text);
command.Parameters.AddWithValue("@author", txtAuthor.Text);
command.Parameters.AddWithValue("@year", int.Parse(txtYear.Text));
command.ExecuteNonQuery();
MessageBox.Show("Книга добавлена!");
}
}
Этот проект, хоть и был простым с точки зрения архитектуры (отсутствовали слоистая архитектура, Dependency Injection), дал мне фундаментальное понимание работы с C#, WinForms, SQL и паттерном «форма-код-база данных». Позже я переписал его на WPF с использованием MVVM и Entity Framework.
Ответ 18+ 🔞
Давай я тебе расскажу, как я впервые на C# вляпался по самые помидоры. Мой первый серьёзный проект — это была десктопная хрень для библиотеки, на Windows Forms, ёпта.
Что я там нагородил, сам от себя охуев:
- CRUD-операции: Ну, классика жанра — создавать, читать, обновлять и удалять книги с читателями. И поиск, конечно, куда ж без него.
- Работа с базой данных: Взял ADO.NET и SQLite, чтобы всё это безобразие хоть где-то хранилось. Локально, без затей.
- UI, который глаз режет: Формы, эти ваши DataGridView, кучка TextBox'ов и кнопок. Дизайн — на уровне «лишь бы работало», терпения ноль ебать на красоту тогда было.
Смотри, какой кусок кода у меня был (добавление книги):
private void btnAddBook_Click(object sender, EventArgs e)
{
using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
var command = new SQLiteCommand(
"INSERT INTO Books (Title, Author, Year) VALUES (@title, @author, @year)",
connection);
command.Parameters.AddWithValue("@title", txtTitle.Text);
command.Parameters.AddWithValue("@author", txtAuthor.Text);
command.Parameters.AddWithValue("@year", int.Parse(txtYear.Text));
command.ExecuteNonQuery();
MessageBox.Show("Книга добавлена!");
}
}
Если честно, архитектура там была — пизда рулю. Никаких слоёв, Dependency Injection'ов, одна сплошная спагетти-каша по принципу «форма-код-база». Но, бля, зато я на этом собаку съел! Понял, как C# дышит, как с WinForms и SQL вязаться, как этот паттерн «накидал кнопок — написал код — запихнул в базу» работает. Потом, конечно, меня осенило, и я эту же штуку на WPF переписал, с MVVM и Entity Framework, уже как цивилизованный человек. Но первый блин, тот самый комом, — он самый ценный, ебать мои старые костыли.