ASP.NET.in.a.Nutshell.Second.Edition [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

ASP.NET.in.a.Nutshell.Second.Edition [Electronic resources] - نسخه متنی

G. andrew Duthie; matthew Macdonald

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید












2.2 Application Structure and Boundaries



Although
it is convenient, for the sake of discussing application types, to
divide ASP.NET applications into web applications and web services,
the truth is that from a practical standpoint, ASP.NET applications
can be comprised of both types; an ASP.NET Web Application may
contain


.asmx files that implement web services,
and a web service application may contain


.aspx
files that implement user interfaces for web services or
functionality contained in .NET assemblies. Thus, from the standpoint
of application structure, ASP.NET Web Applications and ASP.NET Web
Services are quite similar.



2.2.1 Application Structure



The structure of an ASP.NET application consists of a site or virtual
directory in IIS and at least one ASP.NET page or web service.
Optionally, each ASP.NET application may have:



  • A single
    global.asax file, located in the root
    of the application.



  • One or more


    web.config files. There can be only
    one


    web.config file per directory or
    subdirectory in the application.



  • One or more User Control files bearing the


    .ascx
    extension.



  • One or more class files, either for ASP.NET code-behinds or for
    assemblies used in your application.



  • A /bin directory containing .NET assemblies you
    wish to use in your application. Assemblies in the


    /bin directory are automatically made available
    to your application.



  • ASP.NET Web Applications created in Visual Studio .NET contain
    Solution and Project-related files (


    .sln ,


    .suo ,


    .vbproj , and


    .csproj , for example), and an optional default
    cascading style sheets file (


    .css ). These
    applications may also optionally contain resource files
    (


    .resx) , dataset and/or XML schema definitions
    (


    .xsd ), and other file types.



  • Any other type of file (


    ,


    .asp , images, etc.) that you'd
    expect a classic web application to contain. Note, however, that


    .asp pages within an ASP.NET application will
    not share an Application and Session state with the ASP.NET
    application.




Figure 2-3 provides a visual explanation of how an
ASP.NET application is structured.



Figure 2-3. Structure of an ASP.NET application



2.2.2 Application Boundaries



In
ASP.NET, as in classic ASP, the boundary of an application is
determined primarily by the site or virtual directory defined for
that application in IIS. Requests for ASP.NET pages or web services
that reside within that site or virtual directory and its
subdirectories are treated as part of the application and have access
to application-specific items such as the Application and Session
intrinsic objects (provided, respectively, by the
HttpApplicationState and
HttpSessionState classes). They also share
resources with other requests to the application.



2.2.3 Request Lifecycle and Handling



When a request comes in from a
client for a file within the purview of IIS (i.e., an HTTP request
for a file within one of the sites or virtual directories set up in
IIS), IIS checks the file extension of the file being requested and
then checks its mapping of file types to handler programs to
determine which program should be used to process the request. In the
case of a classic ASP application, a request for a file with the


.asp extension is handled by the


asp.dll ISAPI application. The App Mappings tab
of the Application Configuration dialog for IIS, shown in Figure 2-4, allows you to view and modify the mappings of
file extensions to the executables used to handle those extensions,
as well as to determine the HTTP verbs (GET, POST, etc.) that qualify
the mapping.



Figure 2-4. The IIS Application Configuration dialog



Requests for files with the


.aspx and


.asmx extensions and for other ASP.NET-related
files are handled by the


aspnet_wp.dll ISAPI
application. This application, in turn, hands the requests off to the


aspnet_wp.exe worker process. Once the request
is handed off to the ASP.NET worker process, it handles the rest of
the processing by:



  • JIT (just in time)-compiling the code in the page (and in any
    code-behind page identified with the src
    attribute) if no cached compiled version of the requested resource
    exists.



  • Executing the compiled assembly associated with the page or web
    service, including refreshing any control or page state from a
    previous request, handling events raised by the request, and
    rendering the appropriate output to the client.



  • Releasing used resources and discarding any transient state
    information (information not stored in either the Application or
    Session state collections).




With the exception of the Application state collection, which is
available to all clients within a given ASP.NET application, and the
Session state collection, which is associated with a specific client
by a value either stored in an HTTP cookie on the client or munged
into the URL for the application, each individual request to the
application is independent from any other, even for that client.


The practical effect is that each request must contain sufficient
information to successfully process the requestwhether that
information comes from form fields passed from the client,
information stored in the Application or Session collections, or even
information from cookies or a database.



/ 873