HOW 2 LEARN ASP.NET
نویسنده : delshad
تاریخ  : ۱۳۸۹/۲/۲۲
امتیاز :
بازدید : 1116
موضوع : امکانات جدید در Asp.NET 4
توضیحات : امکانات جدید dotnet framework 4 و visual studio 2010
     

امکانات جدید در Asp.NET 4

 در این مقاله فقط به برخی از برجسته ترین امکانات جدید Dotnet FrameWork 4 اشاره خواهم کرد ، برای اطلاعات بیشتر به منابع معرفی شده مراجعه نمایید :

 

  • افزایش سرعت محیط Visual Studio.NET :

در ورژن جدید سرعت کار با محیط به صورت چشمگیری افزایش یافته ، سرعت باز شدن پروژه ، سوئیچ کردن بین Source و Design ، باز شدن پنجره Add Refrence و... افزایش یافته است .

 

  • بهبود Intellisence در #C :

در نسخه پیشین هنگامی که استفاده از Intellisence تمامی آیتم ها بر اساس حروف الفبا نمایش داده می شد ، در نسخه جدید پس از تایپ کردن به صورت خودکار فقط آیتم هایی که با حروف تایپ شده شما شروع می شوند نمایان می گردد .

همچنین برای دستیابی به یک آیتم میتوانید از تایپ خلاصه آن استفاده کنید ،فرض کنید تایپ کردید Button1 و یک نقطه قرار دادید و Intellisence باز شده است ، مثلا برای دستیابی به خاصیت ValidationGroup کافیست تایپ نمایید vg .

 

  •  بهبود برخی از کنترل ها :
    • کنترل ListView : همانطور که میدانید در نسخه قبل (ورژن 3.5) در هنگام استفاده از Listview باید یک LayoutTemplate تعریف می کردید که کمی دردسر داشت ، خوشبختانه در این ورژن نیازی به تعریف LayoutTemplate نیست
    • کنترل Menu : این کنترل یکی مشکل ساز ترین کنترل های ASP.NET بود ، هم برای مایکروسافت هم برای توسعه گران ، این کنترل با ایجاد تگ های مزاحم tr و td و... باعث افزایش بی رویه حجم صفحه می شد ، البته مایکروسافت راه حل هایی مانند Css Fiendly برای آن ارائه کرد که استفاده از آن هم داستان داشت . خوشبختانه در این نسخه این کنترل تگ های ui و li تولید کرده و در استفاده از Css بسیار بهینه شده است.
    • کنترل CheckBoxList و RadioButtonList : همانطور که میدانید این دو کنترل خاصیتی به نام RepeatLayout داشتند که دو مقدار Flow و Table را اتخاذ می کرد ، در نسخه جدید دو مقدار UnorderedList و OrderedList اضافه شده که باعث می شود برای نمایش  به ترتیب از تگ های ol و li و همچنین ul و li استفاده شود .

 

  • پنجره ها :

در نسخه 2010 ویژوال استودیو شما قادر هستید پنجره ها را درگ کرده و از کل نرم افزار خارج کنید ، همچنین میتوانید توسط خاصیت جدید Multi - Monitor پنجره ها را در مانیتور های مختلف مشاهده کنید

 

  • بهبود نحوه ایجاد ClientID ها در فرم های وب :

همانطور که میدانید در Asp.NET هنگامی که یک کنترل سمت سرور در صفحه قرار می دهید اگر این کنترل در یک Container واقع باشد ID این کنترل پس از Generate شدن صفحه به HTML تغییر خواهد کرد ، مثلا اگر شما یک MasterPage داشته باشید و در صفحه ای که از آن ارث گرفته شده یک باتن با آیدی Button1 قرار دهید پس از تبدیل به HTML  آیدی این کنترل تغییر خواهد کرد :

قبل از تبدیل :

<asp:Button ID="Button1" runat="server"  Text="Button" />

بعد از تبدیل :

<input type="submit" name="ctl00$MainContent$Button1" value="Button" id="ctl00_MainContent_Button1" />

همانطور که ملاحظه می فرمایید id این کنترل تغییر کرده است ، که البته این امر برای جلوگیری از تولید ID های تکراریست ولی در برخی موارد برای ما در استفاده از Javascript و css مشکل ساز می شود .

در نسخه جدید برای رفع این مشکل برای تمامی کنترل های سمت سرور میتوان خاصیت ClientMode را ست کرد ، این خاصیت مقادیری زیر را اتخاذ می کند :

  1. AutoID : با انتخاب این  آیتم نحوه ایجاد آیدی دقیقا مانند نسخه های قبل خواهد بود ، یعنی آیدی ها به صورت خودکار تغییر خواهند کرد (ctl00_MainContent_Button1)
  2. Predictable : با انتخاب این گزینه به صورت خودکار آیدی کنترل های مادر در کنار آیدی کنترل جدید قرار می گیرد (MainContent_Button1)
  3. Static : بدون توجه به تکراری بودن آیدی ، دقیقا آیدی مورد نظر شما تخصیص داده می شود (Button1)
  4. Inherits : از تنظیمات مادر ارث بری می کند ، مثلا شما میتوانید خاصیت ClientMode را در تگ Page در وب کانفیگ یا Code-Page صفحه تنظیم نمایید .

این خاصیت در کنترل های داده ای نیز تغییراتی اعمال کرده است ، فرض کنید از یک Gridview استفاده کردیم ، علاوه براینکه میتوان خاصیت ClientIDMode را برای تمامی کنترل های سمت سرور داخل GridView تنظیم کرد میتوان به کمک خاصیت ClientIDRowSuffix مقدار فیلد مورد نظر را به انتهای آیدی کنترل ها اضافه نمود ، این امر در مورد تگ های Runat=server نیز صدق می کند :

 <asp:GridView ID="GridView1" runat="server" ClientIDMode="Predictable" ClientIDRowSuffix="ID">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <span runat="server" id="myName"><%# Eval("Name") %></span>
<br /> 
  
                         </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>

پس از تبدیل :

 <span id="GridView1_myName_1" >ali</span>
<br /> 
   <span id="GridView1_myName_2" >amir</span>
<br />
   <span id="GridView1_myName_3" >reza</span>
<br />

همانطور که ملاحظه می کنید مقدار فیلد ID در بانک اطلاعاتی در هر سطر منتاظر به انتهاب id تگ ها اضافه شده است .

 

  • Meta-Tag ها :

در نسخ قبل ترفندهایی مانند روش زیر ، برای اضافه کردن Description و Keyword توسط Meta-Tag به تگ Head وجود داشت  :

http://www.how2learnasp.net/article.aspx?code=280aa528-9e85-441b-9731-508689d7a5a4

در نسخه جدید این کار بسیار ساده شده است :

Page.Title= "عنوان صفحه";
Page.MetaDescription = "توضیحات صفحه";
Page.MetaKeywords = "کلمات کلیدی";

 

  • پارامتر های اختیاری (Optional Parameters):

در نسخه جدید میتوانیم برای متدها پارامتر های اختیاری تعریف کنیم :

public void MyFunction(string Name,string Family, int Gender=1)
{


}
MyFunction("Ali","Delshad");

همانطور که ملاحظه می فرمایید در صورتی که پارامتر Gender را مقدار دهی نکنیم به صورت پیشفرض 1 تخصیص داده می شود .

 

  •  Highlight کردن کد ها :

پس از مدتها بالاخره مایکروسافت نیز مانند سایر IDE های مشهور (مانند NetBeans و Eclips و...) خاصیت پرکاربرد مذکور را اضافه کرد ، این خاصیت به توسعه دهنده این امکان را میدهد تا تکرار کل تکرار های یک متد ، متغیر یا... را یکجا به صورت Highlite شده مشاهده کند :

 

  • Code-Snippets  برای HTML و JavaScript :

همانطور که مستحضر هستید Code-Snippets قطعه کد های از پیش نوشته شده هستند که میتوان برای افزایش سرعت برنامه نویسی از آنها استفاده کرد (برای اضافه کردن کافیست کلیک راست نموده و گزینه Insert Snippets را انتخاب نمایید) ، این امکان سابقا فقط در بخش کد نویسی موجود بود ولی در نسخه 4 در قسمت HTML و جاوا اسکریپت نیز این امکان افزودن شده است .

  •  پنجره Call Hierarchy :

شما میتوانید با کلیک راست نمودن روی یک متد و انتخاب آیتم View Call Hierarchy ، سلسله مراتب استفاده از آن را در بخش های مختلف کل پروژه مشاهده نمایید .

  • نوع داده جدید Tuple :

این نوع داده قادر است یک Key-Value چندگانه را برای شما ایجاد نماید ، بدین معنی که شما میتوانید هر عضو این آرایه را یک نوع در نظر بگیرید مثلا خانه اول int خانه دوم string و...

برای اطلاعات بیشتر به آدرس http://msdn.microsoft.com/en-us/library/dd414846%28VS.100%29.aspx  مراجعه نمایید .

  • MS-Chart :

در نسخه 3.5 سرویس پک 1 ، مایکروسافت چارت برای رسم نمودار اضافه شد که در ورژن 4 با کمی تغییرات و به روز رسانی جزئی از IDE شده است .

 

  • ماندگاری سطر انتخابی در GridView  :

همانطور که میدانید سطر انتخابی در GridView و Listview بر اساس ایندکس سطر بودند به عنوان مثال اگر شما در این کنترل ها از صفحه بندی استفاده می کردید و سطر دوم از صفحه اول را انتخاب می نمودید وقتی به صفحه سوم می رفتید بازهم سطر دوم انتخاب شده بود ولی در نسخه جدید این حالت تغییر کرده و شما با رفتن به صفحه سوم هیچ رکوردی را به صورت انتخاب شده نخواهید دید ، در ضمن اگر باز هم به صفحه اول برگردید ملاحظه می کنید که سطر انتخابی پا برجاست .

فعال نمودن این خاصیت سادست :

<asp:GridView id="GridView2" runat="server" EnablePersistedSelection="true"> 
</asp:GridView> 

البته باید اضافه کرد که این خاصیت فقط در حالت DynamicData فعال می باشد .

 

  • jQuery و Ajax :

در نسخه جدید کتابخانه پرطرفدار و محبوب jQuery به عضوی از خانواده اضافه شده است و در هنگام ایجاد یک پروژه جدید به صورت پیشفرض آخرین ورژن jQuery در پروژه شما حضور خواهد داشت .

  • مایکروسافت CDN :

Microsoft Ajax Content Delivery Network  یا شبکه تحویل محتوای آژاکس مایکروسافت به شما این امکان را می دهد که کتابخانه های معروف جاوا اسکریپت مانند jQuery را به سادگی به پروژه اضافه نمایید :

  <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>

علاوه بر این شما میتوایند به تنظیم ScriptManager تمامی درخواست های Ajax را به مایکروسافت ارسال نموده و با این کار باعث افزایش بازدهی وب سایت خود شوید ، فقط کافیست خاصیت CDN را فعال نمایید :

<asp:ScriptManager
  ID="ScriptManager1"
  EnableCdn="true"
  Runat="Server" />

 

  • Extensible Output Caching :

همانطور که میدانید در نسخ قبلی امکان Cache کردن صفحات در حافظه وجود داشت و شما میتوانستید به سادگی با اضافه کردن یک تگ Output-Cache در صفحه یا در Web.Config از این امکان بهره مند شوید .

در نسخه جدید این امکان فراهم شده که شما یک یا چند Output-Cache اختصاصی ایجاد نمایید و برای صفحات و کنترل های مختلف از آنها استفاده کنید ، این امکان به شما اجازه می دهد تا مانور بیشتری برای کش کردن اطلاعات در حافظه داشته باشید تا از حافظه به بهترین نحو استفاده شود .

<caching>
  <outputCache defaultProvider="AspNetInternalProvider">
    <providers>
      <add name="DiskCache"
          type="Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider"/>
    </providers>
  </outputCache>

</caching>
<%@ OutputCache Duration="60" VaryByParam="None" providerName="DiskCache" %>

 

  •  RedirectPermanent :

مطمئنا با متد Response.Redirect آشنا هستید ، این متد صفحه شما را به صفحه دلخواه هدایت می نماید ، متد جدید Response.RedirectPermanent که هم سریعتر است هم در برخی موارد مانند جابجا شدن صفحات شما به موتور های جستجو کمک می نمایید تا صفحه جدید را به جای صفحه قبلی ذخیره نماید .

  • فشرده سازی Session ها :

همانطور که میدانید ما میتوانیم اطلاعاتی را به صورت موقت در Session ذخیره کنیم ، به دلیل اینکه Session جزئی از منابع سرور به حساب می آید رشد بی رویه آن مشکلاتی را نیز به همراه دارد به همین دلیل است که استفاده بی دلیل از Session به هیچ وجه توصیه نمی شود ، مایکروسافت در نسخه جدید امکانی را برای Compress کردن Session ها فراهم نموده است :

<sessionState compressionEnabled="true" />
  • تنظیمات مربوط به URL  در Web.Config :

در نسخ قبل حداکثر طول یک Url میتوانست 206 کاراکتر باشد ، در این نسخه شما میتوانید به راحتی تعداد کاراکتر های Url و همچنین حداکثر طول QueryString ها  را افزایش دهید :

<httpRuntime maxRequestPathLength="360" maxQueryStringLength="2048" />

علاوه بر این در نسخ قبل برخی کاراکتر ها (8 کاراکتر) در QueryString ها ممنوع محسوب می شدند (مانند > و < و & و...) ، در نسخه جدید شما میتوایند این کاراکتر ها را شخصی سازی نمایید :

<httpRuntime requestPathInvalidChars="&lt;,&gt;,*,%,&amp;,:,\,?"  />

همچنین خواص جدید  نظیر requestValidationType برای شخصی سازی اعتبار سنجی درخواست ها و همچنین encoderType برای شخصی سازی کردن نحوه کد کردن Html و Url به تگ httpRuntime اضافه شده است .

 

  • Web Packing :

یکی دیگر از امکانات جالب و پر کاربردی که در نسخه جدید اضافه شده قابلیت ساخت یک بسته وب می باشد ، توسط این امکان شما قادر خواهید بود بخش های زیر را به صورت یک پک وب در بیاورید :

  1. تنظیمات مربوط به IIS و ApplicationPool
  2. محتوای وب سایت
  3. دیتابیس SQL Server
  4. کامپاننت ها و مجوز های امنیتی

بسته ایجاد شده به راحتی قابل Install شدن بر روی هر سروری می باشد ، این کار توسط IIS Manager انجام می گردد . فایل های شما به راحتی در IIS قرار گرفته و دیتابیس شما ایجاد شده و حتی اطلاعات داخل آن قرار می گیرد .

همچنین امکانات جالبی برای Publish کردن وب سایت به صورت Remote اضافه شده است .

 

 

 

همچنین در عناوین زیر تغییرات قابل توجهی اعمال شده که توضیحات بیشتر را به خواننده واگذار می نمایم :

  • Asp.NET MVC
  • Dynamic Data
  • و...

 

منابع :

http://www.asp.net/Learn/whitepapers/aspnet4#0.2__Toc253429262

http://www.codeproject.com/KB/aspnet/Whatis_New_ASP_Net_4.aspx

http://www.hanselman.com/blog/ASP4WhirlwindTourAroundNET4AndVisualStudio2010Beta1.aspx


 

 

 
امتیاز بدهید :

نویسنده : تیام sosiana_22@yahoo.com ۱۳۸۹ بيست و ششم مرداد
سلام آقای دلشاد. واقعا ممنون از لطفی که در حقمون کردین. به ساخت پروژه م خیلی کمک کردین. بازم متشکرم
نویسنده : behnam behnam_rousta@yahoo.com ۱۳۸۹ بيست و دوم خرداد
سلام اقاي دلشاد واقعا سايتتون مهشره من كه خيلي چيزا ازتون ياد گرفتم! اميدوارم هميشه موفق باشين
نویسنده : نادر مينايي nader.mineh@gmail.com ۱۳۸۹ بيست و نهم ارديبهشت
سلام آقاي دلشاد . ممنون از توضيحاتتون . شايد بعد از مدتها كار كردن ميتونستيم به اين نتايج برسيم .

 
نظر بدهید :
لطفا سوالات فنی خود را در تالار گفتگو www.forum.how2learnasp.net مطرح نمایید
نام :  
ایمیل :    
نظرات :
 
Xml rss feed

 

Valid CSS! Atom rss feed
Ali Delshad Official Site