<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Data Visualization</title><subtitle type="html">A Blog from Delian Tchoparinov about data visualization controls.</subtitle><id>http://blogs.msdn.com/deliant/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/deliant/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/deliant/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-12-02T00:40:38Z</updated><entry><title>Handling chart generated images using Chart Http Handler</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/deliant/archive/2008/12/02/managing-chart-generated-images-with-chart-image-handler.aspx" /><id>http://blogs.msdn.com/deliant/archive/2008/12/02/managing-chart-generated-images-with-chart-image-handler.aspx</id><published>2008-12-02T04:20:00Z</published><updated>2008-12-02T04:20:00Z</updated><content type="html">&lt;P&gt;When the Chart.RenderType property is set to ImageTag, the Chart control is rendered as standard image (img) tag. Displaying an image in current web browsers is a two stage process: first the browser renders the html page and then downloads the image from specified Url. Because real chart image is created during web page processing the Chart needs a storage where image will stay until the browser requests it. 
&lt;P&gt;You can specify how the Chart control manages the image files. To do this, use the ImageStorageMode property. By default, the ImageStorageMode property is set to UseHttpHandler. This causes the Chart control to use the ChartHttpHandler that is registered in the web.config file to manage the rendered chart images. 
&lt;P&gt;Use the chart HTTP handler to: 
&lt;UL&gt;
&lt;LI&gt;Prevent file override collisions in a server cluster or a multiple-process site. 
&lt;LI&gt;Protect the security of rendered chart images by preventing users from downloading chart images that are rendered for other users. 
&lt;LI&gt;Reduce disk operations by storing image files in memory or other storage methods, such as SQL Server.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;When you drag a Chart control from the Toolbox onto the &lt;STRONG&gt;design surface&lt;/STRONG&gt; of the ASP.NET page, the ChartHttpHandler is automatically registered in the web.config file as "ChartImageHandler". You can configure ChartImageHandler's behavior in the &lt;CODE&gt;&amp;lt;appSettings&amp;gt;&lt;/CODE&gt; element. The applicable code section is provided below with the automatically generated settings: 
&lt;P&gt;&lt;CODE&gt;&amp;lt;appSettings&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/CODE&gt;&lt;CODE&gt;&amp;lt;add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" /&amp;gt;&lt;BR&gt;&lt;/CODE&gt;&lt;CODE&gt;&amp;lt;/appSettings&amp;gt;&lt;/CODE&gt; 
&lt;P&gt;Use the parameters in the &lt;CODE&gt;value&lt;/CODE&gt; attribute to configure the chart HTTP handler. See the table below for a description for each parameter.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="backgroundcolor: gray" vAlign=top width=200&gt;Parameter&lt;/TD&gt;
&lt;TD vAlign=top&gt;Description &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;storage&lt;/TD&gt;
&lt;TD vAlign=top width=652&gt;
&lt;P&gt;Storage mode. Three options are available: 
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;B&gt;file&lt;/B&gt;: Store the rendered chart images as temporary files. You must also specify the storage location in the url or dir parameter. In a server cluster or a multiple-process site, you must specify the dir parameter.&lt;/P&gt;
&lt;LI&gt;
&lt;P&gt;&lt;B&gt;memory&lt;/B&gt;: Store the rendered chart images in the memory space of the running process. Do not use this option in a server cluster or a multiple-process site.&lt;/P&gt;
&lt;LI&gt;
&lt;P&gt;&lt;B&gt;session&lt;/B&gt;: Store the rendered chart images in a session variable.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=228&gt;url&lt;/TD&gt;
&lt;TD vAlign=top width=647&gt;
&lt;P&gt;The relative URL of the image storage location. If the dir parameter is specified, it is used instead of url. The default value is "~/". &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=233&gt;dir&lt;/TD&gt;
&lt;TD vAlign=top width=643&gt;Absolute directory path of the image storage location. This can be either a local path or network path. In a server cluster environment, use a network path to keep the temporary files in a shared location. Each temporary file is assigned with a unique machine ID to prevent the files from being overridden inappropriately. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=237&gt;timeout&lt;/TD&gt;
&lt;TD vAlign=top width=639&gt;
&lt;P&gt;The timeout period in seconds for rendered chart images. After this period has elapsed for an image, it may be replaced by a newer image. The default value is 30.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=241&gt;handler &lt;/TD&gt;
&lt;TD vAlign=top width=636&gt;A custom IChartStorageHandler implementation. The value should be formatted as a fully qualified assembly name. For example: &lt;CODE&gt;MyNamespace.MyClass.MyHandler&lt;/CODE&gt;.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=244&gt;privateImages &lt;/TD&gt;
&lt;TD vAlign=top width=634&gt;
&lt;P&gt;Privacy protection. When set to true, the generated image can only be downloaded by its owner if some of the following types of identifications are enforced: 
&lt;UL&gt;
&lt;LI&gt;The user is authenticated. 
&lt;LI&gt;AnonymousID is enabled. 
&lt;LI&gt;SessionID is available.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The default value is &lt;B&gt;true&lt;/B&gt;. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=246&gt;deleteAfterServicing &lt;/TD&gt;
&lt;TD vAlign=top width=632&gt;
&lt;P&gt;Whether the image should be deleted after successful download from a client. The default value is &lt;B&gt;true&lt;/B&gt;. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=248&gt;webDevServerUseConfigSettings&lt;/TD&gt;
&lt;TD vAlign=top width=630&gt;
&lt;P&gt;Whether to store rendered chart images in memory when running the application in full trust level using the Visual Studio development server. 
&lt;P&gt;The default value is &lt;B&gt;true&lt;/B&gt;. This may mean that your settings in the web.config file have no effect when you run the ASP.NET application from Visual Studio. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; 
&lt;H5&gt;Different trust levels have impact on ChartHttpHandler behavior. The following is a list of trust levels and how the trust levels affect the configuration settings in the web.config file. &lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Full trust: All configuration variations apply.&lt;/P&gt;
&lt;LI&gt;
&lt;P&gt;High trust: The ASP.NET Development Server cannot be detected. Therefore, webDevServerUseConfigSettings has no effect.&lt;/P&gt;
&lt;LI&gt;
&lt;P&gt;Medium trust: Same as high trust.&lt;/P&gt;
&lt;LI&gt;
&lt;P&gt;Low trust: Same as high trust, except that file access is forbidden. The storage parameter must be set to &lt;B&gt;session&lt;/B&gt; or &lt;B&gt;memory&lt;/B&gt;.&lt;/P&gt;
&lt;LI&gt;
&lt;P&gt;Minimal trust: Same as low trust, except that the chart HTTP handler detection fails. This means that the &lt;CODE&gt;ChartImageHandler&lt;/CODE&gt; key in your web.config file is mandatory.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9162475" width="1" height="1"&gt;</content><author><name>deliant</name><uri>http://blogs.msdn.com/members/deliant.aspx</uri></author></entry><entry><title>Welcome to my blog!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/deliant/archive/2008/12/02/welcome-to-my-blog.aspx" /><id>http://blogs.msdn.com/deliant/archive/2008/12/02/welcome-to-my-blog.aspx</id><published>2008-12-02T03:40:38Z</published><updated>2008-12-02T03:40:38Z</updated><content type="html">&lt;p&gt;&lt;br&gt;My name is Delian Tchoparinov and I am software developer in the SQL Server Reporting Services team. Last year I have been working on the chart for SSRS and recently our team have released&amp;nbsp; Microsoft Chart for .Net Framework 3.5 SP1. &lt;/p&gt; &lt;p&gt;In this blog I will answer to any commonly asked questions about the chart and other visual components we are working on.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9162335" width="1" height="1"&gt;</content><author><name>deliant</name><uri>http://blogs.msdn.com/members/deliant.aspx</uri></author></entry></feed>