wiki‎ > ‎Documentation‎ > ‎Knowledge Base‎ > ‎

What is Ultra

Codename ultra denotes the ultimate way to create applications from HTML to HTML within C#.

All our templates now use the Ultra technology, so create a new JSC project in Visual Studio 2010 and you'll be using this latest technology from JSC.


How are the compilers used?


Launcher

When launching an Ultra Application on your desktop the application will notify it is loading and open a web browser for you.

Right-click on the Ultra Application icon to see more options. 




Screencasts




A PRE build event will scan your project and generate a satellite assembly with optional types to be used by your application.


By having a special folder in your project suffixed with "UltraSource" and having a HTML file which references some images like this:

<head>
    <title>Browsers</title>
</head>
<body>
    <img src="twitter_small.png" />

By having above HTML the image can be reused in your code like this:

   40             new HTML.Images.FromBase64.twitter_small().AttachToDocument();

   41             new HTML.Images.FromAssets.twitter_small().AttachToDocument();


A POST build event will rewrite your application and inject the neccesary proxy code to enable seamless integration of different platforms. It will also omit any unused type within merge-able assemblies which need to be marked like this:

   38 [assembly: Obfuscation(Feature = "merge")]


Keywords

The following names or keywords are special when used within a TypeName as a suffix.
  • WebService
  • WebServiceExtensions
  • SpriteExtensions
  • Sprite
  • AppletExtensions
  • Applet
The following names or keywords are special.
  • UltraSource
  • references.txt

Future features

  1. Reference zip files and other containers
  2. Could we write a browser extension within Ultra :) ?
  3. What about java webstart?
  4. What about application manager - a way to load and unload different Ultra Applications
  5. Fetch audio from text? :) See http://www.acapela-group.com/text-to-speech-interactive-demo.html

Extending Ultra

Custom HTML to TypeBuilder plugins shall be supported in the future either via MEF or other similar plugin interfaces.
A custom plugin could for example enable Image OCR, where at build time referenced images are converted to texts.

On Demand Ultra Application Pages

Some parts of your application can be loaded on demand. For example you could have a sub page /#/about and opening it will trigger the code download just in time.
This approach will enable loading your application faster by not pre loading all script files but just the ones needed for the primary application.