Rozwój aplikacji C#: Zakończenie formularza tworzenia zespołu (Lekcja 14)
W tej lekcji wideo z kursu C# From Start to Finish Tima Coreya, Tim wraca do formularza Create Team, aby ukończyć ostatnią część: przycisk Create Team. Tim wyjaśnia, że chociaż większość formularza jest już podłączona, przycisk, który faktycznie przechowuje dane zespołu w bazie danych, nadal wymaga wdrożenia.
C# (wymawiane 'C sharp') to nowoczesny, zorientowany obiektowo język programowania stworzony przez Microsoft w 2000 roku jako część .NET framework. C# jest szeroko stosowany do tworzenia różnych aplikacji, w tym aplikacji Windows, usług sieciowych i nie tylko, co czyni go popularnym wyborem wśród programistów korporacyjnych.
Ta lekcja daje głębsze spojrzenie na to, jak zbudować aplikację Windows Forms, połączyć ją z bazą danych SQL i wdrożyć operacje CRUD za pomocą procedur składowanych.
Learning C# Fundamentals
Opanowanie podstaw C# to podstawa dla każdego programisty dążącego do budowania solidnych, skalowalnych i wysokowydajnych aplikacji .NET. Jako język zorientowany obiektowo, C# umożliwia programistom tworzenie szerokiej gamy rozwiązań, od aplikacji desktopowych i webowych po aplikacje mobilne, a nawet rozwój gier. Ta wszechstronność sprawia, że C# jest najlepszym wyborem w nowoczesnym rozwoju oprogramowania, pozwalając programistom eksplorować i innowować na wielu różnych platformach i technologiach.
Ekosystem .NET oferuje kompleksowy zestaw bibliotek i narzędzi, które upraszczają rozwój .NET. Visual Studio wyróżnia się jako główne zintegrowane środowisko programistyczne (IDE) do budowania, debugowania i wdrażania aplikacji .NET, podczas gdy Visual Studio Code dostarcza lekki, międzyplatformowy edytor kodu idealny do szybkiego rozwoju i łatwego dostępu do kluczowych funkcji. Niezależnie od tego, czy tworzysz aplikacje na Windows, macOS, czy Linux, framework .NET Core zapewnia wsparcie międzyplatformowe, umożliwiając twoim aplikacjom działanie płynnie na różnych urządzeniach i w różnych środowiskach.
Dla oprogramowania korporacyjnego i skalowalnych aplikacji C# i platforma .NET zapewniają wysoką wydajność i niezawodność. Programiści pracujący z C# mogą korzystać z ASP.NET Core do budowania nowoczesnych, międzyplatformowych aplikacji webowych oraz Razor Pages dla uproszczonego doświadczenia webowego. Z wprowadzeniem .NET MAUI, teraz łatwiej niż kiedykolwiek budować aplikacje mobilne działające na wielu platformach przy użyciu jednej bazy kodu, co dodatkowo rozszerza zasięg twojego projektu .NET.
Pojedynczy programista może korzystać z mocy C# do tworzenia wszystkiego, od prostych przykładów kodu i aplikacji konsolowych po złożone rozwiązania na poziomie korporacyjnym. Regularne aktualizacje platformy .NET przynoszą ulepszenia wydajności, nowe funkcje i zwiększone zabezpieczenia, zapewniając, że aplikacje są aktualne z najnowszymi technologiami. Dostęp do szerokiej gamy bibliotek i materiałów edukacyjnych, w tym tutoriali, projekty próbne i przykłady kodu, ułatwia naukę C# i rozpoczęcie tworzenia realnych aplikacji szybko.
Użycie C# nie tylko zmniejsza liczbę błędów, ale także poprawia jakość kodu dzięki silnemu typowaniu i nowoczesnym funkcjom programowania. Niezależnie od tego, czy jesteś zainteresowany rozwojem webowym, budowaniem aplikacji desktopowych, czy eksplorowaniem rozwoju mobilnego i gier, C# i framework .NET dostarczają narzędzi, zasobów i wydajności potrzebnej do odniesienia sukcesu w dzisiejszym szybkim tempie rozwoju oprogramowania. Z C# możesz pewnie tworzyć skalowalne, wysokowydajne aplikacje, które spełniają wymagania użytkowników i firm.
Zrozumienie struktury bazy danych przed kodowaniem
Tim zaczyna, podkreślając znaczenie zrozumienia projektu bazy danych przed napisaniem jakiegokolwiek kodu. Pokazuje, że aplikacja korzysta z dwóch głównych tabel: Teams i TeamMembers. Tabela Teams zawiera tylko TeamID i TeamName, podczas gdy TeamMembers przechowuje TeamID i PersonID.
Tim wyjaśnia, że kolejność wstawiania danych ma znaczenie, ponieważ aplikacja musi najpierw utworzyć zespół, uzyskać jego ID, a następnie dodać członków do tego zespołu, używając zwróconego ID. To ustawienie jest niezbędne w projekcie warstwy dostępu do danych w C#, zapewniając, że aplikacja pozostaje spójna i dokładna.
Tworzenie procedur składowanych SQL do wstawiania zespołów
Aby prawidłowo wstawiać dane do bazy danych, Tim tworzy dwie procedury składowane SQL, co jest powszechnie najlepszą praktyką w programowaniu baz danych i rozwoju SQL Server.
SP_Teams_Insert
Tim tworzy procedurę składowaną, która przyjmuje nazwę zespołu i wyprowadza nowy identyfikator zespołu za pomocą SCOPE_IDENTITY(). To podejście jest typowe w procedurach składowanych SQL Server dla utrzymania integralności referencyjnej.
INSERT INTO dbo.Teams (TeamName)
VALUES (@TeamName)
SELECT @Id = SCOPE_IDENTITY()
SP_TeamMembers_Insert
Następnie Tim tworzy procedurę składowaną do wstawiania członków zespołu. Przyjmuje TeamID i PersonID i wyprowadza nowy identyfikator rekordu.
INSERT INTO dbo.TeamMembers (TeamID, PersonID)
VALUES (@TeamID, @PersonID)
SELECT @Id = SCOPE_IDENTITY()
Tim ostrzega przed kopiowaniem i modyfikowaniem kodu SQL, ponieważ nawet drobne błędy mogą powodować poważne problemy, co jest kluczową wskazówką dla programistów baz danych.
Czy CreateTeam powinno być jedną metodą czy dwiema?
Tim następnie odnosi się do decyzji projektowej: czy tworzenie zespołu i dodawanie członków zespołu powinno być obsługiwane przez jedną metodę czy dwie oddzielne metody? Odwołuje się do Zasady Jednej Odpowiedzialności (SRP), ale twierdzi, że ten proces reprezentuje jedną transakcję: tworzenie zespołu i przypisywanie członków.
Tim wnioskuje, że połączenie ich zapobiega scenariuszowi, w którym zespół jest tworzony, ale jego członkowie nie są dodani - co skutkuje niekompletnymi danymi. Ta decyzja projektowa jest fundamentalna w architekturze oprogramowania, szczególnie w pracy nad aplikacjami korporacyjnymi w C#. C# jest szeroko używany w rozwoju oprogramowania korporacyjnego ze względu na swoje bezpieczeństwo, skalowalność i łatwość utrzymania.
Implementacja CreateTeam w interfejsie połączenia danych
Tim dodaje nową metodę do interfejsu połączenia danych:
TeamModel CreateTeam(TeamModel model);
Zapewnia, że zarówno połączenie SQL, jak i połączenie tekstowe implementują tę metodę, demonstrując właściwe użycie interfejsów i czystą architekturę w C#. Korzyści z użycia interfejsów i czystej architektury w rozwoju aplikacji C# obejmują poprawioną utrzymywalność kodu, łatwiejsze testowanie i większą elastyczność przy dostosowywaniu do nowych wymagań.
Implementacja złącznika SQL: Wstawianie zespołu i członków
Tim buduje logikę SQL kopiując istniejące wzorce. Wykonuje:
-
Wstaw nazwę zespołu i uzyskaj TeamID.
- Przejdź przez każdego członka i wstaw do TeamMembers.
Zauważa, że PersonModel już zawiera PersonID, więc dodawanie członków zespołu jest bezpośrednie. To praktyczny przykład powiązania danych i operacji na bazach danych relacyjnych.
Podłączanie przycisku Create Team w Windows Forms
W kodzie formularza Tim tworzy obiekt TeamModel i ustawia jego właściwości:
TeamModel t = new TeamModel();
t.TeamName = teamNameValue.Text;
t.TeamMembers = selectedTeamMembers;
t = GlobalConfig.Connection.CreateTeam(t);
To demonstruje obsługę zdarzeń Windows Forms i jak przekazać dane z interfejsu użytkownika (UI) do warstwy dostępu do danych, zapewniając płynne doświadczenie użytkownika.
Tim zauważa, że po utworzeniu zespołu, formularz może zostać bezpiecznie zamknięty, ponieważ zespół został pomyślnie zapisany.
Testowanie wstawiania bazy danych SQL
Tim testuje formularz, tworząc zespół i weryfikując rekordy w SQL Server. Potwierdza, że zespół został poprawnie zapisany w Teams, a członkowie są przechowywani w TeamMembers. To kluczowy krok w testowaniu aplikacji i walidacji operacji CRUD.
Implementacja CreateTeam w przechowywaniu plików tekstowych (Text Connector)
Tim przełącza się na metodę przechowywania plików tekstowych i wyjaśnia wyzwanie: model zespołu zawiera listę PersonModel, która musi być zapisana w formacie CSV.
Tworzy format, który zawiera listę identyfikatorów osób rozdzieloną pionowymi kreskami:
1,Nazwa Zespołu,1|3|5
To pozwala aplikacji na przechowywanie złożonych struktur danych przy użyciu prostych plików tekstowych - przydatne do przechowywania na podstawie plików w małych aplikacjach.
Konwertowanie danych z pliku tekstowego na obiekty zespołu
Tim buduje metodę ConvertToTeamModels, która odczytuje plik CSV i rekonstruuje obiekty TeamModel:
-
Podziel każdą linię po przecinku
-
Wyciągnij identyfikator zespołu i nazwę
-
Podziel ostatnią kolumnę po pionie (|)
-
Wyszukaj każdy identyfikator osoby na liście osób
- Dodaj obiekty osób do członków zespołu
Wybiera zgłaszać błąd, jeśli brakuje identyfikatora osoby, zapewniając spójność danych. To ważna praktyka w robustnym rozwoju aplikacji C#.
Zapisywanie zespołów z powrotem do pliku z członkami rozdzielonymi pionowymi kreskami
Tim tworzy metodę pomocniczą ConvertPeopleListToString, aby konwertować członków zespołu na ciąg rozdzielony pionowymi kreskami. Wyjaśnia potrzebę usunięcia końcowej pionowej kreski za pomocą:
output = output.Substring(0, output.Length - 1);
Dodaje także sprawdzanie bezpieczeństwa dla pustych list, aby zapobiec błędom, praktyczny przykład programowania defensywnego.
Końcowe testowanie i ukończenie
Tim testuje przechowywanie oparte na tekście, tworząc zespół i potwierdzając, że plik CSV został utworzony poprawnie. Konkluduje, że formularz Utwórz Zespół jest kompletny i zachęca widzów do kontynuowania wzorca dzielenia zadań na mniejsze kroki.
Conclusion: Building a Complete C# Application
Tim kończy swoje wideo, podkreślając, że nawet złożone funkcje Windows Forms można ukończyć, dzieląc pracę na mniejsze części i stosując spójne wzorce. Sugeruje, że następnym ważnym krokiem jest formularz Create Tournament, przybliżający aplikację do ukończenia.
Ta lekcja podkreśla kluczowe koncepcje w rozwoju aplikacji w C#, w tym interfejs użytkownika Windows Forms, procedury składowane SQL, warstwy dostępu do danych, operacje CRUD i przechowywanie na podstawie plików, wszystko wyjaśnione jasno przez styl nauki Tima Coreya.
Programiści często używają C# do tworzenia szerokiej gamy aplikacji, w tym aplikacji webowych, API backendowych, oprogramowania desktopowego, aplikacji mobilnych i rozwoju gier. Umiejętność korzystania z C# w tych dziedzinach pokazuje jego wszechstronność i szerokie zastosowanie.
C# ma dużą globalną społeczność i nadal ewoluuje z nowymi funkcjami i ulepszeniami wydajności. Pozostaje wiarygodnym, nowoczesnym i bardzo poszukiwanym językiem w różnych branżach.
