There are several considerations to keep in mind:
- Silverlight code is executed in web browser.
- Silverlight runtime is started once for all browsers of the one type.
- DotTrace will start or restart the browser.
- Only silverlight 4.0 and higher runtime is supported. (Previous versions of silverlight runtime don't support profiling API).
Because of all that considerations recommended workflow is:
- Start website with silverlight in VS development server or in IIS or even deploy to other webserver. Copy URL to buffer.
- Start dotTrace as standalone (from Start->All Programs, and not from VS)
- Select Profile -> Silverlight application. Put url field to web page with silverlight. Select Browser to be started or restarted. Paste the URL from buffer to field "Url"
- If you want Line-by-Line profiling type, then press small Arrow down button to show additional options. Press "Edit symbol search policy..." button, and fill search path by the path to your dll and pdb folder.
- Click "OK" to start.
- Exercise your Silverlight application.
- Get snapshot. We are done.
Possible problems and Workarounds:
1. Restarting browser may stop VS debug session. Thus you may need two browsers. VS start for example IE and use Firefox from dotTrace.
2. Getting error "The port is busy".The reason is that Visual Studio doesn't stop Development server at once after application is stopped. The workaround is to close the remaining Development server by right click on its icon in tray and select "Stop".