12/16/2007 5:07:40 PM

Прикрутил Windows Live Alerts.

Tags:

12/10/2007 11:13:00 PM

Наконец-то вышел комьюнити превью расширений ASP.NET 3.5

В него входит целый набор интересных и полезных вещей:

ASP.NET MVC

Это та вещь, которую лично я хотел посмотреть больше всего - Model-View-Controller фреймворк для ASP.NET.
Кратко: вся логика работы с моделью располагается в контроллерах, каждый раз, когда пользователь приходит по адресу, скажем, "/Products/Categories/75" запрос автоматически обрабатывается классом контроллера, который может иметь примерно такую структуру:

 

public class ProductsController : Controller
{
    [
ControllerAction]
   
public void Categories(int parentId)
    {
       
//TODO: Do something
       
this.RenderView("Category");
    }
}

При этом весь URL Mapping "ложится на плечи" фреймворка. Естественно, это далеко не все, там и этот самый URL Mapping настраивается, и View с параметрами (а иначе что отображать-то?), и автоматическая загрузка данных из формы view в объект модели, и юнит-тестирование, и многое другое.
Подробнее можно прочитать (с картинками! ;)) "от первого лица":

  • ASP.NET MVC Framework (Part 0): What is it?
  • ASP.NET MVC Framework (Part 1): Building an MVC Application 
  • ASP.NET MVC Framework (Part 2): URL Routing
  • ASP.NET MVC Framework (Part 3): Passing ViewData from Controllers to Views
  • ASP.NET MVC Framework (Part 4): Handling Form Edit and Post Scenarios
  • Поддержка Silverlight и Ajax

    Для того, чтобы сделать на сайте, например, видеоплейер, достаточно добавить контрол:

    <asp:MediaPlayer
           
    MediaSource=http://mysite/mymedia
            MediaSkin="Professional" />

    Естественно, это будет Silverlight, который будет работать на Windows и MacOS в Сафари, Файрфоксе и, разумеется, ИЕ.
    Кроме этого, добавился элемент <asp:Silverlight ...>, позволяющий легко "подключать" silverlight-объекты.

    Что же касается Ajax, то тут существенно улучшена поддержка истории браузера.

    Dynamic Data

    Некоторое время назад я писал о том, что неплохо было бы иметь контрол, отображающий данные переданного объекта (любого) с возможностью валидации. И даже делал такой контрол сам.

    Теперь это возможно с помощью "фичи", которая называется "dynamic data". Здесь мы имеем ряд новых контролов: DynamicDetailsView, DynamicFormView, DynamicGridView и DynamicListView, которые позволят добиться и этого и еще всякого другого.

    Например, если мы напишем:

    <DyanamicGridView id="DynamicGridView" runat="server" 
                                 
    DataSourceID="LinqDataSource1" />

    <asp:LinqDataSource ID="LinqDataSource1" runat="server"
                                   
    ContextTypeName="NorthwindDataContext"
                                   
    TableName="Products" />

    то получим грид, отображающий таблицу Products (представленную в виде модели LINQ to SQL, разумеется) с возможностью изменения\добавления\удаления данных непосредственно в контексте данных (NorthwindDataContext) и валидацией.

    Замечательно так же и то, что в случае, если поля в базе данных связаны по ключу, то вместо безликого числа CategoryId в списке будет отображаться имя этой самой категории, взятое из связанной таблицы!

    Правила же валидации примерно такие же, как и те, что делал я в своем контроле:

    • Для строкового значения валидируется длина строки
    • Для поля, значением которого не может быть null, валидируется обязательность заполнения
    • Для полей типа даты, дробных или целых чисел выполняется валидация типа.

    Более того, возможности можно расширить с помощью атрибутов Required, Range, Regex и DisplayFormat, "пометив" ими объект модели самостоятельно.

    Подробнее о расширениях ASP.NET 3.5 можно посмотреть и почитать на страницах QuickStart: http://quickstarts.asp.net/3-5-extensions/default.aspx

    Tags:

    Powered by BlogEngine.NET 2.5.0.6

    About the author

    Alexey Raga Alexey Raga
    .NET software developer.

    E-mail me Send mail

    Twitter


    Recent posts

    Archive

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2012

    Sign in