Futbol klublari

DASTURIY INJINIRINING FANIDAN
KURS ISHI
Mavzu: Fudbol Clublari
Toshkent 2025 REJA:
Kirish ............................................................................................................................................................ 3
Loyiha modelini shakllantirish ..................................................................................................................... 4
Loyiha kontroller va ko‘rinishlarini yaratish ............................................................................................... 14
Loyihadan foydalanish bo‘yicha ko‘rsatma ................................................................................................ 19
Xulosa ........................................................................................................................................................ 23
Foydalanilgan adabiyotlar .......................................................................................................................... 24
2 Kirish
Dasturiy injiniring jarayonida muhim rol o‘ynovchi asboblardan biri - dasturiy
ta'minot   ishlab   chiqish   muhitidir.   Ushbu   maqsadda   biz   Microsoftning   Visual
Studio   dasturidan   foydalandik,   bu   esa   dasturiy   loiyhalarni   ishlab   chiqish   uchun
qulay platforma sifatida tanlangan. Visual Studio dasturlash jarayoni uchun kuchli
vositalar,   qo‘shimcha   imkoniyatlar   va   foydalanuvchilarga   qulay   interfeys   taqdim
etadi.   Bu   dasturiy   muhit   nafaqat   dasturlarni   yozishga,   balki   ularni   sinovdan
o‘tkazishga   va   joylashtirishga   ham   yordam   beradi.   Visual   Studiodan
foydalanishimizning   sababi,   uning   bir   qator   qulayliklari   va
moslashuvchanliklaridir.   Dasturlash   muhitini   yaratish   jarayonida   dasturchilar
uchun   ko‘plab   resurslar   va   plaginlar   mavjud.   Masalan,   C#,   Visual   Basic,   va   F#
kabi   turli   dasturlash   tillarini   qo‘llab-quvvatlashi,   dasturiy   ta'minotning
rivojlanishini   tezlashtiradi.   Shuningdek,   Visual   Studio   ichidagi   debugging
(xatolarni   aniqlash)   vositalari   koddagi   muammolarni   tez   va   oson   aniqlash   va
tuzatishga imkon beradi. Dasturiy injiniring jarayonida samarali  ishlab chiqish va
tezkor   sinovlar   o‘tkazish   uchun   Visual   Studioning   xilma-xil   imkoniyatlaridan,
jumladan,   "IntelliSense"   funksiyasidan   foydalanamiz,   bu   dasturchilarga   kod
yozishda  yordam  beradi, sintaksisni  to‘g‘ri  ishlashini  ta'minlaydi  va tezda  kerakli
xususiyatlarni   topishga   yordam   beradi.   Ushbu   platforma,   shuningdek,   git   versiya
nazorati bilan integratsiyalangan bo‘lib, bu jamoaviy ishlashda muhim ahamiyatga
ega. Dasturchilar o‘rtasidagi  almashinish va hamkorlik jarayonini soddalashtiradi,
shuning   uchun   kodeklarni   birgalikda   ishlab   chiqish   va   yangi   funksiyalarni
birgalikda sinab ko‘rish mumkin.
Kurs   ishimiz   davomida   Visual   Studiodan   qanday   foydalanganimizni   batafsil
bayon  etamiz.   Bu   jarayon  ishlab   chiqilgan   dasturiy   ta'minotni   sinovdan   o‘tkazish
va   sifatni   ta'minlashga,   hamda   dasturlarni   samarali   yaratishga   qaratilgan.
Shuningdek,   dasturiy   innavatsiyalarga   asoslangan   funksiyalarni   qo‘shish   va
foydalanuvchilar   ehtiyojlarini   qondirishda   Visual   Studioning   o‘rni   hamda
ahamiyatini tushuntirib beramiz. 
Ushbu   ishni   tugatgach,   talabalarni   dasturiy   ta'minotni   ishlab   chiqarish
jarayonidagi  zamonaviy asboblar  va vositalar  bilan tanishtirish, ularni  amaliyotda
qo‘llay   olishlariga   yordam   bera   olishimizni   kutamiz.   Visual   Studio   dasturi,
shuningdek,   dasturiy   injiniring   sohasida   samarali   ishlash   uchun   zarur   bo‘lgan
ko‘nikmalarni shakllantirishga xizmat qiladi.
Bu   dasturiy   muhit   nafaqat   dasturlarni   yozishga,   balki   ularni   sinovdan
o‘tkazishga   va   joylashtirishga   ham   yordam   beradi.   Visual   Studiodan
foydalanishimizning   sababi,   uning   bir   qator   qulayliklari   va   imkoniyati
moslashuvchanlikdir.
3 Loyiha modelini shakllantirish
Visual Studio – bu Microsoft tomonidan ishlab chiqilgan integratsiyalashgan
dasturlash   muhiti   (IDE)   bo‘lib,   dasturchilar   uchun   turli   xil   dasturiy   ta’minotlarni
yaratish   jarayonini   osonlashtirishga   xizmat   qiladi.   Visual   Studio   yordamida
Windows,   macOS,   iOS,   Android,   veb   va   boshqa   platformalar   uchun   dasturlar
ishlab chiqish mumkin.
Visual   Studio   dastur   ishlab   chiqaruvchilar   uchun   qulay   va   ko‘p   funksiyali
platforma   hisoblanadi.   Bu   dasturchilarga   loyiha   yaratish,   boshqarish,   xatolarni
topish va loyihalarni muvaffaqiyatli amalga oshirishda katta yordam beradi. Yangi
boshlovchilar   va   tajribali   dasturchilar   uchun   birdek   foydali   bo‘lgan   ushbu   vosita
dasturlash olamida eng mashhur IDElardan biri hisoblanadi.
Loyiha   modelini   shakllashtirish   uchun   internetdan   o‘zimizning   mavzumizga   mos
shablon   topamiz   va   uni   yuklab   olamiz.   Mening   mavzuyim   “Fudbol   Clublari”
bo‘lganligi   uchun   Free   template   saytidan   “soccer-matches   2”   shablonini   yuklab
oldim.
 
1-rasm.  Shablon fayllari.  
Kerakli   shablonni   yuklab   bo‘lgandan   keyin   Visual   Studio   dasturiga   kirib
yangi proyekt yaratamiz.
Ushbu   tayyor   template   ustida   quyida   yozilgan   modellar   asosida   ishlar   olib
boramiz   va   barcha   html   filearni   cshtmlga   moslashtiramiz   va   bu   bizga   web   siteni
juda tez qilish uchun yordam beradi. Bu shablonlar ustida turli amallar bajramiz va
css,   fonts   images,   js   va   scss   papklarini   wwwroot   papkasiga   joylaymiz   chunki
loyihaga   run   berilganda   dastur   ishlab   turganida   web   siteni   ishlab   turgan   vaqtda
loyihani ko‘rinishini, MVC tamoyili orqali wwwroot papkasini qidiradi va ulangan
va bu bizga ancha qulaylik bo‘ladi.
4 2-rasm.  Controller fayli.
Пустой   шаблон   ASP.NET   Core(Microsoft)   ni   tanlaymiz   va   yaratgan
proyektimizga nom beramiz. 
3-rasm.  NuGet packets.
Shu 3 ta NuGet paketlarni o‘rnatamiz:
- Microsoft.EntityFrameworkCore.Design(9.0.0)
- Microsoft.EntityFrameworkCore.SqlServer(9.0.0)
- Microsoft.EntityFrameworkCore.Tools(9.0.0)
3-rasm. w wwroot fayli.
  Yangi fayl ochamiz va unga “wwwroot” deb nom beramiz. Bu faylni ichiga
saytdan olgan shablonimizning fayllarini ko‘chirib o‘tkazamiz. 
5 1. css: Bu papkada loyihaning Cascading Style Sheets (CSS) fayllari saqlanadi.
Ular veb-sahifalarning ko‘rinishini boshqaradi.
2. img:   Bu   papkada   veb-saytda   ishlatiladigan   rasm   fayllari   joylashadi.
Masalan, logotiplar, fon rasmlari va boshqa tasvirlar.
3. js:   Bu   papka   JavaScript   fayllari   uchun.   Bu   kodlar   veb-sahifaning   dinamik
harakatini va funksiyalarini ta'minlaydi.
4. lib:   Odatda   bu   papka   kutubxonalar   (libraries)   uchun   ishlatiladi.   Masalan,
Bootstrap, jQuery kabi tashqi kutubxonalar bu yerda saqlanadi.
5. scss:   Bu   papkada   Sass/SCSS   fayllari   saqlanadi.   Ular   CSS-dan   yanada
murakkabroq   dizayn   yaratishda   ishlatiladigan   CSS   preprocessori
hisoblanadi.
6. fonts:   Ushbu   sahifada   web   sitedagi   orqa   fon   uchun   qo‘yiladigan   rasimlar
saqlanadi
7. Images:   Bu   papkada   barcha   jamoalar   clublarning   va   barcha   rasimlari
saqlanadi
Ushbu   struktura   veb-loyihalarni   tartibli   saqlash   uchun   ishlatiladi   va   turli
resurslarni tez topishni osonlashtiradi. 
4-rasm.  Models papkasi.
MVC   (Model-View-Controller)   —   bu   dasturlarni   yaratishda   keng
qo‘llaniladigan   dizayn   arxitekturasi.   U   dasturiy   ta'minotni   uchta   asosiy
komponentga ajratadi:   Model ,   View   va   Controller . Bu arxitektura dastur kodining
tartibini   saqlashga,   samarali   ishlashga   va   kengaytirish   imkoniyatlarini   oshirishga
yordam beradi. [1]
Models   nomli   yangi   papka   yaratamiz.   Uning   ichiga   kerakli   classlarni   ochib
olamiz.  Classlar:   AddDbContext,   Club,   Player,  Stadium,  Match,   Post,   Ticket.  Bu
modellar   Malumotlar   omborida   ochilgan   Fudbolclubi,   dastur   kodining   tartibini
saqlashga,   samarali   ishlashga     nomi   bilan   ochilgan   database   name   bo‘ladi   va
6 undagi   har   bir   jadvallarga   AppDbContesxt   ga   asosan   jadval   ochish   uchun
ishlatiladi va foydalaniladi bu juda samaralai deb o‘ylayman.
5-rasm.  AppDbContext classi.
Yuqoridagi   rasm   Entity   Framework   Core   dan   foydalanib,   kontekst   (context)
yaratish jarayonini ko‘rsatadi.
1. Namespace va Kutubxonalar
FodbalClub.Models   –   bu   klassning   joylashuvi,   ya'ni,   kod   FodbalClub
loyihasida   va   Models   papkasida   saqlanadi.   Bu   tuzilma   yordamida   kodni
tartibda saqlash va ma'lumotlarni qayta ishlash osonlashadi.
using Microsoft.EntityFrameworkCore;
Bu   kod   Entity   Framework   Core   kutubxonasidan   foydalanayotganingizni
bildiradi.   Bu   ORM   (Object-Relational   Mapping)   vositasi   yordamida
ma'lumotlar bazasi bilan ishlash osonlashtiriladi. [5]
2. AppDbContext klassi
public class AppDbContext : DbContext
 AppDbContext   -   ma'lumotlar   bazasi   bilan   ishlash   uchun   foydalaniladigan
kontekst klassi.  Bu  DbContext  dan meros qilib olingan.  [2]
 Bu   klass   orqali   ma'lumotlar   bazasidagi   jadval   va   ular   bilan   ishlash
imkoniyati yaratiladi.
3. Konstruktor
Public AppDbContext(DbContextOptions<AppDbContext>options):base(options)
 Bu konstruktor  AppDbContext  ni sozlash uchun ishlatiladi.
7  options   -   konfiguratsiyalarni   ( connection   string   va   boshqa   sozlamalarni)
uzatish uchun ishlatiladi. [2]
4. DbSet-lar
 public DbSet<Club> Clubs { get; set; }
 public DbSet<Player> Players { get; set; }
 public DbSet<Stadium> Stadiums { get; set; }
 public DbSet<Statistic> Statistics { get; set; }
 public DbSet<Trophy> Trophies { get; set; }
 Har bir  DbSet  ma'lumotlar bazasidagi bitta jadvalga mos keladi.
 DbSet<T>   generik turi  orqali  jadvalda saqlanadigan  ma'lumotlarning klassi
belgilanadi. [2]
Masalan:   DbSet<Club>   -   Club   klassiga   mos   keladi   va   ma'lumotlar
bazasidagi "Clubs" jadvaliga ishlov beradi.
DbSet<Match>  - "Matches" jadvalini ifodalaydi.
5. Modeldagi jadvallar
 Players ,   Post ,   Ticket ,   Club ,  va   Trophy     klasslari   mos   ravishda   ma'lumotlar
bazasidagi jadvallarni ifodalaydi.
 Ushbu   jadvallar   uchun   DbContext   orqali   CRUD   (Create,   Read,   Update,
Delete) operatsiyalar bajarilishi mumkin.
6. Foydasi
 Ushbu   AppDbContext   klassi   orqali   ma'lumotlar   bazasi   bilan   ishlash   ancha
qulay   bo‘ladi.   Har   bir   jadval   DbSet   orqali   ishlatiladi   va   LINQ   so‘rovlari
yordamida ma'lumot olish yoki o‘zgartirish mumkin bo‘ladi.
7. Klasslarning elon qilish tartibi
8 6-rasm.  Club classi.
1.  Club klassi
 public class Club  – e’lon qilish
 Club   –   futbol   klubi   haqida   ma'lumotlarni   saqlash   uchun   yaratilgan   model
klassi.   Bu   klass   Entity   Framework   yordamida   ma'lumotlar   bazasida   Clubs
jadvali sifatida saqlanadi.
3.  Property-lar (xususiyatlar)
 Id   –   klubni   aniqlash   uchun   noyob   identifikator.   Bu   atribut   ma'lumotlar
bazasidagi   birlamchi   kalit   (primary   key)   sifatida   ishlatiladi.   Ma'lumot   turi:
int va u  o‘sib borish tartibida elon qilingan.
Elon qilish: “ public string id { get; set; }”
Name   – klubning nomi. Ma'lumot  turi:   string   (matn). [Required]   atributi  bu
xususiyatni majburiy qilib belgilaydi, ya'ni bu maydon bo‘sh qoldirilmasligi
kerak.  Malumotlar faqat databaseddan qo‘shiladi bu esa juda osson qo‘shish

“ public string Name { get; set; }”

Country  – klubning joylashgan davlati. Ma'lumot turi:  string .  [Required]
xususiyatni ham majburiy qiladi. “ public string Country { get; set; }” 

ImageUrl   –   klubning   rasm   manzili   (URL).   Bu   xususiyat   ixtiyoriy,   shuning
uchun ? Belgilangan. Ma'lumot turi:  string?,  ya'ni null mumkin. 

“ public string? ImageUrl { get; set; }”
 Creation   –   klub   tashkil   etilgan   sana.   Bu   xususiyat   ham   ixtiyoriy   bo‘lib,
DateTime? turi bilan belgilangan.  Ma'lumot turi:  DateTime?.
9  Coach  – klub murabbiyi (ixtiyoriy). Ma'lumot turi ixtiyory:  string? 
4.  Aloqalar (Relationships)
Trophies   –   klubga   tegishli   sovrinlar.   Bu   kolleksiya,   ya'ni   klubning   yutgan
sovrinlarini   saqlaydi.   ICollection<Trophy>   –   Trophy   klassi   bilan   bir-ga-ko‘p
(bir klub ko‘plab sovrinlarga ega bo‘lishi mumkin) aloqasini ifodalaydi.
“public  ICollection<Trophy>Trophies{get;set;}=new List<Trophy>();”
Players   – klubga tegishli futbolchilar. Klub bir nechta futbolchiga ega bo‘lishi
mumkin.   ICollection<Player>   –   Player   klassi   bilan   birga-ko‘p   (bitta   klub
ko‘plab futbolchilar o‘ynaydi) aloqasi.
“public  ICollection<Player> Players { get; set; } = new List<Player>();”
Stadiums   –   klubga   tegishli   stadionlar.   ICollection<Stadium>   –   Stadium   klassi
bilan aloqani ifodalaydi.
“public  ICollection<Stadium>Stadiums{ get; set;}=new List<Stadium>();”
Matches   – klubga tegishli o‘yinlar. Bu xususiyat Entity Framework tomonidan
saqlanmaydi,   chunki   unga   [NotMapped]   atributi   qo‘shilgan.
ICollection<Match>   –   Match   klassi   bilan   bog‘lanish,   lekin   bu   ma'lumotlar
bazasiga qo‘shilmaydi.
“public ICollection<Match> Matches { get ; set; } = new List<Match>();”
 Posts  – klubga tegishli postlar (yangi yangiliklar, e'lonlar va h.k.).
ICollection<Post>   – Post klassi bilan birga-ko‘p (bir klubda bir nechta post
bo‘lishi mumkin) aloqasi.
“public ICollection<Post> Posts { get ; set; } = new List<Post>();”
 Statistics  – klubga tegishli statistikalar. Bu kolleksiya klubning o‘yinlaridagi
statistik ma'lumotlarni saqlaydi.
ICollection<Statistic>  – Statistic klassi bilan aloqani ifodalaydi.
“public ICollection<Statistic> Statistics{get ; set;}=new List<Statistic>();”
5.  Foydalari:
Ushbu klaslar klublar haqidagi barcha muhim ma'lumotlarni (nomi, joylashuvi,
murabbiyi,   o‘yinlar,   postlar,   statistikalar   va   boshqa   aloqalar)   markazlashtirib
saqlash imkonini beradi.
Entity Framework yordamida ma'lumotlar  bazasida   Clubs   jadvali  yaratiladi va
yuqoridagi ma'lumotlar saqlanadi.
Ko‘pdan-ko‘p (many-to-many)  aloqalar   Players ,   Trophies ,   Stadiums ,   Posts , va
Statistics  kabi kolleksiya xususiyatlari yordamida boshqariladi.
10 7-rasm.  Match classi.
1.  Match klassi
public   class   Match
 Match   – o‘yin haqida ma'lumotlarni saqlash uchun yaratilgan model klassi.
Bu klass Entity Framework yordamida ma'lumotlar bazasida Matches jadvali
sifatida saqlanadi.
3.  Property-lar (xususiyatlar)
 Id   – har bir o‘yinni noyob ravishda aniqlash uchun identifikator. Bu atribut
ma'lumotlar   bazasidagi   birlamchi   kalit   (primary   key)   sifatida   ishlatiladi.
Ma'lumot turi: int.
 Team1Id   – birinchi  jamoaning identifikatori. Ma'lumot  turi:  int.   [Required]
atributi bu xususiyatni majburiy qiladi.
 Team1   –   birinchi   jamoa   bilan   bog‘lanish.   Bu   Team1Id   orqali   Club   klassi
bilan   tashqi   kalit   (foreign   key)   orqali   aloqani   o‘rnatadi.
ForeignKey("Team1Id")   – Team1Id atributi Team1 xususiyati  uchun tashqi
kalit sifatida ishlatiladi.
 Team2Id   – ikkinchi jamoaning identifikatori. Ma'lumot turi:   int .   [Required]
atributi bu xususiyatni majburiy qiladi.
 Team2   –   ikkinchi   jamoa   bilan   bog‘lanish.   Bu   Team2Id   orqali   Club   klassi
bilan   tashqi   kalit   orqali   aloqani   o‘rnatadi.   ForeignKey("Team2Id")   –
Team2Id atributi Team2 xususiyati uchun tashqi kalit sifatida ishlatiladi.
11  Team1Goals   – birinchi jamoaning urgan gollari soni. Bu ixtiyoriy, shuning
uchun   ?   belgilangan,   ya'ni   qiymat   bo‘sh   bo‘lishi   mumkin.   Ma'lumot   turi:
int? (null qiymatni olish mumkin).
 Team2Goals   –   ikkinchi   jamoaning   urgan   gollari   soni.   Ixtiyoriy   qiymatga
ega. Ma'lumot turi: int? (null qiymatni olish mumkin).
 IsPlayed   –   o‘yin   o‘ynalgan   yoki   o‘ynalmaganligini   ko‘rsatadi.   true   yoki
false bo‘lishi mumkin. Ma'lumot turi: bool (mantiqiy qiymat).
 PlayDate   –   o‘yinning   sanasi.   Ma'lumot   turi:   DateTime .   [Required]   atributi
bu   xususiyatni   majburiy   qiladi.   Forin   key   orqali   StadiumId   –   stadionning
identifikatori   (tashqi   kalit).   Ma'lumot   turi:   int.   [Required]   atributi   bu
xususiyatni majburiy talab qilinadi.
 Stadium   –   stadion   bilan   bog‘lanish.   Bu   StadiumId   orqali   Stadium   klassi
bilan   tashqi   kalit   orqali   aloqani   o‘rnatadi.   ForeignKey("StadiumId")   –
StadiumId  atributi Stadium xususiyati uchun tashqi kalit sifatida ishlatiladi.
4.  Aloqalar (Relationships)
Team1   va   Team2   o‘rtasidagi  aloqalar  Club klassi  bilan tashqi  kalitlar  (foreign
keys) orqali o‘rnatilgan. Bu jamoalar o‘rtasidagi o‘yinlar haqida ma'lumotlarni
saqlash uchun ishlatiladi.
Stadium  – o‘yin o‘tkaziladigan stadionni ifodalash uchun ishlatiladi.
5.  Foydalari
Bu   klass   o‘yinlar   haqidagi   ma'lumotlarni   saqlash   va   boshqarishga   yordam
beradi,   masalan,   jamoalar,   o‘yinning   natijalari,   sanasi   va   o‘yin   o‘tkazilgan
stadion haqida ma'lumotlarni.
Entity   Framework   yordamida   Matches   jadvali   yaratiladi,   bu   o‘yinlar   haqidagi
ma'lumotlarni saqlaydi.
6.  Ko‘pdan-ko‘p aloqalar
Match  klassi orqali jamoalar va stadionlar o‘rtasidagi aloqalar boshqariladi. Har
bir   o‘yin   faqat   bitta   stadionda   o‘tkaziladi,   lekin   bitta   stadion   bir   nechta
o‘yinlarga mezbonlik qilishi mumkin.
12 8-rasm.  Stadium classi.
1.  Umumiy Maqsad
Stadium   – stadion haqida ma'lumotlarni saqlash uchun yaratilgan model klassi
va har bir clubga bog‘lanadi bu classs.
3.  Property-lar (xususiyatlar)
 Name  – stadion nomi. Majburiy va 100 uzunlikdagi va matin kiritsa bo‘ladi 
 Capacity  – stadion sig‘imi (tomoshabinlar soni). Raqam talab qiladi
 Description   –   stadion   haqida   qo‘shimcha   tavsif   (ixtiyoriy).   500   ta   belgi
qabul qiladi
 Image  – stadion rasmi (URL yoki fayl manzili).
 BuildDate  – stadion qurilgan sana.
 ClubId   –   stadion   tegishli   bo‘lgan   klubning   identifikatori   (tashqi   kalit).
Majburiy va int qiymat talab qiladi
4.  Aloqalar (Relationships)
Club   – stadionni o‘ziga tegishli klub bilan bog‘laydi.   ClubId   orqali Club klassi
bilan tashqi kalit (foreign key) orqali aloqani o‘rnatadi.
5.  Foydalari
Stadium   klassi   yordamida   stadionlar   haqida   ma'lumotlarni   markazlashtirib
saqlash imkonini beradi.
Entity   Framework   yordamida   Stadiums   jadvali   yaratiladi   va   stadiona   tegishli
ma'lumotlar saqlanadi.
13 6.  Bog‘lanishlar
Stadium  klassi faqat bitta klubga tegishli bo‘lishi mumkin, lekin klub bir nechta
stadionga   ega   bo‘lishi   mumkin.   Bu   birga-bir   ko‘rinishidagi   bog‘lanadi
ifodalaydi.
9-rasim.  Statistic classi
Statistic   –   futbol   klubining   o‘yinlari   bo‘yicha   statistika   ma'lumotlarini   saqlash
uchun yaratilgan model klassi. 
Statistic   klassi   yordamida   futbol   klublarining   o‘yinlari   bo‘yicha   statistik
ma'lumotlarni markazlashtirib saqlash mumkin.
Bu   klass   orqali   klubning   g‘alabalar,   mag‘lubiyatlar,   durranglar,   kiritilgan
gollar   va   ochkolar   haqida   to‘liq   ma'lumotlar   bilan   ishlash   osonlashadi.   Barcha
komandalarni chiroyli qilib chiqarish uchun yaratilgan javal bo‘lib hizmat qiladi va
bu odamlarni qiziqtiradi chinki clublarning natijalari doim qiziq bo‘lgan.
            Barcha   komandalarni   chiroyli   qilib   chiqarish   uchun   yaratilgan   javal   bo‘lib
hizmat qiladi va bu odamlarni qiziqtiradi clublarning natijalari doim qiziq bo‘lgan.
Loyiha kontroller va ko‘rinishlarini yaratish
Kontroller   model   va   ko‘rinish   (view)   o‘rtasidagi   muloqotni   boshqaradi.   U
foydalanuvchi   so‘rovlarini   qabul   qiladi,   kerakli   ma'lumotlarni   modeldan   oladi   va
tegishli ko‘rinishni (view) qaytaradi.
14 10-rasm.  Index va HomeControllerlar
Asosiy tushuncha va vazifasi:
AppDbContext :   Bu   ma'lumotlar   bazasi   bilan   ishlash   uchun   ishlatiladigan
DbContext  sinfidan meros olgan konteyner sinfi bo‘lishi mumkin.
Index: Ushbu class o‘ynalgan o‘yinlar va o‘ynalmagan o‘yinlarni “ var notgame =
_context.Matches.Include(s   =>   s.Team1).Include(x   =>   x.Team2).   Include(m   =>
m.Stadium).FirstOrDefault(z   =>   z.IsPlayed);”   Ushbu   sarlash   buyrug‘i   orqali
filtrlab   olmoqda   va   uni   viewga   jo‘natadi.   Shuningdek   barchaclublarni   tartiblab
achkolari   bo‘yicha   jadval   ko‘rinishida   chiqarish   uchun   tuple   ko‘rinishida   view
ichidagi cshtmlga yuboradi.
Universitetda o‘tiladigan fanlar doirasida bizga html o‘rgatilmaganligi sababli, biz
enternetdan   tayor   html   kodlarni   olib   o‘zgartirgan   holda   cshtml   kodlarimizni
yozishga to‘g‘ri keladi.
Shu   tarzda   barcha   ko‘rinishlar   uchun   kerakli   metodlar   yoziladi   va   ko‘rinishlar
yartiladi.   Kod   foydalanuvchiga   sahifani   ko‘rsatish   (view’ni   render   qilish),
ma’lumotlarni   tayyorlab,   foydalanuvchiga   yetkazish   va   URL   orqali   kelgan
so‘rovni qayta ishlash uchun ishlatiladi.
15 11-rasmlar.  Post va Match classi
Asosiy tushuncha va vazifasi:
Match :   Bu   ma'lumotlar   bazasida   mavjud   bo‘lgan   jadval   bo‘lib,   ehtimol
O‘yinlarni   ifodalaydi.   Va   ikkiga   bo‘lib   oladi   o‘ynalgan   va   o‘ynalmagan
o‘yinlarga   va   ularni   viewga   jo‘natadi.   Include   buyrug‘i   orqali   esa   ulangan
classning Id qiymati orqali Clublar haqidagi malumotlarni oladi
Post:   classi   vazifasi   bu   abarcha   postlarni   chiqarib   beradi   va   barcha   Post
haqidagi ulangan malumotlarni oladi
12-rasmlar.  Detals va Ticket Player classi.
16  So‘ngi classslar: Bu ma'lumotlar bazasida mavjud bo‘lgan jadval bo‘lib, barcha
malumotlarni olsih va viewga jo‘natish uchun mo‘ljallangan.
 View :  Har  bir  action metodi   View()   metodini  qaytaradi,  bu esa tegishli  Razor
ko‘rinishiga   (masalan,   Index.cshtml ,   Match.cshtml   va   hokazo)   mos   keladi.
Ko‘rinishlar foydalanuvchiga HTML shaklida chiqariladi. [4]
Umumiy funksionallik:
Ushbu   kontroller   veb-saytning   turli   sahifalarini   boshqaradi   ( Home ,   Match ,
Players ,  Blog ,  BlogDetail ,  Ticket , va  Statistic ).
Ma'lumotlar   faqat   Index()   metodida   olinadi,   bu   yerda   o‘qituvchilar   ro‘yxati
ma'lumotlar bazasidan olinib, ko‘rinishga uzatiladi.
13-rasm.  Ko‘rinishlar yaratish.
Views nomli papka yaratib, uning ichiga yana Home va Shared nomli papka
yaratamiz. Home papkasining ichiga o‘zimizning mavzuyimizga mos yuklab olgan
shablonimizdagi  cshtml fayl yaratamiz va uning ichiga shablondagi html teglari va
c# kodlarini kochirib qoyamiz.
1. Views papkasi: Bu papka barcha sahifalar (ko‘rinishlar) joylashgan joy. Har bir
kontroller uchun alohida papka yaratiladi.
2. Home   papkasi:   Bu   papka   HomeController   uchun   mo‘ljallangan.   Uning   ichida
kontrollerdagi metodlarga mos keladigan sahifalar (.cshtml fayllar) joylashgan: 
 Index.cshtml: Index() metodi uchun ko‘rinish.
 Match.cshtml: Match() metodi uchun ko‘rinish.
 Post.cshtml: Post() metodi uchun ko‘rinish.
 Detail.cshtml: Details() metodi uchun ko‘rinish.
 Ticket.cshtml: Ticket() metodi uchun asosiy sahifa ko‘rinishi.
17  Player.cshtml:   Player()   metodi   uchun   sahifa,   bunda   o‘yinchilar   ro‘yxati
ko‘rsatiladi.
3. Shared papkasi:
 Bu papkada umumiy ko‘rinishlar va konfiguratsiyalar saqlanadi: 
 _ViewImports.cshtml:   Umumiy   konfiguratsiya   fayli.   Bu   faylda   fayllar
uchun qo‘shimcha namespace va helper'lar import qilinadi.
 _ViewStart.cshtml:   Har   bir   sahifa   yuklanganda   ishlaydigan   boshlang‘ich
konfiguratsiya fayli. Ko‘pincha layout fayli shu yerda belgilanadi. [4]
Umumiy ma'nosi:
 Har bir kontroller uchun alohida papka bo‘ladi (bu yerda Home papkasi).
 Har   bir   metodga   mos   .cshtml   fayl   tayyorlanadi,   ular   foydalanuvchiga
ko‘rsatiladi.
 Shared papkasi umumiy va qayta foydalaniladigan kodlar uchun ishlatiladi.
 Loyihani ishlatish va tekshirish
1. Migration va bazani yaratish:  Agar hali bazani yaratmagan bo‘lsangiz:
2. dotnet ef migrations add InitialCreate
3. dotnet ef database update  
4. ERD Diogramma
14-rasmlar .  Loyihaning ERD diogrammasi
Ushbu suratda Malumotlar bazasida joylashgan jadvallarning bir biri bilan aloqasi 
ko‘rsatilgan. Bu jadvallar bir biri bilan malumotlar uzviy bog‘langan bo‘lib bular 
birga bir, birga ko‘p va ko‘pga ko‘p bag‘lanishga ega.
18 Loyihadan foydalanish bo‘yicha ko‘rsatma
Bu   reja   Fodbal   club   ASP.NET   Core   MVC   ilovasi   bilan   ishlash   uchun
qo‘llanma   sifatida   ishlab   chiqilgan.   Quyida   loyiha   tuzilmasi,   asosiy   imkoniyatlar
va ishlatish tartibi keltirilgan.
1. Loyihani ishga tushirish
A) Tizim   talablarini   tekshirish:   Ma’lumotlar   bazasi :   AppDbContext
ma’lumotlar   bazasiga   ulanadi,   shuning   uchun   ma’lumotlar   bazasi   to‘g‘ri
sozlanganligiga ishonch hosil qiling. [1]
B) Loyihani yuklash : Loyihaning manba kodini yuklang va o‘zingizning ishchi
papkangizga oching.
C) Ishga tushirish :
Terminal yoki Visual Studio orqali loyiha papkasiga o‘ting.
Buyruq qatorida quyidagi komandalardan birini ishga tushiring:
dotnet build   # Loyihani yig‘ish
dotnet run     # Loyihani ishga tushirish
Brauzerda http://localhost: 7055 yoki shunga o‘xshash manzil orqali ilovani
oching.
2. Loyiha tuzilmasi
Loyihaning asosiy tuzilmasi quyidagicha:
 Controllers :  HomeController  kontrolleri barcha sahifalarni boshqaradi.
Metodlar va ularga mos bo‘lgan sahifalar:
 Home() – Home sahifasi , jamoalar o‘yini va tartib jadvalini ko‘rsatadi
 Match ()  –  Match  sahifasi.
 Players() –  O‘yinchilar haqida ma’lumot sahifasi.
 Blog()   –   Jamoa   sahifasi   (ma’lumotlar   bazasidan   yangiliklar   ro‘yxatini
ko‘rsatadi).
 Blog Detail ()  –  Bloglar  sahifasi.
 Ticket ()  –  chiptalar  sahifasi.
Views :   Views/Home : Sahifalarning  .cshtml  fayllari shu yerda saqlanadi.
Masalan:  Home.cshtml ,  Match.cshtml  va boshqalar. [1]
Views/Shared : Umumiy fayllar:
_ViewImports.cshtml : Namespace va helper’lar import qilinadi.
_ViewStart.cshtml : Layout fayli belgilash uchun ishlatiladi.  [ 1]
 Models :   AppDbContext :   Ma’lumotlar   bazasiga   ulanish   va   ishlash   uchun.
Ushbu classlardagi malumotlarni saqalash uchun model [7]
4. Funktsional imkoniyatlar
Loyihani Visual ko‘rinishini ko‘rishingiz mumkin. Va bu visual ko‘rinishlar 
barchasi biz krayotgan brauserga html shaklida render bo‘ladi.
19 15-rasm.  Home oynasining ko‘ rinishi  .
1. Bosh sahifa (Home) :
http://localhost:  7055 /
Bu   sahifa   foydalanuvchini   kutib   oladi   va   asosiy   sahifa
16-rasm.  Match oynasning ko‘rinishi.
2. O‘yinlar taqvimi  ( Match ) :
http://localhost:  7055 /Home/ Match
Barcha o‘ynalgan va o‘ynalmagan o‘yinlar   haqida ma’lumot beradi. Ushbu
sahifada   Clublarning   yani   Komandalarning,   barcha   malumotlari   olinadi
chunki, ushbu sahifada chiqadigan barcha o‘yinlar uchun clublarning rasimi
va   stadioni   va   qanday   ligada   o‘ynashi   ham   kerak   bo‘ladi.   Bu   esa   barcha
ishalaga yaxshi bo‘ladi chunki bu foydalanuchilarga ancha qulayliklar beradi
hamma   malumotlar   bir   joyga   yig‘ilgani   ularni   bilishi   kerak   bo‘lgan
malumotlar turgani sababli ularni zeriktirmaydi.
20 17-rasm.  Posts oynasning ko‘rinishi.
3. Bizning jamoamiz va o‘yinlar ( Posts ) :
http://localhost: 7055/Home/   Posts
Jamoa a’zolari o‘yinlar gollar haqida yangiliklar ko‘rsatadi.
Ma’lumotlar  AppDbContext  orqali ma’lumotlar bazasidan olinadi.
18-rasm.  Post Detail oynasning ko‘rinishi.
4. Postlar haqida batafsil ( Post   Detail ) :
http://localhost: 7055/Home/Details/(number)
Postlar   haqida   barchasini   batafsil   o‘qish   imkonini   beradi.   Detail   pageda
yozilagan   postlarning   barchasi   uchun   alohida   chiqadi   yani   unig   id   raqami
bo‘yicha   lekin   shablon   bitta   bo‘ladi   malumotlar   aylanib   turadi   holos   id
raqami bo‘yicha.
21 20-rasm.  Statistcs oynasning ko‘rinishi.
5. Statistcs
http://localhost: 7055
O‘zbekiston   chempionatida   clublarni   achkolari   bo‘yicha   saralash   jadvalini
ko‘rsatadi  va barcha malumotlar berilaganlar bazasidan keladi bu juda zo‘r.
5. Ma’lumotlar bazasi bilan ishlash  
Ma’lumotlarni   sozlash:   AppDbContext   faylida   ma’lumotlar   bazasiga   ulanish
uchun sozlamalar mavjud. Uni appsettings.json fayliga mos ravishda sozlang.  
Ma’lumotlarni   yaratish:   Ma’lumotlar   bazasida   o‘qituvchilar   jadvalini   yaratish
uchun EF Core migration’laridan foydalaning:  [5]  
dotnet ef migrations add InitialCreate 

dotnet ef database update
Ma’lumotlar   bilan   ishlash:   O‘qituvchilar   ro‘yxatini   yangilash   yoki   qo‘shish
uchun Oqituvchilar jadvalini to‘ldiring.  
6. Loyihani   moslashtirish.   Dizaynni   o‘zgartirish:   Sahifalarning   dizaynini
o‘zgartirish   uchun   Views   papkasidagi   .cshtml   fayllarni   tahrir   qiling.
Kontrollerga   yangi   metod   qo‘shing.   Views   papkasida   yangi   .cshtml   fayl
yarating. URL yo‘lini mos ravishda sozlang. [4]  
Layout faylini sozlash:   Views/Shared/_Layout.cshtml faylini tahrir qilib, barcha
sahifalarga umumiy qism (header, footer va boshqalar) qo‘shishingiz mumkin.  
Usbu dasturda dizayn uchun Free Template materiyalaridan foydalangan.  [2]
Odatda ko‘rinishimizga ikki xil ma’lumotlar keladi, bular qanaqadir sinfga tegishli
list va bir nechta listlarni tarkibiga oluvchi bir sinf. Ularni ko‘rinishimizda qullash
quyidagicha   bo‘ladi:   Footer   qismida   email   manzili,   ijtimoiy   tarmoqlari,mijozlar
uchun faoydali havolalar,sayt bilan bog‘lanish uchun telefon raqam, manzil va sayt
haqidagi yangiliklarni  bilib turish uchun obuna kabi saytga aloqador ma’lumotdir.
22 Xulosa
Men Ushbu loyihani tayyorlashda ancha muncha qiyinchiliklarga duch keldim
asosan  frontend qismida  shablonlarni  ulash  va ularni  url  larni  bo‘lash  qismida  va
malumotlar   omboridan   kelgan   malumotlarni   chiqarishda   ham   va   ularni   disaynini
ham   ancha   munch   qiyinchiliklarga   olib   keldi   va   bootstrap   orqali   anacha
hatoliklarni   tuzatdim.   Mun   ushbu   loyihani   bajarishda   bir   necha   10   marotavalab
qayta qayta ishlash natijasida anacha muncha bilimlarga ega bo‘ldim.  Bu loyihani
bajarishda xuloasa o‘rnida nima deya olarman Harakatiz natija bo‘lmaydi  ahir  va
meni buncha qilgan harakaltlarim shunchaki 3 baho olish uchun emas balkida men
o‘z   Resumemga   endi   qo‘rqmasdan   C#   .net   framewoki   orqali   ASP.NET   ni   ham
qo‘sha   olaman   chunki   bu   men   ishlagan   eski   texnalogiyalardan   ancha   qulayroq
ekan. Ushbu loyiha zamonaviy va qulay veb-ilova yaratish uchun ishlab chiqilgan.
ASP.NET   Core   MVC   platformasi   yordamida   qurilgan   loyiha   foydalanuvchilarga
ma’lumotlarni   tez   va   oson   topishga   yordam   beradi.   1.   Har   bir   bo‘lim   tartibli   va
foydalanuvchi   uchun   qulay   qilib   ishlangan.   2.   Ma’lumotlar   bazasi   bilan   samarali
integratsiya   qilingan.   3.   Kod   modulli   bo‘lib,   dasturchilar   uchun   kengaytirish   va
boshqarish oson. Foydalari: 1. Veb-sahifalar oddiy va tushunarli interfeysga ega. 2.
Loyihani   kengaytirish   va   yangi   imkoniyatlar   qo‘shish   oson.3.   Ma’lumotlar
bazasidagi   o‘zgarishlarni   tezkor   amalga   oshirish   mumkin.     Mazkur   loyiha
dasturlashni   endi   o‘rganayotganlar   uchun   ham,   real   loyihalarda   ishlatish   uchun
ham   qulaydir.   Bu   loyiha   orqali   foydalanuvchilar   zamonaviy   veb-ilovalarni
yaratishda   tajriba   orttirib,   o‘z   bilimlarini   kengaytirishi   mumkin.   Shuningdek,   uni
boshqa   sohalar   uchun   moslashtirish   yoki   murakkab   funksiyalar   bilan   boyitish
imkoniyati   ham   mavjud.   Umuman   olganda,   Fudbol   Clubi   loyihasi   oddiy,
tushunarli   va   samarali   yechimlarni   taklif   qiladi.   Ushbu   loyiha   dasturchilar   va
foydalanuvchilar   uchun   birdek   foydali   bo‘lib,   kelgusida   kengaytirish   va
rivojlantirish   imkoniyatlariga   ega.   Bu   loyiha   taqdim   etayotgan   qulaylik   va
imkoniyatlar biznes ehtiyojlarini qondirishda katta yordam beradi.
23 Foydalanilgan adabiyotlar
1. Мухаммадиев   Ш .   ASP.NET   Core   ва   MVC   Framework   асослари .   –
Тошкент :  Янги   авлод , 2021. – 356  б .
2. Саидов   А .   ASP.NET   Core:   Қўлланма   ва   амалий   мисоллар .   –   Тошкент :
Фан   ва   технология , 2022. – 412  б .
3. Каримов   Ж . ASP.NET Core   ва   MVC Framework:   Замонавий   ёндашув . –
Тошкент :  Янги   авлод , 2023. – 378  б .
4. Абдураҳмонов   Ш .   ASP.NET   Core:   Практик   дастурлаш   асослари .   –
Тошкент :  Янги   авлод , 2021. – 390  б .
5. Нурматов   Ф .   ASP.NET   Core:   Web   илова   ишланмалари .   –   Тошкент :
Янги   технологиялар , 2023. – 400  б .
Internet manbalari
6. https://learn.microsoft.com   
7. https://www.tutorialsteacher.com   
8. https://dotnet.microsoft.com   
9. https://learn.microsoft.com   
24

MUNDARIJA

Kirish

Loyiha modelini shakllantirish

Loyiha kontroller va ko‘rinishlarini yaratish

Loyihadan foydalanish bo‘yicha ko‘rsatma

Xulosa

Foydalanilgan adabiyotlar