<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6459452570110806849</id><updated>2011-04-21T21:01:37.432-07:00</updated><category term='C#'/><title type='text'>XNA Zen Garden</title><subtitle type='html'>Herein lie the accounts of my adventures with the Microsoft XNA game development framework.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xnazengarden.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6459452570110806849/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://xnazengarden.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel De Aguiar</name><uri>http://www.blogger.com/profile/14602138136433126776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6459452570110806849.post-5567781517756944652</id><published>2007-02-20T16:16:00.000-08:00</published><updated>2007-02-20T18:44:10.092-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# and Partial Classes</title><content type='html'>As I was perusing the Spacewar code-base I ran across an interesting class declaration:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;blockquote&gt;partial class SpacewarGame : Microsoft.Xna.Framework.Game&lt;br /&gt;{&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Interestingly, I had apparently found part of a class. Being the diligent person that I am, I immediately set out to find the rest of it. Unfortunately, my search was in vain because this was the only declaration of the SpacewarGame class. I immediately wondered what benefit was bestowed by the &lt;span style="font-style: italic;"&gt;partial&lt;/span&gt; keyword. A quick &lt;a href="http://en.wikipedia.org/wiki/Partial_class"&gt;wikipedia search&lt;/a&gt; reveals the following:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;A partial class, or partial type, is a feature of some object oriented computer programming languages in which the declaration of a class may be split across multiple source-code files, or multiple places within a single file.&lt;/blockquote&gt;&lt;br /&gt;My first thought is why is this actually needed? Apparently partial classes come in handy when dealing with generated code. The classic example is when dealing with windows form code. The generated code is hidden from the developer and she can easily add to the class without worry of losing those changes if and when the class is re-generated. Hmm... that sounds fair.&lt;br /&gt;&lt;br /&gt;However, it apparently does not stop there! Another valuable benefit includes multiple developers working on the same class without stepping all over each other  since they will be working on different files. This would seem to work especially well where locking strategies are implemented with version control software. Or, how about facilitating the modification of big classes? Ok,  now I am starting to feel uncomfortable. In my view, both of those situations are a smell of bigger  issues.&lt;br /&gt;&lt;br /&gt;But I am told that I should not be concerned. The compiler collects all the class pieces and stitches them together,  ensuring that a valid type can be constructed. In terms of maintenance, if I were ever unfortunate enough to work on a project that over utilized partial classes, I could rely on the Visual Studio Class view for easily accessible, complete class definitions.&lt;br /&gt;&lt;br /&gt;Well, I am not convinced. Even though partial classes may have a use, in my view it is somewhat limited. I do see, however, that the ability to abuse them is quite large. I feel that I encountered the beginnings of that in the Spacewar code-base. In the end, I see this as another example of a well-intended feature making developers lives harder rather than easier.&lt;br /&gt;&lt;br /&gt;On a side note, Ruby's mixins have been &lt;a href="http://www.rubycentral.com/book/tut_classes.html"&gt;compared &lt;/a&gt;to partial classes, however I think they are  fairly different animals.&lt;br /&gt;&lt;br /&gt;If you want to learn more about partial classes check out the following links: &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/00/C20/default.aspx#S4"&gt;msdn magazine&lt;/a&gt; ,&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/wa80x488.aspx"&gt;msdn reference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459452570110806849-5567781517756944652?l=xnazengarden.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xnazengarden.blogspot.com/feeds/5567781517756944652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6459452570110806849&amp;postID=5567781517756944652' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6459452570110806849/posts/default/5567781517756944652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6459452570110806849/posts/default/5567781517756944652'/><link rel='alternate' type='text/html' href='http://xnazengarden.blogspot.com/2007/02/c-and-partial-classes.html' title='C# and Partial Classes'/><author><name>Daniel De Aguiar</name><uri>http://www.blogger.com/profile/14602138136433126776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6459452570110806849.post-1707501240032988583</id><published>2007-02-17T18:24:00.000-08:00</published><updated>2007-03-17T18:27:20.630-07:00</updated><title type='text'>The plan...</title><content type='html'>My goal will be to develop Space Ball, a competitive, multi-player game focused around the possession of the Game Orb. The player who holds the orb for the longest time within the game time limit wins. That's it... Nothing too fancy. Since I am no artist, I am not planning on incorporating any new art work. It's all about the game play for me!&lt;br /&gt;&lt;br /&gt;In support of this goal, I have come up with a prioritized list of stories for my Feb. 28th deliverable:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;As a player, I can see the Game Orb when the game begins.&lt;/li&gt;&lt;li&gt;As the Game Orb, I can bump into other objects.&lt;/li&gt;&lt;li&gt;As a player, I can pick  up the Game Orb.&lt;/li&gt;&lt;li&gt;As a player, I gain points while holding the Game Orb.&lt;/li&gt;&lt;li&gt;As a player, I can shoot the Game Orb out of the possession of another player.&lt;/li&gt;&lt;li&gt;As a player, I can release the Game Orb.&lt;/li&gt;&lt;li&gt;As the game orb, I appear in random locations at the beginning of the game.&lt;/li&gt;&lt;li&gt;As a player, I gain health while carrying the Game Orb.&lt;/li&gt;&lt;/ol&gt;Most of the current features implemented in the base project will be maintained. However, I may drop the Orb of Death in the center of the field of play. I dislike being sucked into it's fiery clutches and I feel this will detract from game play.&lt;br /&gt;&lt;br /&gt;Until next time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459452570110806849-1707501240032988583?l=xnazengarden.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xnazengarden.blogspot.com/feeds/1707501240032988583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6459452570110806849&amp;postID=1707501240032988583' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6459452570110806849/posts/default/1707501240032988583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6459452570110806849/posts/default/1707501240032988583'/><link rel='alternate' type='text/html' href='http://xnazengarden.blogspot.com/2007/02/plan.html' title='The plan...'/><author><name>Daniel De Aguiar</name><uri>http://www.blogger.com/profile/14602138136433126776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6459452570110806849.post-1735553127959750706</id><published>2007-02-16T18:22:00.000-08:00</published><updated>2007-03-17T18:26:20.344-07:00</updated><title type='text'>And so the journey begins...</title><content type='html'>Since I own an Xbox 360 and thoroughly enjoy the content on Xbox Live, I was intrigued by the recent release of Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/xna/default.aspx"&gt;XNA framework&lt;/a&gt;. Even though I currently make a living cutting code in Java and my last experience with a Microsoft development product was with VB 6 (I honestly do not miss that at all) , I couldn't resist diving in and checking it out. To make it even more interesting, I figured I would submit an entry to the &lt;a href="http://www.xnaresources.com/blog.asp?action=viewarticle&amp;amp;articleid=94"&gt;Dream, Build, Play: Warmup Challenge.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My goal is to put in some entertaining enhancements into the SpaceWar game in the next couple of weeks while learning C# and the intricacies of XNA. This should lead to an entertaining series of posts!&lt;br /&gt;&lt;br /&gt;In preparation, I have installed VS C# Express Addition, installed XNA Game Studio Express, generated the Space War project, set up my &lt;a href="http://subversion.tigris.org/"&gt;subversion &lt;/a&gt;repository and installed &lt;a href="http://www.nunit.org/"&gt;Nunit&lt;/a&gt;. Now I just need to tear myself off my 360 long enough to get to work!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459452570110806849-1735553127959750706?l=xnazengarden.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xnazengarden.blogspot.com/feeds/1735553127959750706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6459452570110806849&amp;postID=1735553127959750706' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6459452570110806849/posts/default/1735553127959750706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6459452570110806849/posts/default/1735553127959750706'/><link rel='alternate' type='text/html' href='http://xnazengarden.blogspot.com/2007/02/and-so-journey-begins.html' title='And so the journey begins...'/><author><name>Daniel De Aguiar</name><uri>http://www.blogger.com/profile/14602138136433126776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
