If you are looking at a BDD framework to use, you need to find one that you personally feel comfortable with, and which you feel adds value. There are a number of options available for .NET, and each has several pro's and cons which you should weigh up to decide which framework provides you personally with the best balance between comfort, ease of use, and of course functionality.
I have used each of the following, and incidentally reviewed a few of them as a part of a blog entry only a couple of months ago:
I believe that there are a few others floating around, but I was unable to locate links to them while I was writing this.
Like you, I found SpecFlow - and also a few others - a little cumbersome to either install or use. I don't want to need to add additional products to support the BDD framework. I also don't like having to decorate my code with lot's of additional text or attributes which tend to add a lot of additional noise to the code. I wanted something that allowed me to simply represent my BDD test syntax in a natural flowing and easy to read manner within the code. After a lot of testing and a bit of a lengthy review process, I ended up settling on StoryQ, which I've been using for about a year now combined with NUnit and Moq. It has a couple of minor limitations to do with support for anonymous delegates which works but messes up the output, and for me the API required a tiny bit of customization to improve the story/scenario syntax, which turned out to be an easy modification to a DSL template. The limitations however were far outweighed by the ease with which I found the framework could be used, and the active support by it's creators.
This is a choice that I made after careful consideration with regards to my needs and my own particular methodology. While I would happily recommend StoryQ to anyone, I am also mindful that your own methodology and needs may be different. However to answer your question, if you are like me and convinced that BDD is a better approach when writing software test-first, then yes, you should use an appropriate BDD framework. Just make sure it is the right framework for you.
When structuring your tests, I have found two approaches that work reasonably well. One is to make all of your BDD code exist within a separate class. It's a nice way to keep your BDD code all together, and if needs be reusable, however it kind of messes with the free flow of text that makes the code really readable. The other way which I have now settled on, has been to create a base test class with all of the really common stuff that I do, such as generalized Assertions, SUT instantiation, and other common things. All of my test units descend from this base, and simply add the Assignment, Action, and specialized Assertion statements needed to complete my tests. In this way, I comfortably stick to the DRY principal, have elegantly readable test code, and I get to conform nicely with a comfortable AAA style of syntax. It works well for me, but I've needed to go through several iterations of code to get it right so to speak.