<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Script# - Is Script# right for you?</title>
	<atom:link href="http://michaelsync.net/2007/11/25/script-is-script-right-for-you/feed" rel="self" type="application/rss+xml" />
	<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you</link>
	<description>Sharing our knowledge</description>
	<pubDate>Fri, 04 Jul 2008 19:43:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Coward</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23525</link>
		<dc:creator>Coward</dc:creator>
		<pubDate>Wed, 26 Dec 2007 02:23:16 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23525</guid>
		<description>I just saw Nikhil's comments above. Wrapper vs Metadata class. This is interesting because I would tend to prefer the wrapper class but do wonder about the runtime overheads. In fact, I have written wrapper classes (with unit tests) to the extjs library and found this a straighforward approach. This is an approach used in frameworks such as ruby on rails. 

With the developers I have on my projects Nikhils script# is impressive, comprehensive. But at the same time it locks me in and out - I'm locked into script# and I'm locked out of javascript/extjs because the of the very fact that the developers don't need to engage with extjs/javascript. What a bind! 

Why I would tend to not to go with script# is that its metaclass approach is a framework that sets up its own lifecycle (by design). Because to extend it means working on the C# code. I have spend a lot of time understanding Nikhil's libraries through .Net Reflector. It's clean, understandable and complex. There's a lot to break too. Why not then stay in the simplier wrapper classes? They must be cheaper over its lifetime?

I think this is where the rails crew have got web applications right. Stay simple and let yourself build out into the complex. This is why we need extjs in the first place with asp.net. The asp.net page lifecycle is too complex. Extjs gives us simplicity allowing a REST-ful-esque application: I can have html containers (aspx), js configuration of say editors and json data streams and treat all of them as resources (bring on ASP MVC). Yet, script# potentially brings it back.

If you are going down the wrapper track. Go take a look at script#'s extjs library parser - you'll save yourself time. I was going to load extjs into the DOM and parse it, but now I don't need to!

I started off looking at script# because I wanted to avoid writing lots of unit tests for my wrapper classes and because I liked the intelli-sense of it all. I think that I can get the intelli-sense with wrapper classes by autogenerating the code using Nikhil's template. I suspect I'll be back to script# because there are lessons in that code that I don't even know I need to learn. 

But personally, I want developers to write javascript and know intimately how to construct, deconstruct and debug it. I want them to stop making silly mistakes (eg commas working in Mozilla but not IE). But foremostly, they need to be in control at all times. So, what script# doesn't do is scaffold. Scaffolding let's you get started and then build out complexity and difference. And then take over and refine. Script# does it all. But in that, we know that it will never do what it was never anticipated to do. ASP.NET taught me that. I look forward to script# having a wrapper mode!</description>
		<content:encoded><![CDATA[<p>I just saw Nikhil&#8217;s comments above. Wrapper vs Metadata class. This is interesting because I would tend to prefer the wrapper class but do wonder about the runtime overheads. In fact, I have written wrapper classes (with unit tests) to the extjs library and found this a straighforward approach. This is an approach used in frameworks such as ruby on rails. </p>
<p>With the developers I have on my projects Nikhils script# is impressive, comprehensive. But at the same time it locks me in and out - I&#8217;m locked into script# and I&#8217;m locked out of javascript/extjs because the of the very fact that the developers don&#8217;t need to engage with extjs/javascript. What a bind! </p>
<p>Why I would tend to not to go with script# is that its metaclass approach is a framework that sets up its own lifecycle (by design). Because to extend it means working on the C# code. I have spend a lot of time understanding Nikhil&#8217;s libraries through .Net Reflector. It&#8217;s clean, understandable and complex. There&#8217;s a lot to break too. Why not then stay in the simplier wrapper classes? They must be cheaper over its lifetime?</p>
<p>I think this is where the rails crew have got web applications right. Stay simple and let yourself build out into the complex. This is why we need extjs in the first place with asp.net. The asp.net page lifecycle is too complex. Extjs gives us simplicity allowing a REST-ful-esque application: I can have html containers (aspx), js configuration of say editors and json data streams and treat all of them as resources (bring on ASP MVC). Yet, script# potentially brings it back.</p>
<p>If you are going down the wrapper track. Go take a look at script#&#8217;s extjs library parser - you&#8217;ll save yourself time. I was going to load extjs into the DOM and parse it, but now I don&#8217;t need to!</p>
<p>I started off looking at script# because I wanted to avoid writing lots of unit tests for my wrapper classes and because I liked the intelli-sense of it all. I think that I can get the intelli-sense with wrapper classes by autogenerating the code using Nikhil&#8217;s template. I suspect I&#8217;ll be back to script# because there are lessons in that code that I don&#8217;t even know I need to learn. </p>
<p>But personally, I want developers to write javascript and know intimately how to construct, deconstruct and debug it. I want them to stop making silly mistakes (eg commas working in Mozilla but not IE). But foremostly, they need to be in control at all times. So, what script# doesn&#8217;t do is scaffold. Scaffolding let&#8217;s you get started and then build out complexity and difference. And then take over and refine. Script# does it all. But in that, we know that it will never do what it was never anticipated to do. ASP.NET taught me that. I look forward to script# having a wrapper mode!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Sync</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23517</link>
		<dc:creator>Michael Sync</dc:creator>
		<pubDate>Wed, 26 Dec 2007 02:04:13 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23517</guid>
		<description>&lt;blockquote&gt;I would like to see script# used in a commerical application.&lt;/blockquote&gt;

there are the list of some early projects in Nikhil's website. 

&lt;blockquote&gt;
for (i=0; i&lt;3; i++){
new ColumnModelConfig() …
}
&lt;/blockquote&gt;

you are just for-looping, isn't it? doesn't use for-each.. As the script# is in early stage, there might be some issues or uncompleted things.. If you have some questions,  I think the best would be asking in Nikhil's forum... He is the one who developed the Script#.</description>
		<content:encoded><![CDATA[<blockquote><p>I would like to see script# used in a commerical application.</p></blockquote>
<p>there are the list of some early projects in Nikhil&#8217;s website. </p>
<blockquote><p>
for (i=0; i&lt;3; i++){<br />
new ColumnModelConfig() …<br />
}
</p></blockquote>
<p>you are just for-looping, isn&#8217;t it? doesn&#8217;t use for-each.. As the script# is in early stage, there might be some issues or uncompleted things.. If you have some questions,  I think the best would be asking in Nikhil&#8217;s forum&#8230; He is the one who developed the Script#.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Sync</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23507</link>
		<dc:creator>Michael Sync</dc:creator>
		<pubDate>Wed, 26 Dec 2007 01:56:07 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23507</guid>
		<description>Hi Nikhil, 

Thanks a lot for your comments... 

&lt;blockquote&gt;Ext# already exists.&lt;/blockquote&gt;
Thanks. I will check it out. it's really goood news.. 

I think there are a number of bugs in the script# too.. For example, it keep on removing  "}" from my script all the time.</description>
		<content:encoded><![CDATA[<p>Hi Nikhil, </p>
<p>Thanks a lot for your comments&#8230; </p>
<blockquote><p>Ext# already exists.</p></blockquote>
<p>Thanks. I will check it out. it&#8217;s really goood news.. </p>
<p>I think there are a number of bugs in the script# too.. For example, it keep on removing  &#8220;}&#8221; from my script all the time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Coward</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23496</link>
		<dc:creator>Coward</dc:creator>
		<pubDate>Wed, 26 Dec 2007 01:49:39 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-23496</guid>
		<description>I would like to see script# used in a commerical application. I would like to use script# but can't see how. Why? I can't see how to bind to data flexibly. For example, I have a editorDataGird and my columns are data driven. That is, my columns are dynamic and so I need to rerender them per session or even within sessions. 

Here's a column model from the sample:

[code]
           ColumnModel cm = new ColumnModel(new object[] {
                new ColumnModelConfig()
                    .id("common")
                    .header("Common Name")
                    .dataIndex("common")
                    .width(220)
                    .editor(new TextField(new TextFieldConfig().allowBlank(false).ToDictionary()))
                    .ToDictionary(),
                new ColumnModelConfig()
                    .header("Light")
                    .dataIndex("light")
                    .width(130)
                    .editor(new ComboBox(new ComboBoxConfig()
                        .typeAhead(true)
                        .triggerAction("all")
                        .transform("light")
                        .lazyRender(true)
                        .listClass("x-combo-list-small")
                        .ToDictionary()
                    ))
                    .ToDictionary(),

...

[/code]

You can't created an iterator in the say with this psuedo code:

[code]
           for (i=0; i&#60;3; i++){
            new ColumnModelConfig() ...
           }
           ColumnModel cm = new ColumnModel()
[/code]

because the for() loop is rendered into the javascript code</description>
		<content:encoded><![CDATA[<p>I would like to see script# used in a commerical application. I would like to use script# but can&#8217;t see how. Why? I can&#8217;t see how to bind to data flexibly. For example, I have a editorDataGird and my columns are data driven. That is, my columns are dynamic and so I need to rerender them per session or even within sessions. </p>
<p>Here&#8217;s a column model from the sample:</p>
<p>[code]<br />
           ColumnModel cm = new ColumnModel(new object[] {<br />
                new ColumnModelConfig()<br />
                    .id(&#8221;common&#8221;)<br />
                    .header(&#8221;Common Name&#8221;)<br />
                    .dataIndex(&#8221;common&#8221;)<br />
                    .width(220)<br />
                    .editor(new TextField(new TextFieldConfig().allowBlank(false).ToDictionary()))<br />
                    .ToDictionary(),<br />
                new ColumnModelConfig()<br />
                    .header(&#8221;Light&#8221;)<br />
                    .dataIndex(&#8221;light&#8221;)<br />
                    .width(130)<br />
                    .editor(new ComboBox(new ComboBoxConfig()<br />
                        .typeAhead(true)<br />
                        .triggerAction(&#8221;all&#8221;)<br />
                        .transform(&#8221;light&#8221;)<br />
                        .lazyRender(true)<br />
                        .listClass(&#8221;x-combo-list-small&#8221;)<br />
                        .ToDictionary()<br />
                    ))<br />
                    .ToDictionary(),</p>
<p>&#8230;</p>
<p>[/code]</p>
<p>You can&#8217;t created an iterator in the say with this psuedo code:</p>
<p>[code]<br />
           for (i=0; i&lt;3; i++){<br />
            new ColumnModelConfig() &#8230;<br />
           }<br />
           ColumnModel cm = new ColumnModel()<br />
[/code]</p>
<p>because the for() loop is rendered into the javascript code</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nikhil Kothari</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-22030</link>
		<dc:creator>Nikhil Kothari</dc:creator>
		<pubDate>Sat, 22 Dec 2007 11:47:48 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-22030</guid>
		<description>I just wanted to add a couple of clarifications:

4. Script# as a C# to Javascript Converter
Script# pretty much converts most of c#... and c# is c# ... its not something special. There are a few things not supported for a variety of reasons: to reduce complexity, to reduce likelihood of generating non-performant script, or some things that don't make sense in the script world.

5. Script# as a new language
I think your example is a bit mis-leading. Yes, the DOM metadata is incomplete - you can go and write the metadata type, and use that over and over again... or you can file a bug to get some missing metadata added (since the DOM is so big, not all of it has been done - but will be done as needed, so as to cover what is really in use). Secondly, if its a one off, you can simply use late-bound methods on Type, rather than defining the metadata first. Regardless, of which approach you go, its not a new language, and the generated result is what you'd expect - nothing more.

6. Debugging problem in Script#
This is a problem and not a problem at the same time. Agree it would be nice to be able to debug the c# code itself. However, a lot of effort has gone into making the generated code look like the originating source code, so you can in fact debug. One always needs to be able to debug in the target environment, so its good that the generated code facilitates that.

9. Using the thirt-party Javascript library in Script#
Ext# already exists. Its on google's code projects site. What you need to create is a metadata class (which has no runtime overhead) rather than a wrapper class.</description>
		<content:encoded><![CDATA[<p>I just wanted to add a couple of clarifications:</p>
<p>4. Script# as a C# to Javascript Converter<br />
Script# pretty much converts most of c#&#8230; and c# is c# &#8230; its not something special. There are a few things not supported for a variety of reasons: to reduce complexity, to reduce likelihood of generating non-performant script, or some things that don&#8217;t make sense in the script world.</p>
<p>5. Script# as a new language<br />
I think your example is a bit mis-leading. Yes, the DOM metadata is incomplete - you can go and write the metadata type, and use that over and over again&#8230; or you can file a bug to get some missing metadata added (since the DOM is so big, not all of it has been done - but will be done as needed, so as to cover what is really in use). Secondly, if its a one off, you can simply use late-bound methods on Type, rather than defining the metadata first. Regardless, of which approach you go, its not a new language, and the generated result is what you&#8217;d expect - nothing more.</p>
<p>6. Debugging problem in Script#<br />
This is a problem and not a problem at the same time. Agree it would be nice to be able to debug the c# code itself. However, a lot of effort has gone into making the generated code look like the originating source code, so you can in fact debug. One always needs to be able to debug in the target environment, so its good that the generated code facilitates that.</p>
<p>9. Using the thirt-party Javascript library in Script#<br />
Ext# already exists. Its on google&#8217;s code projects site. What you need to create is a metadata class (which has no runtime overhead) rather than a wrapper class.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Philip</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-14195</link>
		<dc:creator>Philip</dc:creator>
		<pubDate>Mon, 26 Nov 2007 11:51:19 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-14195</guid>
		<description>Thank you, Mike.. 

I think that Script# will be so popular if there are a lot of Script#-enabled libraries... 

btw, the sidebar of your blog doesn't look good in IE6 1024x768 resolution</description>
		<content:encoded><![CDATA[<p>Thank you, Mike.. </p>
<p>I think that Script# will be so popular if there are a lot of Script#-enabled libraries&#8230; </p>
<p>btw, the sidebar of your blog doesn&#8217;t look good in IE6 1024&#215;768 resolution</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mostidiot &#187; Script# - Is Script# right for you?</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-14043</link>
		<dc:creator>mostidiot &#187; Script# - Is Script# right for you?</dc:creator>
		<pubDate>Sun, 25 Nov 2007 18:36:40 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-14043</guid>
		<description>[...] Check it out! While looking through the blogosphere we stumbled on an interesting post today.Here&#8217;s a quick excerptUI, ExtJS) are not written in Script#. So, you can’t use those libraries right away from your Script# code. I think you will have to create a wrapper class for those libraries in order to use them in your Script#-enabled projects. &#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] Check it out! While looking through the blogosphere we stumbled on an interesting post today.Here&#8217;s a quick excerptUI, ExtJS) are not written in Script#. So, you can’t use those libraries right away from your Script# code. I think you will have to create a wrapper class for those libraries in order to use them in your Script#-enabled projects. &#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: University Update - AJAX - Script# - Is Script# right for you?</title>
		<link>http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-14038</link>
		<dc:creator>University Update - AJAX - Script# - Is Script# right for you?</dc:creator>
		<pubDate>Sun, 25 Nov 2007 17:48:35 +0000</pubDate>
		<guid isPermaLink="false">http://michaelsync.net/2007/11/25/script-is-script-right-for-you#comment-14038</guid>
		<description>[...]                           Script# - Is Script# right for you? &#187;  This Summary is from an article posted at Michael Sync  on Sunday, November 25, 2007    This [...]</description>
		<content:encoded><![CDATA[<p>[...]                           Script# - Is Script# right for you? &#187;  This Summary is from an article posted at Michael Sync  on Sunday, November 25, 2007    This [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
