<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Objekt-orienteerituse lõks SharePointis</title>
	<atom:link href="http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=objekt-orienteerituse-loks-sharepointis</link>
	<description>Tarkvarast, tarkvaraprojektidest, tarkvaratööstusest ja muust seonduvast</description>
	<lastBuildDate>Wed, 08 Feb 2012 20:04:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tambet</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/comment-page-1/#comment-2537</link>
		<dc:creator>Tambet</dc:creator>
		<pubDate>Sun, 31 Aug 2008 20:38:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=163#comment-2537</guid>
		<description>Tänan Gunnar, rõõm kuulda et mu programmeerijad on õigel teel :).</description>
		<content:encoded><![CDATA[<p>Tänan Gunnar, rõõm kuulda et mu programmeerijad on õigel teel <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gunnar</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/comment-page-1/#comment-2536</link>
		<dc:creator>Gunnar</dc:creator>
		<pubDate>Sun, 31 Aug 2008 15:36:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=163#comment-2536</guid>
		<description>LINQ oleks hea plaan, kuid hetkel seda vastu list.Items kollektsiooni kasutada oleks ilmselge overkill igale serverile :)</description>
		<content:encoded><![CDATA[<p>LINQ oleks hea plaan, kuid hetkel seda vastu list.Items kollektsiooni kasutada oleks ilmselge overkill igale serverile <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gunnar</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/comment-page-1/#comment-2535</link>
		<dc:creator>Gunnar</dc:creator>
		<pubDate>Sun, 31 Aug 2008 15:35:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=163#comment-2535</guid>
		<description>Avalike saitide korral kasutatakse ka mappereid väga palju. Keerukaid kohti, kus mapperid hätta jäävad, on suhteliselt vähe. Mapperid pole hõbekuulid või iga probleemi ravimid - iga eriolukord nõuab omi vahendeid ja sellega peab arenduses arvestama. Raportite koostamisel on kõige mõttekam kasutada ADO.NET objekte, mitte luua üüratuks kasvavat nimeruumi, kuhu paigutada kõikvõimalike raportite jaoks spetsiaalsed DTO-d.

Ma olen näinud ära mõned suuremad süsteemid, kus kogu äriloogika oli protseduuridesse viidud. Algul tundus kõik koodi tasemel tore - kutsume protseduure koos parameetritega ja need siis tegutsevad ja teevad musta töö ära. Peale esimest kuud aega oli mu kopp-level suht kõrge. Koodihunnik, mis protseduuride vahet andmeid liigutas, kasvas koguaeg, protseduure tekkis ja tekkis ja tekkis ning nende haldamisele kuluv aeg kasvas ka seejuures. Samas selliseid elementaarsed asjad nagu lazy loading, per-request cache, per-application cache ja objektide kasutamine jäid ära.

Kõige rajumaks läks lugu siis, kui protseduurid hakkasid ka keerukamaks muutuma. Osa äriloogikat toimis nii või teisiti lähtekoodi tasemel. Ülejäänu istus andmebaasis. See tähendas kokku seda, et kui kuskil tekkis viga, siis debugimisele kuluv ajakulu oli suurem kui tavaliselt - tuli ju vigu taga ajada nii koodi kui ka andmebaasi tasemel. 

Kõige loetavam ja seega paremini hallatav kood on see, mis kasutab äriobjekte. Sellisest koodist on võimalik lugeda täpselt välja, mis juhtub ja miks juhtub ja kuidas juhtub. ADO.NET objektid, ADODB objektid jne seda võimalust ei paku. Kui tegemist on suurema süsteemiga, mida keegi mõnikord edasi tahab arendada ja hallata kavatseb, siis on OO kõige kindlam minek ja mapper toob endaga lihtsalt kaasa võimsa objektide haldamise runtime&#039;i, mille loomine igas arenduses oleks suhteliselt mõttetu tegevus.</description>
		<content:encoded><![CDATA[<p>Avalike saitide korral kasutatakse ka mappereid väga palju. Keerukaid kohti, kus mapperid hätta jäävad, on suhteliselt vähe. Mapperid pole hõbekuulid või iga probleemi ravimid &#8211; iga eriolukord nõuab omi vahendeid ja sellega peab arenduses arvestama. Raportite koostamisel on kõige mõttekam kasutada ADO.NET objekte, mitte luua üüratuks kasvavat nimeruumi, kuhu paigutada kõikvõimalike raportite jaoks spetsiaalsed DTO-d.</p>
<p>Ma olen näinud ära mõned suuremad süsteemid, kus kogu äriloogika oli protseduuridesse viidud. Algul tundus kõik koodi tasemel tore &#8211; kutsume protseduure koos parameetritega ja need siis tegutsevad ja teevad musta töö ära. Peale esimest kuud aega oli mu kopp-level suht kõrge. Koodihunnik, mis protseduuride vahet andmeid liigutas, kasvas koguaeg, protseduure tekkis ja tekkis ja tekkis ning nende haldamisele kuluv aeg kasvas ka seejuures. Samas selliseid elementaarsed asjad nagu lazy loading, per-request cache, per-application cache ja objektide kasutamine jäid ära.</p>
<p>Kõige rajumaks läks lugu siis, kui protseduurid hakkasid ka keerukamaks muutuma. Osa äriloogikat toimis nii või teisiti lähtekoodi tasemel. Ülejäänu istus andmebaasis. See tähendas kokku seda, et kui kuskil tekkis viga, siis debugimisele kuluv ajakulu oli suurem kui tavaliselt &#8211; tuli ju vigu taga ajada nii koodi kui ka andmebaasi tasemel. </p>
<p>Kõige loetavam ja seega paremini hallatav kood on see, mis kasutab äriobjekte. Sellisest koodist on võimalik lugeda täpselt välja, mis juhtub ja miks juhtub ja kuidas juhtub. ADO.NET objektid, ADODB objektid jne seda võimalust ei paku. Kui tegemist on suurema süsteemiga, mida keegi mõnikord edasi tahab arendada ja hallata kavatseb, siis on OO kõige kindlam minek ja mapper toob endaga lihtsalt kaasa võimsa objektide haldamise runtime&#8217;i, mille loomine igas arenduses oleks suhteliselt mõttetu tegevus.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tambet</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/comment-page-1/#comment-2534</link>
		<dc:creator>Tambet</dc:creator>
		<pubDate>Sat, 30 Aug 2008 23:06:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=163#comment-2534</guid>
		<description>Mul on just üks projekt algamas, kus programmeerijad tahavad äriloogika realiseerida .NET-s, mitte andmebaasis. Object-relational mapping tehtaks NHibernate&#039;ga. Mina olen vana kooli mees ja siiani üritanud keerulised päringud hoida viewdes ja äriloogikat andmebaasi protseduurides. 

Samas ma näen probleeme andmebaasiprotseduuridega. Tegemist on ikkagi protseduraalse maailmaga ja koodi taaskasutus on piiratud. Klasse ja pärimist pole ning seetõttu ei saa edevamaid programmeerimisvõtteid kasutada. Loodetavasti on objekt-orienteeritud kood ka loetavam kui SQL.

Arvatavasti lasen programmeerijatel teha mis tahavad. Kui nad nii on harjunud tegema, siis ilmselt teevad nad seda kõige efektiivsemalt. Õnneks on tegemist intraneti saidiga, kasutajaid kuskil paarikümne ringis, nii et performance pole oletatavasti probleemiks. Mingi avaliku veebisaidi puhul kaaluksin viis korda üle.</description>
		<content:encoded><![CDATA[<p>Mul on just üks projekt algamas, kus programmeerijad tahavad äriloogika realiseerida .NET-s, mitte andmebaasis. Object-relational mapping tehtaks NHibernate&#8217;ga. Mina olen vana kooli mees ja siiani üritanud keerulised päringud hoida viewdes ja äriloogikat andmebaasi protseduurides. </p>
<p>Samas ma näen probleeme andmebaasiprotseduuridega. Tegemist on ikkagi protseduraalse maailmaga ja koodi taaskasutus on piiratud. Klasse ja pärimist pole ning seetõttu ei saa edevamaid programmeerimisvõtteid kasutada. Loodetavasti on objekt-orienteeritud kood ka loetavam kui SQL.</p>
<p>Arvatavasti lasen programmeerijatel teha mis tahavad. Kui nad nii on harjunud tegema, siis ilmselt teevad nad seda kõige efektiivsemalt. Õnneks on tegemist intraneti saidiga, kasutajaid kuskil paarikümne ringis, nii et performance pole oletatavasti probleemiks. Mingi avaliku veebisaidi puhul kaaluksin viis korda üle.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Targo</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/comment-page-1/#comment-2533</link>
		<dc:creator>Targo</dc:creator>
		<pubDate>Sat, 30 Aug 2008 21:16:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=163#comment-2533</guid>
		<description>Ma ise loodan, et CAMList ei saa mitte midagi ehk ta asendatakse LINQ vms asjaga. SharePoint 2009 liigub selles suunas, aga CAML jääb tagasiühilduvuse nimel ilmselt veel   mõnekski ajaks alles.</description>
		<content:encoded><![CDATA[<p>Ma ise loodan, et CAMList ei saa mitte midagi ehk ta asendatakse LINQ vms asjaga. SharePoint 2009 liigub selles suunas, aga CAML jääb tagasiühilduvuse nimel ilmselt veel   mõnekski ajaks alles.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gunnar</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/08/30/objekt-orienteerituse-loks-sharepointis/comment-page-1/#comment-2532</link>
		<dc:creator>Gunnar</dc:creator>
		<pubDate>Sat, 30 Aug 2008 18:42:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=163#comment-2532</guid>
		<description>Lihtsamate webpartide väljundi saab vabalt stringina ka serialiseerida. Seda siis, kui väljund tõesti uuesti konstrueerimist ei taha. 

Mis puutub baasi kasutamist, siis selles osas vaevalt, et midagi enne paremaks läheb, kui CAML-ist saab päringute keel. Hetkel on see pigem nagu tore ja töötav demo kui tõsiselt võetav päringukeel. Reaalelulistele vajadustele vastavaid päringuid ei lase see tihtipeale teha ja nii arendajad kirjutavadki vastu SPListItemCollectionit for tsükleid ning teevad sel teel koodi tasemel päringu. Mina olen sellistes kohtades alati öelnud kliendile, et sellist asja ei saa teha. Kuigi täna on vastavas listis võib-olla käputäis ridu, ei tähenda see seda, et seal homme suurusjärgu või paari jagu enam neid poleks.</description>
		<content:encoded><![CDATA[<p>Lihtsamate webpartide väljundi saab vabalt stringina ka serialiseerida. Seda siis, kui väljund tõesti uuesti konstrueerimist ei taha. </p>
<p>Mis puutub baasi kasutamist, siis selles osas vaevalt, et midagi enne paremaks läheb, kui CAML-ist saab päringute keel. Hetkel on see pigem nagu tore ja töötav demo kui tõsiselt võetav päringukeel. Reaalelulistele vajadustele vastavaid päringuid ei lase see tihtipeale teha ja nii arendajad kirjutavadki vastu SPListItemCollectionit for tsükleid ning teevad sel teel koodi tasemel päringu. Mina olen sellistes kohtades alati öelnud kliendile, et sellist asja ei saa teha. Kuigi täna on vastavas listis võib-olla käputäis ridu, ei tähenda see seda, et seal homme suurusjärgu või paari jagu enam neid poleks.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

