ASP.NET vNext – Strongly Typed Data Controls


Merhaba ASP.NET Severler,

.NET vNext ve Visual Studio 2011 içerisinde bir dizi yeni özellik ve beceriler geldi. Aslında build konferansında bu güzel haberleri alalı yaklaşık 4 ay oldu. ASP.NET vNext ile Web Forms ve MVC ile benim uzun zamandır beklediğim bir takım heyecan verici gelişmeler oldu ve olmayada devam edecek. Hep birlikte göreceğiz.

Bu yazım bir yazı dizisi olarak sunacağım ASP.NET vNext özelliklerininin ilk yazısıdır. Sizlere bugün benim ASP.NET’te beklediğim ve MVC’de kullandığım Strongly Type’in DataControllere uygulanmış hali olan “Strongly Typed Data Controls“‘den bahsedeceğim. Eminim okuduğunuzda sizide heyecanlandıracaktır.

DataControllerin DataTemplate’lerini Kullanma

ASP.NET Web Forms içerisinde Template mantığını ilk release’den beri kullanıyoruz. Template içeriğini kendi istediğimiz gibi değiştirebiliyoruz. Örneğin DataControll’lerden Repeater’a MSSQL Örnek Veritabanlarından Northwind’teki Products tablosunu datasource olarak verelim:

DataSource

            SqlDataAdapter adap = new SqlDataAdapter(“SELECT * FROM Products”,”Server=mcansozeri-pc\\MCS; Database=Northwind; Trusted_Connection=TRUE”);
            DataTable dtProducts = new DataTable();
            adap.Fill(dtProducts);
            repeaterProducts.DataSource=dtProducts;
            repeaterProducts.DataBind();

Repeater Template Tasarımı

        <ul>
            <asp:Repeater runat=”server” ID=”repeaterProducts”>
                <ItemTemplate>
                    <li>ProductID:
                        <%#Eval(“ProductID”) %>
                        <br />
                        <ul>
                            <li>ProductName:
                                <%# Eval(“ProductName”) %>
                                <br />
                            </li>
                            <li>UnitPrice: <%# Eval(“UnitPrice”,”{0:C}”) %></li>
                            <ul>
                    </li>
                </ItemTemplate>
            </asp:Repeater>
        </ul>

Bu şekilde kullanımda Eval ile veya Bind ile değerleri çektiğimizde intellisense’ten mahrum kalarak ve kolon isimlerini doğru yazarak kullanmak zorundayız. Fakat ASP.NET vNext ile bu sorun çözüldü.

Strongly Typed Data Controls

ASP.NET’in gelecek release’inde strongly-typed data template’ler kullanılabilecek. DataControllere gelen yeni “ModelType” özelliğini kullanarak data control içerisinde hangi tipi kullanacağımızı ekleyebiliyoruz. Bu özellik bize: Item ve BindItem adında iki ifade sunuyor. Item kullanımı Eval’e, BindItem kullanımıda Bind’a karşılık gelmektedir.

Örneğime başlamadan öncelikle ADO.NET Entity Data Model eklediğimi belirtmek istiyorum.

 

DataSource

            NorthwindEntities entity = new NorthwindEntities();
            repeaterProducts2.DataSource = entity.Products;
            repeaterProducts2.DataBind();

Repeater Template Tasarımı

            <ul>
            <asp:Repeater runat=”server” ID=”repeaterProducts2″ ModelType=”ASPNET_vNext_Strongly_Typed_Data_Controls.Models.Products”>
                <ItemTemplate>
                    <li>ProductID:
                        <%# Item.ProductID  %>
                        <br />
                        <ul>
                            <li>ProductName:
                                <%# Item.ProductName %>
                                <br />
                            </li>
                            <li>UnitPrice: <%# String.Format(“{0:C}”,Item.UnitPrice) %></li>
                            <ul>
                    </li>
                </ItemTemplate>
            </asp:Repeater>
        </ul>

Visual Studio bize Intellisense sunuyor:

ASP.NET vNext Web Forms’ta data-bindig ve data-editing daha kolay ve etkili hale geliyor.

İndirme

Uygulamayı indirmek için tıklayın.

Video

İzlemek için tıklayın.

Kaynaklar

http://weblogs.asp.net/scottgu/archive/2011/09/02/strongly-typed-data-controls-asp-net-vnext-series.aspx

, , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s