پرچم تشریفات با کیفیت بالا و قیمت ارزان
پرواز از نگاه دکتر ماکان آریا پارسا
دکتر علی پرند فوق تخصص جراحی پلاستیک
تجهیزات و دستگاه های کلینیک زیبایی
سررسید تبلیغاتی 1404 چگونه میتواند برندینگ کسبوکارتان را تقویت کند؟
چگونه با ثبت آگهی رایگان در سایت های نیازمندیها، کسب و کارتان را به دیگران معرفی کنید؟
بهترین لوله برای لوله کشی آب ساختمان
دانلود آهنگ های برتر ایرانی و خارجی 2024
ماندگاری بیشتر محصولات باغ شما با این روش ساده!
بارشهای سیلآسا در راه است! آیا خانه شما آماده است؟
بارشهای سیلآسا در راه است! آیا خانه شما آماده است؟
قیمت انواع دستگاه تصفیه آب خانگی در ایران
نمایش جنگ دینامیت شو در تهران [از بیوگرافی میلاد صالح پور تا خرید بلیط]
9 روش جرم گیری ماشین لباسشویی سامسونگ برای از بین بردن بوی بد
ساندویچ پانل: بهترین گزینه برای ساخت و ساز سریع
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
تعداد کل بازدیدها :
1849252206
همه چيز درباره Asp.net 2.0
واضح آرشیو وب فارسی:سایت ریسک: B O L O T05-06-2007, 11:17 AMاشاره : فناوري ASP.NET يك بستر برنامهنويسي است كه بر اساس سيستم CLR در چارچوب دات نت كار ميكند. اين فناوري امكاني را فراهم ميآورد تا در سايه آن برنامهنويس بتواند با استفاده از هريك از زبانهاي برنامهنويسي موجود در چارچوب دات نت، صفحات دايناميك و نرمافزارهاي تحت وب توليد كند. نسخه اول ASP.NET توانست با فراهم ساختن قابليتهاي پيشرفته زبانهاي برنامهنويسي شيگرا، همچون ويژوال بيسيك دات نت و سي شارپ، تحول بزرگي را نسبت به نسل قبلي (ASP) ايجاد كند. نسخه دوم ASP.NET همان مسير را با بهبود عملكرد موتور ASP.NET در زمينه مديريت و توسعه نرمافزار و نيز آسانتر كردن روند برنامهنويسي طي كرده است. در اين مقاله مهمترين تغييرات و قابليتهاي جديد ASP.NET2.0 را بررسي خواهيم كرد. مخاطب اين مقاله برنامهنويساني هستند كه قبلاً با فناوريASP.NET آشنايي پيدا كردهاند و اكنون مايلند به تدريج به پلتفرم جديد مهاجرت كنند. تازههاي ASP.NET 2.0 اولين سؤالي كه براي هر برنامهنويس علاقمند به ASP.NET به وجود ميآيد اين است كه نسخه دوم اين فناوري چه ويژگيها و قابليتهاي جديدي دارد و كدام قسمتها نسبت به نسخه اول دچار تغيير و تحول شدهاند و اگر كسي بخواهد پلتفرم برنامهنويسي خود را به ASP.NET 2.0 منتقل كند، آيا مجبور است تمام دانش و تجربه خود در زمينه ASP.NET 1.x را دور بريزد و از نو بياموزد؟ با خواندن اين مقاله پاسخ همه اين سؤالات را خواهيد يافت. خوشبختانه معماري ASP.NET 2.0 به گونهاي است كه لازم نيست زحمات و تجربيات گرانبهاي خود در كار با ASP.NET 1.x را دور بريزيد. ميتوانيد از قابليتهاي جديد نسخه دوم استفاده كنيد و همزمان سورس كدهايي كه با ASP.NET 1.x نوشتهايد را با كمي تغيير، در پلتفرم جديد مورد بهرهبرداري قراردهيد. خبر خوب اين است كه ASP.NET 2.0 صددرصد با ASP.NET 1.x سازگار است. بنابراين ميتوانيد برنامه ASP.NET 1.x خود را بدون حتي يك خط تغيير در سورس كد روي سروري كه براي اجراي ASP.NET 2.0 تنظيم شده است، اجرا كنيد. شكل 1 نمايي از پنجره تنظيمات يك سايت روي IIS 6.0 را نشان ميدهد كه امكان تغيير دادن فناوريASP.NET را از نسخه يك به دو و يا برعكس فراهم ميكند. اين tab ويژه، پس از نصب NET Framework 2.0 روي ويندوز سرور، به ساير Tabها در پنجره تنظيمات سايت افزوده ميشود. براي آزمودن ادعاي فوق، كافي است پنجره تنظيمات سايتي كه هماكنون با ASP.NET 1.x نوشتهايد را باز كنيد و آن را روي نسخه دوم ASP.NET تنظيم كنيد و دوباره سايت را اجرا نماييد. همه چيز مانند قبل بدون تغيير قابلمشاهده خواهد بود. اما اجازه دهيد ببينيم تغييرات در كجا رخ دادهاند. اگر معماري يك نرمافزار تحت وب را مطابق با معماري معروف سه لايه (3Tier) فرض كنيم، يعني ساختار نرمافزار يك سايت از لايههاي نمايش (Presentation)، موتور اصلي نرمافزار (Business Layer) و ارتباط با پايگاه دادهها (Data Layer) تشكيل شده باشد، آنگاه ميتوان گفت كه در ASP.NET 2.0 بيشترين و مهمترين تغييرات در لايه نمايش رخ دادهاند؛ هرچند كه بهبودهايي در دو لايه ديگر نيز رخ داده و قابليتهاي سودمند و جالبي نيز به كل مجموعه افزوده شده است. در حقيقت ميتوان گفت كه ASP.NET 2.0 شكل رسمي و نظام يافته اغلب قابليتها و ويژگيهايي است كه برنامهنويسان حرفهاي ASP.NET 1.x قبلاً آنها را به صورت دستي و با ابتكار خودشان به وجود آورده بودند. بنابراين تنها بخش كوچكي از قابليتهاي جديد ASP.NET 2.0 چيزهايي هستند كه در پلتفرم ASP.NET 1.x قابل حصول نبودند. اگر جزو آن دسته از طراحان وب هستيد كه متكي به چارچوب اصلي ASP.NET 1.x هستند و خودشان تلاش چنداني در توسعه مكانيزمهاي عناصر پايه ASP.NET به كار نميبرند، ASP.NET 2.0 حرفهاي زيادي براي شما دارد. ولي اگر جزو آن دسته از برنامهنويسان هستيد كه با استفاده از نمونه سورس كدهاي مجاني در اينترنت يا با تكيه بر خلاقيت خودتان، اشيا و قابليتهاي پايهاي ASP.NET 1.x را توسعه دادهايد و كامپوننتها و قابليتهاي جديدي ايجاد كردهايد، ممكن است هنگام رجوع به قابليتهاي جديد نسخه دوم، در انتخاب ميان سورس كد خودتان و شيوه جديد بهكار رفته در نسخه دوم بر سر دوراهي قرار بگيريد. خوشبختانه ASP.NET 2.0 راهي را پيش روي اين دسته از برنامهنويسان گذاشته كه به كمك آن ميتوانند به يك وضعيت متعادل از هر دو حالت برسند كه تركيبي از سورس كد قبلي خودتان و قابليتهاي جديد نسخه دوم است. در اين مقاله مفصلاً به اين موضوع خواهيم پرداخت، اما پيش از آن اجازه بدهيد مرور سريعي بر تعدادي از ويژگيهاي آشكار پلتفرم ASP.NET 2.0 داشته باشيم. برخي ويژگيهاي پلتفرم ASP.NET 2.0 1- براي آشنايي با فضاي كلي برنامه نويسي در Visual Studio 2005 خوب است قبل از آموختن ASP.NET 2.0 به مقالات و كتابهاي تأليف شده درباره محيط برنامه نويسي ويژوال بيسيك 2005 يا سي شارپ 2005 نگاهي بيندازيد. همانطور كه ميدانيد ASP.NET 2.0 بر شالوده فناوري دات نت 2 بنا شده است و بدون آشنايي با شيوه برنامهنويسي با يكي از زبانهاي داتنت2 نميتوانيد از ASP.NET 2.0 استفاده كنيد. يك نمونه از اين مقالات قبلاً در ماهنامه شبكه (شماره 65) به چاپ رسيده است. همچنين خواندن مقالات نگاهي به قابليتهاي جديد 2005 SQL Server (شماره 68) و كسبوكار هوشمند در SQL Server 2005 در شماره 69 را به منظور آشنايي با نرمافزار 2005 SQL Server توصيه ميكنم. 2- فايلهاي موسوم به <پروژه> در ويژوال استوديوي 2005 حذف شدهاند و اكنون همه چيز در فايل solution هر پروژه قرار دارد. بنابراين مديريت پروژههاي ASP.NET اكنون آسانتر از گذشته است و سايتها ميتوانند به سادگي از مكان فيزيكي فعلي خود باز شوند. 3- در محيط Visual Web Developer 2005 يا Visual Studio 2005، يعني محيطي كه برنامههاي ASP.NET 2.0 داخل آن نوشته ميشوند، دو روش براي اجراي سايتها و صفحات دايناميك وجود دارد. روش اول همان روش قديمي است. به اين ترتيب كه يك وبسايت روي IIS تعريف ميكنيد و سپس هنگام تعريف يك پروژه جديد، آدرسHTTP آن سايت را به ويژوال استوديو ميدهيد تا فايلهاي پروژه را آنجا بگذارد. در اين صورت هنگام بازكردن و اجراي سايت، اين صفحات روي آدرس HTTP سايت مربوطه باز ميشوند. در اين حالت شما براي آزمايش كاركرد سايتي كه درست كردهايد، نيازمند اجراي وب سرور IIS هستيد. در روش دوم كه روش جديدي در ASP.NET 2.0 است نيازي به وجود IIS نيست. اين روش به صورت پيشفرض روي ويژوال استوديوي 2005 تنظيم شده و هنگام آزمايش و مشاهده يك صفحه دايناميك در حالت اجرا، يك وب سرور كوچك روي يك پورت تصادفي خاص (روي http://localhost) اجرا ميشود و صفحات سايت به كمك آن قابل اجرا و مشاهده خواهند بود. (شكل 2) اين روش سه مزيت دارد كه عبارتنداز: ●نيازي به نصب IIS نيست. بنابراين ميتوان كار برنامهنويسي را روي يك ويندوز دسكتاپ (مثلاً اكسپي) انجام داد. ضمناً نيازي به نصب نسخه استاندارد SQL Server هم نيست؛ زيرا ويژوال استوديو به روش مشابهي ميتواند به كمك يك نرمافزار كوچكتر به نام SQL Server 2005 Express Edition كه همراه ويژوال استوديو نصب ميشود، نياز به وجود يك پايگاه اطلاعاتي را تأمين كند. ● عدم نياز به فايلهاي موسوم به <پروژه>. هر سايتي ميتواند از محل فيزيكي خودش به آساني باز شود؛ زيرا اجباري در وابسته كردن پروژه به يك IP خاص نيست. ● امنيت بيشتر در محيط برنامه نويسي. عدم نياز به IIS براي تست صفحات عملاً به اين معنا است كه ميتوانيد اصلاً IIS را نصب نكنيد و لابد ميدانيد كه هرچه تعداد سرويسهاي درحال اجرا روي يك سيستم كمتر باشد، امنيت آن بيشتر است. ضمن اينكه اجراي سايت روي يك پورت تصادفي از localhost امكان حدسزدن URL صفحات پروژه را براي هكرها دشوار ميسازد. 4- ويژوال استوديوي 2005 بر خلاف نسخه 2003 همه روشهاي دسترسي به يك سايت راه دور را به صورت مناسب و آسان در اختيار برنامهنويس ميگذارد. بنابراين اگر ميخواهيد سايت پروژه خود را از طريق FTP يا از طريق شبكه (فايل سيستم) آپلود كنيد، ابزار قدرتمندي براي اين منظور در اختيار شماست. شكل 3 نمايي از ابزار Copy Web Site را نشان ميدهد. به كمك اين ابزار ميتوانيد پروژه خود را مستقيماً به سايت مقصد آپلود كنيد. 5- ويژوال استوديوي 2005 امكانات مفصلي براي كار با بانكهاي اطلاعات دارد. به گونهاي كه شما را از مراجعه مستقيم به اينترفيس مديريت SQL Server يا ديگر بانكهاي اطلاعاتي تقريباً بينياز ميكند. ميتوانيد به كمك اين ابزارها جداول بانك اطلاعاتي خود را طراحي كنيد يا براي اجراي فرامين مختلف روي بانكاطلاعاتي Stored Procedure بنويسيد (شكل 4) و اين توابع را همانجا داخل ويژوال استوديوي اشكالزدايي (Debug) نماييد. ميكوشيم روش استفاده از اين ابزارها و امكانات را در شمارههاي آتي ماهنامه به تفصيل شرح دهيم. 6- شيوه Code-behind در ASP.NET 2.0 متحول شده است. به اين صورت كه ديگر لازم نيست متغيرهاي عضو(Member Variables) را در ابتداي سورس كد پشت هر صفحه اعلان (Declare) كنيد. فناوري ASP.NET 2.0 از يك سازوكار جديد به نام Partial Class استفاده ميكند كه به موتور داتنت امكان ميدهد تمام سورس كد صفحه را به صورت دايناميك و در همان زمان اجرا كامپايل كند و داخل يك كلاس بگذارد. به اين ترتيب سهولت زيادي در استفاده از شيوه Code-behind پديد ميآيد؛ زيرا ديگر لازم نيست به محض افزودن يك Server Control به صفحه، Event Handler آن را در كد پشت صفحه نيز معرفي كنيد. در ASP.NET 1.x اين كار ضروري است. به همين جهت، به مجرد اعمال كوچكترين تغييري در يكي از صفحاتي كه از شيوه Code-behind استفاده ميكند، بايد كل پروژه را دوباره كامپايل و آپلود كنيد. اين مشكل در ASP.NET 2.0 به كلي حذف شده است. به اين ترتيب سرعت پيشبرد پروژههاي طراحي سايت افزايش مييابد و ايجاد تغييرات در صفحات، مستلزم كامپايل كردن مجدد پروژه نيست. شكل 5 سورس كد پشت صحنه يك صفحه دايناميك را نشان ميدهد كه مملو از انواع Server Controlها است، ولي Code-behind آن فقط سه خط است كه شامل اعلان Partial Class همان صفحه است و خبري از اعلان Event Handlerها نيست. بقيه كد صفحه (مانند كد تابع Page Load) را ميتوانيد همچون سابق بيفزاييد. 7- مكانيزم مشابهي براي كلاسهاي مستقل نيز پيشبيني شده است. به اين ترتيب كه ميتوانيد علاوه بر آپلود كردن كلاسهاي كامپايل شده به صورت dll داخل پوشه bin، سورس بعضي از كلاسها را داخل پوشه App&Code بگذاريد. اين كلاسها در ابتدا كامپايل نميشوند، اما در زمان اجراي نرمافزار، به مجرد نياز به آنها، كامپايل ميشوند و قابل استفاده خواهند بود. معماري و مدل Provider در ASP.NET 2.0 همانطور كه پيشتر هم گفتيم، معماري ASP.NET 2.0 به گونهاي است كه ميتوانيد هم از كدهايي كه قبلاً نوشتهايد استفاده كنيد و هم از ويژگيها و قابليتهاي نسخه دوم اين فناوري بيبهره نمانيد. اين ويژگي كه در حقيقت مهمترين ويژگي ASP.NET 2.0 است، از طريق مدلي به نام Provider Model فراهم ميشود. بسياري از قابليتهاي ASP.NET 2.0 از طريق Providerها در اختيار برنامهنويس قرار ميگيرند. Provider به زبان ساده يك كامپوننت يا شيء قابل اتصال (Pluggable) است كه ميتوان قابليتهاي آن را توسعه داد يا به كلي آن را با يك كد موجود تعويض كرد. منطق Provider ها در حقيقت از همان منطق شيء گرايي در برنامه نويسي الهام گرفته است. به بيان ديگر، ميتوانيد كاركرد و عملكرد آن قسمت از پلتفرم ASP.NET 2.0 را كه با مدل Provider نوشته شده است توسعه دهيد يا كالبد آن را به كلي با كد دلخواه خودتان عوض كنيد. آنچه براي موتور ASP.NET 2.0 مهم است اينترفيس و Syntax اين Providerها است و كاري با محتواي درون آنها ندارد. بنابراين اگر از عملكرد قسمتي از ASP.NET 2.0 راضي نيستيد، ميتوانيد كد جديدي براي انجام وظايف آن بنويسيد. در اينصورت موتور ASP.NET 2.0 به طور خودكار كد شما را اجرا خواهد كرد. سيستم مديريت كاربران (User Membership)، مديريت حالت (Session State Management)، معماري شخصيسازي (Personalization) و ماجول Site Navigation در نسخه دوم ASP.NET از جمله قسمتهايي هستند كه با مدل Provider نوشته شدهاند و شما ميتوانيد از قابليتهاي آنها استفاده كنيد يا كدي را كه قبلاً خودتان نوشتهايد، جايگزينشان كنيد. مثلاً احتمال زيادي دارد كه تاكنون كلاسي براي انجام كارهاي امنيتي مانند Login و نگهداشتن اطلاعات كاربراني كه وارد سيستم شدهاند و نيز مديريت سطح دسترسي آنان نوشته باشيد. اگر بخواهيد پلتفرم كاري خود را به ASP.NET 2.0 منتقل كنيد و مايل باشيد از API جديد اين نسخه براي كارهاي امنيتي استفاده كنيد، بايد سورس كد قبلي خود را كنار بگذاريد. اگر براي نوشتن اين كد زحمت زيادي كشيده باشيد، چنين كاري مطلوب شما نيست. پلتفرم ASP.NET 2.0 اين امكان را در اختيار شما ميگذارد كه راهي براي استفاده از كد موجود خود پيدا كنيد. در حقيقت معماري ASP.NET 2.0 با الهام از منطق شيء گرايي، طوري نوشته شده است كه شما بتوانيد ازSyntax متدها (توابع) و خواص (Properties) كلاسهاي نوشته شده در اين نسخه استفاده كنيد؛ بدون اينكه مجبور باشيد به كد داخل اين متدها و خواص محدود بمانيد. بنابراين Providerها پوستههايي هستند كه ميتوانيد دور كد موجود خود بكشيد. طوري كه موتور ASP.NET 2.0 بتواند زبان آن را بفهمد و با آن كار كند. فايده اين كار چيست؟ مزيت اين مدل هنگامي آشكار ميشود كه شما بدانيد برخي قابليتها در ASP.NET 2.0 به يكديگر وابستهاند. به عنوان مثال، ماجول شخصيسازي به ماجول امنيتي وابستگي دارد. بنابراين اگر بخواهيد از اولي استفاده كنيد، بايد Syntax ماجول دوم طوري باشد كه ASP.NET 2.0 منطقش را درك كند. اگر كد موجود خود را بدون تغيير به درون يك برنامه ASP.NET 2.0 تزريق كنيد، ماجول Personalization منطق آن را درك نخواهد كرد؛ هرچند كه ميتوانيد همچون گذشته كارهاي مربوط به Login و سطح دسترسي كاربران را به كمك كد دستساز خود انجام دهيد. علاوه بر اين، استفاده از مدل Provider اين حُسن را دارد كه در آينده نيز اگر قابليت جديدي به ASP.NET افزوده شود، شما همچنان ميتوانيد ميان كد موجود خود و API جديد پل ارتباطي برقرار كنيد. مايكروسافت براي آن دسته از برنامهنويسان كه مايل به استفاده از مدل Provider براي تزريق كد خود به ساختار ASP.NET 2.0 هستند، يكToolkit فراهم كرده است كه ميتوانيد آن را به همراه يك دوجين مقاله آموزشي از آدرس انتهاي مقاله (1) دريافت كنيد. شما تصوير قسمتي از يك صفحه به نام login.aspx را در يكي از مثالهاي آموزشي ASP.NET 2.0 مشاهده ميكنيد كه Username وPassword كاربر را ميگيرد و عمليات احراز هويت و تصديق كاربر را انجام ميدهد. با اين وجود، اگر به كد پشت اين صفحه مراجعه كنيد، با كمال تعجب هيچ كدي براي Authentication در آنجا پيدا نخواهيد كرد. پس اين كار چگونه صورت ميگيرد؟ اگر به سورس HTML صفحه مراجعه كنيد (شكل 7) متوجه ميشويد كه از دو سه كنترل جديد به نامهاي CreateUserWizard و CreateUserWizardStep و CompleteWizardStep استفاده شده است. اين كنترلها عمليات login را توسط API پيش فرض ASP.NET 2.0 براي اين منظور انجام ميدهند. اگر ميخواهيد بدانيد كدام تابع دقيقاً اين كار را انجام ميدهد، بايد به كلاس Membership مراجعه كنيد. در آنجا تابعي به نام ValidateUser خواهيد يافت. همان جايي است كه ميتوانيد كد خود را از طريق مدل Providerجايگزين كد موجود كنيد. در حقيقت تابع Membership.Provider.ValidateUser از نوع MustOverride است و بايد پياده سازي خاصي روي آن صورت بگيرد تا قابل استفاده باشد. موتور ASP.NET 2.0 پيادهسازي خاص خود را از طريق Membership.ValidateUser در اختيار شما ميگذارد. لايه نمايش و رابط بصري در ASP.NET 2.0 ●نمونهسازي از صفحات و Master Page دومين تغيير مهم در ASP.NET 2.0 نسبت به نسخه قبل، ورود مدل جديدي به فرآيند ساخت صفحات به نام Master Page است. تمام طراحان وب، چه تازهكاران و چه كهنهكارها همواره با اين مسئله روبهرو بودهاند كه موضوع تغييرات و اصلاحات صفحات وب يك سايت بزرگ را چگونه ساده كنند. تصور كنيد يك سايت از سي صفحه وب به وجود آمده باشد كه از حال و هوا و صفحهآرايي مشابهي پيروي ميكنند. اگر يك روز بخواهيم تغيير كوچكي در ظاهر اين سايت به وجود بياوريم، مثلاً محل لوگوي سايت را از بالا و وسط صفحات به گوشه سمت راست بالاي صفحات جابهجا كنيم، همين كار ساده ممكن است ساعتها وقت طراح را بگيرد؛ زيرا بايد اين كار را به صورت دستي سيبار تكرار كند. براي حل اين مشكل، از سالها پيش راهحلهاي گوناگوني مطرح شده است. اگر اين سايت فقط از صفحات استاتيك تشكيل شده باشد، يك سري راهحل خاص و در صورتي كه از صفحات دايناميك ساخته شده باشد، يك سري راه حل ديگر پيشنهاد شده است. مثلاً در حالت استاتيك، بعضي طراحان از تابع document.write در جاوااسكريپت براي ضميمه كردن سورس HTML قسمتي از صفحه در اين مثال، بالاي صفحه در تمام صفحات استفاده ميكنند و براي تغيير مورد نظر فقط فايل جاوااسكريپت را تغيير ميدهند. ولي اين راه مشكلات خاص خود را دارد كه مهمترين آن، عدم امكان مشاهده سورس HTML در حالت اصطلاحاً Design يا WYSIWYG پس از تبديل آن به كد جاوا اسكريپت است و طراح بايد براي هرگونه تغيير در فرم و قيافه اين قسمت از تخيل خود كمك بگيرد. بعضي از طراحان ديگر به قابليت Template سازي كه در برخي نرمافزارهاي طراحي وب مانند Dreamweaver گنجانيده شده است روي ميآورند. اين راه حل نسبتاً خوبي است، ولي چون استاندارد نيست، فقط همان نرمافزار زبان اين <عمليات Templateسازي> را ميفهمد و وقتي كل پروژه را از داخل نرمافزار ديگري مانند ويژوال استوديو باز ميكنيد، ديگر كارايي خود را از دست ميدهد. در حالت دايناميك، دست طراح تا حدودي بازتر است. در دوران ASP طراحان از Server-side inculdes براي اين منظور استفاده ميكردند. به اين ترتيب كه بخشهايي از يك Layout مانند بالا (Header) و پايين (Footer) صفحات كه فرمي مشابه داشت را داخل صفحات ASP مستقلي ميگذاشتند و آنها را ضميمه هر صفحه ميكردند. درASP.NET اين راهحل با بهره گيري از Web User Controls توسعه داده شده است. بنابراين ميتوانيد هرجايي از صفحه را كه احساس ميكنيد ممكن است بعداً احتياج به تغيير سراسري داشته باشد، به داخل يك فايل ascx منتقل ميكنيد و اين قسمتها را ضميمه تمام صفحات ميكنيد تا بعداً اگر نياز به تغييري در آن قسمت بود، فقط با اصلاح يك فايل، كل صفحات تغييرات جديد را منعكس كنند. اما امروزه معلوم شده است كه اين روش نيز محدوديتهاي خاصي دارد. اشكال اصلي در اين راه حل اين است كه اگر بخواهيد به عنوان مثال محل قرار گرفتن محتواي يك فايل ascx در صفحات را چند پيكسل جابهجا كنيد، باز هم مجبوريد تمام نمونه صفحات يك سايت (مثلاً همان سي صفحه مثال ما) را تغيير دهيد؛ زيرا اين تغيير چيزي را در محتواي صفحه ascx عوض نميكند، بلكه محل و نحوه استقرار كل آن را در يك الگوي اصلي تغيير ميدهد. اگر ميشد راه حل معكوسي پيدا كرد كه در آن به جاي اينكه عناصر يك صفحه (فايلهاي ascx) منحصر به فرد و صفحات دربرگيرنده آنها (فايلهاي aspx) متعدد باشند، عناصر صفحه متعدد و الگوي صفحه دربرگيرنده آنها منحصر به فرد بود؛ آنگاه اين مشكل حل ميشد. مدل Master Page پاسخي به همين نياز است. شما در ASP.NET 2.0 نه تنها ميتوانيد همچنان از Web User Controlها استفاده كنيد، بلكه راه حل معكوس آن، يعني Master Page نيز اضافه شده است. در حقيقت مدلMaster Page يك پيادهسازي دايناميك از همان راه حل الگوسازي است كه در نرمافزاري مثل Dreamweaver براي ساخت صفحات استاتيك مشاهده ميكنيد. در اين روش ابتدا يك صفحه الگو (Master Page) ميسازيد. سپس هنگام ساختن هر صفحه خاص از سايت، در ابتداي كد صفحه به موتور ASP.NET 2.0 ميگوييد كه الگو ياMaster Page اين صفحه كدام صفحه است. در مرحله بعد داخل همين صفحه خاص به سيستم ميگوييد كه عناصر داخل الگوي اصلي را چگونه پر كند. صفحه Master Page چيز عجيبي نيست، بلكه خودش يك صفحه وب دايناميك معمولي است كه توسط كد خاصي آن را به عنوان Master Page معرفي ميكنيد. تنها ويژگي اين صفحات آن است كه داخل آنها با استفاده از Tagهاي مخصوصي به سيستم ميگوييد فلان قسمت محل نمايش فلان آبجكت است و فلان قسمت ديگر محل نمايش آبجكت ديگر. وقتي موتور ASP.NET شروع به Render كردن يا توليد صفحه وب نهايي ميكند، ابتدا الگوي Master Page را با آبجكتهاي داخل يك صفحه خاص جمع ميزند. قسمت پررنگ شده محل نمايش يك آبجكت را نشان ميدهد. شكل 10 نمونهاي از يك صفحه ساده است كه ابتدا مرجع، يعني Master Page مربوطه، و سپس محتواي آبجكت مورد نظر را در خود دارد. وقتي اين صفحه توليد ميشود، به جاي قسمت پررنگ شده در Master Page محتواي آبجكتي كه ContentPlaceHolder1 ناميده ميشود، به نمايش درخواهد آمد. ويژگيهاي راهكار Master Page به دليل شباهتش به مدل الگوسازي در صفحات استاتيك به گونهاي است كه باعث ميشود طراحان وب حتي براي ساختن سايتهايي كه تاكنون به روش استاتيك ساخته ميشدند، تجديد نظر كنند و به فكر استفاده از ASP.NET 2.0 بيفتند. ● كامپوننتهاي Data Source سومين تغيير مهم در ASP.NET 2.0، به ميدان آمدن اشياي جديدي است كه Data Source ناميده ميشوند. چنان كه ميدانيد، در ASP.NET 1.x براي متصل كردن لايه نمايش يا همان صفحات وب (كه دربرگيرنده عناصر مختلف دايناميك مانند Server Control ها هستند) به لايه دادهها يا قسمت اصلي نرمافزار بايد برنامهنويس و طراح وب به صورت دستي مقداري كدنويسي كند. مثلاً اگر براي نمايش دادن فهرستي از مقالات از شيء DataGrid استفاده كرده باشيد، براي متصل كردن آن به بانك اطلاعاتي SQL Server يا اوراكل يا اكسس بايد از اينترفيس ADO.NET كمك بگيريد و مقداري كدنويسي كنيد تا نهايتاً يك شيء با ساختار و ماهيت IEnumerable مانند DataSet يا DataReader توليد كنيد و آن را به عنوان ورودي به DataGrid تزريق نماييد. اينها اساساً اشيايي مقيم در حافظه و غيرمتصل به پايگاهدادهها (disconnected) هستند كه هيچ تصويري درباره منشأ دادههايي كه داخل خودشان است ندارند. علاوه بر اين، اگر بخواهيد روي اطلاعاتِ به نمايش درآمده كارهايي مانند مرتبسازي (storage) يا صفحهبندي (custom paging) انجام دهيد، بايد چند تابع و چند خط كدنويسي ديگر هم انجام دهيد و در سراسر كد آن صفحه به ويژه مراقب عملكرد صحيح كد خود در اين زمينه باشيد. فلسفه مطرحشده اشياي Data Source در ASP.NET 2.0اين است كه زحمت اتصال به پايگاه دادهها و مديريتكردن عملياتي مانند مرتبسازي را از برنامهنويسي كم كند. در حقيقت شما به وسيله Data Source به جاي اينكه به يك شيء IEnumerable متصل شويد، مستقيماً به خود بانكاطلاعاتي وصل ميشويد. اشياي Data Source ميتوانند تعدادي از عمليات پايهاي مانند Insert ،Delete ،Select ،Update ،Sort و Count را انجام دهند و لازم نيست براي انجام اين عمليات كدنويسي اضافي انجام دهيد. براي استفاده از اشياي Data source بايد شيء مورد نظر شما قابليت استفاده از Data Source را داشته باشد. شيء DataGrid اين قابليت را ندارد، اما در ASP.NET 2.0 شيء جديدي معرفي شده � سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
-