Tuesday, April 22, 2008

LINQ to XML

1) functional construction:

2) context-free XML creation

3)simplified names


RSS --- Really Simple Syndication--- a format for distributing and gathering content from sources across the web, including newspapers, magaxines, and blogs:

XML API class hierarchy:
XObject --> XNode --> XContainer-->
XDocument vs XElement

XDocment is complete xml doc.

Monday, April 21, 2008

Partial Classes in ASP.NET

Partial classes split class into multiple physical files. Compiler treats all these partial classes as a single type.
partial keyword applies to classes, structs and interfaces but not enums

pessimistic concurrency vs optimistic concurrency

locks another user to make changes until the record is released --- pessimistic concurrency
allow user to make changes to the same record -- optimistic concurrency

Tuesday, April 15, 2008

My Practices coding

namespace LINQtoSQL
{
public partial class PublisherMgr : System.Web.UI.Page
{
Table tbPublisher;
DataContext publisherDataContext;
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(DataAccess.GetAdventureConnection());
publisherDataContext = new DataContext(conn);
tbPublisher = publisherDataContext.GetTable();
gvPublisher.DataSource = from pub in tbPublisher orderby pub.PublisherName select pub;
gvPublisher.DataBind();
}
protected void btnSave_Click(object sender, EventArgs e)
{
Publisher newPub = new Publisher();
newPub.PublisherId = Guid.NewGuid();
newPub.PublisherName = txtPublisher.Text;
tbPublisher.InsertOnSubmit(newPub);
publisherDataContext.SubmitChanges();
gvPublisher.DataSource = from pub in tbPublisher orderby pub.PublisherName select pub;
gvPublisher.DataBind();
}
}
}



namespace LINQtoSQL
{
static public class DataAccess
{
static public IQueryable GetDataAccess()
{
string connectionString = ConfigurationSettings.AppSettings["connectionString"].ToString();
SqlConnection connection = new SqlConnection(connectionString);
DataContext dataContext = new DataContext(connection);
IQueryable books = from book in dataContext.GetTable() select book;
return books;
}
static public string GetAdventureConnection()
{
return ConfigurationSettings.AppSettings["connectionString"].ToString();
}
static public string GetNorthwindConnection()
{
return ConfigurationSettings.AppSettings["connectionStringNorthwind"].ToString();
}
}
}


namespace LINQtoSQL
{
[Table(Name="dbo.Book")]
public class Book
{
[Column(Name="BookId", IsPrimaryKey=true)]
public Guid BookId { get; set; }
[Column(Name="Isbn")]
public string Isbn { get; set; }
[Column (Name="Notes")]
public string Notes { get; set; }
[Column(Name="PageCount")]
public Int32 PageCount { get;set; }
[Column (Name="Price")]
public decimal Price {get;set;}
[Column (Name="PublicationDate")]
public DateTime PublicationDate { get; set; }
[Column (Name="Summary")]
public string Summary{get;set;}
[Column (Name="Title")]
public string Title{get;set;}
[Column (Name="SubjectId")]
public Guid SubjectId { get; set; }
[Column (Name="PublisherId")]
public Guid PublishId { get; set; }
}
[Table(Name = "dbo.Subject")]
public class Subject
{
[Column(Name="SubjectId",IsPrimaryKey=true)]
public Guid SubjectId { get; set; }
[Column(Name="Description")]
public string Description { get; set; }
}
[Table(Name = "dbo.Publisher")]
public class Publisher
{
[Column(Name="PublisherId", IsPrimaryKey=true)]
public Guid PublisherId { get; set; }
[Column(Name="PublisherName")]
public string PublisherName { get; set; }
}
}

Friday, April 11, 2008

Debug tool --- Query Visualizer tool

Download from:

http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx

and copy SqlServerQueryVisualizer.dll paste to file://program/ Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\Visualizers

restart VS 2008 , you are good to debug LINQ Expression

Thursday, April 10, 2008

Standend query operators samples

Besides where, select, here are SelectMany, Selecting Indeces, Distinst...

SelectMany:

var authors = SampleData.Books.SelectMany(book => book.Authors);

equal expression:

var authors = from book in SampleData.Books
from author in book.Authors
select author.LastName

you can't write
var authors = from book in SampleData.Books SelectMany ........

select index:


var books = SampleData.Books
.Select((book, index) => new { index, book.Title })
.OrderBy(book => book.Title);
foreach (var bk in books)
{
Response.Write(bk.Title + bk.index);
}

Wednesday, April 9, 2008

Example Query expression & Operator

Which method you prefer???

string[] books =
{ "Funny Stories", "All your base are belong to us", "C# on Railjs", "Bonjour mon Amoue" };
// Operator:
GridView1.DataSource =
books
.Where(book => book.Length > 10)
.OrderBy(book => book)
.Select(book => book.ToUpper());
// query expression
GridView1.DataSource = from book in books where book.Length > 10 orderby book select book;
GridView1.DataBind();

Tuesday, April 8, 2008

Deferred query execution

The query operators is that they execute not when constructed but when ecumerated (in other words, when MoveNext is called on its enumerator)

LINQ sample:

var numbers = new List();
numbers.Add(1);
var query = from n in numbers select n * 10;
numbers.Add(10);
foreach (int i in query)
{
Console.WriteLine(i);
}
Console.ReadLine();


The number 10 is added into the query result, this is called lazy evalution or deferred.
This feature seperate the query construction from query execution

Iterator yield return sample code

using System.Collections.Generic;

protected void Page_Load(object sender, EventArgs e)
{
foreach (var v in OneTwoThree())
{
Response.Write(v);
}
}
private IEnumerable OneTwoThree()
{
Response.Write("return 1");
yield return 1;
Response.Write("return 2");
yield return 2;
Response.Write("return 3");
yield return 3;
}

IEnumerable two usage generic && non-generic

The non-generic type'System.Collections.IEnumerable' cannot be used with type arguments. error message: ask you add using System.Collections.Generic

LINQ Sample

var processes =
Process.GetProcesses().Where(process => process.WorkingSet64 > 20 * 1024 * 1024)
.OrderByDescending(process => process.WorkingSet64)
.Select(process => new { Id = process.Id, Name = process.ProcessName });

foreach (var obj in processes)
{
Response.Write(obj.Id +" & "+ obj.Name +"
");
}

Anonymous types

Sample code:
var v1 = new {FirstName ="Bin", LastName="Zeng" }

The conpilers consider anonymous types that is specified within the same program with properties of the same names and types in the same order to be the same type.

Linitations:

Monday, April 7, 2008

Write Extension methods

Extension Methods: allow us to add new methods to existing CLR type.

simple example:

string customerName ="you foo";
if(Customer.IsValid(customerName))
{}


now by adding extending methods
string customerName = "you foo";

if(custimerName.IsValid())
{}

Lambda Expressions

Lambda Expressions a writing anonymous methods:

IEnumerable <person> results = people.Where(p => p.LastName == "Zeng");

Convent to inline methods:

IEnumerable <Person> results = people.Where( delegate (Person p){return p.LastName = ="Zeng";}
) ;


IEnumerable<Person> advanceResults = people.Where(p => p.LastName == "Zeng")
.OrderBy(p => p.FirstName)
.Take(2);

Object and collection initializers

Object initializers:
var data = new ProcessData {Id = 123, Name ="CurrentProcess",Memory = 12345567};
Collectiopn initializers:
var digits = new List {0,1,2,3,4,5};

for example:
foreach (var process in Process.GetProcesses())
{

processes.Add(new ProcessData { Id = process.Id, Name = process.ProcessName, Memory = process.WorkingSet64 });
}


yeah yeah yeah so easy now !!!!!!!!!!!!!!!!!!!!!!

C# 3.0 Language enhancements

1) Auto-implemented properties: This feature allows 3.0 compiler that creates anonymous private variables to contain each of the values that the individual property will be using:

for example:

public Int Id {get;set;} none private int _id


2)Implicitly typed local variables:

for example:

var Processes = new List<ProcessData>();

before:
List Processes = new List<ProcessData>()

In this case we no longer have to write the types of local variables twice, The compiler infers the types automatically. This means that even though we use a simplified syntax, we still get alll the benefits fo strong types, such as compile-time validation and IntelliSense.

Tuesday, March 25, 2008

Commerce Server 2007 implementation


I will trace this project process, I will see how much mistakes we made and

Monday, March 24, 2008

Model View Presenter --- MVP Design pattern


MVP pattern is one of the major patterns used for ectracting besuness logic outside of UI elements and by that, enabling unit testing the UI without the need for using sepecific UI based testing tools.

View contains the presenter instance
Presenter is the only class knowing how to reach to model and retrieve the data needed for performaing business logic.

Presenter talks to the view throgh the view interface (abstracted representation of the View without UI sepcific attributes)

View doesn't know nothing about the Model

a facade design patten

A facade, in software design terms, is an interface intended to simplify a more complex API.

Facade:
Knows which subsystem classes are responsible for a request. delegated client requests to approproate subsystem objects
Subsystem classes:
implement substem functionality
handle work assigned by the Facade object
have no knowledge of the facase and keep no reference to it

Wednesday, March 12, 2008

BizTalk Message Delivery

Message-Delivery Patterns

Scatter-gather
Request-reply
Publish-subscriber

Message-Processing Patterns

Aggregator
First in/first out
Splitter

Tuesday, March 11, 2008

What is ERP?

ERP-- Enterprose Resource Planning. ERP is a way to integrate the data and processes of an organization into one single system.

There are many advantages of implementing an EPR system; here are a few of them:

* A totally integrated system
* The ability to streamline different processes and workflows
* The ability to easily share data across various departments in an organization
* Improved efficiency and productivity levels
* Better tracking and forecasting
* Lower costs
* Improved customer service

While advantages usually outweigh disadvantages for most organizations implementing an ERP system, here are some of the most common obstacles experienced:

Usually many obstacles can be prevented if adequate investment is made and adequate training is involved, however, success does depend on skills and the experience of the workforce to quickly adapt to the new system.

* Customization in many situations is limited
* The need to reengineer business processes
* ERP systems can be cost prohibitive to install and run
* Technical support can be shoddy
* ERP's may be too rigid for specific organizations that are either new or want to move in a new direction in the near future.


The term ERP originally referred to how a large organization planned to use organizational wide resources. In the past, ERP systems were used in larger more industrial types of companies. However, the use of ERP has changed and is extremely comprehensive, today the term can refer to any type of company, no matter what industry it falls in. In fact, ERP systems are used in almost any type of organization - large or small.

In order for a software system to be considered ERP, it must provide an organization with functionality for two or more systems. While some ERP packages exist that only cover two functions for an organization (QuickBooks: payroll & accounting), most ERP systems cover several functions.

Today's ERP systems can cover a wide range of functions and integrate them into one unified database. For instance, functions such as Human Resources, Supply Chain Management, Customer Relations Management, Financials, Manufacturing functions and Warehouse Management functions were all once stand alone software applications, usually housed with their own database and network, today, they can all fit under one umbrella - the ERP system.

Wednesday, March 5, 2008

my website

http://ibatteryresource.com/

Thursday, February 28, 2008

BizTalk Components

Businees Rules EngineThe rules engine allows you to apply business process logic against message data. MS provides a full-featured tool for rules creation, called the Business Rule Composer.

Orchestrations
Provides a unique graphical interface for routing, evaluating, and manipulatiing incoming and outgoing messages
Orchestrations also provide a means by which you can communicate with web services, databases, and other corporate entities

Healthe and Activity Tracking(HAT)
monitoring the BizTalk

Business Activity Monitoring(BAM)
gives non technical personnel a portal to view the data

Business Activity Services
set providers functionality for managing and instantiating integration relationships with various trading partners.

Messaging
One could almost make the point that messaging is the core component of the BizTalk Server product. Messaging is not simply one particular application that you can start. It's a combination of adapters, pipelines, ports, and more that collaborate to effectively and efficiently manipulate and route your message data

Enterprise Single Sign-On
Enterprise Single Sign-On (SSO) is the process by which non-Windows authentication accounts can be granted or denied rights based on preferential mappings established by the BizTalk administrator. This allows you to take in a message that has established authentication through the trading partner's own criteria and correspondingly map that authentication to an internal account within your enterprise

BizTalk Server 2006

Adapters concepts:
File Adapter, Web Services Adapter
SQL Adapter, HTTP Adapter
these four collection of adapters that micorsoft has provided.

are the application-specific interfaces to the BizTalk messaging engine.


Web Services Adapter
Send and receive messages as SOAP packages over HTTP

File Adapter
Read and write files to the file system

MSMQ Adapter
Send and receive messages with Microsoft Message Queuing

HTTP Adapter
Send and receive messages via HTTP

WebSphere Adapter
Send and receive messages using WebSphere MQ by IBM

SMTP Adapter
Send messages via SMTP

POP3 Adapter
Receive e-mail messages and attachments

SharePoint Services Adapter
Access SharePoint document libraries

SQL Adapter
Interface with a SQL Server database

Wednesday, February 20, 2008

SQL dateTime, date

create function DateOnly(@DateTime DateTime)
-- Returns @DateTime at midnight; i.e., it removes the time portion of a DateTime value.
returns datetime
as
begin
return dateadd(dd,0, datediff(dd,0,@DateTime))
end
go

create function Date(@Year int, @Month int, @Day int)
-- returns a datetime value for the specified year, month and day
-- Thank you to Michael Valentine Jones for this formula (see comments).
returns datetime
as
begin
return dateadd(month,((@Year-1900)*12)+@Month-1,@Day-1)
end
go

create function Time(@Hour int, @Minute int, @Second int)
-- Returns a datetime value for the specified time at the "base" date (1/1/1900)
-- Many thanks to MVJ for providing this formula (see comments).
returns datetime
as
begin
return dateadd(ss,(@Hour*3600)+(@Minute*60)+@Second,0)
end
go

create function TimeOnly(@DateTime DateTime)
-- returns only the time portion of a DateTime, at the "base" date (1/1/1900)
returns datetime
as
begin
return @DateTime - dbo.DateOnly(@DateTime)
end
go

create function DateTime(@Year int, @Month int, @Day int, @Hour int, @Minute int, @Second int)
-- returns a dateTime value for the date and time specified.
returns datetime
as
begin
return dbo.Date(@Year,@Month,@Day) + dbo.Time(@Hour, @Minute,@Second)
end
go

Friday, January 4, 2008

Good Recommandation to mock up design site

http://www.templatemonster.com/

Avid using HTML Tables to Control Layout
the W3C officially discourages it:

www.w3c.org/tr/wai-webcontent

Back to the beerhouse again

You start by establishing the user experience you want people to have, and then you design the plumbing behing the scenes that will provide that user experience. Some basic considerations that affect the user's experience are the menu and navigation, use of images, and the organization of elements on the page. The menu must be intuitive and should be augmented by navigation hints such as a site map or breadcrumbs that can remind users where they are, relative to the site as a whole.
Breadcrumbs in this context refer to a set of small links on the page that form atrail that enables users to back up to a previous page by clicking on the link segment for a page higher in the page hierarchy.

code reusability and enhance maintainability.

Thursday, December 27, 2007

.NET serialization

Automatic Serialization:
Reflection use metadata exposed by every.NET component. Swrialies the object state into a stream. A stream is a logical sequence of bytes. The various stream types provided by .NET all derive from the abstract class Stream, in the System.IO namespace. By default the user-defined tyoe aren't serializable. [Serializable],[NonSerialized]

Thursday, December 13, 2007

ASP.NET Request Processing

ASP.NET request processing is based on a pipeline model in which ASP.NET passes http requests to all the modules in the pipeline. Each module receives the http request and has full control over it. The module can play with the request in any way it sees fit. Once the request passes through all of the HTTP modules, it is eventually served by an HTTP handler. The HTTP handler performs some processing on it, and the result again passes through the HTTP modules in the pipeline. During the processing of a http request, only one HTTP handler will be called, whereas more thatn one HTTP modules can be called.

Tuesday, December 11, 2007

Working with .NET Events

New term --- The object publishing the event is called the publisher, and the any party interested in the event is called a subscriber.

Delegate based Events

a delegate is nothing more than a type safe method reference,

public delegate void NumberChangedEventHandler(int number)

This delegate can be used to call any method with a matching signature, the name of method and the name of parameter are not important, but you have to have the same signature.

Here is example:

public delegate void NumberChangedEventHander(int number);

public class MyPublisher
{
public NumberChangedEventHander NumberChanged;
}
public class MySubscriber : Page
{
public void OnNumberChanged(int number)
{
string mes = "New value is " + number ;
}
}


UI call the delegate:

MyPublisher publisher = new MyPublisher();
MySubscriber subscriber1 = new MySubscriber();
MySubscriber subscriber2 = new MySubscriber();
publisher.NumberChanged += new NumberChangedEventHander(subscriber1.OnNumberChanged);
publisher.NumberChanged += new NumberChangedEventHander(subscriber2.OnNumberChanged);
publisher.NumberChanged(3);

,NET Request Pipeline

a request enters the pipeline, it handled by an instance of the HttpApplicaton class.
IHttpHandler interface the ProcessRequest method. the main work of a handler implementation goes.
The ProcessRequest method pass the param. HttpContext

.NET Re

Tuesday, December 4, 2007

the different between an abstract class and an interface

an abstract class can still have implementation. an interface can't have implementation or member variables.

a.net class can derive from only one base class, even if that base class is abstract. However, a .net class can implement as many interfaces as required.

an abstract class can derive from any other class or from one or more interfaces.

an abstract class can have nonpublicc methods and prperties, even if they are all abstract. In an interface, by definition, all members are public.

an class can have static methods and static members and can define constants. an interface can have none of those.

an abstract class can have constructors. an interface can't

Requirements for an asynchronous call

1)the component code should be used for both synchronous and asynchronous invacations
2)the client shuld be the one to decide whethere to call a component sychronously or asynchronously.
3)the client is able to issue multiple asynchronous calls and have multiple asynchronous calls in progress.
4)the component should be able to serve multiple concurrent calls

There are

Manage Connection pool

.net managerd providers manage the connection pool for us, using shared database connection. We can control the size of connection pool in connection string, for example:

const string connString = "server=localhost;" +
"uid=scott;" +
"pwd=tiger;" +
"database=Northwind;" +
"Min Pool Size=3;" +
"Max Pool Size=3";

What's that mean and what happened behind the scenes. When SqlConnection.Open() was called, the manager provider instantiatied an internal calls called SqlConnectionProolManger and invoked its GetpooledConnection method, passing into it the connection string. The pool manager examined all current pools to see if there was one that used a connection string that exactly matched the one it was given

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
}