Google
 

Saturday, May 19, 2007

Dissecting a C# Application Inside SharpDevelop



Friday, May 18, 2007

The ASP.NET Page Object Model (One Day in the Life of an ASP.NET Web Page)

ref: ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.NETDEV.v10.en/dnaspp/html/aspnet-pageobjectmodel.htm

Dino Esposito
Wintellect

August 2003

Applies to:
    Microsoft® ASP.NET

Summary: Learn about the eventing model built around ASP.NET Web pages and the various stages that a Web page experiences on its way to HTML. The ASP.NET HTTP run time governs the pipeline of objects that transform the requested URL into a living instance of a page class first, and into plain HTML text next. Discover the events that characterize the lifecycle of a page and how control and page authors can intervene to alter the standard behavior. (6 printed pages)

Contents

Introduction
The Real Page Class
The Page Lifecycle
Stages of Execution
Summary

Introduction

Each request for a Microsoft® ASP.NET page that hits Microsoft® Internet Information Services (IIS) is handed over to the ASP.NET HTTP pipeline. The HTTP pipeline is a chain of managed objects that sequentially process the request and make the transition from a URL to plain HTML text happen. The entry point of the HTTP pipeline is the HttpRuntime class. The ASP.NET infrastructure creates one instance of this class per each AppDomain hosted within the worker process (remember that the worker process maintains one distinct AppDomain per each ASP.NET application currently running).

The HttpRuntime class picks up an HttpApplication object from an internal pool and sets it to work on the request. The main task accomplished by the HTTP application manager is finding out the class that will actually handle the request. When the request is for an .aspx resource, the handler is a page handler—namely, an instance of a class that inherits from Page. The association between types of resources and types of handlers is stored in the configuration file of the application. More exactly, the default set of mappings is defined in the <httpHandlers> section of the machine.config file. However, the application can customize the list of its own HTTP handlers in the local web.config file. The line below illustrates the code that defines the HTTP handler for .aspx resources.

<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/> 

An extension can be associated with a handler class, or more in general, with a handler factory class. In all cases, the HttpApplication object in charge for the request gets an object that implements the IHttpHandler interface. If the association resource/class is resolved in terms of a HTTP handler, then the returned class will implement the interface directly. If the resource is bound to a handler factory, an extra step is necessary. A handler factory class implements the IHttpHandlerFactory interface whose GetHandler method will return an IHttpHandler-based object.

How can the HTTP run time close the circle and process the page request? The IHttpHandler interface features the ProcessRequest method. By calling this method on the object that represents the requested page, the ASP.NET infrastructure starts the process that will generate the output for the browser.

The Real Page Class

The type of the HTTP handler for a particular page depends on the URL. The first time the URL is invoked, a new class is composed and dynamically compiled to an assembly. The source code of the class is the outcome of a parsing process that examines the .aspx sources. The class is defined as part of the namespace ASP and is given a name that mimics the original URL. For example, if the URL endpoint is page.aspx, the name of the class is ASP.Page_aspx. The class name, though, can be programmatically controlled by setting the ClassName attribute in the @Page directive.

The base class for the HTTP handler is Page. This class defines the minimum set of methods and properties shared by all page handlers. The Page class implements the IHttpHandler interface.

Under a couple of circumstances, the base class for the actual handler is not Page but a different class. This happens, for example, if code-behind is used. Code-behind is a development technique that insulates the code necessary to a page into a separate C# or Microsoft Visual Basic® .NET class. The code of a page is the set of event handlers and helper methods that actually create the behavior of the page. This code can be defined inline using the <script runat=server> tag or placed in an external class—the code-behind class. A code-behind class is a class that inherits from Page and specializes it with extra methods. When specified, the code-behind class is used as the base class for the HTTP handler.

The other situation in which the HTTP handler is not based on Page is when the configuration file of the application contains a redefinition for the PageBaseType attribute in the <pages> section.

<pages PageBaseType="Classes.MyPage, mypage" /> 

The PageBaseType attribute indicates the type and the assembly that contains the base class for page handlers. Derived from Page, this class can automatically endow handlers with a custom and extended set of methods and properties.

The Page Lifecycle

Once the HTTP page handler class is fully identified, the ASP.NET run time calls the handler's ProcessRequest method to process the request. Normally, there is no need to change the implementation of the method as it is provided by the Page class.

This implementation begins by calling the method FrameworkInitialize, which builds the controls tree for the page. The method is a protected and virtual member of the TemplateControl class—the class from which Page itself derives. Any dynamically generated handler for an .aspx resource overrides FrameworkInitialize . In this method, the whole control tree for the page is built.

Next, ProcessRequest makes the page transit various phases: initialization, loading of view state information and postback data, loading of the page's user code and execution of postback server-side events. After that, the page enters in rendering mode: the updated view state is collected; the HTML code is generated and then sent to the output console. Finally, the page is unloaded and the request is considered completely served.

During the various phases, the page fires a few events that Web controls and user-defined code can intercept and handle. Some of these events are specific for embedded controls and subsequently can't be handled at the level of the .aspx code.

A page that wants to handle a certain event should explicitly register an appropriate handler. However, for backward compatibility with the earlier Visual Basic programming style, ASP.NET also supports a form of implicit event hooking. By default, the page tries to match special method names with events; if a match is found, the method is considered a handler for the event. ASP.NET provides special recognition of six method names. They are Page_Init, Page_Load, Page_DataBind, Page_PreRender, and Page_Unload. These methods are treated as handlers for the corresponding events exposed by the Page class. The HTTP run time will automatically bind these methods to page events saving developers from having to write the necessary glue code. For example, the method named Page_Load is wired to the page's Load event as if the following code was written.

this.Load += new EventHandler(this.Page _Load); 

The automatic recognition of special names is a behavior under the control of the AutoEventWireup attribute of the @Page directive. If the attribute is set to false, any applications that wish to handle an event need to connect explicitly to the page event. Pages that don't use automatic event wire-up will get a slight performance boost by not having to do the extra work of matching names and events. You should note that all Microsoft Visual Studio® .NET projects are created with the AutoEventWireup attribute disabled. However, the default setting for the attribute is true, meaning that methods such as Page_Load are recognized and bound to the associated event.

The execution of a page consists of a sequence of stages listed in the following table and is characterized by application-level events and/or protected, overridable methods.

Table 1. Key events in the life of an ASP.NET page

Stage Page Event Overridable method
Page initialization Init  
View state loading   LoadViewState
Postback data processing   LoadPostData method in any control that implements the IPostBackDataHandler interface
Page loading Load  
Postback change notification   RaisePostDataChangedEvent method in any control that implements the IPostBackDataHandler interface
Postback event handling Any postback event defined by controls RaisePostBackEvent method in any control that implements the IPostBackEventHandler interface
Page pre-rendering phase PreRender  
View state saving   SaveViewState
Page rendering   Render
Page unloading Unload  

Some of the stages listed above are not visible at the page level and affect only authors of server controls and developers who happen to create a class derived from Page. Init, Load, PreRender, Unload, plus all postback events defined by embedded controls are the only signals of life that a page sends to the external world.

Stages of Execution

The first stage in the page lifecycle is the initialization. This stage is characterized by the Init event, which fires to the application after the page's control tree has been successfully created. In other words, when the Init event arrives, all the controls statically declared in the .aspx source file have been instantiated and hold their default values. Controls can hook up the Init event to initialize any settings that will be needed during the lifetime of the incoming Web request. For example, at this time controls can load external template files or set up the handler for the events. You should notice that no view state information is available for use yet.

Immediately after initialization, the page framework loads the view state for the page. The view state is a collection of name/value pairs, where controls and the page itself store any information that must be persistent across Web requests. The view state represents the call context of the page. Typically, it contains the state of the controls the last time the page was processed on the server. The view state is empty the first time the page is requested in the session. By default, the view state is stored in a hidden field silently added to the page. The name of this field is __VIEWSTATE . By overriding the LoadViewState method—a protected overridable method on the Control class—component developers can control how the view state is restored and how its contents are mapped to the internal state.

Methods like LoadPageStateFromPersistenceMedium and its counterpart SavePageStateToPersistenceMedium can be used to load and save the view state to an alternative storage medium—for example, Session, databases, or a server-side file. Unlike LoadViewState, the aforementioned methods are available only in classes derived from Page.

Once the view state has been restored, the controls in the page tree are in the same state they were the last time the page was rendered to the browser. The next step consists of updating their state to incorporate client-side changes. The postback data-processing stage gives controls a chance to update their state so that it accurately reflects the state of the corresponding HTML element on the client. For example, a server TextBox control has its HTML counterpart in an <input type=text> element. In the postback data stage, the TextBox control will retrieve the current value of <input> tag and use it to refresh its internal state. Each control is responsible for extracting values from posted data and updating some of its properties. The TextBox control will update its Text property whereas the CheckBox control will refresh its Checked property. The match between a server control and a HTML element is found on the ID of both.

At the end of the postback data processing stage, all controls in the page reflect the previous state updated with changes entered on the client. At this point, the Load event is fired to the page.

There might be controls in the page that need to accomplish certain tasks if a sensitive property is modified across two different requests. For example, if the text of a textbox control is modified on the client, the control fires the TextChanged event. Each control can take the decision to fire an appropriate event if one or more of its properties are modified with the values coming from the client. Controls for which these changes are critical implement the IPostBackDataHandler interface, whose LoadPostData method is invoked immediately after the Load event. By coding the LoadPostData method, a control verifies if any critical change has occurred since last request and fires its own change event.

The key event in the lifecycle of a page is when it is called to execute the server-side code associated with an event triggered on the client. When the user clicks a button, the page posts back. The collection of posted values contains the ID of the button that started the whole operation. If the control is known to implement the IPostBackEventHandler interface (buttons and link buttons will do), the page framework calls the RaisePostBackEvent method. What this method does depends on the type of the control. With regard to buttons and link buttons, the method looks up for a Click event handler and runs the associated delegate.

After handling the postback event, the page prepares for rendering. This stage is signaled by the PreRender event. This is a good time for controls to perform any last minute update operations that need to take place immediately before the view state is saved and the output rendered. The next state is SaveViewState, in which all controls and the page itself are invited to flush the contents of their own ViewState collection. The resultant view state is then serialized, hashed, Base64 encoded, and associated with the __VIEWSTATE hidden field.

The rendering mechanism of individual controls can be altered by overriding the Render method. The method takes an HTML writer object and uses it to accumulate all HTML text to be generated for the control. The default implementation of the Render method for the Page class consists of a recursive call to all constituent controls. For each control the page calls the Render method and caches the HTML output.

The final sign of life of a page is the Unload event that arrives just before the page object is dismissed. In this event you should release any critical resource you might have (for example, files, graphical objects, database connections).

Finally, after this event the browser receives the HTTP response packet and displays the page.

Summary

The ASP.NET page object model is particularly innovative because of the eventing mechanism. A Web page is composed of controls that both produce a rich HTML-based user interface and interact with the user through events. Setting up an eventing model in the context of Web applications is challenging. It's amazing to see that client-side generated events are resolved with server-side code, and the output of this is visible as the same HTML page, only properly modified.

To make sense of this model it is important to understand the various stages in the page lifecycle and how the page object is instantiated and used by the HTTP run time.

About the Author

Dino Esposito is a trainer and consultant based in Rome, Italy. A member of the Wintellect team, Dino specializes in ASP.NET and ADO.NET and spends most of his time teaching and consulting across Europe and the United States. In particular, Dino manages the ADO.NET courseware for Wintellect and writes the "Cutting Edge" column for MSDN Magazine. Get in touch at dinoe@wintellect.com.


--
Happy day, happy life!

Page Lifecycle methods of ASP.NET

Table 1. Page Lifecycle methods

Method Active
Constructor Always
Construct Always
TestDeviceFilter Always
AddParsedSubObject Always
DeterminePostBackMode Always
OnPreInit Always
LoadPersonalizationData Always
InitializeThemes Always
OnInit Always
ApplyControlSkin Always
ApplyPersonalization Always
OnInitComplete Always
LoadPageStateFromPersistenceMedium PostBack
LoadControlState PostBack
LoadViewState PostBack
ProcessPostData1 PostBack
OnPreLoad Always
OnLoad Always
ProcessPostData2 PostBack
RaiseChangedEvents PostBack
RaisePostBackEvent PostBack
OnLoadComplete Always
OnPreRender Always
OnPreRenderComplete Always
SavePersonalizationData Always
SaveControlState Always
SaveViewState Always
SavePageStateToPersistenceMedium Always
Render Always
OnUnload Always

 

Sunday, April 29, 2007

195 Free Online Programming Books

Update - Update.. This List has Grown to 345…

ref:http://www.techtoolblog.com/archives/195-free-online-programming-books

Update: - I will be updating this list very shortly, many of the links were taken from http://www.programmingebooks.tk/

How to Be a Programmer
http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
How to Design Programs
http://www.htdp.org/2002-09-22/Book/
Practical Theory of Programming
http://www.cs.toronto.edu/%7Ehehner/aPToP/
Software Engineering for Internet Applications
http://philip.greenspun.com/seia/
Structure and interpretation of computer programs
http://mitpress.mit.edu/SICP/
More programming books http://2020ok.com/3839.htm
The Programmers Stone
http://www.reciprocality.org/Reciprocality/r0/
Subversion Version Control: Using the Subversion Version Control System in Development Projects
http://www.phptr.com/promotions/promotion….84&redir=1&rl=1

Ada

Ada 95 Rational
http://www.adaic.org/standards/95rat/RATht…5-contents.html
Ada 95 Reference Manual
http://www.adahome.com/rm95/
Changes to Ada 1987 - 1995
http://www.oopweb.com/Ada/Documents/Change…lumeFrames.html
Ada 95: The Lovelace Tutorial
http://www.adahome.com/Tutorials/Lovelace/master.htm
The Big Online Book of Linux Ada Programming
http://www.pegasoft.ca/resources/boblap/book.html

Algorithms

Algorithms and Complexity
http://www.cis.upenn.edu/%7Ewilf/AlgComp.html
Programming Algorithms http://2020ok.com/3870.htm
Information Theory, Inference, and Learning Algorithms
http://www.inference.phy.cam.ac.uk/mackay/itprnn/book.html

Assembly

Assembly Language Tutorial
http://www.oopweb.com/Assembly/Documents/a…lumeFrames.html
Programming From the Ground Up
http://download.savannah.gnu.org/releases/pgubook/
Assembly Language Programming http://2020ok.com/3954.htm
Ralph Brown's Interrupt List
http://www.oopweb.com/Assembly/Documents/I…lumeFrames.html
The Art of Assembly Language Programming
http://www.oopweb.com/Assembly/Documents/A…lumeFrames.html
The Assembly Language Database
http://www.oopweb.com/Assembly/Download/NortonGuide.zip
Win32 Programming for x86 Assembly Language Programmers
http://www.oopweb.com/Assembly/Documents/W…lumeFrames.html

C

A Tutorial on Pointers and Arrays in C
http://www.oopweb.com/CPP/Documents/CPoint…lumeFrames.html
C Programming
http://www.oopweb.com/CPP/Documents/CProgr…lumeFrames.html
Object Orientated Programming in ANSI-C
http://www.planetpdf.com/developer/article…?contentid=6635
The C Book
http://publications.gbdirect.co.uk/c_book/
Writing Bug-Free C Code
http://www.duckware.com/bugfreec/index.html
C - Elements of Style
http://www.computer-books.us/c_3.php
Learning GNU C
http://www.linuxtopia.org/online_books/pro…nu_c/index.html

C++

An Overview Of The C++ Programming Langauge
http://www.oopweb.com/CPP/Download/crc.zip
C++ Annotations
http://www.oopweb.com/CPP/Documents/CPPAnn…lumeFrames.html
C++ Annotations
http://www.oopweb.com/CPP/Download/cplusplus.zip
C++ Coding Standard
http://www.oopweb.com/CPP/Documents/CodeSt…lumeFrames.html
C & C++ http://2020ok.com/3956.htm
C++ Course
http://www.oopweb.com/CPP/Download/CPPCourse.zip
C++ How To
http://www.oopweb.com/CPP/Documents/CPPHOW…lumeFrames.html
C++ In Action
http://www.relisoft.com/book/index.htm
C++: A Dialog
http://www.steveheller.com/cppad/cppad.htm
How To Think Like A Computer Scientist with C++
http://www.oopweb.com/CPP/Documents/ThinkC…lumeFrames.html
Introduction To OOP Using C++
http://www.oopweb.com/CPP/Documents/Intro2…lumeFrames.html
Introduction To OOP Using C++
http://www.oopweb.com/CPP/Download/Intro2OOP.zip
Objects First
http://www.oopweb.com/CPP/Documents/Object…lumeFrames.html
Optimizing C++
http://www.steveheller.com/opt/
STL Guide
http://www.oopweb.com/CPP/Documents/STLGui…lumeFrames.html
STL Guide
http://www.oopweb.com/CPP/Download/stl.zip
The Function Pointer Tutorials
http://www.oopweb.com/CPP/Documents/Functi…lumeFrames.html
The Standard Template Library Tutorial
http://www.oopweb.com/CPP/Documents/STL/VolumeFrames.html
Thinking in C++
http://www.planetpdf.com/developer/article…?ContentID=6634
Thinking in C++, Second Edition (Volumes 1 & 2)
http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
An Introduction to C++ Programming
http://www.computer-books.us/cpp_1.php
Programming in C++ - Rules and Recommendations
http://www.computer-books.us/cpp_6.php
A Beginners C++ Book
http://www.uow.edu.au/~nabg/ABC/ABC.html

C++ GUI Programming with Qt 3
http://www.phptr.com/promotion/1484?redir=1
Cross-Platform GUI Programming with wxWidgets
http://www.phptr.com/promotion/1484?redir=1

C#

C# in Detail
http://www.computer-books.us/csharp_0005.php
C# - The Basics
http://www.computer-books.us/csharp_0004.php
C# Language Specification
http://www.computer-books.us/csharp_1.php
Data Structures and Algorithms with Object-Oriented Design Patterns in C#
http://www.computer-books.us/csharp_2.php
C# Programming http://2020ok.com/697342.htm
Dissecting a C# Application - Inside SharpDevelop
http://www.computer-books.us/csharp_3.php
C# tutorial (2 .pdf's)
http://www.ssw.uni-linz.ac.at/Teaching/Lec…Sharp/Tutorial/

CGI

CGI Programming on the World Wide Web
http://www.oreilly.com/openbook/cgi/
CGI Programming http://2020ok.com/4025.htm

COBOL

zingCOBOL - A Beginners Guide to COBOL Programming
http://www.computer-books.us/cobol_0006.php
Teach Yourself COBOL in 21 Days
http://www.computer-books.us/cobol_0005.php
WebSphere Studio COBOL for Windows - Language Reference
http://www.computer-books.us/cobol_1.php
COBOL Programming Course
http://www.computer-books.us/cobol_2.php
COBOL Programming http://2020ok.com/3969.htm
WebSphere Studio COBOL for Windows - Programming Guide
http://www.computer-books.us/cobol_3.php
HP COBOL II/XL Reference Manual
http://www.computer-books.us/cobol_4.php

Databases

MySQL Reference Manual
http://dev.mysql.com/doc/
Database http://2020ok.com/549646.htm
Oracle 10g Database Book and Documentation Library
http://wtcis.wtamu.edu/oracle/

Delphi/Pascal

Delphi 2005 Tutorial for Beginners
http://www.xcalibur.co.uk/training/Delphi2005/index.php
Delphi Training
http://www.xcalibur.co.uk/training/delphi/oldindex.html
Essential Delphi
http://marcocantu.com/edelphi/default.htm
Essential Pascal
http://marcocantu.com/epascal/default.htm
Delphi Language Guide - Delphi For The Microsoft .NET Framework
http://www.computer-books.us/delphi_2.php
Delphi Database Application Developers Guide
http://www.computer-books.us/delphi_1.php

Fortran

Numerical Recipes with Fortran 77
http://www.library.cornell.edu/nr/cbookfpdf.html
Numerical Recipes with Fortran 90
http://www.library.cornell.edu/nr/cbookf90pdf.html
Professional Programmer's Guide to Fortran 77
http://www.computer-books.us/fortran_3.php
User Notes on Fortran Programming (UNFP)
http://www.ibiblio.org/pub/languages/fortran/

HTML

HTML 4.01 Specifications
http://www.oopweb.com/HTML/Documents/HTML4/VolumeFrames.html
Web Development http://2020ok.com/3510.htm
Writing HTML
http://www.oopweb.com/HTML/Documents/Writi…lumeFrames.html

Java

How to Think Like a Computer Scientist with Java
http://www.oopweb.com/Java/Documents/Think…lumeFrames.html
Introduction to Programming Using Java
http://www.oopweb.com/Java/Documents/Intro…lumeFrames.html
Introduction To Programming Using Java
http://www.linuxtopia.org/online_books/pro…ming/index.html
Java Programming Tutorial: Introduction to Computer Science
http://www.oopweb.com/Java/Documents/JavaN…lumeFrames.html
Thinking in Java, 3rd Edition
http://www.mindview.net/Books/TIJ/
Thinking in Enterprise Java
http://www.ibiblio.org/pub/docs/books/eckel/
More Java Books http://kickjava.com/freeBooks.html
Java AWT Reference
http://www.oreilly.com/catalog/javawt/book/index.html
Enterprise JavaBeans
http://www.computer-books.us/java_1.php
Essentials of the Java Programming Language - Part 1
http://www.computer-books.us/java_2.php
Essentials of the Java Programming Language - Part 2
http://www.computer-books.us/java_3.php
Exploring Java
http://www.computer-books.us/java_4.php
Introduction to Computer Science using Java
http://www.computer-books.us/java_5.php
Java Development http://2020ok.com/3608.htm
Java Language Reference
http://www.computer-books.us/java_8.php
Java Servlet Programming
http://www.computer-books.us/java_9.php
Java Web Services Tutorial
http://www.computer-books.us/java_10.php
Java Look and Feel Design Guidelines, Second Edition
http://java.sun.com/products/jlf/ed2/book/index.html
The Design Patterns: Java Companion
http://www.patterndepot.com/put/8/JavaPatterns.htm
1000 Java Tips e-Book
http://javaa.com
Apache Jakarta Commons: Reusable Java™ Components
http://www.phptr.com/promotion/1484?redir=1
Java™ Application Development on Linux®
http://www.phptr.com/promotion/1484?redir=1
Practical Artificial Intelligence Programming in Java
http://www.markwatson.com/opencontent/javaai_lic.htm

Javascript

Voodoo's Introduction to Javascript
http://www.oopweb.com/JavaScript/Documents…lumeFrames.html
Javascript Programming http://2020ok.com/3617.htm

Linux

Linux Device Drivers, Third Edition
http://lwn.net/Kernel/LDD3/
The Linux Development Platform
http://www.phptr.com/promotion/1484?redir=1
Understanding the Linux Virtual Memory Manager
http://www.phptr.com/promotion/1484?redir=1
Self-Service Linux®: Mastering the Art of Problem Determination
http://www.phptr.com/promotion/1484?redir=1
Linux® Quick Fix Notebook
http://www.phptr.com/promotion/1484?redir=1
Managing Linux Systems with Webmin: System Administration and Module Development
http://www.phptr.com/promotion/1484?redir=1
An Introduction to GCC
http://www.linuxtopia.org/online_books/an_…_gcc/index.html
Linux http://2020ok.com/3756.htm
Using the GNU Compiler Collection (GCC)

http://www.linuxtopia.org/online_books/pro…tion/index.html
Bash Reference Guide
http://www.linuxtopia.org/online_books/bas…uide/index.html
Bash Guide for Beginners
http://www.linuxtopia.org/online_books/bas…ners/index.html
Advanced Bash Scripting Guide
http://www.linuxtopia.org/online_books/adv…uide/index.html
Linux Kernel Module Programming Guide
http://www.linuxtopia.org/online_books/Lin…uide/index.html
Red Hat Linux Developer Tools Guide
http://www.linuxtopia.org/online_books/red…uide/index.html
Linux Debugging with gdb Guide
http://www.linuxtopia.org/online_books/red…_gdb/index.html
Using cpp, the C Preprocessor Guide
http://www.linuxtopia.org/online_books/pro…ssor/index.html

Lisp

Loving Lisp - the Savy Programmer's Secret Weapon
http://www.markwatson.com/opencontent/lisp_lic.htm
List Programming http://2020ok.com/3981.htm

Open Source

Rapid Application Development with Mozilla
http://www.phptr.com/promotion/1484?redir=1
Creating Applications with Mozilla
http://books.mozdev.org/chapters/index.html
Free as in Freedom
http://www.oreilly.com/openbook/freedom/index.html
Managing Projects with GNU make, 3rd Edition
http://www.oreilly.com/catalog/make3/book/index.csp
OpenSources: Voices from the Open Source Revolution
http://www.oreilly.com/catalog/opensources/book/toc.html
Understanding Open Source and Free Software Licensing
http://www.oreilly.com/catalog/osfreesoft/book/
Embedded Software Development with eCos
http://www.phptr.com/promotion/1484?redir=1
Open Source Security Tools: A Practical Guide to Security Applications
http://www.phptr.com/promotion/1484?redir=1

Perl

HTMLified Perl 5 Reference Guide
http://www.oopweb.com/Perl/Documents/Perl5…lumeFrames.html
Perl 5 Documentation
http://www.oopweb.com/Perl/Documents/PerlD…lumeFrames.html
Perl for Perl Newbies
http://www.oopweb.com/Perl/Documents/P4PNe…lumeFrames.html
Perl for Win32 FAQ
http://www.oopweb.com/Perl/Documents/PerlW…lumeFrames.html
Picking Up Perl
http://www.oopweb.com/Perl/Documents/Picki…lumeFrames.html
Picking Up Perl
http://www.linuxtopia.org/online_books/perl/index.html
Perl Programming
http://www.2020ok.com/4045.htm
Practical Perl Programming
http://www.oopweb.com/Perl/Documents/ppp/VolumeFrames.html
Beginning Perl
http://www.perl.org/books/beginning-perl/
Impatient Perl
http://www.perl.org/books/impatient-perl/
Extreme Perl
http://www.extremeperl.org/bk/home
MacPerl: Power & Ease
http://macperl.com/ptf_book/r/MP/i2.html
Embedding Perl in HTML with Mason
http://www.masonbook.com/
Perl for the Web
http://www.globalspin.com/thebook/
Practical mod_perl (1st edition)
http://modperlbook.com/
Web Client Programming with Perl
http://www.oreilly.com/openbook/webclient/
Perl 5 By Example
http://www.computer-books.us/perl_0010.php
An Introduction to Perl
http://www.linuxtopia.org/Perl_Tutorial/index.html

PHP

Practical PHP Programming
http://www.hudzilla.org/phpbook/
A Programmer's Introduction to PHP 4.0 -http://www.apress.com/free/
PHP 5 Power Programming
http://www.computer-books.us/php_2.php
PHP Programming http://2020ok.com/295223.htm
Practical PHP Programming
http://www.computer-books.us/php_3.php

Prolog

Adventure in Prolog
http://www.amzi.com/AdventureInProlog/
Building Expert Systems in Prolog -http://www.amzi.com/ExpertSystemsInProlog/
Prolog programming http://2020ok.com/295223.htm
Prolog Programming A First Course
http://computing.unn.ac.uk/staff/cgpb4/prologbook/

Python

Non-Programmers Tutorial for Python
http://rupert.honors.montana.edu/~jjc/easy…ut/easytut.html
Official Python Documentation
http://www.python.org/doc/current/
Text Processing in Python -http://gnosis.cx/TPiP/
Python Reference Manual
http://docs.python.org/ref/ref.html
Python Imaging Library Handbook -http://www.pythonware.com/library/the-python-imaging-library.htm
How to Think Like a Computer Scientist - Learning with Python
http://www.greenteapress.com/thinkpython
Dive Into Python -http://diveintopython.org/
Python Programming http://2020ok.com/285856.htm
Thinking in Python
http://mindview.net/Books/TIPython
A Byte of Python
http://www.ibiblio.org/g2swap/byteofpython/read/

Ruby

Programming Ruby - The Pragmatic Programmer's Guide (First Edition)
http://www.ruby-doc.org/docs/ProgrammingRuby/
Why's (Poignant) Guide to Ruby
http://poignantguide.net/ruby/ <–the funniest programming book I have ever seen!

Samba

Samba-3 by Example: Practical Exercises to Successful Deployment
http://www.phptr.com/promotion/1484?redir=1
Samba-3 by Example: Practical Exercises to Successful Deployment, 2nd Edition
http://www.phptr.com/promotion/1484?redir=1
The Official Samba-3 HOWTO and Reference Guide
http://www.phptr.com/promotion/1484?redir=1
Implementing CIFS: The Common Internet File System
http://www.phptr.com/promotion/1484?redir=1

SQL

Comparison of Different SQL Implementations
http://www.computer-books.us/sql_0004.php
SQL - A Practical Introduction
http://www.managedtime.com/freesqlbook.php3
Introduction To Structured Query Language
http://www.computer-books.us/sql_2.php
Practical PostgreSQL
http://www.opendocspublishing.com/ppbook/

UNIX

FreeBSD Handbook
http://www.freebsd.org/doc/en_US.ISO8859-1…book/index.html
Unix http://2020ok.com/3778.htm
The UNIX-HATERS Handbook
http://research.microsoft.com/%7Edaniel/unix-haters.html

Visual Basic and VB.net

Programming VB.NET - A Guide For Experienced Programmers
http://www.apress.com/free/
Upgrading Microsoft Visual Basic 6.0 to Microsoft Visual Basic .NET
http://msdn.microsoft.com/vbrun/staythepat…s/upgradingvb6/
Visual Basic http://2020ok.com/3996.htm
Introducing Visual Basic 2005 for Developers
http://msdn.microsoft.com/vbrun/staythepat…05/default.aspx

XML

OpenOffice.org XML Essentials
http://books.evc-cit.info/

Misc. stuff that is worth reading

FREE Trade Magazine Subscriptions & Technical Document Downloads http://i.nl03.net/ltr0/?_m=01.009i.nv.mfm.nv
The Future does not compute
http://www.praxagora.com/stevet/fdnc/toc.html
The Cathedral and the Bazaar
http://www.catb.org/~esr/writings/cathedral-bazaar/



--
Happy day, happy life!

Sunday, April 22, 2007

Bug and Defect Tracking Tools

REF:http://www.aptest.com/bugtrack.html

ApTest is your source for software testing. If you're interested in having a product or web site tested or need custom test technology developed please get in touch with us. We'll work with you to understand your needs, and our deliverables will delight you.
 

BUG TRACKING INFORMATION

BUG TRACKING TOOLS

WEB BASED BUG TRACKING

ProductVendorComments
AceProjectWebsystemsFree bug tracking software designed for project managers and developers. Try the demo version and then create your free account.
AdminiTrack AdminiTrack Hosted issue and bug tracking application
ADT Web Borderwave Advanced Defect Tracking Web Edition is a bug-tracking solution designed for small, medium and large software companies to simplify their defect, suggestion and feature request tracking. The software allows you to track defects, feature requests and suggestions by version, customer etc.
Agility AgileEdge Issue and Bug Tracking Software. Agility features a easy to use web-based interface. Key features include fully customizable field lists, workflow engine, and email notifications.
Bug/Defect Tracking Expert Applied Innovation Management Web-based bug tracking software
BugAware.com bugaware Bug tracking solution. Installed and ASP hosted service available. Features include: Email alert notification, knowledge base, dynamic reporting, team management, user discussion threads, file attachment, searching.
bugcentral.com bugcentral.com Web based defect tracking service
BUGtrack SkyeyTech, Inc. Web based defect tracking system
BugHost Active-X.COM BugHost is a feature-complete hosted defect tracking system ideal for small- to medium-sized companies who want a secure, Web-based issue and bug management system. There is no software to install and can be accessed from any Internet connection. Designed from the ground up, the system is easy to use, extremely powerful, and customizable to meet your needs.
BugImpact Avna Int. Professional issue-tracking and project management system.
  • Unlimited: projects, entries/bugs/issues
  • Web access: users access their BugImpact service through a standard Web browser
  • Workflow configurations control: BugImpact installs with a default workflow configuration that can easily be changed or replaced entirely
  • File attachment: details thread may contain attachments, such as screenshots, Excel spreadsheets, internal documents or just any binary files.
  • E-mail notification: the system sends e-mail notification to users when new bugs are assigned or status changes
  • Builds : project(s) may have a specific 'fix-for' version with optional deadline
  • Priority Colorize: custom colors may be associated with different priorities
And many other features.
BugRoster Codeca Corp. Multi-user defect tracking and reporting system that is informative, concise and easy to use. Our licensing and sales model is not complicated and is affordable to all software development organizations and independent/freelance consultants. BugRoster is easy to install and configure on multiple server platforms. BugRoster contains many of the features of other expensive Defect Tracking systems for a lot less.
BugStation Bugopolis Web-based server appliance featuring Bugzilla with many enhancements designed to make Bugzilla easier and more secure. A centralized system for entering, assigning and tracking defects. Configurable and customizable.
Bug TrackerCrimsonLink Web-based defect and bug tracking solution to track product defects, manage product enhancement requests and help you manage tasks during product development. The software helps you follow your defect resolution process and work the defect from initiation to closure. By using this solution you can greatly enhance product quality and customer satisfaction. Increase your team productivity, avoid redundant work, reduce the product release cycle and accelerate the time to market.
Bug Tracker Software Bug Tracker Software Web based defect tracking and data sharing
Bug Tracking Bug-Track.com Free defect tracking system. Our system is fast and easy to use. We offers email notification, file attachment, tracking history, bilingual pages, 128-bit encryption connection and advance customization. Free demo.
Bugvisor softwarequality, Inc. Enterprise solution for capturing, managing and communicating feature requests, bug reports, changes and project issues from emergence to resolution with a fully customizable and controllable workflow
Bugzero WEBsina Web-based, easy-to-install, cross-platform defect tracking system
Bugzilla Bugzilla.org Highly configurable Open source defect tracking system developed originally for the Mozilla project
Census BugTrackMetaQuestFully customizable bug tracking and defect tracking tool. Includes VSS integration, notifications, workflow, reporting and change history.
DefectTracker Pragmatic Software Subscription-based bug/problem tracking solution
Defectr Defectr A free online defect tracking and project management tool developed using IBM Lotus Domino and Dojo Ajax framework.
DevTrack TechExcelWeb-based defect- and project-tracking tool for software development teams. DevTrack comprehensively tracks and manages all defects, change requests, feature enhancements, and all other development issues. Intuitive and powerful, DevTrack provides workflow and process automation features, robust searching and reporting, and comprehensive point-and-click customization.
Dragonfly Vermont Software Testing Group Web-based, cross-browser, cross-platform issue tracking and change management for software development, testing, debugging, and documentation. It is available by subscription or for purchase as a self-hosted intranet/Internet application.
ExDesk ExDesk Bug and issue tracking software, remotely hosted, allows you to tracking software bugs and route them to multiple developers or development groups for repair with reporting and automatic notification.
FogBUGZ Fog Creek S/W Web-based defect tracking. Free eval, 90 day money back guarantee.
Fast BugTrack AlceaTech Web-based bug tracking
Footprints Unipress Web-based issue tracking and project management tool
GranPM Gran Ltd. Free defect tracking service. Bug and user hierarchy, complex security, persistent task filters, file uploading, submit bugs from your site, e-mail notification and employee timesheet tracking.
IssueTrak Help Desk Software Central Offers issue tracking, customer relationship and project management functions.
JIRA atlassian J2EE-based, issue tracking and project management application. Extensible via Java API.
Jitterbug Samba Freeware defect tracking
JTrac   Generic issue-tracking web-application that can be easily customized by adding custom fields and drop-downs. Features include customizable workflow, field level permissions, e-mail integration, file attachments and a detailed history view.
Mantis   Lightweight and simple bugtracking system. Easily modifiable, customizable, and upgradeable. Open Source.
MyBugReport Bug Tracker Online testing tool that allows the different participants working on the development of a software or multimedia application to detect new bugs, to ensure their follow-up, to give them a priority and to assign them within the team.
Ozibug Tortuga Technologies Platform-independent defect tracking system. Written in Java, it utilizes servlet technology and offers features such as reports, file attachments, role-based access, audit trails, email notifications, full internationalization, and a customizable appearance. Two editions of Ozibug are available, the fully featured Enterprise Edition including support and upgrades is available for purchase online through a secure payment server, while the basic Community Edition is available at no cost.
Perfect Tracker Avensoft Web-based defect tracking
ProblemTracker NetResults Web-based collaboration software for issue tracking; automated support; and workflow, process, and change management.
ProjectLocker ProjectLocker Hosted source control (CVS/Subversion), web-based issue tracking, and web-based document management solutions.
PR Tracker Softwise Company Records problem reports in a network and web-based database that supports access by multiple users. Features include classification, assignment, sorting, searching, reporting, access control, & more.
QEngine AdventNet 100% web-based issue management software that offers you the facility of tracking and managing bugs, issues, improvements, and features. It provides role based access control, attachment handling, schedule management, automatic e-mail notification, workflow, resolution, worklogs, attaching screenshots, easy reporting, and extensive customization. The free version is completely functional and can be used for a maximum of 2 users.
SpeeDEV SpeeDEV Start using this from the very beginning of the project to track any kind of issue (Business, Technical, Bugs, Infrastructure); Rule-based assignment of issues for resolution; Notification/ Reminder for deadlines; Tracing Issues back to Requirements; Statistical Matrix for analysis. A complete visual design of a multi level rol based process can be defined for different types of issues with conditional branching and automated task generation.
Squish Information Management Systems, Inc. Web based issue tracking
Task CompleteSmart Design Te TaskComplete enables a team to organize and track software defects using with integrated calendar, discussion, and document management capabilities. Can easily be customized to meet the needs of any software development team.
teamaticTeamatic Free enterprise defect tracking system
TeamTrakTeamshare Problem tracking system
TrackStudioTrackStudio Flexible and customizable Java-based defect tracking software. Supports workflow, multi-level security, rule-based email notification, email submission, subscribe-able filters, reports. Has skin-based user interface. Supports ORACLE, DB2, MS SQL, Firebird, PostgreSQL, Hypersonic SQL and more. It may or may not be free, depending on how you intend to use it.
VisionProjectVisionera AB Web based issue tracking and project collaboration tool designed to make projects more efficient and profitable.
Woodpecker ITAVS GmbH Web-based request, issue or bug tracking tool. You can use it for performing request, version or bug management. Its main function is recording and tracking issues, within a freely defined workflow.
yKAPDCom Solutions Uses XML to deliver a powerful, cost effective, Web based Bug/Defect tracking, Issue Management and Messaging product. Apart from having a pleasing interface and being easy to learn, yKAP features include support for unlimited projects, test environments, attachments, exporting data into PDF/RTF/XLS/HTML/Text formats, rule-based email alerts, exhaustive search options, saving searches (public/ private), Auto-complete for user names, extensive reports, history, custom report styles, exhaustive data/trends analysis, printing, role-based security. Apart from pre-defined values, yKAP allows the user to add custom values for system parameters such as Status, Defect cause, Defect type, priority, etc. yKAP is installed with complete help documentation.

Return to Top of Page

BUG TRACKING APPLICATIONS

ProductVendorComments
assyst Axios Systems Offers a unique lifecycle approach to IT Service Management through the integration of all ITIL processes in a single application.
BridgeTrak Kemma Software Record and track development or customers issues, assign issues to development teams, create software release notes and more. Free trial.
BugRat Giant Java Tree Free Java software that provides a defect reporting and tracking system. Bug reporting by the Web and email.
BugSentry IT Collaborate Automatically and securely reports errors in .NET and COM applications. BugSentry provides a .NET dll (COM interop version available too) that developers ship with their products. Call the BugSentry.Sentry.Report() method to securely submit an issue. BugSentry will encrypt the issue with your public key, cache it locally, and try to send it to the BugSentry server. When received, BugSentry sends the developer and email. The developer can use a desktop client to download and decrypt issues. It is a fully hosted solution. No server necessary.
Bug Trail Osmosys Capture and track all your software bugs with Bug Trail. This easy to use tool allows you to attach screenshots, automatically capture system parameters and create well formatted MS-WORD and HTML output reports. Customizable defect status flow allows small to large organizations configure as per their existing structure.
Defect Agent Inborne Software Defect tracking, enhancement suggestion tracking, and development team workflow management software. Site license fee $399
Defect Manager Tiera Software Manages defects and enhancements through the complete entire life cycle of product development through field deployment
Fast BugTrack Alcea Bug Tracking / Defect Tracking / Issue Tracking - Change Management Software (work flow/process flow)
GNATS GNU Freeware defect tracking software.
InterceptElsinore Technologies Bug tracking system designed to integrate with Visual SourceSafe and the rest of your Microsoft development environment
IssueView IssueView SQL server based bug tracking with Outlook style user interface.
JIRA Atlassian Browser-based J2EE defect tracking and issue management software. Supports any platform that runs Java 1.3.x.
ProjecTrak Eden Communications Lotus Notes based defect reporting and tracking
QAW B.I.C Quality Developed to assist all quality assurance measurements within ICT-projects. The basic of QAW is a structured way of registration and tracking issues (defects).
PVCS Tracker Merant Automated issue management system, available as a standalone product or hosted service. Captures, manages, and communicates the myriad issues, change requests, development tasks, and other day-to-day items that constitute your organization's daily workflow. Team members are relieved of time-consuming manual task management, and managers can pull reports from real-time data to support project decisions with facts rather than guesswork.
QuickBugs Excel Software Tool for reporting, tracking and managing bugs, issues, changes and new features involved in product development. Key attributes include extreme ease-of-use and flexibility, a shared XML repository accessible to multiple users, multiple projects with assigned responsibilities, configurable access and privileges for users on each project. Virtually everything in QuickBugs is configurable to the organization and specific user needs including data collection fields, workflow, views, queries, reports, security and access control. Highly targeted email messages notify people when specific events require their attention.
Support TrackerAcentre Web enabled defect tracking application, one of the modules of the Tracker Suite software package. Support Tracker is based on Lotus Notes, allowing customers to leverage their existing Notes infrastructure for this bug tracking solution. Because Tracker Suite is server-based, Support Tracker installs with zero-impact on the desktop. User can create, track, and manage requests through Notes or over the Web. Requests are assigned, routed, and escalated automatically ts via Service Level Agreements, for proper prioritization and resource allocation. Support Tracker also features FAQ and Knowledgebase functionality.
SWBTrackersoftware with brains Bug tracking system
TestTrack ProSeapine Software Delivers time-saving features that keep everyone, involved with the project, informed and on schedule. TestTrack Pro is a scalable solution with Windows and Web clients and server support for Windows, Linux, Solaris, and Mac OS X, integration with MS Visual Studio (including .NET) and interfaces with most major source code managers including Surround SCM, and automated software testing tool, QA Wizard, along with other Seapine tools. Download a free Eval.
TrackSoffront Defect tracking system
ZeroDefectProStyle Issue management


--
Happy day, happy life!

Tuesday, April 10, 2007

Re: Re: 我们需要怎样的教育

in my opinion,the fear is false,the lazy is real.
we should never be diligent selectively,
but usefully.
seems terrible and uncomforable
but as long as you really regard the bitterness as the pleasure!

as for the educaton,there is too too much about it.
ideological education:
set examples by the elites is just the most important,but anthing left except the corruption?
science education:
i and the most majority of the budies here have lent most of them to our teachers.



> 我的理解是:恐惧不完全是坏事情,恐惧能够提醒我们分辨思考,帮助我们逃避危险。但是当恐惧变成一种巨大的精神负担和无底深渊时,对恐惧的态度是至关重要的:是平和的接受然后思考分析,还是又产生了对当前这种恐惧状态的恐惧,我觉得这是书中探讨的"智慧"-
> "它是一种无限的包容力,允许你自由地思想;没有恐惧,没有公式, 然后你才能发现什么是真实的、正确的事物。
> "如果教育能上升到人性化的教育,现在人们的问题就会少得多了。那教育该由谁来承担呢?我觉得不是一个人、一个家庭、一所学校的责任。我们时时刻刻都在接受教育,也在教育着别人,从自己的生活、工作、自己的家人、朋友、同学、周围所有认识和不认识的,看到的、听到的、想到的、有生命的和没有生命的,每一个都值得我们学习思考。想想那些影响我们生命历程的曾经的陌生人,你就能想象得到我们又是在如何影响别人的生活?过去的都已经过去,不要让过去成为我们成长路上的负担,忘记过去,除了感激什么都不要留下,让我们重新开始吧!
>
> --~--~---------~--~----~------------~-------~--~----~
> You received this message because you are subscribed to the Google Groups "Not Waste our youth" group.
> To post to this group, send email to not-waste-our-youth@googlegroups.com
> To unsubscribe from this group, send email to not-waste-our-youth-unsubscribe@googlegroups.com
> For more options, visit this group at http://groups.google.com/group/not-waste-our-youth?hl=en
> -~----------~----~----~----~------~----~------~--~---
>
>




===============================================
快来和我一起享受TOM免费邮箱吧! 看看除了1.5G,还有什么?

看看女人都在聊什么? 美图尽赏 聊天世界

明星金曲免费送(http://mm.tom.com/ivr/):周杰伦 林俊杰 庞龙 张惠妹

劲爆歌曲尽情点(http://mm.tom.com/ivr/):霍元甲 吉祥三宝 人质 曹操

炫酷彩铃免费送(http://mm.tom.com/cailing/):周杰伦帮你接电话 麻烦女朋友 七里香 小城故事
===============================================

Re: 我们需要怎样的教育

我的理解是:恐惧不完全是坏事情,恐惧能够提醒我们分辨思考,帮助我们逃避危险。但是当恐惧变成一种巨大的精神负担和无底深渊时,对恐惧的态度是至关重要的:是平和的接受然后思考分析,还是又产生了对当前这种恐惧状态的恐惧,我觉得这是书中探讨的"智慧"- "它是一种无限的包容力,允许你自由地思想;没有恐惧,没有公式, 然后你才能发现什么是真实的、正确的事物。 "如果教育能上升到人性化的教育,现在人们的问题就会少得多了。那教育该由谁来承担呢?我觉得不是一个人、一个家庭、一所学校的责任。我们时时刻刻都在接受教育,也在教育着别人,从自己的生活、工作、自己的家人、朋友、同学、周围所有认识和不认识的,看到的、听到的、想到的、有生命的和没有生命的,每一个都值得我们学习思考。想想那些影响我们生命历程的曾经的陌生人,你就能想象得到我们又是在如何影响别人的生活?过去的都已经过去,不要让过去成为我们成长路上的负担,忘记过去,除了感激什么都不要留下,让我们重新开始吧!

Monday, April 09, 2007

Re: 我们需要怎样的教育

can education should really handle this matter???
i can't but say that the fear is tied up with life beings.
no life being,then no fear.
of course,it perhaps can teach us how to live naturally,hahaha



> 除非教育能帮助你了解广大生命的所有精微面,否则教育是没有什么意义的。
>
> 我们通过一些考试,找到一份工作,结婚,生子,然后就越活越像一部机器。我们依然对生命恐惧、焦虑,因此帮助我们了解人生的整个过程,难道不是教育的目的?还是,教育只为我们谋职或找一份最好的工作而奠基?
>
> 教育的真正意义,难道不是培养你的智慧,借着它找出所有问题的答案? 你知道智慧是什么吗?它是一种无限的包容力,允许你自由地思想;没有恐惧,没有公式,
> 然后你才能发现什么是真实的、正确的事物。
>
> 但是如果你有恐惧,你永远也不可能有智慧。
>
> 如果你的心中有恐惧,你就不能探索、观察、学习,不能深入地察觉。所以,教育的意义很显然就是消除外在的及内在破坏人类思想、关系及爱的那份恐惧。
>
>
> 摘于 《人生中不可不想的事》-----克里希那穆提 著
>
> --
> Happy day, happy life!
>
> --~--~---------~--~----~------------~-------~--~----~
> You received this message because you are subscribed to the Google Groups "Not Waste our youth" group.
> To post to this group, send email to not-waste-our-youth@googlegroups.com
> To unsubscribe from this group, send email to not-waste-our-youth-unsubscribe@googlegroups.com
> For more options, visit this group at http://groups.google.com/group/not-waste-our-youth?hl=en
> -~----------~----~----~----~------~----~------~--~---
>
>




===============================================
快来和我一起享受TOM免费邮箱吧! 看看除了1.5G,还有什么?

看看女人都在聊什么? 美图尽赏 聊天世界

明星金曲免费送(http://mm.tom.com/ivr/):周杰伦 林俊杰 庞龙 张惠妹

劲爆歌曲尽情点(http://mm.tom.com/ivr/):霍元甲 吉祥三宝 人质 曹操

炫酷彩铃免费送(http://mm.tom.com/cailing/):周杰伦帮你接电话 麻烦女朋友 七里香 小城故事
===============================================