<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" 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/"><channel><title>En liten DSL f&amp;#246;r att best&amp;#228;lla kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx</link><description>Läste idag en trevlig artikel om att bygga egna DSL’er med C# och tänkte bolla idéerna med dig via bloggen. Observera att artikeln bara är fullständigt tillgänglig för prenumeranter (vilket jag är). Artikeln gick ut på att visa en teknik för att skapa</description><dc:language>sv-SE</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9421230</link><pubDate>Sat, 14 Feb 2009 12:04:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9421230</guid><dc:creator>Björn</dc:creator><description>&lt;p&gt;Jag h&amp;#229;ller inte med. Att en get-property faktiskt f&amp;#246;r&amp;#228;ndrar instansvariabeln &amp;#228;r helt ov&amp;#228;ntat beteende och ingenting en utvecklare f&amp;#246;rv&amp;#228;ntar sig. Att skilja p&amp;#229; sj&amp;#228;lva bool och objekt-propertyn med versaler / gemena k&amp;#228;nns inte heller s&amp;#229; intuitivt. &lt;/p&gt;
&lt;p&gt;B&amp;#228;ttre i s&amp;#229;fall att s&amp;#228;tta egenskaperna som parametrar till factory-metoden, eller g&amp;#246;ra olika factory-metoder.&lt;/p&gt;
&lt;p&gt;Men visst, det &amp;#228;r &amp;quot;snyggt&amp;quot;...&lt;/p&gt;
</description></item><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9421313</link><pubDate>Sat, 14 Feb 2009 12:48:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9421313</guid><dc:creator>JohanLindfors</dc:creator><description>&lt;p&gt;Bj&amp;#246;rn: Jag kan h&amp;#229;lla med om att beteendet &amp;#228;r &amp;quot;ov&amp;#228;ntat&amp;quot; f&amp;#246;r den vana utvecklaren som vet att detta &amp;#228;r en egenskap osv... Men f&amp;#246;r n&amp;#229;gon som inte &amp;#228;r s&amp;#229; djup s&amp;#229; &amp;#228;r detta ett ganska tydligt s&amp;#228;tt att tilldela variabler med en teknik som egentligen kanske inte &amp;#228;r avsedd f&amp;#246;r det!&lt;/p&gt;
&lt;p&gt;Artikeln tar faktiskt upp det ocks&amp;#229;...&lt;/p&gt;
</description></item><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9424005</link><pubDate>Sun, 15 Feb 2009 13:33:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9424005</guid><dc:creator>Henrik</dc:creator><description>&lt;p&gt;Kan h&amp;#229;lla med om att koden kanske blir mer l&amp;#228;ttl&amp;#228;st f&amp;#246;r en ovan utvecklare, men hur ofta l&amp;#228;ser en s&amp;#229;dan kod som den beh&amp;#246;ver f&amp;#246;rst&amp;#229;? Som ni &amp;#228;r inne p&amp;#229; ovan kan jag tycka det &amp;#228;r b&amp;#228;ttre att man skriver kod som beter sig p&amp;#229; ett v&amp;#228;ntat s&amp;#228;tt... Men, det beror v&amp;#228;l i slut&amp;#228;ndan p&amp;#229; vilket syfte (eller m&amp;#229;lgrupp) man har. Kul att du tog upp exemplet iaf!&lt;/p&gt;
</description></item><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9424066</link><pubDate>Sun, 15 Feb 2009 14:09:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9424066</guid><dc:creator>JohanLindfors</dc:creator><description>&lt;p&gt;Henrik: Tack f&amp;#246;r dina kommentarer. Om avsikten &amp;#228;r att skapa en DSL f&amp;#246;r best&amp;#228;llandet av kaffe latte internt i en applikation s&amp;#229; kan &amp;#229;tminstone jag leva med att den bakomliggande koden inte beter sig som jag &amp;#228;r van vid.&lt;/p&gt;
&lt;p&gt;Det som &amp;#228;r kul med det h&amp;#228;r exemplet &amp;#228;r ocks&amp;#229; at det r&amp;#246;r upp en del kommentarer, och det tycker jag &amp;#228;r kul :)&lt;/p&gt;
</description></item><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9424269</link><pubDate>Sun, 15 Feb 2009 16:20:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9424269</guid><dc:creator>Johan L</dc:creator><description>&lt;p&gt;Jag kan se likheter med Linq d&amp;#229; man skriver &amp;quot;ungef&amp;#228;r&amp;quot; p&amp;#229; det viset, jag syftar p&amp;#229; Where och OrderBy tex. Har f&amp;#246;r mig att b&amp;#229;de Jimmy Nilsson (och Martin Fowler) pratar om det i form av &amp;quot;fluent interface&amp;quot;...&amp;#228;r det samma sak?&lt;/p&gt;
&lt;p&gt;Hur som helst, p&amp;#229; r&amp;#228;tt s&amp;#228;tt kan koden bli b&amp;#229;de snygg och l&amp;#228;ttl&amp;#228;st...bra tycket jag!&lt;/p&gt;
</description></item><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9424270</link><pubDate>Sun, 15 Feb 2009 16:22:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9424270</guid><dc:creator>Johan L</dc:creator><description>&lt;p&gt;S&amp;#229;g nu att om man f&amp;#246;ljde din l&amp;#228;nk s&amp;#229; fanns svaret d&amp;#228;r...det &amp;#228;r fluent interface...men d&amp;#229; hade jag ju r&amp;#228;tt! Kul&lt;/p&gt;
</description></item><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9441439</link><pubDate>Mon, 23 Feb 2009 18:37:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9441439</guid><dc:creator>jdanforth</dc:creator><description>&lt;p&gt;Jag b&amp;#246;rjar bli sjukt k&amp;#228;r i fluent-liknande gr&amp;#228;nssnitt p&amp;#229; klasser. Men man f&amp;#229;r passa sig lite vart man anv&amp;#228;nder det. Ett lysande bra exempel (tycker jag) p&amp;#229; vart det kan vara bra &amp;#228;r Fluent NHibernate som kan ers&amp;#228;tta de XML-filer som man traditionellt anv&amp;#228;nder f&amp;#246;r mappning. En stor f&amp;#246;rdel &amp;#228;r att man kan g&amp;#246;ra rename-refactoring p&amp;#229; ett s&amp;#228;krare s&amp;#228;tt :)&lt;/p&gt;
</description></item><item><title>re: En liten DSL för att beställa kaffe</title><link>http://blogs.msdn.com/johanl/archive/2009/02/13/en-liten-dsl-f-r-att-best-lla-kaffe.aspx#9442940</link><pubDate>Tue, 24 Feb 2009 20:57:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9442940</guid><dc:creator>Thomas Lundström</dc:creator><description>&lt;p&gt;Jag skulle nog v&amp;#228;lja en klassisk builder-syntax f&amp;#246;r att skapa en kaffelatte, och anv&amp;#228;nda ; allts&amp;#229;&lt;/p&gt;
&lt;p&gt;CaffeLatteBuilder.CreateLatte().WithSugar().WithVanilla().Build()&lt;/p&gt;
&lt;p&gt;C# har med sina lambdas galet l&amp;#228;ckert st&amp;#246;d f&amp;#246;r snygga fluent interfaces. Jag skrev ett par blogposter om det d&amp;#228;r f&amp;#246;r ett tag sedan (l&amp;#228;nkar nedan). Med Func och Action g&amp;#229;r det att g&amp;#246;ra en massa tuffa saker. Det finns projekt ute in the wild som anv&amp;#228;nder lambdas aggressivt; bl.a. Machine.Specifications (MSpec).&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://thomaslundstrom.blogspot.com/2008/11/fluent-interfaces-by-lambdas-in-c.html"&gt;http://thomaslundstrom.blogspot.com/2008/11/fluent-interfaces-by-lambdas-in-c.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://thomaslundstrom.blogspot.com/2008/11/on-migrations-apis-in-net.html"&gt;http://thomaslundstrom.blogspot.com/2008/11/on-migrations-apis-in-net.html&lt;/a&gt;&lt;/p&gt;
</description></item></channel></rss>