<?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: HowTo: 3-Tier / 3-Schichten Architektur</title>
	<atom:link href="http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/feed/" rel="self" type="application/rss+xml" />
	<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/</link>
	<description>Webdevelopment on the Microsoft Web Stack with ASP.NET, HTML &#38; Javascript</description>
	<lastBuildDate>Wed, 16 May 2012 14:34:33 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: Wachen! Wachen! Developer! Developer! &#171; Frackmente</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-71559</link>
		<dc:creator>Wachen! Wachen! Developer! Developer! &#171; Frackmente</dc:creator>
		<pubDate>Sun, 06 Nov 2011 21:02:34 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-71559</guid>
		<description>[...] 3 Schichten Archi&#160;tektur Gefällt mir:LikeSei der Erste, dem dieser post gefällt. [...]</description>
		<content:encoded><![CDATA[<p>[...] 3 Schichten Archi&#160;tektur Gefällt mir:LikeSei der Erste, dem dieser post gefällt. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keep it simple! YAGNI! &#124; Code-Inside Blog</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-71497</link>
		<dc:creator>Keep it simple! YAGNI! &#124; Code-Inside Blog</dc:creator>
		<pubDate>Fri, 04 Nov 2011 20:59:20 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-71497</guid>
		<description>[...] auf dem Blog ist der Artikel HowTo: 3-Tier / 3-Schichten Architektur. Allerdings hatte ich schon einige Zeit Zweifel (Ist eine 3 Schichten Architektur mit eigener DAL [...]</description>
		<content:encoded><![CDATA[<p>[...] auf dem Blog ist der Artikel HowTo: 3-Tier / 3-Schichten Architektur. Allerdings hatte ich schon einige Zeit Zweifel (Ist eine 3 Schichten Architektur mit eigener DAL [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roberto's Blog : DI / IoC Container LightCore Teil 2: Registrierung &#252;ber Xml Modul</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-36513</link>
		<dc:creator>Roberto's Blog : DI / IoC Container LightCore Teil 2: Registrierung &#252;ber Xml Modul</dc:creator>
		<pubDate>Sun, 21 Feb 2010 18:11:01 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-36513</guid>
		<description>[...] Modul erklärtWas eine drei Schichten Architektur (Tier 3 layer) ist, erklärt Robert Mühsig in seinem Post.Das folgende Beispiel wird eine Solution mit mehreren Projekten beinhalten, die eine Anwendung mit [...]</description>
		<content:encoded><![CDATA[<p>[...] Modul erklärtWas eine drei Schichten Architektur (Tier 3 layer) ist, erklärt Robert Mühsig in seinem Post.Das folgende Beispiel wird eine Solution mit mehreren Projekten beinhalten, die eine Anwendung mit [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Kiefer</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-32699</link>
		<dc:creator>Christian Kiefer</dc:creator>
		<pubDate>Fri, 13 Nov 2009 09:36:48 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-32699</guid>
		<description>Danke für Deinen Artikel und Video,

Als Einstieg in das Thema 3 Schichten-Architektur ist dies ideal!</description>
		<content:encoded><![CDATA[<p>Danke für Deinen Artikel und Video,</p>
<p>Als Einstieg in das Thema 3 Schichten-Architektur ist dies ideal!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pascal</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-29826</link>
		<dc:creator>Pascal</dc:creator>
		<pubDate>Fri, 31 Jul 2009 10:47:17 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-29826</guid>
		<description>Danke für diesen Artikel und das Video. Einfach super. Hat mich sehr weitergebracht.</description>
		<content:encoded><![CDATA[<p>Danke für diesen Artikel und das Video. Einfach super. Hat mich sehr weitergebracht.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-26781</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Thu, 28 May 2009 10:38:41 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-26781</guid>
		<description>Hi,
bin eben auf die Seite gestoßen. So einen Artikel mit Beispiel habe ich schon lange gesucht. Toll. Mehr bitte ...;)

Viele Grüße
Jan</description>
		<content:encoded><![CDATA[<p>Hi,<br />
bin eben auf die Seite gestoßen. So einen Artikel mit Beispiel habe ich schon lange gesucht. Toll. Mehr bitte &#8230;;)</p>
<p>Viele Grüße<br />
Jan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Mühsig</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-25590</link>
		<dc:creator>Robert Mühsig</dc:creator>
		<pubDate>Fri, 01 May 2009 18:48:12 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-25590</guid>
		<description>Die Filterung sollte prinzipell im Data Layer geschehen, da es dort von der Performance her am besten passt. Dazu kannst du dir das Video von Rob Conery ansehen:
http://blog.wekeroad.com/mvc-storefront/mvcstore-part-4/
(oder auch Part 5 oder 3)

So machen wir es in einem Projekt:
Die UI (bei uns ein ASP.NET MVC Controller) sammelt die &quot;QueryParameter&quot; und gibt diese weiter zum Service Layer, dieser ruft dann das Repository + die Filtertechnik die Rob Conery aufzeigt auf und gibt es dann entsprechend zurück.</description>
		<content:encoded><![CDATA[<p>Die Filterung sollte prinzipell im Data Layer geschehen, da es dort von der Performance her am besten passt. Dazu kannst du dir das Video von Rob Conery ansehen:<br />
<a href="http://blog.wekeroad.com/mvc-storefront/mvcstore-part-4/" rel="nofollow">http://blog.wekeroad.com/mvc-storefront/mvcstore-part-4/</a><br />
(oder auch Part 5 oder 3)</p>
<p>So machen wir es in einem Projekt:<br />
Die UI (bei uns ein ASP.NET MVC Controller) sammelt die &quot;QueryParameter&quot; und gibt diese weiter zum Service Layer, dieser ruft dann das Repository + die Filtertechnik die Rob Conery aufzeigt auf und gibt es dann entsprechend zurück.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sniff</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-25576</link>
		<dc:creator>sniff</dc:creator>
		<pubDate>Fri, 01 May 2009 12:23:38 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-25576</guid>
		<description>Danke für den Artikel.

Ich habe noch eine Frage angenommen ich möchte eine Suchfunktion, also eine Art Filter. In welcher Schicht passiert das Filtern der Daten? Sql bietet diese Funktionalität ja, kann ich alle Funktionen die Sql bietet in die Daten Schicht packen oder sollte man immer alle Daten holen und die Business Schicht dünnt die Liste dann aus?
Also z.B sowas GetUserByName(&quot;H&quot;); gibt alle User die mit H anfangen in einer Liste zurück. Ansonsten wäre in der Datenschicht ja immer nur alle User holen, User löschen User einfügen, User ändern? Es wäre ja viel effizienter garnicht erst alle User zu holen und zu mappen.Â </description>
		<content:encoded><![CDATA[<p>Danke für den Artikel.</p>
<p>Ich habe noch eine Frage angenommen ich möchte eine Suchfunktion, also eine Art Filter. In welcher Schicht passiert das Filtern der Daten? Sql bietet diese Funktionalität ja, kann ich alle Funktionen die Sql bietet in die Daten Schicht packen oder sollte man immer alle Daten holen und die Business Schicht dünnt die Liste dann aus?<br />
Also z.B sowas GetUserByName(&quot;H&quot;); gibt alle User die mit H anfangen in einer Liste zurück. Ansonsten wäre in der Datenschicht ja immer nur alle User holen, User löschen User einfügen, User ändern? Es wäre ja viel effizienter garnicht erst alle User zu holen und zu mappen.Â </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: welt-held.de &#187; Blog Archive &#187; 3 Schichten Modell</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-23274</link>
		<dc:creator>welt-held.de &#187; Blog Archive &#187; 3 Schichten Modell</dc:creator>
		<pubDate>Mon, 23 Mar 2009 09:46:41 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-23274</guid>
		<description>[...] ein C# Projekt schön nach dem 3-Schichten-Modell aufzubauen. Ich orientiere mich dazu an einem HowTo von Robert Mühsig (netter Blog [...]</description>
		<content:encoded><![CDATA[<p>[...] ein C# Projekt schön nach dem 3-Schichten-Modell aufzubauen. Ich orientiere mich dazu an einem HowTo von Robert Mühsig (netter Blog [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: awaiK</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-21818</link>
		<dc:creator>awaiK</dc:creator>
		<pubDate>Thu, 05 Mar 2009 18:31:35 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-21818</guid>
		<description>Hi, mir ist aufgefallen das bei diesem Beispiel von dem Presentation Layer (ThreeTier.ConsoleApp) eine Referenz zum Data Access Layer (ThreeTier.Data) exzitiert. Das ist nach meinem Verständnis nicht richtig, da nur von der Business Schicht eine Referenz auf die Datenzugriffsschicht zeigen sollte.</description>
		<content:encoded><![CDATA[<p>Hi, mir ist aufgefallen das bei diesem Beispiel von dem Presentation Layer (ThreeTier.ConsoleApp) eine Referenz zum Data Access Layer (ThreeTier.Data) exzitiert. Das ist nach meinem Verständnis nicht richtig, da nur von der Business Schicht eine Referenz auf die Datenzugriffsschicht zeigen sollte.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Midiman</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-21240</link>
		<dc:creator>Midiman</dc:creator>
		<pubDate>Fri, 27 Feb 2009 21:14:10 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-21240</guid>
		<description>vielen Dank!
Ich suche jetzt ein paar Hinweise, wie:
1.) Users aus einer Datenbank gelesen wird. Hierzu möchte ich auf einer Klasse vom EF aufsetzen (Linq2SQL-Klasse, z.B. Customers)
2.) Die Schichten erweitert werden müssen, damit Änderungen in Frontend oder BL zur Entity weitergereicht werden.</description>
		<content:encoded><![CDATA[<p>vielen Dank!<br />
Ich suche jetzt ein paar Hinweise, wie:<br />
1.) Users aus einer Datenbank gelesen wird. Hierzu möchte ich auf einer Klasse vom EF aufsetzen (Linq2SQL-Klasse, z.B. Customers)<br />
2.) Die Schichten erweitert werden müssen, damit Änderungen in Frontend oder BL zur Entity weitergereicht werden.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mr. Unknow</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-20914</link>
		<dc:creator>Mr. Unknow</dc:creator>
		<pubDate>Mon, 23 Feb 2009 14:46:58 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-20914</guid>
		<description>Ein wirklicher toller Artikel, überhaupt scheint das ne Spitzen-Seite hier zu sein. Vielen Dank!</description>
		<content:encoded><![CDATA[<p>Ein wirklicher toller Artikel, überhaupt scheint das ne Spitzen-Seite hier zu sein. Vielen Dank!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HowToCode: Wie bildet man einen Workflow im Code am besten ab? &#124; Code-Inside Blog</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-20187</link>
		<dc:creator>HowToCode: Wie bildet man einen Workflow im Code am besten ab? &#124; Code-Inside Blog</dc:creator>
		<pubDate>Thu, 12 Feb 2009 11:56:18 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-20187</guid>
		<description>[...] Unser Szenario ist wie beim letzten Mal eine Webanwendung, welche eine 3-Schichten Architektur implementiert. Ein User soll sich anmelden k&#246;nnen, dabei wird gepr&#252;ft, ob er [...]</description>
		<content:encoded><![CDATA[<p>[...] Unser Szenario ist wie beim letzten Mal eine Webanwendung, welche eine 3-Schichten Architektur implementiert. Ein User soll sich anmelden k&#246;nnen, dabei wird gepr&#252;ft, ob er [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: awaiK</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-20041</link>
		<dc:creator>awaiK</dc:creator>
		<pubDate>Sun, 08 Feb 2009 19:00:50 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-20041</guid>
		<description>Hi, 
danke für dieses Beispiel.
Ich beschäftige mich momentan mit Architekturfragen, wie 3-Schichten Modell usw. Leider habe ich bis jetzt keine Literatur darüber gefunden, die mir konkrete Anwendungsbeispiele liefert, nicht nur abstraktes gerede nach dem Motto: &quot;3-Schichten Modell ist gut, weil blablabla&quot;.

Kennt jemand weitere Quellen zu diesem Thema? Würde mich über eine Antwort freuen.</description>
		<content:encoded><![CDATA[<p>Hi,<br />
danke für dieses Beispiel.<br />
Ich beschäftige mich momentan mit Architekturfragen, wie 3-Schichten Modell usw. Leider habe ich bis jetzt keine Literatur darüber gefunden, die mir konkrete Anwendungsbeispiele liefert, nicht nur abstraktes gerede nach dem Motto: &quot;3-Schichten Modell ist gut, weil blablabla&quot;.</p>
<p>Kennt jemand weitere Quellen zu diesem Thema? Würde mich über eine Antwort freuen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HowToCode: ErrorCodes, Exceptions, den User informieren, wenn etwas schief l&#228;uft - wie gehts? &#124; Code-Inside Blog</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-19929</link>
		<dc:creator>HowToCode: ErrorCodes, Exceptions, den User informieren, wenn etwas schief l&#228;uft - wie gehts? &#124; Code-Inside Blog</dc:creator>
		<pubDate>Fri, 06 Feb 2009 00:46:37 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-19929</guid>
		<description>[...] ich sp&#228;ter auch nochmal genauer beschreiben - spielt aber jetzt keine Rolle) und nutzen eine klassische 3-Schichten Architektur mitsamt ASP.NET MVC als [...]</description>
		<content:encoded><![CDATA[<p>[...] ich sp&#228;ter auch nochmal genauer beschreiben &#8211; spielt aber jetzt keine Rolle) und nutzen eine klassische 3-Schichten Architektur mitsamt ASP.NET MVC als [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Mühsig</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-16343</link>
		<dc:creator>Robert Mühsig</dc:creator>
		<pubDate>Fri, 28 Nov 2008 09:22:59 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-16343</guid>
		<description>Jede Schicht redet nur mit der drunter liegenden. Ich persönlich mag die DataSets nicht so - besser wäre es wenn die BAL irgendwelche Business Objekte weiterreicht (z.B. gibt &quot;GetUsers()&quot; eine List&lt;User&gt; zurück)
Das DataGridView sollte man auch an solche Objektesourcen hängen können - das ist meiner Meinung nach eine bessere Variante als DataSets hin und her zu schieben.

Also:
DAL ---&gt; DataSets/oder bereits hier schon eigene Business Objekte --&gt; BAL ---&gt; Business Objekte ---&gt; UI
Â Â </description>
		<content:encoded><![CDATA[<p>Jede Schicht redet nur mit der drunter liegenden. Ich persönlich mag die DataSets nicht so &#8211; besser wäre es wenn die BAL irgendwelche Business Objekte weiterreicht (z.B. gibt &quot;GetUsers()&quot; eine List&lt;User&gt; zurück)<br />
Das DataGridView sollte man auch an solche Objektesourcen hängen können &#8211; das ist meiner Meinung nach eine bessere Variante als DataSets hin und her zu schieben.</p>
<p>Also:<br />
DAL &#8212;&gt; DataSets/oder bereits hier schon eigene Business Objekte &#8211;&gt; BAL &#8212;&gt; Business Objekte &#8212;&gt; UI<br />
Â Â </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jogi</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-16336</link>
		<dc:creator>jogi</dc:creator>
		<pubDate>Fri, 28 Nov 2008 07:49:16 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-16336</guid>
		<description>danke für den tollen Artikel.
ich versuche mich gerade in das 3-schichten-modell einzuarbeiten.
Dabei steh ich vor folgendem Problem:
Im UI ist ein Datagridview, das per Dataset befüllt werden soll.
Welche Schicht liefert nun das Dataset?
Kommt vom DAL schon ein Dataset an die BAL oder liefert der DAL einen DataTable und die BAL liefert ein Dataset an das UI.Oder macht man das völlig anderst ?</description>
		<content:encoded><![CDATA[<p>danke für den tollen Artikel.<br />
ich versuche mich gerade in das 3-schichten-modell einzuarbeiten.<br />
Dabei steh ich vor folgendem Problem:<br />
Im UI ist ein Datagridview, das per Dataset befüllt werden soll.<br />
Welche Schicht liefert nun das Dataset?<br />
Kommt vom DAL schon ein Dataset an die BAL oder liefert der DAL einen DataTable und die BAL liefert ein Dataset an das UI.Oder macht man das völlig anderst ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Mühsig</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-15629</link>
		<dc:creator>Robert Mühsig</dc:creator>
		<pubDate>Sun, 16 Nov 2008 20:17:21 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-15629</guid>
		<description>Ich hatte bei dem Beispiel mein &quot;User Entry&quot; (also das Model der Applikation) mit in den Data-Layer implementiert, was allerdings wie Thomas schon richtig sagte, nicht ganz ok ist.
Wenn man einen O/R Mapper einsetzt (und keine POCOs), dann hat das natürlich Vorteile, aber man ist an den jeweiligen O/R Mapper meistens gebunden. 
Wenn man sich viel Mühe machen möchte: Die generierten Klassen des O/R Mappers nochmal über ein eigenes Mapping auf das eigens definierte Model mappen. Das macht etwas mehr arbeit, aber man kann von Linq2Sql zu ADO.NET EF oder NHibernate etc. ändern, ohne das es das Model interessiert.
Dazu empfehle ich Rob Conerys &quot;Storefront&quot; Videos. So mache ich es selber momentan auch in einer Applikation.</description>
		<content:encoded><![CDATA[<p>Ich hatte bei dem Beispiel mein &quot;User Entry&quot; (also das Model der Applikation) mit in den Data-Layer implementiert, was allerdings wie Thomas schon richtig sagte, nicht ganz ok ist.<br />
Wenn man einen O/R Mapper einsetzt (und keine POCOs), dann hat das natürlich Vorteile, aber man ist an den jeweiligen O/R Mapper meistens gebunden.<br />
Wenn man sich viel Mühe machen möchte: Die generierten Klassen des O/R Mappers nochmal über ein eigenes Mapping auf das eigens definierte Model mappen. Das macht etwas mehr arbeit, aber man kann von Linq2Sql zu ADO.NET EF oder NHibernate etc. ändern, ohne das es das Model interessiert.<br />
Dazu empfehle ich Rob Conerys &quot;Storefront&quot; Videos. So mache ich es selber momentan auch in einer Applikation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Savage</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-15625</link>
		<dc:creator>Savage</dc:creator>
		<pubDate>Sun, 16 Nov 2008 19:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-15625</guid>
		<description>Danke für deine Anregung, werde das so umsetzen. Aber mit einem komme ich noch nicht klar. Die ConsoleApp kennt den Data-Layer (zumindest das User Entity) und das sollte nach meinem Verständnis nach nicht sein, oder täusche ich mich da?
Der Vorschlag von Thomas einen &quot;vertikalen&quot; Layer mit Entities einzuziehen klingt ja gut, aber wie er selbst schon schreibt, kommt es zu Problemen, wenn man später einen OR-Mapper einsetzen will. Wie könnte man die &quot;Daten-Objekte&quot; besser verwalten?
Mein Problem ist, dass ich eine größere Web-App schreiben will und von Anfang an gleich eine saubere Architektur haben will und ich mich einfach nicht entscheiden kann.</description>
		<content:encoded><![CDATA[<p>Danke für deine Anregung, werde das so umsetzen. Aber mit einem komme ich noch nicht klar. Die ConsoleApp kennt den Data-Layer (zumindest das User Entity) und das sollte nach meinem Verständnis nach nicht sein, oder täusche ich mich da?<br />
Der Vorschlag von Thomas einen &quot;vertikalen&quot; Layer mit Entities einzuziehen klingt ja gut, aber wie er selbst schon schreibt, kommt es zu Problemen, wenn man später einen OR-Mapper einsetzen will. Wie könnte man die &quot;Daten-Objekte&quot; besser verwalten?<br />
Mein Problem ist, dass ich eine größere Web-App schreiben will und von Anfang an gleich eine saubere Architektur haben will und ich mich einfach nicht entscheiden kann.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Mühsig</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-15017</link>
		<dc:creator>Robert Mühsig</dc:creator>
		<pubDate>Sat, 08 Nov 2008 13:36:22 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-15017</guid>
		<description>Das Membership-System so wie es ist, passt nicht ganz in die 3-Schichten Architektur rein. Man hat z.B. Probleme in dem Business Layer auf Userdaten zuzugreifen oder Profilinformationen abzugreifen wenn man das Profilsystem von ASP.NET nutzt.
Ich hatte vor einer ganzen Weile dazu mal meine Gedanken gebloggt: http://code-inside.de/blog/2008/06/23/howto-membership-in-klassenbibliotheken-dlls/
Wichtig ist hierbei allerdings der Hinweis in den Kommentaren. 
Ich würde so vorgehen (weil ich das Membership System nicht wirklich mag und das mir nur Probleme gemacht hat ;) ) : Bau ein UserRepository / UserService also ein komplett eigenes Usersystem (ich werde in Zukunft auch mein System mal zur Verfügung stellen). 
Dieses Usersystem kannst du in einer Webapplikation oder Desktopapplikation einbinden wie du lustig bist. In einer Webapplikation würde ich allerdings einen eigenen Membership Provider schreiben, damit man die Standardcontrols und eingebauten Funktionalitäten trotzdem noch nutzen kann. Dieser eigene Membership Provider ist nur ein Adapter zwischen ASP.NET und deinem Usersystem. 
So ist man später sehr flexibel und kann trotzdem im ASP.NET Umfeld das gewohnte verwenden.</description>
		<content:encoded><![CDATA[<p>Das Membership-System so wie es ist, passt nicht ganz in die 3-Schichten Architektur rein. Man hat z.B. Probleme in dem Business Layer auf Userdaten zuzugreifen oder Profilinformationen abzugreifen wenn man das Profilsystem von ASP.NET nutzt.<br />
Ich hatte vor einer ganzen Weile dazu mal meine Gedanken gebloggt: <a href="http://code-inside.de/blog/2008/06/23/howto-membership-in-klassenbibliotheken-dlls/" rel="nofollow">http://code-inside.de/blog/2008/06/23/howto-membership-in-klassenbibliotheken-dlls/</a><br />
Wichtig ist hierbei allerdings der Hinweis in den Kommentaren.<br />
Ich würde so vorgehen (weil ich das Membership System nicht wirklich mag und das mir nur Probleme gemacht hat <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) : Bau ein UserRepository / UserService also ein komplett eigenes Usersystem (ich werde in Zukunft auch mein System mal zur Verfügung stellen).<br />
Dieses Usersystem kannst du in einer Webapplikation oder Desktopapplikation einbinden wie du lustig bist. In einer Webapplikation würde ich allerdings einen eigenen Membership Provider schreiben, damit man die Standardcontrols und eingebauten Funktionalitäten trotzdem noch nutzen kann. Dieser eigene Membership Provider ist nur ein Adapter zwischen ASP.NET und deinem Usersystem.<br />
So ist man später sehr flexibel und kann trotzdem im ASP.NET Umfeld das gewohnte verwenden.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Savage</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-14925</link>
		<dc:creator>Savage</dc:creator>
		<pubDate>Fri, 07 Nov 2008 14:06:52 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-14925</guid>
		<description>&lt;!--[if gte mso 9]&gt;     Normal   0   21         false   false   false                             MicrosoftInternetExplorer4   &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;     &lt;![endif]--&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:&quot;&quot;; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;;} @page Section1 	{size:595.3pt 841.9pt; 	margin:70.85pt 70.85pt 2.0cm 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;!--[if gte mso 10]&gt;   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Normale Tabelle&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;}  &lt;![endif]--&gt;  Danke für dein Beispiel. - Angenommen man würde die Consolenapplikation mit einer Websiteapplikation austauschen. In welchem Layer würdest du das Sessionhandling/Membership etc. platzieren? Die gängigen Methoden wie Forms-Authentification wären dann nämlich im Presentationlayer?   Würde ich bei einer Useraktion (klick auf Button) abfragen wollen, ob sich ein User z.B. in einer bestimmten Role befindet, dann würde das auch in der Web-Applikation passieren, das sollte jedoch im Businesslayer sein, oder?</description>
		<content:encoded><![CDATA[<p><!--[if gte mso 9]&gt;     Normal   0   21         false   false   false                             MicrosoftInternetExplorer4   &lt;![endif]--><!--[if gte mso 9]&gt;     &lt;![endif]--> <!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:595.3pt 841.9pt; 	margin:70.85pt 70.85pt 2.0cm 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> <!--[if gte mso 10]&gt;   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Normale Tabelle"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;}  &lt;![endif]-->  Danke für dein Beispiel. &#8211; Angenommen man würde die Consolenapplikation mit einer Websiteapplikation austauschen. In welchem Layer würdest du das Sessionhandling/Membership etc. platzieren? Die gängigen Methoden wie Forms-Authentification wären dann nämlich im Presentationlayer?   Würde ich bei einer Useraktion (klick auf Button) abfragen wollen, ob sich ein User z.B. in einer bestimmten Role befindet, dann würde das auch in der Web-Applikation passieren, das sollte jedoch im Businesslayer sein, oder?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Mühsig</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-13640</link>
		<dc:creator>Robert Mühsig</dc:creator>
		<pubDate>Thu, 23 Oct 2008 08:40:47 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-13640</guid>
		<description>Ein direktes Buch kann ich dir dazu nicht empfehlen, aber für die Zeitsache: Schau dir mal mein YouTube Video dazu an - kaum 10 Minuten. Wichtig bei einer 3 Schichten Architektur ist einfach nur dass man sich klar macht, was welche Schicht macht. 
Wenn man das beherzigt, sollte man es einfach mal ausprobieren ;)</description>
		<content:encoded><![CDATA[<p>Ein direktes Buch kann ich dir dazu nicht empfehlen, aber für die Zeitsache: Schau dir mal mein YouTube Video dazu an &#8211; kaum 10 Minuten. Wichtig bei einer 3 Schichten Architektur ist einfach nur dass man sich klar macht, was welche Schicht macht.<br />
Wenn man das beherzigt, sollte man es einfach mal ausprobieren <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HaPe77</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-13636</link>
		<dc:creator>HaPe77</dc:creator>
		<pubDate>Thu, 23 Oct 2008 07:39:50 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-13636</guid>
		<description>Interessanter Artikel. Danke. Frage an die Profis hier:

Welches Buch könnt ihr einem wir mir empfehlen, der zwar schon ein ca. 2 Jahre mit .Net programmiert, aber eben sich noch immer nicht an das 3-Schichten-Model gewagt hat, weil alles immer schnell gehen muss.

Wo wird das gut und halbwegs einfach bzw. für Einsteiger verständlich erklärt?</description>
		<content:encoded><![CDATA[<p>Interessanter Artikel. Danke. Frage an die Profis hier:</p>
<p>Welches Buch könnt ihr einem wir mir empfehlen, der zwar schon ein ca. 2 Jahre mit .Net programmiert, aber eben sich noch immer nicht an das 3-Schichten-Model gewagt hat, weil alles immer schnell gehen muss.</p>
<p>Wo wird das gut und halbwegs einfach bzw. für Einsteiger verständlich erklärt?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Code-Inside Casts: Jetzt auch noch Videos&#8230; &#124; Code-Inside Blog</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-13453</link>
		<dc:creator>Code-Inside Casts: Jetzt auch noch Videos&#8230; &#124; Code-Inside Blog</dc:creator>
		<pubDate>Fri, 17 Oct 2008 22:38:20 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-13453</guid>
		<description>[...] - wesentlich besser als Seitenweise Text. Daher habe ich jetzt mal ein Screencast zum Thema &#8220;3 Schichten Architektur&#8221; [...]</description>
		<content:encoded><![CDATA[<p>[...] &#8211; wesentlich besser als Seitenweise Text. Daher habe ich jetzt mal ein Screencast zum Thema &#8220;3 Schichten Architektur&#8221; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ntz</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-12662</link>
		<dc:creator>ntz</dc:creator>
		<pubDate>Sun, 21 Sep 2008 15:33:40 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-12662</guid>
		<description>Die Aufteilung in verschiedene Schichten ist ein guter Anfang. Was das Logging angeht ist das ein altes Problem.
Man nennt Logging/Security/Caching etc., ja nicht umsonst cross cutting concerns.
Jahrelang hab ich mich darüber geärgert, dass aufrufe die eigenltich nichts mit der funktionalität der jeweiligen Methode zu tun hatten, den code unnötig verkomplizierten.
Klar AOP ist ein schönes Konzept, aber mit OO programmieren eben nicht einfach so umsetzbar. und die vorhanden franeworks waren bisher leider einfach viel zu umständlich.
Zum Glück habe bin ich vor einem Jahr auf PostSharp aufmerksam geworden.
Am Anfang war ich skeptisch ob es sich auch in größeren projekten nutzten lässt, aber dieser Zweifel wurde durch den Einsatz in einem ebensolchen ausgeräumt.
Dabei haben wir in allen großen Cross Cutting Bereichen auf konsequent auf PostSharp gesetzt.
Security/Caching/Logging ist auf allen layern über PostSharp Attribute implementiert worden.
zu meiner Freude sind kaum mehr stellen im code zu finden, die nichts mit der eigenltichen aufgabe der jeweiligen methode zu tun haben.

Allen die ähnliche Probleme haben, würde ich PostSharp empfehlen.
Speziell, PostSharp.Laos, da es wahrscheinlich die bedürnisse der meißten abdecken wird.</description>
		<content:encoded><![CDATA[<p>Die Aufteilung in verschiedene Schichten ist ein guter Anfang. Was das Logging angeht ist das ein altes Problem.<br />
Man nennt Logging/Security/Caching etc., ja nicht umsonst cross cutting concerns.<br />
Jahrelang hab ich mich darüber geärgert, dass aufrufe die eigenltich nichts mit der funktionalität der jeweiligen Methode zu tun hatten, den code unnötig verkomplizierten.<br />
Klar AOP ist ein schönes Konzept, aber mit OO programmieren eben nicht einfach so umsetzbar. und die vorhanden franeworks waren bisher leider einfach viel zu umständlich.<br />
Zum Glück habe bin ich vor einem Jahr auf PostSharp aufmerksam geworden.<br />
Am Anfang war ich skeptisch ob es sich auch in größeren projekten nutzten lässt, aber dieser Zweifel wurde durch den Einsatz in einem ebensolchen ausgeräumt.<br />
Dabei haben wir in allen großen Cross Cutting Bereichen auf konsequent auf PostSharp gesetzt.<br />
Security/Caching/Logging ist auf allen layern über PostSharp Attribute implementiert worden.<br />
zu meiner Freude sind kaum mehr stellen im code zu finden, die nichts mit der eigenltichen aufgabe der jeweiligen methode zu tun haben.</p>
<p>Allen die ähnliche Probleme haben, würde ich PostSharp empfehlen.<br />
Speziell, PostSharp.Laos, da es wahrscheinlich die bedürnisse der meißten abdecken wird.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HowTo: Fluent Interfaces - sch&#246;ne APIs mit C# 3.0 &#124; Code-Inside Blog</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-11933</link>
		<dc:creator>HowTo: Fluent Interfaces - sch&#246;ne APIs mit C# 3.0 &#124; Code-Inside Blog</dc:creator>
		<pubDate>Tue, 05 Aug 2008 18:50:55 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-11933</guid>
		<description>[...] Aufbau ist ähnlich empfunden wie bei diesem Blogpost - allerdings etwas vereinfacht (und sollte so nicht verwendet werden (Schnittstellen [...]</description>
		<content:encoded><![CDATA[<p>[...] Aufbau ist ähnlich empfunden wie bei diesem Blogpost &#8211; allerdings etwas vereinfacht (und sollte so nicht verwendet werden (Schnittstellen [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Mühsig</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-11739</link>
		<dc:creator>Robert Mühsig</dc:creator>
		<pubDate>Mon, 14 Jul 2008 08:04:53 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-11739</guid>
		<description>Zum Logging: Das ist eine gute Frage. Logging sollte in jeder Schicht erfolgen bzw. habe ich noch keine andere gute Methode gefunden. Dort wo geloggt werden soll, muss auch der entsprechende Loggingbefehl aufgerufen werden. Allerdings kann man über Log4Net das recht hübsch machen :)

Zur losen Kopplung und den Schnittstellen: Das könnte man sicherlich machen. In der &quot;Service Factory&quot; wird solch eine Trennung durch die Assemblys allerdings &lt;a href=&quot;../../../../artikel/howto-microsoft-pp-web-service-factory-service-factory-teil-3-praktisches-hello-world/&quot; rel=&quot;nofollow&quot;&gt;auch gemacht&lt;/a&gt;.
Vom Aufbau her, ist dies sicherlich ein guter Gedanke :)</description>
		<content:encoded><![CDATA[<p>Zum Logging: Das ist eine gute Frage. Logging sollte in jeder Schicht erfolgen bzw. habe ich noch keine andere gute Methode gefunden. Dort wo geloggt werden soll, muss auch der entsprechende Loggingbefehl aufgerufen werden. Allerdings kann man über Log4Net das recht hübsch machen <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Zur losen Kopplung und den Schnittstellen: Das könnte man sicherlich machen. In der &quot;Service Factory&quot; wird solch eine Trennung durch die Assemblys allerdings <a href="../../../../artikel/howto-microsoft-pp-web-service-factory-service-factory-teil-3-praktisches-hello-world/" rel="nofollow">auch gemacht</a>.<br />
Vom Aufbau her, ist dies sicherlich ein guter Gedanke <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joseph Fischer</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-11738</link>
		<dc:creator>Joseph Fischer</dc:creator>
		<pubDate>Mon, 14 Jul 2008 07:45:51 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-11738</guid>
		<description>Super Beispiel!

Ist möglicherweise der bewussten Einfacheit des Beispiels geschuldet, aber müssten die Schnittstellen zu den jeweiligen Services zur Umsetzung der losen Kopplung nicht jeweils in einerÂ getrennten Assembly angeboten werden?</description>
		<content:encoded><![CDATA[<p>Super Beispiel!</p>
<p>Ist möglicherweise der bewussten Einfacheit des Beispiels geschuldet, aber müssten die Schnittstellen zu den jeweiligen Services zur Umsetzung der losen Kopplung nicht jeweils in einerÂ getrennten Assembly angeboten werden?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob Revona</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-11714</link>
		<dc:creator>Rob Revona</dc:creator>
		<pubDate>Sat, 12 Jul 2008 11:20:53 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-11714</guid>
		<description>Danke für das Beispiel.
Wo und wie wird denn das Logging implementiert, d.h. in welcher Schicht ?</description>
		<content:encoded><![CDATA[<p>Danke für das Beispiel.<br />
Wo und wie wird denn das Logging implementiert, d.h. in welcher Schicht ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas</title>
		<link>http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/comment-page-1/#comment-11698</link>
		<dc:creator>Thomas</dc:creator>
		<pubDate>Thu, 10 Jul 2008 18:42:52 +0000</pubDate>
		<guid isPermaLink="false">http://code-inside.de/blog/2008/07/09/howto-3-tier-3-schichten-architektur/#comment-11698</guid>
		<description>Ich packe grundsätzlich alle Geschäftsobjekte in einen eigenen, sozusagen vertikalen, Layer:

Blabla.BL - Geschäftslogik
Blabla.DA - Datenzugriff
Blabla.BO - Geschäftsobjekte
Blabla.UI - Web-Anwendunge oder sonstwas

Ich nutze immer BO für Business Object, die Begrifflichkeit ist eigentlich wurscht - man kann&#039;s auch Entity, Data Value Object oder was auch immer nennen - ich habe zumindest noch keine schlüssige No-Go-Erklärung für eine der Bezeichnungen gefunden.

Letztendlich kann ich die Objekte so auch in allen Schichten nutzen, z.B. auch zum Binden von Daten an einen Repeater in ASP.NET - der die Daten aus dem BL erhält, welches den DAL anzapft. Damit kann in allen Schichten mit einheitlichen Objekten gearbeitet werden, ohne mit DataSets oder sonstwas rummachen zu müssen und vor allem ohne sich zu krämen, dass man im UI jetzt etwas ausm DAL nutzt ...

Funktioniert natürlich auch nur solange sinnvoll, wiem an keinen OR-Mapper einsetzt ... die perfekte Lösung habe ich jedenfalls auch noch nicht.

Dein Code liefert unterm Strich trotzdem ganz gute Ansätze, deine Azubis können sich glücklich schätzen ;-).</description>
		<content:encoded><![CDATA[<p>Ich packe grundsätzlich alle Geschäftsobjekte in einen eigenen, sozusagen vertikalen, Layer:</p>
<p>Blabla.BL &#8211; Geschäftslogik<br />
Blabla.DA &#8211; Datenzugriff<br />
Blabla.BO &#8211; Geschäftsobjekte<br />
Blabla.UI &#8211; Web-Anwendunge oder sonstwas</p>
<p>Ich nutze immer BO für Business Object, die Begrifflichkeit ist eigentlich wurscht &#8211; man kann&#8217;s auch Entity, Data Value Object oder was auch immer nennen &#8211; ich habe zumindest noch keine schlüssige No-Go-Erklärung für eine der Bezeichnungen gefunden.</p>
<p>Letztendlich kann ich die Objekte so auch in allen Schichten nutzen, z.B. auch zum Binden von Daten an einen Repeater in ASP.NET &#8211; der die Daten aus dem BL erhält, welches den DAL anzapft. Damit kann in allen Schichten mit einheitlichen Objekten gearbeitet werden, ohne mit DataSets oder sonstwas rummachen zu müssen und vor allem ohne sich zu krämen, dass man im UI jetzt etwas ausm DAL nutzt &#8230;</p>
<p>Funktioniert natürlich auch nur solange sinnvoll, wiem an keinen OR-Mapper einsetzt &#8230; die perfekte Lösung habe ich jedenfalls auch noch nicht.</p>
<p>Dein Code liefert unterm Strich trotzdem ganz gute Ansätze, deine Azubis können sich glücklich schätzen <img src='http://code-inside.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
</channel>
</rss>

