Jeigu jau skaitote šį straipsnį, tai tikriausiai girdėjote apie .NET. O jeigu girdėjote apie .NET, tai turbūt girdėjote ir apie ASP - tai viena šauniausių platformų internetiniams projektams realizuoti, visa bėda tame, kad Lietuvoje beveik nėra serverių pasiūlos tokiems projektams talpinti, o jeigu ir yra, tai kainos pakankamai didelės (paprastai kainų skirtumas siekia 10 ir daugiau kartų). Tai viena iš pagrindinių priežasčių, kodėl PHP vis dar yra gerokai populiaresnis nei ASP Lietuvoje.

Šiame straipsnyje pabandysime papasakoti, kaip būtų galima interneto svetainės programavime naudoti galingas .NET priemones taip, kad nereikėtų ieškoti brangios ASP talpinimo paslaugos. Idėja trumpai būtų tokia: administravimo įrankį susikurti Windows aplinkoje, o į internetą talpinti jau sugeneruotą medžiagą. Esminiai tokio sprendimo pliusai ir minusai:
Pliusai:

  • Administravimo sąsajoje bus galima naudoti turtingą, lanksčią, greitą, lengvai programuojamą Windows grafinę sąsają;
  • Duomenų apdorojimui galima naudoti visą .NET karkaso galią – internetines paslaugas (WebServices), galingus įrankius, paveikslėlių apdorojimo priemones, integraciją su Office 2007, kitomis MS programomis ir dar daug daug kitų galimybių;
  • Rezultate bus gaunamas jau pilnai paruoštas interneto svetainės turinys, vadinasi jo nereikės generuoti apsilankius kiekvienam lankytojui, kaip kad vyktų naudojant standartinius sprendimus (PHP arba ASP, nors abi platformos turi priemonių tam generavimui paspartinti(cache)). Tai ypač naudinga tuo atveju, kai turinį sugeneruoti užtrunka daug laiko (pavyzdžiui, informacija renkama iš kitų interneto šaltinių);
  • Internetinėje svetainėje nebus programinio kodo tik turinys, todėl įsilaužti bus įmanoma tik pasinaudojant serverio skylėmis, kadangi serveris greičiausiai bus nuomojamas, jį prižiūrės profesionalai ir už įsilaužimo nuostolius atsakys tik jie;
  • Galima nesunkiai realizuoti automatinį informacijos atnaujinimą.

Minusai:

  • Naudojant tik čia aprašytą metodiką neįmanoma padaryti interaktyvumo internetinėje svetainėje, kas Web 2.0 dienomis yra „ant bangos“, tačiau visada galima kombinuoti kelias metodikas – pvz. interaktyvumo reikalaujančias vietas programuoti PHP, o statiškiausias vietas, kur reikia paruošti daug ir sudėtingos informacijos – naudojant čia aprašytą metodiką.

Struktūra

Idėjos esmė yra XSLT (Extensible Stylesheet Language Transformations, http://en.wikipedia.org/wiki/XSL_Transformations). Trumpai apie XSLT – tai pagrindu sukurta kalba, kurios pagalba galima transformuoti vienos formos dokumentą į kitos formos dokumentą. Kadangi HTML yra kalbos poaibis, tai mes tiesiog galime .NET priemonėmis turimus duomenis transformuoti į (sakykime į DataSet objektą galima įkrauti duomenis iš daugelio duomenų bazių, o iš DataSet yra priemonės gauti ), o iš naudodami XSLT transformuoti į HTML.

Pavyzdys

Pats laikas pereiti prie mažo pavyzdžio. Mums reikės kokios nors internetinės paslaugos, formos su mygtuku ir kokio nors komponento (webBrowser komponentas idealiai tam tinka) rezultatams vaizduoti. Kaip naudoti internetines paslaugas Windows projektuose lietuviškai yra aprašęs NePo (http://pixel.lt/laukiniu-web-servisu-medziokle.html), todėl kartotis nėra tikslo, mūsų pavyzdyje naudosime paprastą internetinę paslaugą http://www.webservicex.net/globalweather.asmx?wsdl, kuri yra nemokama bei paprasta (netgi gal kiek per paprasta). Beje, labai norėjosi rasti kokią nors atvirą lietuvišką internetinę paslaugą, bet bent su google pagalba (google asmx puslapiuose iš Lietuvos) nelabai pavyko kažką rasti, išskyrus Lietuvos banko valiutų kursų internetinę paslaugą.

Taigi susikuriame internetinės paslaugos objektą:

ServiceReference.GlobalWeatherSoapClient ws = new sampleGoogle.ServiceReference.GlobalWeatherSoapClient();

Naudodami jos metodą GetCitiesByCountry(), nuskaitome visus Lenkijos miestus (norėjosi naudoti Lietuvos miestus, bet, deja, tik vieno miesto duomenys yra pasiekiami – mums nelabai tinka):

XmlDocument citiesDocument = new XmlDocument(); 
citiesDocument.LoadXml(ws.GetCitiesByCountry("Poland"));

Gautame dokumente nufiltruojame elementus, kad liktų tik City elementai:

XmlNodeList cities = citiesDocument.SelectNodes("//City");

Kadangi nagrinėjama internetinė paslauga turi metodą tik vieno miesto oro sąlygų duomenų gavimui, teks tuos duomenis patiems jungti į vieną dokumentą, kurį reikia prieš tai pasiruošti:

XmlDocument weatherDocument = new XmlDocument(); 
XmlElement root = weatherDocument.CreateElement("root"); 
weatherDocument.AppendChild(root);

Ir galiausiai pereiname per visus miestus ir suklijuojam jų oro duomenis į vieną dokumentą:

string cityXml = ""; 
foreach (XmlNode node in cities) { 
    // konkretaus miesto oro duomenys 
    cityXml = ws.GetWeather(node.InnerText, "Poland"); 
    // jeigu nėra klaidos, prijungiame juos prie likusių duomenų 
    if (cityXml.Trim() != "Data Not Found") { 
        cityXml = cityXml.Remove(0, cityXml.IndexOf("?>") + 2); 
        weatherDocument.DocumentElement.InnerXml += cityXml; 
    } 
}

Taigi turime paruoštą dokumentą, galim pereiti prie transformacijos skripto paruošimo. Mums reikės bylos, kurioje saugosime XSLT skriptą, todėl projekte spaudžiame dešinį pelės klavišą ir iš meniu pasirenkame Add>New Item>XSLT File. Turime šviežią bylą su keliomis eilutėmis:

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
</xsl:stylesheet>

Pirmojoje eilutėje yra bylos antraštė, antroji eilutė žymi XSLT kodo pradžią, paskutinioji eilutė žymi kodo pabaigą. Toliau visą kodą rašysime tarp XSLT kodo pradžią ir pabaigą žyminčių eilučių. Kadangi mūsų tikslas yra iš gauti HTML, tai pirmoji eilutė bus instrukcija, kad rezultate reikalingas HTML kodas:

<xsl:output method="html" />

Sekanti eilutė nurodys, su kuria dokumento dalimi norėsime dirbti:

<xsl:template match="/">

Kabutėse esanti išraiška yra XPath išraiška, kuria yra filtruojami dokumentai. Mes nagrinėsime visą dokumentą, todėl įrašėme “/”, o tai reiškia šakninį dokumento elementą. Iš esmės XPath nėra šio straipsnio tikslas, plačiau apie tai galima pasiskaityti http://www.w3schools.com/xpath/.
Judam toliau, atėjo laikas apsirašyti generuojamo dokumento struktūrą. Pradžiai surašome HTML pradžios ir pabaigos elementus:

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
 <body>
 </body>
</html>

Tarp šių elementų išdėstyme XSLT surišimą tarp ir HTML. Tam naudosime kelis XSLT kalbos elementus: xsl:for-each (ciklui suformuoti), xsl:value-of (konkrečiai reikšmei įrašyti) bei xsl:if (sąlygos sakiniui):

<xsl:for-each select="//CurrentWeather"> 
 <span style="color:blue"><xsl:value-of select="Location"/></span>
 <span style="color:black"><xsl:value-of select="Temperature"/></span>
 <span style="color:red">
  <xsl:if test="substring-before(RelativeHumidity ,'%') &lt; 30">
   <img src="sausa.gif">
  </xsl:if>
  <xsl:if test="substring-before(RelativeHumidity ,'%') &lt; 60">
   <img src="normalu.gif">
  </xsl:if>
  <xsl:if test="substring-before(RelativeHumidity ,'%') &gt; 60">
   <img src="slapia.gif">
  </xsl:if>
 </span>
 <br />
</xsl:for-each>

Kiekvienas XSLT elementas yra susijęs su jam skirta XPath išraiška. Kaip minėjome, XPath nėra šio straipsnio tema, todėl trumpai tik panaudotų išraiškų reikšmės(kabutės nepriklauso išraišoms):

  • //CurrentWeather” – išfitruoja visus CurrentWeather elementus
  • Location“, “Temperature” – nagrinėjamo elemento Location elementas
  • substring-before(RelativeHumidity ,’%') > 60” – paima RelapiteHumidity elemento reikšmę, joje palieka tik tai, kas eina iki % simbolio ir tada palygina su skaitine reikšme. Tokiu būdu pagal tai, koks yra santykinis drėgnumas yra parenkamas paveikslėlis.

Ką gi, turime , turime XSLT, liko juos suvesti į vieną vietą, kad galėtų gimti HTML :) Tai atliekama be galo paprastai. Iš pradžių sukuriame objektą, kuris vykdys transformaciją:

XslCompiledTransform myXslTrans = new XslCompiledTransform(); 
myXslTrans.Load("../../main.xslt");

Tada pasiruošiame bylą, į kurią rašysime rezultatus:

XmlTextWriter myWriter = new XmlTextWriter("result.html", null);

Atliekame transformaciją:

myXslTrans.Transform(weatherDocument, null, myWriter);

Iki pilno plano įgyvendinimo trūksta FTP kliento, kuris galėtų sugeneruotus dokumentus patalpinti į serverį. .NET platforma neturi standartinio FTP kliento, tačiau internete yra nemažai nemokamų lengvai naudojamų bibliotekų, vieną iš jų galima rasti adresu http://www.codeproject.com/cs/internet/ftplib.asp.

Pabaigai

Kaip matyti iš aukščiau aprašyto pavyzdžio (kad labai neišsiplėsti ir akcentuoti tik nagrinėjamus straipsnyje aspektus jis buvo labai labai trumpas, daug kas praleista, ko reikėtų realioje programoje) .NET platformoje naudoti XSLT transformacijas paprasčiau nei paprasta – pati transformacija su objekto sukūrimu ir rezultatų rašymu vos trys eilutės! Be to, naudojant Visual Studio visada galima jausti šios programuotojo aplinkos pagalbą – kad ir XSLT sintaksės tikrinimas ar frazių automatinis užbaigimas. Nors XSLT transformacijos internetinių aplikacijų kūrime yra įprastas dalykas, retas susimąsto apie galimybę interneto turinį generuoti ne internetiniame serveryje (offline), yra ir kombinuotos technologijos – pavyzdžiui blogspot naudoja panašią technologiją – ten taip pat svetainės medžiaga yra surašoma į HTML bylas po jos redagavimo, o ne kiekvieną kartą apsilankant lankytojui, tačiau pats redagavimas vyksta naršyklėje.
Pilną programos kodą galima rasti www.blogas.lt/dziedrius.

Panašūs straipsniai


“Taupyk laiką programuodamas .NET, o pinigus - rinkdamasis teisingas technologijas” komentarų: 24

  1. Rimantas

    Tambovo vilkas yra XML kalbos poaibis, o ne HTML.

  2. Tadas

    Gal baikim sitas propagandas apie saunuji .NET?

  3. Saulius

    Tai tipo šitos metodikos esmė yra ant kitos platformos pasinaudojant .net sugeneruot html’us ir suuploadint į serverį, kuriame .net nėra ? Tada labai jau statiškai viskas gausis, o norint dinamiškumo reiktų generavimą/uploadinimą į kitą serverį dėt, tai biški beats the purpose, man atrodo :)
    Imho toks generavimas labiau tinkamas kešavimui (kaip kad daro tavo paminėtas blogspot), o ne technologinių apribojimų apėjimui.

  4. Giedrius

    Saulius>generavima/uploadinima galima daryti is paprasto kompo, nebutinas serveris su statiniu ip/asp.net ir panasiai.
    Del statiskumo - taip, bet pvz kompanija parduodanti vandens filtrus, kuri nori tik parodyti savo asortimenta (lietuvoj vistiek kol kas mazai is tikruju perka internete, tik renka jame informacija) - ji padeda sugeneruota html ir viskas, interaktyvumas nelabai reikalingas, puslapio kontaktuose yra email, telefonas ir kt., kas reikalinga. Taip pat gali buti automatinio sugeneruoto kontento publishinimas - pvz kazkada mano web robotas isnagrinedavo pigiu skrydziu poros menesiu pasiula ir atrinkdavo pigiausius - realiu laiku tokios informacijos nepateiksi(scrapinimas pakankamai ilgai uztrunka), o atnaujint pakanka pora kart i diena. Kitas pavyzdys - kai reikia sudetingo UI redagavimui, kai sunku su javascriptu realizuoti, tada imi win32 aplikacija, sakysim google zemelapiu redagavimui, susiredaguoji, gauni xml, kuri galima sumaitinti google maps api ir violia. zodziu panaudojimo galima sugalvoti daug, kazkaip nesusipratau prirasyti :)

  5. Evaldas

    Pirmiausia kvaila lyginti .NET su PHP, nes tai nepalyginami produktai. Štai ASP.NET ir JSP visai kas kita. Tai klausimas, kas geriau - JSP parašyti script’ai serveryje (nemokama, saugūs, suderinami su visomis operacinėmis, jokių Microsoft standartų) ar ASP.NET (paprastai veikiantis Microsoft’iniame serveryje, kas tolygu lengvam įsibrovimui į serverį ir lengvam duomenų priėjimui)? Kažkodėl neteko girdėti, kad kuris nors rimtas bankas savo bankines sistemas darytų su ASP.NET. Tam saugumo sumetimais naudojama JSP. Šiaip nieko prieš ASP.NET, bet saugumas buvo, yra ir bus didžiulė Microsoft problema. Todėl prieš naudodami ASP.NET labai gerai pagalvokite.


  6. Man labai gaila mažos įmonės darbuotojus, rašančius XSL transormacijas tam, kad kažką parodytų savo klientams.

    Svarbu ne technologijos, svarbų žmonės dirbantis su šiomis technologijomis.

  7. Saulius

    Vakaruose jau seniai suprato, kad laiką ir pinigus taupoma programuojant Ruby on Rails. O čia dar visokie .NET, 10-kart daugiau kainuojantys hostingai, dar visokios XSLT transformacijos, kiaura kaip rėtis MS platforma. Baikit gasdinti programuotojus ir dumti akis likusiai faunai :)

  8. Sergejus

    @Evaldas
    DNB Nord naudoja ASP.NET.

  9. Giedrius

    Kalbant apie jsp, tai Lietuvoje toki serveri issinuomuoti apskritai nzn ar imanoma. Is kitos puses reikia atskirti bankus nuo smulkiu imoniu, buidzetai ir poreikiai yra visiskai skirtingi. Dar is kitos puses - tikimybe, kad programuotojas pricrapins yra daug didesne, nei kad platforma paves. O siame straipsnyje apskritai kalbama apie tai, kad nenaudoti nei ASP.NET nei JSP nei PHP, priejimo prie skriptu nera visiskai, todel nulauzti galima tik atakuojant pati serveri, o ne konkretu puslapi.
    del asp.net ir banku - google bank inurl:aspx.


  10. Kaip gaila, nuėjau pagal nuorodą ir neradau pilnos programos kodo. Net nieko panašaus neradau į kodą… Visi straipsniai apie .NET turi nuorodą su pažadų kad ten yra daugiau, bet paspaudes nieko nerandi. Peršasi išvada kad žmonės, naudojantis .NET yra apgavikai.

  11. Giedrius

    Saulius>Netiesa apie ruby on rails. Esminiai dalykai:
    a) nera hostingo. arba jo yra mazai. ne kiekvienam projektui reikia statyti atskira serveri ir paciam administruoti.
    b) nera dokumentacijos. tikrai, kazkada pats rasiau projekto viena dali su ruby on rails. skaudejo labai, nes teko skaityti ne dokumentacija, o paties frameworko koda.
    c) su ruby on rails kodinama tiek pat arba dar daugiau, kai nukrypstama nuo ju rekomenduojamo scenarijaus (pvz db yra suvadinta ne taip kaip jie nori, o yra integruojama su jau esancia ir panasiai)
    d) .net palaiko ruby sintakse, o frameworko galimybes ne tiek daug ir skiriasi (ypac po MVC frameworko pasirodymo .NET’ui)
    e) nera specialistu rinkoje

  12. Giedrius

    Sergej ‘ZaZa’ Kurakin> Ne imones darbuotojai programuoja, o nusamdytos kompanijos programuotojai. Man rodos pakankamai aiskiai parasyta, kad vartotojui tenka windows programos sasaja, o kas po ja slepiasi yra programuotojo reikalas.

  13. Sergejus

    @Sergej ‘ZaZa’ Kurakin
    “Peršasi išvada kad žmonės, naudojantis .NET yra apgavikai.”
    Nereikia vieno žmogaus tapatint su VISAIS ;)

  14. Rimantas

    @Giedrius
    Oj nereikia apie dokumentaciją, jos ir svetainių ne vieną yra ir knygų visa kupeta.
    DB integravimui dažnai užtenka vienos-dviejų eilučių modelyje.

  15. Vidmantas

    Giedriau,

    a) pilno Rails hostingo, nebūtina žiūrėti vien lietuvoje. O jeigu rimtai užsiimi vistiek pirksi dedikuotą, o ten gali statyti ką tik nori.
    b) matyt prastai ieškojai arba ieškojai ne to ko reikia - ruby ir rails kaip tik sakyčiau turi puikią dokumentaciją.
    c) galbūt, jeigu integruojama DB kreiva. Tačiau callbackai, filtrai ir activeRecord’as tikrai spartina developinimą
    .
    e) taip, tas tiesa.

  16. Saulius

    Giedriau,
    a) kaip jau minėjo, serveris vis vien būna dedikuotas, jei projektas - ne niekinis. Serveriai lt siūlo nuo 45lt/men. Paskaičiuok kiek kainuoja pastatyt analogiška windowsini hostą ir pastatyt armija jį apsaugot bent tiek, kiek Unix tipo sistemos yra saugios iš prigimties.
    b) visų pirma, jei Rails programeris nenardo source’uose kaip žuvis vandenyje, tai jis tik galvoja, kad yra Rails programeris. Toks ir yra Rails principas - duotas atvirą karkasas, o pats prasiplėti pagal poreikį, ir ne taip tūpai, kaip tau kažkas primetė, o taip kaip pats galvoji yra geriausia. Beje, dokumentacija vis gerėja, bet ir ji daugiausia naudinga pradedantiesiems.
    c) Visų pirma, labai retai kas developina su Rails ant sukirmijusių “legacy” atliekų. O tokie dalykai kai lentelių pavadinimai keičiami vienos eilutės pagalba. Rails’uose configūraciją pagal nutylėjimą galima keisti! Čia ir yra Rails paprastumas - yra konfigūracija pagal nutylėjimą, o jei nepatinka, tai lengvai gali ją pasikeisti.
    d) daug ką tas .net palaiko, na ir kas iš to? Atsimink, kad kieti Rails programeriai yra kodo hackeriai, ir jie išnaudoja tai, ką Ruby ir jos interpretatoriaus suteikia. Tokie niekučiai, kaip “sintaksės palaikymas” tereiškia, kad bus galima naudotis labai maža Ruby galia. Visi komerciniai produktai palaiko daug ką, apkabinėti nereikalingai blizgučiais, o kokia iš to nauda? Gražu, bet skylėta, klaidų pilna, o kas svarbiausia - pasitaisyt pats negali. Į supportą paskambinsi - išgirsį tralialia apie tai, kad tą klaidą žino, ir ištaisys kitame release po pusę metų, o tau reikia šią savaitę.
    e) specialistų yra, bet juos ant rankų pirštų galima suskaičiuot. O ir visose srityse specialistų trūksta.

    Apskritai, kai rašai straipsnius ir kitaip bendrauji su IT fauna, neaukštink savo naudojamų įrankių, nes sudarai nelabai gerą įspūdi. Visi mes naudojam savo mėgstamus įrankius, visi jie turi privalumų ir trūkumų, mes su jais gyvename ir juos mylime! Pagalvok kaip atrodytum, jei savo draugams kalbėtum apie tai, kokia tavo mergina aukšta, graži, ilgais plaukais, žydromis akimis, o kokios jų merginos negražios. Pagauni?

  17. Saulius

    Tik norėjau atkreipti, kad yra du Sauliai, vienas prieš ms (turbūt), kitas už (aš) - prašom nepainioti mūsų :)

  18. NePo

    Visų pirma norėčiau paprašyti visų baigti beprasmius ginčius, jeigu turite rimtų argumentų parašykite straipsnį. Jeigu negalite parašyti straipsnio vadinasi jūsų argumentai nerimti.

    Kai aš kalbu, nesvarbu su kuo, sakau, kad mano mergina pati gražiausia, o kitos negražios (ypač tai pabrėžiu, kai jinai girdi:P ). Būtų kvaila girti kitas, o ne savo :)

    Siūlyčiau pamiršti terimaną “saugios iš prigimties”. Visi žinom posakį, kad blogam programuotojui ir klaviatūra trukdo. Kiek saugi sistema bus, priklauso tik nuo tavęs pačio (tavo admino).

    Bandžiau ir Rails ir .Net. Palaikau .Net ir nežadu dėl to ginčytis. Mano mergina gražiausia ir viskas.

    Dėkoju už supratingumą.

  19. Giedrius

    Sauliau pries MS:
    a) imones, kuri turi kelis vadybininkus ir importuoja sakysim vandens filtrus, puslapis su informacija apie imone yra niekinis, nes ne ant dedikuoto serverio? Nagi, gi kelis kartus rasiau, kad tureti savo serveri yra brangu (jeigu atidziau paziuresi i dedikuoto serverio pasiulyma serveriai.lt - tai ne 45lt, o (180 + 45)lt per menesi(arba 2700lt per metus, btw i 180lt/men ieina tik standartiniai dalykai, ne zodzio apie ruby palaikyma), 45lt tik tuo atveju, jeigu pats turi administratoriu, o kam jis reikalingas imonei su keliais darbuotojais ir 5mb puslapiu?)
    b) kad galetum pats prasiplesti, reikia daug zoles apvaryti ir nardyti kaip zuviai po source. pvz .net praplesti gali extendindamas reikiama klase, pasiskaicius dokumentacija kuris metodas ar propertis ka daro.
    c) va, prieinam prie apribojimo - ruby netinka projektams, kur reikia integruotis su kitom sistemom (paprastai imone turi buhalterine sistema, uzsakymo valdymo sistema, CRM ar dar ka nors, labai retai turi tik viena sistema)
    d) kieti programeriai, kodo hakeriai - vaikiska. kai i ruby papostinau, kad normaliai nepalaiko WSDL any tago, daugiau kaip puse metu nesulaukiau sprendimo (greciausiai nepalaiko ir siandien).
    e) parodyk nors viena zodi straipsnyje, kur sakiau kad kiti dalykai yra blogai? Vieninteliame sakinyje, kur pamineta kita sistema yra fraze “PHP vis dar yra gerokai populiaresnis nei ASP.NET”

  20. Saulius

    NePo, tu skaitai sakinius iki galo? Ar tu tikrai sakai savo draugams, kad jų merginos negražios? Jei tavo draugai verti pagarbos, tai tu geriausiu atveju turėtum labai rimtą pokalbi po to. Dėl “saugios iš prigimties”, tai matosi nesupratimas apie ką eina kalba. Čia kalba eina apie platformos saugumą, o tai visiškai nepriklauso nuo programuotojo ir tik iš dalies priklauso nuo admino. Vietoj tų nuvalkiotų frazių (pvz. “teisingos technologijos”) praleiskite daugiau laiko rinkdami pavadinimą, kuris atitinka straipsnio turinį ir turinio išvalymui nuo marketingo triukų. Visada įdomu paskaityti apie įdomias technikas ir metodikas, bet visiškai neįdomu skaityti reklaminių bukletų.

  21. Saulius

    Giedriau,
    a) mes nukrypom nuo pagrindinio klausimo. Straipsnio tema skelbia, kad galima sutaupyti pinigų ir laiko renkantis .net, tačiau su tuo aš nesutinku. Tai visgi kiek kainuoja pastatyti ir išlaikyti serverį, kuris veža dinamišką svetainę pastatyta ant .net platformos? Ar jis tikrai pigesnis, nei serveris Rails aplikacijai ant Unix tipo sistemos, įvertinant platformos apsaugojimo kaštus? Jei kalba eina ne apie dinamiškus, o paprastus puslapius(bet tokių jau mažai tebėra), tai nėra jokių problemų susigeneruoti statinius HTML iš Rails aplikacijos ir hostinti juos už 1 litą. O dėl serveriai lt, tai palaikymas visada kainuoja priklausomai nuo sistemos ir kas jį atlieka. Ar .net platformai palaikymo nereikia ir ji visada veikia be priežiūros? Dėl Ruby palaikymo serveriai lt - kokios problemos? Taigi ten VPS’as su root account’u, instaliuoji ką nori.
    b) nereikia apvarinėti jokios žolės, reikia turėti supratimą kaip veikia Rails ir Ruby. Apskritai, čia yra du skirtingi požiūriai - atviros sistemos ir uždaros. Atvirose programuotojas žino kaip sistema veikia, todėl gali maksimaliai išnaudoti ją. Uždarose - galima tik pasinaudoti tuo, ką numatė kiti ir dokumentavo.
    c) punkto gale aiškiai parašyta, kad tai padaryti galima ir visiškai lengvai. Aišku, čia neina kalba apie atvejus, jei duomenų bazę projektavo sekretorė ir sukišo dešimt esybių į vieną lentelę.
    d) deja taip, nemažai tikrai gerų programuotojų (dirbančių su atviru kodu) yra dideli vaikai, bet būtent todėl jie ir sugeba programuoti taip, kaip nesugeba kiti. Ruby ir Rails niekada nesitaikė į neva tai super gerus standartus, kurie buvo dirbtinai stumiami didžiųjų kompanijų, bet iš tiesų ne sprendė problemas, o tik daugiau jų pridarė. O apie WS* hell Rails ir Ruby kontekste gali rasti daug informacijos, kuri tiesiai šviesiai pasako, kad nenaudokit šitų griozdų, o naudokit lengvus daiktus, tokius kaip REST.
    e) užteko šito “…Tai viena iš pagrindinių priežasčių, kodėl PHP vis dar yra gerokai populiaresnis nei ASP.NET Lietuvoje…”. Mes puikiai suprantam, kad PHP populiaresnis visai ne dėl hostingo. Aš jau nekalbu ką galim išskaityti tarp eilučių poste(ir ne vien šitame) ir komentaruose.

    Iš esmės mes galime daug fleiminti, bet mūsų požiūriai iš esmės skirtingi (tai nieko blogo), tad neverta tikėtis kad iš diskusijos kas nors gero gims. Na ir pabaigai patarimas straipsniuose mažinti propagandą (vien pavadinimas koks geras propagandos egzempliorius), ir viskas bus ok.

  22. Giedrius

    kad nevystyti fleimo, atsakysiu tik i pirma punkta:
    a) straipsinis yra apie tai, kad vietoj to, kad naudoti ASP.NET, galima naudoti Windows applikacija HTML generavimui ir talpinimui i web serveri, kuris gali netureti nei ASP.NET nei PHP nei RoR. Cia ir yra esminis skirtumas nuo PHP ir RoR - su .NET galima daryti ir desktopines aplikacijas. Tolesne komentaro dalis arba vel nepagauna straipsnio esmes, arba neisiskaite i komentarus.

  23. Saulius

    Kažkoks siaubo filmas. RoR nėra “enterprise” platforma, tai tik karkasas web aplikacijoms kurti, lygiai taip pat, kaip ir ASP.NET. Pabandyk tu su ASP.NET sukurti desktopinę programą. Jei reikia desktopinės programos, tai paimi Ruby, mėgstamos grafinės bibliotekos bindingus(GTK, QT…) Ruby’ui, ir programuoji. Kokios čia problemos. Galėsi suprogramuoti tą patį funkcionalumą teikiančią programą, tik nereikės pirkti brangaus licenzijuoto softo. Aš sutinku, kad šitas kodo generavimas gali kažkokioje situacijoje pasirodyti tinkamas(nelabai įsivaizduoju kokioje ir, mano nuomone, tai bereikalingas “tiesiai per aplinkui” kelias tikslui pasiekti), bet tai nėra nei pigu, nei laiką taupantis sprendimas. O prie ko čia tada .NET iš vis neaišku, XSLT nėra ms nuosavybė, gali XSLT naudotis ir Ruby’je.

  24. .net

    Tegyvuoja .NET !

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.