WTF Next?

Dev ramblings from a master of nothing.

  Home  |   Contact  |   Syndication    |   Login
  108 Posts | 0 Stories | 64 Comments | 0 Trackbacks

News



I'm an MCP, having successfully passed the 070-536

GeeksWithBlogs.net: WTFNext's hosting!

Community Credit: Win stupid prizes by contributing to the community!

View Stacy Vicknair's profile on LinkedIn

My Amazon.com Wish List

Twitter












Tag Cloud


Archives

Post Categories

.NET User Groups

Community Links

Friday, January 29, 2010 #

The Baton Rouge Architecture Group is a monthly, informal round-table lunch for developers within the Greater Baton Rouge area. It is open to developers of all skill levels.


This upcoming Tuesday Phillip Jackson will be starting us out talking on the Liskov Substitution Principle and we'll see where we go from there. Should be yet another great meeting. If you would like to come, please use the eventbrite link below to register so that we can get a rough estimate of the space needed.


We hope to see you there!


Where: Fox and Hound Restaurant. 5246 Corporate Blvd., Baton Rouge, LA 70808

When:
February 2nd. 12 PM.

Registration:
http://brag0210.eventbrite.com/

 

Technorati Tags: ,

Wednesday, December 16, 2009 #

I’ll be participating in the Baton Rouge .NET User Group’s second Speaker Idol event and doing a presentation on the SOLID principles. This’ll be my first time speaking for the BRDNUG, so we’ll see how it goes. At the least, hopefully those attending will find the presentation entertaining.

You’ll find a link to my presentation included in this blog, please check it out and feel free to adapt from it if you find it useful. Keep in mind that this presentation is designed for 15-20 minutes.

 

Also I would love to hear any feedback, good or bad. I’ve got a lot of growing to do and the only way I’ll do it is through honest feedback.

 

Powerpoint:
http://www.filesavr.com/combattingfailure-principlesforoosuccess_1

PDF:
http://www.filesavr.com/combattingfailure-principlesforoosuccess

Event Information:
http://www.brdnug.org/events_view.aspx?eventid=37


Tuesday, October 20, 2009 #

We got a couple upcoming meetings for software developers in the Baton Rouge area that are going to be a great amount of fun and learning (what, together? Nahhh…)

 

BRDNUG Meeting: Tomorrow, Oct 21 2009

Brian Sullivan from the Shreveport area will be coming down to speak on NHibernate with Fluent NHibernate. Should be a great meeting, I’m very sadly missing it.

Agenda
5:45 pm - 6:15 pm:

General Introduction/Food and Drinks

6:15 pm - 7:15 pm:
Brian will speak on NHibernate with Fluent NHibernate

7:20 pm - until:
Open forum for questions

Raffle and Giveaways

  • Office SharePoint Designer 2007
  • Windows Vista Ultimate
  • Several Books

http://www.brdnug.org/events_view.aspx?eventid=35

 

BRAG Lunch: November 3 2009

Mike Huguet will be starting us off on Repository and Unit of Work, and we’ll see where we go from there. This meeting is open for all aspiring or current software architects, so feel free to join us no matter what level.

http://brag110309.eventbrite.com/

 

Technorati Tags: ,

Wednesday, October 07, 2009 #

.NET University has a variety of presentations available for download, including code examples and videos. Use the materials to learn or to present at your next DNUG meeting ;)

The presentations cover a variety of different topics, so if you’ve already got a presentation planned and you just want to compare, be sure to check’em out. All the popular topics like Silverlight, WPF, WCF, LINQ, and ASP.NET MVC are covered.

Instant presentations, just add presenter.

http://www.dotnet-u.com

 


Tuesday, September 29, 2009 #

If you are in the Baton Rouge area there is a new event for you to attend! Intended for aspiring and current software architects, the BRAG Lunch is a place for an informal gathering to talk about what works and doesn’t work in real life. Our first meeting is going to start off on the Service Locator pattern mediated by Lance Dunnehoo and we’ll see where we go from there!

I hope to see you guys there, and you can find out the granular details at our EventBrite page. If you plan on attending, please give us a message at the google group thread on the BRDNUG about the lunch.

 

Technorati Tags: ,,

Wednesday, September 09, 2009 #

Today I ran into this problem when setting up the SQL Server Management Tools for SQL Server 2005. Like any good little code slinger, I googled (if you are particular to Microsoft, you can read that as “binged”) to see who’s had the problem, because it’s no news that when you aren’t on the crest of the tech wave that someone else has had the same issue.

In particular, MSXML 6 would fail and the log would have a message similar to:

MSI (s) (40:58) [22:16:00:859]: MainEngineThread is returning 1605

Well, undoubtedly I found many other results for others who have had this issue, primarily those that have XP SP3. To get around this failure, you’ve got to install the tool available at the link below and then use it to remove any entry starting with MSXML 6. For me, I had two entries, one “parser” and one SP2. Afterwards, just start the install over again.

I think what made the experience frustrating for me is that the SQL Server 2005 Setup fails in too friendly of a way. I’m used to the brutal honesty of the NUnit GUI. Give me a big red bar to illustrate how bad I failed or get out.

For the uninstall tool:
http://support.microsoft.com/kb/290301

A couple resources about the problem itself:
http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/493b5a95-1af6-4ec1-aa24-92875e4497c0
http://www.eggheadcafe.com/conversation.aspx?messageid=33740907&threadid=33664744

 

 


Thursday, August 20, 2009 #

Although not yet to the big project that I have coming up, I’ve had the opportunity to try out formal user stories for the first time for a project. Before this, I was using a method that mimicked Joel Spolsky’s painless functional specs. Most of this process I will maintain, except I’ve moved to the “As a (role) I want (something) so that (benefit).” user story format proposed by Mike Cohn in User Stories Applied.

I find that using this format really does help me 1) write from the user perspective, which is hard for a developer sometimes, 2) really think about the motivation for the feature and 3) keep the description concise. The details will need to be further fleshed out and explained in greater detail as the feature gets implemented, but this has been a quick route to a common ground understanding of what will be delivered.

The one problem I’ve had via this collaboration is that the first time around I assumed the reason for benefit and I was wrong. This might seem minor, but the truth is that the benefit to the user is the reason for their passion for that feature. I apologized and corrected this and have made a mental note. This was an assumption that I shouldn’t have made.

 


Wednesday, August 19, 2009 #

The answer, as with so many other questions in the coding world, is that it depends. However, for the average developer CLS compliance is not a concern. For the specialized component or tool developer CLS compliance might be your bread and butter winner.

For the average developer, CLS compliance is nothing more than bragging rights or an enforced rule at your organization. You probably only operate in one language provided graciously from MSFT and have little concern if your libraries will play nicely with the other languages. The benefits of CLS compliance are nullified if you do not work in a multi language environment.

For those who do work in a multilingual (I’m talking programming here) environment then CLS compliance is a step towards less problems. Typically this will affect those who produce frameworks and tools intended to be used by other systems. This could also affect you if you are extending a preexisting system produced in a different language.

 

How can you take steps toward CLS Compliance?

The first step is to mark you assemblies as CLS Compliant. This can be done by specifying the CLSCompliantAttribute. If you are in C#, the compiler will warn about problems with compliance. If in VB.NET, the compiler will not warn you, but that is supposed to change in the future (When? I’m not sure.)

To take a proactive approach to CLS compliance, you can take a look over the CLS and adhere to the rules that it specifies.

 


Friday, August 14, 2009 #

This week I had a need for NUnit based unit testing against a class that depended on a provided SqlConnection. Up to this point I had been able to mock external objects and their behavior based on interfaces, but with a SqlConnection I could not mock. There are some options for mocking the SqlConnection such as TypeMock, but I needed a realistic connection to test against. This also proved as a good method for building the expected DB interface.

The solution that worked best for my environment (only SQL Server 2000, all machines have OSQL) was to execute an OSQL process from my TestFixtureSetUp that executed a .sql script I had already made for building the database. So my TestFixtureSetUp looked like this:

<TestFixtureSetUp()> _
Sub FixtureSetUp()
    Dim p As Process = Process.Start("OSQL.exe", "-E -S SERVER -i ""../SQL SCRIPTS/setup.sql""")
    p.WaitForExit()
End Sub

The script itself was quick and assumed that the database and procedures existed already. It deleted all entries from the table and then added some dummy values. However, this method could be used to create the entire DB if needed, but does have the strong assumption that the computer using it has OSQL installed.

I won’t go into much detail about OSQL. OSQL is a tool that comes with SQL Server Tools that allows execution of sql batch scripts from the command-line. Its usage is explained well in the MSDN.

 


Monday, August 10, 2009 #

Authors deserve more credit than they get. Coming up with a simple example to illustrate a principle is harder than it looks. Good authors have to do this all the time. They provide the examples that become anecdotal when describing the concept to a friend or colleague, and most of us, myself included, never take the time to think about the process.

That was until today when I needed an example of Dependency Inversion to help explain the concept to a classmate. I must have thought up 10 or so bad examples before I finally came up with one that I felt was sufficient for doing the concept justice: Piping on a cake.

 

Here’s my explanation:

Say you are going to ice a cake and you want a very specific design for the piping as well as your favorite flavor. If you go to the store and buy a premade disposable piping kit that already has the design attached and the icing in the tube chances are you'll have to compromise and choose a kit that doesn't quite fit your needs.

If you decide to get your own piping kit that comes with interchangeable nozzles and no icing, then you can pick up your favorite icing as well and get exactly what you want. This is how dependency inversion works.

In a VB.NET program, the first scenario would be like this:

Dim piper As New PremadeStarShapedBlueRaspberryIcingPiper()
piper.pipe()

This is simple and straightforward, but not reusable. If you wanted strawberry or some other icing, you need an entirely new class! This means code duplication to accomplish the same tasks, which leads to bugs.

For DI, we would do this:

Dim piper As New Piper(starShapedNozzle, BlueRaspberryIcing)
piper.pipe()

This is a little more work up front, but if you think about it this work is happening in the background in the first example. In the first example the piper knows more than it needs to know about the nozzle and the contents, which makes it less reusable. This time, if I wanted Strawberry Icing I could just pass it to the piper and the piper knows that the ingredient is pipeable and that's all it cares about.

 

What do you guys think? Is there a better example you’ve used? Does my example suck? I’d love to hear your thoughts.