Scott Hanselman

ASP.NET MVC Samples, Oxite, and Community

December 17, 2008 Comment on this post [36] Posted in ASP.NET | ASP.NET MVC | Open Source | Programming
Sponsored By

I am writing this sitting on a plane between Joburg and Cape Town, on the way to a User Group meeting to talk about ASP.NET MVC. As I said at the Joburg User Group meeting, ASP.NET MVC is young and we (that is, we the community, not just We, the Microsoft) are still learning about what a "pretty" or aesthetically pleasing MVC application looks like. We have some ASP.NET MVC OSS apps, some Monorail apps, some Rails apps to look to, some Django and Java apps, but we are still finding our way in our spin on this old pattern.

There are still a number of ViewEngines that aren't the default WebFormsViewEngine that are growing in popularity. Folks are familiarizing themselves with the Repository Pattern and other patterns. Folks who had heard of Dependency Injection but hadn't used it are starting to use it. Testability still isn't foremost on many minds.

There are certainly Alpha Geeks, Loud Programmers, or just Talented ones that are impatient with both Microsoft and the community. Why can't they just go from Point A to Point C and skip B?

ASP.NET is mature, and ASP.NET MVC is new. We are all learning, every day. Many folks put themselves out there, in public by sharing their experiences. Quentin Tarentino said:

"He who is most likely to make declarative statements is most likely to be called a fool in retrospect."

There's a lot of Twittering and Blogging going on about Oxite, a new Open Source CMS from a group within Microsoft. It's getting a lot of press, some deserved certainly, but mostly hyperbole. "Microsoft takes dead aim at Wordpress?" Seriously, come on. How come DasBlog or SubText doesn't get that kind of hyperbolic love? ;) "Microsoft predicts DasBlog Global Dominance." (kidding!)

I would encourage you to download the source for Oxite, as I would encourage you to download and read all ASP.NET MVC Open Source applications. Develop your own sense of Code Smell by reading, writing and learning from people you trust. Just because it's called Official ASP.NET MVC Petshop or Contoso MVC Bank or even MVC Storefront doesn't make it gospel.

If you think Oxite or an app that ScottGu created for his blog is the File | New Company project you've been looking for, you'll be disappointed. It doesn't exist yet. Even if it did, you'll likely never be able to Copy/Paste your way to glory.

Oxite is Open Source. If you don't like it, and there are very valid reasons today for concern, I would sincerely encourage you to refactor it and share the results. Follow the project and see what the next release looks like. Just like the ongoing BabySmash saga, let's work as a team to learn what ASP.NET MVC Patterns and Anti-Patterns are. All code has the potential to provide guidance, but you decide if it's a pattern or an anti-pattern. It doesn't matter if Don Box or ScottGu himself wrote it.

I think the team that built it would appreciate it if lots of folks blogged their own "Oxite Code Review" post with improvements and commentary. I want to point you to Rob Conery's most excellent analysis of the situation, and the Oxite code. His review is unblinking, fair, honest, while still kind in tone. Those Hawaiians are just so darned nice.

Javier had an excellent comment on Rob's blog here that reminds me again of BabySmash. I wrote BabySmash wrong, on purpose, with a WinForms-state of mind. I am still working on it today, as it just doesn't smell right.

I think one important thing to note is that Oxite serves as a good example of viewing an MVC implementation from a "WebForms state of mind". This is just my thoughts but I think it would be beneficial to take Oxite and ALTer it a bit to show the flexibility of the MVC framework.

It is a non-trivial think to put oneself, or one's code, out into public. Sometimes it's great, sometimes not so much. But fair, even harsh, criticism can still be constructive and positive. Don't be afraid, Dear Reader, to share your code if you've got it. Some will say it sucks, some will built a corporation around it. Ultimately you have to ask yourself if it was good code, if you learned from it, and if you'd write code like it again.

Rob, ScottGu, Dave Ward and Michael Bach and I are working on an ASP.NET MVC site. It'll be open source, and it'll likely make some percentage of you happy, and some percentage of you sad. Hopefully there will be more of the former, and the latter will share their wisdom and experience and help us make it better. I like being a part of this community for that reason.

The Ruby community's spiritual leader, Matz, is legendarily kind and deferential. As Allan Stevens points out, they say "minswan" meaning "Matz is nice, so we are nice." That definitely jives with the feeling of "ubuntu" and community I'm getting here in Africa.

Be nice, my friends. Write good code, and stay in touch.

I now return me to my regularly scheduled vacation in Africa.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

South Africa 2008 - Visiting the Mall in Soweto

December 16, 2008 Comment on this post [18] Posted in Africa
Sponsored By

CIMG8328 Soweto means South Western Township. I drove the family to the Maponya Mall in Soweto today for an outing. From the city's website:

Soweto is the most populous black urban residential area in the country, with Census 2001 putting its population at 896 995. Thanks to its proximity to Johannesburg, the economic hub of the country, it is also the most metropolitan township in the country - setting trends in politics, fashion, music, dance and language

Soweto celebrated its hundredth birthday in October 2004. A chronology of key events, the June 1976 uprising, and the centenary celebrations.

The city has made the redevelopment of Soweto a major priority, including electrification, tarring of roads, and the building of public facilities and housing.

You may think of ghettos and shacks when you hear the word Soweto, and if you look for them you'll find them, but I've really noticed a difference in Soweto in recent years. I haven't got a tale of rich people visiting poor people as a form of tourism. The mall was as nice a mall as I've ever been to, including malls in Asia (which are REALLY nice). We didn't go to the cultural center (yet) or Mandela's house. We went to the mall. And it was lovely.

There's a rising black middle class, and they were all at the mall today. The whole place was decked out for the holidays, which I find slightly funny because it's quite hot and I just think snow when it's Christmas. Anyway, there was a huge tree in the center part of the mall.

We ate for a very reasonable price at Nando's, which is way better than KFC. We fed a group of 10 for less than US$30, as the US$ to the Rand is a favorable 1:10, as opposed to the 1:6 or 1:7 it's been on previous trips.

One of the things that strikes me about the mall in Soweto is how "put together" everyone is. Great outfits, cute hair, folks are fit and sharp. I felt underdressed, completely. If you go out, you'd better look nice.

CIMG8338I did also feel White, as I was alone in that sense, but didn't feel uncomfortable. It was actually very interesting (as it always is) as it's a reminder as to how my wife feels. As a white guy, it was like dropping into the movie "White Man's Burden," or a photo negative. I was effectively an albino. One actually forgets one's color in these situations, and after a few weeks if I pass a mirror it takes a second to remember my pastiness. Fortunately I am sporting a pretty darn good beard so I'm brown from the neck up. ;)

The Soweto mall has everything any other mall in the world, so it was great for Christmas shopping. My wife's younger brothers are moving out of the house so we are in the market for a fridge for their apartment.

Not a really exciting post, this, but rather a mundane story about holiday commerce. We drove to Soweto, we shopped, we returned. I drove on the left. This was my day, until tomorrow. If you visit Joburg, definitely check out Maponya Mall in Soweto.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

South Africa 2008 - Emergency Taxis (Combis)

December 14, 2008 Comment on this post [19] Posted in Africa
Sponsored By

taxi_overload Taxis in South Africa are not safe. I'm not talking about metered cabs, I'm talking about what we called "ETs" or Emergency Taxis in Zimbabwe. Basically Minibuses on a fixed route, stuff with people. Almost always Black People.

For many (most?) this is the only way to get around. You've either got a car, walk, or take a Taxi. There are nearly 130,000 taxis in RSA. They have no seat belts, or the belts are not used. They often run with the doors open. Once in Zimbabwe I was asked to hold the passenger side door to look shut as it had fallen off the hinges.

They'll pack you in like you've never been packed into a vehicle. You'll sit on laps and hang off the side. You'll hold on for dear life and listen to fights and honks. Sometimes a cab will encroach on another's turf and you're in the middle of it.

You stand by the side of the road in known, but unlabeled spots, and you make a hand signal. Point a finger up to say you want to go to town. A finger pointed down if you want a local taxi for somewhere near. There's many hand signs that you just pick up as lore. For example, there's a route down the street that will take me to the Clearwater Mall for 6 Rand (about 60 US cents) per person. I hold one finger down, and say "NgiyaeClearwater" to make sure they are going that way, and I'm off. I could just say "Clearwater" or speak English, but I feel that if I speak Zulu, or whatever the local language is, depending on where you are catching the taxi, that I'll be less likely to be messed with or talked about. This might just be me, but I've found that if you have a great accent with even a few words, folks assume you're totally fluent until proven otherwise. I'm not...I have the Zulu-speaking abilities of a kindergartener, but I can click effectively.

So far, in eight years, I've seen two other white folks in taxis. It's apparently just not done. I've also been harassed (in Zulu) by a drunk man who said "they take our land and now they are riding in our taxis."

All this said, I wouldn't recommend taxis in South Africa if you have another option.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

South Africa 2008 - Communal Living and Relatives in Close Quarters

December 14, 2008 Comment on this post [19] Posted in Africa
Sponsored By

image I've been driving around Johannesburg getting my head used to driving on the left side (I credit my excellent hand-eye coordination to many years of video game playing. I can "remap" very easily) and after a trip this afternoon to Makro (the South Africa "Costco" giant wholesale warehouse equivalent) I returned home to find no less than twenty souls in the house.

I am immersed in Black (mostly Zulu, but some Sotho) culture here, so I can't speak to White South African culture, but from what I can tell, when someone is in town, Black Folks come over. We had visitors from Lesotho, from Pretoria, from Zimbabwe, from all over.

All of this is a culture shock to me each time. It's at once comforting and grating. Predictable and chaotic. Here's the parts, even after nearly a decade of marriage, that I haven't gotten used to.

What's for Dinner?

Folks just show up. No call, no write, just, hey, what's for dinner? But the interesting part is that dinner is never mentioned. People arrive and sit on the couch. The meal is completely implied. We had a meal at 4pm. We'd already had lunch, and we had dinner planned, but there was a "critical mass" of humans, and food started showing up. At some point we were having a braai. Someone started looking for a goat to slaughter, while someone else starting wondering if it was allowed in city limits.

Relatives arrived, each one that showed up brought five others we couldn't quite place. So-in-so's uncle's ex-wife's daughter's sister and the like. And their three kids. And they stay. For a long time.

There are a couple of things I can hear my father saying, in my head, that would never be said in South Africa.

"Don't let the door hit you on the ass on the way out."

"You don't have to go home, but you can't stay here."

Folks may scandalize and gossip, but they'll never let you go hungry or without a place to sleep in South Africa.

Start Inflating Beds

At some point it's clear that folks aren't leaving so inflatable air beds are brought out. Blankets appear from no where. More blankets that you'd think could comfortably fit in a normal sized house. I don't know where they come from nor where they disappear to, but sleeping quarters are quickly assembled by social pecking order.

If you're a teenager, you get whatever couch or scrap of floor is left. If you're an elder, you get a proper bed. Boys under 30 on air mattresses, families in rooms, girls on couches, everyone else find a spot. Just wait until morning as folks get up earlier and earlier to try to be the first in the bath. Sucks to run out of hot water in a three bedroom house with 19 people.

Women in the Kitchen, Men in Front of the TV

At some point, like silt separating while panning for gold, the house starts to split with women in the kitchen area and men in the living area. Or, manning the braai/bbq. Grunt. Men. Fire!

Oddly, as a Sensitive White Man, it's a little unclear where I am supposed to be, so I end up flitting between the two. The women don't find me threatening, rather they find me fascinating and I'm peppered with questions. The men are disappointed to learn I can't even fake caring about soccer. Ah, the Pirates! No, Ajax! No, Bosso! Ah, whatever. Is Manchester a valid answer? Did we get a home run?

Who moved my Cheese?

My wife loves Flakes and Crunchies. You can find them in the states, but they are definitely a specialty item. Certainly not available everywhere. We try to get a box and smuggle them back to the states when we go. I bought her five Flakes today and put them in the fridge so they wouldn't melt in this oppressive Christmas weather. I went to tell her about them, and literally by the time I'd returned there was one left, and four wrappers strewn about.

In the US Judicial System you are "innocent until proven guilty" but this is reversed in many countries. In my household and in the households I've been raised in, food in the fridge is "someone else's unless you know it's yours." Here, it seems, that anything not bolted down or labeled is edible.

I have since hidden my stash of Black Cat Peanut Snacks under my pillow.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Hanselminutes Podcast 142 - Week One in South Africa - Vusi

December 13, 2008 Comment on this post [2] Posted in Africa | Podcast
Sponsored By

My one-hundred-and-forty-second podcast is up. Scott's on holiday in South Africa with his family this month. Rather than doing repeats or "best of" shows, Scott's doing man-on-the-street interviews and uploading them over cell phone. In this episode, Scott talks to Vusi, an IT sales manager from Johannesburg.

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show!

Building quality software is never easy. It requires skills and imagination. We cannot promise to improve your skills, but when it comes to User Interface, we can provide the building blocks to take your application a step closer to your imagination. Explore the leading UI suites for ASP.NET and Windows Forms. Enjoy the versatility of our new-generation Reporting Tool. Dive into our online community. Visit www.telerik.com.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.