Blog Home  Home Feed your aggregator (RSS 2.0)  
A Random Walk Around .Net - Wednesday, April 02, 2008
 
 Tuesday, April 01, 2008

            A well written program must implore the services of persistence.  Many would argue not in all cases; I disagree.  I personally cannot think of a program that would not benefit from a configuration file instead of hard coding settings.  Yes, the configuration file is a means of persisting load settings.  Moreover, event logs are also crucial to find user aborted exceptions.

            Though most would think database, xml file or file system, my view of persistence is anything that allows continuity between sessions of you application.  Before I delve deeply into what SQL Express can provide to this application [my next blog entry], I would like explore the two aforementioned concepts.

            First, one should use an external configuration source to abstract ones code.  The avoidance of recompilation and deployment provides for agility and stability.  We will see later how I see Castle Windsor helping in this process. 

Second, never swallow exceptions.  By swallowing exceptions, I mean try catch without alerting the user.  Moreover, write the exception to the event log; lost exceptions don’t help the debugging process.  In general one should throw an exception early and cleanly allow for appropriate remedies.  This is concept best taught by example.

Tuesday, April 01, 2008 9:51:29 PM (Central Standard Time, UTC-06:00)  #    Comments [0]    | 
 Monday, March 31, 2008

There are many takes on the agile development process: SCRUM, TDD and Extreme Programming to name a few.  One of the most important, in my estimation, from the agile manifesto is: “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”

            With this in mind, my first function is simply to design a database and extract a compatible IResource for the Castle Windsor Container.  In actuality this process was quite trivial [a Sunday afternoon] with the new technologies of .Net 3.5.  Moreover, it will take me much longer to explain what I did; than actually do it.

            In my next post, I will delve into the database design.

Monday, March 31, 2008 8:05:39 PM (Central Standard Time, UTC-06:00)  #    Comments [0]    | 
 Sunday, March 30, 2008

            These concepts have been around for quite a few years: from Martin Fowler’s description to this month’s MSDN magazine’s tutorial.  Stefano Mazzocchi wrote: “IOC is about enforcing isolation.”  Not many would argue that the n-tier architecture is a bad thing, however have you ever tried instantiating one class from the business tier by itself?

            To facilitate such a scenario, the idea of dependency injection and containers comes into play. One example of such a tool for .Net is Castle Windsor.  This open source project allows a user to “Separate Concerns” by injecting dependencies through an xml specification.

            As with many, I have a love hate relationship with xml configuration files.  For example, Oren Eini has created Binsor to combat his xml irritations.  My thought is instead; let us put it in a database.

             I plan to use some new interesting technologies to do this.  The idea is to use SQL Express with LINQ to SQL to handle the object relational mapping.  Then I will use LINQ to XML to auto generate an XML document [I could probably bypass the Xml Interpreter altogether if wanted].  From there I will use WCF to expose the generated xml as a service.  Once this is done, we will talk about GUI’s to update the database.

            So let’s get started.

Sunday, March 30, 2008 8:55:23 PM (Central Standard Time, UTC-06:00)  #    Comments [0]    | 
 Saturday, March 29, 2008

I had a professor in graduate school who once said that Computer Science, as an educational institution, is backwards.  Furthermore, he went on to say that in no other field do professors teach without practical experience. For example, a professor of trial law would not teach how to cross examine a defendant if one did not have the corresponding experience.  Nor would a professor of surgery explain the procedure of a heart transplant, if one did not have multiple transplants under one’s belt.

            Obviously, the previous statement is quite general and a bit drastic.  Nonetheless, as I interview prospective employees I am very disheartened by their conceptual knowledge of the field.  

 

Out stems a few questions:

How has our industry come to such a state?

How can we educate better?

 

As a .Net Developer, we are in a whirlwind of new ideas, technologies and practices.  Thus, it is an exciting time as well as a crucial time to educate as we do along.

 

The purpose of my blog is to educate on ideas, technologies, and practices from my personal experiences.

Saturday, March 29, 2008 11:48:13 AM (Central Standard Time, UTC-06:00)  #    Comments [0]    | 
Copyright © 2010 Yezdaan Baber. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: