This is a promotional post - but I do use Typemock Isolator and believe in this product.

Unit Testing ASP.NET? ASP.NET unit testing has never been this easy.

Typemock is launching a new product for ASP.NET developers – the ASP.NET Bundle - and for the launch will be giving out FREE licenses to bloggers and their readers.

The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both Typemock Isolator, a unit test tool and Ivonna, the Isolator add-on for ASP.NET unit testing, for a bargain price.

Typemock Isolator is a leading .NET unit testing tool (C# and VB.NET) for many ‘hard to test’ technologies such as SharePoint, ASP.NET, MVC, WCF, WPF, Silverlight and more. Note that for unit testing Silverlight there is an open source Isolator add-on called SilverUnit.

The first 60 bloggers who will blog this text in their blog and tell us about it, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET dedicated blog, you'll get a license automatically (even if more than 60 submit) during the first week of this announcement.

Also 8 bloggers will get an additional 2 licenses (each) to give away to their readers / friends.

Go ahead, click the following link for more information on how to get your free license.

In March 2006 Billy McCafferty wrote an article on CodeProject about NHibernate best practices using ASP.NET. He took the time to discuss the advantages of using an O/RM with ASP.NET as well as information on Dependency Injection / Inversion of Control with Windsor. After a period of time, Billy created a new project on Codeplex (later moved to Google Code) that expanded upon those ideas and principals. This new project is named S#arp Architecture. From the S#arp Architecture home page:

"Pronounced "Sharp Architecture," this is a solid architectural foundation for rapidly building maintainable web applications leveraging the ASP.NET MVC framework with NHibernate. The primary advantage to be sought in using any architectural framework is to decrease the code one has to write while increasing the quality of the end product. A framework should enable developers to spend little time on infrastructure details while allowing them to focus their attentions on the domain and user experience. Accordingly, S#arp Architecture adheres to the following key principles:
  • Focused on Domain Driven Design
  • Loosely Coupled
  • Preconfigured Infrastructure
  • Open Ended Presentation
The overall goal of this is to allow developers to worry less about application "plumbing" and to spend most of their time on adding value for the client by focusing on the business logic and developing a rich user experience".

 To help accomplish this S#arp Architecture has introduced a project template for Visual Studio 2008. This project template creates the solution, all of the projects, and just recently added a CRUD Scaffold generator. In addition the project template, S#arp Architecture uses ASP.NET MVCCastle Windsor for Dependency Injection / Inversion of Control, NHibernate and Fluent NHibernate.

One of the things I appreciate the most is the time it saves when I am setting up a new project. I also like the flexibility it has. While the default presentation layer is ASP.NET MVC, this could easily be switched out to the presentation medium of your choice. If you choose to leave ASP.NET MVC, then you can use any of the View Engines available (Spark and nHaml are my choice). By default S#arp Architecture uses its own custom view engine so that you can use areas (see the documentation for the project). Thats right, I said AREAS!! The significance of this is the fact the Scott Guthrie recently announced that the RTM version of ASP.NET MVC will NOT ship with this built in.

If you currently use NHibernate and are sick of the XML mapping files, then you will love Fluent NHibernate. It makes mapping your domain objects so much easier. In case you have some tough mappings (in my case a composite key), you still have the option to use the XML mapping files. One of features there has been a lot of buzz about is the auto mapping. This little gem allows you to map your whole application in very few lines of code.

I would highly recommend S#arp Architecture to anyone that wants to make their life a little bit easier, while encouraging you to use best practices.

 Most people that know me understand the fact that I read a lot of blogs. Well earlier in the week, Oren (Ayende) posted about a tool he had found for making mock-ups. Well this is something I currently do frequently as I need to display mock-ups of new areas or changes to existing, so the post piqued my interest. After putting it off checking it out for a few days, I finally came to a new task that required mock-ups.

Meet Balsamiq

I did not use the desktop version yet, but am planning on doing so soon. This review will cover the trial version. There are no limitations on this version, but a timer will pop every five minutes encouraging you to purchase one of the paid versions. I highly recommend you do so, it is worth it.

First Impressions

First off I am not a designer, I would much rather write back-end code any day of the week. So needless to say, I do not like doing mock-ups. The interface is flashed base and very smooth. The elements you drop on the canvas have that hand drawn style about them, which I think is great. After all, most of us are not dealing with production mock-ups where every detail is finalized on the page. We are dealing with mock-ups to show other team members / bosses so that they understand your concept. Here is an example, just a simple page displaying a grid of users:

 Sample Balsamiq mock-up

As you can see nice and easy, took 20 seconds. The same thing in word (using tables, ugh) or visio would have taken considerably longer. Now for a shot of the interface:

 Balsamiq Designer

In just the hour or so I used it, it probably saved the company the cost of one license. You can find more information as well as the Trial at www.balsamiq.com. To go straight to some sample mockups, you can go here.

    I am generally an early adopter of new technologies and gadgets and today was no exception. I first heard of Chrome via the blog sphere a couple of months ago and was intrigued by it immediately.  Earlier I installed Chrome and was immediately impressed with it's speed. Now given the fact that I have a TON of add-ons installed for Firefox, I cannot compare the start up times as Chrome has no add-ons.

Here are my first impressions:

  1. Very Very Fast - Using the ALL-in-ONE bar makes searching and browsing quicker. One feature of the Firefox Google search provider I have found most useful is the auto suggestion of searches I might be looking for. Now I can do this from the "Address" bar.

  2. Built in developer tools - Nothing too ground breaking here, especially for those of us that use Firebug or IE Developer toolbar. But the JavaScript console (Control the Current Page -> Developer -> JavaScript Console) shows some potential for those of us that need to do any Web UI work. I like the way they show the Styles, Metrics, and Properties for the selected element. Another handy feature is the Resources tab inside the JavaScript Console. This will show Time and Size of the resources on the page.

  3. Options - they are nice and simple, but are they too simple? I think Firefox does a great job with Options / Settings, having a good mix of basic and advanced settings. Firefox has the advantage that it makes new users feel comfortable in making a change and allows power users to gain even greater control. I do not see this with Chrome. Perhaps in the future.

  4. Add-ons - Where are they? Since it was built on top of Mozilla, I had hoped to see some add-ons or even some imported from Firefox. Hopefully Google will see the value to add-ons and implement them as well. Even the boys from Redmond have seen the light here, while there may not be many add-ons for IE8 yet, they are there.

Only time will tell if the market can handle another browser. While it might seem a pain in the ass for us developers, look at what the competition has done for us. 5 years ago there was only one real choice, Internet Explorer, as the others did not have enough share of the market. We all bought into this and actually became ok with either making two versions of a site or catering towards one browser over another. Now look at us, we are still providing CSS tweaks for browsers, but those are slowly but surely starting to go by the wayside. Firefox really helped this and has done a great job in chipping away at IE's market share. While Google has tried to tilt markets in other areas (Instant Messaging comes to mind), it has not always succeeded.

So what do you think about Chrome?

 Ironically, I am writing this post in Firefox as Chrome did not render the TextEditor as a RTE, rather just a giant text area. Well it is only the first day after all.

Recently I am been following Rob Conery as he explores Test Driven Development using the ASP.NET MVC framework. Rob is using a style of development known as Test First Development or Red - Green - Refactor. The timing of these articles was actually nice as I was exploring the use of the MVC framework as a possible replacement technology for my companies current web site. This all motivated me to continue down a path that I had started a few years ago, but was never able to fully follow due to corporate limitations.

While following along, I noticed that Rob was using a bit of Domain Driven Design as well as a modified (I say a needed update) of the Repository pattern. I say modified because technically your concrete repository should return entities, not IQueryable objects. Personally I like how Rob has done this and agree with why he did it. A little while ago, I was having a conversation with a former co-worker about Robs work and he brought up Inversion of Control as well as Ayende's IRepository interface. To be honest, the conversation was a bit above my understanding at that time. Well in comes Twitter. Now step forward a week, after I have started building the never version of our site loosely based on the prinicals Rob has laid out. After just having more conversations about the new site design with my friend and him showing me the ins and outs of Windsor and how we would use it, I started looking further into IoC. After getting into a political debate with Nate Kohari, via Twitter, I noticed he had created an IoC project called Ninject.

So you ask, why should I look into Ninject while there are several others out there? XML-less configuration. One of the things I cannot stand is XML configuration files. It has been my experience that they can quickly become unwieldy and unmanageable very quickly. Most use their own syntax that is more often than not does not read well and you generally have to do a lot of XML nodes. I do not profess to know anything about the rest of the IoC projects, I do know when something will work for me better than others.

The scope of this blog post is really to make people aware of this project and hopefully with help it gather a few more follower. So please head on over to the Ninject web site and check it out.
 

 Sorry to those of you who have tried to contact me via email from the blog over the past several months. Apparently I forgot to update an email address. This has been corrected, so feel free to contact me.

 

Well Rob Conery is at it again. This time he is keeping us riveted to our chairs with his new MVC Storefront series. So far he has created 3 screencasts that can be found at:

ASP.NET MVC: Introducing The MVC Storefront Series

ASP.NET MVC: MVC Storefront, Part 2

ASP.NET MVC: MVC Storefront, Part 3

This looks like it is going to be a great series and already has me jonesin for more. I am a firm believer in TDD, but readily admit that I have never been able to do it in its purist form. Lord knows I have tried, but for whatever reason it never worked out. So not only are we getting to see this happen in almost real time, we are getting to learn several new things (at least new to me). So head on over and take a look. Each screencast is approx 10 minutes with the 3rd one being just shy of 15 minutes.

It is surprising that something as innocent as creating a screencast can cause an uproar. Not only did he get the normal praise for his work, but he was accosted  by several TDD purists as well as Frans Bouma. While some people might push this to the wayside and say "whatever", I think it shows the fragmentation that is occurring in the .NET world now days. While many of the purists were friendly in their comments pointing out areas where Rob needed to improve and why things are done a certain way, others chose to just outright flame him. WTH!!! When did it become "cool" to do a drive by commenting? Especially to someone like Rob. I am fortunate to know Rob and consider him a friend. I have never seen anything from Rob that warranted this type of behavior and I believe all the open source work he has done in the past and present show his commitment to the community.

The one comment that really got me was the one from Frans. I read Frans' blog consistently and maybe he is just ruffled from all the flame wars he has been involved in the past few months regarding Alt.Net, but I thought he was a tad harsh on Rob. It as if no one listened to Rob's opening statement about the project, that is was a LEARNING exercise, not the gospel. 

Well I for one cheer you Rob. You are a valuable asset to this community as a whole. There are many bloggers out there that have great posts and really help out. All of you that fall into this category deserve OUR gratitude. I cannot count how many times I have learned something new from a blog post. People like David Hayden, Phil Haack, Bill Simser, Ayende Rahien, Scott Guthrie, Kyle Baley, Jeffery Palermo, and countless others. So to you I raise my mug and say well done. You are the reasons we have a great community.

As many of you already know, I recently left my job at CrystalTech Web Hosting. It was on good terms and I am still friends with everyone there. One of the downsides was the fact I was about ready to make the jump to a dedicated server to house a side project I am working on. I admit, I was leery of search for a Windows Dedicated host, but I eventually found one that seemed like they knew what they were doing.

Let me introduce you to Server Intellect, a company that is consitently in the top 10 Windows Dedicated hosters on HostingReview.com. I ended up getting this server for a very reasonable price (I think at least). If you are looking for a server, I would highly recommend them. This is not a knock on my former employer, it just boiled down to what I would get for the money.  

While reading blogs recently, I came across several blog posts about the new Microsoft Sidewinder mouse. Most of the posts were positive overall and it just so happened that I needed a new mouse. My trusted Logitech MX1000 had finally decided that the years of gaming abuse were too much for it to handle, it stopped holding a charge. I decided to roll the dice and give the Sidewinder a try, even though I was leaning towards a new Logitech MX Revolution.

Well I have to say, it is awkward at best. While it performed flawlessly for the 2 hours I used it, I just could not adapt to it. My hands are on the medium side and I found that I was having to maneuver my hand in ways that one should not have to in order to click a button or scroll a wheel. This thing was designed for people with Shrek hands, no joke. One of the nice things about the MX 1000 and Revolution is their shape. The sloping backside makes for very natural positioning of your hand and you do not feel like you are reaching to click anything. While I enjoyed the weighting the Sidewinder provided, it still could not compare to the weight of my trust MX.

I ended up returning it to Best Buy within less than 24 hours of the purchase. I do have to say that Best Buy took it back without a complaint and issued me a very no hassle refund on it. In the end I ended up getting the MX Revolution and am enjoying it. Is it the same as my old pal, the MX 1000? Nope, but it will make a good replacement. I really wish Logitech would bring back the MX 1000 in the original form, not the Keyboard / Mouse bluetooth combo version they offer now. Seriously, how many people use BlueTooth on the Desktop PC? 

Rob Conery made a very interesting post on Ruby on Rails today. I stand with everything he is saying, especially about how he could not imagine treating his users in the way the Rails team does. This is a very important part of the whole post, if you are going to release something to the public, you need to be willing to support it and the situations that may arise from the use by others. I volunteer as a Project Lead for DotNetNuke and there is one thing I have found out, you don't know shit about your users until they use your product and find bugs you thought were never possible. I understand that it is hard sometimes to maintain your composure when someone you do not know starts verbally abusing you in a public forum. They don't know your dedication to the project, they don't know you, what gives them the right to treat you this way? Well guess what bud, you put yourself into that position. Sometimes you are gonna have people say things that you don't wanna hear, it will make you mad. The only person to be mad at this is yourself. You put yourself in the public eye.

So head on over to Rob's place and check out the post. While you are there, check out his other posts too. He has a very unique writing style that I think displays who he is very well. Rob is an all around good guy and someone I admire deeply. I just want to know, where do you get your energy Rob?


 

More Posts Next page »