winforms - MS Windows Programmeringsrådgivning til Mac/Unix-udvikler

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har få års erfaring med at skrive Unix-kommandolinjeværktøjer (ingen GUI-oplevelse) i python, C og C ++, og kun for nylig overgået til GUI-verdenen (kun kakao og IOS). Jeg har lært en del af objektiv-C og forstår, hvordan kakao MVC fungerer. En af de apps, jeg udvikler, har brug for en Windows-version, og jeg spekulerede på, hvad et godt sted at starte ville blive givet, at jeg havde absolut ingen Windows udvikling erfaring.


Jeg tænkte på at bruge Visual C ++ 2010 Express som min udviklingsplatform (fordi det er gratis og fordi jeg ikke behøver at lære C ++). Min ansøgning er relativt enkel, den vil kun have to vinduer og bruge det meste af tiden i baggrunden. Det skal dog kommunikere med operativsystemet (load dll'er osv.) Og en online-server (HTTP-metoder), og jeg er ikke sikker på, om Visual C ++ Express-udgave giver mig adgang til de nødvendige API'er. Ville en Windows Forms-applikation er det tilstrækkeligt? Går jeg her på den forkerte måde? Trænger jeg til at lære C #? Eventuelle råd vil blive værdsat.

Bedste reference


Hvis du allerede er tilfreds med korrekt c ++, skal Visual Studio C ++ Express passe dig fint. Da du ikke laver en kompliceret GUI, behøver du ikke engang at dyppe ind i den administrerede kode. C ++ Express giver dig mulighed for at oprette ordentlige c ++-konsol- og GUI-apps. Du behøver heller ikke at installere platformen SDK - det er del af VS C ++ express.


Ikke styres C ++, du vil kunne dele kildefiler mellem dine forskellige projekter. managed c ++, på trods af c ++ i navnet, er virkelig et andet nok sprog, at det vil være irriterende at arbejde med, hvis du samtidig skal håndtere iso C ++.


-


Bemærk: Den native Windows API er en C api, ikke en C + + ramme. Så det giver ikke et rigt sæt af klasser i en sammenhængende ramme for at håndtere. På den anden side, mens det er stort, er det faktisk ret nemt at arbejde med.


Også: Da du allerede er bekendt med Mac-udvikling, er der en LGPL-pakke (iirc) kaldet CFLite, der bygger på Windows, og som implementerer C api, der understøtter Objective-C Cocoa API.


Hvis du bruger dens abstratcions, kan du dele en større del af kode mellem Windows og Mac (og andre platforme).


Andre C ++ IDE'er kan du overveje:



  • Code :: Blocks

  • QT Creator



som begge kan konfigureres til at bruge MINGW-porten til GCC til Windows.

Andre referencer 1


du vil være bedre med c ++ end c # hvis du har brug for flere 'lavt niveau' ting. Indlæser dlls (det vil sige libs) er simpelt (pragma comment lib ...), som det er ren HTTP overførsel og kommunikation.


Så, VC ++ med Windows-formularen er tilstrækkeligt, og det er 'meget c ++'.


Du har adgang til alle globale API'er, og indlæsning af specifikke apis som http kræver kun to linjer: en for at inkludere wininet header og andre lib (libs er faktisk 'referencer' til dlls).

Andre referencer 2


Hvis du går på C ++ Express-måden, skal du installere Windows SDK separat og indstille Visual Studio til at bruge den. Og du kan ikke bruge MFC.


Jeg vil dog foreslå C #, fordi det føles som at sætte små legetøjstene sammen. Nemmere at debug og vedligeholde. Problem med C # er, at det har så mange biblioteksfunktioner, at du ikke kan vide, om hvad du vil, allerede er lavet til en funktion. Men det er derfor vi er her :-) Hvis du føler, at noget du vil gøre, bør allerede eksistere, så still et spørgsmål om det. En bemærkelsesværdig funktion, at C # mangler, er zip arkiver (det har noget lignende, men ikke helt). Til lynlås kan du bruge offentlige biblioteker, som SharpZipLib eller DotNetZip. [1] [2]

Andre referencer 3


Hvis jeg var dig, ville jeg ikke så hurtigt springe ind i en helt ny API. Har du overvejet at bruge Python på Windows? De fleste Python-pakker jeg har set er også tilgængelige for Windows, så du vil føle dig hjemme. hvis du har brug for nogle GUI, kan du vælge wxPython, pyGTK eller noget lignende.


For Windows-specifikke ting kan du altid bruge ctypes. Især hvis de 'er lige så enkle som at indlæse en DLL.

Andre referencer 4


har du overvejet at nærme sig Adobe AIR? det giver dig mulighed for at distribuere på Mac, Linux, Windows, IOS osv. Kommunikation med og lancering af native processer har været mulig siden 2.0 og den seneste 2.5 SDK kan målrette Android OS og TV. med din erfaring skal du kunne hente ActionScript3/MXML på ingen tid.


Derudover er der en håndfuld gratis IDE'er, du kan bruge med Flex og AIR SDK'erne. eller hvis du er en elev eller lavindkomstudvikler, kan du få en gratis kopi af Flash Builder 4 fra Adobe: http://www.adobe.com/devnet-archive/flex/free/[3]





Rediger: Jeg tror, ​​at implementere AIR-applikationer på iPhone kræver Flash Professional CS5, som indeholder pakken til iPhone-muligheder. Samtidig har jeg læst, at AIR og andre krydssamlere til iOS er smerteligt langsomme, så det er måske bedst at udvikle sig indbygget i Objective-C til iOS.