WinRT

Intrebari legate de programarea cu biblioteci precum MFC, ATL, WTL si GDI+.
viorel2005
Membru
Membru
Posts: 208
Joined: 24 May 2008, 09:41

WinRT

Post by viorel2005 » 15 May 2012, 07:26

Salut!

Citez de pe codeproject(http://www.codeproject.com/Articles/262 ... ndamentals)
You can just directly use regular C++/COM to write WinRT applications. You could think of C++/CX being high-level WinRT access and regular COM as low-level access. But it's going to be a fairly large amount of work to get that working. You'll have to do all the stuff that the compiler does for you in high-level mode, such as creating the activation factory, implementing IUnknown and IInspectable. Manually deal with HSTRING. Make sure you handle ref-counts correctly. The QueryInterface part of doing things will be the least of your worries. And lastly, since COM does not really do inheritance the C++ way, WinRT uses a form of composition to emulate inheritance. So when you have multi-level object models, you'd end up writing even more code just to get it all to compile and run. Outside of an academic exercise, it makes no sense to subject any developer to those extremes.

There is an alternative though. It's called the Windows Runtime Library (or WRL for short). At the moment there is very little (zero in fact) documentation on MSDN (or anywhere else). It's basically the ATL equivalent for WinRT. WRL seems to be owned by the SDK team rather than the VC++ team, and you'll find the header files in this location (in the dev preview) : Program Files (x86)\Windows Kits\8.0\Include\winrt\wrl. I'd guess that at least parts of WinRT was developed using WRL, so it should be fairly bug-free by the time it RTMs. So if you absolutely want to avoid C++/CX then WRL should be your best option (straight COM most certainly would be an utter impracticality).

Intrebarea care o pun este urmatoarea: de ce nu au creat arhitectii de la Microsot asa ceva mai din timp?
De ce prefera sa creeze o tehnologie foarte complexa si apoi sa o simplifice? Adica dupa 15 ani de la Visual C++
aduc o simplificare si o automatizare tehnologiei COM. Nu inteleg unde apare un overhead adus de WinRT fata de folosirea ATL.



viorel2005
Membru
Membru
Posts: 208
Joined: 24 May 2008, 09:41

Re: WinRT

Post by viorel2005 » 15 May 2012, 07:27

Cred ca ar fi facut un tandem minunat cu programatorii de VB6...

tudor_t
Membru
Membru
Posts: 112
Joined: 26 Aug 2007, 15:11

Re: WinRT

Post by tudor_t » 16 May 2012, 10:03

viorel2005 wrote: Intrebarea care o pun este urmatoarea: de ce nu au creat arhitectii de la Microsot asa ceva mai din timp?
De ce prefera sa creeze o tehnologie foarte complexa si apoi sa o simplifice? Adica dupa 15 ani de la Visual C++
aduc o simplificare si o automatizare tehnologiei COM.
"Historical reasons" :) - doar cineva intern de la Microsoft ar putea sa-ti spuna - insa prin 1998 - 1999 cand Microsoft a cautat un succesor pentru COM care sa fie mai usor de digerat pentru muritorii de rand, la Microsoft, .NET a fost gandit ca acea simplificare si ca un succesor al COM/DCOM-ului, indiferent de limbaj - dupa acel moment, in tot ce tinea de unmanaged la Microsoft nu s-a mai investit prea mult.

Dupa 10 ani, chiar daca .NET-ul a avut un succes imens pentru o categorie de aplicatii, si-au dat seama ca MFC-ul si COM-ul sunt inca alive si folosite intr-o multime de aplicatii, dar ca au nevoie de un "refresh" daca vor sa ramana in joc in domeniul tablets/slate (mai ales pe ARM unde e nevoie de performanta si .NET-ul nu ar fi fost cea mai inspirata alegere).

La asta s-au adugat si 'razboaiele' interne din Microsoft intre DevDiv (care fac .NET, Visual Studio etc.) si WinDiv sau cum se cheama (care fac Windows, Office etc. si care niciodata nu au iubit prea mult .NET-ul), au dus la situatia actuala, si la milioane de developeri confuzati care nu stiu incotro sa se indrepte: sa se apuce sa invete JavaScript, C++, sa ramana pe .NET/C# sau sa se apuce de Java :) ..

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: WinRT

Post by Marius Bancila » 17 May 2012, 23:51

Din pacate mi-am spart globul de cristal acum cateva zile prin urmare nu mai pot raspunde la intrebarea "de ce nu au creat arhitectii de la Microsot asa ceva mai din timp?" Ce pot sa-ti spun e ca evolutia se produce in pasi mici (si desi). Diverse persoane au diverse viziuni la momente diferite de timp. Unora le-a parut acum 10 ani ca .NET e platforma castigatoare. Acum cineva are viziunea (eu as zice delirul) ca WinRT e platforma pentru toate dispozitivele si aplicatiile trebuie sa arate la fel pe toate ecranele. Abureala zic eu. Ma astept sa existe un viorel2015 care prin 2025 sa intrebe, legat de urmatoarea inventie Microsoft, "de ce nu au creat arhitectii de la Microsot asa ceva mai din timp?"
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

viorel2005
Membru
Membru
Posts: 208
Joined: 24 May 2008, 09:41

Re: WinRT

Post by viorel2005 » 18 May 2012, 14:32

Ma gandeam la alt timp de raspuns.
Cand a aparut .NET, calculatoarele aveau alte resurse. WinRT apare cand
partea de hardware s-a dezvoltat. Intrebarea este daca WinRT ar fi putut fi
dezvoltat in acele vremuri. Pe aceste forum sunt persoance cu experienta
care ar putea argumenta ce ofera COM fata de WInRT, ce ar presupune dezvoltarea
lui WInRT pentru Windows 2000 sau 98 de exemplu. Ma gandesc ca persoane
care au si cunostinte despre sisteme de operare si programare ar putea oferi un raspuns
in aceasta directie. Pana acum MFC nu era RAD, dar C++ Builder era. WinRT isi
doreste un Visual C++ RAD?

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

Re: WinRT

Post by neagu_laurentiu » 18 May 2012, 18:43

Tu ai tras un ochi prin documentatia lui WinRT ? Ai vazut cui se adreseaza ? Ai acolo toate raspunsurile...
http://msdn.microsoft.com/en-us/library/windows/apps/

viorel2005
Membru
Membru
Posts: 208
Joined: 24 May 2008, 09:41

Re: WinRT

Post by viorel2005 » 18 May 2012, 22:34

Multumesc pentru link. Dar totusi o varianta simplificata credeti ca ar fi
putut fi posibila in acele vremuri. Multi dintre voi a-ti crescut cu aceste evolutii.

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

Re: WinRT

Post by neagu_laurentiu » 19 May 2012, 00:43

Era posibil orice. Da' asa s-a scris istoria.

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

Re: WinRT

Post by Ovidiu Cucu » 19 May 2012, 11:44

viorel2005 wrote: Pana acum MFC nu era RAD, dar C++ Builder era.
Ce intelegi tu prin RAD?
Te rog, concret fara definitii si principii generale.

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

Re: WinRT

Post by Ovidiu Cucu » 20 May 2012, 10:22

tudor_t wrote:[...]
Dupa 10 ani, chiar daca .NET-ul a avut un succes imens pentru o categorie de aplicatii, si-au dat seama ca MFC-ul si COM-ul sunt inca alive si folosite intr-o multime de aplicatii
[...]
"Iarba rea nu piere". :biggrin:
Mai exact, in natura exista mii de specii native care supravietuiesc oricat s-ar scarpina omul dupa cap sa le distruga, in favoarea celor cultivate. ;)

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

Re: WinRT

Post by Ovidiu Cucu » 20 May 2012, 10:57

[ continuare ]

Nu sunt specialist in viticultura, insa din ce am vazut si am auzit in jur: iarna care a trecut a avut temperaturi mai scazute decat de obicei. Asta e, la noi (si nu numai) se mai intampla din cand in cand. Soiurile de vie super-productive (de "viţa nobilă") au avut serios de suferit, celelalte nu prea.
Asa ca cei ce au in gradina soiuri native, la toamna vor bea vin.
In schimb, cei cu soiuri nobile vor bea ciu-ciu (sau vin de surcele de la magazin). :D
Cam asa e se poate intampla si in industria software cu "native" (WinAPI, MFC, COM, etc), versus "managed" (VB, .NET, WinRT, s.a.m.d.).

[ later edit ]
@viorel2005
Insist: ce mare sfaraiala crezi tu ca-i RAD si de ce crezi ca "MFC nu era RAD, dar C++ Builder era"?

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

Re: WinRT

Post by neagu_laurentiu » 21 May 2012, 10:24

Ovidiu Cucu wrote:de ce crezi ca "MFC nu era RAD, dar C++ Builder era"?
Pai trage un ochi si prin C++Builder si spune-mi impresia (detaseaza-te de afinitatile tale - sau pune-l pe ala micu').

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

Re: WinRT

Post by Ovidiu Cucu » 22 May 2012, 09:58

neagu_laurentiu wrote:
Ovidiu Cucu wrote:de ce crezi ca "MFC nu era RAD, dar C++ Builder era"?
Pai trage un ochi si prin C++Builder si spune-mi impresia (detaseaza-te de afinitatile tale - sau pune-l pe ala micu').
Chiar voiam sa fac asta de mult timp insa nu am gasit nici timpul si motivatia necesara. Ar trebui sa am si un kit de C++ Builder, of course. :)

Pana atunci si pana la proba contrarie, eu vad RAD-ul doar ca un concept de pa urma caruia mananca o paine o gasca de marketori, plus architecti, manageri si alte specii de drag-and-dropisti, inflationiste in din ce in ce mai multe proiecte/companii. ;)

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

Re: WinRT

Post by neagu_laurentiu » 22 May 2012, 10:09

E o piata iar acolo unde-i cerere vine si oferta. MS nu la fel a facut cu .NET ?

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

Re: WinRT

Post by Ovidiu Cucu » 22 May 2012, 10:30

neagu_laurentiu wrote:E o piata iar acolo unde-i cerere vine si oferta. MS nu la fel a facut cu .NET ?
Pai da, cred ca de aia l-au racolat pe Anders Hejlsberg si probabil, ceva mai tarziu, pe altii mai mititei ramasi pe drumuri dupa ce Borland s-a lasat de C++ Builder. :D
Ce-a iesit, stie toata lumea...

Post Reply