Slo-Tech - Microsoft je danes izdal novi različici razvojnega okolja Visual Studio 2010 in .NET Framework 4.0, ki vključuje tudi ASP.NET 4.0, kar je najverjetneje tudi najbolj obširna izdaja tega razvojnega paketa doslej.
Visual Studio 2010 je popolnoma prenovljen, tako iz stališča uporabniškega vmesnika (zgrajen je s pomočjo Windows Presentation Foundation), ki od sedaj deluje kot pravi večdokumentni vmesnik (MDI) z močno izboljšano podporo več monitorjem, kot tudi notranjosti (uporabljen je Managed Extensibility Framework za izboljšanje razširljivosti). Omeniti je potrebno, da so se spremenila tudi imena različic, ki se sedaj v skladu z Microsoftovim poenotenjem poimenovanja različic imenujejo Professional, Premium, Ultimate in Test Professional. Tako v .NET Framework 4.0 kot tudi v Visual Studiu je močno izboljšana podpora večnitnemu programiranju: knjižnica Parallel Extensions ponuja enostavne vmesnike (Parallel.For, Parallel.ForEach in Parallel.Invoke) za izvajanje, Visual Studio pa orodja za vizualizacijo in poenostavljeno razhroščevanje paralelnih operacij.
Pomembna novost v Visual Studiu je novi razhroščevalnik Historical Debugger, imenovan IntelliTrace, ki v nasprotju z dosedanjim lahko beleži vse klice funkcij, dogodke ter izjeme in omogoča, da izvajanje programa previjemo nazaj tudi v primeru, da prekinitvene točke niso bile postavljene. Potek programa je moč zajeti in predvajati tudi ločeno, kar bi lahko močno zmanjšalo število poročil o napakah, ki se zaključijo s statusom Not reproducible. Ostalih novosti je izjemno veliko, naj omenimo še nekaj pomembnejših:
Dynamic Language Runtime (podpora dinamičnim jezikom in dodajanje "dinamike" statically typed jezikom)
polna podpora jezikom IronPython, IronRuby in F#
vgrajeno računanje z velikimi števili (razred BigInteger)
nove thread-safe zbirke
podatkovna struktura Tuple
izboljšane performanse in čiščenje pomnilinka (garbage collection)
knjižnica Code Contracts, ki omogoča specificiranje predpostavk oziroma zahtev o parametrih (npr. vhodih in izhodih iz funkcij) za lažje preprečevanje napak in razhroščevanje
izboljšave v jezikih Visual Basic in C#, kot so statement lambdas in opcijski parametri
izboljšave v Windows Presentation Foundation (multi-touch podpora za Windows 7, podpora Surface 2.0, novi gradniki, izboljšave v performansah, razširljivosti, interoperabilnosti, prikazu in lokalizaciji)
izboljšave v ASP.NET in Visual Web Developer (več nadzora nad HTML in CSS kodo, One-Click Publish)
Na voljo so tudi brezplačne različice Express in preizkusna verzija različice Visual Studio Professional.
Mnja no, najbolj se pozna, da je bil team leader marriani in stvar dela kolikor mijojeratal sprobat solidno hitro.
V ostalem pa me zopet niso prepričali, f# še vedno brez form designerja, očitno ga bodo prej spacali pri sharp developu kot pri msju.
Ok intellitrace fajn za grupe ampak drago, relativno res drago.
Paralls extensions nekje v dveh letih niso prišli kam naprej, je pa res da je duffy sedaj na drugem projektu ostali so pa bolj tko, tko.
Iron scena je povsem zvisela ni ne ruby-ja ne pythona, pa bi bila pri mvc-ju za vezni člen dobrodošla.
Dlr kot tak nevem kam ga umestit zadnje čase, na codeplexu je praktično mrtev nihče pa nič ne zine kaj kanijo z zadevščino naredit. Leppie je milim, da obupal z implementacijo ironscheme jezika, to pa je praktično tudi najpopolnejši dlr projekt izven ms(javnosti dostopen). O javascriptu baziranem na dlr pa lahko le ugibamo.
Glede samega rendranja ter zagona wpf in sl pa še ne morem nič rečt. Predvsem slednje upajmo, da je krepko izboljšano.
noraguta: seveda, kdor kolikor toliko sledi zadevam, mu je večina teh stvari že poznana (saj so bile tudi že bete in RC). Sedaj so pa to vse skupaj zapakiral v eno production-ready zadevo...
men se ene stvari seveda ne zdijo samo po sebi umevne , sploh če majhni skupini entuziastov, kot so recimo sharpdevelop ali nemerle-group sproducirajo stvari katere MS, kljub oglaševanju svojih izdelkov in tehnologij ne. sploh ker insiderji lahko vplivajo na BCL in CLR. no ja sicer ravno sedaj poteka zbiranje pripomb na naslednjo ECMA specifikacijo , ampak vprašanje je katere bodo pri ms uposštevali . določene pomankljivosti v SRE(system.reflection.emit) se vlečejo že od verzije 1, pa še niso rešene ker jih insiderji ne "nucajo".
Ja no koker za kere gike. Sej ni nič neki novega. Spremenil se je jezik, sintaksa, nivo abstrakcije in nič drugega. Bilo bi dobro če bi uvedili mogoče kakšen nov model programiranja(Razen DirectCompute ampak to ni del VS) za reševanje problemov to bi bilo še zanimivo. Ampak... Vse kar si lahko prej naredil lako zdej tud. Krneki.Edino MS je cifre spremenil pa oglašuje kot da je neki revulucionarnega. SI predstavljaš, če bo tempo dodajanja novih funkcionalnosti se tko nadeljeval bo vse skupaj skonvergiralo k tem da bomo imeli en ukaz za kateri koli program(ki se ga pač da naredit). LOL :D
Ja no koker za kere gike. Sej ni nič neki novega. Spremenil se je jezik, sintaksa, nivo abstrakcije in nič drugega. Bilo bi dobro če bi uvedili mogoče kakšen nov model programiranja(Razen DirectCompute ampak to ni del VS) za reševanje problemov to bi bilo še zanimivo. Ampak... Vse kar si lahko prej naredil lako zdej tud. Krneki.Edino MS je cifre spremenil pa oglašuje kot da je neki revulucionarnega. SI predstavljaš, če bo tempo dodajanja novih funkcionalnosti se tko nadeljeval bo vse skupaj skonvergiralo k tem da bomo imeli en ukaz za kateri koli program(ki se ga pač da naredit). LOL :D
aja axum smo pa pozabil(ok pustmo , da niti beta ni)? pa kake revolucije glih ne oznanjajo.
Ja no koker za kere gike. Sej ni nič neki novega. Spremenil se je jezik, sintaksa, nivo abstrakcije in nič drugega. Bilo bi dobro če bi uvedili mogoče kakšen nov model programiranja(Razen DirectCompute ampak to ni del VS) za reševanje problemov to bi bilo še zanimivo. Ampak... Vse kar si lahko prej naredil lako zdej tud. Krneki.Edino MS je cifre spremenil pa oglašuje kot da je neki revulucionarnega. SI predstavljaš, če bo tempo dodajanja novih funkcionalnosti se tko nadeljeval bo vse skupaj skonvergiralo k tem da bomo imeli en ukaz za kateri koli program(ki se ga pač da naredit). LOL :D
To je ful pomembno da je inegrirano.. Prej se je dalo iti čes in si moral imeti od drugih narejene cliente za TUIO protokol. Kar je tečo in zahteva veliko konfiguracije. Če VS api zna komunicirat z windows multitouch je to zmaga. Kakor je prej model omenil, da lahko hitreje kaj narediš. Multitouch je ful zadeva v razvoju, in velik problem je dizajnirati uporabniški vmesnik, ki ni keyboard/mouse driven. Kakorkoli, tega bo čedalje več.
Samo da hitreje in učinkoviteje. Sej lahko že leta in leta nazaj vse to naredil v ASMju... (bi pa porabu 3 mesce za eno formo narisat)
To ni glih res. To je za ljudi ki se še učijo. Ko boš enega spravil za računalnik da se bo začel učiti mu bo to ful pomagalo(vgrajeno delo z polji, seznami, drevesi in različnimo podatkovnimi strukturami) v Visual studio VB C# pa take fore. Ampak za izdelavo enostavnih aplikacij je zelo priročno, ker hitro narediš kaj. Ko pa so aplikacije specifične in so vezane na programski model oz. se gre za reševanje določenih problemov/algoritmov kjer je večina kode za izdelavo le tega, je pa čisto vseeno ali imaš v jeziku v katerem delaš dodanih kaj teh bonbončkov ali ne, ker ne zmanjša kompleksnosti rešitve, mogoče celo je vgrajena funkcionalnost ni optimalna za tvojo rešitev in jo je treba na novo spisat. Tko da za tiste, ki delajo predvsem programe na nivoju računovodstva(spletne aplikacije) in podobno oz. bolj primitivne(in manjše po obsegu) mogoče bonbonči pridejo prav. Ampak če pa so zadeve zakomplicirane pa ti bonbončki ne pripomorejo kaj dosti k hitrejši izdelavi aplikacije. Ker očitno se folk tega ne zaveda dosti, ampak k izdelavi aplikacije ne prispeva samo programiranje, je tudi načrtovanje, planiranje, komunikacija z stranko, medekipna komunikacija.... Vsi ti dejavniki pa še kateri prispevajo delež časa k končnemu času porabljenega za aplikacijo. Važno je da se programiranje ne zavleče(to se če programer ne obvlada okolja/jezika/algoritmov). Torej če nekomu ponudiš, ki je že ustaljen pri reševanju določenega problema, neki novega in rečeš da je to bolje in da mora to uporabljati je to nesmiselno. Njemu novo nikakor ne bo všeč, ker njegova metoda je učinkovita in jo obvlada, z novo zadevo bo isto stvar delal drugače, ki jo že itak zna dobro narediti, samo omejevala ga bo ker se je treba na novo naučit nekaj kar je že itak dobro. Kar hočem povedat je da je merilo uporabnik, ne najnovejši bonbonček =) In da sploh ni res da boš kaj hitreje naredil, kvečjemu bi lahko rekel da bo hitreje lahko nekdo uporabil neko zmožnost v programu. Tudi če bi v ASM delal, bi si čez čas napisal knjižice ki bi ti olajšale delo in bi bil veliko bolj produktiven =) Sam ASM je mal huda kajne?
. Tudi če bi v asm delal, bi si čez čas napisal knjižice ki bi ti olajšale delo in bi bil veliko bolj produktiven =) sam asm je mal huda kajne?
Nikakor ne, razen če predpostavljaš, da si super duper programer oz imaš celo neskončno množico le teh. Pa so izkušnje pokazale, da že navaden skok(goto), lahko do te mere pretrese izvajanje oz miselni proces človeka, da se ga izogibamo v velikem loku, če se le da.
Zakaj bi prestesel misleni proces možganov? Saj je osnovni konstrukt zank ravno pogojni skok?
omejenost kratkoročnega spomina , omejenost računovodskih sposobnosti možganov( že samo parsanje se zanaša na veliko količino "računovodstva") , ravno tako spreminjanje rekurzije v iteracijo... you name it.
Zakaj bi prestesel misleni proces možganov? Saj je osnovni konstrukt zank ravno pogojni skok?
omejenost kratkoročnega spomina , omejenost računovodskih sposobnosti možganov( že samo parsanje se zanaša na veliko količino "računovodstva") , ravno tako spreminjanje rekurzije v iteracijo... you name it.
Mislim da je to bolj stvar posameznika. Spreminjanje rekurzije v iteracijo je čisto preprosti, samo sklad uporabiš. Nevem no to je nejasno tistim, k nevejo kako prevajalniki delajo. =)
Zakaj bi prestesel misleni proces možganov? Saj je osnovni konstrukt zank ravno pogojni skok?
omejenost kratkoročnega spomina , omejenost računovodskih sposobnosti možganov( že samo parsanje se zanaša na veliko količino "računovodstva") , ravno tako spreminjanje rekurzije v iteracijo... you name it.
Mislim da je to bolj stvar posameznika. Spreminjanje rekurzije v iteracijo je čisto preprosti, samo sklad uporabiš. Nevem no to je nejasno tistim, k nevejo kako prevajalniki delajo. =)
ne ni stvar posameznika ker cele rase. ali pa časa izvedbe. na roko unvinding zank ne moreš narediti , al je to tako nemogoče razumeti, vsaj v ekonomičnem cajtu ne!
Torej če nekomu ponudiš, ki je že ustaljen pri reševanju določenega problema, neki novega in rečeš da je to bolje in da mora to uporabljati je to nesmiselno. Njemu novo nikakor ne bo všeč, ker njegova metoda je učinkovita in jo obvlada, z novo zadevo bo isto stvar delal drugače, ki jo že itak zna dobro narediti, samo omejevala ga bo ker se je treba na novo naučit nekaj kar je že itak dobro.
To se mu ZDI nesmiselno, nikakor pa ne pomeni, da tudi v resnici je. Ne ljubi se mu učiti, čeprav je v končni fazi prihranek časa skoraj vedno večji. Take, ki niso sposobni slediti razvoju, žal (ali pa na srečo) prej ali slej povozi čas.
Še enostaven primer: z LINQ to SQL, Extension metodami in lambda expressioni lahko v nekaj minutah sestavim tak query, kot ga nekdo, ki obvlada SQL, sestavlja cel dan. Če pa takšnim LINQ omeniš, se pa samo namrdnejo...
Še enostaven primer: z LINQ to SQL, Extension metodami in lambda expressioni lahko v nekaj minutah sestavim tak query, kot ga nekdo, ki obvlada SQL, sestavlja cel dan. Če pa takšnim LINQ omeniš, se pa samo namrdnejo...
Te zanima koliko je en tak LINQ query pocasnejsi od recimo store procedure?
Te zanima koliko je en tak LINQ query pocasnejsi od recimo store procedure?
Lahko je neskončnokrat. Prav tako kot je lahko stored procedura neskončnokrat počasnejša od LINQ querya ("stestirano in zmerjeno v praksi..."). Če je razlika prevelika, je v veliki večini primerov query slabo spisan ali indeksi slabo postavljeni (ali sploh ne).
Poleg tega je daleč največja prednost LINQa to, da ti omogoča res preprosto in kratko kodo za izvajanje poizvedb nad podatkovnimi strukturami. Prišparaš precejšenj kup pisakanja vrstic če rabiš z določenega collectiona pobrati ven elemente z določenimi lastnostmi recimo.
Te zanima koliko je en tak LINQ query pocasnejsi od recimo store procedure?
Lahko je neskončnokrat. Prav tako kot je lahko stored procedura neskončnokrat počasnejša od LINQ querya ("stestirano in zmerjeno v praksi..."). Če je razlika prevelika, je v veliki večini primerov query slabo spisan ali indeksi slabo postavljeni (ali sploh ne).
Še enostaven primer: z LINQ to SQL, Extension metodami in lambda expressioni lahko v nekaj minutah sestavim tak query, kot ga nekdo, ki obvlada SQL, sestavlja cel dan. Če pa takšnim LINQ omeniš, se pa samo namrdnejo...
Mogoče pa imajo prav. Bojo lahko šli direkt na Entity Framework, ki ima zdaj, kolikor vem, uradni blagoslov.
Primerjava med Stored Procedure (je btw že skompajlana) in LINQ querijem je totalno nesmiselna (jabolka in banane?). Lahko pa primerjate ročno napisan query in query, ki ga generira LINQ - po mojih izkušnjah generira super queryje in lahko jih (parametrizirane) pogledate z SQL profilerjem, če ne verjamete. Performacne je pa itak odvisem (tako kot pravi darkolord) od baze, entittet, indeksov, programerja itd..
Zakaj bi prestesel misleni proces možganov? Saj je osnovni konstrukt zank ravno pogojni skok?
omejenost kratkoročnega spomina , omejenost računovodskih sposobnosti možganov( že samo parsanje se zanaša na veliko količino "računovodstva") , ravno tako spreminjanje rekurzije v iteracijo... you name it.
Mislim da je to bolj stvar posameznika. Spreminjanje rekurzije v iteracijo je čisto preprosti, samo sklad uporabiš. Nevem no to je nejasno tistim, k nevejo kako prevajalniki delajo. =)
ne ni stvar posameznika ker cele rase. ali pa časa izvedbe. na roko unvinding zank ne moreš narediti , al je to tako nemogoče razumeti, vsaj v ekonomičnem cajtu ne!
Lejga, če se vse prevede na pogojne skoke =) Kako pol ni mogoče. Ne veš kaj govoriš.
Torej če nekomu ponudiš, ki je že ustaljen pri reševanju določenega problema, neki novega in rečeš da je to bolje in da mora to uporabljati je to nesmiselno. Njemu novo nikakor ne bo všeč, ker njegova metoda je učinkovita in jo obvlada, z novo zadevo bo isto stvar delal drugače, ki jo že itak zna dobro narediti, samo omejevala ga bo ker se je treba na novo naučit nekaj kar je že itak dobro.
To se mu ZDI nesmiselno, nikakor pa ne pomeni, da tudi v resnici je. Ne ljubi se mu učiti, čeprav je v končni fazi prihranek časa skoraj vedno večji. Take, ki niso sposobni slediti razvoju, žal (ali pa na srečo) prej ali slej povozi čas.
Še enostaven primer: z LINQ to SQL, Extension metodami in lambda expressioni lahko v nekaj minutah sestavim tak query, kot ga nekdo, ki obvlada SQL, sestavlja cel dan. Če pa takšnim LINQ omeniš, se pa samo namrdnejo...
Ja tisti ki mrdnjejo, niso glih inteligentni oz. odprti spremembam. =) Moreš biti pripravljen absorbirati kakršne koli nove informacije in jih uporabit sebi v prid! Za bolj učinkovito doseganje cilja. Tako kot pravi tisti rek: Če že 10 let delaš eno in isto, potem nekaj delaš narobe.