Borysław
B.
Mgr inżynier
informatyki,
właściciel Matrix
Reliability
konto usunięte
Temat: MS odpuszcza sobie .NET?
Marek Zając:
Wiem co masz na myśli, też się zastanawiałem nad tym że może mój program był nieoptymalnie napisany, ale zastanawiało mnie to, że wykorzystywał podstawowe kontrolki z WPF, nie było w nim 3D animacji czy operacji na tysiącach rekordów.
Domyslnie WPF jest skonfigurowany na "uzywaj wszystkiego", warto zawsze sprawdzic mozliwosci komputera odczytujac warstwe kompatybilnosci (RenderCapability.Tier o ile dobrze pamietam) i poprobowac opcje takie jak AllowTransparency, efekty czy zmniejszyc ilosc klatek na sekunde. W przypadku malej ilosci pamieci RAM trzeba zadbac tez o pamiec ladujac tylko te kontrolki, ktore sa niezbedne. Zawsze warto przejrzec bindowanie i je uproscic jak najbardziej sie da (+ usunac bledy runtime, ktore drastycznie wplywaja na wydajnosc), oczywiscie uzywajac MVVM (lub podobnego wzorca dopasowujacego ViewModel dla danej formatki). Bardzo wazne jest tez uzywanie DependencyProperty, ObservableCollection i innych dobrodziejstw zaprojektowanych pod WPF (np. uzycie List<> powoduje znaczace spowolnienie programu).
Nie przeprowadzalismy testow porownujacych poza tym, ze sprawdzalismy profilerami co dziala wolno i w tym kierunku staralismy sie polepszac wydajnosc. Summa sumarum najwiecej bylo bledow trywialnych jak np. uzywanie List, niepotrzebnie skomplikowane bindowanie, problemy z AttachedProperty, nieprawidlowe projekcje itp., wszystko stosunkowo latwo naprawialne.
O ile dobrze pamietam to WPF zaprojektowany jest pod DX9, warto wiedziec, ze wiekszosc tanich maszyn (szczegolnie laptopow) deklarujacych wsparcie DX9/DX10 ma je w warstwie driverow, czyli mowiac wprost "jasne mam, bo mam CPU".
Z WPF jest tak jak z NHibernate czy MongoDB - najpierw zawod "bo wolne", pozniej olsnienie jakie to jednak fajne, a na koncu osiagasz wydajnosc przy ktorej szczeki spadaja fanom SPow i dziwisz sie jak ktos moze bez tego zyc :D
A wracajac do dyskusji to prawdopodobienstwo opuszczenia przez Microsoft technologii .NET oceniam jako bliskie zeru. Sadze, ze wprowadza nowe technologie, ale te klasyczne dlugo jeszcze beda numerem jeden.
Sławomir
Marcjański
Programista /
Ethical Hacker
Temat: MS odpuszcza sobie .NET?
Borysław Bobulski:
Wiecie jaki wniosek wyciągam z tej dyskusji? To nie aplikacje graficzne.NET są wolne, to nasze komputery są za wolne :)
Czy trochę to nie jest tak że słyszysz to co chcesz słyszeć?
Koledzy przytoczyli konkretne argumenty i poparli praktyką, że po prostu trzeba myśleć jak się pisze, a nie oczekiwać że cokolwiek wrzucimy to ma ruszyć.
Stara maksyma programistów wciąż aktualna chociaż w innym kontekście - "śmieci na wejściu (kod) śmieci na wyjściu (aplikacja)"
Coś o windows 8 w nowym MSDN Flash:
http://www.microsoft.com/presspass/features/2011/jun11...
http://www.buildwindows.com/Sławomir Marcjański edytował(a) ten post dnia 29.06.11 o godzinie 19:33
konto usunięte
Temat: MS odpuszcza sobie .NET?
Sebastian Pienio:
drastycznie wplywaja na wydajnosc), oczywiscie uzywajac MVVM (lub
Oftop:
Czy nie denerwuje Cię w MVVM komunikowanie się VM z V za pomocą Mediatora/EventAgregatora? Niszczy mi to całą przyjemność korzystania z R# i skrótu Alt+End przy nawigacji pomiędzy ViewModelem a View :/ Przy mediatorze (Messenger) muszę szukać kodu gdzie rejestrowana jest obsługa Messsage no i przy większej aplikacji robi się gazyliard wiadomości-obiektów które są praktycznie puste.
MVP + RelayCommand i Messenger zamiast MVVM! :D
konto usunięte
Temat: MS odpuszcza sobie .NET?
Jarosław D.:
Czy nie denerwuje Cię w MVVM komunikowanie się VM z V za pomocą Mediatora/EventAgregatora? Niszczy mi to całą przyjemność korzystania z R# i skrótu Alt+End przy nawigacji pomiędzy ViewModelem a View :/ Przy mediatorze (Messenger) muszę szukać kodu gdzie rejestrowana jest obsługa Messsage no i przy większej aplikacji robi się gazyliard wiadomości-obiektów które są praktycznie puste.
My rozwiazujemy ten problem uzywajac prefixow w nazwach i szukajac zawsze DPackiem, alt+u szuka po nazwach pliku. Dziala, chociaz daleko do idealu (jak przelaczam sie na WinForms to doznaje szoku za kazdym razem jak przyjemnie jest nawigowac w VS), ale wyglada na to, ze Microsoft coraz bardziej lubi loosly coupled objects. Mnie irytuje juz samo bindowanie stringami, a co dopiero dziwologi wiazace.... Wyglada na to, ze bedziemy chyba z tym musieli zyc :(
A Resharpera nie uzywam (chyba jako ostatni na tej planecie), bo irytuje mnie, ze zwalnia Visual Studio, szczegolnie przy duzych solucjach.
MVP + RelayCommand i Messenger zamiast MVVM! :D
Nie probowalem Model-View-Presenter wiec sie nie wypowiadam :)
Borysław
B.
Mgr inżynier
informatyki,
właściciel Matrix
Reliability
Temat: MS odpuszcza sobie .NET?
Sławomir Marcjański:Tak, oczywiście - i jest to dla mnie bardzo wartościowe, gdyż moja wiedza i doświadczenie nie jest na tyle duże, aby móc zawsze wyciągać właściwe wnioski. I szczęśliwy jestem, że jestem członkiem tej jakże zacnej grupy Programiści .NET.
Czy trochę to nie jest tak że słyszysz to co chcesz słyszeć?
Koledzy przytoczyli konkretne argumenty i poparli praktyką, że po prostu trzeba myśleć jak się pisze, a nie oczekiwać że cokolwiek wrzucimy to ma ruszyć.
Jednak do czego się sprowadza to wszystko, co zostało powiedziane na ten temat? Do banalnego stwierdzenia, że zawsze można bardziej zoptymalizować kod, jeśli aplikacja chodzi za wolno, a jeśli wciąż chodzi za wolno, to znaczy, że się nie używa sprzętu na który została stworzona
Stad na "starszych" komputerach lub tych ze zintegrowanym chipsetem widac
zauwazalny spadek wydajnosci, po prostu GPU nie daje rady i renderowanie
spada na CPU
Tymczasem w przypadku WinAPI i różnych, lekkich obudówek WinAPI (typu VCL) nie mieliśmy w ogóle problemów, że nasza rozbujana graficznie aplikacja musi być optymalizowana. To mi daje do myślenia.
Chciałbym wierzyć, że dla użytkownika końcowego ZAWSZE nie ma różnicy między WinAPI a WPF, czy nawet WinForms, ale czy to nie jest czasem oszukiwanie się? Możliwe, że każdy z nas ma jakiś stary komputer, który darzy sentymentem, do którego jest przyzwyczajony, w którym ma wszystkie pliki, systemy i konfiguracje i niewygodnie byłoby go wyrzucić - taki komputer brutalnie obnaża prawdę o wydajności naszych aplikacji.
konto usunięte
Temat: MS odpuszcza sobie .NET?
Borysław Bobulski:
Jednak do czego się sprowadza to wszystko, co zostało powiedziane na ten temat? Do banalnego stwierdzenia, że zawsze można bardziej zoptymalizować kod, jeśli aplikacja chodzi za wolno, a jeśli wciąż chodzi za wolno, to znaczy, że się nie używa sprzętu na który została stworzona
Powiedziane zostalo tyle, ze trzeba umiec kod napisac, a nie, ze zawsze da sie go zoptymalizowac (co natebene tez jest prawda).
To tak jak z pierwszymi aplikacjami ASP.NET - pisane byly tak jak w Classic-ASP, nie musze chyba wspominac jak wplywalo to na wydajnosc. Dzisiaj mamy nawet czyste MVC, Linq, swietne providery, cale ThreadFactory i kupe innych rzeczy. Popatrz ile dzisiaj na ten temat wiadomo i tak za 4-5 lat bedzie z WPF - bedziesz grzebal w tym watku i smial sie z tego, ze pisales kiedys, ze "WPF jest wolny", bo HTML5+JS to dopiero wolno dziala itp.
Stad na "starszych" komputerach lub tych ze zintegrowanym chipsetem widac
zauwazalny spadek wydajnosci, po prostu GPU nie daje rady i renderowanie
spada na CPU
Tymczasem w przypadku WinAPI i różnych, lekkich obudówek WinAPI (typu VCL) nie mieliśmy w ogóle problemów, że nasza rozbujana graficznie aplikacja musi być optymalizowana. To mi daje do myślenia.
Czuje sie stary ;), w czasach gdy Borland promowal VCL to glownym zarzutem stawianym przez MFCowcow byla jego niska wydajnosc. To bylo w czasach, gdy karty graficzne mialy problemy z renderowaniem ImageButton, a akceleracja 2D nie byla wcale czyms oczywistym. PS: znam srodowiska Borlanda dosc dobrze od 2 do 6, napisalem w Delphi i Builderze kilkadziesiat jak nie kilkaset programow.
Juz od dawna jest tak, ze najpierw wychodzi oprogramowanie, a pozniej za nim nadaza sprzet. Wyszlo WPF i za jakis czas sprzet za mozliwosciami nadazy, nie martw sie. A na dzien dzisiejszy programuj zgodnie z zaleceniami, wylacz niepotrzebne fajerwerki i nie bedzie problemow wydajnosciowych. A jak nie chcesz sie uczyc nowosci albo zalezy Ci na czystej wydajnosci zawsze jest Microsoft Foundation Classes (przypomniala mi sie wlasnie wegierska notacja).
konto usunięte
Temat: MS odpuszcza sobie .NET?
Borysław Bobulski:
Tymczasem w przypadku WinAPI i różnych, lekkich obudówek WinAPI (typu VCL) nie mieliśmy w ogóle problemów, że nasza rozbujana graficznie aplikacja musi być optymalizowana. To mi daje do myślenia.
W świecie budowy oprogramowania masz takie małe równanie (mojego autorstwa :P):
Czas_Potrzebny_na_Stworzenie
----------------------------------- = 1
Czas_wykonania_programu(wydajność)
Piotr
K.
Gibkie strategie by
doprowadzić
wymagające
przedsięwzięci...
Temat: MS odpuszcza sobie .NET?
Ciekawa opinia a propos aplikacji w HTML+JS: http://www.infoworld.com/d/application-development/let... ;-)
Borysław
B.
Mgr inżynier
informatyki,
właściciel Matrix
Reliability
Temat: MS odpuszcza sobie .NET?
Im więcej czytam opinii, tym bardziej jestem przekonany, że MS się wycofa z HTML+JS szybciej niż z WinForms. Obiecanki, cacanki - nikt się nie nabierze, że HTML 5 to przyszłość Windows.konto usunięte
Temat: MS odpuszcza sobie .NET?
Zalezy czy Windows w obecnej formie to przyszlosc ;)
Krzysztof
Raczkowski
Stała współpraca,
Logifact-Systems Sp.
z o.o.
Temat: MS odpuszcza sobie .NET?
Pawel K.:
Zalezy czy Windows w obecnej formie to przyszlosc ;)
Heh ... to chyba trochę jak z demokracją - jest coś lepszego ? :)
konto usunięte
Temat: MS odpuszcza sobie .NET?
Gdyby okazalo sie ze za 15-20 lat systemy operacyne online sa na topie to pewnie HTML5/6/7 wyprze WinForms.
Krzysztof
Raczkowski
Stała współpraca,
Logifact-Systems Sp.
z o.o.
Temat: MS odpuszcza sobie .NET?
Pawel K.:
Gdyby okazalo sie ze za 15-20 lat systemy operacyne online sa na topie to pewnie HTML5/6/7 wyprze WinForms.
A jak się okaże, że za 5-10 lat ataki hakerskie będą nową formą konfliktów międzynarodowych to czy też systemy on-line będą na topie ? :)
Tak się ostatnio nad tym zastanawiałem, nad chmurą w kontekście nowoczesnych wojen ...
konto usunięte
Temat: MS odpuszcza sobie .NET?
Sa minimum dwa wyjscia:1. Wyjscie ktore opisales czyli totalna anarchia. Co z ostatnimi dzialaniami grup Anonymous itp. moze miec miejsce.
2.Zlikwidowanie anonimowosci w sieci poprzez zastapienie protokolu IP v4, nowszym v6 lub nawet stworzenie czegos lepszego. Np. jakies logowanie do globalnej sieci przez podanie DNA i potem przekazywanie tej informacji do kazdego adresu IP z ktorym sie laczy uzytkownik. Wtedy druga strona wiedziala by kto wykonuje SYN/ACK skanowanie.
USA sa swiadome slabosci protokolu IP, dlatego wydali ostatnio oswiadczenie, ze beda odpowiadac zbrojnie na atak cybernetyczny. Wynika z tego, ze sami tworcy internetu nie maja nad nim kontroli dostatecznej.
Acg N. .
Temat: MS odpuszcza sobie .NET?
Czyli albo odejść od zagłębiania się w sieć, co raczej jest już niemożliwe, albo zgoda na totalną inwigilację, zupełnie tak, jak by kamery były w każdym miejscu.konto usunięte
Temat: MS odpuszcza sobie .NET?
Nie mowie,ze tak bedzie, ale wydaje mi sie to dosc prawdopodobne. Kazdy rzad chce reczej inwigilowac swoich obywateli na ile sie tylko da. Sciaganie podatkow itp...Acg N. .
Temat: MS odpuszcza sobie .NET?
A jak crackerzy "odpuszczą" bądź "nie będą się dostatecznie starać", to się naprodukuje swoich, aktywnych, byle uzasadnienie do kontroli było... Aby zalogować się do systemu Windows, proszę polizać czujnik. Weryfikacja DNA w toku, proszę czekać... Identyfikacja poprawna, zostałeś zalogowany do sieci, a odpowiednie służby powiadomione. Od tej chwili cokolwiek klikniesz, może zostać użyte przeciwko tobie. Where do YOU want to go today?:)Adrian Olszewski edytował(a) ten post dnia 08.07.11 o godzinie 20:27
Krzysztof
Raczkowski
Stała współpraca,
Logifact-Systems Sp.
z o.o.
Temat: MS odpuszcza sobie .NET?
Pawel K.:
Sa minimum dwa wyjscia:
1. Wyjscie ktore opisales czyli totalna anarchia. Co z ostatnimi dzialaniami grup Anonymous itp. moze miec miejsce.
Nie miałem na myśli grup hakerskich, a raczej regularną cyber-armię - w tym kierunku to będzie się rozwijać.
2.Zlikwidowanie anonimowosci w sieci poprzez zastapienie protokolu IP v4, nowszym v6 lub nawet stworzenie czegos lepszego. Np. jakies logowanie do globalnej sieci przez podanie DNA i potem przekazywanie tej informacji do kazdego adresu IP z ktorym sie laczy uzytkownik. Wtedy druga strona wiedziala by kto wykonuje SYN/ACK skanowanie.
USA sa swiadome slabosci protokolu IP, dlatego wydali ostatnio oswiadczenie, ze beda odpowiadac zbrojnie na atak cybernetyczny. Wynika z tego, ze sami tworcy internetu nie maja nad nim kontroli dostatecznej.
Hmm anonimowość ? A w jaki sposób jesteś tak naprawdę dzisiaj anonimowy? No może dla 'szarych' użytkowników...
PS. Chyba przydał by się temat 'Hyde-park' :)
Sławomir
Marcjański
Programista /
Ethical Hacker
Temat: MS odpuszcza sobie .NET?
Krzysztof Raczkowski:
Pawel K.:
Gdyby okazalo sie ze za 15-20 lat systemy operacyne online sa na topie to pewnie HTML5/6/7 wyprze WinForms.
A jak się okaże, że za 5-10 lat ataki hakerskie będą nową formą konfliktów międzynarodowych to czy też systemy on-line będą na topie ? :)
Tak się ostatnio nad tym zastanawiałem, nad chmurą w kontekście nowoczesnych wojen ...
Co do chmury to ciekawa sprawa. Swojego czasu wiele było szumu że zbytnia centralizacja prowadzi do słabości sieci. Teraz sieć jest rozproszona, a chmury jednak "zasysają" te cząsteczki do jednego zbiornika. Teraz grupa crackerów wystarczy że obezwładni kilka centrów i sieć prawie nie istnieje (mówię o dalekiej przyszłości gdzie wedle wizji Microsoftu miałoby być wszystko w chmurze). Albo konwencjonalnie -precyzyjne ataki na centra danych i koniec...
A gdzie czasy w których każdy mógł postawić swój serwerek... pewnie się skończą no bo to anarchia jest.
Podobne tematy
-
Programiści .NET » Nie mogę sobie poradzić z FormView (asp.net c#) -
-
Programiści .NET » Poznańska Grupa .NET -
-
Programiści .NET » SQLite dla UT [ASP.net] -
-
Programiści .NET » jQuery dialog - zmiana wartośći kontrolki ASP .NET -
-
Programiści .NET » jak połączyć Delphi .Net 1.1 oraz SQLite -
-
Programiści .NET » [ C# ASP NET 4.0 ] Projekt nie widzi podzielonych klas. -
-
Programiści .NET » Szkolenia z programowania w .NET -
-
Programiści .NET » ASP.NET MVC: Ninject a wstrzykiwanie NIE do kontrolerów -
-
Programiści .NET » ASP.NET - kontrolka pivot table -
-
Programiści .NET » .Net debugowanie -
Następna dyskusja: