CSharpda Abstract classlardan foydalanish

Abstract class – bu class ob’yektini yaratib bo’lmaydigan class turi, uni base class sifatida ishlatish mumkin. Abstract classda abstract yoki abstract bo’lmagan metodlar va memberlardan foydalanish mumkin. Abstract classda maydon(field)ni abstract qilib yaratish MUMKIN EMAS, property(get;set;) va metodlarni abstract qilib yaratish MUMKIN.
Masalan:

 public  abstract class MyClass
{
  	public abstract string Name{get;set;} 	//Mumkin
	public abstract string ColumnName;	//Mumkin emas, chunki bu FIELD 
	public abstract void GetValue() 		//Mumkin
{
	//…
}
}

Question 1: Abstract classda aniqlangan abstract metod(yoky property) va abstract bo’lmagan metodning(yoki property) qanday farqi bor?
Answer: abstract classdan inheritance olgan classda abstract classdagi abstract metodlar(propertylar) override qilinib qayta aniqlanishi shart. Abstract metod(yoki property) lar Abstract classda faqatgina e’lon qilinadi uning nima ich bajarishi esa Abstract classdan inheritance olgan classda aniqlanadi.
Masalan:
1) Methods
public abstract class A
{
public string Name;
public abstract string GetName1();//Bu metodni GetName1(){…} kabi aniqlash mumkin emas
public string GetName2()
{
	return “This is GetName2 method’s result”
}
}
public class B:A
{
//Bu yerda A classdagi GetName1 metodi override qlinib qayta aniqlanishi shart chunki u abstract metod, aks holda  //xatolik yuz beradi.
public override string GetName1()
{
	return “This is GetName1() method’s result”;
}
}


2) properties

abstract class A
{
    protected int myNumber;
    public abstract int numbers
    {
        get;
        set;
    }
}
class B: A
{
    // abstract propertylarni Implement qilamiz 
    public override int numbers
    {
        get
        {
            return myNumber;
        }
        set
        {
            myNumber = value;
        }
    }
}

Question 2: Abstract classning interfacedan farqi?
Answer: Abstract sinf abstract memberlardan va abstract bo’lmagan memberlardan iborat bo’lishi mumkin, interfaceda esa barcha memberlar abstract bo’lib, har bir child sinfda override qilinishi shart! Ya’ni interfaceda abstract bo’lmagan member yaratib bo’lmaydi!!!

interface iSampleInterface
{
  //Betta barcha memberlar avtomatik abstract yaratilvotti
  int AddNumbers(int Num1, int Num2);
  int MultiplyNumbers(int Num1, int Num2);
}
 

Abstract sinfda abstract memberlarni yaratish interfacedagi kabi bir xil effect beradi
Читать дальше

C#. Nomlanishlar

Dasturlashni o’rganishni boshlagandan keyin biron masalani yechishga qaratilgan dasturlarni qilish mumkin. Lekin kodni to’g’ri yo’l bilan yozish uchun ko’p ko’nikma va bilim talab qilinadi. Ko’pchilik programmistlar xatosiz ishlaydigan kod yoza olishadi lekin uni “yaxshi kod” deb aytish qiyn. “yaxshi kod” – sanat asariga o’xshaydi va u programmistdan ko’proq ko’nikma, mantiqiy fikrlash, YAXSHI USTOZ va albatta tinimsiz o’qib o’rganish talab qiladi. Har bir programmistlar komandasi uchun “yaxshi kod” tushunchasi turlicha bo’lishi mumkin.
Eng avvalo “yaxshi kod”da minimal ishonchlilik, tushunarli, lozim bo’lganda oson qo’shimcha kiritish yoki to’girlash mumkin bo’lishi kerak.
Ixtiyoriy proyekt qilinishida eng kamida quyidagi 3ta prinsipga amal qilinadi:
1. Ekspert baholash — Proyektdagi har bir kod boshqa kishi(senior developer) tamonidan test qilinishi, uning kodlash standartlariga mos kelish yoki kelmasligini aniqlash, qo’yilgan talablarga javob berish yoki bermasligini aniqlash.
2. Arxitektor baholashi – komonda arxitektori proyektdagi asosiy modellarni ko’rib chiqishi lozim
3. Komandadagilarning fikri – proyektdagi kodlarning lozim bo’lgan qismini komondadagilar bilan tahlil qilish, fikr almashinish
Читать дальше

Javascriptda boshlang'ich ko'nikmalar (kirish).

Oldingi maqolamda men iframe haqida gapirgan va uning contentini o'zgartirish uchun javascriptdan foydalangan edim, vaholangki dasturlashni boshlovchilar uchun bu maqola tushunarsiz bo'lishini o'ylamagan ekanman. Bu gal shu aybimni yuvib, Javascript haqida 1-2ta maqola yozmoqchiman. Aytganimdek bu maqola yosh dasturchilar yoki dasturlashga endi kirib kelayotganlar uchun.
Читать дальше

Androidda Applicationdan uzulgan service yaratish

Hammga xayrli kum. Yaqinda androidda bir muammoga duch keldim. Dasturda Vaqtini tekshirib turgan holda Notification jonatish kerak bo`lib qoldi.Vaqt serverdan belgilanadi. Buni service yordamida amalga oshirdim.Serviceni esa internet yonishi, yoki ONBoot orqali Recevey orqali va applicationdan ishga tushrilar edi. Boshida hammasi yaxshi ishlayotgandek edi ammo Dasturni uchirilishi bilan Serviceni qayta ishga tushirish kerak bo`lib qoldi. Activityda OnDestory holatda ishga tushirish ham foyda bermadi. Kein internetni izlab bir narsani Serviceni remote rejimga tushurish kerakligini bilvoldim.

<service
android:process=":remote"
android:launchMode=«singleInstance»
android:name=".service.AndroidStartServiceOnBoot" >

Читать дальше

AKT sohasi rivojiga o'z hissangizni qo'shing

Komp
Hurmatli barcha kompyuter ustalari, opennet.uz sayti foydalanuvchilari va hurmatli admin Men oddiy bir web sohasi ixlosmandiman yani shu sohaga juda qiziqaman. Hozir menga o'hshaganlar yurtimizda ko'plab topiladi. Web sohasini o'rganish esa tinimsiz izlanishlarni talab qiladi. Bunday insonlar axborot texnologiyalari yangiliklaridan bir qancha vaqtga orqada qolar ekan u albatta texnika sohasida ancha orqada qolib ketadi. Kopyuter sohasida bilimlari yuqori insonlar ham yurtimizda ko'plab topiladi. Meni fikrimcha kompyuterni 100% bildigan inson hozirgi kunda bo'lmasa kerak, lekin albatta bir inson bilmagan narsani albatta boshqasi biladi deb o'ylayman. Talabalik davrimda bir loyihani yaratishni o'z oldimga maqsad qilib qo'ygandim, UzGNU loyihasini bu loyihada men dasturlash sohasidagi boshlovchilar va professionallar orasida ko'prik o'rnatishni ya'ni shunday web sayt yaratmoqchi edimki unda dasturlash sohasi vakillari kompyuter ustalari o'zi ishi davomida kichik dasturlarini, yoki to'liq tugallanmay qolib ketgan dasturlarini joylashtirishi uni muxokamaga qo'yishini va o'z muammolarini shu saytda hal qilishini hohlardim, ammo bazida vaqt bazida esa tajriba yetishmadi. Hullas loyiha amalga oshmadi. Bu maqola orqali nima demoqchiman: hozirda kompyuter sohasini o'rganishda videokurslar juda katta ro'l o'ynaydi va bunday videolar chet-el saytlarida boshqa tilda bo'lsa ham juda ko'plab topiladi, ammo ko'plab insonlarini bunga imkoniyati yo'q bunday deyishimga sabab kompyuter, dasturlashga qiziqadiganlarni ko'pchiligi talabalar aksariyati TATU talabalaridir. O'zbekistonda hozirgi kunda tas-ix tarmog'i rivojlanib boryapti, ko'plab insonlar bu tarmoqda asosan ko'ngilochar narslar kino,o'yinlar uchun foydalanishyapti.
Taklif: har bir kompyuter ustasi ozgina vaqtini sarflab bilgan narsalarini video kurs sifatida saytga joylasa, va bunday loyihalar reytingi yaratilsa bu albatta kimlar Yurtimizda bu sohani ustalari ekanligi aniqlansa maqsadga muofiq bo'lardi va bu harakatlar O'zbekistonda kompyuter sohasi rivozjida ancha o'sish bo'lardi. Bu albatta meni fikrim yana bilmadim.
Читать дальше

Yii framework haqida

Yii – bu ko`p tarmoqli web ilovalar qurish uchun yuqori sifatli komponentlar asosidagi PHP – framework strukturasidir. U katta kodlardan qayta va qayta foydalanishda moslashuvchanlikni va web ilovani tezkoriligini oshirishiga imkon beradi. Qisqa qilib aytganda oddiy, samarali va keng ko`lamli php – framework.
Keling PHP frameworklarning o`zaro imkoniyatlarini chamalangan holda ko`rib chiqaylik.

Frameworklarning solishtirma nusxasi

· MVC: Model-View-Controller arxitekturasi bo`yicha qurish imkoniyatiga ega.
· Multiple DB's: Bir ma`lumotlar omboridan boshqa bir qancha ma`lumotlar omboriga o`zgartirishlarsiz amalga oshirilishi xususiyatiga ega.
· ORM: ActiveRecord da ma`lumotlar obyekti bog`lanishi arxitekturasini amalga oshirish.
· DB Objects: Ma`lumotlar ombori bilan ishlash xususiyatiga ega. ( Insert, Delete, Update kabilar)
· Templates: Qurilgan shablonlar mexanizmi frameworkiga ega.
· Caching: Berilgan obyektlarni keshlash yoki shu kabi boshqa uslubdagi keshlashga ega.
· Validation: Ma`lumotlar oqimini tekshirish yoki filtrlash xususiyatiga ega.
· Ajax: Frameworkda ajax tehnologiyasi orqali ishlash xususiyatiga ega.
· Auth Module: Foydalanuvchilarni authentication qilishda o`zining maxsus moduliga ega.
· Modules: Frameworkning o`zida maxsus komponentlarga ega (misol uchun: PDF bilan ishlash moduli, RSS moduli). Ya`ni foydali komponentlar jamlanmasi
· EDP: Event Driven Programming. Eventlar bilan ishlash xususiyatiga ega. Misol uchun jquery kutubxonasining click, dbclick eventlari kabi.

Qo`shimcha ma`lumot: Har bir framework o`zining biznes logikasiga ega va bu logika frameworkning qaysidir qismida yotadi. Yiining biznes logikasi Modelda joylashgan. Biznes logika deganda — qurilayotgan web ilovaning asosiy qismini tashkil qiluvchilari tushuniladi. Masalan: Validation, beforeSave, afterSave kabilar shular jumlasidan.

Manba: uzyiiblogspot.com dan olindi.
Читать дальше

Daniyaliklar kabel orqali rekord 43Tbit/s tezlikda ma'lumot uzatishdi

MUZ.UZ
Daniyalik olimlar yagona optik-tolali kabel va birgina lazer yordamida rekord darajadagi tezlik, ya'ni 43 Tbit/s tezlikda ma'lumot uzatishga erishdilar. Bu degani 1Gb faylni 0,2 milli sekundda ko'chirish mumkin degani. Avvalgi rekord Germaniyaning Karsrue texnologik instituti olimlari tomonidan qayd etilgan va ular optik tola orqali 32 Tbit/s tezlikda ma'lumot uzatishga erishgan edilar.
Ushbu rekordni qayd etishda Yaponiyalik olimlar tomonidan yaratilgan yangi optik toladan foydalanildi. Kabelda 7 serdechnik mavjuddir.
Hozirgi kunda internet tarmog'idan foydalanish hamda ma'lumot uzatish tezligiga bo'lgan talab kun sayin katta qadam bilan oshib borayotgan pallada, Daniyaliklarning ushbu natijasi kata yutuq hisoblanadi. Bundan tashqari ushbu yutuq sababli malumot uzatishdagi elektr harajati ham bir muncha qisqarilishiga erishish mumkin.
Darvoqe, aynan ushbu olimlar tomonidan avval 1 Pbit/s (petabit) tezlikda ma'lumot uzatishga erishishgandi. Lekin, ushbu natijaga bir nechta yuzlab lazer uzatgichlarni ishga solish orqali erishgan edilar.
Читать дальше

C# da ma'lumotlar bazasi sifatida XMLdan foydalanib lug'at dasturi yaratish

Using XML in C#
XML (engliz til. eXtensible Markup Language) – XML tili XML xujat yaratishda xujjatdagi aniq struktura va strukturadagi elementlarning o’zaro aloqasini ko’rsatish uchun ishlatiladi. XML tili 1998 yil 10 fevralda W3C (World Wide Web Consortium) tashkiloti taklifi bo’yicha paydo bo’lgan (see also: ru.wikipedia.org/wiki/W3C, www.w3.org/standards/). Bunday strukturali xujjatlarni yaratish uchun “<” va “>” belgilari ichiga olingan teglardan foydalaniladi. Har bir ochilgan teg o’z o’rnida yopilishi kerak. XML qo’pol qilib aytganda berilganlarni saqlash vazifasini bajaradi(Data Base).
Masalan:
1)Quyidagi XML dokument "<emails>", "<email>", "<to>", "<form>", "<header>", "<content>" teglaridan tashkil topgan.
Читать дальше