четверг, 28 января 2010 г.

50 вопросов по ASP.Net

1. Спользование WebMethods на страницах.
  -
  - PageMethods.wmMyMethod(3, onSucceeded, onFailed);
  - using System.Web.Services;
  - [WebMethod]
    public static string wmMyMethod(int keyValue) {
      return keyValue * 2;
    }

2. MasterPage
 - <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="SiteMaster.master.cs" Inherits="SiteMaster" %>
  
 - <%@ Page Language="C#" MasterPageFile="~/SiteMaster.Master" AutoEventWireup="true" CodeBehind="pgDefault.aspx.cs" Inherits="pgDefault" %>
   <%@ MasterType VirtualPath="~/SiteMaster.Master" %>
  

3. Жизненый цикл обработки страницы (Page processing life cycle.)
  - User->Request page->Browser->WebServer
  - Step 1 (page request). Compile page or Pull it from cache
  - Step 2 (start). Set Request and Response, determine IsPostBack
  - Step 3 (page init). Initialize page controls (but not their properties). Apply page theme.
  - Step 4 (load). If PostBack, load control properties from view state
  - Step 5 (validation). Validate page and validator controls
  - Step 6 (PostBack event handling). Call Control event handlers (for PostBack requests)
  - Step 7 (rendering). Save view state

  WebServer->Browser->User

  - Step 8 (unload). Unload request and response. Perform cleanup. Disacard the page

4. События обработки страницы (Page Life Cycle Events)
  - PreInit. Первый event используется для указания MasterPage или Темы из кода, также для создания динамических контролов.
  - Init. Вызывается после инициализации каждого контрола
  - InitComplete. Вызыватся после инициализации страницы и всех контролов.
  - PreLoad. Полезен для операций после инициализации, но до загрузки ViewState.
  - Load. Страница инициализирована и состояние реконструровано, сначала вызывается для страницы, потом для контролов на ней. Код обычно проверяет IsPostBack и затем инициализирует свойства контролов.
  - Control (PostBack) event(s). Вызов событий контролов или страницы которые инициировали событие PostBack
  - LoadComplete. На этом этапе, все контролы загружены. Место для дополнительной обработки.
  - PreRender. Для финальных измненений страницы или контролов на странице
  - SaveStateComplete. До этого события, ViewState уже задан. Используется для обработки которая требует что бы ViewState был уже задан.
  - Render. Для генерации HTML, DHTML, Scripts для своих пользовательских контролов
  - UnLoad. Для освобождения Управляемых (Managed) ресурсов использованых в процессе обработки страницы

5. Что такое фильтры ответов Response Filters:
Когда обозреватель запрашивает ASP.NET-страницу с веб-сервера, движок ASP.NET обрабатывает запрос в несколько шагов, результатом которых  будет разметка, возвращенная запрашиваемому обозревателю для последующего отображения. Этапы данного процесса иногда называют HTTP- конвейером , который может выполнить такие задачи, как идентификация, авторизация, а также заставить запрашиваемую страницу обработать свое содержимое. На одном из последних этапов HTTP-конвейера обработанная разметка передается фильтру ответов (response filter), который (при наличии) имеет возможность исследовать и изменить разметку до того, как она будет возвращена запрашиваемому обозревателю.

void Page_Load(){ Response.Filter = new ResponseFilterClassName(Response.Filter)}
 
public class WhitespaceFilterVB: MemoryStream {
  private Stream outputStream = null;
  public void New(Stream output) { outputStream = output; }
  public overrides void Write(Byte[] buffer,int offset, int count){}
} 

6.

1 комментарий:

  1. вы уверены что в событии страницы PreLoad - ViewState еще не загружен ? MSDN утверждает обратное: http://msdn.microsoft.com/en-us/library/ms178472.aspx

    ОтветитьУдалить