Skip to content
nikhilk edited this page Feb 23, 2013 · 5 revisions

This is a quick overview that might come handy while navigating the script# repository.

Sources

The repository contains all sources used to build script# within the "src" folder. This includes:

  • Core functionality - the compiler assembly and exe, the msbuild tasks, mscorlib assembly and runtime scripts. This represents functionality that all Script# projects consume.
  • Libraries - import libraries defining APIs for referencing in your Script# code. This includes the HTML DOM APIs, NodeJS APIs, and common frameworks such as jQuery and Knockout, as well as other interesting scripts such as Bing Maps control. This represents functinality that most Script# projects consume.
  • Tools - other tools and related pieces of functionality such as Script#-specific FxCop rules and Unit testing integration with Visual Studio. This represents optional functionality that some Script# projects might use.
  • ZipX, i.e. zip-based distribution of script# project templates and nuget packages - this builds the Script# vsix that installs templates into Visual Studio and associated nuget packages containing different units of functionality.

Tests

The "tests" folder contains all tests - both compiler and runtime script tests. Tests are written to be run using the Visual Studio test functionality.

Samples

The "samples" folder contains a few samples that demonstrate some basic usage of script#.

  • AroundMe - demonstrates use of bing maps, HTML5 canvas APIs, importing functionality such as the twitter API, as well as script# unit tests. Generated scripts use the AMD (async module definition pattern) and the Script# AMD loader.
  • Photos - demonstrates using jQuery (authoring plugins and using existing plugins), a mashup scenario (flickr APIs) and unit tests. Generated scripts also use the AMD pattern.
  • FishTank - port of the IE fish tank sample. Demonstrates use of Script# without using the AMD pattern.
  • Todo - port of the famous TodoMVC sample, using jQuery, and the AMD pattern, as well as the Script# AMD loader.
  • KOWorld - hello world sample demonstrating the use of Knockout, the AMD pattern, with the RequireJS script loader.
  • Cellar - Wine browser app built on node.js along with express, mongodb and knockout on the client.
  • WebREPL - Node.js-based console app providing an REPL experience for working with HTTP/Web APIs.

Samples use nuget package restore functionality to retrieve their dependencies, including Script# binaries that they reference.

Tools

The "tools" folder contains tools used to build Script#.

Branches

  • master branch - the branch corresponding the to latest release. This is used for any incremental bug fixes found in the current release, and small-sized or isolated feature development.
  • cc branch - the branch corresponding to work being done to modernize the Script#-generated scripts with the current compiler.