posted 4/2/2010 by Arthur Correa | 0 comments
Scott Guthrie just posted about a few new features in C# 4.0.  Optional parameters are now part of the language.  These are something that I've missed since I made the switch to C# from C++ back in 2001 (Dont' get me wrong, it wasn't the end of the world, its easy enough to work around when you dont' have them, but its nice to have them back). He also shows an example of how you could use them with ASP.Net MVC.  All in all, like usual, he has some good info so check it out. 
full article

posted 3/30/2010 by Arthur Correa | 0 comments
Admob recently postest the latest Mobile operating share number latest numbers, and its not good for the iPhone.  The Android is rapidly catching up to the iPhone in terms of US market share, to the point where its looking like the Android will pass the iPhone in the use sometime within the next month or so. Is this really a big surprise?  I've always thought this was inevitable.  The iPhone is only on a single carrier (currently), and only has a single vendor that makes and sells the hardware for it (Apple).  Android on the other hand has multiple hardware manufacturers making phones for it (HTC, Motorola, Acer, Dell, amongst others), and is available on a number of different carriers.   Android is just setting themselves up to have a bigger market right out of the gate.  On top of that, if one phone maker screws up and makes a bad phone, no big deal, there is another phone maker making a great Andr
full article

posted 1/13/2010 by Arthur Correa | 0 comments
So back in August I mentioned that I was being slow in posting because I was making the switch to NHibernate.  Well I finished that conversion about a week after that post, so what's my excuse now? At any rate lets talk about NHibernate.  First of all.  I used it in conjunction with Castle's Active Record project.  It was a really quick and clean implementation.  I converted over from LINQ2SQL in about a weekend with the worst of the changes being some minor tweaks to my Repository classes over some LINQ object naming quirks.  The fact that I had placed a Repository layer between my Services and my data store really helped with this since I had a logical place to store all my CRUD logic that was independant of my ORM classes. From a development point of view everything worked out great, a few attributes and my data was loading and saving cleanly.  Now as I mentioned I'm using a Repository pattern in my Data Layer and you may have noti
full article

posted 10/9/2009 by Arthur Correa | 0 comments
I've noticed an interesting trend lately.  Whenever people talk about Agile development or Scrum they use the two interchangeably.  Like one always means the other, and there is no other Agile process other than Scrum worth mentioning.  Why do I think this is an interesting trend?  According to recent surveys (for example here) Scrum is the most popular Agile process in use today so why not just equate the two words?  It definitely isn't a horrible idea.  Then again is Scrum really the most popular?  I can also find evidence from just a year ago that Extreme Programming is the most popular Agile process (here), but for some reason Scrum wins out, why is this the case? Ok, we'll get to that, but first what are the other options out there?  Maybe looking at those other options will give us an idea why Scrum seems to be so widely known.  Scrum is a very good process for most software projects, but that doesn't mean its a good fit f
full article

posted 10/8/2009 by Arthur Correa | 0 comments
Ok, so you've heard about Scrum and want to know what all the fuss is about.  What does it mean to say that you are following a Scrum methodology?Well Scrum is one particular way to do Agile Development.  For example there are a set of practices that are common to Scrum projects such as.The team is self-organizing.  That is there is no project manager that plans the order of work, or give guidance on how to fulfill the iteration goals.  Instead the team has the authority an dresources to make all of these decisions on their own.A Scrum cycle, which is called a sprint, is 30 calendar days (unlike most Agile methodologies the Scrum guidelines are fairly specific on this.  This is actually a practice that a lot of Scrum teams ignore and generally end up with sprints that run anywhere from 2-4 weeks).Once all the features to implement have been selected for a sprint they don't change for that sprint.  The team focuses on getting those features working, if anything else comes along they go
full article

posted 10/7/2009 by Arthur Correa | 0 comments
From what I can tell Extreme Programming (XP) is the most misunderstood Agile methodology out there.  For example one time I was giving Extreme Programming (XP) as an example of Agile development, and one person's response was "Extreme Programming?  I don't want to talk about just how you plan to write the code, I want to talk about how you're going to run your project." *SIGH*I think its name helps to tie into this sort of thing.  Some people hear the word "programming" and just shut down because they think they're going to start hearing about something technical.At any rate, I digress.  So what is Extreme Programming (XP)?  Like all the other Agile processes it focuses on frequent releases to promote the gathering of feedback and incorporation of that feedback to create a stable product that meets the customer's needs. Like other Agile methodologies XP has a set of core principles that it focuses on for success.  The team must deliver customer satisfactionThe team must deliver custom
full article

posted 10/6/2009 by Arthur Correa | 0 comments
The Unified process is yet another method of Agile Development.  One of the key strengths of this process is that it encourages its users to tweak and change it so that it meets their needs.  Activities and artifacts in this process are considered optional and can be done or not as the team decides.  Even the order in which steps are done are up to the project team.   As a result there are a number of different variatons on this including the Agile Unified Process, the Rational Unified Process, the Enterprise Unified Process, and I could go on.  At its most simple and basic the Unified Process (UP) has a number of key practicesDevelop in short timeboxed iterations. This is a common theme in all Agile processes.  Deliver quality software in short, frequent cycles.  Gather feedback, iterate, and improve upon it.Develop the high-risk/value elements early (for example get the core architecture in place). This is something that isn't called out explicitly in other Agile processes, and I thi
full article

posted 8/20/2009 by Arthur Correa | 0 comments
I know I haven't posted in a while.  I took the last month or so to convert my DAL over to use NHibernate instead of LINQ to SQL.  Why the change?  Well, when I first started this project the idea was that I would use this as a vehicle to try new technology.  NHibernate was one of those things on my list to try.  On top of that I started using it on another project at work, and honestly found I liked it a little bit better than LINQ to SQL.  More details to come, I just wanted to get some sort of post up here since its been so long (and also test out that my insert code still worked after the switch).
full article

posted 6/12/2009 by Arthur Correa | 0 comments
Ok so as I implemented my blog software for this site I had to figure out a way to display error messages to the user.  For example if I had a required field that the user didn't fill in I wanted to alert the user to fill in that field. My first thought was that MVC should have something to handle this, so I was going to start there.  Unfortunately, after looking around a lot online, I realized that at the time MVC didn't have that.  So what to do? Well I have a base class for all of my Models, can I put something in there?  Just about every screen might have a need to return an error message so why not?  Ok, I had a place to put my errors, but how would I actually implement them?  I decided upon using a Dictionary to hold the messages.  The key to the dictionary would be the name of the control that the error message was associated with, and the value was the error message itself.  Then in my page code I checked that dictionary for
full article

posted 5/27/2009 by Arthur Correa | 0 comments
When I first launched this blog I found I was frequently getting the following error. Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [NullReferenceException: Object reference not set to an instance of an object.] IIS7Injector.InjectedContentStream.Write(Byte[] buffer, Int32 offset, Int32 count) +146 System.Web.HttpWriter.FilterIntegrated(Boolean finalFiltering, IIS7WorkerRequest wr) +265 System.Web.HttpResponse.Filter
full article