<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Anton Andreev's blog - .NET</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/</link>
    <description>Anton Andreev's blog</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    
    

<item>
    <title>F# AsyncWorkflow demo that really compiles</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/223-F-AsyncWorkflow-demo-that-really-compiles.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/223-F-AsyncWorkflow-demo-that-really-compiles.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=223</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=223</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    You can browse/download the code from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/fsharpdemos/source/browse/#svn/trunk&#039;);&quot;  href=&quot;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&quot; target=_blank&gt;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You need F# version 1.9.6.2 and reference to FSharp.PowerPack.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 4&lt;/strong&gt;&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080;&quot;&gt;#light&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Net&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;IO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;type &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Net&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;WebRequest&lt;/span&gt; with&lt;br /&gt;&amp;#160; member x.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetResponseAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; &amp;#160; Async.&lt;span style=&quot;color: #0000FF;&quot;&gt;BuildPrimitive&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;x.&lt;span style=&quot;color: #0000FF;&quot;&gt;BeginGetResponse&lt;/span&gt;, x.&lt;span style=&quot;color: #0000FF;&quot;&gt;EndGetResponse&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;let downloadPage&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url:&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; = &lt;br /&gt;&amp;#160; async &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; let request = WebRequest.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; use! response = request.&lt;span style=&quot;color: #0000FF;&quot;&gt;AsyncGetResponse&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; use stream = response.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetResponseStream&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; use reader = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; StreamReader&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;stream&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let! html = reader.&lt;span style=&quot;color: #0000FF;&quot;&gt;AsyncReadToEnd&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url, html&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;let download&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr : ResizeArray&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; let urls = List.&lt;span style=&quot;color: #0000FF;&quot;&gt;of_seq&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; let dotnetresult = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Generic&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;string,string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; let results = Async.&lt;span style=&quot;color: #0000FF;&quot;&gt;Run&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Async.&lt;span style=&quot;color: #0000FF;&quot;&gt;Parallel&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; site &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; urls -&amp;gt; downloadPage site&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;#160; &amp;#160; results |&amp;gt; Seq.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun x -&amp;gt; dotnetresult.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fst x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; , &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;snd x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; dotnetresult&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
And C# code that calls it:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;Dictionary&amp;lt;string, string&amp;gt; bc = AsyncWorkflowDemo.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToList&lt;/span&gt;&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; key &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; bc.&lt;span style=&quot;color: #0000FF;&quot;&gt;Keys&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;bc&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Thu, 16 Apr 2009 21:00:51 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/223-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>f#</category>
<category>linkedin</category>

</item>
<item>
    <title>Consuming/Calling F# from C#</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/222-ConsumingCalling-F-from-C.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/222-ConsumingCalling-F-from-C.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=222</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=222</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/research.microsoft.com/en-us/um/cambridge/projects/fsharp/&#039;);&quot;  href=&quot;http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/&quot; target=_blank&gt;F#&lt;/a&gt; is a functional language being developed by Microsoft Research.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Summary&lt;/strong&gt;&lt;br /&gt;
In this article you will learn how to pass parameters and retrieve results from a F# library. Although F# can be used to program everything in my humble opinion it should be used in areas where it will make the code more robust, more easier to understand or support, but it should not be used for ordinary tasks where today imperative languages do their job just fine. In other words we should use both of them. F# and C# may both be .NET using the Common Type System, but communication between them might not be that straight forward, at least not in the beginning. In this demos we will be using the Task Parallel Library which is another cool library that optimizes you code running on multi-core machines. TPL is available for all .NET languages and in this demo we using the TPL CTP June 2008. The three demos do the same thing, they only differ in input and output parameters usage. The F# code resides in a separate project as a F# library. The purpose of the F# code is to download web pages.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Credits:&lt;/strong&gt;&lt;br /&gt;
Credit goes to this &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/msdn.microsoft.com/en-us/magazine/dd483224.aspx&#039;);&quot;  href=&quot;http://msdn.microsoft.com/en-us/magazine/dd483224.aspx&quot;  target=_blank&gt;polyglot article&lt;/a&gt;, the website &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/stackoverflow.com&#039;);&quot;  href=&quot;http://stackoverflow.com&quot;  target=_blank&gt;stackoverflow.com&lt;/a&gt; and what I&#039;ve learned thanks to the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/cs.hubfs.net/&#039;);&quot;  href=&quot;http://cs.hubfs.net/&quot; target=_blank&gt;F# community&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
You can browse/download the code from &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/fsharpdemos/source/browse/#svn/trunk&#039;);&quot;  href=&quot;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&quot; target=_blank&gt;http://code.google.com/p/fsharpdemos/source/browse/#svn/trunk&lt;/a&gt;. The version of F# used is 1.9.6.2.&lt;br /&gt;
&lt;br /&gt;
The three F# demos start with:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080;&quot;&gt;#light&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;IO&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Net&lt;/span&gt;&lt;br /&gt;open Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Control&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;CommonExtensions&lt;/span&gt; &lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Threading&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Threading&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Tasks&lt;/span&gt;;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Threading&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;&lt;br /&gt;open &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 1&lt;/strong&gt;&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;let download &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;urls:&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; list&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; seq &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; use results = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; BlockingCollection&amp;lt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; &amp;lt;strong&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use pagesRemain = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; CountdownEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let &amp;lt;u&amp;gt; = Task.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun &amp;lt;/u&amp;gt; -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; urls |&amp;gt; List.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun url -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let wc = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; WebClient&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringCompleted&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun args -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Error&lt;/span&gt; = &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #0000FF;&quot;&gt;UserState&lt;/span&gt; :?&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Result&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Increment&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Uri&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; result &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetConsumingEnumerable&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;do&lt;/span&gt; yield result&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The problem here is that the input parameter is a F# list which quite different from the C# List. This means that:&lt;br /&gt;
- you need to include the FSharp.Core assembly in your C# application&lt;br /&gt;
- build that F# list and pass it&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; scores = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://osnews.com&quot;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://cnn.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//We create an empty list and move backwards because we are adding values before what we&#039;ve just added and this way we keep the C# value order.&lt;/span&gt;&lt;br /&gt;var fs_scores = Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;List&lt;/span&gt;&amp;lt;string&amp;gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;get_uniq_Empty&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; i = scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;Length&lt;/span&gt; - &lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;; i &amp;gt;= &lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;; i--&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// In functional programming lists are build from tuples as each tuple links to the next. &lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Cons(scores[i], fs_scores) means that we attach the next C# element to the previously created list&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// The first time the list had one tuple that has the last value of the C# array and links to empty list &lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// which acts as a sentinel.&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; fs_scores = Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;List&lt;/span&gt;&amp;lt;string&amp;gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Cons&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;, fs_scores&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//The result also comes in the form of tuples:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Core&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Tuple&lt;/span&gt;&amp;lt;string, string&amp;gt; pair &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; InteroperabilityDemo1.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fs_scores&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;pair.&lt;span style=&quot;color: #0000FF;&quot;&gt;Item2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 2&lt;/strong&gt;&lt;br /&gt;
Here we replace the input F# list with type easily recognized by C#&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;let download &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;array : ResizeArray&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; seq &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; use results = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; BlockingCollection&amp;lt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; &amp;lt;/strong&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use pagesRemain = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; CountdownEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let urls = List.&lt;span style=&quot;color: #0000FF;&quot;&gt;of_seq&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;array&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let &amp;lt;u&amp;gt; = Task.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun &amp;lt;/u&amp;gt; -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; urls |&amp;gt; List.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun url -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let wc = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; WebClient&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringCompleted&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun args -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Error&lt;/span&gt; = &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #0000FF;&quot;&gt;UserState&lt;/span&gt; :?&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Result&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Increment&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Uri&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; result &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetConsumingEnumerable&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;do&lt;/span&gt; yield result&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The calling code from C# is:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; scores = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://osnews.com&quot;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://cnn.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Microsoft.&lt;span style=&quot;color: #0000FF;&quot;&gt;FSharp&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Core&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Tuple&lt;/span&gt;&amp;lt;string, string&amp;gt; pair &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; InteroperabilityDemo2.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToList&lt;/span&gt;&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;pair.&lt;span style=&quot;color: #0000FF;&quot;&gt;Item2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The code here definitely shorter, but unfortunately still use the FSharp.Core for the tuples in the output.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Sample 3&lt;/strong&gt; &lt;br /&gt;
Here we add an additional structure &quot;dotnetresult&quot; to make sure the result is recognized with no problems in C#.&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;let download &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr : ResizeArray&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use results = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; BlockingCollection&amp;lt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; * &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; use pagesRemain = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; CountdownEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let dotnetresult = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Generic&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;string,string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let urls = List.&lt;span style=&quot;color: #0000FF;&quot;&gt;of_seq&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;arr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; let &amp;lt;u&amp;gt; = Task.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun &amp;lt;/u&amp;gt; -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; urls |&amp;gt; List.&lt;span style=&quot;color: #0000FF;&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun url -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; let wc = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; WebClient&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringCompleted&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fun args -&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Error&lt;/span&gt; = &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #0000FF;&quot;&gt;UserState&lt;/span&gt; :?&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, args.&lt;span style=&quot;color: #0000FF;&quot;&gt;Result&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Increment&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; wc.&lt;span style=&quot;color: #0000FF;&quot;&gt;DownloadStringAsync&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Uri&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, url&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; pagesRemain.&lt;span style=&quot;color: #0000FF;&quot;&gt;Decrement&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; then results.&lt;span style=&quot;color: #0000FF;&quot;&gt;CompleteAdding&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//(fst result) returns the url and (snd result) returns the html&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; result &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; results.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetConsumingEnumerable&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;do&lt;/span&gt; dotnetresult.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;fst result&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;snd result&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; dotnetresult&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
An the calling C# code:&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; scores = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://osnews.com&quot;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;&quot;http://cnn.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;Dictionary&amp;lt;string, string&amp;gt; bc = InteroperabilityDemo3.&lt;span style=&quot;color: #0000FF;&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;scores.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToList&lt;/span&gt;&amp;lt;string&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; key &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; bc.&lt;span style=&quot;color: #0000FF;&quot;&gt;Keys&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;bc&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;key&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Now we do not need FSharp.Core and no one should guess in what language our F# library has been written.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update:&lt;/strong&gt;&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/tomasp.net/blog/fsharp-webcast-objects.aspx&#039;);&quot;  href=&quot;http://tomasp.net/blog/fsharp-webcast-objects.aspx&quot;&gt;Developing standard .NET libraries in F# webcast&lt;/a&gt; by Tomas Petricek&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 16 Apr 2009 09:47:10 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/222-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>f#</category>
<category>linkedin</category>

</item>
<item>
    <title>Microsoft Cloud Techology: Azure</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/185-Microsoft-Cloud-Techology-Azure.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/185-Microsoft-Cloud-Techology-Azure.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=185</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=185</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;strong&gt;&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.microsoft.com/azure/windowsazure.mspx&#039;);&quot;  href=&quot;http://www.microsoft.com/azure/windowsazure.mspx&quot; target=_blank&gt;Microsoft Windows Azure&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
It is a cloud technology that comes with integration with Visual Studio. &lt;br /&gt;
&lt;br /&gt;
The main advantage to me is scalability and the fact that charging is based on what you really consume. &lt;br /&gt;
By scalability I mean that your application will be able to access more resources either by you requesting more or even dynamically when there is a peek in visitors on your web site. That is petty cool, cause you do need to upgrade your hardware just because your visitors double every Monday when you have promotions, but the rest of the week you have less visitors. &lt;br /&gt;
&lt;br /&gt;
As expect that MS will charge per CPU, HDD and bandwidth usage. This gives you the relief that if you have no visitors this month and you have not generated much income then you will pay less expenditures.&lt;br /&gt;
&lt;br /&gt;
Keep an eye on Windows Azure progress! 
    </content:encoded>

    <pubDate>Tue, 28 Oct 2008 14:15:28 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/185-guid.html</guid>
    <category>dotnet</category>
<category>english</category>

</item>
<item>
    <title>Visual Studio on Linux or Mac</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/162-Visual-Studio-on-Linux-or-Mac.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/162-Visual-Studio-on-Linux-or-Mac.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=162</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=162</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;!-- s9ymdb:38 --&gt;&lt;img width=&quot;500&quot; height=&quot;313&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/uploads/vsmac.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
SeamlessRDP allows an individual application on Windows XP to be run in an X11 window via rdesktop.&lt;br /&gt;
 &lt;br /&gt;
You still need a Windows instance which can be a remote machine or a virtual machine on the same machine as your Mac or Linux. It is something like VMWare fusion, but it is not only for Mac.&lt;br /&gt;
&lt;br /&gt;
It works, I have tested it myself on a Linux machine! 
    </content:encoded>

    <pubDate>Thu, 08 May 2008 18:27:01 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/162-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>linkedin</category>
<category>linux</category>
<category>macos</category>
<category>virtualization</category>
<category>visual studio</category>
<category>windows</category>

</item>
<item>
    <title>Microsoft Days 2008</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/159-Microsoft-Days-2008.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/159-Microsoft-Days-2008.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=159</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=159</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
      Малко ми е трудно да пиша при условие, че съм говорил лично с шефа на маркетинга на Microsoft Bulgaria и споменаха, че получават редовно бюлетин за всичко публикувано на тема Microsoft в пресата и Интернет :), което е нормално (искат да имат реален поглед към отношението към Microsoft)&lt;br /&gt;
&lt;br /&gt;
  На такива представяния не трябва да се ходи на нещата, които може и сам да си прочетеш, а на нещата които не би седнал сам да разглеждаш. Беше крайно време да се запозная с някои продукти на Microsoft (било то и малко насила). Ако си developer трябва да погледнеш и от другата страна на нещата. Съществува позиция, която е sales и deployment: подробно познаване на продукта и неговото внедряване. Мисля, че подобна позиция е също една от перспективите към която трябва да се стремя.&lt;br /&gt;
&lt;br /&gt;
  По принцип на такива събития отговарям на въпроси и вземам много подаръци и затова се бяхме приготвили: казах на Динко вземе чувалите и да опразни колата, но за съжаление този път нямаше подаръци при отговор на въпроси.&lt;br /&gt;
 &lt;br /&gt;
 С цел да разуча новите неща създадох нова моя мрежа в мрежата на Верео от моята работна станция и две виртуални машини. Сега вече администраторите ще ме молят аз да ги включа в моя domain.  Да не говорим за няколкото Солариса &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;strong&gt;SCOM - System Center Operations Manager&lt;/strong&gt;&lt;br /&gt;
     &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.microsoft.com/systemcenter/opsmgr/default.mspx&#039;);&quot;  href=&quot;http://www.microsoft.com/systemcenter/opsmgr/default.mspx&quot; target=_blank&gt;SCOM&lt;/a&gt; e сърварен  софтуер (последната налична версия работи само на Windows Server 2003 R2) чрез който може да следите останалите сървъри и компютри в мрежата. Има си агент, който се инсталира на всяка машина. Изисква SQL Server 2005 SP1 и машината да е част от domain. Инсталирах го, разцъках го. Не разбрах само как да кажа да следи даден Sql Server?&lt;br /&gt;
&lt;br /&gt;
  Лекцията на &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/kulov.net&#039;);&quot;  href=&quot;http://kulov.net&quot;&gt;Мартин Кулов&lt;/a&gt; Debugging and Crash Dump ми се стори доста практична.&lt;br /&gt;
&lt;br /&gt;
  Интерс проявих и към Microsoft Deployment, Microsoft Performance Point Server, Visto, Excel Services, Microsoft Dynamics CRM&lt;br /&gt;
&lt;br /&gt;
  Мацките, яденето и пиенето бяха на ниво. &lt;br /&gt;
&lt;br /&gt;
  Участието ни беше финансирано от Верео. 
    </content:encoded>

    <pubDate>Mon, 28 Apr 2008 23:57:13 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/159-guid.html</guid>
    <category>верео</category>
<category>dotnet</category>

</item>
<item>
    <title>Porting from Microsoft .NET to  Novell Mono</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/142-Porting-from-Microsoft-.NET-to-Novell-Mono.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/142-Porting-from-Microsoft-.NET-to-Novell-Mono.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=142</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=142</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    Damn ...  without a debugger we needed to use the old fashion way with printing messages when entering a method, leaving a method or simply checking the value of a variable. We could use a .NET logger, but we did not. Our database is Sql Server and we used the provided VMWare image with preconfigured Mono runtime, compiler and tools from the Mono&#039;s website. Version of Mono is 1.2.6. I was the only one who had experience with Mono before. And when they came to me to ask whether it could be done, I said &quot;True, I am your guy!&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
 &lt;li&gt;Bug in the Mono Sql Server provider. Store procedures parameters are case-sensitive, this is not the expected behavior as the MS Sql Server provider parameters are NOT case-sensitive.&lt;/li&gt;&lt;br /&gt;
 &lt;li&gt;The second bug is with &lt;strong&gt;nvarchar&lt;/strong&gt; parameters. We observed that when we execute the problematic store procedure with empty strings instead of dbnull we have the same error. Seems like that when you set the parameters to dbnull explicitly, the Mono Sql Server provider sends empty strings instead. This of course affects the store procedure logic which expects dbnull. We added the following code to all problematic store procedures:&lt;br /&gt;
 &lt;div class=&quot;sql&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;IF&lt;/span&gt; @CLName = &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; BEGIN&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SET&lt;/span&gt; @CLName = &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;NULL&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; END&lt;/div&gt;&lt;br /&gt;
That is what we discovered, I did report the bug and I hope someone will check what the problem really is. &lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
 &lt;li&gt;You also needed an explicit &lt;strong&gt;&quot;Array&quot;&lt;/strong&gt; cast when using AddRange method:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;command.&lt;span style=&quot;color: #0000FF;&quot;&gt;Parameters&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;AddRange&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Array&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;commandParameters&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&amp;#160;&lt;/div&gt; &lt;br /&gt;
&lt;br /&gt;
or you will probably end up with null reference exception leaving you with no hint where it came from.&lt;br /&gt;
 Also you have use Convert.ToInt32 instead of (int) cast or casting with the &lt;strong&gt;as&lt;/strong&gt; operator which is indeed the right way to code no matter which runtime you use. &lt;/li&gt;&lt;br /&gt;
 &lt;li&gt;We had some exceptions that made us set the size property of some of our SQL Server store procedure character parameters in our C# code to some value (e.x. 1000)&lt;/li&gt;&lt;br /&gt;
 &lt;li&gt;Also we had problem with output parameter. Seems like it is not recommended to return anything longer that 8000/4000 characters length with an output parameter. Actually this makes sense. The exception informed us about some deprecated features related to output parameters.&lt;/li&gt;&lt;br /&gt;
 &lt;strong&gt;Linux specific issues:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;li&gt;We had problems with generics in &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.monodevelop.com/Main_Page&#039;);&quot;  href=&quot;http://www.monodevelop.com/Main_Page&quot; target=_blank&gt;Monodevelop&lt;/a&gt;. The problem was that somehow when we created our project the runtime was set to .NET 1.1 and not 2.0, which was pretty surprising.&lt;/li&gt;&lt;br /&gt;
 &lt;li&gt;You have most chances of starting XSP2 properly from the command line by going to the root folder and simply typing &quot;XSP2&quot;. When using  Monodevelop use to stop button to stop the XSP2 process or you may end with a bunch XSP2 running processes that you need to kill.&lt;/li&gt;&lt;br /&gt;
 &lt;li&gt;If you feel that you have problems with filesystem permissions, create an empty Monodevelop Web project. Then copy all your source code in the directory that Monodevelop had created and call XSP2 from there.&lt;/li&gt;&lt;br /&gt;
 &lt;li&gt;Save all your source files to UTF-8 and then use:&lt;br /&gt;
        &lt;globalization  fileEncoding=&quot;UTF-8&quot;/&gt;&lt;br /&gt;
 &lt;/li&gt;&lt;br /&gt;
 &lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
After all we made it worked! I think it has something to do with fact that we were good ... Next is porting the database to Postgresql, oh... Lord, save us! Postgresql is my favorite database but I just do not think that conversion will be that easy ...&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
   &lt;li&gt;Our native language is Bulgarian. We set the Postgresql database encoding to 1251 and not UTF8. We had to add &lt;strong&gt;encoding=UNICODE;&lt;/strong&gt; in the Postgresql connection string to make it work correct with Mono which did not make any sense to me.&lt;/li&gt;&lt;br /&gt;
   &lt;li&gt;You can also read my &lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/127-.NET,-Postgresql,-Mono,-AJAX.html&quot; target=_blank&gt;Postgresql post&lt;/a&gt;&lt;/li&gt;.&lt;br /&gt;
&lt;ul&gt; 
    </content:encoded>

    <pubDate>Tue, 12 Feb 2008 20:19:58 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/142-guid.html</guid>
    <category>dotnet</category>
<category>english</category>
<category>linkedin</category>

</item>
<item>
    <title>Php и .NET</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/105-Php-.NET.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/105-Php-.NET.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=105</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=105</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    Подкарах Php под .NET. Използвах &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeplex.com/Phalanger&#039;);&quot;  href=&quot;http://www.codeplex.com/Phalanger&quot; target=_blank&gt;Phalanger&lt;/a&gt;. Пуснах популярният форум &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.phpbb.com/&#039;);&quot;  href=&quot;http://www.phpbb.com/&quot; target=_blank&gt;Phpbb&lt;/a&gt; под .NET, IIS и Mysql, без PHP и Apache да инсталирам. Ето &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/php-compiler.net/doku.php?id=phalanger-on-xp&#039;);&quot;  href=&quot;http://php-compiler.net/doku.php?id=phalanger-on-xp&quot; target=_blank&gt;тук&lt;/a&gt; е описано как става номерът. По лесно ми се струва от подкарване на Apache и Php. &lt;b&gt;Update&lt;/b&gt;: Подкарах го и с Postgresql, но има проблем с кирилицата. 
    </content:encoded>

    <pubDate>Tue, 17 Apr 2007 10:40:46 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/105-guid.html</guid>
    <category>dotnet</category>
<category>linkedin</category>

</item>
<item>
    <title>Разни полезни неща (за .NET предимно)</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/85-.NET.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/85-.NET.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=85</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=85</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeproject.com/useritems/lasergesture.asp&#039;);&quot;  href=&quot;http://www.codeproject.com/useritems/lasergesture.asp&quot; target=_blank&gt;Laser Gesture Recognition&lt;/a&gt; Движиш лазер по стената (или накъдето е насочена web камера) и разпознава посоката на движенеито. Може да оправляваш media player с лазер. Ако някой намери от ония лазерни джаджи(дет си играехме едно време) - да купува и да ми носи &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;.&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeproject.com/jscript/jsvk.asp&#039;);&quot;  href=&quot;http://www.codeproject.com/jscript/jsvk.asp&quot;  target=_blank&gt;&lt;br /&gt;
Virtual keyboard&lt;/a&gt; Ако нямаш кирилизатор или за мобилни устройства.&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/weblogs.asp.net/scottgu/archive/2006/05/14/Using-LINQ-with-ASP.NET-&amp;lt;u&amp;gt;2800_Part-1_2900&amp;lt;/u&amp;gt;.aspx&#039;);&quot;  href=&quot;http://weblogs.asp.net/scottgu/archive/2006/05/14/Using-LINQ-with-ASP.NET-&lt;u&gt;2800_Part-1_2900&lt;/u&gt;.aspx&quot;  target=_blank&gt;LINQ .NET query език&lt;/a&gt;(Linq ще го има и в Mono), &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1133791&amp;amp;SiteID=1&#039;);&quot;  href=&quot;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1133791&amp;SiteID=1&quot; target=_blank&gt;Linq install hacks&lt;/a&gt;&lt;br /&gt;
Ето пример: &lt;div class=&quot;csharp&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Query&lt;/span&gt;;&lt;br /&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Collections&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Generic&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; App&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; Main&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #FF0000;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; names = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;“Burke”, “Connor”, “Frank”, “Everett”, “Albert”, “George”, “Harris”, David” &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; IEnumerable&amp;lt;string&amp;gt; expr = from s &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; names&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; where s.&lt;span style=&quot;color: #0000FF;&quot;&gt;Length&lt;/span&gt; == &lt;span style=&quot;color: #FF0000;&quot;&gt;5&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; orderby s&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; select s.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToUpper&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; item &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; expr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Console.&lt;span style=&quot;color: #0000FF;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;item&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.asp.net/sandbox/app_blinq.aspx?tabid=62&#039;);&quot;  href=&quot;http://www.asp.net/sandbox/app_blinq.aspx?tabid=62&quot; target=_blank&gt;Blinq&lt;/a&gt; - генерира сайтове от база данни. &lt;br /&gt;
&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeproject.com/useritems/JumpyForum.asp&#039;);&quot;  href=&quot;http://www.codeproject.com/useritems/JumpyForum.asp&quot;  target=_blank&gt;Код за .NET форумче&lt;/a&gt;&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeproject.com/aspnet/GoogleSuggestDictionary.asp&#039;);&quot;  href=&quot;http://www.codeproject.com/aspnet/GoogleSuggestDictionary.asp&quot;  target=_blank&gt;Google suggest dictionary&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 17 Jan 2007 12:41:05 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/85-guid.html</guid>
    <category>dotnet</category>
<category>linkedin</category>

</item>
<item>
    <title>F#</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/60-F.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/60-F.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=60</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=60</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/research.microsoft.com/fsharp/release.aspx&#039;);&quot;  href=&quot;http://research.microsoft.com/fsharp/release.aspx&quot; target=_blank&gt;F#&lt;/a&gt; изглежда като език който се опитва да прибави елементи на функционалното програмиране. Звучи ми добре. Може да се инсталира към VS2005 и да работи без проблеми. Има си code-complete. 
    </content:encoded>

    <pubDate>Fri, 15 Sep 2006 14:50:36 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/60-guid.html</guid>
    <category>dotnet</category>
<category>f#</category>

</item>
<item>
    <title>Динамични езици за .NET</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/47-.NET.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/47-.NET.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=47</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=47</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeplex.com/Wiki/View.aspx?ProjectName=Phalanger&#039;);&quot;  href=&quot;http://www.codeplex.com/Wiki/View.aspx?ProjectName=Phalanger&quot; target=_blank&gt;Phalanger&lt;/a&gt; e PHP за .NET. Освен това има Ruby.NET и IronPyton. 
    </content:encoded>

    <pubDate>Sun, 13 Aug 2006 19:44:08 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/47-guid.html</guid>
    <category>dotnet</category>

</item>
<item>
    <title>.NET 2.0</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/25-.NET-2.0.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/25-.NET-2.0.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=25</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
     Започнах на новата работа в ЕОА(Elements of Art). Ние сме клон на германска фирма. Само 3-ма сме, но си има предимства &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; .  Колегите са свестни, само дето са пушачи, аз им казах, че тях ще ги убия последни като почна да избивам всички пушачи на света ... &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; Разучавам ASP.NET 2.0 и има доста нови неща. Има така наречените webparts. Това са контроли, които потребителя може динамично да драгва и слага на собствената си страница. Тоест ти може да правиш такива  контроли като наследиш UserControl и IWebPart. &lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Аз направих такъв контрол, който се обновява без postback и ти показва като получиш поща. Много добре се получи. Microsoft-ската имплементация на AJAX не става ... &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ajax.schwarz-interactive.de/csharpsample/default.aspx&#039;);&quot;  href=&quot;http://ajax.schwarz-interactive.de/csharpsample/default.aspx&quot;&gt;AJAX .NET &lt;/a&gt; е доста по-добре. Само него ще ползвам. Има май възможност за слушане за събития от сървъра (то не е точно така на практика). Трябва да пусна mail client-a някъде хората да му се радват &lt;img src=&quot;http://debian.fmi.uni-sofia.bg/~toncho/myblog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Според мен трябва човек да си има сайт,който да е като online desktop, който да е достъпен навсякъде където отидеш. Да ти показва информацията от която обикновенно имаш нужда - поща, новини. Да може да си оставяш бележки от всякакъв род и да има търсене в тях, още organaizer и др.  
    </content:encoded>

    <pubDate>Fri, 21 Apr 2006 21:08:43 +0300</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/25-guid.html</guid>
    
</item>
<item>
    <title>Интересни библиотеки за .NET</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/19-.NET.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/19-.NET.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=19</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=19</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
    Конзолен(console) интерфейс за DOS, както в доброто старо време &lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeproject.com/useritems/FFCA.asp&#039;);&quot;  href=&quot;http://www.codeproject.com/useritems/FFCA.asp&quot; target=_blank&gt;http://www.codeproject.com/useritems/FFCA.asp&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Порт на Ethereal за .NET:&lt;br /&gt;
&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.codeproject.com/csharp/pacanal.asp&#039;);&quot;  href=&quot;http://www.codeproject.com/csharp/pacanal.asp&quot; target=_blank&gt;http://www.codeproject.com/csharp/pacanal.asp&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 30 Dec 2005 13:12:26 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/19-guid.html</guid>
    <category>dotnet</category>

</item>
<item>
    <title>Книгата</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/16-unknown.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/16-unknown.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=16</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=16</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
     Ето &lt;a href=&quot;http://debian.fmi.uni-sofia.bg/~toncho/snimki/Knigata/&quot; target=_blank&gt;снимки от книгата за .NET&lt;/a&gt;. &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.devbg.org/dotnetbook/&#039;);&quot;  href=&quot;http://www.devbg.org/dotnetbook/&quot; target=_blank&gt;Това е сайта на самата книга&lt;/a&gt;. Добре беше, видях ме се всички най-после. Надявам се да участвам и в други проекти с повечето хора.   
    </content:encoded>

    <pubDate>Thu, 15 Dec 2005 16:06:22 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/16-guid.html</guid>
    
</item>
<item>
    <title>.NET изпита за първи проект</title>
    <link>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/15-.NET.html</link>
            <category>.NET</category>
    
    <comments>http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/15-.NET.html#comments</comments>
    <wfw:comment>http://debian.fmi.uni-sofia.bg/~toncho/myblog/wfwcomment.php?cid=15</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://debian.fmi.uni-sofia.bg/~toncho/myblog/rss.php?version=2.0&amp;type=comments&amp;cid=15</wfw:commentRss>
    

    <author>nospam@example.com (Anton Andreev)</author>
    <content:encoded>
     Днес изпитвахме на .NET курса. Имаше проблем с базите данни, аз лично бях напълно наясно, че ще стане така и давах предупредителни сигнали на останалите. Трябват скриптове за базите данни, това е най-сигурният начин. Имаше малко проблеми с компютрите и тока, но аз оправях всчико. Относно колегите гледах да вида дали са си писали сами проектите, дали се ориентират в кода, питах кое как са направили. Гледах им кода, само отвън според мен не може да се прецени. Казваш им ако има по-лесен начин и намаляваш малко. Аз под 33 точки не съм писал. Предполагам следващият път ще бъдем още по-стриктни или поне аз. Рекламирах и &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/search.fmi.uni-sofia.bg&#039;);&quot;  href=&quot;http://search.fmi.uni-sofia.bg&quot; target=&quot;blank&quot;&gt;търсачката &lt;/a&gt; си ... дано тези колеги кажат на други, други и дано стане все по-посещаема. &lt;br /&gt;
Имаше дежурен админ и той помагаше. Sho не беше там, а може би трябваше , той е администратор и освен това базите данни са му &quot;профила&quot;. Можеше да помогне ... аз вече се опитвам да имам минимални взаимотношения с него ... просто не мога.       
    </content:encoded>

    <pubDate>Sun, 11 Dec 2005 21:45:43 +0200</pubDate>
    <guid isPermaLink="false">http://debian.fmi.uni-sofia.bg/~toncho/myblog/archives/15-guid.html</guid>
    <category>dotnet</category>

</item>

</channel>
</rss>