Microsoft .NET
Microsoft .
NET واژه ای که به مثابه یک چتر ، شماری از فن آوریهای که اخیراً توسط شرکت مایکروسافت عرضه شده اند در بر می گیرد .
با کنار هم قرار گرفتن این فن آوریها ، یک تحول اساسی در بستر توسعه مایکروسافت ، از زمان انتقال از سیستم 16 بیتی به سیستم 32 بیتی ایجاد شده است .
Microsoft .
NET شامل فن آوریهای زیر می شود :
.
NET Framework
.
NET Enterprise Servers
.
NET Languages and Language Tools
.
NET Framework
.
NET Framework فن آوری است که درتوسعه ASP.
NET ضروری می نماید و ارائه کننده سرویس های مقدماتی سیستم هایی است که ASP.NET را مورد پشتیبانی قرار می دهند ، نظیر ایجاد فرم های ویندوز و فن آوری جدیدrich client development که در .NET ارائه شده است .
درست همانند بسته اختیاری (Option Pack) ویندوز NT4 ، که به همراه ویندوز NT4 نصب می شد Internet Information Server 4.0 (IIS) وactive Server Pages Technologies را به ویندوز NT4 می افزود ،NET Framework ، نیز یک بسته add-on ( افزودنی ) می باشد که روی ویندوز2000 ، ویندوزNT4.0 و ویندوز 98/ME نصب می شود و سرویس های مقدماتی پشتیبانی سیستم را به فن آوریهای .NET می افزاید .
Framework درنسخه های جدیدتر سیستم عامل های سرویس دهنده و ویندوز ، نظیر .NET Server نیز بکار خواهد رفت .
Common Language Runtime
Common Language runtime یا ( به اختصار Runtime ) محیط runtime ای را ایجاد می کند که در آن محیط کدهای نوشته شده به زبانهای .NET اجرا می گردند .
runtime مدیریت اجرای کدهای .NET را برعهده دارد ، که شامل مدیریت بلند مدت حافظه و آبجکت ها می شود .
علاوه بر این سرویس های مدیریتی ، runtime به توسعه دهندگان امکان اشکال زدایی ، رسیدگی به استثنائات و وراثت در میان چندین زبان را می دهد .
لازمه اجرای این وظایف این است که کامپایلر های زبان از خصوصیات زبان مشترک با Common Languge Specification (CLS) ، که نمایانگر زیر مجموعه ای از انواع داده پشتیبانی شده توسط runtime می باشد و در تمام زبانهای مورد استفاده .NET مشترک است ، پیروی نمایند .
کامپایلر هر زبانی کدهای نوشته شده توسط برنامه نویسان را به یک زبان میانجی به نام Microsofot Intermediate Language (IL ,MSIL) کامپایل می کنند .
سپس این IL در زمان نصب به وسیله runtime ، به کد محلی کامپایل می شود و یا حین اولین اجرا به صورت (GIT) Gust-In-Time کامپایل می شود .
ازکدی که به IL کامپایل می شود و به وسیله runtime مدیریت می گردد ،به عنوان managed Code نام برده می شود .
دلیل این نام گذاری بر عهده گرفتن مسئولیت مدیریت اجرای کد توسط runtime است ، که شامل معرفی آبجکت ها ، اختصاص حافظه و جمع آوری پس مانده آبجکت ها و حافظه می باشد .
از کامپوننت های نوشته شده در Managad Code و اجرا شده توسط runtime به عنوان .NET Managed Assemblies نام برده می شود و یا به اختصار فقط assemblies خوانده می شوند .
Assemble ها واحدهای اصلی گسترش در دنیای .NET هستند و شباهت زیادی به کامپوننت های Com دارند .
با این تفاوت که ، در حالی که کامپوننت های Com حاوی یک نوع کتابخانه متناظر برای تعریف چگونگی به کارگیری آنها توسط سرویس گیرنده هستند ، یک Assembly حاوی یک manifest است که مجموعه ای از Metadata ها (فرداده ها ) می باشند که محتویات assembly را تعریف می کنند .
از فوائد دیگر آن ، ماهیت خود تعریفی کامپوننت های .NET است .
به این معنی که برای اینکه بتوانند کار کنند ، نیازی به ثبت شدن ( رجیستر شدن) روی کامپیوتر ندارند .
این Metadata همچنین وظیفه تعریف وابستگی ها و اطلاعات تفسیری متناظر با یک assembly را بر عهده دارد .
این نه تنها باعث کسب اطمینان از برآورده شدن وابستگی های ضروری assembly ها می شود ، بلکه به این معنی است که چندین نسخه از یک assembly می توانند درکنار هم روی یک کامپیوتر بدون ایجاد اختلال اجرا شوند .
این موضوع گامی بزرگ در تقابل با “DLL Hell ” ( مکافات DLL ) است ، که برای تعداد کثیری از برنامه نویسان آزار دهنده است .
با روی کار آمدن .NET این مسائل به فراموشی سپرده خواهند شد .
از آنجائی که برنامه کاربردی [ مورد نظر ] می داند برای کدام نسخه از یک assembly طراحی شده است .
می تواند با گرفتن پرس و جو (query) از متادیتای اسمبلی ، نسخه صحیح را از میان نسخه های مختلف همان اسمبلی بابد .
با روی کار آمدن .NET این مسائل به فراموشی سپرده خواهند شد .
می تواند با گرفتن پرس و جو (query) از متادیتای اسمبلی ، نسخه صحیح را از میان نسخه های مختلف همان اسمبلی بابد .
.NET Framework Class Library .NET Framework Class Library برای پشتیبانی از تلاشهای به عمل آمده توسط برنامه نویسان و با ارائه کلاسهای اصلی برنامه نویسان می توانند [ برای ایجاد کلاسهای فرعی ] از آنها به ارث ببرند ، طراحی شده است .
این یک مجموعه سلسله مراتبی از کلاسهای .NET است که برنامه نویسان می توانند در برنامه های کاربردی خودشان از انها استفاده نمایند .
این کلاسها که به وسیله محفظه هایی به نام namespace سازماندهی می شوند ، هر دو نوع عملکرد مقدماتی و پیشرفته را که برنامه نویسان می توانند به آسانی برای دومین مرتبه مورد استفاده قرار دهند را فراهم می نمایند .
آنها شامل کلاسهایی که از انواع داده های مشترک مقدماتی ؛ کلاسهاس فراهم کننده دسترسی به داده ؛ و کلاسهایی که چنین سرویس های سیستمی مانند طراحی ( که خبر خوبی برای کسانی است که از کامپوننت های third-party برای ایجاد تصاویر در یک برنامه کاربردی ASP به صورت پویا استفاده می کنند ) ، عملکرد شبکه ( شامل DNS و reverse DNS Lookups ) ، و خیلی چیزهای دیگر را پشتیبانی می کنند .
کتابخانه همچنین شامل کلاسهایی است که اساس ASP.NET را تشکیل می دهند و شامل کلاسPage ( بخشی از یک namespace به نام System .Web .UI ) که تمام صفحات ASP.NET از آن مشتق می شوند .و کلاسهای زیاد دیگری در یک namespace به نام System.Web و فرزندان آن می باشند .
Windows.
NET Server به همان صورت که Microsoft ,Internet Information Server , Microsoft Trasaction Server Message Queue Server وinternet Explorer محصولاتی بودند که جداگانه نصب می شدند و سرانجام درون سیستم عامل اصلی محصور شدند ،.NETFramework Class Library , runtime نیز جزئی از سیستم عامل ویندوز خواهند شد .
بیل گیست در [ کنفرانس ] Tech Ed 2001 اعلام کرد که اولین نسخه ویندوزی که همراه با فن آوریهای .NET عرضه می شود ، Windows.NET Server خواهند بود .
سرورهای Enterprise سرورهای .NET Enterprise ، اولین گام در تکامل سیر توسعه مایکروسافت هستند .
با اینکه سرورهای .NET Enterprise ، صریحاً از runtime ، Class Library بهره نمی گیرند ، اما زیربنای محکمی را تشکیل می دهند که می توان بر روی آن شروع به ساختن روشهای تجاری enterprise- class کنید .
سرورهای .NET Enterprise شامل مواد زیر هستند : SQL Server 2000 Exchange 2000 Server Commerce Server 2000 Host Integration Server 2000 BizTalk Server 2000 Internet Security and Accleration Server 2000 Application Center 2000 این محصولات در کنار یکدیگر ، فراهم آورنده بخش عمده کارآیی موردنیاز برای اکثر کارهای بزرگ هستند .
SQL Server 2000 SQL Server 2000 ، سیستم مدیریت پایگاه داده (DBMS) کلاس تجاری شرکت مایکروسافت است .
بر پایه موقعیتی که SQL Server 7.0 به دست آورد ، SQL Server 2000 به دست آورد ، SQL Server 2000 نیرومند ، با انعطاف پذیری بالا و با قابلیت های XML است و برای توسعه دهندگان برنامه های کاربردی بازگشت سرمایه ای درکوتاه ترین زمان ممکن را به همراه دارد .
در میان امکاناتی که SQL Server 2000 ارائه می دهد ، به موارد زیر می توان اشاره کرد : اجرای چندین SQL Server 2000 به صورت همزمان روی تنها یک ماشین .
همکاری همزمان با SQL Server 2000 ، شامل مدیریت SQL Server 7.0 و SQL Server 2000 از یک SQL Server Enterprise Manager ورودی ـ خروجی داده به صورت XML موتور OLAP مجتمع شده انعطاف پذیری جهانی ( طبق سنجش به عمل آمده بوسیله شرکت کنترل کیفیت TPC-C ؛ آدرس http:// www.tpc.org را برای کسب اطلاعات بیشتر و آخرین نتایج کنترل کیفیت ببینید .
Exchange 2000 Server Exchange 2000 Server ، ابزار پیام رسانی و تشریک مساعی شرکت مایکروسافت است .
علاوه بر امکانات پیام رسانی و تشریک مساعی مورد استفاده درEchange Server ، Exchange 2000 مخزن وب XML محلی را ارائه می دهد ، که یک نسخه کاملاً بهینه سازی شده ای از Outlook Web Access که با Active Directory مجتمع شده است ، می باشد .
برای برنامه نویسانی که نیازمند پیام رسانی یا امکانات پیگیری و مدیریت فعالیتهای پروژه و ساخت برنامه کاربردی هستند ،Exchange Server 2000 کارآیی خارج از محدوده زیادی را ارائه می دهد که می تواند در کاهش زمان ایجاد و بهره وری مؤثر باشد .
Commerce Server 2000 با استفاده از سایتهای مبتدی Commerce Server 2000 ، برنامه نویسان می توانند به راحتی با وارد کردن کاتالوگ محصول ، یک سایت تجارت الکترونیکیbusiness-to-Consumer کاملاً کارآمدی را ایجاد نمایند .
گرچه سایت آغازین فقط یک واسط کاربر مقدماتی را ارائه می دهد .
از تمامی منطق مورد نیاز برای اجرای پیمایش جستجو و مرور محصولات و سبد خرید پشتیبانی می کند .
با ارائه یک واسط کاربر سفارشی [ درگام اضافی بعدی ] ، برنامه نویسان می توانند به آسانی یک سایت تجارت الکترونیکی با واسط کاربر قوی و کارآییbackend ( بخش اجرایی برنامه کاربردی درسرویس دهنده ) که شامل ابزارهای تحلیل ترافیک و داده ( بر پایه SQL Server 2000 OLAP engine ) می شوند و به سازمانهای اجازه ردگیری فروش ها ، ترافیک سایت و غیره را می دهند ، را بسازند .
امکانات جدید در Commerce Server 2000 ، شامل موارد زیر است : سیستم قدرتمند پروفایل گیری و ثبت کاربران مدیریت کاتالوگ بهینه سازی شده تحلیل تجارت در اینرنت ( با استفاده از (SQL Server 2000 Analysis Service) Host Integration Server 2000 Host Integration Server 2000 جانشین SNA Server مایکروسافت است و به این هدف طراحی شده است تا برنامه های کاربردی نوشته شده در بستر ویندوز ، اجازه دسترسی به داده ها و تعامل با برنامه ها در سیستمهای back-end قدیمی ، همانند DB2 روی AS/400 ، سیستم های تراکنشی IMS وCISC ومحیطهای پیام رسانی بر اساس سری های MQ ، را داشته باشند .
BizTalk Server 2000 BizTalk Server 2000 یکی از مهمترین سرورهای Enterprise است و به برنامه نویسان امکان ایجاد برنامه های کاربردی تجارت الکترونیکی business-to-business با قابلیت بالای کارکردن در محیطهای متفاوت ، نیرومند و مؤثر را می دهد .
امکاناتBizTalk Server 2000 شامل موارد زیر می باشد : تغییرات اسناد مبتنی بر XML منظم ساختن فرآیند تجاری (orchestration) ریشه یابی و رد یابی اسناد BizTalk Server اجازه می دهد ، اسناد را( نظیر سفارشات خرید ) درهر قالبی ( فرمتی) که باشند ، با استفاده از توابع متغیر مبتنی بر زبان XML موجود در BizTalk Mapper ارسال و دریافت نماید .
BizTalk Orchestrator امکان رسم سریع و آسان دیاگرام یک فرآیند تجاری را می دهد و سپس هر مرحله را به صورت اسکریپت یا کامپوننت هایی که آن مرحله را به اجرا در می آورند ، ترسیم می کند وقتی که فرآیندی ترسیم شد،BizTalk Orchestrator می تواند سندی مبتنی بر XML را ایجاد نماید که فرآیند تجاری را شرح می دهد .
سپس این سند توسط BizTalk Orchestrator runtime برای اجرای فرآیند به کار می رود .
از فوائد آشکار این رهیافت این است که امکان توسعه سریع به طرز چشمگیری و اصلاح آسان فرآیند تجاری را امکان پذیر می سازد .
Internet Security and Acceleration Server 2000 به عنوان جانشینی برای محصول Proxy Server مایکروسافت ، طراحی و توسعه یافته است ، امنیت firewall و امکانات کاشه کردن (Caching) را که سازمانها برای ارتقاء سطح امنیتی و عملکرد شبکه های متصل به اینترنت خود مورد استفاده قرار می دهند را فراهم می نماید .
از امکانات جدید ISA موارد زیر را می توان نام برد : بازرسی جامع مزاحمین توانایی ایجاد و به کار گیری سیاست های استفاده ازاینترنت توانایی زمان بندی ( برنامه ریزی) دریافت محتویات اعمال گزارش ها و logging به صورت جامع برای سادگی ایجاد و مدیریت کلاسترهای وب یا برنامه های کاربران سرورها طراحی شده است .Application Center 2000 یک کنسول مدیریتی را ارائه می دهد که ایجاد گروهی از سرورها ،افزودن یک سرور جدید به گروه ( شامل برنامه های کاربردی یا محتوای تکراری برای سرور جدید ) متوقف کردن یا راه اندازی مجدد سرورها برای ارتقاء و غیره را میسر می سازد .
معماریASP.NET با اینکه در ASP.NET امکانات موجود در ASP کلاسیک به طرز گسترده ای استفاده شده است.
اما تغییرات عمده ای نیز در معماری ASP.NET به وجود آمده است که این شامل بهینه سازی ها و امکانات جدید می شود.
چه چیز جدیدی در ASP.NET وجود دارد : فرم های وب: این مدل جدید برنامه نویسی ASP.NET است .
فرمهای وب بهترین هایASP را با برنامه نویسی قدرتمند و کارآمد Visual Basic در هم می آمیزند .
می توانید کنترل ها را به درون یک صحنه بکشید و سپس برای ایجاد حالت محاوره ای ، آبجکت های تجاری را فراخوانی نمایید و غیره .
کنترل های سرویس دهنده : از اجزاء اصلی مدل برنامه نویسی فرم های وب ، کنترل های سرویس دهنده هستند.ASP.NET تقریباً به عناصر HTML ، نگاشت می شوند و قابلیت برنامه نویسیServer-side نیرومندی را ارائه ی دهند .
کنترل های سرویس دهنده روی سرویس دهنده اجرا شده و می توانند HTML را که مخصوص مرورگرهای سطح بالا نظیر Internet Explorer 5.x و پس از آنو هر مرورگری که با HTML 3.2 سازگار باشد ایجاد شده اند را به خروجی بدهند .
سرویس های وب: این بخش کلیدی ASP.NET ، به برنامه نویسان اجازه می دهد تا سرویس های برنامه نویسی را در دسترس برنامه نویسان دیگر روی اینترنت ( یا یک شبکه اینترنت محلی ) ، سرویس های وب بر مبنای استاندارد (SOAP) یا Simple Object Access Protocol قرار دهند .
Caching ( حافظه پنهان) : ASP.NET ، شامل موتور حافظه پنهان قدرتمند جدیدی است که به برنامه نویسان اجازه بهبود کارآیی برنامه های کاربردی را به وسیله کاهش بارگذاری های پردازش روی سرویس دهنده های پایگاه داده و سرویس دهنده وب را می دهد .
یهینه سازی های پیکربندی : ASP.NET ، از روش جدیدی برای ذخیره اطلاعات پیکربندی برنامه های کاربردی وب بهره می گیرد .
به جای ذخیرهIIS ، این اطلاعات در پایگاه داده ای که دسترسی به آن دشوار است ، در فایل های پیکر بندی قابل خواندن توسط ماشین و انسان و برمبنای XML ذخیره می شوند .
امنیت : امنیت فاکتور بسیار مهمی در برنامه های کاربردی وب امروزی است .
مدل امنیتی در ASP.NET به شکلی اساسی بهبود یافته و شامل متدهای تأیید اعتبار ارتقاء یافته جدید ، امنیت دسترسی به کدها و مجوزها بر اساس نقشی که ایفاء می کنند می شود .
ایجاد یک برنامه کاربردی وب ASP.NET باVisual Basic .NET برای ایجاد یم برنامه کاربردی در Visual Basic .NET مراحل زیر را دنبال کنید : 1ـ Visual Basic .NET را با انتخابPrograms از منوی شروع ، انتخابMicrosoft Visual Basic .NET 7.0 و کلیک روی Microsoft Visual Studio .NET 7.0 آغاز کنید .
2ـ از منویFile گزینه New را انتخاب کنید و سپس Project را برگزینید .
3ـ در کادر محاورهNew Project ، یک زبان و یک نوع پروژه را انتخابکنید ( دراین موردWeb Application ) نام و موقعیت پروژه جدید را وارد کنید و بر روی دکمه OK کلیک کنید .
4ـ Visual Studio .NET ، تمام فایل های ضروری و دایرکتوری مجازی IIS را برای پروژه ایجاد می نماید .
ایجاد یک برنامه کاربردی وب با .NET SDK ایجاد یک برنامه کاربردی وب با SDK کمی پیچیده تر از Visual Studio .NET است .
کماکان ، ایجاد یک برنامه کاربردی وب نسبتاً راحت است .
فرآیند آن شامل مراحل زیر می باشد : ایجاد یک ریشه برنامه کاربردی ایجاد زیر دایرکتوری ها ایجاد صفحات aspx ایجاد یک فایلGlobal.asax ایجاد یک فایلWeb.Config مجوزهای دسترسی پیش از آنکه مجوزهای Write ,Execute یا Browse را انتخاب کنید ، باید اطمینان حاصل کنید که بافت امنیتی هر کدام را می فهمید .
این تنظیمات در صورتی که به طور مناسبی استفاده نشده باشند ، می تواند برنامه های کاربردی شما را در برابر حملات مهاجمان (hacker) هاآسیب پذیر سازند .
لیست زیر هدف هر دسترسی موجود و موقعیت مناسب استفاده از آن را توضیح می دهد : Read : با این مجموعه مجوزها ، سرویس گیرنده می تواند فایل ها را بخواند .
این مجوز به صورت پیش فرض انتخاب می شود .
Run Scripts : امکان اجرای فایل هایی نظیر فایل های ASP را فراهم می نماید اما به فایل های اجرایی (.exe,dll) امکان اجرا را نمی دهد .
Execute : امکان اجرای انواع فایل های اجرایی نظیر برنامه های کاربردی .exe و.dll و همچنین برنامه های کاربردی CGI را می دهد .
Write : با این مجموعه مجوزها ، سرویس گیرنده ها می توانند درون یک دایرکتوری بنویسند .
Browse : سرویس گیرنده هایی که URL ی را وارد می کنند که یک نام فایل یا یک سند پیش فرض را مشخص نمی کند (نظیرindex.htm یاdefault.asp ) لیستی از فایل های دروم دایرکتوری را که درحال مرور آن می باشند را دریافت خواهندکرد .
ایجاد یک فایل Clobal.asax علاوه بر ایجاد ریشه برنامه کاربردی و افزودن زیر پوشه ها و محتویات ، همچنین می توانید فایلی به نام Giobal.asax را به برنامه کاربردی وب خود اضافه کنید .
Clobal.asax ( که به صورت پیش فرض به برنامه های کاربردی وب Visual Studio.NET اضافه می گردد ) فایلی است که در ابتدا برای فراهم نمودن کد start-up وclean-up مربوط به آبجکت های Session وapplication و همچنین برای تنظیم گزینه های کد به طور کلی برای برنامه کاربردی به کار می روند .
در Global.asax می توانید: رویدادهای Session وapplication منتخب را پاسخ دهید .
رویدادهای HttpModules سفارشی که برای برنامه کاربردی خود ایجاد نموده اید ، پاسخ دهید .
namespace هایی را با استفاده از دستور @Import به برنامه کاربردی وارد کنید .
سپس می توانید بدون نیاز به وارد نمودن namespace به هر صفحه اعضای namespace ، هر کدی راکه دربرنامه کاربردی خود مورد استفاده قرار دهید .
اسمبلی ها را برای استفاده در برنامه کاربردی خود با استفاده ازدستور @Assebbly ثبت نمایید .
ایجاد یک فایل Web.config فایل اختیاری دیگری که می توانید به برنامه کاربردی خود بیفزایید ،web.config نام دارد .
این یک فایل مبتنی برXML و قابل خوانده شدن برای انسان و ماشین است که گزینه های پیکر بندی برنامه کاربردی شما را در بر دارد .
دلیل اختیاری بودن فایل Web.config این است که اگر آن را لحاظ نکنید ، برنامه کاربردی شما تنظیمات فایل پیکر بندی سطح ماشینMachine-config را به ارث خواهد گرفت .
شما اگر یک فایلWeb.config را به ریشه برنامه اصلی خود بفزایید ، تنظیمات پیکربندی درون آن فایل در سراسر برنامه کاربردی شما اعمال خواهدشد .
شما می توانید این تنظیمات را در نواحی خاصی از برنامه کاربردی خود و به وسیله ایجاد پوشه های فرزند در درون برنامه کاربردی خود که فایل های Web.config خودشان را شامل می شوند ، پوشش دهید .
استفاده از جلسات Cookieless یکی از موانعی که همچنان بر سر راه برنامه نویسان وبی که از ASP کلاسیک استفاده می کنند قرار دارد، چگونگی کار باوضعیت Session برای کاربرانی است که مرورگرهایشان نمی توانند یا نمی خواهند کوکی ها را مورد استفاده قرار دهند .ASP کلاسیک راه حل خاصی برایاین حالت ارائه نکرده است ، اما در ASP.NET کار نسبتاً آسان است .
1ـ فایل پیکربندی Web.config برنامه کاربردی خود را باز کنید و بخش پیکربندی sessionState را بیابید .
2ـ صفت cookialess را از “false ” به “true ” تغییر دهید .
3ـ تمام بخش پیکربندی sessionState مانند زیر خواهد بود ( توجه داشته باشید که صفاتsqlConnectionString , stateConnectionString وtimeout حذف شده اند ).
cookiless = “true”/> وقتی که صفت cookieless بر روی“true ” تنظیم شده باشد ، ASP.NET به طور خودکار مقدارSessionIID را در URL تمام درخواستها خواهد گنجاند .
قالب بندی URL برای جلسات Cookieless ASP.NET به طور اتوماتیک گنجاندن session ID های شما را در URL های نسبی برنامه کاربردی انجام می دهد ، اما نه برای URL های مطلق و نه از URL های برنامه های کاربردی غیر از برنامه کاربردی شما .
اگر درخواستی برای صفحه ای درsetup جلسات cookieless دریافت شود که حاوی یک session ID گنجانده شده نیست ،ASP.NET یکsession ID جدید ایجاد خواهد کرد و آن را در URL مربوط به درخواست خواهد گنجاند .
جهت جلوگیری از این مسئله ، می توانید URL ها را با فراخوانی متد ApplyAppPathModifier آبجکت اصلی Response ، به طور دستی قالب بندی (یا فرمت ) کنید و به آن یک مسیر مجازی اختصاص دهید .
این متد URL مطلقی را باز خواهد گرداند که حاوی session ID گنجانده شده می باشد و برای استفاده با جلسات cookieless است .
یک URL مطلق ، شامل پروتکل ، دامنه ، مسیر و نام فایل لازم برای درخواست یک منبع است .
دستور زبان این متد به صورت زیراست : Dim myAbsoluteURL As String MyAbsoluteURL =Response .ApplyAppPathModifier(“foo.aspx”) استفاده از کوکی های پایدار ( دائمی) برای ذخیره وضعیت کاربر که در طول جلسات متعدد مرورگر دوام داشته باشد ، نیاز به کوکی های دائمی دارید .
برای پایدار کردن کوکی ، انقضاء آن باید در آینده صورت پذیرد .
برای اینکه کوکی ایجاد شده در مثال قبل ، برای دو سال دوام داشته باشد ، خط کد زیر را درست قبل از افزودن مجموعه Response.Cookies اضافه کنید : MyCookie.Expires = Now.AddDays(2) در اینجا مواردی که باید در استفاده از کوکی های پایدار مد نظر داشت، آمده است.
کوکی ها به خاطر سوء استفاده ای که توسط برخی شرکتهای وب ، در رد یابی عادتهای کاربران در مرور اینترنت انجام گرفته ، دارای شهرت خوبی نیستند ، بهتر است به کاربران خود توضیح دهید که دقیقاً چرا و چگونه از کوکی های پایدار استفاده می کنید و فوائد پذیرش آن کوکی ها را شرح دهید .
مدت انقضاء کوکی های پایدار را تا حد امکان کاش دهید .
برای اکثر سایت ها ، انقضاء کوکی باید چند ساعت یا چند روز به طول بیانجامد، یا حداکثر چند ماه .
تنظیم انقضاء کوکی شما به روی سالها ، احتمالاً در آینده نتیجه ای جز رد شدن کوکی های شما توسط بیشتر کاربران را نخواهد داشت .
هرگز داده های کاربر را ذخیره نکنید ، داده هایی نظر شماره کارت اعتباری یا داده های دیگر که ممکن است درون یک کوکی باعث مخاطره یا قطع استفاده از کوکی شود .
امنیت در ASP.NET برنامه های کاربردی که درمعرض اینترنت قرار می گیرند ، اساساً در برابر گروهی از مسائل آسیب پذیر هستند که دامنه آنها از تلاش برای سرقت داده تا بد شکل کردن سایت ها و یا حملات تکذیب سرویس گسترده است و هیچ فرقی ندارد ، هر سیستم عامل یا نرم افزاری را هم که اجرا کنید ، این آسیب پذیری به صورت کلی از میان نخواهد رفت .
نرم افزار یک دانش تکامل نیافته است و متأسفانه هنوز نیاز به وجود یک سیستم عامل غیر آسیب پذیر در حملات احساس می شود .
خبر خوش این است که اکثر نرم افزارها ، شامل ویندوز 2000 ، ویندوز XP وIIS اگر شما از بهترین روشها ( مجموعه ای مشخص از روال ها و سیاستهای توصیه شده ) برای امنیت پیروی کنید ، می توانند کاملاً امن گردند .
همانند دنبال کردن و نصب برنامه های ترمیمی امنیتی به محض اینکه انتشار می یابند .
یکی از مهمترین چیزها درباره تمرینهای امنیت در صنعت ما این است که چه تعداد از سرویس دهنده ها (بر پایه Microsoft و غیره ) در دنیای اطراف ما بدون نصب برنامه های ترمیمی که برای ماهها یا حتی سالها در دسترس بوده اند در معرض اینترنت قرار گرفته اند و کار می کنند .
اهمیت امنیت طراحی یک برنامه کاربردی بدون در نظر گرفتن امنیت ، همانند طراحی یک برنامه کاربردی بدون امنیت است .
افزودن امنیت به یک برنامه کاربردی پس از اینکه کارهای اجرایی توسعه آن پیشرفت کرد ، بسیار دشوار خواهد بود .
سطوح و انواع متفاوت امنیت وجود دارند .
سطح و نوع امنیت مورد نیاز برنامه کاربردی بسته به کاری که برنامه کاربردی انجام می دهد ، نوع و مقدار داده ای ( اگر داده ای وجود داشته باشد ) که ذخیره می کنید ، ریسکی که متحمل می شوید ومدت زمان ، زحمت و پولی که صرف داشتن یک برنامه کاربردی امن می کنید، متفاوت است .
نیازهای امنیتی یک صفحه خانگی شخصی ، برای مثال ، تفاوت فاحشی با صفحات خانگی سایت های اینترنت یا تجارت الکترونیکی خرده فروش دارند .
جدول زیر شرحی را بر انواع تهدیدهایی که دراطراف ما هستند و عواقب آن که باید در برابرشان آمادگی داشته باشیم بیان می کند .
نکته بحث کاملتری درباره این موضوع در مقاله « امنیت وب» از ویلیام استالینگز در سایت(http://www.microsoft.com/technet/security/website/chaptr14.asp) وجود دارد .
کتابی اقتباس شده از کتاب استالینگز با نام « رمز نگاری وامنیت شبکه : اصول و تمرینها » ، ویرایش شده توسط PTR(1998)Prentice Hall مقدمات امنیت با وجود تهدیدهای بالقوه متعدد علیه برنامه های کاربردی اینترنت ، اغلب فقط دانستن اینکه طراحی یک برنامه کاربردی امن را از کجا شروع کنیم دشوار است .
در این بخش برخی ازاستراتژی هایی که برای شروع کار مورد استفاده قرار می دهید را بررسی می کنیم .
برپایی سرویس دهنده و طراحی برنامه کاربردی :جلوگیری از سوءاستفاده از سرویس دهنده وب و یا داده به دلیل تنظیمات ناامن سرویس دهنده و طراحی ضعیف برنامه کاربردی Parching (ترمیم):جلوگیری از مورد سوءاستفاده قرار گرفتن سرویس دهنده وب به دلیل آسیب پذیریهای که در نرم افزار سرویس دهنده وجود دارد .
کنترل دسترسی : جلوگیری از مورد سوءاستفاده گرفتن سرویس دهنده وب به دلیل تنظیمات نامناسب دسترسی [ یا به عمل آمده] Auditing and logging : رد گیری اینکه چه کسی و چه زمانی به سایت شما حمله می کند و اصلاً چه کاری می کند .
استفاده از SSL و دیگر ابزارهای امنیتی رمزنگاری :جلوگیری از سوءاستفاده کردن از داده ها .
ایجاد فرم های وب ساختار یک فرم وب در ASP.NET ساده ترین صفحه ASP.NET از کدهای ساده HTML تشکیل شده و با پسوند aspx ، مانگذاری می شود .
با اینکه آنها کاملاً معتبر و صحیح می باشند اما درعین حال خیلی از اجزایی را که صفحات ASP.NET را می سازد و آنها را به فرم های وب تبدیل می کند را کم دارند .
فرم های وب چیزی فراتر از آنچه صفحات معمولی ASP دربر دارند ، می باشند .
به آن دستورات جدید ، انتخابهای جدید reusability که به فرم کنترل های کاربر (User Controls) و کنترل های سرور (Server Control) و یک ساختار (Server-side) data-binding جدید ، اضافه شده است .
فهرست زیر یک مثال نسبتاً ساده از یک صفحه فرم وب را نشان می دهد .
Hellosimple.aspx ‘this is a script code declaration block private _name As String = “Andrew” public Property Name As String Get Return _name End Get Set _name = Value End Set End Set End Property Sub SayHello () Lable 1.Text =”Hello ,” & _ name &”!” Sub Page_Load Sender As Object , E As EventArgs) If IsPostBack Then If NameTextBox.Text <> “” Then Name = NametextBox.Text End If SayHello End If End sub Name: این مثال شامل یک دستور (directive) زبان نشانه گذاری HTML ، یک بلاک که کد در آن تعریف و اعلان میشود ، یک فرمServer-Side و چندین کنترلServer می باشد .
شناخت ADO.NET در ASP اولیه ، معمولترین روش دسیابی به داده ها از طریقADO بود ، برنامه نویسها از آبجکت های ADO Connection برای اتصال به یک پایگاه داده استفاده می کردند و سپس از فرمانهای ADO و آبجکت های Recordset برای بازیابی ، به کارگیری و به زور در آوردن داده ها استفاده می کردند .
نیاز است که برنامه نویسها وقتی برنامه های کاربردی را طراحی می کنند ، مراقب باشند که درکدی که به صورت Front-end ارائه می دهند با پایگاه داده back-end شان پیوندی ایجاد نکنند .
در غیر این صورت ، در نهایت اگر یک تغییر در پایگاه داده back-end صورت گیرد ، باید همه چیز را از نو بنویسند .
ساختار کلاس ADO.NET تا حدودی از ADO اولیه متفاوت می باشد .
کلاسهای ADO.NET به دو گروه اساسی مهم تقسیم شده اند : مخصوص منابع داده ایی(datasource-specific) و مخصوص غیر منابع داده ای (non-datasource-specific) .
شناخت تأمین کننده های داده در .NET ADO.NET به همراه دو تأمین کننده داده در .NET می آید: تأمین کننده داده SQL Server.NET ( که دستیابی بهینه به پایگاه داده های SQL Server را فراهم می کند ) و تأمین کننده داده OLD DB.NET که به شما اجازه اتصال به هر منبع داده ایی که به همراه OLD DB Provider نصب کرده اید را می دهد .
شکل زیر کلاسهای اصلی تأمین کننده داده SQL Server .NET و چگونگی ارتباط هر کدام بایکدیگر را نشان می دهد .
کلاسsqlConnection استفاده می شود تا یک اتصال را به یک پایگاه داده SQL Server ایجاد کند ، متفاوت با آبجکت ADO Connection کلاس sqlConnection ( یا هم ارز OLD DB آن یعنی کلاس OleDbConnection ) نمی تواند استفاده شود تا عبارتهای SQL را به یک منبع داده ایی اعمال کند .
کلاس sqlConnection فقط برای باز کردن اتصالات (Connections) ، تنظیم یا بازیابی خصوصیات یک اتصال (Connection) ، تنظیم یا بازیابی خصوصیات یک اتصال (Connection) یا مدیریت رویدادهای مربوط به اتصال مورد استفاده قرار می گیرد .
کلاس sqlCommand استفاده می شود تا عبارتهای SQL یا روال های (Procedure) ذخیره شده را بر روی یک پایگاه داده SQL Server اعمال کند .
کلاس sqlCommand ( و هم ارز OLE DB آن یعنی کلاس OleDbCommand ) می تواند عبارتها یا روال های ذخیره شده ایی که مقادیری را باز نمی گردانند یا مقادیر تکی را باز می گردانند .XML یا datareader را اجرا کند .
کلاس sqlDataReader دستیابی فقط خواندنی (read-only) و فقط جلو رفتنی (Forward-only) را به یک مجموعه از سطرهای باز گردانده شده از یک پایگاه داده SQL Server را فراهم می کند .
DataReader ها ( که شامل هر دوی sqlDataReader وoleDbDataReader می باشند ) یک دستیابی کم وزن با کارآیی بال را به داده های فقط خواندنی فراهم می کنند و بهترین انتخاب برای دسترسی به داده ایی است که قرار است در ASP.NET ظاهر شوند .
کلاس sqlDataAdapter به عنوان یک پل بین کلاس DataSet وSQL Server استفاده می شود کلاس sqlDataAdapter می تواند استفاده شود تا یک dataset را از یک عبارت SQL یا یک روال ذخیره شده ( که به وسیله یک نمونه sqlCommand ارائه شده است ) ایجاد کند ، پایگاه داده (back-end)SQL Server را که بر اساس محتویات یک dataset می باشد را update کند یا سطرهایی را در یک پایگاه دادهSQL Server درج کرده و یا از آن پاک کند .
کلاس OleDbAdapter همان اعمال را برای منابع داده ایی OLE DB اجرا می کند .