Home Contact

Jakub Malinowski's blog

The blog about ASP.NET

News

Polish .Net community: .netomaniak.pl

Tag Cloud


Archives

Post Categories

Syndication:

Dynamic Data Preview 4

Wczoraj (tj. 06.05.2009) pojawił się nowy preview - Preview 4 bibliotek CRUD dla ASP.NET, a więc Dynamic Data. W moim moralnym obowiazku jako fana DD znajduje się w związku z tym opisanie nowego release’u. Ten post zapoczątkuje serię na temat Dynamic Data, w wersji aktualnej, a później Futures, tak aby przekonać programistów ASP.NET, że Dynamic Data nie gryzie.

 

Do kogo jest skierowany ten post?

Głównie do ludzi, którym Dynamic Data się przyda. Więc raczej nie do tych, którzy pracują nad projektami klasy Enterprise, potężnymi aplikacjami wymagającymi sporej skalowalności, a do tych, którzy pracują nad projektami mniejszymi, zwłaszcza tymi które nie wymagają szczególnej szybkości działania, czy skalowalności. Wynika to przede wszystkim z faktu, że DD nie jest szczególnie szybkie. Warto wspomnieć, iż DD jest z samej nazwy dynamiczne i to powoduje, że przy każdym request’cie snuje się za nami Reflection wczytujące z klas zarządzających danymi model. Reszta już w miarę działa, ale Reflection niestety jest poważnym obciążeniem dla serwera.  Wniosek prosty: Jeśli chcesz sprawdzic, czy to jest dla Ciebie – zrób sobie benchmark. Ściągnij release z Codeplex, a następnie w global.asax z wybranego projektu podmień klasę modelu na swój model. Jeśli prędkość Cię zadowoli wróć tutaj, bo tu znajdziesz sporo ciekawych informacji o DD.

 

Nowy preview Dynamic Data – i co z tego?

Ano, parę ciekawych usprawnień – weźmy np. nowy, superprzyspieszony sposób rejestrowania modelu – przykład skradziony z samples.

Szybko wrzucamy na stronę GridView:

    5 <html xmlns="http://www.w3.org/1999/xhtml" >

    6 <head runat="server">

    7     <title></title>

    8 </head>

    9 <body>

   10     <form id="form1" runat="server">

   11     <div>

   12 

   13         <asp:GridView ID="GridView1" runat="server" AutoGenerateEditButton="true"

   14             onrowcancelingedit="GridView1_RowCancelingEdit"

   15             onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating">

   16         </asp:GridView>

   17 

   18     </div>

   19     </form>

   20 </body>

   21 </html>

W kodziku:

    7     public partial class DataTableSample : System.Web.UI.Page {

    8         DataTable dataTable;

    9         protected void Page_Init() {           

   10             // Get DataTable

   11             dataTable = Products.GetProductsTable();

   12 

   13             // Add some metadata

   14             var productNameMd = dataTable.Columns["ProductName"].ExtendedProperties;

   15             productNameMd["Required"] = true;

   16             productNameMd["UIHint"] = "FooBar";

   17 

   18             GridView1.EnableDynamicData(dataTable);

   19         }

   20 

   21         protected override void OnPreRender(EventArgs e) {

   22             GridView1.DataSource = dataTable;

   23             GridView1.DataBind();

   24             base.OnPreRender(e);

   25         }

   26 

   27         protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) {

   28             GridView1.EditIndex = e.NewEditIndex;

   29         }

   30 

   31         protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) {

   32 

   33         }

   34 

   35         protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) {

   36 

   37         }

   38     }

   39 }

A za darmo dostajemy coś takiego:

Dynamic Data Preview 4 Screen 

Mamy tu inline editing, walidację po stronie serwera i klienta, możliwość customizowania wyglądu i parę innych bajerów, o których napiszę wkrótce. Ale generalnie – mamy to wszystko przy pomocy jednej linii kodu ( GridView1.EnableDynamicData(dataTable); ), bo reszta to zwykłe bindowanie danych do GridView i dodanie prostej walidacji (to powinno było zostać wykonane w modelu). Zobacz przykład SimpleDynamicDataSamples, a poczujesz o co chodzi. A chodzi tu o coś, co uczyniłoby z DD niesamowitą platformę CRUD już teraz, gdyby nie błędny sposób reklamowania jej przez twórców.

 

Podoba mi się to!

Mi też się podoba – możesz więc tak jak ja zacząć z tego korzystać tak szybko, jak to możliwe. Ale jeszcze poświeć chwilę – zrób benchmark i sprawdź czy DD nie jest za wolne dla Ciebie – jeśli nie, to witaj w gronie szczęśliwych użytkowników Dynamic Data.

 

I to wszystko tak po prostu?

Niestety nie, życie byłoby wtedy za łatwe – na te bajery musisz poczekać do .Net 4.0, bo po zobaczeniu tego na pewno nie wystarczy Ci to, co jest dostępne dziś – ale zawsze możesz spróbować.

 

Wymagania

Dla dzisiejszej platformy i dla Futures .Net 3.5 SP1 i Full Trust, dla finalnej to na 90% będzie .Net 4.0 i Full Trust environment.

 

Spójrz tu w wolnym czasie

Strona Microsoftu o Dynamic Data

Na blogu Scotta Huntera o Preview 4


Thursday, May 07, 2009 6:35 PM
Comments have been closed on this topic.