Ruminations of J.net idle rants and ramblings of a code monkey

.NET Dojo: ASP.NET MVC

.NET Stuff | Events | Web (and ASP.NET) Stuff
First, what's this .Net Dojo stuff? Well, here it is ... it is a new series of events (I'm hoping monthly) that we will be having monthly to help developers hone and sharpen their .Net Kung Fu. It will be a combination of lecture and hands-on labs ... lecture to explain the concepts (of course) and hands-on to let you get your fingers dirty playing with the technology. Since it is hands-on, you will need to bring a laptop to do the labs and (possibly) install some additional prerequisites before the session (these will be listed, of course). They will be held at the Houston Microsoft office from 1:00 PM to 5:00 PM and cover a wide range of .Net topics. I'm also hoping to be able to get some of the technical leaders here in Houston to deliver some of the sessions ... so that you'll be learning from the best around. Ben Scheirman of Sogeti has volunteered to deliver the very first .Net Dojo on the ASP.NET MVC Framework. (Didn't I tell you that I wanted to get the best around?) Here are the details: Overview: ASP.NET MVC is one of the key new features that will be included in .NET Framework 3.5 Service Pack1. It provides a framework that enables you to easily implement the model-view-controller (MVC) design pattern in your web applications, helping you build loosely-coupled, pluggable components for application design, logic and display. While not a replacement for traditional ASP.NET WebForms, ASP.NET MVC does provide a compelling alternative for developing web applications and better facilitates test driven development (TDD) in web applications. This workshop will dig into what ASP.NET MVC is, what it does, and how it is different from WebForms. What you will learn: Through a combination of lecture and hands-on labs, attendees will learn how to create ASP.NET MVC applications using Visual Studio 2008 and how to work with the key components of an ASP.NET MVC application. Additionally, they will learn how to test their MVC components and applications using TDD principles. Prerequisites: To fully participate in this workshop, attendees will need the following: An open mind A working knowledge of ASP.NET, C#, HTML and CSS. A laptop with: Visual Studio 2008 Professional or higher (Trial is OK) ASP.NET MVC Preview 4 (available as a separate download. A CD-ROM drive to load additional components and lab files. Sign up here ... but hurry ... space is limited!Hope to see you there ...

A Gaming User Group?

Events | User Groups
Well ... something like that but not exactly. There's a new user group starting up here in Houston that's going to focus on gaming ... not playing games, but creating them. They are going to focus on the tools, techniques and tips that the average developer needs to create games for XBox or Windows using the XNA toolkit.  It's called the Houston Gaming and Media User Group (HGMUG); you can check out their web site at www.hgmug.org or out on CodeZone at https://www.codezone.com/UGEventView.CodezoneCom?EventID=5160.   There's also a Facebook Group that you can join (if you are on Facebook, that is) at http://www.facebook.com/pages/Houston-TX/Houston-Gaming-and-Media-User-Group/16844147291. They'll be meeting for the first time this coming Thursday (5/22/2008) at the Houston Microsoft office where they'll get started with some history, current theory and some best practices for game development in addition to an overview of the XNA toolkit. And, yes, there will be a death match to cap off the evening (it wouldn't be a gaming user group without it, now would it??). Hope to see ya there!

Austin Code Camp ...

Events | User Groups
Well, I'm heading up to the Austin Code Camp on Saturday. Looking forward to it ... I'll be giving a talk on Linq performance at 1:00 PM. I've been doing some more tests (after the previous blog entry) and I've noticed some pretty interesting things about Linq performance versus traditional ADO.NET. I won't go into detail here ... that'd be spoiling the surprise ... but some of the results were certainly not what I was expecting. And ... since it looks like it's going to be a beautiful day, I'll be riding my lovely Ninja up there! :-) I won't go into the details of what I found just yet ... I'm going to leave that for the code camp ... but I will post the results here over the next week or two. There will be separate articles about each of the different tests and some of the interesting things that I found as I dug around with Sql Profiler to see exactly Linq for Sql was doing in the background.

Launch in Second Life ...

Events | Second Life
This Saturday at 9:00 AM SLT (that's Second Life Time ... or Pacific Time), we will be having the Visual Studio 2008/Windows Server 2008/Sql Server 2008 Launch event in Second Life. This is the first event of its kind ... yeah, there have been user group meetings, but nothing quite this big, quite this dramatic or ground-breaking. This is a full-on launch event held in a Virtual World with folks from around the globe participating. It's pretty exciting stuff.  I won't repeat all the details ... Zain has done that already, so just hop on over to his blog and check it out. 

Some stuff from Zain's session today

.NET Stuff | Events
Hung out today to watch my buddy Zain deliver his Microsoft Across America presentation today. Cool stuff and he did an awesome job (as always)! So ... some resources that were mentioned out there today: OWASP (Open Web Application Security Project): www.owasp.org. All kinds of great stuff here.  Houston OWASP Group: http://www.owasp.org/index.php/Houston. David Nester runs this.  Great guy ... and great content. For completeness, two other great resources for security stuff: Microsoft Security Central: http://www.microsoft.com/security/default.mspx.  One place for all kinds of security related content, from end-user to advanced administrator. MSDN Security Developer Center: http://msdn2.microsoft.com/en-us/security/default.aspx. Good resources for security-conscious devs, including how-to videos and more. Also has a link to Michael Howard's blog where you'll find all kinds of good security stuff. He's one of the authors of Writing Secure Code. And that book changed my life. I am not kidding there. It was eye-opening and terrifying the first time I read it. When removing all of the modules in IIS 7, it returns an HTTP 401 (Unauthorized). This is different from HTTP 403 (Forbidden). With 401, authentication will make no difference. Here is the raw response: HTTP/1.1 401 UnauthorizedServer: Microsoft-IIS/7.0Date: Fri, 11 Jan 2008 01:51:02 GMTContent-Length: 0 I got this from Fiddler. Now, why it didn't work for Zain, I can't say. I think he was jinxed. ASP.NET Membership Provider Stuff Here's where the Access Providers live: http://msdn2.microsoft.com/en-us/asp.net/aa336558.aspx.  There is also a bunch of good stuff for creating providers there. Here's a web cast that goes through it as well: http://www.asp.net/learn/videos/video-189.aspx. And, if you are going to do your own provider, keep your eyes here. I'm going to talk about hashing shortly ... this is the best way to store passwords! Adding users to ASP.NET membership in code (like when you need to import several thousand records): System.Web.Security.Membership.CreateUser() There a few overloads for this that have different options (of course).  Now ... the other thing that you can do is to create a membership provider that uses the existing database. There's a couple of ways to skin that cat. (Poor kitty!) I think that's all ... I'm out!

ASP.NET Perf Tips: Second Life

Events | Second Life | Web (and ASP.NET) Stuff
I just finished my presentation on ASP.NET Performance Tips for the Second Life .NET User Group. I must say ... it went very well! The feedback from the attendees was very positive and I think everyone learned something ... if not several things. In fact, I did have one attendee say "I didn't think I'd learn anything here, but I did!". That just makes me feel all warm and fuzzy inside. So ... some links ... First, Fritz Onion's blog with the perf results that I referred to (there are actually 2 entries): http://www.pluralsight.com/blogs/fritz/archive/2004/10/19/2892.aspxhttp://www.pluralsight.com/blogs/fritz/archive/2005/02/14/5861.aspx And ... the PowerPoint deck and a sample of Async Tasks: http://downloads.microsoft-j.net/Performance_tips.zip.  One note: this is the deck that I use for RL presentations.  I trimmed some of the text from it so it would rez better in-world.  But I think the additional notes will be helpful.

Second Life DNUG Presentation ...

Events | Second Life
On January 9 at Noon SLT, I will be delivering a presentation on ASP.NET Performance Tips and Tricks.  I'll be covering some things are may be somewhat obvious, some things that are applicable to all .NET applications and finally, as most importantly, some tricks specifically for your ASP.NET applications.  I won't say much more 'cuz I don't want to spoil the fun.  But I will say that there are a couple of tricks that will knock your socks off.  So ... if you're in Second Life, come join us at the Microsoft Island. For more info, see the Second Life .NET User Group web site at www.sldnug.net. 

Thoughts on "We Are Microsoft"

Events | Idle Babbling
There is an initiative here in South Central that we are working on called "We Are Microsoft".  What is it?  Well, we're collecting charities that need help with coding issues and developers that, well, write code (duh!) and matching them together.  Over a weekend, the coders will build solutions to help these charities do their important work.  It's a beautiful thing, but more on that in a minute.  I had a conversation with Toi Wright today ... she's the user group leader that's really doing all of the leg work to make this happen.  (Thanks Toi!!!  You rock!!!) We got to talking not about what we hope that the charities would get from it (that was pretty clear), but what the developers would get out of it.  That feeling, that sense, deep in their soul (and this is very hard to describe in words) that they have made a difference, however small, and helped make the world a little better.  OK, those weren't the exact words, but that was the gist of it.  As developers, we tend to love what we do.  We love going in there, day after day, sitting in front of a computer screen and slinging code.  We love solving problems, the tougher the better.  That's just how we are.  We put a piece of ourselves in every line of code that we write.  But to what end?  To solve a business problem?  To improve efficiency?  To maximize profits?  I'm not saying that these are bad things ... I am a staunch capitalist to my core ... but are they making the world a better place?  Do we walk out of the office with that deep singularly human feeling that we've made a difference in something that is greater than ourselves?  (Yeah, I'm showing the Lit major/poetry reader/sappy romantic side of me ... deal).  I can tell you from experience that the answer is no.  Yeah, we may console ourselves that we help people get to their families earlier ... but that's a stretch.  But that's really not what this conversation with Toi made me think about.  Not at all.  Nope.  It made me think about the project that is, to this day, the best and most important project that I've ever been on. And I've been on some big projects ... like multi-billion dollar eCommerce projects and such ... but none of them hold a candle to this.  I mentioned it to Toi and, even now, two years later, it still brings up something up in my heart and soul that defies explanation.  This project made absolutely no money whatsoever.  But it helped people.  In a very real way. It made a difference in their lives.  It was, and still is, bigger than any of us on that team.  For those of you that read my blog back then, you'll know that this was KatrinaSafe ... which is now the Red Cross' Safe and Well web site.  We built it to help bring families back together after the worst disaster in American history.  I remember well the day we got our first positive matches ... matching people with family members that they lost track of in the ... confusion?  Well, for lack of a better word, that works. We celebrated. We jumped for joy. What we were doing was beginning to show the results that we were hoping for. We then started getting emails about how we helped people ... what it meant to them. One I remember well is from a mother who was separated from her children in the buses out of New Orleans. She was worried sick. She found them, and where they were, on the site. She spent the next two days getting there, doing whatever it took. Grown men wept hearing this email. There was not a dry eye in the place. Oh, yeah, and lest I forget to mention, we had sponsorship from "On High" at Microsoft.  At the very, very, very highest levels. Up in the stratosphere. It made me proud and humbled to work for a company that would do as much as it could.  Not to make money ... it wasn't about making money (the PR didn't come out until months later).  It was about doing what's right and money was no object (that is almost unheard of at MS ... we do have budgets). Microsoft is very cool that way. We will step up to the plate and do what needs to be done. It's part of our culture. I was fortunate to be in the right place, at the right time, to be a part of that. It was truly a blessing. Never in my life have I been so happy to work 18 hour days (we did). I imagine I'll tell my grandchildren about it. It is that important to me. Yeah, there was a cool eWeek article about it, but that's not what matters. Even without that, I'd feel no different. It wasn't gravy ... it wasn't the icing on the cake ... it was a side dish that you could do without but ate anyway. (And I'll never tell the entire story behind that article!!) This is the most important part! This is what we are trying to give developers here.  The chance to be something bigger than themselves.  The chance to touch people's lives, to know that they made a difference. To look back years later and say "Hey, I really did something important here."  It's a rare opportunity.  I'll be there.  Wouldn't miss it.  I know how it feels afterwards. I know what it means. You can't put a price tag on that.  It's happening in Dallas, so if you're in Dallas, you have no excuse. Those of you in Austin, Houston, San Antonio ... you're a drive away from Dallas.  Why not drive up there for the weekend?  I can guarantee it'll be worth the gas.  Also ... for those of you not in Dallas, if you want to do this in your city, for charities and groups local to you, leave a comment here. I can't make any promises ... but we'll try. Let me know where you are and I'll make sure that the DPE folks in your area hear about it. And, if it's in my area (South TX, LA) or my buddy Chris Koenig's area (North TX, OK and AR), we'll do everything we can to make it happen. That I can promise. This is a program that should be nationwide.  Heck, it should be worldwide. (Think globally, act locally) There are folks working hard to make the world a better place out there.  We, as developers, have the skills and the talent to help make that happen. This is better, this is more, than just donating money.  This is giving a piece of your heart and soul. And, I gotta tell ya, it gives you warm and fuzzies all over inside. And that is a Good Thingtm. So ... no more sappy stuff for now.  Signing out.  Happy Holidays to all ... this is, after all, a season of giving, right?  The answer is 42.  What is the question?  (Sorry ... too serious for too long ... had to do something ...)