Tuesday, June 30, 2009
Ryan will be doing a two part series on the Castle Project. Mark your calendar for some Castle Project fun.
Ryan Svihla has been working as a C# developer Farm Bureau Bank in San Antonio since September 2007. Before that he worked as a Consultant in Lincoln, NE for 3 years, where he had working experience with Php, some Perl, Python and of course C#. Attempting Agile since early 2008 as an eager student with a focus on making programming more useful and relevant for the end user.
IoC and Dip through Castle Windsor
Ever wonder what acronyms like IoC and Dip mean? If you know what they mean do you wonder why anyone would use them in code? This talk aims to deal primarily with those two questions through the use of Castle Windsor IoC container. Intermediate level C# material with a couple of more advanced demos at the end for fun and pleasure.
Central Daylight Time
Start Time: Web, July 1, 2009 8:00 PM UTC/GMT -5 hours
End Time: Web, July 1, 2009 10:00 PM UTC/GMT -5 hours
Attendee URL: http://snipr.com/virtualaltnet (Live Meeting)
Web Development with Castle Monorail, Active Record and Brail view engine
Have a look at the first popular MVC .Net based web framework. Also will be covering persistence with ActiveRecord, and view templates using Brail. Bonus, will demo a plug-in framework for building CMS like applications.
Central Daylight Time
Start Time: Web, July 8, 2009 8:00 PM UTC/GMT -5 hours
End Time: Web, July 8, 2009 10:00 PM UTC/GMT -5 hours
Attendee URL: http://snipr.com/virtualaltnet (Live Meeting)
Saturday, May 17, 2008
Attention User Group Leaders, INETA Volunteers, and Speakers! INETA would like to invite you to join us for a Mini-Summit on Monday June 2nd, 2008 at the Orlando Convention Center. We're going to be holding a somewhat informal gathering from 3-7 PM to provide user group leaders and chance to network, meet the new board members, and spend some quality time talking with us about community....
Read full article
Saturday, March 29, 2008
Recently, Zach Young, a colleague of mine, and I started working on a project with the goal to lean several new things. I had the idea for the application, a simple web application that would displayed the post from registered RSS feeds sorted by publish date.
Which sounds pretty simple, but it became more clear the more we talked about it that we need requirements. It is the same problem that is apparent in any software project. I am for this instance play the role of the customer, and I have a vision of a product I want someone to build for me.
The Problem
The problem is getting this vision out of my head, where it is perfect of course and into a form that can be clearly communicated to the development team so that I can feel confident that what they deliver will be what I ask for.
I spent a few days diving into Use Cases and found that I didn't feel like I was getting anywhere. I was typing a lot of information but still didn't feel like the developer would get what I am saying. A quick phone call to another colleague, Raymond Lewallen and I was off checking out User Stories. And guess what they are small, light, easy to write and easy to read.
So what is a User Story?
Well, according to wikipedia, A user story is a software system requirement formulated as one or two sentences in the everyday language of the user. This was exactly what I wanted. Since this is a side project and mainly to be used to learn I don't want to spend all of my time writing tomes of requirements documentation before I get to writing some code.
Dan North: What's in a story
I decided to create User Stories following what Dan North has introduced in his What's in a Story post.
The simple format of the BDD style user story is quick to write and ubiquitous is easy to achieve. Let's take a look at the format.
Title (one line describing the story)
Narrative:
As a [role]
I want [feature]
So that [benefit]
Acceptance Criteria: (presented as Scenarios)
Scenario 1: Title
Given [context]
And [some more context]...
When [event]
Then [outcome]
And [another outcome]...
Using this has allowed me to get the requirements documented quickly, in a form that both Zach and I can easily understand and we rarely have to go back over what is in the user story for a feature and could move on to learning how to write test to satisfy the user story.
If you are interested in checking out our project and looking at the User Stories we are developing you can find it at http://code.google.com/p/hermesreader. This project is intended to be an educational and you are interested in helping out drop me a line.
I will continue to post regarding the progress and concepts are are applying to the project as we tackle them. Hopefully this information will save you some time and help you get the code out the door.
Tuesday, March 25, 2008
Chris Tavares wrote a great article no creating applications with the ASP .NET MVC Framework in the March Issue of the MSDN Magazine.
Chris does a great job of grounding the reader with an understanding of the Model View Controller design pattern. The article also comes with a download code sample to help you get started.
This is the future of web development get a jump start with the article on Building Web Apps without Web Forms.
Wednesday, February 27, 2008
I recently learned about a very cool option in Visual Studio, the ability to extract an Interface from an existing class. This has made me much more comfortable in trying to adhere to a principle of not creating unnecessary code. I often found myself thinking I should create an interface first before creating the concrete implementation even for objects that I didn't have any current plans for extending.
This post will show you step by step how to extract an interface from an existing class, so keeping with open closed principle we can still extend the code base with our modifying the current object.
First lets consider the the Attendee class.
namespace Attendee
{
public class Attendee
{
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
private string _firstname;
public string FirstName
{
get { return _firstname; }
set { _firstname = value; }
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set { _lastName = value; }
}
public bool Save()
{
return true;
}
}
}
This is a very simple class implementation of an Attendee, a class I use in my Model-View-Controller presentation. Note this is a very simple domain object with no logic. To extract an interface place your cursor in the class name, Attendee in this case, select Extract Interface... on the Refactor menu.
This will launch the Extract Interface wizard. We can now modify the name, file name and the members to include in the interface.
Clicking OK after making your selection will generate the interface below.
using System;
namespace Attendee
{
interface IAttendee
{
int Age { get; set; }
string FirstName { get; set; }
string LastName { get; set; }
bool Save();
}
}
Now you are free to create a new implementation of the Attendee class with out having to change any of the code in the old Attendee class. This has really reduced the fear of not creating an interface for everything first. Of course I still do for most of my objects but if there is no reason to create it right now, this give me the confidence that I can defer creating the interface and extension point until it is necessary.
Monday, February 11, 2008
This weekend I attended an awesome event in Dallas, TX, the Community Leader Summit. Soon to become CommunityCamp. Thanks Caleb for organizing this event. There were user groups there represented by a huge cross section of the user community. Everything from .NET to Podcasting, and Joomla.
It was very interesting to see that even though our groups are focused on different technologies that we all struggle with the same things. And it was great to see how other groups has solved them.
I am sure the next CommunityCamp will be even better as we dive deeper into how to solve these problems and get to making our groups thrive and grow.
Saturday, February 02, 2008
One of my colleagues at Tyson Foods arranged to have Jean-Paul S. Boodhoo give a Nothin' But Dot Net Training class. I saw the opportunity to have him present at our use group since the training was the same week as our meeting. Jean-Paul was gracious enough to agree to present on Generics: They're no just for collections.
He has also agreed to help me launch a Podcast I have been wanting to start called Let's Talk Code!. Thanks, JP for helping get this started.
Generics: They’re not just for collections
In this session participants will be introduced to advanced usages of generics outside of the realm of just strongly typed collections. They will learn about how the focus of generics in the realm of collections has clouded the fact that generics can be used to introduce powerful capabilities into your application frameworks and solutions. Practical demonstrations will be utilized to showcase how developers can immediately start harnessing the power of generics in their applications today.
Jean-Paul S. Boodhoo is an independent consultant who spends most of his days helping teams realize success through the adoption and application of agile practices.
He has a passion for sharing information with the development community which he often tries to do on his blog at http://www.jpboodhoo.com/blog. He can be reached at jp@jpboodhoo.com. When not developing, he can be found relaxing with his amazing wife and their four beautiful kids.
Thursday, January 31, 2008
I just finished talking with David Walker of the Tulsa .NET User Group and confirmed I will be presenting to them on February 25. I will be giving a presentation on the Model View Presenter Design Pattern.
I am very excited to be able to present in Tulsa. Since the Northwest Arkansas .NET User Group formed because a member from Tulsa moved to Northwest Arkansas it feels good that we can complete the circle.
If you live in the Tulsa, OK area please check out you local user group Tulsa .NET User Group.
Tuesday, January 29, 2008
I am proud to announce that the date has been set for the next MSDN Express event in Northwest Arkansas. The MSDN Express events are designed to deliver high quality MSDN like topics and training to a smaller venue and as always free.
I would like to personally than Zain Naboulsi (Microsoft Evangelist), Randy Walker (INETA Membership Mentor), and Rob Farinholt (New Horizons) for their hard work and help organizing these events.
I am currently working with Zain to get the sessions. So, mark you calendars on February 27th, I look forward to seeing you there.
Sponsored by NWA DNUG, New Horizons, Microsoft
I am proud to announce that the date has been set for the next MSDN Express event in Northwest Arkansas. The MSDN Express events are designed to deliver high quality MSDN like topics and training to a smaller venue and as always free.
I would like to personally than Zain Naboulsi (Microsoft Evangelist), Randy Walker (INETA Membership Mentor), and Rob Farinholt (New Horizons) for their hard work and help organizing these events.
I am currently working with Zain to get the sessions. So, mark you calendars on February 27th, I look forward to seeing you there.
Sponsored by NWA DNUG, New Horizons, Microsoft