MFC vs. "pure" WinAPI

Acest forum este dedicat intrebarilor de programare care nu-si au locul in unul din celelalte forumuri
User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

MFC vs. "pure" WinAPI

Post by Ovidiu Cucu » 13 Jul 2007, 14:55

O problema dezbatuta si prin alte forumuri, totusi as vrea s-o aduc si aici in discutie in urmatoarea forma:
  1. Sunteti un client si doriti ca aplicatia sa fie facuta cu WinAPI, fara a se utiliza MFC.
  2. Clentul este din categoria de la punctul 1 si vreti sa-l convingeti sa renunte la ideea "not using MFC".

Ce argumente ati aduce in fiecare din cele doua cazuri?

Ei, cine incepe?



cardasim
Specialist
Specialist
Posts: 23
Joined: 12 Jul 2007, 13:26
Judet: Iaşi
Location: IASI
Contact:

Re: MFC vs. "pure" WinAPI

Post by cardasim » 14 Jul 2007, 00:12

1.
In postura de client nu cred ca as sti cum sa te conving ca WinAPI pur e mai bun ca MFC.
Poate daca as cunoaste un framework similar MFC, dar mai bun decat acesta. Dar oricum nu e raw API.

2.
In postura de developer, depinde de client, dar cred ca majoritatea sunt sensibili cand e vorba de costuri.
Eu personal as devota mai rapid cu MFC (sau alt framework, de ce nu Borland C++) decat cu raw Win32.
Nu generalizez, dar cel mai probabil si calitatea produsului ar fi crescuta. Pornesc de la ideea ca orice framework
aduce un minim de plus valoare peste raw API: un mod standard de a rezolva anumite probleme,
managementul erorilor/exceptiilor etc.
Eu as zice ca cele doua - pret mai mic, calitate crescuta - reprezinta argumente in favoarea propunerii pe care i-o faci.

nmg
Junior
Junior
Posts: 43
Joined: 12 Jul 2007, 07:36

Re: MFC vs. "pure" WinAPI

Post by nmg » 20 Jul 2007, 09:28

In primul rand as incerca sa aflu de ce clientul vrea neaparat WinAPI. Daca e vorba de un 'moft' atunci i-as spune ca timpul de dezvoltare in MFC este sensibil mai scazut decat cel in WinAPI.

Cred ca raspunsul la o asemenea intrebare depinde foarte mult de motivele din cauza carora clientul vrea neaparat WinAPI si nu poate fi generalizat.

PS. Felicitari pentru site si forum :thumbup:

albertinix
Junior
Junior
Posts: 6
Joined: 20 Jul 2007, 09:58

Re: MFC vs. "pure" WinAPI

Post by albertinix » 20 Jul 2007, 10:11

Intr-adevar - prima intrebare ar fi de ce clientul ar cere in mod expres WINAPI. Nu cred ca un client "normal", care are specificatii pentru o anumita aplicatie "uzuala" ar sti suficient de multe despre diferentele intre un API sau altul - astfel incat sa poata alege. Majoritatea iti spun ca vor aplicatia; restul lasa la latitudinea ta.
In mom. de fata as vedea 2 motive pentru care ar cere in mod expres WINAPI - si de aici rezulta si 2 tipuri de clienti:
- primul motiv - ar fi ca acel client face de fapt outsourcing, lucreaza cu mai multe echipe la un anumit proiect mai mare - si ca sa pastreze compatibilitatea cu o anumita bucata scrisa de "altii" - le impune la toti aceleasi prevederi. Acesta este tipul de client care nu stie neaparat ce este WINAPI - dar stie ca la inceput s-a lucrat asa de catre unele din echipe - si ei cer la fel la toti. Acest tip de client nu cunoaste "dedesubturile" programarii; ei stiu doar cum vor sa arate si sa se comporte aplicatia finala. Este un tip de client relativ "clasic".
- al doilea motiv - ar fi ca acel client stie foarte bine cu ce are de-a face: poate are nevoie sa dezvolte un driver, sau un modul kernel sau mai stiu eu ce bucata de cod care interactioneaza in mod direct cu resursele "restrictionate" ale sistemului. Acest tip de client stie suficient de multe despre ceea ce vrea sa obtina; pe de o parte sunt un pic dificili pentru ca nu vor accepta compromisuri (nu prea ai cum sa-i "aburesti"); pe de alta parte insa - poti lucra foarte bine cu ei - pentru ca stiu foarte bine ce vor (spre deosebire de majoritatea clientilor).

User avatar
maximghe
Membru
Membru
Posts: 139
Joined: 10 Aug 2007, 23:54

Re: MFC vs. "pure" WinAPI

Post by maximghe » 14 Nov 2007, 13:46

E un topic destul de vechi dar nu ma pot abtine sa comentez/completez urmatoarele:
albertinix wrote: - primul motiv - ar fi ca acel client face de fapt outsourcing, lucreaza cu mai multe echipe la un anumit proiect mai mare - si ca sa pastreze compatibilitatea cu o anumita bucata scrisa de "altii" - le impune la toti aceleasi prevederi. Acesta este tipul de client care nu stie neaparat ce este WINAPI - dar stie ca la inceput s-a lucrat asa de catre unele din echipe - si ei cer la fel la toti. Acest tip de client nu cunoaste "dedesubturile" programarii; ei stiu doar cum vor sa arate si sa se comporte aplicatia finala. Este un tip de client relativ "clasic".
In momentul de fata colaboram cu o echipa de linuxisti "din afara". Se poate chema oarecum ca facem outsourcing.
Noi avem aplicatia noastra Windows, ei au aplicatia lor linux si amandoua comunica intre ele dupa un anumit protocol.
Cu toate ca am incercat in fel si chip sa-i convingem ca utilizand MFC-ul putem face bucatica noastra mult mai repede si mult mai bine, ei nu si nu: NU MFC, NU ATL, NU... just WindowsAPI.
Nu inteleg care-i sfiriala, din moment ce aplicatia noastra e absolut independenta si nu se baga-n linuxul lor, nu se pune problema de compatibilitate (mai mult decat la nivel de protocol de comunicare), nu se pune problema de portabilitate, etc.

Cred doar ca totul porneste de la o mentalitate de manager imbatrinit in linux. :reallymad:
Max

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: MFC vs. "pure" WinAPI

Post by MrSmersh » 14 Nov 2007, 16:23

Da daca omul vrea si vrea API si plateste ca dureaza mai mult de ce nu?
Pina la urma e o problema de timp si si calitate, cu timp de dezvoltare platit in XXXX ani faci ce vrei in API, ca dupa bugs si mai ales memory leaks o sa mai cauti vreo XX ani si si aia nu faci moka ...
Pentru Win API vad doar vreo 2 avantaje, deployment siplu daca aplicatia e bine facuta, si un executabil ce il cauti cu lupa. In rest e mai greu, dureaza mai mult, si ai nevoie de personal mai calificat deci mai scump. Similar ca discutia de ce managed si nu MFC (off topic flamos :biggrin: ) .

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: MFC vs. "pure" WinAPI

Post by Dragos Cojocari » 14 Nov 2007, 16:35

De ce as vrea il conving? Si daca as vrea sa il conving sa renunte la Winapi de ce MFC si nu C#?

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: MFC vs. "pure" WinAPI

Post by Ovidiu Cucu » 14 Nov 2007, 19:56

"Clientul normal" este clientul pe care nu-l intereseaza tehnologia pe care o folosesti ci doar ca produsul final sa respecte niste cerinte si, of course, impune niste termene. Cel mult poate sa propuna niste tehnologii dar poate fi pana la urma convins sa te lase sa alegi pe cele cu care te descurci (firma ta se descurca) cel mai bine.

Din pacate, atunci cand e vorba de outsourcing, apar asazisii "clienti IT-isti".
Cu astia e destul de dificil de lucrat. Au tendinta sa impuna tehnologiile pe care le cunosc ei (eu am patit-o atat cu VB6.0 cat si cu raw WinAPI) de obicei sub cele pe care le propui tu. Nu prea ai nici o sansa de convingere, vrei nu vrei trebuie sa te adaptezi la ce vor ei. Asta n-ar fi chiar asa o broblema, dar...
...dar cand e vorba de termene, atunci se transforma in "clienti normali": la termene nu se umbla.

Deci subscriu la ce-a pus Max: :reallymad:

:yes:

@to MrSmersh
De obicei nu se prea umbla nici la parale. ;)

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: MFC vs. "pure" WinAPI

Post by Dragos Cojocari » 15 Nov 2007, 13:28

Sa dezvolt putin ce am spus mai devreme: "no MFC just WinAPI" va creste evident costurile dezvoltarii aplicatiei. Daca beneficiarul intelege si e dispus sa plateasca asta, nu vad problema. Pe de alta parte tu, ca dezvoltator poti spune oricind ca nu esti dispus sa faci decat cu MFC si ca atare sa refuzi proiectul.

Detaliind insa problema eu unul nu as recomanda MFC ptr aplicatii noi scrise ptr paltforme Windows. IMHO C# si .NET sunt unelte mult mai bune ptr acest scop. Iar eu , ca dezvoltator, sunt interesat sa pot preda proiectul la timp, la calitate maxima si, pe cit posibil, cu costuri cat mai scazute de dezvoltare.

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: MFC vs. "pure" WinAPI

Post by neagu_laurentiu » 15 Nov 2007, 13:35

Pe langa motivele spuse de ceilalti as mai adauga unul: MFC-ul costa, pe cand WinAPI nu ! Desi nu cred ca o firma de IT se incurca in cativa $$$ pe Visual Studio Professional si doresc neaparat versiunea Express !

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: MFC vs. "pure" WinAPI

Post by Dragos Cojocari » 15 Nov 2007, 14:41

neagu_laurentiu wrote:Pe langa motivele spuse de ceilalti as mai adauga unul: MFC-ul costa, pe cand WinAPI nu ! Desi nu cred ca o firma de IT se incurca in cativa $$$ pe Visual Studio Professional si doresc neaparat versiunea Express !
Ptr o firma serioasa asta nu cred ca se poate califica drept argument la Winapi vs MFC. :yes:

Din pmdv, M$ a pus MFC-ul in VS 2005 numai ca sa nu se poata spune ca nu l-au pus. Evident e util sa il ai ptr aplicatii gata scrise, dar ptr aplicatii noi MFC-ul e fratele mai mic si mai prost imbracat al .NET-ului.

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: MFC vs. "pure" WinAPI

Post by Ovidiu Cucu » 15 Nov 2007, 15:21

neagu_laurentiu wrote:Pe langa motivele spuse de ceilalti as mai adauga unul: MFC-ul costa, pe cand WinAPI nu ! Desi nu cred ca o firma de IT se incurca in cativa $$$ pe Visual Studio Professional si doresc neaparat versiunea Express !
Laurentiu, mai demult, l-am intrebat pe un prieten de la o firma "vecina" de ce dezvolta ei o aplicatie desktop pentru Windows in Java si nu in MFC (nu era pe-atunci .NET si alte cularai din astea).
Mi-a raspuns cam asa: "MFC-ul costa, Java nu, iar un programmer de Java e mai ieftin".
Acuma nu stiu cat au economisit ei cu Java (normal... internals...) dar am observat un lucru cert: support-ul ii omoara!.

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: MFC vs. "pure" WinAPI

Post by Ovidiu Cucu » 15 Nov 2007, 15:31

Dragos Cojocari wrote: Din pmdv, M$ a pus MFC-ul in VS 2005 numai ca sa nu se poata spune ca nu l-au pus. Evident e util sa il ai ptr aplicatii gata scrise, dar ptr aplicatii noi MFC-ul e fratele mai mic si mai prost imbracat al .NET-ului.
O fi, Dragos, asa cum zici tu.

Totusi eu nu inteleg de ce multa lume isi pune azi atat de des intrebarea intrebatoare "de ce oare in MFC nu se prea mai baga lucruri noi, pe cand in .NET... ăhăăăă... gârleanu'...?"
Iti spun eu "de ce oare": pentru ca MFC-ul, inca de cand am facut eu ochi prin firmele de programare, acu vreo shpe ani, era deja matur, pe cand .NET-ul... inca poarta pampersi (chit ca frumos colorati dupa ultima moda la Paris). :yes:

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: MFC vs. "pure" WinAPI

Post by Dragos Cojocari » 15 Nov 2007, 15:41

Hai sa abordam altfel problema: care sunt avantajele majore in a folosi MFC?

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: MFC vs. "pure" WinAPI

Post by neagu_laurentiu » 15 Nov 2007, 16:26

care sunt avantajele majore in a folosi MFC?
Cu WinAPI poti face orice, pe cand doar cu MFC c-am greu... tot trebuie sa folosesti WinAPI in el. MFC-ul iti rezolva mai rapid/simplu partea de interfata in primul rand...
Sau un alt aspect: ori fi unii care stiu doar C si nu stiu C++... si atunci ii inteleg !

Post Reply