Visual Studio 2005
صفحه 1 از 1
Visual Studio 2005
براي آشنايي با فضاي كلي برنامه نويسي در 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 هستيد.
شكل 2
در روش دوم كه روش جديدي در 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 را نشان ميدهد. به كمك اين ابزار ميتوانيد پروژه خود را مستقيماً به سايت مقصد آپلود كنيد.
شكل 3
5- ويژوال استوديوي 2005 امكانات مفصلي براي كار با بانكهاي اطلاعات دارد. به گونهاي كه شما را از مراجعه مستقيم به اينترفيس مديريت SQL Server يا ديگر بانكهاي اطلاعاتي تقريباً بينياز ميكند. ميتوانيد به كمك اين ابزارها جداول بانك اطلاعاتي خود را طراحي كنيد يا براي اجراي فرامين مختلف روي بانكاطلاعاتي Stored Procedure بنويسيد (شكل 4) و اين توابع را همانجا داخل ويژوال استوديوي اشكالزدايي (Debug) نماييد. ميكوشيم روش استفاده از اين ابزارها و امكانات را در شمارههاي آتي ماهنامه به تفصيل شرح دهيم.
شكل 4
6- شيوه Code-behind در ASP.NET 2.0 متحول شده است. به اين صورت كه ديگر لازم نيست متغيرهاي عضو(Member Variables) را در ابتداي سورس كد پشت هر صفحه اعلان (Declare) كنيد. فناوري ASP.NET 2.0 از يك سازوكار جديد به نام Partial Class استفاده ميكند كه به موتور داتنت امكان ميدهد تمام سورس كد صفحه را به صورت دايناميك و در همان زمان اجرا كامپايل كند و داخل يك كلاس بگذارد. به اين ترتيب سهولت زيادي در استفاده از شيوه Code-behind پديد ميآيد؛ زيرا ديگر لازم نيست به محض افزودن يك Server Control به صفحه، Event Handler آن را در كد پشت صفحه نيز معرفي كنيد.
شكل 5
در 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) دريافت كنيد.
شكل 6
شكل 7
شكل 8
تصاوير 6 و 7 و 8 مثال بسيار سادهاي از منطق اين مدل را نشان ميدهد. در شكل 6 شما تصوير قسمتي از يك صفحه به نام login.aspx را در يكي از مثالهاي آموزشي ASP.NET 2.0 مشاهده ميكنيد كه Username وPassword كاربر را ميگيرد و عمليات احراز هويت و تصديق كاربر را انجام ميدهد. با اين وجود، اگر به كد پشت اين صفحه مراجعه كنيد، با كمال تعجب هيچ كدي براي Authentication در آنجا پيدا نخواهيد كرد.
پس اين كار چگونه صورت ميگيرد؟ اگر به سورس HTML صفحه مراجعه كنيد (شكل 7) متوجه ميشويد كه از دو سه كنترل جديد به نامهاي CreateUserWizard و CreateUserWizardStep و CompleteWizardStep استفاده شده است. اين كنترلها عمليات login را توسط API پيش فرض ASP.NET 2.0 براي اين منظور انجام ميدهند.
اگر ميخواهيد بدانيد كدام تابع دقيقاً اين كار را انجام ميدهد، بايد به كلاس Membership مراجعه كنيد. در آنجا تابعي به نام ValidateUser خواهيد يافت.
در شكل 8 تعريف اين تابع را ميبينيد. اين، همان جايي است كه ميتوانيد كد خود را از طريق مدل Providerجايگزين كد موجود كنيد. در حقيقت تابع Membership.Provider.ValidateUser از نوع MustOverride است و بايد پياده سازي خاصي روي آن صورت بگيرد تا قابل استفاده باشد. موتور ASP.NET 2.0 پيادهسازي خاص خود را از طريق Membership.ValidateUser در اختيار شما ميگذارد.
2- فايلهاي موسوم به <پروژه> در ويژوال استوديوي 2005 حذف شدهاند و اكنون همه چيز در فايل solution هر پروژه قرار دارد. بنابراين مديريت پروژههاي ASP.NET اكنون آسانتر از گذشته است و سايتها ميتوانند به سادگي از مكان فيزيكي فعلي خود باز شوند.
3- در محيط Visual Web Developer 2005 يا Visual Studio 2005، يعني محيطي كه برنامههاي ASP.NET 2.0 داخل آن نوشته ميشوند، دو روش براي اجراي سايتها و صفحات دايناميك وجود دارد. روش اول همان روش قديمي است. به اين ترتيب كه يك وبسايت روي IIS تعريف ميكنيد و سپس هنگام تعريف يك پروژه جديد، آدرسHTTP آن سايت را به ويژوال استوديو ميدهيد تا فايلهاي پروژه را آنجا بگذارد. در اين صورت هنگام بازكردن و اجراي سايت، اين صفحات روي آدرس HTTP سايت مربوطه باز ميشوند. در اين حالت شما براي آزمايش كاركرد سايتي كه درست كردهايد، نيازمند اجراي وب سرور IIS هستيد.
شكل 2
در روش دوم كه روش جديدي در 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 را نشان ميدهد. به كمك اين ابزار ميتوانيد پروژه خود را مستقيماً به سايت مقصد آپلود كنيد.
شكل 3
5- ويژوال استوديوي 2005 امكانات مفصلي براي كار با بانكهاي اطلاعات دارد. به گونهاي كه شما را از مراجعه مستقيم به اينترفيس مديريت SQL Server يا ديگر بانكهاي اطلاعاتي تقريباً بينياز ميكند. ميتوانيد به كمك اين ابزارها جداول بانك اطلاعاتي خود را طراحي كنيد يا براي اجراي فرامين مختلف روي بانكاطلاعاتي Stored Procedure بنويسيد (شكل 4) و اين توابع را همانجا داخل ويژوال استوديوي اشكالزدايي (Debug) نماييد. ميكوشيم روش استفاده از اين ابزارها و امكانات را در شمارههاي آتي ماهنامه به تفصيل شرح دهيم.
شكل 4
6- شيوه Code-behind در ASP.NET 2.0 متحول شده است. به اين صورت كه ديگر لازم نيست متغيرهاي عضو(Member Variables) را در ابتداي سورس كد پشت هر صفحه اعلان (Declare) كنيد. فناوري ASP.NET 2.0 از يك سازوكار جديد به نام Partial Class استفاده ميكند كه به موتور داتنت امكان ميدهد تمام سورس كد صفحه را به صورت دايناميك و در همان زمان اجرا كامپايل كند و داخل يك كلاس بگذارد. به اين ترتيب سهولت زيادي در استفاده از شيوه Code-behind پديد ميآيد؛ زيرا ديگر لازم نيست به محض افزودن يك Server Control به صفحه، Event Handler آن را در كد پشت صفحه نيز معرفي كنيد.
شكل 5
در 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) دريافت كنيد.
شكل 6
شكل 7
شكل 8
تصاوير 6 و 7 و 8 مثال بسيار سادهاي از منطق اين مدل را نشان ميدهد. در شكل 6 شما تصوير قسمتي از يك صفحه به نام login.aspx را در يكي از مثالهاي آموزشي ASP.NET 2.0 مشاهده ميكنيد كه Username وPassword كاربر را ميگيرد و عمليات احراز هويت و تصديق كاربر را انجام ميدهد. با اين وجود، اگر به كد پشت اين صفحه مراجعه كنيد، با كمال تعجب هيچ كدي براي Authentication در آنجا پيدا نخواهيد كرد.
پس اين كار چگونه صورت ميگيرد؟ اگر به سورس HTML صفحه مراجعه كنيد (شكل 7) متوجه ميشويد كه از دو سه كنترل جديد به نامهاي CreateUserWizard و CreateUserWizardStep و CompleteWizardStep استفاده شده است. اين كنترلها عمليات login را توسط API پيش فرض ASP.NET 2.0 براي اين منظور انجام ميدهند.
اگر ميخواهيد بدانيد كدام تابع دقيقاً اين كار را انجام ميدهد، بايد به كلاس Membership مراجعه كنيد. در آنجا تابعي به نام ValidateUser خواهيد يافت.
در شكل 8 تعريف اين تابع را ميبينيد. اين، همان جايي است كه ميتوانيد كد خود را از طريق مدل Providerجايگزين كد موجود كنيد. در حقيقت تابع Membership.Provider.ValidateUser از نوع MustOverride است و بايد پياده سازي خاصي روي آن صورت بگيرد تا قابل استفاده باشد. موتور ASP.NET 2.0 پيادهسازي خاص خود را از طريق Membership.ValidateUser در اختيار شما ميگذارد.
pooriamirani- کاربر متوسط
- تعداد پستها : 119
تاريخ التسجيل : 2009-10-24
العمر : 38
آدرس پستي : pooriamirani1291@yahoo.com
f# در شرکت مایکروسافت به وفور مورد استفاده است
f# در شرکت مایکروسافت به وفور مورد استفاده است هم در MSR و هم در کل شرکت. رالف هربریش که یکی از مدیران دوگانه گروه بازی های مایکروافت و متخصص آموزش ماشینیست به استفاده فزاینده از F# اشاره میکند :
"اولین برنامه کاربردی برای فرستادن 110 گیگابایت از طریق 11.000 فایل
متنی در بیش از 300 دایرکتوری و وارد کردن آنها در بانک داده ای بود. کل
برنامه 90 خط بود که شامل توضیحات نیز میشد و در کمتر از 18 ساعت
توانست اطلاعات مربوطه را در محیط SQL بگنجاند یعنی 10.000 خط
برنامه متنی در هر ثانیه مورد پردازش قرار گرفت. همچنین توجه کنید که من
کد را بهینه نکردم بلکه برنامه را بصورت کاملا عادی نوشتم. این جواب بسیار
قابل توجه بود زیرا من انتظار داشتم نوشتن و اجرای برنامه حداقل یک هفته
کار ببرد. دومین برنامه ، برنامه پردازش میلیونها Feedback مشتریان بود،
ما روابط مدلی زیادی را توسعه دادیم ومن آنها را داخل برنامه F# تایپ کردم
همچنین داده های مربوط به پایگاه داده ای SQL را داخل آن فراخوانی کردم و
نتایج را در فایل داده ای MatLab ذخیره کردم. مقدار این برنامه در F# صد
خط بود که توضیحات را نیز شامل میشد. باز هم با اجرای این برنامه من تحت
تاثیر قرار گرفتم زیرا پردازش میلیونها مورد دادها 10 دقیقه و در یک کامپیوتر
عادی زمان برد.این برنامه را با C#از فعالیتهای قبلی ام داشتم که حدود 1000
خط طول داشت واصلا سریعتر ازاین برنامه نبود.کل کار از توسعه مدل روابط
با اجرا و دیدن نتایج دو روز زمان برد."
استفده از F# تنها در مایکروسافت رایج نیست و در خارج از آن نیز کاربردهایی دارد و یه سرعت در حال افزایش است. جود او کلی ، برنامه نویس شرکت Derivative One که یک شرکت تولید نرم افزارهای شبیه ساز مالی میباشد در جواب به این سوال که چرا این شرکت از F# در محصولاتش استفاده میکند ؟ میگوید :
"ما مدلهای مالی خود را در C# و F# مورد مقایسه قرار دادیم و مشاهده کردیم
که عملکرد یکسان است اما از F# بیشتر خوشمان آمد زیرا روش خلاصه تری
دارد. یکی از مشکلات ما با F# نبود اطلاعات در مورد این زبان بود وبه نظر
ما کتابی که هم اکنون توسط دون سیم برای آموزش F# ارائه شده میتواند کمک
خوبی در این مورد باشد."
تنها کتاب موجود
هدف این کتاببه صورت عمده برنامه نویسان حرفه ای IT هستند که میخواهند سریعا با F# آشنا شوند. هرگونه تجربه ای که شما در زمینه برنامه نویسی به هر زبانی داشته باشید میتواند در یادگیری این زبان به شما کمک کند حتی در صورتیکه بطور کلی تازه کار باشید و هیچ زبان برنامه نویسی را قبل از F# کار نکرده باشید میتوانید F# را به عنوان اولین تجربه خود انتخاب کنید و این کتاب در این زمینه هم کمک خواهد بود. البته با وجود اینکه این کتاب سعی ندارد برنامه نویسی را به صورت پله پله آموزش دهد تمام حوزه های مهم F# را مورد اشاره قرار داده.
"اولین برنامه کاربردی برای فرستادن 110 گیگابایت از طریق 11.000 فایل
متنی در بیش از 300 دایرکتوری و وارد کردن آنها در بانک داده ای بود. کل
برنامه 90 خط بود که شامل توضیحات نیز میشد و در کمتر از 18 ساعت
توانست اطلاعات مربوطه را در محیط SQL بگنجاند یعنی 10.000 خط
برنامه متنی در هر ثانیه مورد پردازش قرار گرفت. همچنین توجه کنید که من
کد را بهینه نکردم بلکه برنامه را بصورت کاملا عادی نوشتم. این جواب بسیار
قابل توجه بود زیرا من انتظار داشتم نوشتن و اجرای برنامه حداقل یک هفته
کار ببرد. دومین برنامه ، برنامه پردازش میلیونها Feedback مشتریان بود،
ما روابط مدلی زیادی را توسعه دادیم ومن آنها را داخل برنامه F# تایپ کردم
همچنین داده های مربوط به پایگاه داده ای SQL را داخل آن فراخوانی کردم و
نتایج را در فایل داده ای MatLab ذخیره کردم. مقدار این برنامه در F# صد
خط بود که توضیحات را نیز شامل میشد. باز هم با اجرای این برنامه من تحت
تاثیر قرار گرفتم زیرا پردازش میلیونها مورد دادها 10 دقیقه و در یک کامپیوتر
عادی زمان برد.این برنامه را با C#از فعالیتهای قبلی ام داشتم که حدود 1000
خط طول داشت واصلا سریعتر ازاین برنامه نبود.کل کار از توسعه مدل روابط
با اجرا و دیدن نتایج دو روز زمان برد."
استفده از F# تنها در مایکروسافت رایج نیست و در خارج از آن نیز کاربردهایی دارد و یه سرعت در حال افزایش است. جود او کلی ، برنامه نویس شرکت Derivative One که یک شرکت تولید نرم افزارهای شبیه ساز مالی میباشد در جواب به این سوال که چرا این شرکت از F# در محصولاتش استفاده میکند ؟ میگوید :
"ما مدلهای مالی خود را در C# و F# مورد مقایسه قرار دادیم و مشاهده کردیم
که عملکرد یکسان است اما از F# بیشتر خوشمان آمد زیرا روش خلاصه تری
دارد. یکی از مشکلات ما با F# نبود اطلاعات در مورد این زبان بود وبه نظر
ما کتابی که هم اکنون توسط دون سیم برای آموزش F# ارائه شده میتواند کمک
خوبی در این مورد باشد."
تنها کتاب موجود
هدف این کتاببه صورت عمده برنامه نویسان حرفه ای IT هستند که میخواهند سریعا با F# آشنا شوند. هرگونه تجربه ای که شما در زمینه برنامه نویسی به هر زبانی داشته باشید میتواند در یادگیری این زبان به شما کمک کند حتی در صورتیکه بطور کلی تازه کار باشید و هیچ زبان برنامه نویسی را قبل از F# کار نکرده باشید میتوانید F# را به عنوان اولین تجربه خود انتخاب کنید و این کتاب در این زمینه هم کمک خواهد بود. البته با وجود اینکه این کتاب سعی ندارد برنامه نویسی را به صورت پله پله آموزش دهد تمام حوزه های مهم F# را مورد اشاره قرار داده.
pooriamirani- کاربر متوسط
- تعداد پستها : 119
تاريخ التسجيل : 2009-10-24
العمر : 38
آدرس پستي : pooriamirani1291@yahoo.com
صفحه 1 از 1
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد