Friday, November 23, 2007

a Set of User-selectable Themes

A theme is a group of related files stord in asubfolder under the site's/App_Themes folder, which contain the : Stylesheet .css file, Skin files theat define the appearance of server-side ASP.NET controls, server-side stylesheet files and images etc.

Avoid Using HTML Tables to control layout

Using DIVs and a separate stylesheet file to define appearance and position.
The site will load much faster for end users! the stylesheet file will be downloaded by the client only once, and then loaded from the cache for subsequent requests of pages until it changes on the server. If the layout by table the client instead will download the table's layout for every page.

The BeerHouse Reading --CSS review

http://library.books24x7.com/book/id_14277/viewer.asp?bookid=14277&chunkid=616591712

Learning take advantage of powerful features such as master pages and themes.
Review CSS:
the dot(.) profix the class --- custom style classes
HTML objects not another explicit class associated with
associate a style class to a HTML object by ID-- by using # prefix
mix the varioubs--.sectiontitle a
{
color: yellow;
}

.sectionbody a
{
color: red;
}

Monday, November 19, 2007

i AM HERE

http://library.books24x7.com/book/id_20566/viewer.asp?bookid=20566&chunkid=403692321

Example about JSON

var JSONstring =
'{' +
'"artist" :"Phish", ' +
'"title" : "A Picture of Nectar", ' +
'"releaseYear" : 1992,' +
'"tracks" : [' +
' "Llama",' +
' "Eliza",' +
']' +
'}';
function pageLoad()
{
var album = eval("("+ JSONstring +")")
var innerHTML = album.artist;
alert(innerHTML)
$get('placeholder').innerHTML = innerHTML;
var track = "";
for(var i =0; i {
track += "track #" + i + " = " + album.tracks[i]+ "
";
}
$get('placeholder2').innerHTML = track;
}

JSON Format

The JSON format leverages a subset of the object litereal notaion that JavaScript supports natively. In general, the information at www.json.org classifies the notation of objects as being either unordered key-value pairs, or ordered lists of items. Unordered key-value pairs are separated by colons and surrounded by curly braces. ORDERED LISTS, OR ARRAYS, are separated with commas and surrounded by right and left brackets.

Enbedding Script Resources

the difference between retrieved from the filesystem compared with embedded as a resource in a dll:
When the page to a script is used, the ScriptManager provides a callback to the ScriptRecource handler, which retrieves the contents.When retrieved as an embedded resource, the ScriptManager injects the call to Sys.Application.notifyScriptLoaded for you automatically. This allows you to start using scripts that you already have with ASP.NET AJAX without having to rebuild the dlls.

The Ubiquitous ScripManager

When the ScriptManager is included in the page, the AJAX Library scripts are rendered to the browser.





ScriptMode for both ScriptManager and ScriptReferences: the default value is Auto, the other values are Release, Debug and Inherit. When set to Auto, the determination is primarily the result of server settings. When debug set to true in the compliation section of the web.config file, or when the debug page directive is set to true.

Friday, November 16, 2007

Arrays

var array = new Array();
Array.add(array, "Junta");
Array.add(array,"Lawn Boy");
if(Array.contains(array,"Junta"))
Array.clear(array);
var items = ["Stash","Hoist","Tracking"] ;
Array.addRange(array, items);
Array.insert(array, 1,"Lawn Boy");
for(var i =0; i{
alert(array[i]);
}
Array.forEach(array, arrayMethod);


extend object:

var releaseDates = new Object();
13 releaseDates["Junta"] = new Date("May 8, 1989");
14 releaseDates["Lawn Boy"] = new Date("September 21, 1990");
15 releaseDates["Picture of Nectar"] = new Date("February 18, 1992");
16 releaseDates["Rift"] = new Date("February 2, 1993");
17
18 for(var property in releaseDates) {
19 alert(property + " was released " + releaseDates[property]);

Dates and numbers

The complexities of formatting really come into play when dealing with dataes and numbers. The ASP.NET AJAX Library adds format and localeFomat methods to the string, date and number objects. The format and methods are key for effectively controlling output.


var d = new Date();
var message = String.localeFormat("{0}\n{1}\n{2}\n{3}\n{4}\n{5}\n{6}\n{7}",
d.format("d"),
d.format("D"),
d.format("t"),
d.format("T"),
d.format("F"),
d.format("M"),
d.format("s"),
d.format("Y") );
alert(message);

registerEnum

Costco.ASPAJAX.Samples = function(name)
{
this._name = name;
}
Costco.ASPAJAX.Samples.MusicGenre = function ()
{
throw Error.invalidOperation();
}
Costco.ASPAJAX.Samples.MusicGenre.prototype = {
Blues: 1,
Classical:2,
Elevtronic: 3
}
Costco.ASPAJAX.Samples.MusicGenre.registerEnum('Costco.ASPAJAX.Samples.MusicGenre');
var genre = Costco.ASPAJAX.Samples.MusicGenre.Blues;
alert(Costco.ASPAJAX.Samples.MusicGenre.toString(genre));
alert(genre == Costco.ASPAJAX.Samples.MusicGenre.Blues)
genre = 10;
alert(Costco.ASPAJAX.Samples.MusicGenre.toString(genre));

Thursday, November 15, 2007

I am here

http://library.books24x7.com/book/id_20566/viewer.asp?bookid=20566&chunkid=422808113

Creating classes

JavaScript functions are used to represent class objects in the type system. The AJAX Library follows the pattern of declaring a function as the class constructor. JavaScript allows you to modify the prototype of the function directly, which is how the AJAX Library creates class members. The class must then be registered so that it can participate in the semantics of the type system.

varibale scope: the local memebers are accessed with a prefix of 'this', the script engine can then scope the lookup to the type and avoid searching any containing scopes. If you do not use this to indicate that the reference is local to the type. you will end up creating objects in the global scopt and see errors that can be confusing and time-consuming to track down.


Type.registerNamespace('Costco.ASPAJAX.Address');
Costco.ASPAJAX.Address= function (name, email)
{
this._name = name;
this._email = email;
}
Costco.ASPAJAX.Address.prototype =
{
get_name: function(){
return this._name;
},
get_email: function()
{
return this._email;
}
}
Costco.ASPAJAX.Address.registerClass('Costco.ASPAJAX.Address')
var address = new Costco.ASPAJAX.Address('you name','youname@costco.com');
alert(address.get_name());

Declaring Namespaces

function pageLoad(sender, args)
{
Type.registerNamespace('Wrox.ASPAJAX');
alert(Type.isNamespace(Wrox.ASPAJAX));
var namespaces = Type.getRootNamespaces();
var resultString = null;
for(var i = 0, length = namespaces.length; i < length; i++) {
resultString +=namespaces[i].getName(); //displays
}
document.getElementById('result').innerHTML = resultString
}

Tuesday, November 13, 2007

Today's reading end at here:

http://library.books24x7.com/book/id_20566/viewer.asp?bookid=20566&chunkid=422808113


Let me finish chapter 4 tomorrow!!!!! hopefully not much stupid things need to finish!!!

A function in JavaScript is a first-class type

It can be passed as an argument to another object. A function can receive arbitrary arguments to act on. It can return primitive types, or it can even retrun a new function.

XMLHttpRequest object methods and properties

Methods:

abort();
getAllResponseHeaders();
getResponseHeader(label);
open(method, rul, asyncFlag, username, password);
send(content) ----Execute the HTTP request, where the variable content represents data that is posted if applicable.

properties:
xmlhttp.status;
xmlhttp.statusText;
xmlhttp.responseText;
xmlhttp.responseXML;

XMLHttpRequest instantiation indentify browser

function FactoryXMLHttpRequest()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest(); //most likely includes all browsers except Microsoft IE
}
else if(window.ActiveXObject)
{
var msxmls = new Array
( 'Msxml2.XMLHTTP.5.0',
'Msxml2.XMLHTTP.4.0',
'Msxml2.XMLHTTP.3.0',
'Msxml2.XMLHTTP',
'Microsoft.XMLHTTP'
);

for (var i = 0; i < msxmls.length; i++)
{
try {
return new ActiveXObject(msxmls[i]);
}
catch (e)
{
}
}
}

throw new Error("Could not instantiate XMLHttpRequest");

}

Understanding REST Theory

REST is useful because it works with current HTTP server architectures. The irony of REST is that to adopt it as an architectural style, the server does not have to be changed, but our coding styles do have to changes.

When creating an Ajax application, the HTML page and the referenced data files must be downloaded from the same domain.

Ajax Architecture Basics

The data is fetched from the server by using a Representational Sate Transfer(REST) architecture style. The essence of REST is to create a simpler web services architecture by using HyperText Transfer Protocol(HTTP). the overall idea is to generate content and to have that content filtered and processed. The filtered and processed content serves as an informaiton basis, where another process acts as a client that filters and processes the informaiton. THe filteres and processed information acts as an information basis for another client. Content is fluid and constantly modified.