Breaking News – Windows Phone Dev Center registration now only 8$!

Microsoft Announced, for limited time, the Windows Phone Dev Center registration fee is only 8$ for the newcomer individuals, this offer alive until 11. 7. 2012 11:59PM PST.
How this works? Simply, if your country is eligible for registration and app submission, you need to join via the Windows Phone Dev Center, login with your Live ID, or create one if you haven’t. Fill the registration form and pay the yearly subscription fee, all the 99$. Yes, your eyes is fine, it’s still 99$ for a yearly subscription, but 91$ or 92% of your local currency will be credited within 30-60 days. Payment can be paid via PayPal or credit card. Visa, MasterCard and American Express cards are your choice your region can’t pay via PayPal. I noticed a great thing, but that’s not a guarantee, that will work for you too, but eventually Microsoft accepted my Visa Electron card. And it’s new, since my previous registration attempt wasn’t successful, and for a weird reason, Microsoft isn’t accepted my MasterCard in the Dev Center registration, even if it was already validated.
Please read the official notes, and check that you are eligible.

After subscription, you can submit your apps to the Windows Phone Store. Grab the new Windows Phone 8 SDK and start develop. Windows Phone 8 SDK works only in Windows 8 x64 environment.

Nested ASP Repeaters without a line of code

Recently I came across a little task, which required listing a few question topics with all of its questions. Since there was only a few topics and each topic have only few questions thought I will solve that with nested repeater controls, combined with LinqDataSource. Whit that I didn’t needed to write a single line of code in code behind, just markups. This makes the code behind much clearer, and it’s easy to understand in a blink of an eye.

Here is an example using the good old Northwind sample database.

<asp:Repeater ID="rptCategories" runat="server" DataSourceID="ldsCategories">
        <ItemTemplate>
            <div style="background-color: Navy; color: White; font-weight: bold;">
                <asp:Label ID="lblCategoryName" runat="server" Text='<%# Eval("CategoryName") %>' />
                </div>
            <asp:HiddenField ID="hfCoategoryId" runat="server" Value='<%# Eval("CategoryID") %>' />            
            <asp:Repeater ID="rptProducts" runat="server" DataSourceID="ldsProducts">
                <ItemTemplate>
                    <asp:Label ID="lblProductName" runat="server" Text='<%# Eval("ProductName") %>' />
                    <asp:HiddenField ID="hfProductID" runat="server" Value='<%# Eval("ProductID") %>' />
                </ItemTemplate>
                <SeparatorTemplate>
                    <br />
                </SeparatorTemplate>
            </asp:Repeater>
            <asp:LinqDataSource ID="ldsProducts" runat="server" 
            ContextTypeName="WebRepeater.NorthwindEntities" TableName="Products" 
            Select="new(ProductName, ProductID)" Where="CategoryID=@CatID">
                <WhereParameters>
                    <asp:ControlParameter ControlID="hfCoategoryId" Type="Int32"
                     DefaultValue="1" Name="CatID" />
                </WhereParameters>
            </asp:LinqDataSource>
        </ItemTemplate>
        <SeparatorTemplate>
            <br />
            <br />
        </SeparatorTemplate>
    </asp:Repeater>
    <asp:LinqDataSource ID="ldsCategories" runat="server" TableName="Categories"
    ContextTypeName="WebRepeater.NorthwindEntities" Select="new(CategoryID, CategoryName)" />