# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > مقالات مرتبط با Microsoft .Net Framework >  ASP.NET 2.0

## Vahid_Nasiri

سلام

هدف از این تاپیک و ادامه آن در روزهای آتی معرفی و بررسی امکانات اضافه شده و یا تغییر کرده در ASP.NET جدید می باشد.


----------------------------**********************-----------------------

مقاله ای جالب در مورد بحث امنیتی اضافه شده به ASP.NET 2.0 :

ASP.NET 2.0 Security
http://www.sitepoint.com/article/asp-net-2-security/1
http://www.sitepoint.com/article/asp-net-2-security/2

----------------------------**********************-----------------------

اظهار نظر رسمی در مورد تغییرات انجام شده در نگارش بتا2  ای اس پی دات نت 2 :
http://www.asp.net/Forums/ShowPost.a...&PostID=667498


خلاصه آن (موارد تغییر کرده در بتا2):

- کنترل های موبایل اضافه شده به ای اس پی دات نت 2 (بتا یک) از نگارش جدید (بتا 2 ) حذف شده اند و همان کنترل های سابق موجود در System.Web.Mobile.dll  توصیه می شوند.
- کنترل های جدید Site counters, DynamicImage Control, and the Image Generation Service  نیز حذف شدند و بعد از تست های بیشتر احتمالا در نگارش های آتی ارائه خواهند شد.
- کنترل WebPartPageMenu Control  اضافه شده است. این کنترل شبیه دارپ داون لیست هایی است که در سایت Sharepoint مورد استفاده قرار گرفته است.
- به شدت بر روی یکپارچگی اس کیوال سرور جدید و Access Data Providers محیط دات نت در جهت بالا بردن کارآیی کار شده است.
- کنترل جدید DataSetDataSource - که بایند کردن مستقیم به داده هایی از نوع XML را فراهم می کند - ارائه شده در بتایک نیز حذف خواهد شد (بدلیل اینکه مشابه آن در دات نت فریم ورک وجود داشته و نیازی به این مورد پس از بررسی حس نمی شده)
- در VS.NET ‌جدید به صورت از پیش مهیا شده هیچ قالبی در جهت زیبا سازی صفحات ارائه نخواهد شد تا توسعه گران در جهت به اشتراک گذاشتن Global themes بیشتر مساعدت نمایند (در مورد theme ها در VS.NET جدید کارهای زیادی صورت گرفته است (Templating, Theming, the Portal Framework) که در روزهای آتی بیشتر در مورد آنها بحث خواهد شد).
- در جهت تکمیل تر کردن بحث Administrative console ارائه شده در بتایک کار بیشتری صورت نگرفته است (در نگارش جدید با استفاده از WebAdmin.axd  می توان به یک پنل مدیریتی جهت کار با فایل کانفیگ برنامه بدون نیاز به مراجعه مستقیم به روت برنامه ، دست یافت ( برای مثال : http://localhost/myApp/WebAdmin.axd  ) . در این مورد به مقاله ای که در بالا در مورد بحث امنیتی معرفی شد می توان مراجعه کرد.)


----------------------------**********************-----------------------

_تذکر : هر گونه آف تاپیکی (منجمله تشکر کردن) حذف خواهد شد._

----------


## Vahid_Nasiri

Visual studio 2005 express edition beta

J# redist 
Visual Basic 
Visual C#‎ 
Visual J# 
Visual Web Developer 
Visual C++‎ 
MSDN Express

----------


## Vahid_Nasiri

*مروری کاربردی و اولیه بر نصاب دات نت فریم ورک 2 و همچنین محیط Visual Web Developer 2005 Express Edition Beta :*


نصاب دات نت فریم ورک 2 :

یکی از مشکلاتی که در نصاب های دات نت فریم ورک های قبلی وجود داشت ، عدم امکان نصب مجدد آنها به صورت معمولی است. حتما کسانی که پس از نصب دات نت فریم ورک 1.1 ، IIS را نصب کرده اند می دانند که به چه صورت باید از طریق خط فرمان مجددا دات نت فریم ورک را به IIS نگاشت کرد (Mapping) و یا چگونه باز هم از طریق خط فرمان نصاب دات نت فریم ورک را مجددا وادار به نصب کرد. اما در نصاب دات نت فریم ورک 2 تمام این موارد پیش بینی شده و خوشبختانه گزینه ی repair پس از اجرای مجدد آن نیز ظاهر می شود که کار نگاشت و غیره را اتوماتیک کرده. (حداقل 30 تاپیک در این بخش درباره ی این به ظاهر مشکل قدیمی وجود دارد)



Visual Web Developer 2005 Express Edition Beta :

- کار برنامه نویسی ASP.NET به این بسته ی نرم افزاری در نگارش جدید محول شده است.
- این نگارش در نگاه اول ترکیبی است از توانایی های web matrix (ادیتور مجانی ASP.net که در فوروم www.asp.net توسعه یافته است) که امکان برنامه نویسی مخلوط با تگ های HTML را فراهم می کند (inline code) و همچنین روش پیشین (code behind) که کد را از صفحات aspx جدا می سازد.
- با باز کردن یک پروژه ی جدید ، صفحه ی aspx ایی که ظاهر می شود به صورت پیش فرض بر روی حالت grid layout نیست (همانند ms front page 2003 شده است (چیزی که در نگارش قبلی VS.NET به شدت کمبود آن در طراحی صفحات احساس می شد)). به خواص صفحه ، گزینه های masterPageFile ، styleSheetTheme ، Theme و ... اضافه شده است (صنعتی تر کردن محیط ASP.Net).
- ادیتور سی شارپ آن به شدت بهبود یافته و خوش دست تر شده است! (حتما به تاپیک تازه های سی شارپ2 در بخش مربوطه در سایت مراجعه کنید تا با عناوینی مانند partial class از پیش آشنا باشید )
منوی جهنده هوشمند نمایش پارامترها و خواص آن کاملتر شده ( یادآوری :منویی جهنده که پارامترهای یک تابع را برای مثال هنگام تایپ آن نمایش می دهد) و حتی در هنگام تعریف نوع یک متغیر سی شارپ هم ظاهر می شود (به نظر این مورد از تجربه موفق محیط ادیتور VB6 اقتباس شده است). 
- هنگام کامپایل کردن از وب سرور built-in استفاده می کند و کاری به IIS ندارد (همین مورد به ظاهر ساده نیاز شما را به مطالعه مقاله "خطاهای متداول در ASP.NET و روش های حل آنها" بر طرف می کند (جذب تعداد کاربران بیشتر و کاهش سردردها!) ). برای نمونه پروژه ی شما در یک چنین آدرسی اجرا می شود : http://localhost:6155/WebSite3
- تعدادی کنترل جدید به تولبار آن اضافه شده (هر چند در بتا2 تعدادی از آنها مانند کانتر و غیره حذف شدند). (این مورد در طی مقالاتی بررسی خواهند شد)
- امکان FTP‌ کردن پروژه به صورت built-in‌ اضافه شده است (چیزی شبیه به محیط cute ftp) . 



از دیدی دیگر نگارش نهایی شامل این موارد کلی جدید است :

Visual Studio.NET Whidbey

Page Framework
Master Pages
Data Source Controls 
Site navigation
Membership and roles management
Personalization 
Mobile development
Themes
50 New controls


و یکی از شعارهای آن هم این است : "کد نویسی شما تا 70 درصد کاهش خواهد یافت".

----------


## Vahid_Nasiri

دو کتاب زیر به طور قطع در اختیار آقای کرامتی هم هستند که امیدوارم در سی دی های بعدی سایت برنامه نویس منتشر شوند :

*A First Look at ASP.NET v. 2.0*
Publisher : Addison Wesley 
Pub Date : October 23, 2003 
ISBN : 0-321-22896-0 
Pages : 528 

و 

*ASP.NET 2.0 Revealed* 
by Patrick A. Lorenz   ISBN:1590593375 
Apress © 2004

----------


## Vahid_Nasiri

همانطور که ذکر شد تلاش زیادی در جهت یکپارچه سازی NET CLR runtime . و اس کیوال سرور در حال انجام است . ورژن آتی SQL-Server و یا Yukon ، قابلیت اجرای CLR را نیز داراست (Yukon CLR Procedure).




برای مثال قابلیت نوشتن رویه های ذخیره شده در سی شارپ (C#‎ stored procedure) و سپس فراخوانی کدهای دات نت از درون آن. آبجکت ایجاد شده در سی شارپ می تواند یکی از حالت های زیر باشد :
1. Stored procedures. 
2. User defined Scalar Functions 
3. User defined Table Valued Functions 
4. User defined Triggers.
(برای ملاحظه چند مثال کامل به مآخذ ذکر شده مراجعه نمایید.)

عناوین تازه های اس کیوال سرور 2005  (Yukon) نیز به شرح زیر هستند :

1. CLR Integration
2. SQL Server Management Objects
3. SQL Service Broker
4. Reporting Services
5. Notification Services





مآخذ:
http://www.sqljunkies.com/Tutorial/4...F84DDCF81.scuk
http://www.developer.com/db/article.php/3289101
http://weblogs.asp.net/fbouma/archiv...12/228419.aspx
http://www.c-sharpcorner.com/Longhor...-Procedure.asp
http://www.c-sharpcorner.com/Longhor.../FAQ-Yukon.asp
http://www.gotdotnet.com/team/clr/about_clr.aspx

----------


## Vahid_Nasiri

*A First Look at ASP.NET v 2.0* 



Download the sample chapters
http://www.daveandal.net/books/8960/

==================

*ASP.NET v 2.0: The Beta Version*



Download the sample chapters
http://www.daveandal.net/books/7278/

==================

*A First Look at ADO.NET and System.Xml v 2.0*



Download the sample chapters
http://www.daveandal.net/books/8391/

==================

*ASP.NET 2.0 QuickStart Tutorials*

http://beta.asp.net/quickstart/aspnet/

----------


## Vahid_Nasiri

*Master Pages in ASP.NET 2.0*



Master pages در جهت رفع یکی از مهمترین کمبودهای ASP.NET قبلی ارائه شده است. تابحال اگر برنامه نویس ASP.NET می خواست توانایی یکسانی را به تمام  صفحات اعمال کند می توانست با ایجاد یک یوزرکنترل و قرار دادن آن در صفحات مختلف این امر را محقق سازد (برای مثال اعمال تمپلیت ها). اگر تعداد صفحات یک پروژه زیاد باشد این عملیات، واقعا زمانگیر و اعصاب خرد کن خواهد بود! (هر چند در حد یک drag & drop است) . هدف از ارائه ی master pages حل این مشکل می باشد.
در اینجا برنامه نویس می تواند محتوایی را که قرار است در تمامی صفحات تکرار شود درون یک master page‌ قرار دهد و سپس با استفاده از کنترل ContentPlaceHolder محل قرار گیری سایر اجزای صفحات اصلی را مشخص را سازد.

بعنوان مآخذ خوب می توان لینک های زیر را معرفی کرد :

http://msdn.microsoft.com/library/de...asterpages.asp
http://www.c-sharpcorner.com/Code/20...asterPages.asp
http://www.ondotnet.com/pub/a/dotnet...onwhidbey.html
http://www.devx.com/dotnet/Article/18042/1954?pf=true

----------


## Vahid_Nasiri

*Data Source Controls*

در نگارش جدید شاهد دیتاسورس کنترل های تازه ای ( مانند SqlDataSource, AccessDataSource و ... ) هستیم که نیاز به برنامه نویسی در بسیاری از موارد را به حداقل می رسانند. به مثال زیر دقت بفرمایید :

&lt;html>
&lt;body>
   &lt;form runat="server">

     &lt;asp&#58;SqlDataSource ID="Students" RunAt="server"
       ConnectionString="server=localhost;database=scho  ol;
       SelectCommand="select roll_no, first_name, last_name, age, class from students" />

     &lt;asp&#58;DataGrid DataSourceID="Students" RunAt="server" />

   &lt;/form>

&lt;/body>
&lt;/html>

در مثال فوق یک دیتاسورس کنترل به نام Students ایجاد شده (تگ های آن به دلیل وضوح اسامی آنها نیازی به توضیح ندارد) که در آن کانکشن استرینگ جهت اتصال به اس کیوال سرور و سپس کوئری مورد نظر بر روی دیتابیس تعریف و ایجاد گشته است. سپس به سادگی به کنترل دیتاگرید (که آنهم بهبود بخشیده شده) ، نسبت داده شده است. (دیگری نیازی نیست تا برای بایند کردن داده ها به دیتاگرید برنامه بنویسید!)

ماخذ:
http://www.dotnetspider.com/Technology/KBPages/643.aspx

----------


## Vahid_Nasiri

*Themes and Skins*

یکی دیگر از مواردی که در ASP.NET 2.0 در جهت بهبود ظاهری کار (در یک و یا تمام صفحات به صورت یکسان) ارائه شده است بحث پوسته ها (skins) و Themes است. پوسته مجموعه ای از خواص بصری است که به یک کنترل اعمال می شود و یک Theme مجموعه ای از پوسته ها می باشد. به محض اینکه تمی برای صفحه ای انتخاب شود به صورت خودکار ظاهر تمام کنترل ها را تحت تاثیر قرار خواهد داد.



ویژوال استودیو 2005 به همراه تعدادی پوسته استاندارد ارائه می شود و همچنین امکان ایجاد تم ها و پوسته های جدید را نیز دارا است. فایلهای پوسته دارای پسوند .skin بوده و تم ها در دایرکتوری استانداردی تحت عنوان Themes در برنامه ذخیره خواهند شد.

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


برای مطالعه بیشتر:
http://www.ondotnet.com/pub/a/dotnet...sandskins.html
http://www.15seconds.com/issue/040105.htm
http://www.codeguru.com/vb/vb_intern...int.php/c7937/

----------


## Vahid_Nasiri

*بهبودهای حاصل شده در View state‌ نگارش 2  ای اس پی دات نت :*

اگر به مقاله ی کوتاهی که چندی پیش در سایت منتشر شد (حفظ حالت در ASP.NET) مراجعه کنید ، View state‌ را یکی از مواردی خواهید یافت که سبب حفظ حالت کنترل های وب در محیط state less وب می گردند. 
این ایده به ذات خود بسیار مفید بوده و سبب تمرکز بیشتر برنامه نویس بر روی مسائل مهمتر کاری بجای نگرانی در مورد شکل نهایی و مقادیر موجود در کنترل ها به ازای هر درخواستی از طرف کاربر می گردد. اما مهمترین مشکل با آن ، حجم آن است! اگر به سورس نهایی صفحات تولید شده ی ASP.NET 1.X مراجعه نموده و مقدار فیلد مخفی __VIEWSTATE را بررسی نمایید گاهی تا حدود چند ده کیلوبایت می شود که سبب کندی بارگذاری صفحات در خطوط اتصالی کم سرعت اینترنت می گردد (و این خاصیت برای تمام کنترل های وب به صورت پیش فرض برگزیده شده است). یکی از دلایل این حجم بالا ، رمزگذاری شده بودن محتوای آن است (با استفاده از روش base64 به صورت خودکار). روش base64 دارای 33 درصد سرجمع (overhead) می باشد (بهایی است که باید بایت امنیت و همچنین حفظ حالت پرداخت!). بنابراین توصیه می شود در حالتهایی مانند استفاده از دیتاگرید بدون خاصیت paging‌ ، حتما View State‌ را خاموش نمایید.
با بهینه سازی هایی که در الگوریتم تولید View Sate در ASP.NET 2.0 صورت گرفته ، حجم نهایی View Sate تولیدی تقریبا نصف حجم View state تولیدی در ASP.NET 1.x است. این امر سبب تولید صفحاتی سریعتر (از دیدکاربری با اتصال اینترنت معمولی) خواهد گردید.
در ASP.NET 2.0 مفهوم جدیدی به نام Control state نیز ارائه گشته است. در اینجا حفظ حالت مقادیر یک کنترل وب به View state و حفظ شکل ظاهری آن به Control state واگذار شده است (partitioning between behavioral and UI state) . در اینجا حتی اگر View state را هم خاموش نمایید بازهم Control state روشن بوده و کارش را تمام و کمال انجام خواهد داد.
 برای مثال در ASP.NET 1.x اگر خاصیت View State مربوط به دیتاگرید را خاموش نمایید، بسیاری از توانایی های آن مانند paging ، edit‌ و غیره را از دست خواهید داد. اما در ASP.NET 2.0 با معرفی Control state حتی اگر View state را نیز خاموش نمایید باز هم کنترل به کار عادی خودش ادامه خواهد داد (زیرا مهمترین خواص را برای حفظ حالت و ظاهر خود در Control state کم حجم ذخیره می کند) .


مآخذ:
http://msdn.microsoft.com/msdnmag/is...e/default.aspx
http://www.nikhilk.net/

----------


## saeed_programer

از کجا میشه اونو خرید یا مجانی دانلود کرد :wink:

----------


## Vahid_Nasiri

اگر دقت می فرمودید در پست دوم این تاپیک لینک دانلود داده شده است. ولی در کل اگر دسترسی به اینترنت پرسرعت ندارید به فروشگاه سایت برنامه نویس سفارش بدهید در اسرع وقت به آدرس شما پست خواهد شد.

----------


## Vahid_Nasiri

*Web Parts Framework in ASP.NET 2.0*




در نگارش جدید ASP.NET شاهد کنترل های جدیدی به نام Web Parts خواهیم بود. این کنترل ها در جهت خصوصی سازی نمایی ظاهری سایت بکار برده می شوند . ایده ی آن بدین صورت است:
فرض کنید روزانه به سایت نیویورک تایمز برای مشاهده ی اخبار مراجعه می کنیم (این قسمت ترجمه است!). من بدنبال آخرین اخبار فیلم های روز و شما برای مثال بدنبال آخرین اخبار فوتبال هستید. اما من و شما در هر بار مراجعه به سایت ، با یک صفحه ی آغازین مشابه روبرو می شویم. آیا زیباتر نبود که من و شما در هر بار مراجعه ، به صفحه ی شخصی خود در این سایت هدایت می شدیم و تنها موارد دلخواه خود را می دیدیم؟! 

با استفاده از بکار گیری کنترل های Web Parts ، کاربر می تواند محتوای صفحه ای را که می بیند اصلاح و انتخاب کند (شامل محتوا و شکل ظاهری). این ایده در ساخت Portals بسیار مفید خواهد بود.




برای مطالعه بیشتر:
http://msdn.microsoft.com/asp.net/wh...partfrmwrk.asp
http://msdn.microsoft.com/asp.net/de...l/webparts.asp
http://www.c-sharpcorner.com/Code/20...ntInASPNET.asp

----------


## Vahid_Nasiri

*ASP.NET 2.0 Caching Features*

یکی از بهبودهای حاصل شده در کاشه کردن داده ها در نگارش جدید ASP.NET ، معرفی database triggered cache invalidation است تا همیشه بتوان از به روز بودن داده های مورد استفاده اطمینان حاصل کرد. در SQL-Server های 7 و یا 2000 ، این مکانیزم در سطح جدول خواهد بود . اما نگارش بعدی SQL-Server  (و یا Yukon) ، مکانیزم آگاه سازی از تغییرات در سطح یک رکورد را نیز میسر ساخته است.

اطلاعات بیشتر:
http://www.15seconds.com/issue/040518.htm

----------


## Vahid_Nasiri

*GridView & DetailsView Controls in ASP.NET 2.0*



با آنکه کنترل DataGrid در ASP.NET 1.X یکی از قدرتمندترین ها بدلیل توانایی های سفارشی سازی آن بود ، اما برای انجام بسیاری از امور توسط آن باید کد نوشته می شد ، مانند paging ، sorting ، آپدیت کردن داده های ویرایش شده و ... .
برای انجام امور* گزارش گیری* در ASP.NET 2.0 ، کنترل گرید جدیدی به نام GridView ارائه شده است. با ارائه ی کنترلهای جدید data source و بکارگیری آنها در GridView ، دیگر نیازی به کدنویسی برای انجام اموری مانند به روز در آوردن داده های ویرایش شده ی دیتابیس ، paging و غیره نخواهد بود و کنترلهای منبع داده ی جدید این امور را برای شما به صورت خودکار انجام خواهند داد. 
همچنین کنترلهای تکمیلی DetailsView و FormView جهت کار با GridView برای ارائه ی مدلهای master/detail views نیز معرفی شده اند.




برای مطالعه بیشتر:
http://msdn.microsoft.com/msdnmag/is...w/default.aspx
http://www.devx.com/dotnet/Article/22141/1954?pf=true
http://www.wwwcoder.com/main/parenti...8/default.aspx

----------


## Vahid_Nasiri

*Changes to the Validation Controls in ASP.NET 2.0*

برای اعتبار سنجی داده های وارد شده از طرف کاربر قبل از ارسال آنها به سرور، کنترل های سمت مشتری Validation در ASP.NET 1.X معرفی شدند. در نگارش جدید ، validation groups نیز افزوده شده است. ایده ی آن هم به صورت زیر است:
در صفحات asp.net تنها وجود *یک* تگ form سمت سرور مجاز است و اگر یک صفحه را به چندین فرم فرضی تقسیم بندی کنیم با کلیک بر روی دکمه ی submit ، تمام کنترل های validation قرار گرفته روی فرم باخبر و فعال خواهند شد. 
به شخصه با این مشکل در عمل (در ASP.NET 1.X ) مواجه شده ام. فرض کنید در صفحه دو table‌ دارید که در یکی فرم عضویت در خبرنامه ی سایت و دیگری فرم پر کردن اطلاعات کاربر قرار دارند (شکل متداول اغلب پورتال ها). برای تمام تکست باکس ها هم کنترل RequiredFieldValidator را قرار داده اید. کاربر اصلا نمی خواهد که در خبرنامه ی سایت عضو شود! و بدیهی است که چیزی را در تکست باکس آن وارد نخواهد کرد. اما سایر تکست باکس های فرم پرکردن اطلاعات را پر می کند. به محض فشردن دکمه ی ارسال اطلاعات در این قسمت ، کنترل RequiredFieldValidator  مربوط به عضویت در خبرنامه نیز فعال شده و دیگر کل فرم ارسال نخواهد شد (مگر اینکه کاربر فیلد مربوط به خبرنامه را هم اجبارا پر کند!). این مشکل با معرفی validation groups در نگارش جدید حل شده است. به این صورت یک فرم را به صورت فرضی می توان به چند گروه تقسیم بندی کرد و سپس کار اعتبار سنجی را به صورت مجزا از هم اعمال نمود (شکل زیر).




برای مطالعه بیشتر:
http://msdn.microsoft.com/library/en...asp?frame=true

----------


## Vahid_Nasiri

*Inside the ASP.NET 2.0 Code Compilation Model*


مروری بر نحوه ی کامپایل شدن کد در ASP.NET 1.X :

در اولین درخواست یک صفحه ی ASP.NET ، آن صفحه توسط ASP.NET runtime  به صورت پویا کامپایل می شود. قبل از انجام اینکار ابتدا cache  مورد بررسی قرار می گیرید تا از دوباره کاری جلوگیری گردد. نحوه ی کامپایل شدن هم بدین صورت است : ابتدا به صورت پویا سورس کدی موقتی که کلاس بیانگر صفحه ی مورد نظر است ایجاد می گردد. سپس توسط یک command-line compiler این کد به اسمبلی تبدیل می شود و در پایان کلاسی که بیانگر صفحه ی ASP.NET است نمونه سازی می گردد تا در جهت پاسخگویی به درخواست انجام شده برآید. مکان ذخیره شدن سورس کد موقتی نیز آدرس زیر می باشد:

  &#91;.NET System Directory&#93;\Temporary ASP.NET Files\root\&#91;x&#93;\&#91;y&#93;\  

لازم به ذکر است که :

 &#91;.NET System Directory&#93; maps to c&#58;\Windows\Microsoft.Net\Framework\V1.1.4322  \  

در این دایرکتوری فایلهایی را با پسوند cs خواهید یافت که همزمان با درخواست یک صفحه ی aspx به صورت پویا تولید شده اند. یعنی کدهای نوشته شده توسط کاربر (در دایرکتوری bin توسط کاربر) و کدهای تولیدی موقتی به صورت پویا در دایرکتوری فوق، جداگانه کامپایل می شوند.


تغییرات و بهبودهای انجام شده در ASP.NET 2.0 :

در نگارش جدید دیگر نیازی نیست تا کدهای خود را حتما توسط VS.NET کامپایل کنید و در دایرکتوری bin برنامه قرار دهید. در اینجا هر دو حالت کد موقتی و کدهای نوشته شده توسط کاربر ، بوسیله ی ASP.NET runtime به صورت خودکار و یکجا کامپایل خواهند شد. هنگامیکه برنامه ای را در VS.NET Whidbey اجرا می کنید به دو مطلب جدید برخواهید خورد : مرحله ی build‌ حذف شده است (برنامه بلافاصله اجرا می شود) و همچنین برنامه نویس برای اجرای کد خود نیازی به IIS نخواهد داشت و Visual Web Developer Web Server این امر را انجام می دهد (این مورد اخیر امکان کدنویسی را برای برنامه نویس ها در محیط شبکه با سطح دسترسی های کم مهیا می کند. تنها کسی می تواند از IIS برای اجرای برنامه ها استفاده نماید که ادمین سیستم باشد اما در اینجا این مورد برطرف شده) .
 اینبار مکان ذخیره شدن فایلهای موقتی به صورت زیر است :

 Local Settings\Temp\Temporary ASP.NET Files\&#91;virtual root&#93;\&#91;x&#93;\&#91;y&#93;  

خودکار شدن کامپایل توسط ASP.NET runtime ، خطاهای کمتری را نیز سبب خواهد شد. در نگارش قبلی اگر برنامه نویس پس از تغییر کد فراموش می کرد برنامه را مجددا کامپایل کند ، به محض آپلود آن بر روی سرور با خطای زمان اجرا مواجه می شد اما اینجا خیر. ثانیا دیگر حتما نیازی به ابزارهای ویژه برای کامپایل کد در حالت code-behind programming نیست.
همچنین با معرفی برنامه ای به نام aspnet_compiler می توان برنامه را پیش کامپایل کرد و هنگام ارائه برنامه، سورس کدها را ارائه نداد (در ASP.NET 1.X اگر برنامه فول کامپایل می شد نیازی به ارائه ی فایلهای cs و یا vb نبود. در اینجا چون دیگر نیازی به کامپایل (از طرف برنامه نویس) نیست و تمام موارد خودکار شده این مورد نیز درنظر گرفته شده است).


برای مطالعه بیشتر:
http://www.codeguru.com/Csharp/.NET/...cle.php/c5365/

----------


## Vahid_Nasiri

*ASP.NET 2.0's Client Callback Feature* 


یکی از مواردی که در ASP.NET 2.0 بازنگری شده است ، ویژگی Client Callback می باشد. توسط این ویژگی می توان کدهای سمت سرور را بوسیله ی کدهای سمت کلاینت جاوا اسکریپت فراخوانی کرد بدون اینکه نیازی به post back کل صفحه باشد.
بدلیل ماهیت stateless پروتکل HTTP ، در هر زمانی که کاربر داده ای را نیاز دارد تا از سرور دریافت کند و یا کدی بر روی سرور اجرا گردد ، باید صفحه را در ابتدا ارسال نماید. در این حالت post-back ، رویدادگردان های سمت سرور فعال شده ، کدی را اجرا نموده و خروجی را جهت مشاهده ی کاربر ارسال می نمایند. این مدل در اکثر حالات بسیار خوب جوابگو است اما محدودیت هایی را نیز برای برنامه نویسان ASP.NET به همراه دارد. برای مثال وجود ViewState های پرحجم خصوصا برای کاربرانی که از اتصال های dial-up به اینترنت استفاده می کنند ، بسیار آزار دهنده خواهد بود. بنابراین امکان فراخوانی کدهای سمت سرور از کدهای سمت کلاینت ، خواسته ی بسیاری از برنامه نویس های ASP.NET بوده است و در نگارش جدید میسر شده است.
ایده ی فوق هم اکنون توسط اکتیوایکس XMLHTTP نیز قابل اجرا است و ویژگی اضافه شده به ASP.NET 2.0 در حقیقت استفاده از این شیء به شکل یک اینترفیس می باشد. برای مثال کنترل TreeView اضافه شده به ASP.NET 2.0 ، اینترفیس ذکر شده را پیاده سازی می کند.



ماخذ:
http://www.dotnetjunkies.com/tutoria...0EECF13D7.dcik

----------


## مهدی کرامتی

بسیار متشکر.

این سلسله مطالب برای من خیلی جالب و مفید است. :&lt;:

----------


## Vahid_Nasiri

خواهش می کنم.  :D

----------


## Vahid_Nasiri

*Visual Studio 2005 Navigation Controls*

ASP.NET 2.0 کنترلهای جدیدی جهت سهولت ایجاد navigation (راهبری) در سایت ارائه داده است. با استفاده از کنترلهای asp:TreeView و یا asp:Menu می توان ساختار راهبری سایت را به صورت بصری پیاده سازی کرد. همچنین کنترل  asp:SiteMapPath نیز جهت ایجاد نقشه سایت معرفی شده است.



در ASP.NET 1.X راه حل جامعی جهت حل مساله ی مهم راهبری در سایت ارائه نشد و همچنان همان روش های قدیمی ایجاد لینک ها و یا کپسوله سازی آنها در یک یوزرکنترل (در بهترین حالت) میسر بود. علاوه بر اینکه این روش ها زمان زیادی را برای ایجاد به خود اختصاص می دهند ، باجابجایی مسیرفایلها نیاز به تغییر کلی لینکها می باشد (عموما یک سایت معمولی بیش از 100 صفحه دارد و تغییر دستی ، کنترل و تست سالم بودن لینک های سایت ،گاهی شاید ساعتها وقت ببرد). در ASP.NET 2.0 کنترلهای ذکر شده جهت سهولت ایجاد و مدیریت راهبری سایت حتی در حالتهایی که مکان فیزیکی فایلها تغییر می کنند ، ایجاد شده اند.
همچنین فایل xml‌ استانداردی به نام web.sitemap نیز تعریف شده است که در آن می توان ساختار منطقی (بجای ساختارفیزیکی) سایت را تعریف کرد. در ساختار منطقی سایت ، ارتباط صفحات با هم مشخص می شوند و نه مکان قرارگیری آنها در فولدرهای مختلف.
پس از ایجاد فایل فوق ، کنترل جدیدSiteMapDataSource را می توان بر روی فرم قرار داد و به صورت خودکار به فایل xml ذکر شده بایند می شود. سپس کنترلهای جدید treeview ویا menu‌ نیز می توانند از این دیتاسورس استفاده نمایند.



ماخذ:
http://msdn.microsoft.com/asp.net/wh...maspnetto2.asp

http://msdn.microsoft.com/msdnmag/is...ationControls/

----------


## Vahid_Nasiri

یاد آوری:
برای نصب مجموعه های لازم ذکر شده نیاز به دات نت فریم ورک 2 (بتا) هست:

NET Framework Version 2.0 Redistributable Package Beta 1 (x86)

تذکر!
بعد از نصب ، با اجرای برنامه ها در محیط VS.NET *2003* مشکل پیدا می کنید. البته برنامه کاملا کامپایل می شود و در IE قابل browse هست اما دکمه ی F5 را فراموش کنید (یا حداقل برای من اینطور بود).

----------


## Vahid_Nasiri

*Compression support in ASP.NET 2.0*

به دات نت فریم ورک 2 ، فضای نام جدیدی به نام System.IO.Compression اضافه شده است.یکی از کاربردهای آن فشرده سازی خروجی صفحات asp.net‌ با استفاده از فرمت gzip‌ می باشد. این کار سبب کاهش دیتاترانسفر سایت و همچنین بالارفتن سرعت مشاهده ی یک صفحه می گردد. 

ماخذ:
http://www.microsoft.com/belux/nl/ms...mpression.mspx

برای سایر نگارش های موجود:
http://www.blowery.org/code/HttpCompressionModule.html

----------


## Vahid_Nasiri

*Refactoring in Whidbey*

 code refactoring means restructuring your code so that the original intention of the code is preserved. For example, you may rename a variable so that it better reflects its usage. In this case, the entire application that uses this variable need to be updated with the new name. Another example of code refactoring is extracting a block of code and placing it into a function for more efficient code reuse. 



اطلاعات بیشتر
http://www.ondotnet.com/lpt/a/4971

----------


## M.GhanaatPisheh

اگر ممکنه این سری رو هم pdf  کنید
کلا مختصر و مفید بود.  :thnx:

----------


## Vahid_Nasiri

> یاد آوری:
> برای نصب مجموعه های لازم ذکر شده نیاز به دات نت فریم ورک 2 (بتا) هست:
> 
> NET Framework Version 2.0 Redistributable Package Beta 1 (x86)
> 
> تذکر!
> بعد از نصب ، با اجرای برنامه ها در محیط VS.NET *2003* مشکل پیدا می کنید. البته برنامه کاملا کامپایل می شود و در IE قابل browse هست اما دکمه ی F5 را فراموش کنید (یا حداقل برای من اینطور بود).


این مشکل هم قابل رفع است:
http://aspnet_harish.blogspot.com/20...lications.html

_با تشکر از سایت iranasp.net در مورد خبر رسانی در این مورد_

----------


## titbasoft

توی یکی از پست هاتون در مورد تغییرات viewstate توضیحاتی دادید. همونطور که همه می دونن view state به صورت string ذخیره می شه و نمی شه یک object در آن ذخیره کرد. این مشکل برای من وقتی دردسر ساز شد که به یک table به صورت dynamic ردیف و cell اضافه می کردم. حالا کافی بود یک بار صفحه رو post back کنم تا همه رو از دست بدم. 
اصلا به طور کلی این در این مورد تغیری ایجاد شده یا نه؟  :گیج:  

مطالب ارزنده در این تاپیک نوشته شده . من هم به نوبه خودم واقعا تشکر می کنم که اطلاعاتی رو که واقعا وقت صرفشون کردید به این راحتی در اختیار عموم می گذارید. هر کسی این کار رو نمیکنه و اگر هم نکنه به نظر من نمی شه بهش اشکال گرفت :wink: موفق باشید.

----------


## Vahid_Nasiri

مرسی  :) 

این کنترل جدول از کنترل های HTML بوده؟ اگر بله در مورد آنها ViewState اعمال نمی شود (مانند asp کلاسیک) و باید به صورت دستی و روش های سنتی مانند استفاده از فیلدهای مخفی ، خودتون کار ذاتیViewState رو شبیه سازی کنید (این مطلب در تمام نگارش های ASP.NET یکسان خواهد بود) . (بهتر است از دیتاگرید استفاده کنید تا از مزیت Viewstate آن نیز بهره مند شوید. تقریبا همه کاری با این کنترل به ظاهر ساده می‌شود کرد.)

در مورد اینکه چه چیزهایی می شود در Viewstate ذخیره کرد به مقاله زیر مراجعه کنید:
http://www.dotnetjohn.com/articles/articleid71.aspx

----------


## DJINN

> A Day Without Learning Is A Lost Day


حقا که از گوینده ی این حرف باید انتظار این چنین انرژی بی پایانی رو داشت :flower: 

واقعا لطف بزرگی در حق مبتدیانی مثل من و امثال من میکنید :flower:  :flower:  :thnx:

----------


## ealireza

Vahid_Nasir جان 
من این ASP.net2 رو لازم دارم + SQL  و.... 
اگه میشه بگو از کجای فروشگاه باید خرید کرد 

اگه میشه خودت یه شماره حساب بده و بگو ما باید چند بدیم تا برامون پست کنی ...

آیا تو سیدیت مثلالی مقاله ای .. چیزی هم میزاری    :گیج:  


مرسی و ممنون

----------


## rainynight

سلام من بعد از این که پروژه خودمو با .net 2  تکمیل کردم و روی سرور ارسال کردم با این خطا مواجه شدم دلیلش چی هست البته باید بگم وقتی روی Iis هم بصورت localhost/myproject/default.aspx اجراش می کردم همین خطارو میداد فقط وقتی از داخل خود vs  اجراش می کنم کار می کنه میشه لطفا کمک کنید

Server Error in '/' Application.
--------------------------------------------------------------------------------

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Unrecognized attribute 'xmlns'.

Source Error: 


Line 8:      \Windows\Microsoft.Net\Framework\v2.x\Config 
Line 9:  -->
Line 10: <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
Line 11: 	<appSettings/>
Line 12: 	<connectionStrings/>


Source File: c:\inetpub\wwwroot\asp2\web.config    Line: 10 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573

----------


## anubis_ir

Microsoft .NET Framework Version:*1.1.*4322.573
!!!

----------


## rainynight

:D ببخشید فهمیدم مشکل از ورژن دات نتم بود ولی تو iis اینو درست کردم ولی هاستم که اینو ساپورت نمیکنه
میشه یه هاست معرفی کنید که .net 2 رو ساپورت کنه اگه مجانی باشه بهتر اگه مجانی نیست ایرانی باشه
ممنون میشم

----------


## aidinwashere

یکی جواب منو بده 
چرا جناب نصیری دیگه نیستند؟
...

----------


## reham

با visual studio dot net 2005 میتونیم  به ASP.2 دسترسی داشته باشیم...

----------


## AspNet

یه سوال از asp.net 2:

چطور میشه layout  صفحه رو از flat به grid تغییر داد؟

در asp.net 1  به صورت اتوماتیک grid بود و از propertiese  میشد عوضش کرد. 

ممنون میشم راهنمایی کنید.

----------


## Silverboy

دوست عزیز در asp.net 2  حالت grid  به طور کلی حذف شده 
چون اعتقاد بر اینه که grid  با مفهوم css  به طور کلی تضاد داره 

ولی برای شروع کار که هیچ چیز معلوم نبود چیز خوبی بود میتونستی کنترل ها رو توی صفحه به طوری بزاری که غاطی پاتی نشن!!!!

----------


## dr_g

با تشکر ازجناب آقای نصیری
از دوستان کسی Starter Kits ها رو دانلود کرده و باهاشون کار کرده ؟؟ 
http://msdn.microsoft.com/vstudio/ex...rkit/#personal

----------


## dr_g

این هم یه سایت جالب برای شروع یادگیریASP.NET 2.0 به دوزبان #C و VB
http://aspnet20.learnasp.com/QuickSt...t/Default.aspx

----------


## dr_g

این هم چکیده ای درموردفضای نام MY 
که فکرکنم بقدری واضح باشه که نیاز به ترجمه نداشته باشه


My.Application	
Provides properties, methods, and events related to the current application.



My.Computer	
Provides properties for manipulating computer components such as audio, the clock, the keyboard, the file system, and so on.



My.Forms	
Provides properties for accessing an instance of each Windows form declared in the current project.



My.Log	
Provides a property and methods for writing event and exception information to the application's log listeners.


My.Request	
Gets the HttpRequest object for the requested page.



My.Resources	
Provides properties and classes for accessing the application's resources.



My.Response	
Gets the HttpResponse object associated with the Page. This object allows you to send HTTP response data to a client and contains information about that response


.
My.Settings
Provides properties and methods for accessing the application's settings



My.User
	Provides access to the information about the current user.



My.WebServices	
Provides properties for creating and accessing a single instance of each XML Web service referenced by the current project.

----------


## AspNet

> دوست عزیز در asp.net 2  حالت grid  به طور کلی حذف شده 
> چون اعتقاد بر اینه که grid  با مفهوم css  به طور کلی تضاد داره 
> 
> ولی برای شروع کار که هیچ چیز معلوم نبود چیز خوبی بود میتونستی کنترل ها رو توی صفحه به طوری بزاری که غاطی پاتی نشن!!!!


ممنون از جوابتون.
یه راه خوبی که من پیدا کردم اینه که از منوی Layout گزینه position رو انتخاب کنیم و از اونجا گزینه ی آخری یعنی auto-position options... رو بزنیم و در صفحه ایی که میاد تنظیمات مربوط به CSS Positioning رو انجام بدیم (دلخواه) و سپس ok کنیم.

با این روش هم مثل asp.net 1.x میشه به صورت grid کار کرد. البته با این تفاوت که شکل واضح گرید که به صورت نقطه چین هست رو نشون نمیده.

----------


## hamed_gibago

من یک ebook در مورد Asp می خواهم

----------


## hamed_gibago

برای یادگیری Asp.net از کودوم زبان شروع کنیم بهتره ؟ C#‎ یا vb.net ؟

----------


## favorite

merci وحید جان!
کولاک کردی

----------


## sadaf_m

salam
agar mitunid mano rahnamaee konid ye manba'e intereneti e kamel mikham baraye yad girie ASP ya HTML Programming
Thanx

----------


## pishro78

سلام 
من یه پروژه رو روی asp.net1.0 ساخته بودم و بعد وسط کار ارتقا دادم بهasp.net2.0 کار بااون راحت بود ولی وسط کار دیدم که کلی تغییر توی فایلها به صورت خودکار داده بود ودیگه اینکه امکان تنظیم خواص grid مهیا نبود مثلsort,..... جدا از این مورد سایت از طریق vssبک آپ گیری وبازمیشد درasp.net1.0 ،هرچند در vs.net2.0 امکان نصب VSS وجوداره ولی کنترل vss رو ،فایل backup خودپروژه برعهده داره وبه همین خاطر یه سری خرابکاری درvss انجام میشه که از اون جمله اینکه 
دیگهdiffrent فایلها رو در vss نداریم به همین خاطر مجبور شدم پروژه رو به asp.net1.0 برگردونم با هزار بدبختی !!!!!!!!!!!!!
حالا میخوام بدونم باتوجه به vss وasp.net2.0 میشه پروژه ساخته شده در ASP.NET1.0 رو درASP.NET2.0 اصلاح کرد یا بیخیالش
 مو قع نصبasp.net2.0 مسیرها رو نمیتونیم تغییر بدیم؟(توضیح راجع به نکات ریز در مورد نصبش 
لطفا)
ممنون میشم اگه کمک کنید مخصوصا از آقای وحید نصیری با بحث جالب وبه موقعشون

----------


## shima2006

سلام 
من به یک تقویم شمسی در ای اس پی دات نت نیاز دارم 
ممنون می شم اگه کمکم کنید

----------


## pishro78

salam 
lotfan kami taze vared ha ro tahvil begirid javab bedin 
سوالم رو در بالا پرسیدم یه لطف کنید جواب بدین ممنون میشم

----------


## pouriams

برای شروع asp.net باید ببینید که قبلا با چه زبانی کار کردید (vb یا c یا جاوا) اگر هم کار نکردید، ببینید که دوست دارید با کدوم زبان کار کنید. قدرت زبان برنامه نویسی در asp.net فرقی نمی کند زیرا که همه شان تبدیل به فایل dll میشوند. البته خب vb راحت‌تر است. ولی به نظر من #c شیرین‌تر است

----------

