<?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>OOP Archives - Dragonsoft Technology View</title>
	<atom:link href="https://blog.dragonsoft.us/tag/oop/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.dragonsoft.us/tag/oop/</link>
	<description>Talk about Technologies, Software Architecture and Management</description>
	<lastBuildDate>Wed, 17 Dec 2008 16:19:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.dragonsoft.us/wp-content/uploads/2022/04/logo-main-bw-150x150.png</url>
	<title>OOP Archives - Dragonsoft Technology View</title>
	<link>https://blog.dragonsoft.us/tag/oop/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">2577970</site>	<item>
		<title>.Net and Design Patterns</title>
		<link>https://blog.dragonsoft.us/2008/12/08/net-and-design-patterns/</link>
					<comments>https://blog.dragonsoft.us/2008/12/08/net-and-design-patterns/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Mon, 08 Dec 2008 21:51:51 +0000</pubDate>
				<category><![CDATA[Fun stuff with C#]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.net C#]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[OOD]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[wpf design patterns]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=641</guid>

					<description><![CDATA[<p>Evolution has a spiral nature&#8230; it is true for any science, process, or development. Not long time ago Waterfall Model of development prevailed. Very formalized, well described and structured, very structured&#8230; and it was &#8220;too much&#8221; which killed it&#8230; like a grandpa, it collected a lot of knowledge and experience,<a class="moretag" href="https://blog.dragonsoft.us/2008/12/08/net-and-design-patterns/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/12/08/net-and-design-patterns/">.Net and Design Patterns</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Evolution has a spiral nature&#8230; it is true for any science, process, or development.</p>
<p>Not long time ago Waterfall Model of development prevailed. Very formalized, well described and structured, very structured&#8230; and it was &#8220;too much&#8221; which killed it&#8230; like a grandpa, it collected a lot of knowledge and experience, but he was to old and slow to keep up with the grandson&#8230; So was WF model &#8211; developers wanted something better and simpler, with built-in flexibility and after few iterations we&#8217;ve got &#8220;Agile model&#8221; and &#8220;XP programming&#8221; emerged. &#8220;Spiral&#8221; development cycles&#8230; &#8220;loose&#8221; modeling&#8230; like with JPEG, developers got &#8220;loose compression&#8221; of software process definition.</p>
<p>Not that we are loosing quality of the development, but we define the development process with desired level of formality/quality.</p>
<p>Remember in &#8220;Pirates of Caribbean&#8221; &#8211; pirates have &#8220;the pirate code&#8221;. Not being the law, it was a code of conduct which was helping keep the structure and discipline.</p>
<p>Same for &#8220;free spirit&#8221; development models, there is the need for some &#8220;guidelines&#8221; or &#8220;rules&#8221; everybody can understand and follow if want to achieve structure and efficiency. For the process there is an <a href="http://www.agilemodeling.com/essays/agileSoftwareDevelopment.htm" target="_blank">Agile methodology</a>, and for the code/architecture there are <a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)" target="_blank">Design Patterns</a>.</p>
<p>First introduced over 30 years ago, term &#8220;<strong>Patterns</strong>&#8221; surfaced in software industry several time: originally <a href="http://en.wikipedia.org/wiki/Pattern_(architecture)" target="_blank">in 1977</a>, then in <a href="http://c2.com/doc/oopsla87.html" target="_blank">1987</a> and then finally in <a href="http://en.wikipedia.org/wiki/Design_Patterns" target="_blank">1994</a>.<br />
Since that time and Object Oriented Design becoming main stream in Software Industry it transformed into a common terminology.<br />
It still come in &#8220;waves&#8221; to one company or another, coming ashore and and then retracting back to the sea of the theories. But with Object Oriented Programming being a mainstream in evolution of software development, <strong>Patterns</strong> or <strong>Design Patterns</strong> knowledge become a common base.</p>
<p>Today you hear about it everywhere &#8211; &#8220;What <strong><em>design pattern</em></strong> did you use?&#8221;, &#8220;<strong><em>application blocks</em></strong>&#8220;, etc.</p>
<p>To think about it, there is nothing new here. As an OO developer you may used it just a minute ago.</p>
<p>So let&#8217;s name a few basic one (I am going to use pattern classification presented <a href="http://www.dofactory.com/Patterns/Patterns.aspx" target="_blank">here</a> or you can refer to The Source &#8211; <a href="http://en.wikipedia.org/wiki/Design_Patterns" target="_blank">&#8220;Design  Patterns&#8221; by Gamma/Helm/Johnson/Vlissides</a> (<a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1228802288&amp;sr=1-1" target="_blank">Amazon</a>)):</p>
<ul>
<li><strong>Abstract Factory</strong> &#8211; allows manage/create instances of several types of classes &#8211; generic access.<br />
A-ha! In .Net the perfect example would be generics and reflection &#8211; there you are working with objects without precise knowledge of their type or parameters.</li>
<li><strong>Singleton</strong> &#8211; have you ever created global instance of the class? This is a one example for you.</li>
<li><strong>Adapter</strong> &#8211; we heard it somewhere recently&#8230; Aaaa&#8230; OleDBDataAdapter&#8230; From MSDN: &#8220;The OleDbDataAdapter serves as a bridge between a DataSet and data source for retrieving and saving data&#8221;</li>
<li><strong>Bridge</strong> &#8211; have you moved from Single/mono-design applications to C/S or created front-end ASP.Net page for your Application Server back-end? Then you have separated interface from implementation of the logic, or used a Bridge pattern.</li>
<li><strong>Proxy</strong> &#8211; Accessing your web-service from your code? Then you have most likely using some sort of Proxy class.</li>
</ul>
<p><span id="more-641"></span>And then you look at WPF and see more complex like <a href="http://www.orbifold.net/default/?p=550" target="_blank">WPF patterns.</a></p>
<p>You start with just 3 groups of two dozen design patterns and you end up with many more. Some are more common then others. As it did happen with XP and Agile, and other &#8220;new&#8221; things, it all falls back to the knowledge of terminology and &#8220;buzz&#8221; words.</p>
<p>What does knowledge of DP give you? In reality it can come to &#8211; &#8220;not much&#8221; and &#8220;a lot&#8221;. Statements contradicting each other? Well.</p>
<p>Let&#8217;s look at the definition:</p>
<blockquote><p><strong>Design Pattern</strong> is a general reusable solution to a commonly occurring problem in software design. It helps a designer/developer/architect get a design &#8220;right&#8221; faster.</p></blockquote>
<p>As you can see from definition, you may know them from acquired knowledge, common experience. After several years of development, you have your own patterns/templates, common practices in solving common problems. As a result, learning about &#8220;Design Patterns&#8221; may not  give you much of <em>the new knowledge</em>, but may help establish common grounds for discussion with the friend in next cubicle.</p>
<p>Ok, lets come back to original idea of .Net and design patterns. Why is it so important these days? Is it important to bring two together?</p>
<p>.Net framework, C# in particular, become a fine example of Object Oriented Design implementation. With language structures and Object Models present in .Net framework, it is important to understand principles of Object Oriented Design and Object Oriented Programming.</p>
<blockquote><p><strong>Object-oriented design (OOD)</strong> is a programming paradigm that began in the late 60&#8217;s as software programs became more and more complex. The idea behind the approach was to build software systems by modeling them based on the real-world objects that they were trying to represent.</p></blockquote>
<blockquote><p><strong>Object-oriented programming (OOP)</strong> is a programming paradigm that uses &#8220;objects&#8221; and their interactions to design applications and computer programs. Programming techniques may include features such as encapsulation, modularity, polymorphism, and inheritance.</p></blockquote>
<p>Combine them all and you will get .Net 3.x &#8211; WPF/WCF/LINQ frameworks. With <a href="http://www.orbifold.net/default/?p=550" target="_blank">WPF patterns</a> and all, in order to get most out of the framework theory part of OOD/OOP become even more important because it is built-in/core part of the new concepts behind class/event/organization model of the latest edition of the framework.</p>
<p>You just thought that you know it all about C#? Well&#8230; it is time to start the next learning cycle. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>PS. There are few things to read and watch:</p>
<ul>
<li><a href="http://blogs.msdn.com/johngossman/default.aspx" target="_blank">&#8220;Tales from the Smart Client&#8221;</a> by John Gossman, Microsoft Architect for WPF and Silverlight. &#8230; You will find many posts about design and patterns in WPF.</li>
<li>Another good source is <a href="http://www.dnrtv.com" target="_blank">dnrTV!</a>. It now has more then a hundred shows discussing different aspects of .Net framework application: training videos, interviews and more&#8230;</li>
</ul>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/12/08/net-and-design-patterns/">.Net and Design Patterns</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/12/08/net-and-design-patterns/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">641</post-id>	</item>
		<item>
		<title>Object-Oriented Programming</title>
		<link>https://blog.dragonsoft.us/2008/03/29/object-oriented-programming/</link>
					<comments>https://blog.dragonsoft.us/2008/03/29/object-oriented-programming/#comments</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Sat, 29 Mar 2008 20:15:48 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[object-oriented language]]></category>
		<category><![CDATA[object-oriented programming]]></category>
		<category><![CDATA[OOL]]></category>
		<category><![CDATA[OOP]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=157</guid>

					<description><![CDATA[<p>Object-Oriented Programming or OOP is the concept which you can find almost everywhere today. It is required for understanding of many modern programming languages. As a result, you would find it very often as a required skill when reading job postings. Being introduced back in 1970s as part of SIMULA language,<a class="moretag" href="https://blog.dragonsoft.us/2008/03/29/object-oriented-programming/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/03/29/object-oriented-programming/">Object-Oriented Programming</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Object-Oriented Programming or OOP is the concept which you can find almost everywhere today. It is required for understanding of many <a href="http://jeffsutherland.com/papers/Rans/OOlanguages.pdf" target="_blank">modern programming languages</a>. As a result, you would find it very often as a required skill when reading job postings.</p>
<p>Being <a href="http://home.ifi.uio.no/kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html" target="_blank">introduced back in 1970s</a> as part of SIMULA language, OOP still remains somewhat of the mystery. Question then raised &#8211; why OOP is not <span class="secondary-bf">taught</span> as a primary discipline for Computer Science program? (<a href="http://en.wikipedia.org/wiki/Object_oriented" target="_blank">wikipedia</a>, <a href="http://72.5.124.55/docs/books/tutorial/java/concepts/" target="_blank">in Java</a>, <a href="http://objc.toodarkpark.net/" target="_blank">in C</a>, some course papers <a href="http://www.aonaware.com/OOP1.htm" target="_blank">(1)</a>, <a href="http://www.cs.utk.edu/~huangj/CS302S04/notes/oo-intro.html" target="_blank">(2)</a>)</p>
<p>Lets look at some of the leading <a href="http://www.usnews.com/usnews/edu/college/rankings/brief/t1natudoc_brief.php" target="_blank">Universities in US</a> for Fall/Spring 2007:</p>
<ul>
<li><a href="http://www.cs.princeton.edu/" target="_blank">Princenton Department of CS</a> &#8211; <a href="http://www.cs.princeton.edu/academics/catalog.php" target="_blank">Courses</a>&#8211; only course COS441 mentions anything about OO languages, and not even OOP</li>
<li><a href="http://www.seas.harvard.edu/" target="_blank">Harvard University&#8217;s School of Engineering and Applied Sciences</a> &#8211; <a href="http://www.registrar.fas.harvard.edu/Courses/ComputerScience.html" target="_blank">Courses</a> &#8211; 3 courses have mentioned OO style, paradigm or data model &#8211; but it is half-unit courses with many other things covered and we can only guess how deep is the coverage.</li>
<li><a href="http://www.cs.yale.edu/" target="_blank">CS Yale University</a> &#8211; <a href="http://students.yale.edu/oci/search.jsp" target="_blank">Courses</a> &#8211; I have not found any specific referencing to OO of any sort.</li>
</ul>
<p>Of course, it is just Spring calendar and it could be covered during Fall already.</p>
<p>Yet, seeing what choices we have right at the moment, it is not very impressive picture. And it only proves that application aspect is usually considered preferable versus theory.</p>
<p>Any modern language today uses OO methodology &#8211; Delphi, C#, C++, Java, PHP, etc. So how can we efficiently use language without knowing base info?</p>
<p>I was asked recently, if I can help with some references to good resources explaining OOP. Below you can find first what comes to mind:</p>
<ul>
<li>great deal of information is available at <a href="http://en.wikipedia.org/wiki/Object-oriented_programming" target="_blank">wikipedia</a>, and it can be good starting point</li>
<li>using Delphi for many years, one should know <a href="http://delphi.about.com/od/course/a/oop_intro.htm" target="_blank">OOP course by Zarco Gajic</a></li>
<li>Is OOP bad? <a href="http://www.geocities.com/tablizer/oopbad.htm" target="_blank">Some people think so</a>&#8230; I disagree with many &#8220;myths&#8221; there, but it is fun to read.</li>
</ul>
<p>I am thinking to collect some more information about the subject, and if you have something to add, please do so &#8211; best comments might be incorporated in the post itself.</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/03/29/object-oriented-programming/">Object-Oriented Programming</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/03/29/object-oriented-programming/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">157</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk
Database Caching 15/85 queries in 0.071 seconds using Disk

Served from: blog.dragonsoft.us @ 2026-04-05 05:30:34 by W3 Total Cache
-->