<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intrepid Blog &#187; .net</title>
	<atom:link href="http://blog.affien.com/archives/tag/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.affien.com</link>
	<description>A few thoughts</description>
	<lastBuildDate>Mon, 01 Mar 2010 00:58:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>selfish driver control panels</title>
		<link>http://blog.affien.com/archives/2005/03/08/selfish-driver-control-panels/</link>
		<comments>http://blog.affien.com/archives/2005/03/08/selfish-driver-control-panels/#comments</comments>
		<pubDate>Tue, 08 Mar 2005 17:30:43 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[ati]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/03/08/selfish-driver-control-panels/</guid>
		<description><![CDATA[A week ago my windows was agonizing slow. Starting up would take ages, and getting those &#8216;windows is out of virtual memory&#8217; messages was common, so I decided to reinstall windows.
When reinstalled windows was using 120 mb without anything special installed.. so I started to install my usual application: apache, mysql, mssql.net express, php.. etc..
At [...]]]></description>
			<content:encoded><![CDATA[<p>A week ago my windows was agonizing slow. Starting up would take ages, and getting those &#8216;windows is out of virtual memory&#8217; messages was common, so I decided to reinstall windows.<br />
When reinstalled windows was using 120 mb without anything special installed.. so I started to install my usual application: apache, mysql, mssql.net express, php.. etc..<br />
At the point I got those installed windows was using 250 mb instead of 120mb! msSQL server uses  50mb`s (although that number isn&#8217;t displayed in the task manager properly (i guess due to modules). MySQL and Apache both 25mb`s&#8230;<br />
So I put the apache/sql servers services off by default and made a little bat script to start those when I want and put that one on my desktop. I also made a backup of windows so I didn&#8217;t need that horribly slow reinstall..<br />
I installed some basic drivers via the provided driver cd&#8217;s loading a lot of junk like tray icons on my computer. They did not appear to use a lot of memory in the taskmanager but when quiting them it saved 100 mb :-/. 100mb used by selfish driver control panels thinking they are the single-most-used application and the only one sucking that amount of memory&#8230;<br />
So instead of using those horrible flashy flash autorun installers I let windows find the correct driver .inf files and install it.<br />
This really saves a lot of performance.. (I&#8217;ve cut down my startup time by 4 times).</p>
<p>So, better let windows find the drivers you require on your driver cd&#8217;s instead of using those selfish flashy traybar spamming driver control panel installers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/03/08/selfish-driver-control-panels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Command line parser update</title>
		<link>http://blog.affien.com/archives/2005/02/27/command-line-parser-update/</link>
		<comments>http://blog.affien.com/archives/2005/02/27/command-line-parser-update/#comments</comments>
		<pubDate>Sun, 27 Feb 2005 10:45:24 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[parser]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/02/27/command-line-parser-update/</guid>
		<description><![CDATA[I made some updates on my command line parser for .net .
It now supports aliases and you can set whether the parameter should accept a value or not so you can use -foo bar where foo doesn&#8217;t accept a value and therefore bar is regognized as a position dependand parameter.
An example parameter definition:
[Parameter(Position = 0, [...]]]></description>
			<content:encoded><![CDATA[<p>I made some updates on <a href="http://blog.w-nz.com/archives/2005/02/26/command-line-parser-for-net/">my command line parser for .net</a> .</p>
<p>It now supports aliases and you can set whether the parameter should accept a value or not so you can use <code>-foo bar</code> where <code>foo</code> doesn&#8217;t accept a value and therefore <code>bar</code> is regognized as a position dependand parameter.</p>
<p>An example parameter definition:</p>
<blockquote><pre style="font-size: 12px">[Parameter(Position = 0, IsMandatory = true,
AcceptsNoValue = false, Name = "folder",
Description = "The folder",
Aliases = new string[]{"target"})]
public string FolderParameter
{
    get { return _FolderParameter; }
    set { _FolderParameter = value; }
}</pre>
</blockquote>
<p>(Ignore the slashes placed before the quotes, wordpress seems to add them automaticly) I also have added the <code>Intrepid.Automation.CommandLine.OutputHelp</code> function, which outputs <em>help</em> for the parameters of an object to a stream. Like this:</p>
<blockquote><p>SUMMARY<br />
Creates playlists in a folder and its subfolders</p>
<p>PARAMETERS<br />
-target </p>
<p>[String excludefilter = NULL] (efilter)<br />
Only files not matching this regex are included</p>
<p>[String includefilter = NULL] (ifilter)<br />
Only files matching this regex are included</p>
<p>String folder (target)<br />
The folder</p>
<p>[Boolean expand]<br />
Whether to expand referenced m3u&#8217;s</p>
<p>REMARKS<br />
m3u playlists are automaticly excluded; use -excludefilter to add additional excludes.</p></blockquote>
<p>You can still download the Intrepid.Clorelib assembly <a href="http://w-nz.com/update/Intrepid.Corelib.zip">here</a> and you still may only use it for non-commercial open-source usage and may not change/reverse engineer/etc it in any way.</p>
<p>Hope it will prove usefull <img src='http://blog.affien.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/02/27/command-line-parser-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Command line parser for .net</title>
		<link>http://blog.affien.com/archives/2005/02/26/command-line-parser-for-net/</link>
		<comments>http://blog.affien.com/archives/2005/02/26/command-line-parser-for-net/#comments</comments>
		<pubDate>Sat, 26 Feb 2005 18:37:53 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[commandline]]></category>
		<category><![CDATA[parser]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/02/26/command-line-parser-for-net/</guid>
		<description><![CDATA[I just wrote a command line parser for .net which parses the command line similar to the way Monad&#8217;s cmdlets do it, with the key difference that this still is for the normal .exe executables.
It&#8217;s very simple, first get yourself a program class, which contains some properties you want the user able to set via [...]]]></description>
			<content:encoded><![CDATA[<p>I just wrote a command line parser for .net which parses the command line similar to the way <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=25915">Monad&#8217;s cmdlets</a> do it, with the key difference that this still is for the normal .exe executables.</p>
<p>It&#8217;s very simple, first get yourself a program class, which contains some properties you want the user able to set via the commandline and apply the <code>Parameter</code> attribute:</p>
<blockquote><pre style="font-size: 12px">class CopyProgram
{
    private string _Source;
    [Parameter(Position = 0, IsMandatory = true)]
    public string Source
    {
        get { return _Source;}
        set { _Source = value; }
    }
    private string _Target;

    [Parameter(Position = 1, IsMandatory = true)]
    public string Target
    {
        get { return _Target;}
        set { _Target= value; }
    }

    private bool _WalkRecursivly;
    [Parameter(Name = "recursivly")]
    public bool WalkRecursivly
    {
        get { return _WalkRecursivly;}
        set { _WalkRecursivly= value; }
    }   

    static void Main(string[] args)
    {
        new Program().Run(args);
    }

    void Run(string[] args)
    {
        CommandLine.ParseCommandLine(args, this);

        // Do stuff here
    }
}</pre>
</blockquote>
<p>The <code>CommandLine.ParseCommandLine</code> function takes care of parsing the command line string array and filling the required properties of the class provided.</p>
<p>You can call this program in a few different ways:</p>
<blockquote><pre style="font-size: 12px">copy.exe c:\source.txt c:\target.txt
copy.exe -s c:\source.txt -target c:\target.txt
copy.exe -targ c:\target.txt c:\source.txt  -r</pre>
</blockquote>
<p>Although it only required around 250 lines of code it certainly is an enourmous time safer and makes stuff a lot easier for the user.</p>
<p>At the moment I&#8217;m programming a few small utilities and will change the code a bit and fix some bugs if any.</p>
<p>For those interesting in testing it themselves (I encourage it), just download the <a href="http://w-nz.com/update/Intrepid.Corelib.zip">Intrepid.Corelib .net 2 assembly</a>*. The classes required are in the <code>Intrepid.Automation</code> namespace. Please send any bug reports to: <a href="mailto:bas.westerbaan@gmail.com">bas.westerbaan@gmail.com</a>.</p>
<p>(* You may use everything in the Intrepid.Corelib assembly freely for non-commercial open-source usage. Do not modify or reverse engineer the assembly in any way.)</p>
<p><strong>Update:</strong><br />
Got rid of some bugs and added the <code>RequiresValue</code> property to <code>ParameterAttribute</code>. Will replace lateron with <code>Type</code>, this allows you to use <code>-e bleh</code> where -e takes no value and bleh is interpreted as a nameless parameter. Will add alliases too.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/02/26/command-line-parser-for-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Regular Expressions in .Net</title>
		<link>http://blog.affien.com/archives/2005/02/21/regular-expressions-in-net/</link>
		<comments>http://blog.affien.com/archives/2005/02/21/regular-expressions-in-net/#comments</comments>
		<pubDate>Mon, 21 Feb 2005 18:05:44 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[regular expressions]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/02/21/regular-expressions-in-net/</guid>
		<description><![CDATA[Regular Expressions in .Net (System.Text.RegularExpression) are fast!
When creating a Regex with the compile flag the regex will actually be compiled to very optimized native assembly which makes the .net regular expression library faster than any c# code you could write for one specific case.
This was a pleasant suprise   for now I know I [...]]]></description>
			<content:encoded><![CDATA[<p>Regular Expressions in .Net (<code>System.Text.RegularExpression</code>) are fast!</p>
<p>When creating a <code>Regex</code> with the compile flag the regex will actually be compiled to very optimized native assembly which makes the .net regular expression library faster than any c# code you could write for one specific case.</p>
<p>This was a pleasant suprise <img src='http://blog.affien.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  for now I know I can use regular expression for all those small things like parsing input.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/02/21/regular-expressions-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gamma Wave Effect on a real electric guitar</title>
		<link>http://blog.affien.com/archives/2005/02/07/gamma-wave-effect-on-a-real-electric-guitar/</link>
		<comments>http://blog.affien.com/archives/2005/02/07/gamma-wave-effect-on-a-real-electric-guitar/#comments</comments>
		<pubDate>Mon, 07 Feb 2005 14:15:05 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[distortion]]></category>
		<category><![CDATA[guitar]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/02/07/gamma-wave-effect-on-a-real-electric-guitar/</guid>
		<description><![CDATA[Finaly I got grip of a recording of an electric guitar without distortion and applied the gamma wave distortion on it:
Sine gamma effect results and positive linear gamma results
Negative linear gamma effect results
]]></description>
			<content:encoded><![CDATA[<p>Finaly I got grip of a recording of an electric guitar without distortion and applied the gamma wave distortion on it:</p>
<p><a href="http://blog.w-nz.com/uploads/gammas.png">Sine gamma effect results and positive linear gamma results</a></p>
<p><a href="http://blog.w-nz.com/uploads/gammanlins.png">Negative linear gamma effect results</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/02/07/gamma-wave-effect-on-a-real-electric-guitar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gamma Wave Effect</title>
		<link>http://blog.affien.com/archives/2005/02/07/gamma-wave-effect/</link>
		<comments>http://blog.affien.com/archives/2005/02/07/gamma-wave-effect/#comments</comments>
		<pubDate>Mon, 07 Feb 2005 11:40:09 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[distortion]]></category>
		<category><![CDATA[guitar]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/02/07/gamma-wave-effect/</guid>
		<description><![CDATA[As promised a few pictures of the electric guitar effects we&#8217;re working on,
first up, the gamma wave effect.
The gamma wave effect pulls the amplitudo&#8217;s either to the 0 line or the -1/1 line, just like the gamma on your monitor does:


The effect basicly makes the wave a lot louder and gets rid of the faint [...]]]></description>
			<content:encoded><![CDATA[<p>As promised a few pictures of the electric guitar effects we&#8217;re working on,</p>
<p>first up, the gamma wave effect.</p>
<p>The gamma wave effect pulls the amplitudo&#8217;s either to the 0 line or the -1/1 line, just like the gamma on your monitor does:</p>
<p><img src="http://blog.w-nz.com/uploads/lineargammanegative.png" alt="Max Negative Linear Gamma Applied" /></p>
<p><img src="http://blog.w-nz.com/uploads/sinegammapositive.png" alt="Max Positive Sine Gamma Effect" /></p>
<p>The effect basicly makes the wave a lot louder and gets rid of the faint sounds. When on fully applied as in the images above it also creates some distortions due to either making the wave unharmonic-ish or getting rid of the nuances.</p>
<p>Another image taken on a higher oscilation (smaller zoom):</p>
<p><img src="http://blog.w-nz.com/uploads/sinegammapositive2.png" alt="Max Pos Sine Gamma 2" /></p>
<p>This clearly shows the distortion</p>
<p>(The inversion of peak and valley doesn&#8217;t matter for for sound only the transition from a valley to a peak matters)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/02/07/gamma-wave-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electric Guitar Distortion</title>
		<link>http://blog.affien.com/archives/2005/02/07/electric-guitar-distortion/</link>
		<comments>http://blog.affien.com/archives/2005/02/07/electric-guitar-distortion/#comments</comments>
		<pubDate>Sun, 06 Feb 2005 23:02:08 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[distortion]]></category>
		<category><![CDATA[guitar]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/02/07/electric-guitar-distortion/</guid>
		<description><![CDATA[As I said before I am working with some others on a software based distortion. I finaly got the base running pretty smoothly but the main obstacle is how to create that distortion electric guitars use.
We came up with about 3 different methods:
(When I got my osciloscope control working I&#8217;ll take before and after pictures, [...]]]></description>
			<content:encoded><![CDATA[<p>As I said before I am working with some others on a software based distortion. I finaly got the base running pretty smoothly but the main obstacle is how to create that distortion electric guitars use.</p>
<p>We came up with about 3 different methods:</p>
<p>(When I got my osciloscope control working I&#8217;ll take before and after pictures, for now I ain&#8217;t sure how the formula&#8217;s effect real-world sound yet)</p>
<p><strong>Gamma corrections</strong><br />
This works a bit like the gamma of your monitor. The input for graph for gamma correction is called the epsilon which comes in 2 forms, linear and sine. The first one creates a more distortion like sound than the latter but also makes the wave not harmonic anymore which possible means that most of the distortion like sound is caused by the speakers not handling unharmonic waves very well. The latter one only sounds near the amplitudo distorted.</p>
<p><strong>Sharpening valleys/tops</strong><br />
This method requires some buffering of the current top (or valley) of the wave and sharpenes it by a specific amount. This works a bit like the gamma correction method although it works on every volume making it usefull too for low-volume sounds. The major problem is that it requires tracking a top or a valley, which with a high bitrate requires a really big buffer to analyze, and it has a delay of one top/valley. The big problem is that this isn&#8217;t ideal for live playing for which it was designed, a delay of a few extra hundreds of a second would be noticable and it is fairly possible that this algorithm requires too much resources.</p>
<p><strong>Adjusting speed resistance</strong><br />
At a certain point in a wave you can derive the speed and the angle. By registering the original speed and resistance of the wave a derived one can be created which could leed to sharper or softer edges of a top/valley just as the previous method but without being required to analyze the whole top/valley. We&#8217;re hoping this method will work best but this is just a concept hoping to work out as it should.</p>
<p>If anyone actually knows how analog distortions work exactly we would be more than happy to learn about it, just comment.</p>
<p>More on this to come&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/02/07/electric-guitar-distortion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working on a software based distortion for the electric guitar</title>
		<link>http://blog.affien.com/archives/2005/02/05/working-on-a-software-based-distortion-for-the-electric-guitar/</link>
		<comments>http://blog.affien.com/archives/2005/02/05/working-on-a-software-based-distortion-for-the-electric-guitar/#comments</comments>
		<pubDate>Sat, 05 Feb 2005 20:27:58 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[distortion]]></category>
		<category><![CDATA[guitar]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/02/05/working-on-a-software-based-distortion-for-the-electric-guitar/</guid>
		<description><![CDATA[At the moment I am busy creating a software based distortion for an electric guitar.
The most challenging part is getting effects to work, to explain this in more detail you need to know how a computer handles audio.
Sound itself is nothing more than a vibration in the air. It can be represented by the amount [...]]]></description>
			<content:encoded><![CDATA[<p>At the moment I am busy creating a software based distortion for an electric guitar.</p>
<p>The most challenging part is getting effects to work, to explain this in more detail you need to know how a computer handles audio.</p>
<p>Sound itself is nothing more than a vibration in the air. It can be represented by the amount of force the air is pushing or pulling.</p>
<p>A tone of a specific frequency would look like:</p>
<p><img src="http://blog.w-nz.com/uploads/wave2.png" alt="A wave" /></p>
<p>A computer stores sound by sampling the amplitude of the air at regular interfals.</p>
<p>It would be easy to write a program to increase the frequency of the sound above, but a normal sound doesn&#8217;t look that regular:</p>
<p><img src="http://blog.w-nz.com/uploads/wave1.png" alt="A wave" /></p>
<p>Increasing the bass or treble of that wave would require some advanced algorithms, which take time to execute which creates a larger delay. One thing that a distortion shouldn&#8217;t do is lag.</p>
<p>More on this when some stuff is working.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/02/05/working-on-a-software-based-distortion-for-the-electric-guitar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Negative .Net myths busted</title>
		<link>http://blog.affien.com/archives/2005/01/27/negative-net-myths-busted/</link>
		<comments>http://blog.affien.com/archives/2005/01/27/negative-net-myths-busted/#comments</comments>
		<pubDate>Thu, 27 Jan 2005 15:04:31 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[busted]]></category>
		<category><![CDATA[GC]]></category>
		<category><![CDATA[jit]]></category>
		<category><![CDATA[myths]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/01/27/negative-net-myths-busted/</guid>
		<description><![CDATA[There are a lot of negative myths about .net which people tend to use to favor the traditional languages like C++ above .net. I&#8217;ve busted the ones I read frequently:

The GC is really slow
	malloc is way slower! The Garbage Collect of .net actually is faster than any Unmanaged code for it nows whether a value [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of negative myths about .net which people tend to use to favor the <em>traditional</em> languages like C++ above .net. I&#8217;ve busted the ones I read frequently:</p>
<ul>
<li><strong>The GC is really slow</strong><br />
	<code>malloc</code> is way slower! The Garbage Collect of .net actually is faster than any Unmanaged code for it nows whether a value is a reference (pointer) and therefore can move objects in the memory. The GC puts objects of about the same age (generation) close to eachother in the memory. Objects tend to refer and use objects in the same generation. The processor itself doesn&#8217;t directly load a value from the memory but loads a whole block of a few KiloBytes in the Cache. When the processor directly caches all the objects which one object uses it just runs a lot faster for working from the cache is a lot faster than recaching different parts of the memory over and over again which happens with unmanaged languages which just put objects where there is free space.</li>
<li><strong>Interpreting that stupid Intermediate Language is damned slow</strong><br />
	.Net doesn&#8217;t interpret its IL, it compiles and optimizes IL runtime</li>
<li><strong>Compiling runtime is very slow anyways</strong><br />
	(That compiling a C++ is slow doesn&#8217;t mean that .Net is slow) It saves a lot of time for compiling at runtime allows great optimalisations like getting rid of unreachable code and inlining depending on the current runtime variables. Also operations can be compiled with processor specific optimalisations from one IL source. Most of the resource intensive compiling is done at the startup of the application, it is done while the program is running too but that really makes it a lot faster instead of slower</li>
<li><strong>If I write assembly myself it will be way superior to anything .Net can generate</strong><br />
	.Net can&#8217;t make all the optimalisations possible for it would take longer to analyse code than the optimalisation would gain. But usualy it creates still very optimised code. The big problem with writing very optimised assembly yourself is that the most optimised code is very processor specific and would be very hard to port, and even worse to maintain. Wanting to add one little extra feature could let you rewrite the whole code again. (Yes I indeed have made programs with assembly). Languages which avoid this a bit like C++ still require you to make a different build for every specific processor when fully optimising. Also it is nearly impossible to debug fully optimised unmanaged code but in .Net it still provides you with at least the functionname in which it has happened with the offset (try to accomplish that with C++ in release mode)</li>
<li><strong>The runtime is soooo damned big, it sucks</strong><br />
	20 Mb&#8217;s isn&#8217;t a lot. It only has got to be downloaded once, and the .net framework is in Windows Update so everyone who updates his computer would have it installed by now. Usualy there is room enough on your software installation CD to include .net, it is more than worth those 20 mb. Also languages like C++ require certain runtimes which arent that cooperative. Does &#8216;DLLHell&#8217; ring a bell?</li>
<li><strong>The .net library naming SUCKS</strong><br />
	Yeah.. its naming is different than what MFC uses. At least the naming is very consistant which is way more important than &#8216;nice naming&#8217;, although when seeing some C++ API names used I still wonder why someone could prefer that above the clear .Net naming</li>
<li><strong>The .net library itself sucks</strong><br />
	Really? Like what? What can&#8217;t it do?</li>
<li><strong>You can&#8217;t use API calls like CreateFile</strong><br />
	Now I can&#8217;t&#8230;<br />
	<code>[DllImport("kernel32.dll", SetLastError = true)]public static extern IntPtr CreateFile(string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile);</code><br />
	&#8230; now I can!</li>
<li><strong>.Net sucks cause it is Microsoft</strong><br />
	Yeah, so what. .Net is a ECMA standard so you are pretty free to use it, and if there is a catch then that one hasn&#8217;t been exploited yet for on linux people are happily using mono to run .net stuff</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/01/27/negative-net-myths-busted/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Avalon</title>
		<link>http://blog.affien.com/archives/2005/01/25/avalon/</link>
		<comments>http://blog.affien.com/archives/2005/01/25/avalon/#comments</comments>
		<pubDate>Tue, 25 Jan 2005 21:42:46 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[avalon]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/01/25/avalon/</guid>
		<description><![CDATA[http://www.microsoft.com/downloads/details.aspx?familyid=C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74&#038;displaylang=en
When having Avalon installed it adds a few new project templates to my Visual C# 2005 express, with which avalon applications can be made. Avalon is a Window system which uses xml files to define a form. At the moment I couldn&#8217;t find a designer neither reference to it in the help files and assume [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.microsoft.com/downloads/details.aspx?familyid=C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74&#038;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74&#038;displaylang=en</a></p>
<p>When having Avalon installed it adds a few new project templates to my Visual C# 2005 express, with which avalon applications can be made. Avalon is a Window system which uses xml files to define a form. At the moment I couldn&#8217;t find a designer neither reference to it in the help files and assume it isn&#8217;t implemented yet, which is rather a pain for creating a form by editing Xml by hand is just a pain: Xml is hard to write and I am just too dependant on the user friendlyness of the form designer.</p>
<p>When compiling Avalon generates classes and serialized data files in your application to replace the Xml files.</p>
<p>So what does it basicly do? Lets you design your forms easily (although there isn&#8217;t a proper designer yet) maintaining a good performance by replacing the slow Xml files by generated classes and serialized resources compile-time.<br />
Having a few test applications decompiled and having looked at the sdk it seems that Avalon can do practicly the same as the current Windows.Forms dll.<br />
So now I wonder, in what way would Avalon be better than using the great current form designer and the Windows.Forms dll?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.affien.com/archives/2005/01/25/avalon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
