<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Violet Tape &#187; Newbie</title>
	<atom:link href="http://softblog.violet-tape.net/category/newbie/feed/" rel="self" type="application/rss+xml" />
	<link>http://softblog.violet-tape.net</link>
	<description>Some thoughts about .Net programming</description>
	<lastBuildDate>Thu, 15 Apr 2010 04:26:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PostSharp. Overview.</title>
		<link>http://softblog.violet-tape.net/2010/04/15/postsharp-overview/</link>
		<comments>http://softblog.violet-tape.net/2010/04/15/postsharp-overview/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 04:26:39 +0000</pubDate>
		<dc:creator>Koissakh Kadderah</dc:creator>
				<category><![CDATA[Newbie]]></category>
		<category><![CDATA[PostSharp]]></category>
		<category><![CDATA[AOP]]></category>

		<guid isPermaLink="false">http://softblog.violet-tape.net/?p=120</guid>
		<description><![CDATA[Before turning directly to the theme of the story, it is necessary to say a few words about the system things. Aspect-Oriented Programming Aspect-oriented programming (AOP) - programming paradigm, based on the idea of separation of functionality to improve the partitioning the program into modules. There are many classes of problems whose solution is impossible [...]]]></description>
			<content:encoded><![CDATA[<p>Before turning directly to the theme of the story, it is necessary to say a few words about the system things.</p>
<h2>Aspect-Oriented Programming</h2>
<p><em>Aspect-oriented programming (AOP) </em>- programming paradigm, based on the idea of separation of functionality to improve the partitioning the program into modules.</p>
<p>There are many classes of problems whose solution is impossible in the context of the OOP, or lead to a large rubbish code and connectivity modules that bad. For example, logging. In order to keep a log of the program, it is necessary in each service method of placing multiple lines of service call logging, as it may have to pass through the input parameters of methods. All this code would not apply to the implementation of real-world task entrusted to the method, but only an eyesore. Besides, how many extra lines of code have to write by hand!</p>
<p>Another example is the authentication and verification of access rights. In good, before the execution of important methods, one must each time test whether the current user rights to run the specified method. Here, too, can be a lot of hassle and code</p>
<p>In general, any cross-cutting code drops out of the opportunities the PLO. AOP programming, by contrast, provides all the tools to highlight "through the code in separate entities, which significantly simplifies the code for testing and for use.</p>
<p>(...)<br/>Read the rest of <a href="http://softblog.violet-tape.net/2010/04/15/postsharp-overview/">PostSharp. Overview.</a> (1,417 words)</p>
<hr />
<p><small>© Koissakh Kadderah for <a href="http://softblog.violet-tape.net">Violet Tape</a>, 2010. |
<a href="http://softblog.violet-tape.net/2010/04/15/postsharp-overview/">Permalink</a> |
<a href="http://softblog.violet-tape.net/2010/04/15/postsharp-overview/#comments">No comment</a> |

<br/>
Post tags: <a href="http://softblog.violet-tape.net/tag/aop/" rel="tag">AOP</a>, <a href="http://softblog.violet-tape.net/tag/newbie/" rel="tag">Newbie</a>, <a href="http://softblog.violet-tape.net/tag/postsharp/" rel="tag">PostSharp</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://softblog.violet-tape.net/2010/04/15/postsharp-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design pattern &#8220;Specification&#8221;</title>
		<link>http://softblog.violet-tape.net/2010/04/13/specification-pattern/</link>
		<comments>http://softblog.violet-tape.net/2010/04/13/specification-pattern/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 04:00:52 +0000</pubDate>
		<dc:creator>Koissakh Kadderah</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[Patterns]]></category>

		<guid isPermaLink="false">http://softblog.violet-tape.net/?p=112</guid>
		<description><![CDATA[Disclaimer This article is mostly for beginners at programming, who know only some programming patterns or don’t know them at all. About design patterns Let’s take definition of design pattern from Wikipedia. In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Disclaimer</strong></p>
<p>This article is mostly for beginners at programming, who know only some programming patterns or don’t know them at all.</p>
<h2>About design patterns</h2>
<p>Let’s take definition of design pattern from Wikipedia.</p>
<blockquote><p>In <a title="Software engineering" href="http://en.wikipedia.org/wiki/Software_engineering">software engineering</a>, a <strong>design pattern</strong> is a general reusable solution to a commonly occurring problem in <a title="Software design" href="http://en.wikipedia.org/wiki/Software_design">software design</a>. A design pattern is not a finished design that can be transformed directly into <a title="Code (computer programming)" href="http://en.wikipedia.org/wiki/Code_%28computer_programming%29">code</a>. It is a description or template for how to solve a problem that can be used in many different situations. <a title="Object-oriented" href="http://en.wikipedia.org/wiki/Object-oriented">Object-oriented</a> design patterns typically show relationships and <a title="Interaction" href="http://en.wikipedia.org/wiki/Interaction">interactions</a> between <a title="Class (computer science)" href="http://en.wikipedia.org/wiki/Class_%28computer_science%29">classes</a> or <a title="Object (computer science)" href="http://en.wikipedia.org/wiki/Object_%28computer_science%29">objects</a>, without specifying the final application classes or objects that are involved.</p></blockquote>
<p>For instance we can imagine that we are accomplishing a task “by analogy”. Or, for example, solving the same equation, but with another concrete numbers.</p>
<p>Pattern “Specification”- is a pattern of supplement’s conduct. The result of the implementation will be a Boolean variable; giving you the input of the operator of conditional transfer you control the behavior of the program.</p>
<p>With the help of the following techniques you can:</p>
<ul>
<li>Make your code more readable and concise</li>
<li>Avoid duplications of code</li>
<li>Easier to make changes to the implementation</li>
</ul>
<p>As always, the work of the complex mechanism better shows a concrete example. Let's start with simple things, gradually moving to the complex. I will try to avoid situations in which revealed only a simple example, but as it is applied in real life – unclear.</p>
<p>(...)<br/>Read the rest of <a href="http://softblog.violet-tape.net/2010/04/13/specification-pattern/">Design pattern &#8220;Specification&#8221;</a> (1,621 words)</p>
<hr />
<p><small>© Koissakh Kadderah for <a href="http://softblog.violet-tape.net">Violet Tape</a>, 2010. |
<a href="http://softblog.violet-tape.net/2010/04/13/specification-pattern/">Permalink</a> |
<a href="http://softblog.violet-tape.net/2010/04/13/specification-pattern/#comments">No comment</a> |

<br/>
Post tags: <a href="http://softblog.violet-tape.net/tag/patterns/" rel="tag">Patterns</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://softblog.violet-tape.net/2010/04/13/specification-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDD &amp; TDD. Part III</title>
		<link>http://softblog.violet-tape.net/2010/02/03/ddd-tdd-part-iii/</link>
		<comments>http://softblog.violet-tape.net/2010/02/03/ddd-tdd-part-iii/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 18:02:17 +0000</pubDate>
		<dc:creator>Koissakh Kadderah</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://softblog.violet-tape.net/?p=83</guid>
		<description><![CDATA[As the result of previous parts we have domain with core classes and services. Actually we can generate and process any amount of data with methods provided by domain services. But there are some issues: How user will input data; How data will reconstitute/persist. Domain by nature and the general plan must be absolutely independent [...]]]></description>
			<content:encoded><![CDATA[<p>As the result of previous parts we have domain with core classes and services. Actually we can generate and process any amount of data with methods provided by domain services. But there are some issues:</p>
<ul>
<li>How user will input data;</li>
<li>How data will reconstitute/persist.</li>
</ul>
<p>Domain by nature and the general plan must be absolutely independent and free from technology aspects as GUI/user interaction (WPF, WinForms, Web) and the data layer implementation (MSSQL, MySQL, Oracle, etc.)</p>
<h2>Layers</h2>
<p>Step by step we realize that application should be multi layered. And there are minimum possible set of layers, as I see it:</p>
<ul>
<li>Domain –business logic layer. In this layer described HOW to work with data.</li>
<li>Data layer. At this level implemented saving and recovering data to/from external data storage to domain objects. Extracting these actions in separate layer makes application more agile, i.e. it’s easy to deal with several different DB without changing other parts of the application.</li>
<li>Presentation layer. Here we say WHAT to do with data: define specific sequence of domain services and return calculated result to GUI. So, this layer connects Domain and Front End.</li>
<li>User Interface (Front End). This level can be console, win forms, web, even mental transmission to mind! =) Try to keep this layer as dumb as possible. No data changes, no application flow logic – only do what other says with any initiative.</li>
</ul>
<p>Now when we know layers responsibilities, next goal is to understand how they interconnect with each other.</p>
<p>(...)<br/>Read the rest of <a href="http://softblog.violet-tape.net/2010/02/03/ddd-tdd-part-iii/">DDD &#038; TDD. Part III</a> (836 words)</p>
<hr />
<p><small>© Koissakh Kadderah for <a href="http://softblog.violet-tape.net">Violet Tape</a>, 2010. |
<a href="http://softblog.violet-tape.net/2010/02/03/ddd-tdd-part-iii/">Permalink</a> |
<a href="http://softblog.violet-tape.net/2010/02/03/ddd-tdd-part-iii/#comments">No comment</a> |

<br/>
Post tags: <a href="http://softblog.violet-tape.net/tag/ddd/" rel="tag">DDD</a>, <a href="http://softblog.violet-tape.net/tag/tdd/" rel="tag">TDD</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://softblog.violet-tape.net/2010/02/03/ddd-tdd-part-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDD &amp; TDD. part II</title>
		<link>http://softblog.violet-tape.net/2010/01/30/ddd-tdd-part-ii/</link>
		<comments>http://softblog.violet-tape.net/2010/01/30/ddd-tdd-part-ii/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 18:00:49 +0000</pubDate>
		<dc:creator>Koissakh Kadderah</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://softblog.violet-tape.net/?p=78</guid>
		<description><![CDATA[Disposition So we have domain classes with minimal set of properties and methods. Also we have several tests on these classes. The goal is to learn how deal with domain classes – i.e. write services which will do complex calculations and modifications. For example count students in selected course. Domain services Assume that one of [...]]]></description>
			<content:encoded><![CDATA[<h2>Disposition</h2>
<p>So we have domain classes with minimal set of properties and methods. Also we have several tests on these classes. The goal is to learn how deal with domain classes – i.e. write services which will do complex calculations and modifications. For example count students in selected course.</p>
<h2>Domain services</h2>
<p>Assume that one of the tasks <em>is count classes for selected course and how many students in them</em>.</p>
<p>Let’s think which domain classes known about each other:</p>
<ul>
<li>“School” knows how many “Class”es it contains.</li>
<li>“Class” knows how many students it contains.</li>
</ul>
<p>I think it will be enough for now. What is the easiest way that will implement most of novice? Add to “School” method:</p>
<pre class="brush: csharp">public int CountStudent(int classNumber) { … }</pre>
<p>But it is a bad idea because of next reasons:</p>
<ul>
<li>It leads to growing responsibilities of “School” class and the result is coupling;</li>
<li>Became harder to maintain and change “School”;</li>
<li>Also can appear issues for test writing.</li>
</ul>
<p>(...)<br/>Read the rest of <a href="http://softblog.violet-tape.net/2010/01/30/ddd-tdd-part-ii/">DDD &#038; TDD. part II</a> (1,366 words)</p>
<hr />
<p><small>© Koissakh Kadderah for <a href="http://softblog.violet-tape.net">Violet Tape</a>, 2010. |
<a href="http://softblog.violet-tape.net/2010/01/30/ddd-tdd-part-ii/">Permalink</a> |
<a href="http://softblog.violet-tape.net/2010/01/30/ddd-tdd-part-ii/#comments">No comment</a> |

<br/>
Post tags: <a href="http://softblog.violet-tape.net/tag/ddd/" rel="tag">DDD</a>, <a href="http://softblog.violet-tape.net/tag/tdd/" rel="tag">TDD</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://softblog.violet-tape.net/2010/01/30/ddd-tdd-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDD &amp; TDD. part I</title>
		<link>http://softblog.violet-tape.net/2010/01/26/ddd-tdd-part-i/</link>
		<comments>http://softblog.violet-tape.net/2010/01/26/ddd-tdd-part-i/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 03:00:27 +0000</pubDate>
		<dc:creator>Koissakh Kadderah</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://softblog.violet-tape.net/?p=75</guid>
		<description><![CDATA[Disclaimer Article is a simple presentation of DDD and TDD in order to show how to deal with it and give an opportunity to start development according describing techniques. Those who already practice TDD and DDD,  please don’t be strict to words. Magic abbreviations DDD – Domain Driven Design, in few words it is a [...]]]></description>
			<content:encoded><![CDATA[<h2>Disclaimer</h2>
<p>Article is a simple presentation of DDD and TDD in order to show how to deal with it and give an opportunity to start development according describing techniques. Those who already practice TDD and DDD,  please don’t be strict to words.</p>
<h2>Magic abbreviations</h2>
<p>DDD – Domain Driven Design, in few words it is a solution code manner. And your target is an extract main application logic, the core, in a separate independent module. Domain must be independent from specific technologies, it won’t relay on underlying data, graphical presentation and so on.</p>
<p>TDD – Test Driven Design, developing application by tests. “Test become before code”.</p>
<p>Both of these practices (maybe better to call it philosophy) come together in my projects and, to be honest, for me it’s hard to imagine their usage separately. But yes, you can use them absolutely separate and no one oblige you to apply them in every project together.</p>
<p>There is a dozen of books, articles and other stuff in any format and size. Somewhere it is simpler, somewhere with more complex vision. I wouldn’t like  to make a  historical excursion how DDD and TDD have been invented, because it’s easy to find out in web, to  google Eric Evance books or visit <a href="http://martinfowler.com/" target="_blank">Martin Fowler site</a>. I’d like to share my vision of subject in simple words. Tell how it helps, works, evolves and supports. I hope I can achieve the goal.</p>
<p>Okay, let’s take a closer tour by these techniques.</p>
<p>(...)<br/>Read the rest of <a href="http://softblog.violet-tape.net/2010/01/26/ddd-tdd-part-i/">DDD &#038; TDD. part I</a> (1,775 words)</p>
<hr />
<p><small>© Koissakh Kadderah for <a href="http://softblog.violet-tape.net">Violet Tape</a>, 2010. |
<a href="http://softblog.violet-tape.net/2010/01/26/ddd-tdd-part-i/">Permalink</a> |
<a href="http://softblog.violet-tape.net/2010/01/26/ddd-tdd-part-i/#comments">No comment</a> |

<br/>
Post tags: <a href="http://softblog.violet-tape.net/tag/ddd/" rel="tag">DDD</a>, <a href="http://softblog.violet-tape.net/tag/tdd/" rel="tag">TDD</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://softblog.violet-tape.net/2010/01/26/ddd-tdd-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
