Uploaded by marufberdiyev04

Individual loyiha II

advertisement
O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI
VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT
AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Dif 317-20 guruh talabasi: Berdiyev Ma’ruf
Qabul qildi: Latipova Nodira
Toshkent 2023
INDIVIDUAL LOYIHA II
1.
Tanlangan mavzu nomi
“Haydovchilik guvohnomasi olish uchun
online test sinovi” veb ilovasini loyihalash
3.
Anatatsiya
Haydovchilik guvohnomasi olish uchun online test sinovi web ilovalari,
haydovchilik litsenziyasi olish uchun sertifikat sinovlarini o'tkazishga imkon
beradigan virtual sinov tizimlaridir. Bu tizimlar, potensial haydovchilar uchun
qo'llanmalar va bilimlar jamlanmasini tekshirish imkonini beradi .
4.
Loyiha ishini bajarishdan olingan natijalar
 Foydalanuvchilar uchun qulay va tushunarli interfesy (inglizcha interface)
 Kiritiladigan ma’lumotlar asosan maqola shaklida bo‘ladi, bu esa
ma’lumotlarni dinamik shaklda boshqarish imkonini beradi
5. Ishni topshirih muddati
15.05.2023
1
MUNDARIJA
KIRISH...................................................................................................................3
Asosiy qism.............................................................................................................3
I. BOB VEB DASTURLASH ASOSLARI VA ZAMONAVIY
PLATFORMALAR...............................................................................................6
1.1 Server texnalogiyalar…………………………………………………...5
1.2 .Net dasturlash tili………………………………………………….…...8
1.3 Veb sayt yaratish asoslarini o‘rgatuvchi veb ilovalar yaratishning
zamonaviy tizimlari………………………………………………………..10
II. .NET VA MSSQL YORDAMIDA VEB ILOVAMIZ SAYTINI
YARATISH……………………………………………………………...………….....12
2.1 .NET va MSSQL bog‘liqligi va ma’lumotlar bazasini boshqarish
tizimi.………………………………………………………………………13
2.2 .NET yordamida ma’lumotlar bazasiga
bog‘lanish……......................................................................……………...14
2.3 Internet tarmog‘ida saytlarni ishlab chiqish uchun veb sayt yaratish
asoslarini o‘rgatuvchi kuchli veb ilovani ishlab chiqish…………………..17
III .XULOSA.....................................................................................................25.1
IV Code bo’limi .................................................................................................27
FOYDALANILGAN ADABIYOTLAR……………………………………….22
2
KIRISH
NET da kodlangan va MSSQL dan foydalanadigan kalendar kuni
birliklarini o'zgartiruvchi veb-sayt ma'lumotlar bazasini boshqarish tizimi
foydalanuvchilarga sanalarni turli kalendar tizimlari o'rtasida o'zgartirish imkonini
berishi mumkin.
Masalan, veb-sayt foydalanuvchilarga sanalarni Grigoriy taqvimi (ko'pgina
G'arb mamlakatlarida qo'llaniladi) va Julian taqvimi, Islom taqvimi yoki ibroniy
taqvimi kabi boshqa kalendarlar o'rtasida o'zgartirishga ruxsat berishi mumkin.
Shu bilan bir qatorda, veb-sayt foydalanuvchilarga bir xil kalendar tizimida
turli vaqt birliklari o'rtasida sanalarni aylantirish imkonini berishi mumkin.
Masalan, foydalanuvchilar Grigorian taqvimida kunlar, haftalar, oylar yoki yillar
oralig'ida konvertatsiya qilishlari mumkin edi.
Veb-sayt shuningdek, ikki sana orasidagi kunlar sonini hisoblash, berilgan
sanadan ma'lum kunlar sonini qo'shish yoki ayirish yoki joriy sanani turli kalendar
tizimlarida ko'rsatish kabi qo'shimcha funktsiyalarni taqdim etishi mumkin.
Umuman olganda, .NET-da kodlangan va MSSQL-dan ma'lumotlar
bazasini boshqarish tizimi sifatida foydalaniladigan kalendar kun birliklarini
o'zgartiruvchi veb-sayt turli kalendar tizimlarida sanalar bilan ishlash yoki bir xil
taqvim tizimida turli vaqt birliklari o'rtasida konvertatsiya qilish kerak bo'lgan
odamlar uchun foydali vosita bo'ladi.
Mavzuning dolzarbligi: .NET da kodlangan va MSSQL dan foydalangan holda
taqvim kuni birliklarini o'zgartiruvchi veb-sayt mavzusi bir qator kontekstlarda
dolzarbdir.
Birinchidan, turli kalendar tizimlarida sana va vaqt bilan ishlaydigan
odamlar, masalan, tarixchilar, genealoglar yoki xalqaro biznesda ishlaydigan
odamlar uchun bunday vosita juda foydali bo'lishi mumkin. Bu ularga turli taqvim
tizimlari o'rtasida osongina konvertatsiya qilish va notanish kalendarlar bilan
ishlashda yuzaga kelishi mumkin bo'lgan xatolardan qochish imkonini beradi.
3
Ikkinchidan, .NET va MSSQL bilan ishlaydigan dasturchilar uchun veb-sayt
ushbu texnologiyalar yordamida kalendar kun birliklari konvertorini qanday
amalga oshirishning foydali namunasi bo'lib xizmat qilishi mumkin. Shuningdek,
ushbu kontekstda ma'lumotlar bazasini loyihalash va optimallashtirish bo'yicha eng
yaxshi amaliyotlar haqida tushuncha berishi mumkin.
Va nihoyat, talabalar yoki taqvim va vaqtni hisoblash haqida ko'proq
ma'lumot olishni istaganlar uchun veb-sayt qimmatli ta'lim vositasi bo'lishi
mumkin. Bu turli xil kalendar tizimlari va vaqt birliklarini o'rganish uchun qulay
interfeys, shuningdek, ular qanday ishlashi va nima uchun ishlatilishini
tushuntirishi mumkin.
Ishning maqsadi: .NET va MSSQL yordamida kalendar kun birliklarini
o'zgartiruvchi veb-sayt yaratishdan maqsad turli kalendar tizimlari yoki vaqt
birliklari o'rtasida konvertatsiya qilish kerak bo'lgan odamlar uchun amaliy
yechimni taqdim etishdir. Bundan tashqari, u .NET va MSSQL bilan ishlashga
qiziqqan dasturchilar uchun qimmatli o'rganish tajribasi bo'lib xizmat qilishi
mumkin.
Masalaning qo’yilishi: Muammo .NET va MSSQL-dan foydalangan holda
taqvim kun birliklarini o'zgartiruvchi veb-saytni yaratishdir, bu foydalanuvchilarga
bir xil kalendar tizimida turli xil kalendar tizimlari va vaqt birliklari o'rtasida
sanalarni aylantirish imkonini beradi. Veb-sayt ma'lumotlar bazasi dizayni va
ishlashini optimallashtirishga qaratilgan holda foydalanuvchilarga qulay, intuitiv
va sezgir bo'lishi kerak. Bundan tashqari, veb-sayt bir nechta tillarni va madaniy
konventsiyalarni qo'llab-quvvatlashi va xatolarni qayta ishlash, disk raskadrovka
va xavfsizlik uchun xususiyatlarni o'z ichiga olishi kerak. Veb-saytning maqsadi turli kalendar tizimlari va vaqt birliklarida sana va vaqt bilan ishlashga muhtoj
bo'lgan odamlar uchun amaliy yechim, shuningdek, .NET va MSSQL bilan
ishlashga qiziqqan dasturchilar uchun o'rganish imkoniyati.
4
O‘rganilgan masalalar:
• Taqvim tizimlari va sanani o'zgartirish: Turli kalendar tizimlarini o'rganish va
ular o'rtasida sanalarni qanday o'zgartirishni o'rganish, jumladan, algoritmlar va
hisob-kitoblar.
• Ma'lumotlar bazasini loyihalash va optimallashtirish: MSSQL yordamida
ma'lumotlar bazalarini loyihalash va optimallashtirish bo'yicha ilg'or tajribalarni
o'rganish, shu jumladan unumdorlikni oshirish va ma'lumotlarning ortiqchaligini
minimallashtirish usullari.
• Foydalanuvchi interfeysi dizayni va qulayligi: Intuitiv, foydalanuvchilar uchun
qulay va foydalanish mumkin bo'lgan foydalanuvchi interfeyslarini loyihalash
bo'yicha eng yaxshi amaliyotlarni o'rganish, shu jumladan sezgir dizayn va
o'zaro brauzer muvofiqligi.
• Mahalliylashtirish va xalqarolashtirish: veb-saytdagi bir nechta tillar va madaniy
konventsiyalarni, jumladan sana va vaqtni formatlash, tarjima va mintaqaviy
sozlamalarni qo'llab-quvvatlash usullarini o'rganish.
5
I. BOB VEB DASTURLASH ASOSLARI VA ZAMONAVIY
PLATFORMALAR
1.1 Server texnologiyalar
Bitta Veb serverda bir qancha tashkilot yoki korxonalarning Veb saytlari
Veb sahifalari joylashishi mumkin. WWW texnologiyasida biror bir informatsion
resursga quyidagi yo‘llar bilan bog’lanish mumkin.
1.1 - rasm
1. Unikal nomer va marshrutga ga ega bo‘lgan, berilganlarni shu marshrutlar
orqali oldi-berdi kiruvchi IP – tarmoqlar. Bular DNS nomlar servisi bilan
ishlaydi.
2. WWW server mavjud bo‘lib u WWW klientlar so‘rovlariga javob qaytaradi.
So‘rovda axborotlar gipertekstli hujjatlar shaklida bo‘ladi.
Bu hujjatlar HTML – gipertekstli hujjatlarni hosil qiluvchi tilda bo‘lishi
lozim. Bu hujjatlar statik ko‘rinishda yoki dinamik ko‘rinishda bo‘ladi. Statik
ko‘rinishda hujjatlar fayllar shaklida disklarda saqlanadi. Dinamik shaklda esa
so‘rov parametrlariga qarab maxsus dasturiy ta’minot orqali dinamik holda hosil
qilinadi Dinamik hujjatlar yaratishda, WWW server maxsus CGI dasturlari
shaklida hosil qilinadi.
6
Veb sahifa va veb saytlarga xizmat ko‘rsatish uchun mezbon kompyuterlar
va serverlarda ishlatish uchun server dasturiy ta’minoti kerak bo‘ladi. Veb saytlar
va bu saytlarni yaratish, boshqarish uchun mo`ljallangan dasturiy ta’minot
mezbon kompyuterda joylashgan bo‘ladi, mezbon kompyuterlar bog’lanish
protokollarini boshqaradi. Mezbon kompyuterlar Unix, Windows yoki Macintosh
kabi turli operatsion tizim ostida ishlaydilar. Bu operatsion tizimlarning hammasi
tarkibiga TCP/IP protokolini qo‘llab-quvvatlovchi dasturiy vositalar kiradi.
Server
dasturiy
ta’minoti
serverlarda
joylashgan
bo‘lib,
klient
kompyuteridagi veb brauzer talablariga ko‘ra so‘ralgan veb sahifalarga xizmat
ko‘rsatadi va boshqa amallarni bajaradi. Server dasturiy ta’minoti TCP/IP
bog‘lanishlar uchun javob bermaydi. Buni serverdagi operatsion tizim bajaradi.
Lekin server dasturiy ta’minoti operatsion tizim yordamida HTTP bog‘lanishlar va
talablarini qo‘lga kiritadi va ularni qayta ishlaydi.
Server dasturiy ta’minotining har xil turlari, masalan ma’lumotlar ombori
serveri, FTP serveri, tarmoq serverlari mavjud. Xususan, veb server HTTP
serverining bir turi bo‘lib, uning vazifasiga klient kompyuterlariga HTTP protokoli
yordamida turli ma’lumotlarni jo‘natish kiradi.
Odatda, klient kompyuteridagi veb brauzer serverga HTML xujjatni
jo‘natish kabi talablarni qo‘yadi. Server bunday talablarni olgach, unga javob
beradi. Bu javobning boshida uzatish haqida ma’lumot, qolgan qismi HTML
fayldan iborat bo‘ladi.
Albatta, veb serverlar sahifalarni veb brauzerga uzatishdan boshqa ishlarni
ham qiladi. U veb sahifadagi CGI stsenariylarini mos CGI ilovalariga uzatadi. Bu
stsenariylar tashqi mini-dasturlarni ishga tushiradi. Zarurat bo‘lganda, bu dasturlar
ishining natijalarini veb server orqaga veb brauzerga qaytaradi. Bulardan tashqari,
veb serverlar tarkibiga konfiguratsiya fayllari va utilitlar kiradi, ular veb saytlarni
turli usullarda himoya qilish va boshqarish imkonini beradilar.
7
1.2 .NET dаsturlаsh tili
.NET zamonaviy ilovalarni yaratish uchun bepul, ochiq manbali, krossplatforma asosidir. U Microsoft tomonidan ishlab chiqilgan va birinchi marta
2002 yilda chiqarilgan. Ramka ikki asosiy komponentdan iborat: Common
Language Runtime (CLR) va .NET Class Library. CLR .NET tillarida yozilgan
kodni bajaradigan vosita bo'lib, .NET Class Library esa ishlab chiquvchilar uchun
qayta foydalanish mumkin bo'lgan sinflar va funktsiyalar to'plamini taqdim etadi.
.NET bilan foydalanish mumkin bo'lgan bir nechta dasturlash tillari mavjud,
jumladan C#, F#, Visual Basic va boshqalar. C# tili .NET ni ishlab chiqishda eng
ko'p qo'llaniladigan til bo'lib, sodda, zamonaviy va ob'ektga yo'naltirilgan bo'lishi
uchun yaratilgan. F# funktsional dasturlash tili bo'lib, ma'lumotlarni ko'p talab
qiladigan va ilmiy hisoblash ilovalari uchun juda mos keladi.
.NET ning asosiy afzalliklaridan biri uning platformalararo muvofiqligidir.
.NET bilan yaratilgan ilovalar Windows, macOS va Linuxda ishlashi mumkin, bu
esa uni ko'p qirrali va moslashuvchan ramkaga aylantiradi. Bundan tashqari, .NET
dasturchilarga yuqori sifatli ilovalarni tezda yaratishni osonlashtirib, ishlab
chiqish vositalari va kutubxonalarning boy to‘plamini taqdim etadi.
.NET dan ba'zi bir keng tarqalgan foydalanish ish stoli ilovalari, vebilovalar, mobil ilovalar va bulutga asoslangan xizmatlarni yaratishni o'z ichiga
oladi. Ramka, shuningdek, korxonalarni rivojlantirishda keng qo'llaniladi, ko'plab
yirik tashkilotlar o'zlarining muhim ilovalari uchun .NET ni qo'llaydilar.
Xulosa qilib aytganda, .NET zamonaviy ilovalarni yaratish uchun kuchli va
ko'p qirrali ramka hisoblanadi. U keng ko'lamli ishlab chiqish vositalarini taqdim
etadi va bir nechta dasturlash tillarini qo'llab-quvvatlaydi, bu esa uni ishlab
chiquvchilar uchun mashhur tanlovga aylantiradi. O'zining platformalararo
muvofiqligi va mustahkam funktsiyalar to'plami bilan .NET turli xil ilovalar va
xizmatlarni yaratish uchun ajoyib tanlovdir.
8
C# Misol:
1-rasm.
1-rasm. Ushbu misolda biz xossa va usul bilan oddiy sinfni aniqlaymiz. Keyin biz
sinfning namunasini yaratamiz, xususiyatni o'rnatamiz va salomlashish uchun
usulni chaqiramiz.
F# Misol:
2-rasm.
Ushbu misolda biz n-Fibonachchi sonini hisoblash uchun rekursiv funktsiyani
aniqlaymiz. Keyin biz 10 qiymatiga ega funktsiyani chaqiramiz va natijani
chiqaramiz. E'tibor bering, F# funktsional dasturlash tilidir, shuning uchun sintaksis
C# yoki boshqa ob'ektga yo'naltirilgan tillardan ancha farq qiladi.
9
Veb sayt yaratish asoslarini o‘rgatuvchi veb ilovalar yaratishning zamonaviy
tizimlari
Veb-ilovalarni yaratish haqida gap ketganda, siz boshlashingizga yordam
beradigan turli xil zamonaviy tizimlar va vositalar mavjud. Ushbu tizimlar odatda
veb-ilovalarni yaratish uchun asosni, shuningdek, tezda ishga tushishingizga
yordam beradigan kutubxonalar, asboblar va andozalar to'plamini taqdim etadi.
Veb-ilovalarni yaratish uchun mashhur tizimlardan biri bu MEAN stekidir,
u MongoDB (NoSQL ma'lumotlar bazasi), Express (Node.js uchun veb-ramka),
Angular (front-end ramka) va Node.js (server-) dan iborat. yon JavaScript ish
vaqti). MEAN stek dinamik va kengaytiriladigan veb-ilovalarni yaratish uchun
juda mos keladi.
Veb-ilovalarni yaratishning yana bir mashhur tizimi bu MERN stekidir, u
MEAN stekiga o'xshaydi, lekin Angular o'rniga React (javascript-ning oldingi
kutubxonasi) dan foydalanadi. MERN to'plami, ayniqsa, bir sahifali ilovalarni
(SPA) yaratish uchun juda mos keladi.
Ushbu steklardan tashqari, Ruby on Rails, Django, Flask va Laravel kabi
turli xil veb-ishlab chiqish ramkalari va vositalari ham mavjud. Ushbu ramkalar
Ruby, Python yoki PHP kabi muayyan dasturlash tillarida veb-ilovalarni yaratish
uchun vositalar va kutubxonalar to'plamini taqdim etadi.
Veb-sayt yaratish asoslarini o'rgatish haqida gap ketganda, ushbu
zamonaviy tizim va vositalardan foydalanadigan turli xil manbalar mavjud.
Ko'pgina onlayn kurslar va o'quv qo'llanmalar HTML, CSS, JavaScript va vebishlab chiqish ramkalari kabi mavzularni qamrab oladi va veb-ilovalarni
yaratishda mashq qilishda yordam beradigan amaliy loyihalarni taqdim etadi.
Veb-ilovalarni yaratish uchun ba'zi zamonaviy tizimlar va vositalarni
ko'rsatadigan diagramma:
10
11
II. BOB .NET VA MSSQL YORDAMIDA VEB ILOVAMIZ SAYTINI
YARATISH
2.1 .NET va MSSQL bog‘liqligi va MSSQL ma’lumotlar bazasini
boshqarishtizimi
.NET va MSSQL veb-ilovalarni yaratishda birgalikda ishlatiladigan ikkita
texnologiyadir. .NET ramkasi Microsoft tomonidan yaratilgan ishlab chiqish
platformasi boʻlib, ishlab chiquvchilarga C#, F# va Visual Basic kabi turli
dasturlash tillaridan foydalangan holda ilovalarni yaratish va oʻrnatish
usullarini taqdim etadi. Boshqa tomondan, MSSQL, shuningdek, Microsoft
tomonidan yaratilgan ma'lumotlar bazasini boshqarish tizimi bo'lib, u ilovalar
uchun ma'lumotlarni saqlash va olishning samarali va xavfsiz usulini
ta'minlaydi.
MSSQL-ni .NET bilan ishlatish uchun ishlab chiquvchilar odatda
ma'lumotlar bazalari bilan o'zaro aloqa qilish uchun kutubxonalar to'plamini
taqdim etadigan ADO.NET kabi ma'lumotlarga kirish texnologiyasidan
foydalanadilar.
ADO.NET
.NET
dasturchilariga
MSSQL
ma'lumotlar
bazalariga ulanishlar yaratish, so'rovlarni bajarish va ma'lumotlarni olish va
tranzaksiyalarni boshqarish imkonini beradi.
MSSQL ma'lumotlar bazasiga ulanish va ma'lumotlarni olish uchun
ADO.NET dan qanday foydalanishga misol:
using System;
using System.Data.SqlClient;
namespace MyApplication
{
class Program
{
static void Main(string[] args)
{
12
// Set connection string
string
connectionString
Source=myServerAddress;Initial
=
"Data
Catalog=myDatabase;User
ID=myUsername;Password=myPassword";
// Create connection
using
(SqlConnection
connection
=
new
SqlConnection(connectionString))
{
// Open connection
connection.Open();
// Create command
string query = "SELECT * FROM Customers";
using
(SqlCommand
command
=
new
reader
=
SqlCommand(query, connection))
{
// Execute reader
using
(SqlDataReader
command.ExecuteReader())
{
// Read and output results
while (reader.Read())
{
Console.WriteLine(reader["CustomerName"].ToString());
}
}
}
13
}
}
}
}
ADO.NET
dan
tashqari,
ishlab
chiquvchilar,
shuningdek,
Entity
Framework, NHibernate va Dapper kabi turli xil ORM (Object-Relational
Mapping) ramkalaridan foydalanishlari mumkin, ular ma'lumotlar bazasi
ustida abstraksiya qatlamini ta'minlaydi va ma'lumotlar bazasi jadvallarini .
NET.
MSSQL ma'lumotlar bazalarini boshqarish haqida gap ketganda, Microsoft
turli xil vositalarni taqdim etadi, jumladan SQL Server Management Studio
(SSMS) va Azure Data Studio. Ushbu vositalar ma'lumotlar bazasi
ma'murlariga ma'lumotlar bazalarini boshqarish, jadvallar va ko'rinishlar
yaratish, so'rovlarni bajarish va ishlashni kuzatish imkonini beradi. Bundan
tashqari, MSSQL ushbu vositalar orqali boshqarilishi mumkin bo'lgan
replikatsiya, zaxiralash va tiklash va xavfsizlik opsiyalari kabi xususiyatlarni
qo'llab-quvvatlaydi.
Umuman olganda, .NET va MSSQL kombinatsiyasi ishlab chiquvchilarga
ma'lumotlarni xavfsiz va ishonchli tarzda saqlashi va olishi mumkin bo'lgan
veb-ilovalarni yaratishning kuchli va samarali usulini taqdim etadi.
2.2 Internet tarmog‘ida saytlarni ishlab chiqish uchun veb sayt yaratish
asoslarini o‘rgatuvchi kuchli veb ilovani ishlab chiqish.
Veb-saytlarni ishlab chiqish asoslarini o'rgatadigan kuchli veb-ilovani
ishlab chiqish yangi boshlanuvchilarni veb-ishlab chiqish kontseptsiyalari
bilan tanishtirish va ularning ko'nikmalarini rivojlantirishga yordam berishning
14
ajoyib usuli bo'lishi mumkin. Qanday boshlash kerakligi haqida ba'zi
maslahatlar:
Maqsadli auditoriyangizni aniqlash: maqsadli auditoriyangiz kimligini va
ular nimaga erishmoqchi ekanligini ko'rib chiqing. Ular hech qanday tajribaga
ega bo'lmagan yangi boshlanuvchilarmi yoki HTML, CSS va JavaScript
bo'yicha ba'zi asosiy bilimlarga egami? Maqsadli auditoriyangizni aniqlash
sizning veb-ilovangiz uchun mos murakkablik va tarkib darajasini aniqlashga
yordam beradi.
Dasturlash tili va veb-ishlab chiqish ramkasini tanlang: Ruby on Rails,
Django, Flask yoki .NET kabi turli xil dasturlash tillari va veb-ishlab chiqish
ramkalari mavjud. Maqsadlaringiz, maqsadli auditoriyangiz va rivojlanish
ko'nikmalaringizga qaysi til va ramka eng mos kelishini ko'rib chiqamiz.
Veb-ilovangizning funksiyalari va funksionalligini rejalashtirish: Vebilovangizga
foydalanuvchi
autentifikatsiyasi,
kontentni
boshqarish
va
interaktiv elementlar kabi kiritmoqchi boʻlgan xususiyatlar va funksiyalarni
aniqlang. Tartib va tuzilmani tasavvur qilishda yordam berish uchun vebilovangizning simli ramkasi yoki maketini yaratamiz.
Veb-saytlarni ishlab chiqishning asosiy kontseptsiyalarini amalga oshiring:
Foydalanuvchilaringizni HTML, CSS va JavaScript kabi veb-saytlarni ishlab
chiqishning asosiy tushunchalari bilan tanishtiring. Foydalanuvchilarga o'z
ko'nikmalarini rivojlantirish va o'rganganlarini amalda qo'llashga yordam
beradigan oddiy qo'llanmalar va mashqlar yaratamiz.
Kengaytirilgan funksiyalar va funksionallikni qoʻshing: Foydalanuvchilar
oʻsib borishi bilan siz veb-ilovangizga API-larni integratsiyalash, maxsus
animatsiyalar va effektlarni yaratish va yanada ilgʻor veb-ishlab chiqish
konsepsiyalaridan foydalanish kabi ilgʻor xususiyatlar va funksiyalarni
15
qoʻshishimiz mumkin.
Veb-ilovangizni sinab ko'ring va yangilang: veb-ilovangizni kutilgandek
ishlashiga va maqsadli auditoriyangiz ehtiyojlariga javob berishiga ishonch
hosil qilish uchun doimiy ravishda sinovdan o'tkazing va takomillashtiring.
Foydalanuvchilarning fikr-mulohazalarini to'plang va foydalanuvchi tajribasini
yaxshilash uchun kerak bo'lganda tuzatishlar kiritamiz.
Umuman olganda, veb-saytlarni ishlab chiqish asoslarini o'rgatuvchi kuchli
veb-ilovani ishlab chiqish puxta rejalashtirishni, maqsadli auditoriyangizni
puxta o'ylab ko'rishni va foydalanuvchilarga o'z ko'nikmalari va bilimlarini
oshirishga yordam beradigan qimmatli kontent va interaktiv xususiyatlarni
taqdim etishga e'tiborni talab qiladi.
1) Ilovaning ishga tushushi :
16
2)Ilovadan ruyhatdan o’tish
3)Ro’yhatdan o’tgandan so’ng, home oynasi
17
4) Profile oynasi
5) Til tanlash bo’limi
6)Testni boshlash buttini
18
7)Bilet tanlash oynasi
19
8) Testlar oynasi
20
9) Javob tanlanganda ekranda hosil bo’lgan natija
10)Pagination qismi
11)Natija oynasi
21
12)Foydalanuvchilar ro’yxati bo’limi
22
13)Statistika bo’limi
14)Dastur xaqidagi oyna
23
Xulosa
Haydovchilik guvohnomasi olish uchun online test sinovi web ilovalari,
haydovchilik bilimlarini oshirish va sinovlarda ishtirok etish imkonini beradigan
foydali resurslar hisoblanadi. Bu tizimlar, haydovchilikni o'rganishga va
haydovchilik guvohnomasi olishga qiziqishgan odamlar uchun keng doirasidagi
ma'lumotlar, savol-javoblar, tahlil va sertifikat taqdim etadi.
Bu ilovalar orqali, iste'molchilar test sinovlarini o'tkazib, haydovchilikning
turli sohalarini tahlil qilish, xatolarini aniqlash va umumiy natijalarni o'rganish
imkoniyatiga ega bo'ladi. Bu natijalar, iste'molchilar uchun shaxsiy tarzda bo'lgan
bilimlarni identifikatsiya qilishga yordam beradi va ularni o'zlashtirilgan
ma'lumotlarni oshirishga imkon beradi.
Bundan tashqari, muvaffaqiyatli test natijalarini olish uchun online tizimlar
sertifikatlar taklif etadi. Bu sertifikatlar, haydovchilik sohasidagi bilim va
malakangizni tasdiqlaydi va ish topishda, yangi imkoniyatlarga ega bo'lishda yoki
qo'shimcha ta'lim olganingizni ko'rsatishda foydali bo'ladi.
24
Shuningdek, online test sinovi web ilovalari foydalanuvchilarga
haydovchilikning eng yangi xilma-xilliklari, qoidalari va tarixiy ma'lumotlarni
taqdim etish orqali haydovchilik bilimlarini yangilashga yordam beradi. Bu,
haydovchilik sohasida rivojlanishni davom ettirish va haydovchilar uchun
mustahkam va afzal imkoniyatlar yaratishga qaratilgan qulay usuldir..NET
yordamida veb-sayt yaratishning muhim afzalliklaridan biri bu ishlab
chiquvchilar uchun mavjud vositalar va xususiyatlarning mustahkam to'plamidir.
.NET ramkasi ishlab chiquvchilarga kuchli va kengaytiriladigan ilovalarni
yaratishda yordam beradigan keng doiradagi vositalar va kutubxonalarni taqdim
etadi. Bundan tashqari, MSSQL bilan integratsiya ma'lumotlarni samarali saqlash
va olish imkonini beradi, bu esa katta hajmdagi ma'lumotlarni boshqarishni
osonlashtiradi.
Bundan tashqari, foydalanuvchilarga qulay va sezgir veb-sayt yaratish
foydalanuvchi interfeysi dizayni va qulayligiga diqqat bilan e'tibor berishni talab
qiladi. Ishlab chiquvchilar veb-sayt aniq va ixcham tartib va yaxshi tashkil etilgan
axborot arxitekturasi bilan intuitiv va ulardan foydalanish oson bo'lishini
ta'minlashi kerak. Foydalanuvchilarga qulay tajribani taqdim etish orqali ishlab
chiquvchilar foydalanuvchilarning faolligini va qoniqishini oshirishi mumkin, bu
esa veb-saytni qabul qilish va undan foydalanishni oshirishga olib keladi.
.NET va MSSQL-dan foydalangan holda taqvim birliklarini o'zgartiruvchi
veb-sayt yaratish foydalanuvchilar uchun qimmatli vosita va ishlab chiquvchilar
uchun muhim o'rganish tajribasini taqdim etishi mumkin bo'lgan foydali ishdir.
Ma'lumotlar bazasi dizayni, foydalanuvchi interfeysi dizayni va xavfsizligiga
ehtiyotkorlik bilan e'tibor berish orqali ishlab chiquvchilar intuitiv, samarali va
foydalanuvchilarning ehtiyojlariga javob beradigan veb-sayt yaratishlari mumkin.
Foydalanilgan adabiyotlar ro‘yhati
1.
Tkacz, Ewaryst; Kapczynski, Adrian. Internet — Technical Development
and Applications. Springer. — 2020. — С. 255. — ISBN 978-3-642-05018-3
2.
Laura Tomson i LyeokVelling. razrobotka web -prilojeniy na php sql.
DiaSoft. Sankt-Peterburg – 2021.
3.
A. V. Volokitin, A. P. Manoshkin. elektronnaya kommertsiya. Uchebnoe
posobie dlya
slujashix
gosudarstvennıx
25
organizatsii
kommercheskix
firm.
4.
https://dotnet.microsoft.com/learn
5.
https://w3school.com
6.
https://youtube.com
7.
https://developer.mozilla.org
8.
https://github.com
9.
https://stackoverflow.com
Code bo’limi :
Home controller codlari :
using Autotest.Mvc.Models;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using Autotest.Mvc.Repositories;
using Autotest.Mvc.Services;
using DataBase.Entietes;
namespace Autotest.Mvc.Controllers;
public class HomeController : Controller
{
private readonly UserRepository _userRepository;
private readonly ILogger<HomeController> _logger;
private readonly UsersService
_usersService;
public HomeController(ILogger<HomeController> logger, UserRepository userRepository, UsersService usersService)
{
_logger = logger;
_userRepository = userRepository;
_usersService = usersService;
}
public IActionResult Index()
{
if (!_usersService.IsLoggedIn(HttpContext))
{
return View();
}
else
{
var userId = HttpContext.Request.Cookies["user_id"];
var user = _userRepository.GetUserById(userId!);
return RedirectToAction("Dashboard");
}
}
public IActionResult Privacy()
{
return View();
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
26
}
public IActionResult Dashboard()
{
if(!_usersService.IsLoggedIn(HttpContext))
{
return RedirectToAction("SignUp", "Users");
}
else
{
var userId = HttpContext.Request.Cookies["user_id"];
var user = _userRepository.GetUserById(userId!);
return View(user);
}
}
public IActionResult TicketResults()
{
var user = _usersService.GetCurrentUser(HttpContext);
if (user == null)
{
return RedirectToAction("SignUp","Users");
}
return View(user);
}
public IActionResult About()
{
return View();
}
}
Ticket controller bo’limi codlari:
using Autotest.Mvc.Models;
using Autotest.Mvc.Repositories;
using Autotest.Mvc.Services;
using DataBase.Entietes;
using Microsoft.AspNetCore.Mvc;
namespace Autotest.Mvc.Controllers;
public class TicketsController : Controller
{
private readonly UsersService _usersService;
private readonly QuestionService _questionService;
public TicketsController(UsersService usersService, QuestionService questionService)
{
_usersService = usersService;
_questionService = questionService;
}
public IActionResult Index()
{
var user = _usersService.GetCurrentUser(HttpContext);
if (user == null)
return RedirectToAction("SignIn", "Users");
return View(user);
}
public IActionResult StartTicket(int ticketIndex)
27
{
var user = _usersService.GetCurrentUser(HttpContext);
if (user == null)
return RedirectToAction("SignIn", "Users");
var tickets = _usersService.TicketRepository.GetTicketsList(user.Id, user.Language);
if (tickets[0].Id > ticketIndex && ticketIndex > tickets[^1].Id)
return View("NotFound");
user.CurrentTicketIndex = ticketIndex;
user.CurrentTicket = user.CurrentTicketIndex == null ? null
:_usersService.TicketRepository.GeTicket(user.CurrentTicketIndex!.Value, user.Language);
_usersService.UserRepository.UpdateUser(user);
return RedirectToAction("Questions", new { id = user.CurrentTicket?.StartIndex });
}
public IActionResult Questions(int id, int? choiceIndex = null)
{
User? user = _usersService.GetCurrentUser(HttpContext);
if (user == null)
return RedirectToAction("SignIn", "Users");
if (user.CurrentTicketIndex == null)
return RedirectToAction("Index");
if (id > user.CurrentTicketIndex * 10 + 10)
{
return RedirectToAction(nameof(Result));
}
var question = _questionService.Questions?.FirstOrDefault(x => x.Id == id);
if (question == null)
return View("NotFound");
ViewBag.Question = question;
ViewBag.IsAnswer = choiceIndex != null;
user = _usersService.GetCurrentUser(HttpContext);
if (choiceIndex != null)
{
var answer = new TicketQuestionAnswer()
{
TicketId = user.CurrentTicketIndex.Value,
ChoiceIndex = choiceIndex.Value,
QuestionIndex = id,
CorrectIndex = question.Choices.IndexOf(question.Choices.First(c => c.Answer))
};
_usersService.TicketRepository.AddTicketAnswer(answer,user.Language);
ViewBag.Answer = answer;
}
return View(user);
}
public IActionResult Result()
{
var user = _usersService.GetCurrentUser(HttpContext);
if (user == null)
return RedirectToAction("SignIn", "Users");
28
return View(user);
}
}
User controller bo’limi codlari :
using Autotest.Mvc.Models;
using Autotest.Mvc.Repositories;
using Autotest.Mvc.Services;
using Microsoft.AspNetCore.Mvc;
namespace Autotest.Mvc.Controllers;
public class UsersController : Controller
{
private readonly UsersService _usersService;
private readonly QuestionService _questionService;
public UsersController(UsersService usersService, QuestionService questionService)
{
_usersService = usersService;
_questionService = questionService;
}
[HttpGet]
public IActionResult SignUp()
{
return View();
}
[HttpPost]
public IActionResult SignUp(CreateUserModel createUser)
{
if (!ModelState.IsValid)
{
return View(createUser);
}
_usersService.Register(createUser, HttpContext);
return RedirectToAction("Index", "Home");
}
[HttpGet]
public IActionResult SignIn()
{
return View();
}
[HttpPost]
public IActionResult SignIn(SignInUserModel signInUserModel)
{
if (!ModelState.IsValid)
{
return View(signInUserModel);
}
var isLogin = _usersService.LogIn(signInUserModel, HttpContext);
if (!isLogin)
{
ModelState.AddModelError("Username", "Username or Password is incorrect");
return View();
}
29
return RedirectToAction("Profile");
}
public IActionResult Profile()
{
var user = _usersService.GetCurrentUser(HttpContext);
if (user == null)
{
return RedirectToAction("SignUp");
}
return View(user);
}
public IActionResult LogOut()
{
_usersService.LogOut(HttpContext);
return RedirectToAction("SignIn");
}
public IActionResult ChangeLanguage(string language)
{
_questionService.LoadJson(language);
var userId = HttpContext.Request.Cookies["user_id"];
var user = _usersService.UserRepository.GetUserById(userId!);
user!.Language = language;
_usersService.UserRepository.UpdateUserLanguage(user,language);
return RedirectToAction("Dashboard", "Home");
}
}
30
Download
Study collections