How To: Use a ListView to Make People Read a Statement Before Filling Out Your Form

I use a ListView to display a form based off of a data model that people fill out. I know that ListViews are meant for lists but I like that you can databind it to a source so you don't have to do any code behind. In my case, I just need values from a custom control within the ListView. More »

Yes, You Can Manage Solutions Using Different Source Control Providers

I had that question today as I just branched a piece of my current project into its own side project on CodePlex. I wondered since I was using TFS as the default source control plug-in in VS.NET whether I couldn't open my SVN-controlled solution. It turns out, you can! Apparently it is solution-scope and not application-scope, so in one VS instance you could have a TFS project open, in the other, your SVN project. That is my current state right now.

If you're wondering, the project is jForms.NET, hosted on CodePlex. I am moving my current code into the new C# project, improving it to support better flexibility for other people's needs. I need to finish it so I can subclass it for my current project to support custom Linq to SQL validation (i.e. no validation controls on forms!), which I will also release later too.

Easily Select Controls Using Complex Expressions [Sizzle]

If you've used jQuery before, you know you want that kind of amazing selector functionality for .NET. The good news is that you can get that kind of complex selecting using a free code snippet called Ra.Selector. It supports finding controls by type according to a predicate (boolean expression) and also recursively finding a control by ID. More »

LINQ-to-SQL Bug: Using Property Name vs. DB Column Name for GUIDs

I came across this error today when working with my LINQ-to-SQL insert logic. "Invalid column name 'Id'." At first, I didn't understand why it was throwing this error because the source name was correct, "MyColumnRowGuid."

I had Auto-Sync set to OnInsert and Auto Generated set to True. I found out that it wasn't my fault, it's an actual bug with LINQ-to-SQL. It won't be fixed until .NET 4.0, so I am left to my own devices.

How did I get around this without changing the column name? I just had Linq use a sproc for the Insert method, generated the ID on the SQL side and returned it as a parameter.

Announcing Ampersand Adventures [Orientation]

Announcing the new game, Ampersand Adventures, for incoming freshman at the University of Minnesota. Hit the jump to learn more! More »

A Sneak Peek at the BlackJack Game Written in WPF [Awesome]

Windows Presentation Foundation is a rich framework for building highly interactive and dynamic UIs. In other words, it works really well for simple games (one day I will try my hand at a 2D RPG written in WPF). It's easy for developers already familiar with .NET and its languages to leverage and create awesome client applications (or its web-based equivalent, Silverlight). Get a sneak peek at my BlackJack implementation after the jump! More »

A Word on Patterns [Seeing the Light]

When I started to teach myself .NET and programming, I think that I did a good job. I've been using .NET since 1.0 and have loved it ever since, with more powerful enhancements regularly released. I've used languages starting at HTML and ASP and to more 'modern' languages like C# and XHTML. I can program in a variety of different languages and environments, even dabbling in some C++. More »

What's the Hold Up, Yo? [Time is Short]

I have mentioned before my intent to post my Black Jack WPF implementation for public use and fun, to showcase object-oriented concepts and full use of animations/sounds/timelines in WPF. Really it's to show how even in .NET you can create games, if you put your mind to it. It is complete in the limited sense of the word, meaning that it runs fine and plays fine but is missing some AI logic.

To be frank, after reading some more books on OO-development in general, I realize in hindsight that it is not using the most efficient and accurate OO-design. In addition, it doesn't use any decent patterns except Observers and Singletons. For a WPF application, I should really be leveraging the MVVM pattern. I am currently in the process of studying different enterprise, Gang of Four, and other patterns that I think will benefit my development greatly. Because of this, I am holding off on releasing the app so that I can refactor it into a more educational lesson of good architecture design.

The other project I have whispered about is re-releasing Torrent Typhoon as an open source framework for torrent searching. I could just release what I have but what I have is not really suitable for the public. Nor does it offer would I really want to achieve: a server-oriented architecture. Can you imagine? Torrent searching on the cloud, from any client you want. You could download the framework and write a web application, Windows Forms application, WPF application, BlackBerry application, iPhone application, any application that can consume a WCF service, that's the dream I have.

What I am learning and studying now will eventually motivate me to "fix" my projects. When will that day come? Who knows. Months. Years. Just watch out for it.

Random .NET Tips & Tricks: Using, LINQ, Initializers, and Config Encryption [VB.NET]

I've just started my summer internship at General Mills and while I can't talk a lot about the different things I'll be working on or have seen (on pain of death), I can at least share with you the random tips I've picked up through my .NET training and work. More »

Get the First Paragraph of Text of a String [Helpers]

This is a simple PHP function (that can easily be replicated in .NET) that will take a string and get the first paragraph of text it can find. Works with HTML and plain text. Hit the jump for the code. More »

RegEx: Get the array of values for a SET/ENUM in MySQL [Snippet]

Need a fast and easy way to generate an array of the different values for a SET or ENUM data type in MySQL? I'll show you how in two lines of code. More »

Release: Phyllis Wheatley Community Lawyering Project [PHP]


We’ve released a new web site, the Phyllis Wheatley Community Lawyering Project.  The cool thing about this site is the jQuery animation on the homepage (above) that degrades gracefully for non-Javascript enabled browsers (i.e. progressive enhancement). We also customized the WordPress template to match the rest of the site, which was easier than I thought.

You can learn more about what we provided the PWCLP with on its project page.

This site was done for a real client in one of my classes and I’ve credited my team on the project page. I’d like to thank them again here:

  • Jena Barch, Content Editor
  • Michael Ramlet, Project Manager
  • Kevin Yu, Creative Input
  • Erin Soletski, Creative Input

Thanks team!

We've Won an Award! [Video Games]

I can now say I have officially worked on an award-winning video game. My boss, mentor, and friend, Zach Johnson, and I have been awarded the Maroon Award for Electronic Media and Education from the University of Minnesota Communications Forum for our work on Handy Andy 2: The Ampersand Trail video game.

Handy Andy 2 won an award!

Here's looking to win an award for next year's game we're working on!

Easy Data-Driven UI Using Windows Forms [.NET]

It's a common need in developing software to change control values based on data from a database or a property on an object. For example, choosing a customer name in a ListBox and filling in all their details into some form controls. You might first begin by implementing code in OnSelectedIndexChanged events, OnTextChanged events, etc. I will cover how to create a totally dynamic data-driven interface without using any UI logic at all. More »

So you want to be a .NET developer…

My friend and colleague Zach Johnson posted a great article on beginning web development. His post is mostly focused on PHP/MySQL due to his background, so I thought I'd expand on his excellent advice by talking about beginning .NET development. Take a look at what I have to say after the jump. More »
 1 2 3 4 5  
An error has occured while trying to process your request. Hide