Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Visual C++/CLI, C#] Co bardziej się przyda?

Mad. 26 Wrz 2010 19:50 2252 5
  • #1 26 Wrz 2010 19:50
    Mad.
    Poziom 18  

    Temat postaram się zawęzić, aby nie wynikła niekończąca się dyskusja na wyższością któregoś z języków w szerszej perspektywie ;) Do rzeczy, nauczyłem się niedawno składni C++/CLI i próbuję możliwości Visual Studio z Windows Forms (na pewno nie interesuje mnie MFC czy API). Zamierzam programować jedynie w tym środowisku (VS), więc zastosowanie C++ (bez CLI) na innych platformach mnie nie interesuje. Mam pewien projekt do zrobienia, wiec zanim zacznę to może lepiej już teraz przerzucić się na C#? Widziałem, że za pomocą tego języka można również tworzyć aplikacje internetowe. Co możecie polecić? Co będzie wygodniejsze i na ile podobne jest C# do C++/CLI (czy szybko można przejść?). Czy możliwości C# będą większe? Jeszcze raz zaznaczam, interesuje mnie tylko VS .NET.

    Liczę na konkretne odpowiedzi, mile widziane osoby, które miały do czynienia z obydwoma językami :D

    0 5
  • #2 26 Wrz 2010 20:06
    Dżyszla
    Poziom 42  

    Praktycznie w każdym języku programowania zrobisz wszystko (pomijam języki ezoteryczne). Kluczową kwestią jest, jakim nakładem pracy osiągniesz zamierzony cel. Przykładowo działanie polegające na zwiększeniu wartości zmiennej a o wartość zmiennej b tak się przestawi w następujących językach i środowiskach programowania:
    ASM:

    Code:
    MOV AX,a
    
    ADD b
    MOV a,AX

    Pascal:
    Code:
    a:=a+b
    Delphi:
    Code:
    Inc(a,b)
    C:
    Code:
    a+=b


    Podobnie jest i z odpowiedzią na Twoje pytanie. Można tylko powiedzieć, że w C#, jako bardzo rozwijanym języku i środowiskach, które udostępniają ogromną liczbę gotowych funkcji, które stają się pewnego rodzaju standardem, osiągnięcie większości z celów będzie wymagało napisania znacznie mniejszej ilości kodu.

    Co do pytania nad podobieństwem - nie! C# i C++ to zupełnie inne języki! Jeśli już dopatrywać się takowych, to C# nieco przypomina Javę (ta zaś dopiero w swej syntaktyce przypomina C). Trochę .NET ułatwi sprawę, bo standaryzuje wiele spraw. Jednak wciąż to będą zupełnie inne języki. Aczkolwiek prawdą jest także, że prawdziwy dobry programista potrzebuje tylko ok 2 tygodni aby nauczyć się pisać w dowolnym języku, a po 2-3 miesiącach potrafi pisać już "płynnie".

    0
  • #3 03 Lis 2010 18:28
    one_eddie
    Poziom 25  

    Srodowiska dla platformy .NET są cały czas rozwijane i dość bogato urozmaicone. Osobiście nie widze mocno konkurencyjnej alternatywy dla C# (.NET) dlatego wybrałem własnie tą technologie. Trzeba pamiętać że .NET ma swoje wady. Np chcesz ukryć swoje rozwiązania z jakiegoś powodu to natrafisz na dość poważny problem. Jeśli jesteś na etapie wyboru radze rozważyć wszystkie możliwości, wszystkie za i przeciw.

    0
  • #4 03 Lis 2010 21:15
    Mad.
    Poziom 18  

    Dzięki za odpowiedź, ale z pierwszego postu już wynikało, że byłem zdecydowany na platformę .NET ;) Parę dni po tym temacie, wybrałem C#. W wolnych chwilach, uczę się tego języka. Nawiązując tylko do treści tematu - C++/CLI vs C#, na korzyść tego drugiego skusiły mnie:
    - dostępne książki po polsku (na półce w bibliotece na dzień dobry znalazłem 4 pozycje, w przypadku C++\CLI po długim szukaniu tylko 1),
    - bardziej przejrzysta składnia języka,
    - popularność C# na forach, np. msdn = łatwiej znaleźć rozwiązanie jakiegoś problemu, ewentualna pomoc od kogoś, przykłady dla gotowych klas itp.

    one_eddie napisał:
    Trzeba pamiętać że .NET ma swoje wady. Np chcesz ukryć swoje rozwiązania z jakiegoś powodu to natrafisz na dość poważny problem.

    Mógłbyś rozwinąć temat? Jeszcze nie przerabiałem materiału o tworzeniu plików .dll, a domyślam, że o to chodzi? Jeśli tak, to nie wygląda to tak, że tworzy się własną bibliotekę z klasami i osoby z zew. mogą tylko odwoływać się do publicznych składowych? Ogólny kod np. nie jest dostępny. Oczywiście tylko zgaduję, bo jeszcze tego nie robiłem, więc czekam na odp. o co biega z tym problemem, bo zaciekawiło mnie to ;)

    0
  • Pomocny post
    #5 03 Lis 2010 22:24
    marcinj12
    Poziom 40  

    Kolega one_eddie pewnie ma na myśli możliwość deassemblacji kodu IL??
    Za pomocą dostępnego z .NET narzędzia ILdasm możesz "podejrzeć" kod pośredni, do którego został skompilowany program. Jak ktoś jest bardzo uparty i chce mu się grzebać w kodzie, może np. wyciągnąć zaszyte "na sztywno" hasła.
    W praktyce - jeżeli jest to istotny problem - można np. trzymać hasła zaszyfrowane w plikach konfiguracji, a sam kod "zaciemnić" do postaci zupełnie nieczytelnej przez człowieka (pl.: zaciemnianie kodu, ang. obfuscation).

    0
  • Pomocny post
    #6 03 Lis 2010 23:11
    one_eddie
    Poziom 25  

    Kolega marcin już napisał to o czym pisałem wcześniej. Proponuje zapoznać się z darmowym narzędziem ktore odnaleźć można pod nazwą Reflector.

    Jeli chodzi o obfuscatory to sam z nich korzystam ale potrafią czasami nieźle namieszać nie wspominając już o tym że logowanie czegokolwiek (logi z kodu) po tym jak zostaną użyte mija się z celem. Warto też wspomnieć że dobre obfuscatory kosztują i to nie mało. Darmowe często nie działają za dobrze.

    0