„Szoftvertechnikák vizsga, 2008. május 30.” változatai közötti eltérés

A VIK Wikiből
Új oldal, tartalma: „{{GlobalTemplate|Infoalap|SzoftTechVizsga080530}} __TOC__ ==1. Mi az assembly / .NET szerelvény (assembly) fogalma, szerepe, típusai, azonosítása== [https://wik…”
 
Ferrero (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
 
1. sor: 1. sor:
{{GlobalTemplate|Infoalap|SzoftTechVizsga080530}}
__TOC__
__TOC__


==1. Mi az assembly / .NET szerelvény (assembly) fogalma, szerepe, típusai, azonosítása==
==1. Mi az assembly / .NET szerelvény (assembly) fogalma, szerepe, típusai, azonosítása==


[https://wiki.sch.bme.hu/bin/view/Infoalap/SzoftTechVizsga070613#1_NET_szerelv%E9ny_assembly_fogalm lásd: 2007. június 13-i vizsga.]
[[SzoftTechVizsga070613|lásd: 2007. június 13-i vizsga.]]


==2. Mi az a delegate, mire használható. Példakód==
==2. Mi az a delegate, mire használható. Példakód==


[https://wiki.sch.bme.hu/bin/view/Infoalap/SzoftTechVizsga070606#2_Delegate_Property lásd: 2007. június 6-i vizsga.]
[[SzoftTechVizsga070606|lásd: 2007. június 6-i vizsga.]]


==3. Mi az érvénytelen terület==
==3. Mi az érvénytelen terület==
102. sor: 99. sor:
==5. Linux vagy Windows példa a dinamikus programkönyvtárak betöltésére==
==5. Linux vagy Windows példa a dinamikus programkönyvtárak betöltésére==


[https://wiki.sch.bme.hu/bin/view/Infoalap/SzoftTechVizsga070613#5_Linux_vagy_Windows_p%E9lda_a_din lásd: 2007. június 13-i vizsga.]
[[SzoftTechVizsga070613|lásd: 2007. június 13-i vizsga.]]


==6. Tervezési minták...==
==6. Tervezési minták...==
108. sor: 105. sor:
===b) Composite tervezési minta, mi az, mire jó, hogy épül fel, példával vagy konkrétan a működése===
===b) Composite tervezési minta, mi az, mire jó, hogy épül fel, példával vagy konkrétan a működése===


[https://wiki.sch.bme.hu/bin/view/Infoalap/SzoftTechVizsga070530#7_Tervez%C3%A9si_mint%C3%A1k lásd: 2007. május 30-i vizsga.]
[[SzoftTechVizsga070530|lásd: 2007. május 30-i vizsga.]]


==7. MVC vs. Document/View. Jellemzés, leírás, mi a különbség a kettő között, példa az egyikre==
==7. MVC vs. Document/View. Jellemzés, leírás, mi a különbség a kettő között, példa az egyikre==


[https://wiki.sch.bme.hu/bin/view/Infoalap/SzoftTechVizsga070606#7_MVC_vs_Document_View_Jellemz%E9s lásd: 2007. június 6-i vizsga.]
[[SzoftTechVizsga070606|lásd: 2007. június 6-i vizsga.]]


==8. Dinamikus webalkalmazások jellemzői (def, kliens oldal, szerver oldal, állapotkezelés)==
==8. Dinamikus webalkalmazások jellemzői (def, kliens oldal, szerver oldal, állapotkezelés)==
-- [[SzatmariZoltan|Zee]] - 2008.06.04.




[[Category:Infoalap]]
[[Category:Infoalap]]

A lap jelenlegi, 2013. február 6., 10:12-kori változata

1. Mi az assembly / .NET szerelvény (assembly) fogalma, szerepe, típusai, azonosítása

lásd: 2007. június 13-i vizsga.

2. Mi az a delegate, mire használható. Példakód

lásd: 2007. június 6-i vizsga.

3. Mi az érvénytelen terület

Korábban takarásban levő, újra láthatóvá vált ablakrészek (pl.átméretezés, Z-orderben előbb került az ablak, stb.)

4. Szálkezelés...

a) C# szálvédelmi lehetőségei, szálvédős c# példa

1.) Kritikus szakasz: A kritikus szakaszt egyszerre csak egyetlen szál futtathatja, a többinek ilyenkor várakoznia kell.
Kritikus szakaszt alkalmazó osztályok: Interlocked, Monitor, Mutex, és a ReaderWriterLock
Zárolási konstrukciók: lock (nyelvi elem, Monitorral megegyező működésű), Monitor, Mutex, Semaphore, ReaderWriterLock, Interlocked
Lock példa:

class ThreadSafeClass{

	static bool done; // Közös erőforrás
	static object syncObject = new object();

	static void Main(){
		new Thread(Run).Start();
		new Thread(Run).Start();
	}

	static void Run(){
		lock (syncObject){
			if (!done){
				done = true;
				Console.WriteLine("Done");
			}
		}
	}

}

2.) Esemény: Az esemény olyan szinkronizációs eszköz, melynek írása és olvasása az ütemező által nem
	 megszakítható, és processzortakarékos módon lehet rá várakozni. Az esemény kétféle állapotban lehet,
	 jelzett és jelzetlen állapotban. Tehát az esemény egy speciális logikai változóként képzelhető el.
	 A keretrendszer ezt megvalósító osztályai az AutoResetEvent, és a ManualResetEvent.
A következő példában egy előtérszálat fogunk leállítani eseményre történő várakozással.
AutoReset példa:

class EventTestClass{
	private static AutoResetEvent stopEvent = new AutoResetEvent(false);

	public static void Main(string[] args){
		Thread t = new Thread(new ThreadStart(ThreadMethod));
		t.Start();
	}

	public static void ThreadMethod(){
		while (!stopEvent.WaitOne(0, false)){ ... }
	}

}

3.) Egy osztályt két szinten lehet szálbiztossá tenni: objektum és osztály szinten. 
a.) Az objektumszint esetén azt biztosítjuk, hogy az osztály adott objektuma legyen többszálú környezetben biztonságosan
	 használható. A védelemre egy közönséges tagváltozót használunk (ilyen a private object syncroot = new object();)
b.) Az osztályszint esetén az osztály valamennyi objektumára vonatkozóan biztosítjuk a védelmet. A statikus tagváltozók
	 védelmét pl. csak így lehet megoldani. Ez esetben zárolási objektumként egy statikus tagváltozót kell használni.
	 Pl.: private static object syncroot = new object(); Ez az objektumszintnél korlátozottabb párhuzamosítást engedélyez,
	 hiszen a zárolási objektum (syncroot) az osztály minden objektumára közös.

4.) Formok: A vezérlőelemek alapvetően nem szálvédett objektumok, ami azt jelenti, hogy csak a létrehozó szálból lehet az 
	 állapotukat megváltoztatni. Ha nem a megfelelő szálból próbáljuk a vezérlőelemeink állapotát változtatni, akkor kivétel
	 keletkezik.
	 InvokeRequired: igaz, ha nem a vezérlőelemet létrehozó szálból kérdezzük le az értékét, egyébként hamis
	 Invoke: a vezérlőelemet létrehozó szálon futtatja le a paraméterként megadott metódust

private delegate void SetTextMethod( string text );
private void SetTextBoxText( string text ){
	if (InvokeRequired){
		Invoke(new SetTextMethod(SetTextBoxText), new object[]{text});
	}
	else
		textBox1.Text = text;
}

b) kell-e a következőknél szálvédelmet alkalmazni:

1) Függvények lokális változóira.

nem

2) Dinamikusan a heap-en allokált objektumokra.

igen

5. Linux vagy Windows példa a dinamikus programkönyvtárak betöltésére

lásd: 2007. június 13-i vizsga.

6. Tervezési minták...

a) Miben és hogyan segítenek a tervezési minták?

b) Composite tervezési minta, mi az, mire jó, hogy épül fel, példával vagy konkrétan a működése

lásd: 2007. május 30-i vizsga.

7. MVC vs. Document/View. Jellemzés, leírás, mi a különbség a kettő között, példa az egyikre

lásd: 2007. június 6-i vizsga.

8. Dinamikus webalkalmazások jellemzői (def, kliens oldal, szerver oldal, állapotkezelés)