About Me
My name is Steve and I am a learn-a-holic.
(all together now: “Hi, Steve!”)
I believe strongly that any day that goes by in which I don’t increase my knowledge is a wasted day.
I am a practicing software architect and engineer (yes, they are two different skills and roles) whose formal training and education is in the building architecture field (I hold a B.S. in Architecture from The Ohio State University and practiced ‘real’ architecture for years before formally moving into the software field for good).
I came to the profession of software development because of an unrequited thirst to investigate why things work the way they do and to uncover for myself the dark underbelly of the world of software engineering. I have a strong interest in software development as a process and understanding software projects’ contribution to the overall business (whatever that means).
I am a born skeptic and tend to challenge most assumptions thrown my way; I find myself to be sympathetic to most of the Agile-leaning philosophies but feel that the zealousness with which they are often espoused at the expense of dealing with reality on the ground to be off-putting.
I am currently employed as a Senior Software Engineer for SpringSource where I have assumed the role of Technical Lead and Community Evangelist for the Spring.NET Framework.
If you want to know more about the principles that guide my approach to the professional practice of software architecture and engineering, I would encourage you to take a look at this post.










Hi Steve! Great stuff you created for the “Summer of NHibernate” ! Excellent learning videos - much needed, too!
Something else, though: being a big CodeRush fan myself, I was intrigued by your keypresses that seems to turn a method from private to public - is that a “out-of-the-box” CodeRush feature / key shortcut? Or is that a custom shortcut you dreamt up
Also, I really like the “let’s cleanup the class” where you moved all the private member variables into one spot and all public properties into another - again, I was wondering if that’s a CodeRush feature, and if so, what key shortcut it might be assigned to by default.
Cheers! And keep up the great tutorial work on NHibernate!
Greetings from Switzerland,
July 25th, 2008 at 11:47 amMarc
@marc:
Glad you’re enjoying the content. re: the CodeRush stuff, the transition from private to public on the method you’re in (or the var declaration your cursor is on, or the class you’re in, etc., etc.) that’s a standard CodeRush keystoke, you’ll be happy to know. If you hit ALT+up arrow or ALT+down arrow you will cycle thru either ‘increasing accessibility’ (the up-arrow) or decreasing accessibility (the down-arrow) for the member your cursor is in-scope on.
The little trick to this (that I’m using in the videos and all the time in my real work) is that if you’re already at ‘private’ (the most-limited accessibility value) and you hit ALT+down arrow the accessibility of the member will ‘loop back’ to the top of the accessibility list (which, of course, is ‘public’). This little ‘trick’ works in both directions, it turns out, so you can always use ALT+up arrrow to go from ‘public’ to ‘private’ and ALT+down arrow to go from ‘private’ direct to ‘public’. FYI, this is actually all in the CodeRush integrated HELP/docs window and I *strongly* recommend anyone using CodeRush take some time and actually READ the whole file — its COMPLETELY chock-full of all kinds of this stuff. The only reason I even discovered this capability was that I watched someone do something similar with Resharper and thought “there must be a way to do this with CodeRush too” and found it in the manual.
Re: the re-org of the class source, that’s a (freeware) DXcore addin called CR_ClassCleaner and I talk about it at length in this post:
http://unhandled-exceptions.com/blog/index.php/2008/07/16/confessions-of-a-developer-tool-hound/
…where I also point out some gotchas about what you need to do to get it working under the latest version of DXCore (that you will no-doubt have if you also have a current version of CodeRush/Refactor Pro! on your system).
Hope this helps (even if its a bit long for a comment reply ).
July 25th, 2008 at 2:30 pmI really like the videos you have provided, it’s hard to find good technical videos and these are perfect! They are pitched at the perfect level.
Have you considered writing a book on NHibernate? I know there is one coming but giving the quality of these videos I would love to see you translate that into a book
August 9th, 2008 at 3:11 pm@DJO:
Thanks for the positive feedback; I’m glad you’re finding value in the content.
Re: a book on NHibernate, with the info on the internet its not clear to me that there is all that much value in programming books any longer as sales (generally) continue to fall terribly and survey after survey suggests that developers these days don’t tend to use books as their primary (or even secondary) learning tool any more.
Even new versions of previously VERY well-selling books like ‘Professional C# Business Objects’ (CSLA.NET) are being released in new editions that are mostly if not entirely free PDF downloads rather than printed material for-fee.
That (the decline in programming book sales) is actually one of the reasons that I opted for the screencast medium for this info in the first place — I frankly felt more people would download and watch a screencast series than read a series of well-thought-out blog posts (or a book) on the same content.
That said, if a publisher wants to approach me and offer me a decent advance on my writing a book about this, I’d be glad to take that call from them but writing it and THEN humping it around to publishers hoping for a ‘bite’ is a losing battle in today’s age, I’m afraid.
I’m (personally) sad by the current environment for programming books as I think randomly-googled blog posts are probably one of the WORST ways to learn anything new (though it makes great lookup material for AFTER you have learned something), but that does seem to be the result here — the internet killed the programming book just like it killed the newspaper.
August 10th, 2008 at 7:41 amJust want like to say thank you for sharing your knowledge.
August 27th, 2008 at 12:39 pmYou have done a fantastic job in this techinical video.
It’s one of the best technical training I have in years.
I have learned a lot from it and it’s well complement with the material that I have read(NHibernate in action etc…..).
You did a very good job explaining such a complex framework like NHibernate. Concise and meaty content.
I would to love hear your thought on Entity framework vs NHibernate.
Which is the better framework as a developement platform moving forward.
Current I am using CSLA framework for my project and would like to leverage ORM framework to do the CRUD operations.
Any suggestion/gotcha/tips for CSLA and Nhibernate?
Keep up the good works!
[...] faut y consacrer vraiment beaucoup de temps pour l’apprivoiser et c’est là que Steve A. Bohlen entre en action. Depuis le début de notre super été 2008 [...]
September 5th, 2008 at 4:29 amThank you so much for the first session.
October 23rd, 2008 at 7:28 pmEven as a french speaking developer knowing nothing about NHibernate, I have been able to understand every steps clearly.
Please let me know if you publish other video training in the .Net field.
Now the following session …
Thank you for your very clear explanations.
November 23rd, 2008 at 5:49 pmYour screencasts are excellent!
I would love to hear your thoughts about Linq vs NHibernate.
[...] Stephen A. Bohlen (вчера, кстати, он стал членом команды NHibernate) записал [...]
December 4th, 2008 at 12:00 pmThis is what the community needs. Thank you for promoting good values.
December 14th, 2008 at 4:51 am@Sean:
Thanks for the feedback (and the donation
) Every bit helps, no matter the size.
December 14th, 2008 at 8:57 amI love the videos you have provided for NHibernate, the vidoes are perfect. Best training vidoes I’ve ever seen. Will you consider making vidoes on WCF?
January 26th, 2009 at 9:42 amThanks for all your hard work
@Sandra:
Thanks for the positive feedback — I’m glad you are finding value in the work. Re: WCF, my initial reaction to that is ‘no’ since I’m not really a WCF expert and one of the things I think is VERY important in teaching anything isn’t so much being an ‘expert’ but certainly its a need to have a good command of your subject matter.
However, I’ve just begun to dig into reworking the architecture of an existing project completed some years ago and presently the leading candidate for a significant component of the system is MSMQ coupled with WCF to interact with the MSMQ server so who knows –? Perhaps by the end of the project I will be enough of an expert in at least that part of WCF to do some screencasts
Stay tuned~!
January 27th, 2009 at 10:16 pmHi Steve,
I’m pretty much a learn-a-holic too. Thats what lead me to your excellent NHibernate videos and also the Agile videos you have planned. Looking forward to those.
I’m trying to learn ways to learn better. Got the idea from the book Pragmatic Thinking and Learning. Good book; plants a seed.
We never really learn how to learn, it’s something we just take for granted we can do, and obviously we can learn, but is there a better way? Thats a rhetorical question I’m using to just pass on an idea.
Take it easy.
January 31st, 2009 at 10:46 amHi Steve -
Am a Solaris admin who recently discovered your web site. Have been enjoying it. Are you related to Donald Bohlen? He was my college advisor at SUNY-Fredonia.
Best Regards,
April 17th, 2009 at 12:17 pmPaul Osterman
New Hartford, NY
@Paul:
As a matter of fact, yes, Donald Bohlen is my father.
Which sort of begs the question: how does a Solaris sysadmin end up with a Music Professor as his advisor…?
(or more importantly, how does a musician end up as a Solaris sysadm?)
April 18th, 2009 at 6:41 am[...] guess what, I am quite impressed after watched training videos on summerofnhibernate produced by Stephen A. Bohlen. Also using open source code generator called MyGeneration made my work easy. Now when ever [...]
May 15th, 2009 at 10:45 amKudos on your work, Steve. Although I’m discouraged you never really mention the true reasons for all your knowledge, i.e. your roommate for two years at OSU.
July 9th, 2009 at 9:08 pm@Ray Brandt:
Of course, I owe everything I know to you!
Dude, send me an e-mail at the ‘Contact Me’ link on the right-hand sidebar and let me know how to get in touch with you — would love to catch up!
-Steve B.
July 10th, 2009 at 4:09 am[...] opportunity that has a value in excess of $1,000. The guy who runs the site and gives the talks is Steve Bohlen. Steve is a C# MVP and does
July 17th, 2009 at 8:41 amHi Stephen,
Kudos to you! You have managed to make dry and boring topics like NHibernate and Agile interesting and engaging. I really want to thank you for your efforts. I wanted to learn about NHibernate and your screen casts have been extremely helpful.
Thanks again,
August 31st, 2009 at 3:15 pmLuis
Hi Stephen,
This is truly excellent! I have been struggling with nhibernate for quite some time. As an ex-JAVA developer your series is phenomenal. Your efforts in putting this together have helped me out.
September 2nd, 2009 at 11:03 amHi Stephen,
Both of your Summer of NHibernate and Autumn of Agile series are just awesome. The tutorials provide more information than any other blog or a website. It is most definitely the No.1 resource I would recommend to anyone who is starting on NHibernate.
Thanks for all the effort you put in to creating these screencasts.
Thanks,
November 18th, 2009 at 5:36 pmKeaton.
@Keaton R:
Thanks for the positive feedback — I’m glad you are finding the content to be valuable!
Stay tuned b/c after nearly a year’s hiatus, Autumn of Agile will be resuming very soon~!
-Steve B.
November 19th, 2009 at 9:28 amHi Stephen,
My heartfelt gratitude for posting this series on Nhibernate. I never seen such a comprehensive tutorial on anything. Way to go Stephen, you are the best.
Great Work, Keep it up.
November 23rd, 2009 at 11:28 amAshwin
@Ashwin:
Thanks for the positive feedback; I’m glad you enjoyed the series!
More to come soon (promise!).
-Steve B.
November 23rd, 2009 at 9:21 pmHi Stephen,
Just finished watching the Autumn of Agile videos and I have to say they are absolutely brilliant. The series is easily best learning resource I have come across on the web (and I’ve seen alot recently!), the detail is fantastic.
I look forward to the resumption of the series.
I have the summer of nhibernate series to look forward to!
Keep up the great work.
Shahid
November 29th, 2009 at 3:28 pm@Shahid:
Thanks for both your kind words and you donation to assist in helping me fund the bandwidth it takes to make these available.
Stay tuned for the series’ resumption before the end of the year~!
-Steve B.
November 29th, 2009 at 3:36 pmHi Steve,
You are an excellent teacher. Very good at explaining… I have owned the Nhibernate in Action book from 2007/08 but always struggled with self teaching. And now I found these videos and spent the entire holidays going thru them and also deveoped my own project.
Thanks…
Ravi, Brisbane Australia
January 2nd, 2010 at 5:13 pmSteve,
Are you planning to post some more videos on Nhibernate ?
Thanks,
January 11th, 2010 at 4:07 pmAshwin
@Ashwin:
Probably not on NHibernate (specifically) for the time being but I am using NHibernate in the Autiumn Of Agile series that I am in the process of re-starting recordings for so you will see NH indirectly used in that series.
January 11th, 2010 at 6:51 pmHi Steve,
I’m watching your “Summer of NHibernate” videos and I must admit they are amazing (little bit problems because I’m using an up to date version of mbUnit ) thank you for showing to us this great screencasts, but I’m on session 3 and I need the original test data, I mean on the first source code file (from session 1) you have the script to create the database _without_ the data, I was wondering if you have a script which includes the data used for unit testing.
BTW I have the NHibernate in Action book but the book and your screencasts should be included in the same package the book as a reference and your videos as the actual course
Thanks,
February 23rd, 2010 at 10:47 pmMocte
@Mocte:
I don’t think I bothered to include the data because its not really needed. You can either type it into SQL Server manually (there’s not much to it) or use NDbUnit to load the data into the DB from the persisted XML and XSD files that are (should be!) also included in either that or the later downloads.
Thanks for the positive comments on the screencasts; glad you’re finding value in them!
-Steve B.
February 24th, 2010 at 4:49 pmOMG ! What a silly question I should have realized that the data was on an XML file on the source code archives before asking
Thank you, I’m going back to NHibernate sessions.
Regards,
February 24th, 2010 at 8:13 pmMocte
Mocte:
No problem; glad you found it.
-Steve B.
March 1st, 2010 at 10:10 amHi Steve,
What an amazing series this is. Its simply awesome. I discovered y’day and have been hooked up to it and have watched pretty much non-stop and just finished it. I never had good perception about ORMs but now I am sold.
Have a question related to session 10 (inheritance). In your GetCustomersWithFirstName test, you showed us that even if we are querying for Customer, it returns both Customer as well as PreferredCustomer. Suppose I don’t need to fetch PreferredCustomerSince and DiscountRate properties rather fetch ONLY Customer properties, is there a way to implement that. So basically, I still want the query to return 3 Customer objects, but ONLY return Customer objects, not 2 Customer and 1 PreferredCustomer as it does today.
Thanks & Regards
March 10th, 2010 at 9:30 pmSantosh
I was waiting and searching such kind of NHibernate demonstration video for years.I saw the link from an answer for a question on stackoverflow.It is amazing and perfect.
Well done.Bravo.
Wonde
March 23rd, 2010 at 2:00 pmHello Steve,
First of all I need to thank you for the excellent videos you have posted.
I am not sure if this is the right way to contact you, but I have listened to all the videos you posted on Nhibernate and loved it. It was while ago that I saw all the 15 videos. Now armed with that knowledge you provided, I set out to create a website for my colleague this month and now I am getting stuck with problems.
I started using NHibernateSessionPerConversationModule.cs and everytime there is a page request for some reason the Application_BeginRequest gets fired twice. And it ends up throwing the follwoing messages.
1) Object reference not set to an instance of an object.
When I dig deeper here is what i see in the follwoing error messages
base {System.NotSupportedException} = {”This operation requires IIS integrated pipeline mode.”}
CurrentNotification = ‘HttpContext.Current.CurrentNotification’ threw an exception of type ‘System.PlatformNotSupportedException’
Iam using Visual studio 2008 on my windows 7 laptop and IIS server ( Version 7.5.7600.16358 ) . Am not sure if I have to change any settings in the integrated webserver of VS 2008.
Apart from this, I have a few other simple questions
I have a Load table and a Customer Table and a Load Type table.
Now Load table has a foreign Key to both Customer table and Load Type table. So basically in the Load object that gets generated using Mygeneration tool, I get a properties of Customer object and LoadType object and in the Load.hbm.xml
we have the follwoing
Now when I insert, a new row into the Load table using Nhibernate, in order for the foreign keys ( customerId and loadTypeid ) to get populated ( with existing rows in the Customer and LoadTypetable ) should I always need to retrieve the existing cutomer object and existing Loadtype object and then add to the Load object and do a Save() on it ?
Is there any way I can just insert the CustomerId and LoadTypeID like
Load Ld = new Load();
Ld.Customer = 1;
Ld.LoadType = 2;
instead of
Load Ld = new Load();
Ld.Customer = CustomerDataProvider.GetById(1);
Ld.LoadType = LoadTypedataProvider(2);
Hoping for some help and thanks in advance.
Ashwin
March 28th, 2010 at 4:46 pmThank YOU!
Wonderful videos and great source of knowledge.
Question:
May 3rd, 2010 at 6:53 amHave you evered considered making a video with Linq to Nhibernate?
Dear Steve,
What a great person you are because you are sharing knowledge and in a ways which so easy to digest. I loved your screen casts on Summer of NHibernate.
I would love to say Thank you very very much from my side and from every person who benefited from these videos. They are great pieces of work.
Yours Sincerely,
Ittar Waqas
June 13th, 2010 at 10:18 amDear Steve,
things looks very intresting by seeing your blog and NHibernate videos .
am new to Spring.net and NHibernate, can you suggest me some videos on spring.net and NHibernate to take it ahead. it will be great help for engineers like us to start up with it.
awaiting for your replay asap
Warm regards
December 19th, 2010 at 8:12 amkiran
Steve, thank you so much, you’re just a wonderful teacher.
May 22nd, 2011 at 5:16 amLectures are excellent. By the way, why do they not publish on pluralsight.com? I think, a lot of people must to see it =)
@krogin:
Thanks for the kind thoughts — I’m glad you enjoy my style of teaching. You should suggest to the folks at Pluralsight that they come talk to me
June 11th, 2011 at 6:15 pmFine and well written article. I like it a much. I hope that you can still provide in the future articles like that. I will subscribe in case you do.
November 14th, 2011 at 8:36 pmHi Steve, you video is really helpful, excellent instructor.
Thank you so much.
Greetings from Canada
January 20th, 2012 at 7:24 pmSimon
things looks very intresting by seeing your blog and NHibernate videos .
March 13th, 2012 at 2:57 amSteve, thank you so much, you’re just a wonderful teacher.
March 13th, 2012 at 2:58 amNike brand shoes help the buyers to select the best pair of nike dunks high that they want to keep for themselves. The
April 3rd, 2012 at 12:16 amWomens Nike Dunks Heels
is both fashion and practical that it is time to own one pair.
Christian Louboutin celebrates 20 years of iconic designs with a capsule collection compiled of favorite pieces from decades past. The Christian Louboutin Sandals is suitable for women who pursuit high quality of live, welcome to our christian louboutin outlet to own one pair.
April 14th, 2012 at 9:54 pmWelcome to choose the Franklin & Marshall Polo T-shirts which is easygoing, comfortable and everyday-proof from our franklin marshall outlet online shop, you can get all kinds of 2012 newest style franklin marshall clothing in our online store.
April 15th, 2012 at 11:35 amIf you do not own one pair of Christian Louboutin Sandals in this season, you can come to our Christian Louboutin Uk outlet online shop to have one pair Christian Louboutin Pumps with lowest discount.
April 27th, 2012 at 10:35 pmWhere is the best place for young people to shop cheap and high quality clothes.The answer no doubt to be the abercrombie and fitch outlet abercrombie and fitch outlet store.When you see abercrombie fitch outlet abercrombie fitch outlet store at the first sight,you may love it.We think abercrombie & fitch outlet will be your first choice when you want to shop online.I love abercrombie fitch outlet too.
May 10th, 2012 at 4:09 amThe Nike LunarEclipse+ might look old school but they’re definitely new school and ready for your active lifestyle. The nike lunar shoes is considered Design for high performance and low environmental impact for traction and durability.
May 11th, 2012 at 6:56 am