Sharepoint notes from Matt Velloso
These are some notes from Matt Velloso's session at TechEd 09 on the 14th Sept. These are just my notes created whilst watching the session and they can be used as a start point to find out more information.
Myths to debunk:
- You can change meta data easily. Well, yes you can, however, that doesn't mean you should. So don't. If you need to change your meta data, plan it out first and make sure that your changes don't break another part of the system.
- There's no code so it's risk free. Cobblers. What do you think runs Sharepoint if it's not code? Always manage risk and plan for various eventualities.
- It's an out of the box app, we don't need to test. Sigh.... just test it already and get over the 'testing isn't necessary' mentality.
Blobcache
- Stop going to SQL Server all the time
- Use Fiddler2 (HTTP debugging proxy) to check the status of your blobcache
- Enable blobcache in web.config
- How to break your blobcache: reset IIS, hit refresh on your page. You need to tell the service not to use the sharepoint DLLs. web.config change in http modules section. Remove all http modules that are sharepoint dlls and then do an IIS reset. Reason why it was broken? You lock your resources when you refresh as services run on a FIFO basis.
Content Types
- When fixing/updating, don't uninstall the feature. Migrate properly to ensure all data types are updated correctly, including historical items.
- Do things in an incremental manner
- Script changes in .NET if they are major changes
Timer Job
- Issue: Timer job service randomly stops. Why? Log on as a service policy was enforced by domain policy to all machines, including servers.
Other notes
- Absinthe is a very cool tool for hacking databases via a web app. Uses SQL injection.
- Full deployment deletes site and redeploys - DON'T do this after your first deployment. Use Incremental deployment instead. And if your incremental deployment isn't working then fix it!
- Lists vs. Tables - make sure you use the correct tool for the job, i.e. use tables for complex data relationships and use lists for workflows. It's okay to use a mixture of both.
- List performance - do NOT use GC.collect()
- Check out tool: sp_disposecheck
Comments