SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using Ninject in a SharePoint feature. I've got it working via an HttpModule.

I need to tell Ninject whether I want to use my real or "fake" implementations.

I'm thinking about using a web.config appSetting value to drive that decision. My thinking is that the modification I manually make to my dev SP instance's web.config won't make it into source control or the deployed package.

I understand that manual web.config changes are a no-no in SP. Is this a valid exception?

Where do you put values that you want to exist only in your development environment?

share|improve this question
up vote 2 down vote accepted

SharePoint offers developers with many options for storing custom configurations settings outside of the application itself. This may vary from Web.config to Property Bags to Lists. I would personally recommend to use Property Bags (Perhaps Web application/Farm level) to store configurations.

Here are some sample on how to use them:

Read more about it:

share|improve this answer
I second the property bag implementation, because it's where sharepoint's own patterns and practices group puts depenedency injection data for it's custom dependency injection framework. – AndrewSwerlick May 25 '12 at 14:19
The reason why we are a bit hesitant to go with the web.config approach is two-fold: Manipulating web.config programmatically is often troublesome using SPWebConfigModification, as I’m sure several folks from community can attest from their previous engagements with similar issues ;-). Secondly, using either the ages-old “copyappbincontent”-approach and/or the *.config-injection are not really something that would work for every scenario, or even properly at times. – Falak Mahmood May 25 '12 at 14:37
I like the property bag approach. It's very simple, and it can very easily be set using a simple Powershell script (ok for dev) – Steve B May 25 '12 at 15:18

Lance, I think web.config is the right approach to adding a value that is unique to an environment. We do exactly that in our environment and our deploy process handles the web.config files as well. You could also create a supplemental web.config file. You could also modify them programatically.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.