C# programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


stevve
(nagyúr)
Blog

Sziasztok!

Most kezdtem el foglalkozni a VS.NET -tel és a C# nyelvvel. Ha van köztetek olyan, aki ezzel foglalkozik vagy csak érdekli itt a helye.

Szívesen vennék egy-két magyar nyelvű leírást, ha van valakinek. Angolul a Microsoft ellátja az embert temérdek tutoriallal meg sample progival, de magyarul eddig alig találtam valamit.

Nagyon tetszik egyébként a környezet, mert nem kell minden windows-os dolgot lekódolni. Egy sor alapvető műveletet kivesz a kezünkből a VS.NET.
Ettől függetlenül nem a legkönnyebb nyelv, mert full objektumorientált, ami (nekem) kicsit nehezebb téma a régi c++ -os tömbkezelésnél, stb.

Szóval várok minden nemű írást ide, legyen az vélemény attól, aki próbálta, kódrészlet, kérdés... bármi a témában.

Hali !!!:))

[Szerkesztve]

[ Módosította: Kalandor ]


OddMan
(őstag)

Én a C# mesteri szinten című könyvből tanulok.
Keresgéltem a neten magyar nyelvű szakirodalom után, de nem-igen találtam semmit. A könyvben az alapok elég jól benne vannak szerintem. Egyébként én is programoztam C++-ban, de szerintem C#-ben sokkal könnyebb windows ablakos progik létrehozása. Mondjuk most már c++-ban is lehet ''Windows Forms Application (.NET)'' projectet készíteni, szal nem kell az MFC-vel kínlódni.


[Szerkesztve]


stevve
(nagyúr)
Blog

Igen. Tetszik, hogy a formokat VS.NET -ben csak berakod és csak az eventeket kell leprogramozni. A gombok, menük és a többi alapelem rendelkezésedre állnak készen.

A másik ami megfogott az a köztes nyelvre fordítás. Ezek szerint akkor a nagyvállalati összevisszaságokra (ami MO-on különösképp jellemző) is lehet egységes felületet fejleszteni. Megírom a progimat XP alatt és egy SPRAC procis unixos rendszerben futtatom (persze ez nem ilyen egyszerű, de majdnem). :Y


Miracle
(senior tag)

hat igen, ha valamit javaban fejlesztesz, akkor azt valoban valtoztatas nelkul futtathatod MACen, linuxon, solarison, windowson is, de a .NET frameworknek csak windowsos portja van, barmilyen meglepo is ez a m$ reszerol :(
amugy a gombok, meg stapobbi elemmel kapcsolatban... nezd meg a borland c++ buildert, es kerdezd meg a m$ot, hogy mi tartott 10 evig? ok mar 10, de legalabb 9 eve csinalnak ilyen appokat IDEket :(
amugy felreertes ne essek, jo a VS 2K3, csak ha 5 evvel korabban jon, akkor meg korszerunek is mondhatnank...


stevve
(nagyúr)
Blog

LOL!!

Köszi a hozzászólást. Nem kellett volna off topc-ként írnod.

Igazad van. A .NET Framework nélkül nem megy. Persze ez is MS trükk, hogy vegyél inkább MS terméket...gondolom
A Borland C++ Builderről már hallottam, de sose néztem meg. EDDIG! Mostmár érdekel.
Az IDE kérdésről tudtam. Nem ez az első, de aVS.NET-ben ''IS'' nagyon hasznos.

Tudod hogy reklámozzák ezzel magukat? Azt mondják, hogy e .NET Framework bevezetésével minden szoftvercsaládjukat lecserélték, ezzel ELSŐKÉNT ismerve fel az XML és a webes programozás nyújtotta lehetőségeket.

És ezt ki veszi be? Szerintem már régen a köztudatban él az XML és a web fontossága és létjogosultsága.

Persze mindezek mellett szerintem a .NET valóban a haladást szolgálja és nem is kis mértékben.


stevve
(nagyúr)
Blog

Senki nem használ C# -ot? Pedig lenne pár kédésem. PLS.:O


Miracle
(senior tag)

Agreed, a .NET telleg egy nagyon jo kornyezet, meg az egesz visual studioval nincs semmi baj, csak nincs is benne semmi uj :(
na mind1, en hasznalgatok ritkan c#ot, ha van valami kerdesed, en varom!


VladimirR
(nagyúr)

bar oly nagyon nem ertek hozza, ezek a webszolgaltatas dolgok nem elhanyagolhatoak szerintem, es nem hinnem, hogy a 10 eves visual cpp (vagy mi) tudna ilyeneket -- esetleg java fronton vannak hasonlok, de az mas teszta


stevve
(nagyúr)
Blog

Lenne is egy kérdésem: Kivételkezelés.

Számomra ez egy bonyolult téma. Vajon használhatok kivételt az előre várt problémákra is? Honnan tudom, hogy melyik kivétel a ''megfelelő'' az eldobhatók közül és lehet ezeket rangsorolni, hogy ne mindent dobjon el, ha már nem kell?

(Lehet, hogy a kérdések buták, de igazán nem vagyok othon az ilyesmiben.)


Miracle
(senior tag)

nem azt mondtam, h a 10 eves visual cpp nem rosszabb, mint az uj, csak azt, h az uj IDE igazabol nem mutat be semmi ujat, minden technikat bemutattak mar mas projectekben.
amugy ha Rapid Web Developmentrol van szo, akkor Netbeans+JSP/Servlet :P

[Szerkesztve]


Miracle
(senior tag)

a beepitett kiveteleket nem biztos, hogy szerencses hasznalni, de te is tudsz sajat kiveteleket definialni, csak a dobhato, vagy kivetel osztalybol kell szarmaztatni :) de eleg gyakran az is eleg, hogy sima Exceptiont dobsz egy jo kis stringgel, ami elmondja, hogy mizujsag.
Amugy ha kiveteleket akarsz hasznalni rendesen, akkor erdemes kicsit utanaolvasni a java fele kivetelkezelesnek, meg a c++ felenek, (elobbi kivetelterjedest szigoruan deklaralo, szabalyozo, utobbi ,,ertelmesen'' kivetelkezelo) es eldonteni, hogy neked melyik tetszik.


stevve
(nagyúr)
Blog

ok. És ha mondjuk én azt szeretném, hogy egy dolog az x-edik formon kivételként eldobandó, a másikon meg elfogadható, akkor ezt hogyan oldom meg? ''Helyben '' kell definiálni?

Most itt arra gondolok, mit fogadunk el és mit nem és ezek néha megváltozhatnak formtól függően.
Vagy ez nagy marhaság?:DDD


Miracle
(senior tag)

mindent dobhatsz, aminek valamely ososztalya a System.Exception.
a windows formsot nem ismerem, es igy abban a kivetelkezelest sem, de szerintem a kivetelek terjedese ott is a hivasi stacken tortenik, szoval a kivaltas helyerol indulva lepked a kivetel a hivasi vermen visszafele addig, amig el nem kapod valamelyik metodusban.
ha van catch reszed, akkor az nem csak az ott emlitett kivetelt, hanem annak minden SZARMAZTATOTT osztalyat is elkapja, tehat mondjuk egy
catch (Exception e) {/*...*/}
MINDENT elkap. persze ez nem igazan okos megoldas, mert nem jo semmire, a kivetelek hasznalatat nem kell tulzasba vinni, ha mondjuk csak elkapnal egy helyen minden kivetelt, es utana kilepnel a programbol valami hibauzenettel, h innen meg innen leptem ki, akkor okosabb, ha inkabb megsporolod azt a par sor kodot, es olvashatobb marad, amit csinalsz, es egy csomo plussz informaciohoz jutsz, mert a stderr-en megjelenik a kivetel terjedesenek pontos utja, es vegeredmenyben igyis ugyis kilep.
na visszaterve: ha kulonbozo kiveteleket akarsz dobni adott helyen, akkor neked kell eldontened, hogy kulonbozo kivetelosztalyokat deklaralsz, vagy egy kivetelosztalyt, es annak tobb attributumat, ahogy neked tetszik.


OddMan
(őstag)

Akkor én is kérdezek egy számomra picit zavaros dolgot.

# 1-es
static void Main()
{
Application.Run(new Form1());
}


// 2-es
static void Main()
{
Form frm1 = new Form1();
Application.Run(frm1);
}


A 2-es forrásnál ugye létrehozunk egy Form objektumot, majd átadjuk az Application osztály Run metódusának, ami ugye egy objektumot vár bemenetként.
Az 1-es forrásnál viszont nincsen se típusa sem neve a létrejövő objektumpéldánynak. Szóval ezt a részt nem értem teljesen: (new Form1())
Honnan tudja a fordító a létrehozandó objektum típusát? Meg ugye neve sem lesz az objektumnak. Szal akkor hogy is van ez? :U :F


OddMan
(őstag)

Még egy kérdés!

Hogyan lehet asm utasításokat használni C#-ben?

C++-ban pl:

__asm
{
mov eax,0x00000001
cpuid
and edx,00010000b // ha az eredmény 0-a, akkor az rdtsc utasítás nem létezik
jnz a_support
jmp a_notsupport
a_support:
mov eax,0x00000001
mov support,eax
a_notsupport:
}


Miracle
(senior tag)

az Application.Run metodus egy form tipusu referenciat var, azt pedig mind a ket esetben megkapja.


Miracle
(senior tag)

a c# nem nativ kodot fordit, hanem egy ugynevezett CIL azaz Common Intermediate Language kodot, amit a gepeden levo .NET framework JIT compilere fordit vegulis a te geped nativ kodjara.
a CIL egy stack-machine(hasonlo a Java Bytekodhoz, ), es mivel nem nativ kod semmilyen kornyezetben, teljesen folosleges ASM kodokat hasznalni, mert csak kevesbe optimalis megoldast tudsz gyartani, mint a c# compiler. nem CIL, hanem platformfuggo ASM betetek elhelyezesere ugy tudom nincs mod. ha megis CIL ASM-ekbol akarsz assemblyit epiteni, akkor a m$ weboldalain megtalalod a CIL specifikaciojat, es van CIL kodegenerator namespace is a .NET libben, csak mar nem emlekszek a pontos nevere :(


BlackWoOd
(aktív tag)

.NET futtatási környezet ügyben érdemes lehet meglesni ezt a linket: Bővebben: link (Mono Project)

Tulajdonképpen egy Linuxos .NET fejlesztő / futtató környezet, ami a C# és CLI szabványára épül. A Mono mögött a Ximian (mostmár a Novell) áll, elég jól haladnak, ha jól látom már a System.Windows.Forms támogatása is megoldott.

Ez persze nem jelenti azt, hogy minden maximálisan hordozható, de dolgoznak rajta. :)

Aki nem szereti a VS.NET-et, annak itt egy jól használható ingyenes fejlesztőeszköz (én ebben ismerkedem a lehetőségekkel C#Builder meg VS.NET helyett): Bővebben: link (#develop)

Jó topic, megpróbálom nyomon követni, bár én keveset foglalkozom ezzel a nyelvvel.


OddMan
(őstag)

pl.: ha a cpuid x86 asm utasítást szeretném használni, akkor ezt nem igen kerülhetem ki, nem? Szóval jó lenne használni néha egy pár sor asm-ot, de nem pontosan értem, hogy ezt hogyan tudom megtenni. :U


[Szerkesztve]


OddMan
(őstag)

A C#-ben ''union'' sincs, mint a C++-ban? :U

üzenetek