<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13001102</id><updated>2011-12-02T02:00:28.156+13:00</updated><title type='text'>Web-adventures</title><subtitle type='html'>Here I will try to keep track of interesting links and maybe from time to time post my own article.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13001102.post-112313530113565873</id><published>2005-08-04T18:00:00.000+12:00</published><updated>2006-09-24T22:15:38.940+12:00</updated><title type='text'>Blog has been moved</title><content type='html'>My blog has been moved to geekswithblogs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flanders.co.nz/Blog"&gt;http://www.flanders.co.nz/blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-112313530113565873?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.geekswithblogs.net/casualjim' title='Blog has been moved'/><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/112313530113565873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=112313530113565873' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112313530113565873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112313530113565873'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/08/blog-has-been-moved.html' title='Blog has been moved'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-112303154994747760</id><published>2005-08-03T13:12:00.000+12:00</published><updated>2005-08-03T13:12:29.953+12:00</updated><title type='text'>.NET 2.0 Rulezzzzz</title><content type='html'>&lt;h1&gt;I discovered the beta 2 of visual studio 2005&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;I knew already it was there for some time but never wanted to do the effort of checking it out. Also I knew I was going to move from belgium to New Zealand so it didn't actually seem the best timing to start.  After getting settled in NZ, I got myself the demo of the new IDE VS2K5 and at first sight it looks much prettier than the VS 2K3. ;-)&lt;br /&gt;&lt;br /&gt;When I got over the prettyness I started messing around and quickly came to the constatation it was maybe better to at least get a book to get me started.  Good after some investigating I came to the conclusion that the book Introducing asp.NET 2.0 from Dino Esposito would be a good place to start. I have to warn the people who have the misconception that this book can provide them with everything you need to know.  I had this misconception.. but the book simply shows what the new controls are and briefly touches the most simple way on how to use them.&lt;br /&gt;&lt;br /&gt;Codeless is nice but still a dream. What is true is that you don't need to write the incredibly boring boilerplate code to update your database but just a few stored procedures and the new dataset does the rest.  Another cool feature is not having to write the boring datagrid update,cancel, edit and delete code anymore which is always virtually the same.&lt;br /&gt;&lt;br /&gt;The book was finished in 4 days and I got my first somewhat complex page done in about 1-2 days.  I hope to have my first app which will be an intranet app for registering my projects and filling out timesheets will be done in about 5 days.  But starting a new technology is always slower than one you are already familiar with (duh).  So I am very excited for the moment that I will be knowing it as well as the older brother .NET 1.1&lt;br /&gt;&lt;br /&gt;Back to the app developping...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-112303154994747760?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/112303154994747760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=112303154994747760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112303154994747760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112303154994747760'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/08/net-20-rulezzzzz.html' title='.NET 2.0 Rulezzzzz'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-112219943064021790</id><published>2005-07-24T22:03:00.000+12:00</published><updated>2005-07-24T22:03:50.646+12:00</updated><title type='text'>ORFilter Version 5</title><content type='html'>The dude martijnjongen did a great job creating his orfilter, the biggest disadvantage is that it does not learn from itself.. so I decided to buy the GFI mailessentials. Which are not too expensive but at least I don't have to spend a few days inputting data and keywords for blocking spam.  &lt;br /&gt;&lt;br /&gt;I am really content with the gfi stuff.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-112219943064021790?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/112219943064021790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=112219943064021790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112219943064021790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112219943064021790'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/07/orfilter-version-5.html' title='ORFilter Version 5'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-112219927998175696</id><published>2005-07-24T22:01:00.000+12:00</published><updated>2005-07-24T22:31:35.646+12:00</updated><title type='text'>Freeproxy Although cool not what I need</title><content type='html'>Freeproxy&lt;br /&gt;&lt;br /&gt;The basic idea is cool. But I don't want my users to have to enter a second password. I just want to blacklist lets say 5000 sites most of them porn and auction sites.  More importantly I don't want to be messing around with inputting every site manually.  &lt;br /&gt;So freeproxy although a cool plan because you can set your user authentication to ntlm. Did not do it's job properly. if started as a service you could completely forget it would block sites in the blacklist. If started from console, it would block for a while.  Since I am a busy man I don't have time, and most certainly don't feel like restarting the console every 5 minutes.&lt;br /&gt;&lt;br /&gt;So the freeproxy got fired.  I guess I will have to rely on good ol'microsoft ISA server and read through the manuals to configure it properly so my vpn won't be crashing everytime.  Since I have SBS 2k3 Premium at my disposal I also have the ISA 2k4. This should be a whole step forward from what I gatter reading on the web.&lt;br /&gt;&lt;br /&gt;Sorry people from freeproxy... you don't have my vote.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-112219927998175696?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/112219927998175696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=112219927998175696' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112219927998175696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112219927998175696'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/07/freeproxy-although-cool-not-what-i.html' title='Freeproxy Although cool not what I need'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-112116827023643163</id><published>2005-07-12T23:37:00.000+12:00</published><updated>2005-07-12T23:37:50.240+12:00</updated><title type='text'>FreeProxy download and review - proxy server from SnapFiles</title><content type='html'>An alternative to ISA server and free... &lt;br /&gt;I have already a firewall and ISA server is pretty difficult and confusing at the start ... This is easy and quickly installed.. just what I need as a time pressed programmer/administrator&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.snapfiles.com/get/freeproxy.html"&gt;FreeProxy download and review - proxy server from SnapFiles&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-112116827023643163?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/112116827023643163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=112116827023643163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112116827023643163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112116827023643163'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/07/freeproxy-download-and-review-proxy.html' title='FreeProxy download and review - proxy server from SnapFiles'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-112115736609608328</id><published>2005-07-12T20:36:00.000+12:00</published><updated>2005-07-12T20:36:06.663+12:00</updated><title type='text'>martijnjongen.com &gt; ORFilter &gt; Version 5</title><content type='html'>This is a spamfilter for exchange 2003 presumably written in .NET, lightweight runs as a service.  &lt;br /&gt;&lt;br /&gt;Most importantly it is free. The programmer claims it catches 95% of all spam. I hope spamhause rbl will block the other 4,99% ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://martijnjongen.com/Default.aspx?tabid=40"&gt;martijnjongen.com &gt; ORFilter &gt; Version 5&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-112115736609608328?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/112115736609608328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=112115736609608328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112115736609608328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112115736609608328'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/07/martijnjongencom-orfilter-version-5.html' title='martijnjongen.com &gt; ORFilter &gt; Version 5'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-112053255835558669</id><published>2005-07-05T15:02:00.000+12:00</published><updated>2005-07-05T15:02:38.366+12:00</updated><title type='text'>Google Desktop Search Tips</title><content type='html'>This page is really cool about GDS in a networked environment&lt;br /&gt;&lt;br /&gt;&lt;a href="http://users.tns.net/~skingery/firefox/GDS_Tips.html"&gt;Google Desktop Search Tips&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-112053255835558669?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/112053255835558669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=112053255835558669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112053255835558669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/112053255835558669'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/07/google-desktop-search-tips.html' title='Google Desktop Search Tips'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111899191139149621</id><published>2005-06-17T19:05:00.000+12:00</published><updated>2005-06-23T21:39:54.640+12:00</updated><title type='text'>Wimdows.net - Posting an ASP.NET web form to another ASP.NET page: who needs it?!</title><content type='html'>&lt;a href="http://www.wimdows.net/articles/article.aspx?aid=8"&gt;Wimdows.net - Posting an ASP.NET web form to another ASP.NET page: who needs it?!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111899191139149621?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111899191139149621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111899191139149621' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111899191139149621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111899191139149621'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/wimdowsnet-posting-aspnet-web-form-to.html' title='Wimdows.net - Posting an ASP.NET web form to another ASP.NET page: who needs it?!'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111884766173828823</id><published>2005-06-16T03:01:00.000+12:00</published><updated>2005-06-16T03:12:48.183+12:00</updated><title type='text'>Getting javascript var to serverside vars .NET (The Control)</title><content type='html'>It seems that I need 2 Handlers because if I navigate to the same page then it doesn't catch my querystrings.&lt;br /&gt;&lt;br /&gt;This control has design-time support but if you want to use the standard values it is just drag and drop :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;using&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;using&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System.Web;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;using&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System.Web.UI;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;using&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System.ComponentModel;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Koolkraft.Library.Controls&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;[DefaultProperty("Text"), ToolboxData("&lt;{0}:DetailStats runat=server&gt;"),]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;public &lt;span style="font-size:85%;color:#0000ff;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; DetailStats : Control,INamingContainer&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;private &lt;span style="font-size:85%;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; m_strSetUrl;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;private &lt;span style="font-size:85%;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; m_strGetUrl;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;protected &lt;span style="font-size:85%;color:#0000ff;"&gt;override &lt;span style="font-size:85%;color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; OnInit(EventArgs e)&lt;br /&gt;{&lt;br /&gt;m_strSetUrl = "SetStats.axd";&lt;br /&gt;m_strGetUrl = "GetStats.axd";&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;base&lt;/span&gt;&lt;span style="font-size:85%;"&gt;.OnInit (e);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[Bindable(&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;false&lt;/span&gt;&lt;span style="font-size:85%;"&gt;),&lt;br /&gt;Category("Behavior"),&lt;br /&gt;DefaultValue(&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;false&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;public &lt;span style="font-size:85%;color:#0000ff;"&gt;override &lt;span style="font-size:85%;color:#0000ff;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; EnableViewState&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;return &lt;span style="font-size:85%;color:#0000ff;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;set&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;base&lt;/span&gt;&lt;span style="font-size:85%;"&gt;.EnableViewState = &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;false&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;protected &lt;span style="font-size:85%;color:#0000ff;"&gt;override &lt;span style="font-size:85%;color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Render(HtmlTextWriter writer)&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(HttpContext.Current.Session["Fla"] == &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;null&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)&lt;br /&gt;writer.Write(buildIframe());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;private &lt;span style="font-size:85%;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; buildIframe()&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(m_strGetUrl == &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;null&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;throw &lt;span style="font-size:85%;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Exception("The GetUrl property of the DetailStats needs to be set");&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(m_strSetUrl == &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;null&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;throw &lt;span style="font-size:85%;color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Exception("The SetUrl property of the DetailStats needs to be set");&lt;br /&gt;HttpContext _context = HttpContext.Current;&lt;br /&gt;&lt;br /&gt;System.Text.StringBuilder sb = &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System.Text.StringBuilder();&lt;br /&gt;&lt;span style="color:green;"&gt;//Replace the i_frame by iframe and set style="VISIBILITY: hidden"&lt;/span&gt;&lt;br /&gt;sb.Append("&lt;i_frame s="+ m_strSetUrl +" src="'\r\n"&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="font-size:85%;"&gt; sb.ToString();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[Bindable(&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;true&lt;/span&gt;&lt;span style="font-size:85%;"&gt;),&lt;br /&gt;Category("Configuration"),&lt;br /&gt;DefaultValue("GetStats.axd")]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;public &lt;span style="font-size:85%;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; GetUrl&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="font-size:85%;"&gt; m_strGetUrl;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;set&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;m_strGetUrl = &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;value&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[Bindable(&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;true&lt;/span&gt;&lt;span style="font-size:85%;"&gt;),&lt;br /&gt;Category("Configuration"),&lt;br /&gt;DefaultValue("SetStats.axd")]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;public &lt;span style="font-size:85%;color:#0000ff;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SetUrl&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="font-size:85%;"&gt; m_strSetUrl;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;set&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;m_strSetUrl = &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;value&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111884766173828823?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111884766173828823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111884766173828823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111884766173828823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111884766173828823'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/getting-javascript-var-to-_111884766173828823.html' title='Getting javascript var to serverside vars .NET (The Control)'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111879272279949237</id><published>2005-06-15T11:45:00.000+12:00</published><updated>2005-06-15T11:45:22.823+12:00</updated><title type='text'>Getting javascript var to serverside vars .NET</title><content type='html'>To get the server variables from a client script executed from a handler or module. I don't know if my way is a good way.  I think at least there will be a faster way.&lt;br /&gt;&lt;br /&gt;My problem : get sitestatistics : This is no problem&lt;br /&gt;For getting good statistics there is a great getting started article on 15 seconds. The article was written by &lt;a href="http://www.15seconds.com/issue/021119.htm" title="Track your visitors" target="_blank"&gt;Wain Plourde&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;His approach is based on cookies and using the global.asax. I for one am not one of these coders who get up in the morning. Jump a few times up and down and think : let's write some brackets all day long.  No, sir I like to see results &lt;strong&gt;Quickly&lt;/strong&gt; :-) So i don't like doing the same thing over and over again, if I don't have to.&lt;br /&gt;So I think whatever you do in the global.asax you can also do in a Module.  Basic idea was good... so let's start transforming his stuff to C# and to my module. Also I want other information also which is not available for asp.NET to check.&lt;br /&gt;&lt;br /&gt;This information contains : does the user have flash installed, what is the resolution the user uses, is quicktime installed, and some more plugin stuff, are cookies really enabled ?&lt;br /&gt;What I won't be writing here is how to produce the javascript. &lt;br /&gt;Also I want some geographical information on the visitors, to see if we are just making it locally or we reach a wider range of people.&lt;br /&gt;&lt;br /&gt;The technique (which I will be posting later with source) is as far as i can figure it out.  Embed your javascript file as a resource, create a handler to render the script and process it. Create a control which renders an invisible iframe.&lt;br /&gt;The invisible iframe calls the handler, the handler does its detection and sends the results to itself in my case through a querystring. The next time the page is called as long as the session is alive or the visitcookie doesn't exist we render the iframe to get the settings because then it is a new visitor.&lt;br /&gt;&lt;br /&gt;I hope this is of some help to somebody. If so let me know :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111879272279949237?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111879272279949237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111879272279949237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111879272279949237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111879272279949237'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/getting-javascript-var-to-serverside.html' title='Getting javascript var to serverside vars .NET'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111869108869925301</id><published>2005-06-14T07:31:00.000+12:00</published><updated>2005-06-14T07:31:28.710+12:00</updated><title type='text'>AJAX - really cool</title><content type='html'>AJAX, I came across it before but it never caught my attention.  Today it did.&lt;br /&gt;&lt;br /&gt;One of the most annoying things of asp.NET in my opinion is the constant postbacks to the server. you can solve this but it requires a lot of client-side scripting.  Not worth the effort in my opinion.&lt;br /&gt;&lt;br /&gt;So it seems the good people at google are using AJAX for this and a lot more.  I am not experimenting with it yet.. this will be for after I moved from Belgium to New Zealand.&lt;br /&gt;&lt;br /&gt;&lt;font size=2&gt;AJAX stands for Asynchronous JavaScript with XmlHttpRequest.&lt;br /&gt;How AJAX applications differ from traditional web applicationsTraditional web applications allow users to fill out forms, and when these forms are submitted, a request is sent to a web server. The web server acts upon whatever was sent by the form, and then responds back by sending a new web page. A lot of bandwidth is wasted since much of the HTML from the first page is present in the second page. Furthermore, this method cannot create highly interactive user interfaces that work like those of native applications.&lt;br /&gt;AJAX applications, on the other hand, can send requests to the web server to retrieve only the data that is needed, usually using SOAP or some other XML-based web services dialect, and using JavaScript in the client to process the web server response. The result is more responsive applications, since the amount of data interchanged between the web browser and web server is vastly reduced. Web server processing time is also saved, since a lot of this is done on the computer from which the request came.&lt;br /&gt;Adoption of AJAXThough it has existed for some time, in early 2005 a number of seminal events have popularised the technique. Mainly, Google used asynchronous communication as a basis for prominent interactive applications including Google Groups, Google Maps and Gmail.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=2&gt;Download a .NET AJAX LibraryDownload a .NET AJAX Library from &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;&lt;u&gt;here&lt;/u&gt;&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2005/06/01/1083.aspx" title="David Haydens blog" target="_blank"&gt;The text above I found on David Haydens Blog&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111869108869925301?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111869108869925301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111869108869925301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111869108869925301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111869108869925301'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/ajax-really-cool.html' title='AJAX - really cool'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111868586593260969</id><published>2005-06-14T06:04:00.000+12:00</published><updated>2005-06-14T06:04:25.956+12:00</updated><title type='text'>Url Rewriting in Asp.NET by Scott Mitchell in msdn</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/urlrewriting.asp"&gt;Url Rewriting in Asp.NET by Scott Mitchell&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111868586593260969?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111868586593260969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111868586593260969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111868586593260969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111868586593260969'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/url-rewriting-in-aspnet-by-scott.html' title='Url Rewriting in Asp.NET by Scott Mitchell in msdn'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111856517409669035</id><published>2005-06-12T20:32:00.000+12:00</published><updated>2005-06-14T06:08:15.806+12:00</updated><title type='text'>Using NFOP in Asp.NET</title><content type='html'>I will put here some snippets from an application of mine.&lt;br /&gt;&lt;br /&gt;the xsl-fo and xml I won't put here&lt;br /&gt;&lt;br /&gt;Create the transformed fo document from dataset&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; System;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; System.IO;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; System.Web;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; System.Xml;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; System.Data;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; System.Xml.Xsl;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;namespace&lt;/font&gt;&lt;font size=2&gt; PdfBuilder&lt;br /&gt;{&lt;br /&gt;	&lt;/font&gt;&lt;font color="#808080" size=2&gt;/// &lt;font color="#808080" size=2&gt;&lt;summary&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;	&lt;/font&gt;&lt;font color="#808080" size=2&gt;///&lt;/font&gt;&lt;font color="#008000" size=2&gt; Summary description for ReportDocument.&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;	&lt;/font&gt;&lt;font color="#808080" size=2&gt;/// &lt;font color="#808080" size=2&gt;&lt;/summary&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;	&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;public &lt;font color="#0000FF" size=2&gt;class&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; ReportDocument&lt;br /&gt;	{&lt;br /&gt;		&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;public&lt;/font&gt;&lt;font size=2&gt; ReportDocument()&lt;br /&gt;		{&lt;br /&gt;			&lt;/font&gt;&lt;font color="#008000" size=2&gt;//&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;			&lt;/font&gt;&lt;font color="#008000" size=2&gt;// TODO: Add constructor logic here&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;			&lt;/font&gt;&lt;font color="#008000" size=2&gt;//&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;		}&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;public &lt;font color="#0000FF" size=2&gt;static &lt;font color="#0000FF" size=2&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; getTransform(XmlDataDocument doc, &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; xslFilePath)&lt;br /&gt;		{&lt;br /&gt;			&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;sUrl Rewriting in Asp.NET by Scott Mitchelltring&lt;/font&gt;&lt;font size=2&gt; domain = HttpContext.Current.Request.Url.Host;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; vdir = HttpContext.Current.Request.ApplicationPath;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; urlPref = domain + vdir + "/";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			XslTransform tr = &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; XslTransform();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			XmlUrlResolver res = &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; XmlUrlResolver();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			res.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			StringWriter sw = &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; StringWriter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			tr.Load(xslFilePath,res);			&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			tr.Transform(doc.CreateNavigator(),&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;,sw,res)	;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			System.Text.StringBuilder sb = &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; System.Text.StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			sb.Append(sw.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			sb.Replace("src=\"url('","src=\"url('http://" + urlPref);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;			&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; sb.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;		}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}|&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pass the transformed document to the NFOP processor&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; ApacheFop;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;namespace&lt;/font&gt;&lt;font size=2&gt; PdfBuilder&lt;br /&gt;{&lt;br /&gt;	&lt;/font&gt;&lt;font color="#808080" size=2&gt;/// &lt;font color="#808080" size=2&gt;&lt;summary&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;	&lt;/font&gt;&lt;font color="#808080" size=2&gt;///&lt;/font&gt;&lt;font color="#008000" size=2&gt; Summary description for CreatePdf.&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;	&lt;/font&gt;&lt;font color="#808080" size=2&gt;/// &lt;font color="#808080" size=2&gt;&lt;/summary&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;	&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;public &lt;font color="#0000FF" size=2&gt;class&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; CreatePdf&lt;br /&gt;	{&lt;br /&gt;		&lt;br /&gt;		&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;public &lt;font color="#0000FF" size=2&gt;static &lt;font color="#0000FF" size=2&gt;byte&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;[] Transform(&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; xmldocFo)&lt;br /&gt;		{&lt;br /&gt;			Engine e = &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; Engine();&lt;br /&gt;			&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;try&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;			{&lt;br /&gt;				&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;sbyte&lt;/font&gt;&lt;font size=2&gt;[] sPdf = e.Run( xmldocFo );&lt;br /&gt;				&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; sz = sPdf.Length;&lt;br /&gt;				&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;byte&lt;/font&gt;&lt;font size=2&gt;[] pdf = &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;new &lt;font color="#0000FF" size=2&gt;byte&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;[sz];&lt;br /&gt;				&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;for&lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; i=0; i&lt;sz; i++)&lt;br /&gt;					pdf[i] = (&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;byte&lt;/font&gt;&lt;font size=2&gt;) sPdf[i];&lt;br /&gt;				&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; pdf;&lt;br /&gt;			} &lt;br /&gt;			&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;catch&lt;/font&gt;&lt;font size=2&gt;(org.apache.fop.apps.FOPException fope) &lt;br /&gt;			{           &lt;br /&gt;				&lt;/font&gt;&lt;font color="#0000FF" size=2&gt;throw &lt;font color="#0000FF" size=2&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; Exception( fope.getMessage() );&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		&lt;br /&gt;	}&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Save the pdf to disk&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font size=2&gt;foDoc = PdfBuilder.ReportDocument.getTransform(doc,xslDoc);&lt;br /&gt;						pdf = PdfBuilder.CreatePdf.Transform(foDoc);&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;FileStream fs = &lt;/font&gt;&lt;font color="#0000FF" size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; FileStream(Request.PhysicalApplicationPath + "Documenten\\Pdf\\" + folder + "\\" + file,FileMode.Create);&lt;br /&gt;				fs.Write(pdf,0,pdf.Length);&lt;br /&gt;				fs.Close();&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111856517409669035?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111856517409669035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111856517409669035' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111856517409669035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111856517409669035'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/using-nfop-in-aspnet.html' title='Using NFOP in Asp.NET'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111852730704607654</id><published>2005-06-12T10:01:00.000+12:00</published><updated>2005-06-12T20:19:43.523+12:00</updated><title type='text'>How to create a smart-client with automatic updating</title><content type='html'>Thursday afternoon, I found myself rewriting my ftp application for &lt;a href="http://www.tvid.be" title="TV-iD" target="_blank"&gt;www.tvid.be&lt;/a&gt;. Because of some moving and new sites opening soon I had to make a few new versions of my ftp app.  I found the always uninstalling and reinstalling a very big drag.  Also because before it was one user but in a little while it should be dozens or hundreds.  &lt;br /&gt;&lt;br /&gt;I started looking for a way on how to deploy my custom winform control without userinteraction.  And I stumbled upon smart-clients.&lt;br /&gt;For a better explanation on what a smart-client is &lt;a href="http://msdn.microsoft.com/smartclient/understanding/definition/" title="Smart Client Definition" target="_blank"&gt;Microsoft's definition of a smart client&lt;/a&gt;&lt;br /&gt;The application I am writing is not really a smart client this time because it is used solely to upload media to the website and therefore it has to be connected all the time to the internet.  No offline capabilities for me.&lt;br /&gt;I guess it is more a thin client then a smart client. I just needed stable and more fast uploads to my sites for biggg files (up to 120MB)&lt;br /&gt;&lt;br /&gt;How to create smart clients is widely covered on the net. So I won't discuss this.&lt;br /&gt;&lt;br /&gt;To improve performance you should try to divide your application in a bunch of assemblies, because the client will download them as needed so, smaller files = better performance.&lt;br /&gt;Usefull for while developping smart clients : gacutil /ldl (list cached assemblies with version nr.), gacutil /cdl (clear download cache)&lt;br /&gt;&lt;br /&gt;Anyway these smart clients have a great feature &lt;b&gt;No-Touch Deployment&lt;/b&gt; sounds like music to my ears :). This is only true if you don't need to access protected resources e.g. the filesystem.&lt;br /&gt;A smart client can be run in the browser or the referencing it with an &amp;lt; a href=http://myserver/myapp/app.exe  element &amp;gt; The same restrictions apply as when you want to host a winform custom control in IE.&lt;br /&gt;There are 3 main ways of deploying these clients. The first one I gave you already... Just referencing to it from a a href link or just browsing to it.  this doesn't work for me because I have to access the file system and then I will have to run an installer.In my opinion what is the benefit of running an installer for an application that is on the internet .. I can't even create a shortcut&lt;br /&gt;&lt;br /&gt;The second one is using reflection. You create a small application launching stub.  With one small form. reference to System.Reflection (&lt;font color="#0080FF"&gt;using&lt;/font&gt; System.Reflection;) &lt;br /&gt;And then Assembly.LoadFile(url-to-form);&lt;br /&gt;This way you have the advantage that you can create new codegroups through the installer, setting the trusted sites and last but not least ;-) the shortcut to the application.&lt;br /&gt;Another great benefit is that your users will never have an out of date application. becaus all the assemblies are being downloaded from the net.  They can be cached but once you have a newer version online the reflection system will automatically download the newer one.&lt;br /&gt;Really cool but the bottleneck here is the downloading of the assemblies every time.&lt;br /&gt;&lt;br /&gt;The third way, is with a little unsupported help from our friends at microsoft, is to use the application block updater.  This little thing will make it so that your application can perform automatic updating as seen in avg antivirus, and many other commercial apps.  You can read all about it &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/updaterv2.asp" title=".NET updater" target="_blank"&gt;at microsoft.com&lt;/a&gt;&lt;br /&gt;This makes it so that you create a manifest. you put your application in a directory on your server, create a configuration file which points to this url.  And next time when you put your newer version online, depending on which scenario you chose the users will get the newer version, or the option to take the newer version.&lt;br /&gt;Once I read this I was sold because it gives me all the benefits of a desktop app (full trust and all) and the users only have to install the application once to get started.&lt;br /&gt;&lt;br /&gt;For the scenario's I chose for the in process scenario, because this keeps the most users the best up to date.. and this application will be changing a lot.&lt;br /&gt;&lt;br /&gt;If you use strongly named assemblies you will have to put the public key token in your app.config files.&lt;br /&gt;&lt;br /&gt;If you want an example just send me an &lt;a href="mailto:koolkraft@gmail.com" title="Email Me" target="_blank"&gt;email&lt;/a&gt;.. because this post is getting pretty long as it is..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111852730704607654?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111852730704607654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111852730704607654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111852730704607654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111852730704607654'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/about-windows-media-encoder-sdk.html' title='How to create a smart-client with automatic updating'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111843106735683908</id><published>2005-06-11T07:17:00.000+12:00</published><updated>2005-06-11T07:17:47.376+12:00</updated><title type='text'>.NET Application Updater Component</title><content type='html'>Piece to use when developping smart client&lt;br /&gt;&lt;br /&gt;&lt;a href="http://windowsforms.net/articles/appupdater.aspx"&gt;.NET Application Updater Component&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111843106735683908?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111843106735683908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111843106735683908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111843106735683908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111843106735683908'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/net-application-updater-component.html' title='.NET Application Updater Component'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111841623775705304</id><published>2005-06-11T03:10:00.000+12:00</published><updated>2005-06-11T03:18:29.836+12:00</updated><title type='text'>Creating pdf in .NET without crystal reports - getting the right software</title><content type='html'>As you could see earlier maybe in my blog. I have been looking for a way on how to create pdf through .NET&lt;br /&gt;Also it has to be free and i have to be able to learn from the source.&lt;br /&gt;&lt;br /&gt;After looking at a lot of different pdf libraries, most of them can be found on the sourceforge site.&lt;br /&gt;The best of them I found :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://itextsharp.sourceforge.net/" title="iTextSharp" target="_blank"&gt;iTextSharp - an opensource pdf library&lt;/a&gt;&lt;br /&gt;For the itextsharp you will need the zip library : &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx" title="SharpZipLib" target="_blank"&gt;Sharp Zip library&lt;/a&gt;&lt;br /&gt;I couldn't get this stuff to work, for me it always gave an error on the zip library.. Although I use the same library for zipping my pages before they are sent.&lt;br /&gt;&lt;br /&gt;Then on the codeproject there is the GIOS pdf project. It looks all very promissing but it didn't have the flexibility I wanted.&lt;br /&gt;&lt;a href="http://www.codeproject.com/csharp/GiosPdfNETlibrary.asp" title="GIOS pdf" target="_blank"&gt;GIOS Pdf Library&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So my search continued and I came on to the pdf creator library.  Very nice especially when you are writing a winforms application. But in my case it was a web form application.&lt;br /&gt;Again, no go....&lt;br /&gt;Back to the google board. And the next one that came out &lt;a href="http://report.sourceforge.net/" title="Report.NET" target="_blank"&gt;Report.NET&lt;/a&gt;.  Also a very cool program but the lay-out building was a drag so I also didn't like it so much because in meantime I was reading about xml and xsl-fo for transforming any xml-datasource into a variety of documents. Yess this is it .. Highly flexible and i can easily generate pdf with this.. no more worries on my side. I thought.&lt;br /&gt;&lt;br /&gt;Apache has a &lt;a href="http://xml.apache.org/fop/" title="FOP" target="_blank"&gt;Apache Formation Objects Processor (FOP)&lt;/a&gt; which is for free, and open source so I could learn from this.   This was fitting my needs exactly.. If only they would have this for .NET.. &lt;br /&gt;A little googling and yes : &lt;a href="http://nfop.sourceforge.net/" title="NFOP" target="_blank"&gt;NFOP&lt;/a&gt; pops up.  A .NET port of the java application from apache. NFOP can be downloaded &lt;a href="http://sourceforge.net/projects/nfop" title="download nfop" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Up to now I was never using xml.. so it took me some time to get the lingo down but after an afternoon of swearing and trying I started to get the hang of it.&lt;br /&gt;In my earlier posts you can find the links for starting with this xsl-fo, xslt&lt;br /&gt;&lt;br /&gt;For me the most useful were :&lt;br /&gt;&lt;a href="http://www.w3schools.com/xslfo/default.asp" title="xsl-fo tutorial" target="_blank"&gt;W3-Schools xsl-fo tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.renderx.com/tutorial.html" title="xsl-fo tutorial" target="_blank"&gt;RenderX xsl-fo tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xml.com/pub/a/2002/03/20/xsl-fo.html" title="xsl-fo tutorial" target="_blank"&gt;Xml.com xsl-fo tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Happy reading !!!&lt;br /&gt;Ivan&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111841623775705304?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111841623775705304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111841623775705304' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111841623775705304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111841623775705304'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/creating-pdf-in-net-without-crystal.html' title='Creating pdf in .NET without crystal reports - getting the right software'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111788778181085497</id><published>2005-06-05T00:23:00.000+12:00</published><updated>2005-06-11T02:33:47.363+12:00</updated><title type='text'>XSLT Stylesheets</title><content type='html'>&lt;a href="http://www.topxml.com/xsltstylesheets/default.asp"&gt;XSLT Stylesheets&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111788778181085497?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111788778181085497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111788778181085497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111788778181085497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111788778181085497'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/xslt-stylesheets.html' title='XSLT Stylesheets'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111788767395973533</id><published>2005-06-05T00:21:00.000+12:00</published><updated>2005-06-05T00:21:13.963+12:00</updated><title type='text'>XML en XSLT: een implementatie uit de praktijk</title><content type='html'>&lt;a href="http://www.iseriesinfo.nl/html/archief/2002/apr/1025.html"&gt;XML en XSLT: een implementatie uit de praktijk&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111788767395973533?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111788767395973533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111788767395973533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111788767395973533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111788767395973533'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/xml-en-xslt-een-implementatie-uit-de.html' title='XML en XSLT: een implementatie uit de praktijk'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111774724977348590</id><published>2005-06-03T09:20:00.000+12:00</published><updated>2005-06-03T09:21:13.230+12:00</updated><title type='text'>Suddenly everybody is obsessed with pdf-reports</title><content type='html'>Before I had no need for pdf and now it seems everybody wants pdf's that cannot be produced by crystal reports for .NET. Since I am a simple guy I also don't want to spend money for buying some component which probably doesn't do exactly what I want.&lt;br /&gt;&lt;br /&gt;So I start browsing the net and yes I find xsl-fo as a language I have been experimenting a little with it and it seems abt for the job especially when you combine it with xslt&lt;br /&gt;&lt;br /&gt;Basically it comes down to getting the data in xml and transforming it and sending it to some fo processor which creates the document you want.&lt;br /&gt;&lt;br /&gt;More will follow but now I have to get this done first&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111774724977348590?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111774724977348590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111774724977348590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111774724977348590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111774724977348590'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/suddenly-everybody-is-obsessed-with.html' title='Suddenly everybody is obsessed with pdf-reports'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111765641060867218</id><published>2005-06-02T08:06:00.000+12:00</published><updated>2005-06-02T08:06:50.616+12:00</updated><title type='text'>Fix Up Your HTML with HTML Tidy and .NET</title><content type='html'>&lt;a href="http://www.devx.com/dotnet/Article/20505/0/page/1"&gt;Fix Up Your HTML with HTML Tidy and .NET&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I discoverd xsl-fo and the possibilities.. Now I want to get my reporting done in html from my sql and this little thing should translate it to xhtml.  After i can translate this to xsl-fo using a xslt sheet&lt;br /&gt;&lt;br /&gt;When translated I can transform it easily to a number of documenttypes using NFOP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111765641060867218?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111765641060867218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111765641060867218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111765641060867218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111765641060867218'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/06/fix-up-your-html-with-html-tidy-and.html' title='Fix Up Your HTML with HTML Tidy and .NET'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111703516608880532</id><published>2005-05-26T03:32:00.000+12:00</published><updated>2005-05-26T03:32:46.093+12:00</updated><title type='text'>How To Cache in ASP.NET by Using Visual C# .NET</title><content type='html'>&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;323290"&gt;How To Cache in ASP.NET by Using Visual C# .NET&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111703516608880532?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111703516608880532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111703516608880532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111703516608880532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111703516608880532'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/how-to-cache-in-aspnet-by-using-visual.html' title='How To Cache in ASP.NET by Using Visual C# .NET'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111692228547699224</id><published>2005-05-24T20:11:00.000+12:00</published><updated>2005-05-24T20:11:25.886+12:00</updated><title type='text'>User Controls for Windows and the Web</title><content type='html'>Winforms controls in webform.  I can not get this properties to pass&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=388"&gt;User Controls for Windows and the Web&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111692228547699224?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111692228547699224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111692228547699224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111692228547699224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111692228547699224'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/user-controls-for-windows-and-web.html' title='User Controls for Windows and the Web'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111687867167233620</id><published>2005-05-24T08:04:00.000+12:00</published><updated>2005-05-24T08:04:31.676+12:00</updated><title type='text'>JScript WinForm Interop</title><content type='html'>&lt;a href="http://weblogs.asp.net/stevencohn/archive/2004/05/24/140201.aspx"&gt;JScript WinForm Interop&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111687867167233620?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111687867167233620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111687867167233620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111687867167233620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111687867167233620'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/jscript-winform-interop.html' title='JScript WinForm Interop'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111687756908004025</id><published>2005-05-24T07:46:00.001+12:00</published><updated>2005-05-24T07:46:09.086+12:00</updated><title type='text'>using direct x in IE</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/filters_transitions_entry.asp"&gt;Welcome to the MSDN Library&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111687756908004025?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111687756908004025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111687756908004025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111687756908004025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111687756908004025'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/using-direct-x-in-ie_23.html' title='using direct x in IE'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111687756831802665</id><published>2005-05-24T07:46:00.000+12:00</published><updated>2005-05-24T07:46:08.323+12:00</updated><title type='text'>using direct x in IE</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/filters_transitions_entry.asp"&gt;Welcome to the MSDN Library&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111687756831802665?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111687756831802665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111687756831802665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111687756831802665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111687756831802665'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/using-direct-x-in-ie.html' title='using direct x in IE'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111679496418697184</id><published>2005-05-23T08:49:00.000+12:00</published><updated>2005-05-23T08:49:24.190+12:00</updated><title type='text'>The Code Project - Create Desktop Widget Using Embedded IE Browser - .NET</title><content type='html'>&lt;a href="http://www.codeproject.com/dotnet/DesktopWidget.asp"&gt;The Code Project - Create Desktop Widget Using Embedded IE Browser - .NET&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111679496418697184?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111679496418697184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111679496418697184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111679496418697184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111679496418697184'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/code-project-create-desktop-widget.html' title='The Code Project - Create Desktop Widget Using Embedded IE Browser - .NET'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111679166811067700</id><published>2005-05-23T07:43:00.000+12:00</published><updated>2005-05-23T08:18:23.810+12:00</updated><title type='text'>Exposing Winform controls in Webpage : Simple control (part 1)</title><content type='html'>&lt;span style="font-family:arial;font-size:130%;"&gt;Exposing winform custom controls in a webpage.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Although the webcontrols of asp.NET are very cool. sometimes they just don't give you enough flexibility. I had the problem for a site I am making that this people have to upload huge amounts of data. It is an online tv-station. At first I tried uploading through the http post. But the uploads grew larger in size. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;So I went through http uploads but passed on in another thread hoping this would improve stability. It did a little bit. The second problem you are facing is the huge timeout amount you have to set on the page in order to get it to upload 180 Mb of data.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Some time passed and I still wasn't happy with the way things were going so I decided to write an ftp-client based on the library of edt in winforms to make it more stable. After all ftp = file transfer protocol ;). The database edits were done through a webservice. This was cool. And then msn comes with spaces and they had something I wanted. They can select multiple files. Every picture can be selected seperately.. .Obviously winforms but it ran in my browser. So the search starts.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;1. A simple webcontrol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;As an example I made a calculator that can only multiply 2 values.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Please feel free to get the code below :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;using&lt;/span&gt; System.Collections;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;using&lt;/span&gt; System.ComponentModel;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;using&lt;/span&gt; System.Drawing;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;using&lt;/span&gt;System.Data;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;using&lt;/span&gt; System.Windows.Forms;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;namespace&lt;/span&gt; Koolkraft.Library.Win2Web&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;blockquote&gt;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Summary description for Calculator.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;public&lt;/span&gt; class Calculator : System.Windows.Forms.UserControl&lt;br /&gt;{&lt;br /&gt;private System.Windows.Forms.TextBox tbVal1;&lt;br /&gt;private System.Windows.Forms.TextBox tbVal2;&lt;br /&gt;private System.Windows.Forms.Label lblResult;&lt;br /&gt;private System.Windows.Forms.Button btnMultiply;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Required designer variable.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;private System.ComponentModel.Container components = null;&lt;br /&gt;public Calculator()&lt;br /&gt;{&lt;br /&gt;// This call is required by the Windows.Forms Form Designer.&lt;br /&gt;InitializeComponent();&lt;br /&gt;// TODO: Add any initialization after the InitializeComponent call&lt;br /&gt;}&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Clean up any resources being used.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;protected override void Dispose( bool disposing )&lt;br /&gt;{&lt;br /&gt;if( disposing )&lt;br /&gt;{&lt;br /&gt;if(components != null)&lt;br /&gt;{&lt;br /&gt;components.Dispose();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;base.Dispose( disposing );&lt;br /&gt;}&lt;br /&gt;#region Component Designer generated code&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Required method for Designer support - do not modify&lt;br /&gt;/// the contents of this method with the code editor.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;private void InitializeComponent()&lt;br /&gt;{&lt;br /&gt;this.tbVal1 = new System.Windows.Forms.TextBox();&lt;br /&gt;this.tbVal2 = new System.Windows.Forms.TextBox();&lt;br /&gt;this.lblResult = new System.Windows.Forms.Label();&lt;br /&gt;this.btnMultiply = new System.Windows.Forms.Button();&lt;br /&gt;this.SuspendLayout();&lt;br /&gt;//&lt;br /&gt;// tbVal1&lt;br /&gt;//&lt;br /&gt;this.tbVal1.Location = new System.Drawing.Point(32, 24);&lt;br /&gt;this.tbVal1.Name = "tbVal1";&lt;br /&gt;this.tbVal1.TabIndex = 0;&lt;br /&gt;this.tbVal1.Text = "";&lt;br /&gt;//&lt;br /&gt;// tbVal2&lt;br /&gt;//&lt;br /&gt;this.tbVal2.Location = new System.Drawing.Point(32, 56);&lt;br /&gt;this.tbVal2.Name = "tbVal2";&lt;br /&gt;this.tbVal2.TabIndex = 1;&lt;br /&gt;this.tbVal2.Text = "";&lt;br /&gt;//&lt;br /&gt;// lblResult&lt;br /&gt;//&lt;br /&gt;this.lblResult.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;&lt;br /&gt;this.lblResult.ForeColor = System.Drawing.Color.IndianRed;&lt;br /&gt;this.lblResult.Location = new System.Drawing.Point(152, 104);&lt;br /&gt;this.lblResult.Name = "lblResult";&lt;br /&gt;this.lblResult.TabIndex = 2;&lt;br /&gt;this.lblResult.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;&lt;br /&gt;//&lt;br /&gt;// btnMultiply&lt;br /&gt;//&lt;br /&gt;this.btnMultiply.Location = new System.Drawing.Point(152, 24);&lt;br /&gt;this.btnMultiply.Name = "btnMultiply";&lt;br /&gt;this.btnMultiply.Size = new System.Drawing.Size(24, 23);&lt;br /&gt;this.btnMultiply.TabIndex = 3;&lt;br /&gt;this.btnMultiply.Text = "x";&lt;br /&gt;this.btnMultiply.Click += new System.EventHandler(this.btnMultiply_Click);&lt;br /&gt;//&lt;br /&gt;// Calculator&lt;br /&gt;//&lt;br /&gt;this.BackColor = System.Drawing.Color.Khaki;&lt;br /&gt;this.Controls.Add(this.btnMultiply);&lt;br /&gt;this.Controls.Add(this.lblResult);&lt;br /&gt;this.Controls.Add(this.tbVal2);&lt;br /&gt;this.Controls.Add(this.tbVal1);&lt;br /&gt;this.Name = "Calculator";&lt;br /&gt;this.Size = new System.Drawing.Size(264, 150);&lt;br /&gt;this.ResumeLayout(false);&lt;br /&gt;}&lt;br /&gt;#endregion&lt;br /&gt;private void btnMultiply_Click(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;double val1 = double.Parse(tbVal1.Text);&lt;br /&gt;double val2 = double.Parse(tbVal2.Text);&lt;br /&gt;double result = val1*val2;&lt;br /&gt;lblResult.Text = result.ToString();&lt;br /&gt;}&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Now that we have the usercontrol we compile it and put the compiled assembly in an accessible folder of the website. The /bin folder won't do because we don't have browse access to this folder. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Next we make a page this can be html or aspx it is the same.&lt;br /&gt;&lt;br /&gt;between de body tags but an object like this&lt;object id="mycalculator" data="data:application/x-oleobject;base64,IGkzJfkDzxGP0ACqAGhvEzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+DQo8SFRNTD48SEVBRD4NCjxNRVRBIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KPE1FVEEgY29udGVudD0iTVNIVE1MIDYuMDAuMjkwMC4yNjI3IiBuYW1lPUdFTkVSQVRPUj48L0hFQUQ+DQo8Qk9EWT4NCjxQPiZuYnNwOzwvUD48L0JPRFk+PC9IVE1MPg0K" classid="&lt;a href="&gt;&lt;br /&gt;http://localhost/TestLib/Win2Web/Koolkraft.Library.Win2Web.dll#Koolkraft.Library.Win2Web.Calculator&lt;/a&gt;"    VIEWASTEXT&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Test the page and you should be able to see everything.  If not it has to do with your security settings in your browser.  The disadvantage is that the client browser has to be IE 6. But I just use it when everything else fails and it does its job pretty good :)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Happy programming !!!&lt;/span&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;/object&gt;OBJECT id="mycalculator" classid="&lt;a href="http://localhost/TestLib/Win2Web/Koolkraft.Library.Win2Web.dll#Koolkraft.Library.Win2Web.Calculator"&gt;http://localhost/TestLib/Win2Web/Koolkraft.Library.Win2Web.dll#Koolkraft.Library.Win2Web.Calculator&lt;/a&gt;" VIEWASTEXT&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;you will have to put the &lt; &gt; signs&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111679166811067700?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111679166811067700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111679166811067700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111679166811067700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111679166811067700'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/exposing-winform-controls-in-webpage.html' title='Exposing Winform controls in Webpage : Simple control (part 1)'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111671685934480405</id><published>2005-05-22T11:07:00.000+12:00</published><updated>2005-05-22T11:07:39.350+12:00</updated><title type='text'>DataSet in Custom Control</title><content type='html'>&lt;a href="http://www.codeproject.com/aspnet/webcontrolsdatabinding.asp"&gt;The Code Project - Data Binding in WebControls - ASP.NET&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111671685934480405?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111671685934480405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111671685934480405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111671685934480405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111671685934480405'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/dataset-in-custom-control.html' title='DataSet in Custom Control'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13001102.post-111667109318075469</id><published>2005-05-21T22:24:00.000+12:00</published><updated>2005-05-21T22:24:53.183+12:00</updated><title type='text'>Transparent PNG in IE asp.NET</title><content type='html'>&lt;a href="http://spaces.msn.com/members/casualjim/"&gt;..:: Casual Jim ::..&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In dutch about the png-bug in explorer. I will translate it when I have some time.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13001102-111667109318075469?l=casualjim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://casualjim.blogspot.com/feeds/111667109318075469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13001102&amp;postID=111667109318075469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111667109318075469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13001102/posts/default/111667109318075469'/><link rel='alternate' type='text/html' href='http://casualjim.blogspot.com/2005/05/transparent-png-in-ie-aspnet.html' title='Transparent PNG in IE asp.NET'/><author><name>Ivan Porto Carrero</name><uri>http://www.blogger.com/profile/04066884393515477330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
