Project Logo Release History

Latest Release 0.7.4 (10/23/2011)

Additions and Updates:

  • Fix/update bing maps metadata bug.
  • Fix observable bug where access to an observed property without an observer registration would drop existing observers.
  • Remove /copyRefs flag from ssc.exe (script references are no longer copied to output folder) Same applies to ScriptCompilerExec task. The normal ScriptCompilerTask continues to provide this capability.
  • Some enum related changes: ToString/Enum parsing support removed (it didn't work for internal enums anyway), ToString on named enum values and strings skipped from generated script, enum values inlined, and internal enums are no longer generated.

Fixes/Changes:

  • [git #25] Importing multi-dimensional arrays
  • [git #56] Switch statement when used with more then 6 cases will generate a compile error
  • [git #62] Compile error due to assembly name sort order
  • [git #66] Support Nullable.GetValueOrDefault which is needed for ?? operator on nullables
  • [git #67] BREAKING CHANGE: DateTime to Date. Also no longer a value class. Date reflects script semantics more accurately (which is not that of a value type).
  • [git #84] Raise error for code which calls Type.CreateInstance with the results of a method call/property access directly.
  • [git #92] Don't generate internal consts since their values have been inlined even in debug builds (for symmetry with release builds). Also, at the same type skip generating types for internal enums marked as Named/NumericValues, since their values have been inlined as well. Also fixes [git #42] indirectly.
  • [git #93] Error compiling cross-referenced projects in 0.7.3. Fix by requiring explicit references, and reporting failure on not doing so instead of silent failure (this is temporary ... there must be a better msbuild way of including transitive closure of assemblies, but even referencing indirect references in the targets file raises an error to include explicit references).
  • [git #94] Raise error for code which calls Type.CreateInstance with the results of a method call/property access directly.
  • [git #96] Handle '+' unary operator
  • [git #97] Unable to generate code for projects that don't reference Script.Web.dll.
  • [git #103] Fix generation of custom delegates to use "Function" as generated script name
  • [git #107] ScriptAlias is not respected on types defined in the current assembly
  • [git #114] Window.ApplicationCache.Status.ToString() generates invalid JavaScript

0.7.3 (8/14/2011)

Additions and Updates:

  • Separate out msbuild tasks into ScriptSharp.Build assembly.
  • Separate out VS related functionality into ScriptSharp.VisualStudio assembly.
  • Enable creating derived jQueryEvent objects.
  • DOM API metadata updates
  • Knockout API metadata updates

Fixes/Changes:

  • Propagate ScriptNamespace to generic classes
  • [git #71] Fix formatting of GMT dates
  • [git #70] Support for const decimal
  • [git #69] Fix LocaleFormat typo
  • [git #76] Compiler crash defining decimal type with non-integer value
  • [git #75] Defining a local variable 'ss' hides the Script# ss global
  • [git #60] List constructor with params for creating literal array
  • [git #74] Fix date formatting to make it more in sync with .net
  • [git #63] Fix internal partial class generation
  • [git #65] Calling ToString() on a constant breaks minified script
  • [git #73] Creating Record objects from another library
  • [git #80] The decimal type is missing the Parse method
  • [git #84] if(<var> is <type>) not compiled properly when <type> is a delegate.

0.7.2 (5/22/2011)

Additions and Updates:

  • Improve jQuery Deferred APIs.
  • Support for jQuery 1.6.1 and various missing APIs
  • Addition of AudioElement, Tuple, Callback, and various component model interfaces
  • Support for KnockoutJS API

Fixes/Changes:

  • Generate empty string literal for String.Empty references
  • Fix delegate optimization when using Type.InvokeMember inside anonymous delegate
  • [git #31] Revert to using == and != for comparison against null, rather than loose equality.
  • [git #32] Fix various jQuery generic delegate issues by introducing non-generic version of jQueryXmlHttpRequest and non-generic delegate signatures. As a result jQueryXmlHttpRequest is non-generic, and jQueryDataHttpRequest is now the generic type.
  • [git #45] Apply [PreserveName] in debug builds as well.
  • [git #52] Fixes related to DocumentFragment.
  • [git #54] Additional APIs on DateTime - toISOString and SetFullYear.

0.7.1 (5/2/2011)

Additions and Updates:

  • Support for Nullable<T> and T? syntax with .HasValue and .Value properties.
  • Observable<T> and ObservableCollection.
  • Script.IsValue method (equivalent to !Script.IsNullOrUndefined).
  • Added ElementListQuery, ElementQuery and ElementReference for use with Ajax.AddScriptlet in MVC view.

Fixes:

  • [git #19] Add Style.CssFloat.
  • [git #20] Fix issues where the only statement within an if/while/for is a debug conditional statement.
  • [git #22] Fix issues with generic delegates like jQueryErrorCallback, etc.
  • [git #27] Optimize checking against falsey values.
  • [git #28] Fix bug in jQueryAjaxOptions metadata.
  • [git #29] Add InputElement.Select().

0.7.0 (4/13/2011)

Additions and Updates:

  • Support for consuming generics (eg. List, Dictionary, Action, Func, EventHandler etc.) ... cannot define new generic types though... not yet.
  • New asp.net mvc support with new script loader.
  • Nuget support for adding script# to asp.net mvc app
  • New metadata for members on canvas, document, image etc.
  • Allow creating specifically named delegate exports
  • Added Script.Value(v1, v2) to generate v1 || v2 script pattern.

Changes:

  • Rename jQueryObject.Cast to Plugin.
  • Rename Delegate.Null to Delegate.Empty
  • Removed attachEvent/detachEvent.
  • Exported Delegates are now generated on window object rather than on ss.Delegate.
  • Generate more optimal script for anonymous methods that don't use implicit this parameter.
  • Allow classes marked with [GlobalMethods] to have a static ctor
  • Updated project templates
  • Updated script template used for script generation (look in Properties folder) ... the doubly nested functions are not needed. Easiest to see the difference by creating a new project and inspecting the new script template.

Incremental Changes in v0.7.0.1 (4/19/2011)

  • Fix type in Error extensions in mscorlib.js
  • Fix metadata bug in jQuery.InArray
  • Fix config typo in nuget package

Incremental Changes in v0.7.0.2 (4/24/2011)

  • Add missing jQueryObject.Html overload [git issue #7]
  • Add missing Document.ElementFromPoint, and Create/DispatchEvent APIs
  • Fix anonymous delegate issues [git issue #3]
  • Optimize string literal generation [git issue #9]
  • Added SCRIPTSHARP define for script# projects [git issue #11]
  • Removed Script.Windows.js and moved functionality into Gadget project template
  • Updated mscorlib.js to include ss.init/ss.ready functionality if used without ssloader.js

0.6.3.0, 3/6/2011

Additions and Updates:

  • Support for jQuery 1.5.1
  • First bit of work to start reducing size of mscorlib.js (more to come)

Fixes:

  • Fix script generated for Type.HasField
  • Fix Arguments.ToArray
  • Replace Math.truncate with parseInt.
  • Fix some msbuild task issues

0.6.2.0, 10/16/2010

Additions and Updates:

  • Support for jQuery 1.4.3
  • Added some missing HTML5 API members (WebDatabase/SQL)
  • Web Application projects can now contain top-level code files outside a folder - they are treated as shared code compiled into every script generated from the project.

0.6.1.0, 10/12/2010

Additions and Updates:

  • Continued support for HTML5 APIs (canvas, web db, app cache, touch/gesture events, event handler object, geolocation, DOM storage etc)
  • Added missing APIs in jQuery 1.4.2 support
  • Updated jQuery.Templating to match latest beta of jQuery Templates plugin
  • Support for Safari in unit test runner
  • Added some helper APIs (Script.Boolean to coerce to boolean, Type.HasField etc. to lookup existence of members)
  • Application project improved to support outputing multiple scripts from single script# project. The Application project template sets the WebAppPartitioning csproj property to true, which causes the script# compiler to generate one script per folder of source code within a project. This can be useful if you want a single project for all scripts associated with multiple pages within a single web app. Be sure to not have code in one folder not reference code in another folder. To have some code generated into each individual script file, place it in a Shared folder. The Application and jQuery Application project templates along with Page and jQuery Page item templates are interesting starting points.
  • Improved compiler logging about generated script files and errors writing output files

Previous Build (0.6.0.0, 6/17/2010)

Additions and changes:

  • jQuery Support - writing script against jQuery (Script.jQuery.dll) as well as ability to write jQuery plugins
  • Unit testing support using QUnit and VS Unit Test projects
  • Code Analysis/FxCop support
  • VS2010 and Visual Web Developer 2010 support
  • Updated project and item templates
  • Scriptlet support for ASP.NET MVC
  • Merged sscorlib.dll and aacorlib.dll into mscorlib.dll. Changed sscorlib.js to become mscorlib.js. If you are using ASP.NET Ajax, you need to include MicrosoftAjaxExt.js for equivalent functionality
  • Moved HTML APIs into Script.Web.dll
  • Moved classes into System.Html, System.Collections, System.Net and System.Diagnostics namespaces as appropriate.
  • Scriptlet server control has changed fundamentally. Runtime dynamic compilation support removed. Use a Class Library to author scriptlets and precompile them and deploy them as scripts into your web app/site

Previous Build (0.5.6.0, 12/25/2009 for VS2008)

Bug Fixes:

  • Fixed project template to account for changes to Scriptlet server control (using .scriptlet file instead of embedded scriptlet code inside .aspx)
  • Fixed Sidebar gadget project template.
  • Fixed some Sidebar gadget API metadata

Previous Build (0.5.5.0, 11/29/2009)

Changes to existing features:

  • Scriptlet server control no longer supports embedded code within a Code tag. Instead you must use either a precompiled scriptlet (defined in a Script# class library), or in a sibling .scriptlet file (eg. Foo.aspx.scriptlet alongside Foo.aspx)
  • Scriptlets no longer depend on the ScriptFX framework. They only require functionality defined in sscorlib.js.
  • Script# no longer defines $ shortcut for document.getElementById to remove conflicts with other frameworks like prototype and jQuery
  • Enable generation of localized scripts without having the specified culture installed on the development/build machine
  • Generated resource manager code is marked with [GeneratedCode] attribute.
  • Minor DOM metadata updates

Interesting bug fixes:

  • Fix generation of bitwise compare operators and equality/inequality checks
  • Fix generation of minimized code in various scenarios (incl. partial classes, name preservation for interface members, enum.toString etc.)
  • [PreserveCase] now applies to enum fields and not enum types for named enums
  • Match c# semantics on members defaulting to private when no access modifier is specified
  • Fix generation of global, non-namespaced types
  • Fixed scriptlet code editing where last line of scriptlet code used to be truncated
  • Fixed implementation of String.quote
  • Validate ScriptName passed in into compiler

Previous Build (0.5.1.0, 8/28/2008)

Additions and new features:

  • Enable creating top-level classes outside a namespace block
  • AlternateSignature feature (see doc) to enable creating overloads and optional parameter methods
  • PreserveName attribute to suppress minimization of specific member names and type names
  • Enables FxCop analysis

Changes to existing features:

  • Removed obsolete DebugConditionalAttribute; use ConditionalAttribute now
  • MicrosoftAjax.dll updated to be in sync with .NET 3.5 SP1 (addition of history APIs)

Interesting bug fixes:

  • Added some missing DOM metadata

Previous Build (0.5.0.0, 4/20/2008)

Additions and new features:

  • Generate asp.net ajax style doc-comments from c# doc-comments
  • Support for generating localized scripts from .resx files
  • Silverlight 2 Support in Silverlight bootstrapper script
  • ScriptNamespace feature to enable namespace-collapsing in generated scripts
  • Support for optional parameters in methods and ctors through [AlternateSignature] attribute and extern methods
  • Add Invoke on Function prototype in sscorlib to facilitate using arbitrary functions as delegates
  • Add support for creating and invoking functions dynamically
  • Add Script.Literal for writing raw script as-is without using eval
  • Addition of Microsoft.Live.Messenger assembly to work against Messenger APIs

Changes to existing features:

  • Replace DebugConditionalAttribute with ConditionalAttribute
  • ssmoz.js renamed to sscompat.js; now works with Safari/WebKit and Opera
  • Remove TypeDescriptor/IPropertyAccessor/IEventAccessor/IMethodAccessor
  • Stop generation of private const fields since they have been inlined
  • Add some basic level of error handling to better pinpoint source code statements causing compiler failures
  • Add a __scriptsharp global on window with the version of sscorlib being used

Interesting bug fixes:

  • Fix DateTime.Parse to return the right type of value
  • Fix generation of constant values set to a flag set
  • Fix parsing of response headers
  • Fix unexpected unloading prompt in Safari

Older Builds

  • 0.4.5.0, 12/20/2007
  • 0.4.4.0, 10/25/2007
  • 0.4.3.0, 9/19/2007
  • 0.4.2.0, 9/11/2007
  • 0.4.1.0, 9/6/2007
  • 0.4.0.0, 8/29/2007
  • 0.3.0.0, 5/21/2007
  • 0.2.3.2, 2/13/2007
  • 0.2.3.0, 2/12/2007
  • 0.2.2.0, 1/8/2007
  • 0.2.1.1, 12/27/2006
  • 0.2.1.0, 12/20/2006
  • 0.2.0.0, 11/27/2006
  • 0.1.6.0, 9/10/2006
  • 0.1.5.0, 8/30/2006
  • 0.1.4.1, 8/3/2006
  • 0.1.4.0, 7/23/2006
  • 0.1.3.2, 7/17/2006
  • 0.1.3.1, 7/16/2006
  • 0.1.3.0, 7/15/2006
  • 0.1.2.0, 6/25/2006
  • 0.1.1.0, 6/01/2006
  • 0.1.0.0, 5/22/2006 - Initial public release
Google
   

Script#

Script# brings the power and productivity of C# and .NET tools to Ajax development by compiling C# source code into regular JavaScript.

Interesting Reads