برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

فریمورک دات نت

فریمورک دات نت ماکروسافت ، تحولات عمده ای را دررابطه با ایجاد و اجرای برنامه های مبتنی بر وب ایجاد نموده است . ASP.NET  یکی از تکنولوژی های متعددی است که بهمراه فریمورک دات نت ، ارائه شده است . در این مقاله با مفاهیم اولیه فریمورک دات نت ، آشنا می شویم .

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

دات نت پلات فرم چیست ؟
دات نت بر اساس یک معماری "باز" ، شکل یافته و پلات فرمی است که می تواند برای ایجاد و اجرای نسل جدیدی از برنامه های وب و ویندوز استفاده گردد . هدف از پلات فرم دات نت ، تسهیل در پیاده سازی نرم افزارهای وب بوده و از تکنولوژی های اساسی زیر تشکیل شده است :

  • فریمورک دات نت

  • سرویس دهندگان  دات نت

  • سرویس های لازم بمنظور ایجاد بلاک

  • ویژوال استودیو دات نت

در پلات فرم دات نت ، سرویس گیرندگان ، سرویس دهندگان و سرویس ها  ، دارای جایگاهی  مهم  بوده و می توان به موارد زیر در رابطه با آن اشاره داشت :

  • یک مدل برنامه نویسی است  که امکان پیاده سازی سرویس های وب XML و برنامه ها را در اختیار پیاده کنندگان نرم افزار قرار می دهد .

  • مجموعه ای از سرویس های ایجاد بلاک که متکی بر مجموعه ای از سرویس های وب بوده و باعث انتقال کنترل داده کاربر از برنامه ها برای کاربران می شوند.مثلا" Passport ماکروسافت ، یک عنصر اساسی از دات نت بوده  که امکان یکپارچگی برنامه ها را بسادگی فراهم می نماید .

  • مجموعه ای از سرویس دهندگان نظیر ویندوز 2000 ، SQL Server ، سرویس دهنده Biztalk  که باعث ارتباط ، اجراء ،  انجام عملیات و مدیریت سرویس های وب XML و برنامه ها می گردد .

  • نرم افزار سرویس گیرنده ، نظیر ویندوز XP ، که به پِیاده کنندگان کمک می نماید تجارب مفید و جامع خود را به مجموعه ای از دستگاهها، تعمیم نمایند. 

  • ابزارهائی نظیر ویژوال استودیو دات نت ، که می توان از آنان بمنظور پیاده سازی سرویس های وب ، برنامه های ویندوز و وب استفاده کرد .

فریمورک دات نت چیست ؟
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد و اجرای برنامه ها و سرویس های وب XML را ارائه می نماید. ماهیت یکسان ( یکدست )   فریمورک دات نت ، امکان ارتباط  تمامی برنامه ها( برنامه های ویندوز ، وب ، سرویس های وب XML )   را از طریق  یک مجموعه از  ابزارها  و کدهای نوشته  ، فراهم می نماید.  فریمورک دات نت شامل موارد زیر است :

  • CLR)Common Language Runtime) یا همان Runtime .
    Runtime ، مسئولیت رسیدگی به سرویس ها را برعهده داشته و شامل یکپارچگی زبانها ، امنیت و مدیریت حافظه است . در زمان پیاده سازی ، Runtime ویژگی های لازم و مورد نیازرا با هدف تسهیل در پیاده سازی، ارائه می نماید .

  • کتابخانه های کلاس (Class - Libraries )
    کنابخانه های کلاس ، امکان استفاده مجدد از کدها برای اکثر عملیات متداول نظیر دستیابی به داده ها ، پیاده سازی سرویس های وب XML ، فرم های وب و یا ویندوز را فراهم می نماید .

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

  • پیاده کنندگان ، مجبور به پیاده سازی نرم افزارهای خود در یک میدان محدود می باشند .
  • پیاده کنندگان ، زمان زیادی  را بمظور نوشتن برنامه ها بمنظور کار با پلات فرم و سرویس گیرنده گان متفاوت ،  صرف می نمایند ( این زمان می بایست صرف آفرینش برنامه های جدید گردد).

فریمورک دات نت ، با ارائه یک Runtim که مستقل از نوع  زبان و پلات فرم است ، بر محدودیت های فوق غلبه نموده است.Runtime  فوق،  مستقل از زبان و پلات فرم بوده  واز استانداردهای  XML ، بمنظور نیل به اهداف مورد نظر خود استفاده می نماید. با توجه به عدم وابستگی دات نت به یک زبان خاص ، پیاده کنندگان نرم افزار می توانند از گزینه های متعددی در این زمینه  استفاده  نمایند. امکان اجرای  برنامه های تولید شده ، بر روی سرویس گیرندگانی که دات نت را حمایت می نمایند ، وجود خواهد داشت .Runtime ،اغلب زیرساخت های برنامه ها را کنترل می نماید ،  بنابراین پیاده کنندگان ، ضرورتی به صرف زمان لازم بمنظور ایجاد زیرساخت های مورد نیار خود نداشته و در مقابل می توانند زمان خود را صرف  تمرکز  بر روی منطق برنامه ها ، نمایند .
سرویس های وب XML ، از XML بمنظور ارسال داده استفاده می نمایند . بدین ترتیب ، سرویس گیرندگانی که دارای پتانسیل لازم  در این خصوص می باشند ، قادر به  دریافت داده های مبتنی بر XML ، خواهند بود.  XML ، استانداردی فراگیر و مورد پذیرش تمامی محیط های پیاده سازی  است. اغلب سرویس گیرندگان مدرن، نظیر سیستم های عامل کامپیوتر ، تلفن های سلولی ، دستگاههای PDA ، کنسول های بازی ، قادر به دریافت داده های مبتنی بر  XML ، می باشند .

اجزای فریمورک دات نت
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد برنامه های مبتنی بر دات نت  را در زمان ترجمه و اجراء ، فراهم و دارای عناصر متفاوتی بمنظور اجرای برنامه های مبتنی بر دات نت است :

  • زیربناء پلات فرم . فریمورک دات نت،  می بایست بر روی یک سیستم عامل اجراء گردد . در حال حاضر، امکان اجرای  فریمورک دات نت بر روی سیستم های عامل 32 بیتی ویندوز نظیر 2000 , XP  ، وجود دارد. در آینده ، امکان اجرای فریمورک دات نت بر روی سایر پلات فرم ها نیز میسر خواهد شد .

  • سرویس های کاربردی و خدماتی . زمانیکه برنامه های کاربردی  نظیر Component Server,Message Queuing   ,IIS  ، بر روی ویندوز 2000 ، اجراء می گردند امکان استفاده از آنان برای پیاده کنندگان وجود خواهد داشت . فریمورک دات نت ، برنامه های فوق را از طریق کلاس های موجود در کتابخانه کلاس دات نت ، تحت تاثیر موثر خود قرار خواهد داد .

  • Net Class library . کتابخانه کلاس فریمورک دات نت ، زمینه استفاده از امکانات و ویژگی های Runtime  را فراهم و باعث تسهیل در پیاده سازی برنامه های مبتنی بر دات نت می گردد . در این راستا ، پیاده کنندگان  می توانند با ایجاد توابعی از کلاس های موردنظر خود ، کلاس ها را توسعه نمایند .کتابخانه های کلاس فریمورک دات نت ، فریمورک دات نت را پیاده سازی می نماید . تمامی برنامه ها  ( برنامه های  وب ، ویندوز و سرویس های وب XML ) از کتابخانه کلاس های فریمورک دات نت یکسان استفاده نموده  که در namespace نگهداری می گردند. تمامی زبانهای مبتنی بر دات نت نیز به کتابخانه یکسانی دستیابی دارند .

  • CLR)Common Language Runtime ) . تکنولوژی  CLR ، باعث تسهیل در پیاده سازی برنامه ها از طریق ارائه یک محیط اجرائی ایمن  ، حمایت از چندین زبان و تسهیل در بکارگیری برنامه ها می گردد . محیط CLR ، همچنین بعنوان یک محیط مدیریت یافته ، عملیات و سرویس های خاصی  نظیر Garbage Collection و امنیت را  بصورت اتوماتیک، انجام خواهد داد .

  • ADO.NET . تکنولوژی ADO.NET ، نسل جدیدی از تکنولوژی ADO بوده و  امکانات حمایتی لازم در رابطه با مدل برنامه نویسی غیرمتصل را ارائه  می نماید. تکنولوژی فوق ، امکانات حمایتی متعددی را نیز در رابطه  با XML ، ارائه می نماید .

  • ASP.NET . تکنولوژی ASP.NET ، یک چارچوب  برنامه نویسی است که بر اساس CLR ، ایجاد می گردد . ASP.NET می تواند بر روی یک سرویس دهنده استفاده  و بکمک آن می توان برنامه های  مبتنی بر وب قدرتمندی را ایجاد کرد . فرم های وب ASP.NET ، یک روش ساده و درعین حال قدرتمند بمنظور ایجاد رابط های کاربر پویا می باشد .

  • سرویس های وب XML . سرویس های وب XML ، عناصر مبتنی بر وبی بوده  که قادر به اشتراک برنامه ها در اینترنت و یا اینترانت می باشند . فریمورک دات نت،  ابزارها و کلاس های لازم برای ایجاد ، تست و توزیع سرویس های وب XML را ارائه می نماید.

  • User Interfacses . فریمورک دات نت سه نوع UI را حمایت می نماید:
    فرم های وب که بهمراه ASP.NET و HTTP کار می نمایند .
    فرم های ویندوز که بر روی کامپیوتر های سرویس گیرنده Win32 اجراء می شوند .
    کنسول دستور ( خط دستور )

  • زبان ها ، هر زبانی که استانداردهای  CLS)Common Language Specification )  را رعایت نماید ، قادر به اجراء توسط   CLR خواهد بود. در فریمورک دات نت ، ماکروسافت حمایت های لازم در رابطه با زبانهائی نظیر VB.NET , Visual C++ ,VB.NET , C#,Jscript.NET را ارائه نموده است .

مزایای استفاده از فریمورک دات نت
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز ، تمامی برنامه های نوشته شده بمنظور استفاده از  API ، از C و یا ++C استفاده می کردند . با مطرح شدن  ویژوال بیسیک و سپس اینترنت ، پیاده کنندگان مجبور به  سفارشی نمودن ( پیاده سازی نسخه هائی خاص )  برنامه های  C++  ،  C،  .برنامه های ویژوال بیسیک و یا ASP  بودند .با استفاده از فریمورک دات نت ، می توان با اتکاء به مهارت های موجود ، اقدام به آفرینش هر نوع نرم افزاری کرد . انتخاب  فریمورک دات نت بمنظور پیاده سازی برنامه ها ، مزایای زیر را بدنبال خواهد داشت :

  • مبتنی بر استانداردهای وب . فریمورک دات نت،  بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت می نماید.

  •  طراحی مبتنی بر یک مدل یکسان . از پتانسیل های  یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده  را  در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .

  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace  های  سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type   System)CTS)  را بعنوان سیستم نوع یکسان ، ارائه نموده که  توسط هر زبان سازگاز با دات نت، قابل استفاده  خواهد بود .در سیستم فوق ، تمامی عناصر  زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .

  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت،  برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده  باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language  ، نیز وجود خواهد داشت .

فریمورک دات نت

فریمورک دات نت ماکروسافت ، تحولات عمده ای را دررابطه با ایجاد و اجرای برنامه های مبتنی بر وب ایجاد نموده است . ASP.NET  یکی از تکنولوژی های متعددی است که بهمراه فریمورک دات نت ، ارائه شده است . در این مقاله با مفاهیم اولیه فریمورک دات نت ، آشنا می شویم .

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

دات نت پلات فرم چیست ؟
دات نت بر اساس یک معماری "باز" ، شکل یافته و پلات فرمی است که می تواند برای ایجاد و اجرای نسل جدیدی از برنامه های وب و ویندوز استفاده گردد . هدف از پلات فرم دات نت ، تسهیل در پیاده سازی نرم افزارهای وب بوده و از تکنولوژی های اساسی زیر تشکیل شده است :

  • فریمورک دات نت

  • سرویس دهندگان  دات نت

  • سرویس های لازم بمنظور ایجاد بلاک

  • ویژوال استودیو دات نت

در پلات فرم دات نت ، سرویس گیرندگان ، سرویس دهندگان و سرویس ها  ، دارای جایگاهی  مهم  بوده و می توان به موارد زیر در رابطه با آن اشاره داشت :

  • یک مدل برنامه نویسی است  که امکان پیاده سازی سرویس های وب XML و برنامه ها را در اختیار پیاده کنندگان نرم افزار قرار می دهد .

  • مجموعه ای از سرویس های ایجاد بلاک که متکی بر مجموعه ای از سرویس های وب بوده و باعث انتقال کنترل داده کاربر از برنامه ها برای کاربران می شوند.مثلا" Passport ماکروسافت ، یک عنصر اساسی از دات نت بوده  که امکان یکپارچگی برنامه ها را بسادگی فراهم می نماید .

  • مجموعه ای از سرویس دهندگان نظیر ویندوز 2000 ، SQL Server ، سرویس دهنده Biztalk  که باعث ارتباط ، اجراء ،  انجام عملیات و مدیریت سرویس های وب XML و برنامه ها می گردد .

  • نرم افزار سرویس گیرنده ، نظیر ویندوز XP ، که به پِیاده کنندگان کمک می نماید تجارب مفید و جامع خود را به مجموعه ای از دستگاهها، تعمیم نمایند. 

  • ابزارهائی نظیر ویژوال استودیو دات نت ، که می توان از آنان بمنظور پیاده سازی سرویس های وب ، برنامه های ویندوز و وب استفاده کرد .

فریمورک دات نت چیست ؟
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد و اجرای برنامه ها و سرویس های وب XML را ارائه می نماید. ماهیت یکسان ( یکدست )   فریمورک دات نت ، امکان ارتباط  تمامی برنامه ها( برنامه های ویندوز ، وب ، سرویس های وب XML )   را از طریق  یک مجموعه از  ابزارها  و کدهای نوشته  ، فراهم می نماید.  فریمورک دات نت شامل موارد زیر است :

  • CLR)Common Language Runtime) یا همان Runtime .
    Runtime ، مسئولیت رسیدگی به سرویس ها را برعهده داشته و شامل یکپارچگی زبانها ، امنیت و مدیریت حافظه است . در زمان پیاده سازی ، Runtime ویژگی های لازم و مورد نیازرا با هدف تسهیل در پیاده سازی، ارائه می نماید .

  • کتابخانه های کلاس (Class - Libraries )
    کنابخانه های کلاس ، امکان استفاده مجدد از کدها برای اکثر عملیات متداول نظیر دستیابی به داده ها ، پیاده سازی سرویس های وب XML ، فرم های وب و یا ویندوز را فراهم می نماید .

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

  • پیاده کنندگان ، مجبور به پیاده سازی نرم افزارهای خود در یک میدان محدود می باشند .
  • پیاده کنندگان ، زمان زیادی  را بمظور نوشتن برنامه ها بمنظور کار با پلات فرم و سرویس گیرنده گان متفاوت ،  صرف می نمایند ( این زمان می بایست صرف آفرینش برنامه های جدید گردد).

فریمورک دات نت ، با ارائه یک Runtim که مستقل از نوع  زبان و پلات فرم است ، بر محدودیت های فوق غلبه نموده است.Runtime  فوق،  مستقل از زبان و پلات فرم بوده  واز استانداردهای  XML ، بمنظور نیل به اهداف مورد نظر خود استفاده می نماید. با توجه به عدم وابستگی دات نت به یک زبان خاص ، پیاده کنندگان نرم افزار می توانند از گزینه های متعددی در این زمینه  استفاده  نمایند. امکان اجرای  برنامه های تولید شده ، بر روی سرویس گیرندگانی که دات نت را حمایت می نمایند ، وجود خواهد داشت .Runtime ،اغلب زیرساخت های برنامه ها را کنترل می نماید ،  بنابراین پیاده کنندگان ، ضرورتی به صرف زمان لازم بمنظور ایجاد زیرساخت های مورد نیار خود نداشته و در مقابل می توانند زمان خود را صرف  تمرکز  بر روی منطق برنامه ها ، نمایند .
سرویس های وب XML ، از XML بمنظور ارسال داده استفاده می نمایند . بدین ترتیب ، سرویس گیرندگانی که دارای پتانسیل لازم  در این خصوص می باشند ، قادر به  دریافت داده های مبتنی بر XML ، خواهند بود.  XML ، استانداردی فراگیر و مورد پذیرش تمامی محیط های پیاده سازی  است. اغلب سرویس گیرندگان مدرن، نظیر سیستم های عامل کامپیوتر ، تلفن های سلولی ، دستگاههای PDA ، کنسول های بازی ، قادر به دریافت داده های مبتنی بر  XML ، می باشند .

اجزای فریمورک دات نت
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد برنامه های مبتنی بر دات نت  را در زمان ترجمه و اجراء ، فراهم و دارای عناصر متفاوتی بمنظور اجرای برنامه های مبتنی بر دات نت است :

  • زیربناء پلات فرم . فریمورک دات نت،  می بایست بر روی یک سیستم عامل اجراء گردد . در حال حاضر، امکان اجرای  فریمورک دات نت بر روی سیستم های عامل 32 بیتی ویندوز نظیر 2000 , XP  ، وجود دارد. در آینده ، امکان اجرای فریمورک دات نت بر روی سایر پلات فرم ها نیز میسر خواهد شد .

  • سرویس های کاربردی و خدماتی . زمانیکه برنامه های کاربردی  نظیر Component Server,Message Queuing   ,IIS  ، بر روی ویندوز 2000 ، اجراء می گردند امکان استفاده از آنان برای پیاده کنندگان وجود خواهد داشت . فریمورک دات نت ، برنامه های فوق را از طریق کلاس های موجود در کتابخانه کلاس دات نت ، تحت تاثیر موثر خود قرار خواهد داد .

  • Net Class library . کتابخانه کلاس فریمورک دات نت ، زمینه استفاده از امکانات و ویژگی های Runtime  را فراهم و باعث تسهیل در پیاده سازی برنامه های مبتنی بر دات نت می گردد . در این راستا ، پیاده کنندگان  می توانند با ایجاد توابعی از کلاس های موردنظر خود ، کلاس ها را توسعه نمایند .کتابخانه های کلاس فریمورک دات نت ، فریمورک دات نت را پیاده سازی می نماید . تمامی برنامه ها  ( برنامه های  وب ، ویندوز و سرویس های وب XML ) از کتابخانه کلاس های فریمورک دات نت یکسان استفاده نموده  که در namespace نگهداری می گردند. تمامی زبانهای مبتنی بر دات نت نیز به کتابخانه یکسانی دستیابی دارند .

  • CLR)Common Language Runtime ) . تکنولوژی  CLR ، باعث تسهیل در پیاده سازی برنامه ها از طریق ارائه یک محیط اجرائی ایمن  ، حمایت از چندین زبان و تسهیل در بکارگیری برنامه ها می گردد . محیط CLR ، همچنین بعنوان یک محیط مدیریت یافته ، عملیات و سرویس های خاصی  نظیر Garbage Collection و امنیت را  بصورت اتوماتیک، انجام خواهد داد .

  • ADO.NET . تکنولوژی ADO.NET ، نسل جدیدی از تکنولوژی ADO بوده و  امکانات حمایتی لازم در رابطه با مدل برنامه نویسی غیرمتصل را ارائه  می نماید. تکنولوژی فوق ، امکانات حمایتی متعددی را نیز در رابطه  با XML ، ارائه می نماید .

  • ASP.NET . تکنولوژی ASP.NET ، یک چارچوب  برنامه نویسی است که بر اساس CLR ، ایجاد می گردد . ASP.NET می تواند بر روی یک سرویس دهنده استفاده  و بکمک آن می توان برنامه های  مبتنی بر وب قدرتمندی را ایجاد کرد . فرم های وب ASP.NET ، یک روش ساده و درعین حال قدرتمند بمنظور ایجاد رابط های کاربر پویا می باشد .

  • سرویس های وب XML . سرویس های وب XML ، عناصر مبتنی بر وبی بوده  که قادر به اشتراک برنامه ها در اینترنت و یا اینترانت می باشند . فریمورک دات نت،  ابزارها و کلاس های لازم برای ایجاد ، تست و توزیع سرویس های وب XML را ارائه می نماید.

  • User Interfacses . فریمورک دات نت سه نوع UI را حمایت می نماید:
    فرم های وب که بهمراه ASP.NET و HTTP کار می نمایند .
    فرم های ویندوز که بر روی کامپیوتر های سرویس گیرنده Win32 اجراء می شوند .
    کنسول دستور ( خط دستور )

  • زبان ها ، هر زبانی که استانداردهای  CLS)Common Language Specification )  را رعایت نماید ، قادر به اجراء توسط   CLR خواهد بود. در فریمورک دات نت ، ماکروسافت حمایت های لازم در رابطه با زبانهائی نظیر VB.NET , Visual C++ ,VB.NET , C#,Jscript.NET را ارائه نموده است .

مزایای استفاده از فریمورک دات نت
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز ، تمامی برنامه های نوشته شده بمنظور استفاده از  API ، از C و یا ++C استفاده می کردند . با مطرح شدن  ویژوال بیسیک و سپس اینترنت ، پیاده کنندگان مجبور به  سفارشی نمودن ( پیاده سازی نسخه هائی خاص )  برنامه های  C++  ،  C،  .برنامه های ویژوال بیسیک و یا ASP  بودند .با استفاده از فریمورک دات نت ، می توان با اتکاء به مهارت های موجود ، اقدام به آفرینش هر نوع نرم افزاری کرد . انتخاب  فریمورک دات نت بمنظور پیاده سازی برنامه ها ، مزایای زیر را بدنبال خواهد داشت :

  • مبتنی بر استانداردهای وب . فریمورک دات نت،  بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت می نماید.

  •  طراحی مبتنی بر یک مدل یکسان . از پتانسیل های  یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده  را  در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .

  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace  های  سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type   System)CTS)  را بعنوان سیستم نوع یکسان ، ارائه نموده که  توسط هر زبان سازگاز با دات نت، قابل استفاده  خواهد بود .در سیستم فوق ، تمامی عناصر  زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .

  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت،  برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده  باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language  ، نیز وجود خواهد داشت .

فریمورک دات نت

فریمورک دات نت ماکروسافت ، تحولات عمده ای را دررابطه با ایجاد و اجرای برنامه های مبتنی بر وب ایجاد نموده است . ASP.NET  یکی از تکنولوژی های متعددی است که بهمراه فریمورک دات نت ، ارائه شده است . در این مقاله با مفاهیم اولیه فریمورک دات نت ، آشنا می شویم .

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

دات نت پلات فرم چیست ؟
دات نت بر اساس یک معماری "باز" ، شکل یافته و پلات فرمی است که می تواند برای ایجاد و اجرای نسل جدیدی از برنامه های وب و ویندوز استفاده گردد . هدف از پلات فرم دات نت ، تسهیل در پیاده سازی نرم افزارهای وب بوده و از تکنولوژی های اساسی زیر تشکیل شده است :

  • فریمورک دات نت

  • سرویس دهندگان  دات نت

  • سرویس های لازم بمنظور ایجاد بلاک

  • ویژوال استودیو دات نت

در پلات فرم دات نت ، سرویس گیرندگان ، سرویس دهندگان و سرویس ها  ، دارای جایگاهی  مهم  بوده و می توان به موارد زیر در رابطه با آن اشاره داشت :

  • یک مدل برنامه نویسی است  که امکان پیاده سازی سرویس های وب XML و برنامه ها را در اختیار پیاده کنندگان نرم افزار قرار می دهد .

  • مجموعه ای از سرویس های ایجاد بلاک که متکی بر مجموعه ای از سرویس های وب بوده و باعث انتقال کنترل داده کاربر از برنامه ها برای کاربران می شوند.مثلا" Passport ماکروسافت ، یک عنصر اساسی از دات نت بوده  که امکان یکپارچگی برنامه ها را بسادگی فراهم می نماید .

  • مجموعه ای از سرویس دهندگان نظیر ویندوز 2000 ، SQL Server ، سرویس دهنده Biztalk  که باعث ارتباط ، اجراء ،  انجام عملیات و مدیریت سرویس های وب XML و برنامه ها می گردد .

  • نرم افزار سرویس گیرنده ، نظیر ویندوز XP ، که به پِیاده کنندگان کمک می نماید تجارب مفید و جامع خود را به مجموعه ای از دستگاهها، تعمیم نمایند. 

  • ابزارهائی نظیر ویژوال استودیو دات نت ، که می توان از آنان بمنظور پیاده سازی سرویس های وب ، برنامه های ویندوز و وب استفاده کرد .

فریمورک دات نت چیست ؟
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد و اجرای برنامه ها و سرویس های وب XML را ارائه می نماید. ماهیت یکسان ( یکدست )   فریمورک دات نت ، امکان ارتباط  تمامی برنامه ها( برنامه های ویندوز ، وب ، سرویس های وب XML )   را از طریق  یک مجموعه از  ابزارها  و کدهای نوشته  ، فراهم می نماید.  فریمورک دات نت شامل موارد زیر است :

  • CLR)Common Language Runtime) یا همان Runtime .
    Runtime ، مسئولیت رسیدگی به سرویس ها را برعهده داشته و شامل یکپارچگی زبانها ، امنیت و مدیریت حافظه است . در زمان پیاده سازی ، Runtime ویژگی های لازم و مورد نیازرا با هدف تسهیل در پیاده سازی، ارائه می نماید .

  • کتابخانه های کلاس (Class - Libraries )
    کنابخانه های کلاس ، امکان استفاده مجدد از کدها برای اکثر عملیات متداول نظیر دستیابی به داده ها ، پیاده سازی سرویس های وب XML ، فرم های وب و یا ویندوز را فراهم می نماید .

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

  • پیاده کنندگان ، مجبور به پیاده سازی نرم افزارهای خود در یک میدان محدود می باشند .
  • پیاده کنندگان ، زمان زیادی  را بمظور نوشتن برنامه ها بمنظور کار با پلات فرم و سرویس گیرنده گان متفاوت ،  صرف می نمایند ( این زمان می بایست صرف آفرینش برنامه های جدید گردد).

فریمورک دات نت ، با ارائه یک Runtim که مستقل از نوع  زبان و پلات فرم است ، بر محدودیت های فوق غلبه نموده است.Runtime  فوق،  مستقل از زبان و پلات فرم بوده  واز استانداردهای  XML ، بمنظور نیل به اهداف مورد نظر خود استفاده می نماید. با توجه به عدم وابستگی دات نت به یک زبان خاص ، پیاده کنندگان نرم افزار می توانند از گزینه های متعددی در این زمینه  استفاده  نمایند. امکان اجرای  برنامه های تولید شده ، بر روی سرویس گیرندگانی که دات نت را حمایت می نمایند ، وجود خواهد داشت .Runtime ،اغلب زیرساخت های برنامه ها را کنترل می نماید ،  بنابراین پیاده کنندگان ، ضرورتی به صرف زمان لازم بمنظور ایجاد زیرساخت های مورد نیار خود نداشته و در مقابل می توانند زمان خود را صرف  تمرکز  بر روی منطق برنامه ها ، نمایند .
سرویس های وب XML ، از XML بمنظور ارسال داده استفاده می نمایند . بدین ترتیب ، سرویس گیرندگانی که دارای پتانسیل لازم  در این خصوص می باشند ، قادر به  دریافت داده های مبتنی بر XML ، خواهند بود.  XML ، استانداردی فراگیر و مورد پذیرش تمامی محیط های پیاده سازی  است. اغلب سرویس گیرندگان مدرن، نظیر سیستم های عامل کامپیوتر ، تلفن های سلولی ، دستگاههای PDA ، کنسول های بازی ، قادر به دریافت داده های مبتنی بر  XML ، می باشند .

اجزای فریمورک دات نت
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد برنامه های مبتنی بر دات نت  را در زمان ترجمه و اجراء ، فراهم و دارای عناصر متفاوتی بمنظور اجرای برنامه های مبتنی بر دات نت است :

  • زیربناء پلات فرم . فریمورک دات نت،  می بایست بر روی یک سیستم عامل اجراء گردد . در حال حاضر، امکان اجرای  فریمورک دات نت بر روی سیستم های عامل 32 بیتی ویندوز نظیر 2000 , XP  ، وجود دارد. در آینده ، امکان اجرای فریمورک دات نت بر روی سایر پلات فرم ها نیز میسر خواهد شد .

  • سرویس های کاربردی و خدماتی . زمانیکه برنامه های کاربردی  نظیر Component Server,Message Queuing   ,IIS  ، بر روی ویندوز 2000 ، اجراء می گردند امکان استفاده از آنان برای پیاده کنندگان وجود خواهد داشت . فریمورک دات نت ، برنامه های فوق را از طریق کلاس های موجود در کتابخانه کلاس دات نت ، تحت تاثیر موثر خود قرار خواهد داد .

  • Net Class library . کتابخانه کلاس فریمورک دات نت ، زمینه استفاده از امکانات و ویژگی های Runtime  را فراهم و باعث تسهیل در پیاده سازی برنامه های مبتنی بر دات نت می گردد . در این راستا ، پیاده کنندگان  می توانند با ایجاد توابعی از کلاس های موردنظر خود ، کلاس ها را توسعه نمایند .کتابخانه های کلاس فریمورک دات نت ، فریمورک دات نت را پیاده سازی می نماید . تمامی برنامه ها  ( برنامه های  وب ، ویندوز و سرویس های وب XML ) از کتابخانه کلاس های فریمورک دات نت یکسان استفاده نموده  که در namespace نگهداری می گردند. تمامی زبانهای مبتنی بر دات نت نیز به کتابخانه یکسانی دستیابی دارند .

  • CLR)Common Language Runtime ) . تکنولوژی  CLR ، باعث تسهیل در پیاده سازی برنامه ها از طریق ارائه یک محیط اجرائی ایمن  ، حمایت از چندین زبان و تسهیل در بکارگیری برنامه ها می گردد . محیط CLR ، همچنین بعنوان یک محیط مدیریت یافته ، عملیات و سرویس های خاصی  نظیر Garbage Collection و امنیت را  بصورت اتوماتیک، انجام خواهد داد .

  • ADO.NET . تکنولوژی ADO.NET ، نسل جدیدی از تکنولوژی ADO بوده و  امکانات حمایتی لازم در رابطه با مدل برنامه نویسی غیرمتصل را ارائه  می نماید. تکنولوژی فوق ، امکانات حمایتی متعددی را نیز در رابطه  با XML ، ارائه می نماید .

  • ASP.NET . تکنولوژی ASP.NET ، یک چارچوب  برنامه نویسی است که بر اساس CLR ، ایجاد می گردد . ASP.NET می تواند بر روی یک سرویس دهنده استفاده  و بکمک آن می توان برنامه های  مبتنی بر وب قدرتمندی را ایجاد کرد . فرم های وب ASP.NET ، یک روش ساده و درعین حال قدرتمند بمنظور ایجاد رابط های کاربر پویا می باشد .

  • سرویس های وب XML . سرویس های وب XML ، عناصر مبتنی بر وبی بوده  که قادر به اشتراک برنامه ها در اینترنت و یا اینترانت می باشند . فریمورک دات نت،  ابزارها و کلاس های لازم برای ایجاد ، تست و توزیع سرویس های وب XML را ارائه می نماید.

  • User Interfacses . فریمورک دات نت سه نوع UI را حمایت می نماید:
    فرم های وب که بهمراه ASP.NET و HTTP کار می نمایند .
    فرم های ویندوز که بر روی کامپیوتر های سرویس گیرنده Win32 اجراء می شوند .
    کنسول دستور ( خط دستور )

  • زبان ها ، هر زبانی که استانداردهای  CLS)Common Language Specification )  را رعایت نماید ، قادر به اجراء توسط   CLR خواهد بود. در فریمورک دات نت ، ماکروسافت حمایت های لازم در رابطه با زبانهائی نظیر VB.NET , Visual C++ ,VB.NET , C#,Jscript.NET را ارائه نموده است .

مزایای استفاده از فریمورک دات نت
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز ، تمامی برنامه های نوشته شده بمنظور استفاده از  API ، از C و یا ++C استفاده می کردند . با مطرح شدن  ویژوال بیسیک و سپس اینترنت ، پیاده کنندگان مجبور به  سفارشی نمودن ( پیاده سازی نسخه هائی خاص )  برنامه های  C++  ،  C،  .برنامه های ویژوال بیسیک و یا ASP  بودند .با استفاده از فریمورک دات نت ، می توان با اتکاء به مهارت های موجود ، اقدام به آفرینش هر نوع نرم افزاری کرد . انتخاب  فریمورک دات نت بمنظور پیاده سازی برنامه ها ، مزایای زیر را بدنبال خواهد داشت :

  • مبتنی بر استانداردهای وب . فریمورک دات نت،  بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت می نماید.

  •  طراحی مبتنی بر یک مدل یکسان . از پتانسیل های  یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده  را  در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .

  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace  های  سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type   System)CTS)  را بعنوان سیستم نوع یکسان ، ارائه نموده که  توسط هر زبان سازگاز با دات نت، قابل استفاده  خواهد بود .در سیستم فوق ، تمامی عناصر  زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .

  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت،  برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده  باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language  ، نیز وجود خواهد داشت .

استفاده از CSS در برنامه های وب

ایجاد خروجی مناسب و با فرمت مطلوب ، از جمله اهداف مهم در تمامی برنامه های کامپیوتری است. برنامه های وب نیز از ایـن قاعده مستثنی نبوده و طراحان و پیاده کنندگان این نوع از برنامه ها ، با بهره گیری از امکانات و تکنولوژی های متفاوت سعی در ارائه خروجی مناسب و با فرمت قابل قبول برای مخاطبان خود می نمایند. خروجی یک برنامه وب ، در سطح سرویس گیرندگان ارائه می گردد ، بدیهی است بمنظور فرمت مناسب خروجی برنامه های وب ، می بایست بر تکنولوژی هائی  متمرکز گردید که امکان بکارگیری آنان در سطح سرویس گیرنده و از طریق مرورگر کاربران ، میسر می باشد . مسئولیت میزبان نمودن بخش رابط کاربر برنامه های وب برعهده مرورگر بوده و لازم است تمامی تلاش های انجام شده در این خصوص با تاکید بر اهمیت و جایگاه مرورگر ها ، سازماندهی و مدیریت گردد . ASP.NET ( پلات فرم دات نت برای ایجاد برنامه های وب ) ، از دو روش  عمده در ارتباط با  ایجاد فرمت مناسب خروجی ( Formatting) برای برنامه های وب ، استفاده می نماید :
  •  استفاده از CSS . از تکنولوژی CSS)Cascading style sheet) ،  بمنظور کنترل شکل ظاهری عناصر موجود بر روی یک فرم وب استفاده می گردد . از امکانات CSS ، می توان در جهت تنظیم رنگ ، اندازه ، فونت  و رفتار عناصر HTML موجود بر  روی یک صفحه وب استفاده نمود .

  •  استفاده از XSLT . از تکنولوژی XSLT)Extensible Stylesheet Language Transformation ) ، بمنظور تبدیل اطلاعات یک فایل XML به خروجی HTML و  استقرار اطلاعات فوق بر روی یک فرم وب ، استفاده می گردد . XSLT ، داده مورد نیاز را از فایل XML دریافت و پس از تبدیل آنان به عناصر HTML ،  سبک های ( Styles )  مشخص شده را در رابطه با هر یک از عناصر بکار می گیرد .

در این مقاله قصد داریم به بررسی نحوه استفاده از CSS ، بمنظور تعریف فرمت خروجی برنامه های وب پرداخته و در مقاله ای جداگانه با نحوه استفاده از XSLT ، آشنا شویم .
CSS ، مسئولیت جمع آوری و سازماندهی تمامی اطلاعات مرتبط با فرمت بکارگرفته شده در ارتباط با عناصر HTML موجود بر روی یک فرم وب را برعهده دارد . با توجه به  ذخیره سازی  اطلاعات فوق در یک مکان ، مدیریت و اعمال سیاست های جدید در رابطه با شکل ظاهری یک برنامه وب ، بسادگی انجام خواهد شد . ویژوال استودیو دات نت ، ابزارهای لازم بمنظور ایجاد و  ویرایش Style  را ارائه نموده است. در زمان ایجاد یک برنامه وب با استفاده از ویژوال استودیو دات نت ، یک Style sheet پیش فرض نیز ایجاد می گردد .( بعنوان بخشی از یک پروژه جدید برنامه وب ، ) . لازم است به این نکته اشاره گردد که  فقط برای پروژه های ویژوال بیسک دات نت ، بصورت اتوماتیک یک Style sheet پیش فرض ، ایجاد می گردد. برای پروژه های ویژوال سی شارپ ، می بایست  یک style sheet ، ایجاد نمود.
بمنظور اعمال فرمت دلخواه در رابطه با خروجی یک برنامه وب ، می توان در سه سطح متفاوت این کار راا انجام داد :

  • Global . سبک های تعریف شده  دریک فایل جداگانه ذخیره و تمامی صفحات می توانند از آن استفاده نمایند . 
  • Page . سبک های موردنظر در بخش Head یک صفحه تعریف  و تمامی عناصر موجود بر روی صفحه قادر به استفاده از آنان خواهند بود.
  • Inline . سبک های مورد نظربعنوان خصلت یک عنصر HTML تعریف  و صرفا" همان عنصر قادربه استفاده از آنان خواهد بود .

 اولویت هر یک از سطوح فوق ، مشابه تعریف یک متغیر و محدوده ( Scoping ) استفاده از آن می باشد. سبک های تعریف شده Inline دارای اولویت بیشتر نسبت به Page بوده و سبک های Page دارای اولویت بیشتری نسبت به Global می باشند . مثلا" در صورتیکه با استفاده از هر یک  از روش های فوق ، سبک خاصی بمنظورنحوه نمایش یک پاراگراف ، تعریف شده باشد ، سبک تعریف شده inline دارای اولویت بیشتری خواهد بود.با توجه به اولویت مجموعه قوانین  تعریف شده  مربوط به سبک نمایش ، از  Style Sheet ها ، بعنوان Cascading  نیز یاد می گردد . کد زیر ، نحوه استفاده از سه روش فوق را بمنظور تعریف Style  ، نشان می دهد .

Style types definition

<HTML>
       <HEAD>
                    <title> WebForm1 </title>
                     <!--  (1) Style Sheet reference . --->
                     <LINK REL="StyleSheet" Type="text/css" HREF="Test.css">
                     <!-- (2)  Page-Level style definition -->
                      <Style>
                          p {
                                font -family : 'Times New Romans' , Thoma , font-size:medium ;
                               }
                      </Style>
         </HEAD>
                       <Body>
                            <P> The Alignment is from the style sheet . </p>
                            <P> The font is from the style in the page's head element . </P>
                             <!-- (3) Inline style definition -->
                              <
P style="FONT-SIZE : large ; FONT - STYLE : italic " > the italic is from the inline style . </P>
                      </Body>     
  </HTML>

Test.css file

<!-- (1) From Styles.css sheet referenced in HEAD element . -->
   P
     {
        font-size : small ;
        text - align : center ;
     }
 

در مثال فوق ، نحوه نسبت دهی خصلت Style  به یک  عنصر و در سه سطح متفاوت نشان داده شده است . برای خصلت font-size ، در سه سطح  متفاوت ، style تعریف شده است .در مواردیکه خصلت فوق ، بصورت Inline بهمراه یک عنصر HTML ، استفاده شده است ، تمامی تعاریف موجود ( در سطح Page و یا بصورت Reference ) نادیده گرفته می شود و اولویت  با سبک تعریف شده بصورت Inline ، خواهد بود . تعریف انجام شده در رابطه با اندازه فونت در فایل Test.css ، عملا" در صفحه فوق ، استفاده نخواهد شد ، چراکه در صفحه وب نیز برای خصلت فوق و در سطح Page  ، سبک لازم تعریف و دارای اولویت بیشتری  نسبت به سبک تعریف شده در فایل Test.css ، می باشد . خصلت های text-align , font-family و font-style صرفا" یک مرتبه تعریف شده اند، بنابراین  هر یک از آنان دارای تاثیر خاص خود می باشند .

تعریف و ذخیره سازی Style در یک فایل Style sheet ( فایلی با انشعاب css ) دارای مزایای عمده ای نسبت به تعریف و استفاده از آنان بصورت محلی در هر یک از فرم های وب و یا استفاده از آنان بصورت Inline بهمراه عناصر HTML ، است :

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

  • امکان استفاده از چندین style جداگانه که هریک مجموعه قوانین خاصی را تعریف می نمایند ، فراهم می گردد . در چنین مواردی ، می توان با توجه به شرایط و اهداف برنامه از یکی از سبک های تعریف شده بصورت پویا ، استفاده نمود .مثلا" می توان با استفاده از سبک های تعریف شده ، فرمت خروجی مورد نظر را در ارتباط با یک دستگاه خاص ( نمایشگر، چاپگر) ، ایجاد نمود. بعنوان نمونه ، یک برنامه می تواند سه نوع سبک شامل : استاندارد ، Enlarged type و Printer friendly را تعریف نماید که یکی از آنان با توجه به خواسته کاربر ، انتخاب و بکار گرفته شود.

 استفاده از Style Sheet در فرم های وب
در زمان ایجاد یک برنامه وب با استفاده از ویژوال استودیو دات نت ، یک Style sheet جدید با نام Style.css بصورت اتوماتیک نیز ایجاد می گردد. ویژوال استودیو ، در اغلب موارد بصورت اتوماتیک  از Style ایجاد شده  در هر یک از صفحات وب و یا فرم های وب ، استفاده نمی نماید ( فراخوانی فایل فوق، بصورت اتوماتیک انجام نمی شود) . بمنظور استفاده از Style sheet ایجاد شده ، می بایست از یک عنصر لینک در بخش  head مربوط به page استفاده گردد :

Using Global style

<HEAD>
<title>WebForm1</title>
      ...
<LINK REL="StyleSheet" TYPE = "text/css" HREF="Styles.css">
</HEAD>

تغییر Style
بمنظور تغییر Style  تعریف شده و یا ایجاد Style  جدید ، می توان از ابزار Style Builder در ویژوال استودیو دات نت ، استفاده نمود . در این رابطه مراحل زیر را دنبال می نمائیم :

  • فعال نمودن Style Sheet در ویژوال استودیو دات نت . پس از فعال نمودن Style sheet ، ویژوال استودیو دات نت ، تعاریف مرتبط با Style را در پنجره Document نمایش و یک Outline از Style sheet را در پنجره Tool ، نمایش خواهد داد :

  • Style مورد نظر بمنظور اعمال تغییرات را از طریق پنجره Tool ،  انتخاب  می نمائیم . در ادامه ، ویژوال استودیو تعاریف مرتبط با Style را در پنجره Document نشان می دهد 

  • بر روی Style definition ، کلیک راست  نموده (یا کلیک راست  بر روی Style  از طریق پنجره Tool )  و از طریق منوی مربوطه گزینه Build Style را انتخاب می نمائیم .ویژوال استودیو دات نت ، ویزارد Style Builder را فعال می نماید .
     

 


 

  • با استفاده از Style Builder می توان فرمت دلخواه  را در ارتباط با یک Style  تعریف نمود .

افزودن Style
برای افزودن سبک مورد نظر به یک Style خاص ، می توان از نام عنصر استفاده نمود . در این رابطه ،امکان استفاده از اسامی کلاس ها و یا ID مربوط به عناصر نیز وجود دارد .

  • فعال  نمودن Style Sheet ، کلیک راست بر روی پنجره Style sheet و یا Tool و انتخاب Add Rule  از طریق منوی pop up . ویژوال استودیو دات نت در ادامه ویزارد Add Style Rule را فعال می نماید :

  •  انتخاب نوع Style موردنظر که قصد ایجاد آن وجود دارد . در این رابطه می توان اقدام به ایجاد Style در رابطه با عناصر HTML ، کلاس ها و یا  عناصری با ID خاص ، نمود. نام آیتم مورد نظر را تایپ نموده و در ادامه با انتخاب گزینه "<" ( افزودن )،  آیتم انتخابی به مجموعه قوانین ، اضافه گردد .

  • مراحل فوق ، برای هر یک از آیتم هائی که می خواهیم style در رابطه با آنان بکارگرفته شود ، تکرار می گردد.

استفاده از Style بهمراه  کلاس ها
با استفاده از کلاس های Style ، می توان فرمت یکسانی را در رابطه با عناصر متفاوت HTML موجود بر روی یک فرم وب ، بکارگرفت. زمانیکه یک Style  در ارتباط با یک کلاس ایجاد می گردد، ویژوال استودیو دات نت ، با استفاده از مشخصه classname . ، یک تعریف Style را به Style sheet اضافه می نماید.

style class

.emphasis
   {
      font-style :italic ;
    }

 Style Class فوق، مسئولیت ایجاد فرمت مناسب ( ایتالیک ) را برای تمامی عناصری که از این کلاس استفاده می نمایند، برعهده دارد. برای استفاده از Style فوق بهمراه عناصر HTML از خصلت class استفاده میگردد. بمنظور استفاده از style بهمراه کنترل های سرویس دهنده ، از خصلت CssClass استفاده می گردد .

Style class

<P> This paragraph is test <Span Class="emphasis"> some text</span></p>
<asp:TextBox ID="Text1"  Runat="Server" CssClass="emphasis" >some text  </asp:TextBox>

ایجاد Style برای عناصر خاص
با استفاده از ID مربوط به عناصر،می توان Style  مورد نظر در ارتباط با عناصر خاص موجود بر روی یک فرم وب را تعریف نمود. ID مربوط به عناصر ، می بایست برای هر یک از عناصر موجود بر روی صفحه ، منحصربفرد می باشد. فرمت مشخص شده ، صرفا" در رابطه با یک عنصر بر روی هر صفحه بکارگرفته می شود . زمانیکه یک Style rule برای یک عنصر با ID مشخص شده ،ایجاد می گردد ، ویژوال استودیو دات نت ، یک تعریف Style را با استفاده از شناسه elementID #  ایجاد و آن را  به Style sheet ،اضافه می نماید.

Style by element ID

#Inserted
  {
     text-decoration : underline ;
  }
#deleted
  {
      text-decoration : line-through ;
  }

Style های تعریف شده در ویژوال استودیو ، اغلب بصورت صحیح در بخش form designer نشان داده نمی شوند . در صورتیکه خروجی مورد نظر در ارتباط با یک فرمت خاص مشاهده نمی گردد، می توان عملیات زیر  را  دنبال نمود:

  • اطمیان از ذخیره سازی صحیح Style sheet تعریف شده
  • فرم وب را در حالت HTML view و Design view مشاهده و بین آنان سوئیچ نمائید .
  • برروی فرم وب کلیک سمت راست نموده و گزینه View In Browser را بمنظور نمایش فرم وب در مرورگر ، انتخاب نمائید.

ایجاد Style تودرتو
در صورتیکه به تعاریف Style در Style sheet پیش فرض ، ( فایل Styles.css ) نگاهی داشته باشیم ، متوجه خواهیم شد که برخی تعاریف style ، چندین نام عنصر را شامل می شوند . تعاریف فوق  ، فرمت عناصر تودرتو را  مشخص می نماید. Style زیر ، نوع های متفاوتی از Bullet را تعریف می نماید( nested) .

Nested Style

UL  LI {
       list-style-type : square ;
      }
UL LI LI {
        list-style-type : disc ;
       }
UL LI LI {
       list-style-type : circle ;
      }  

بمنظور ایجاد Style های تودرتو ، می توان با استفاده از جعبه محاوره ای Add Style Rule ، چندین  آیتم را به ساختار سلسله مراتبی Style rule اضافه نمود.

تغییر Style Sheet در زمان اجراء
همانگونه که قبلا" اشاره گردید ، می توان چندین Style sheet را تعریف تا  امکان  استفاده از آنان  بصورت پویا و با توجه به شرایط موجود در برنامه در اخیتار کاربر قرارداده شود. ( مشاهده فرم وب ، نسخه چاپی فرم وب  ، ارائه نسخه بزرگتر فرم وب  و ... ) . بمنظور سوئیچ نمودن اتوماتیک بین Style Sheet ها ، می توان از خصلت media استفاده نمود. خصلت فوق ، Style sheet  مورد نظر را در ارتباط با  چاپ  و یا  نمایش بر روی نمایشگر ، مشخص می نماید. کد زیر ، نحوه  استفاده از دو style را بمنظور مشاهده فرم وب بر روی نمایشگر و یا چاپ آن،  نشان می دهد :

Two style sheets for one web form

<LINK REL="stylesheet" TYPE="text/css" HREF="styles.css" media="screen" >
<LINK REL="stylesheet" TYPE="text/css" HREF="print.css"    media="print" >

بمنظور سوئیچ نمودن بین Style sheet در زمان اجراء ، یک اسکریپت سمت سرویس گیرنده را نوشته تا تغییر لازم  در عنصر href  مربوط به لینک style sheet را ایجاد نماید . کد زیر ، یک فرم وب را ایجاد نموده  که بین style sheet های Style1.css و Style2.css ، سوئیچ می نماید ( زمانیکه کاربر بر روی لینک موجود کلیک می نماید ) .

Changing style sheets at run time

<HTML>
<HEAD id=myhead>
<title> ChangeSheets </title>
<LINK ID="ScreenStyle" REL="stylesheet" TYPE="text/css" HREF="Style
1.css">
<Script language="vbscript">
    Sub SwitchSheets( )
         if document.all("screenstyle").GetAttribute("HREF") = "Style1.css" then
                  document.all("ScreenStyle").SetAttribute "HREF" , "Style
2.css" , 0
         else
                  document.all("ScreenStyle").SetAttribute "HREF" , "Style
1.css" , 0
   End Sub
</Script>
</HEAD>
     <body>
           <form id="form1" method="post" runat="server">
                 <h2> Sample Styles </h2>
                  <p> Sample Paragraph </p>
                  <p><a onclick="switchsheets" href="#"> Click here
                  </a> to switch between sheets. </p>
            </form>
   </body>
</HTML>               Powered By yosafysite.tk

DOM چیست ؟

DOM)Document Object Model) یک رابط برنامه نویسی برای سندهای XML  و Html است . با استفاده از اینترفیس فوق، نحوه دستیابی و انجام پردازش های لازم در رابطه با سند های XML و Html فراهم می گردد . برنامه نویسان با استفاده از DOM ، قادر به ایجاد یک سند ،حرکت در طول ساختار سند، افزودن ، اصلاح و یا حذف المان های یک سند XML و یا Html می باشند . DOM توسط کنسرسیوم وب استاندارد و بمنظور استفاده از طریق زبان های برنامه نویسی متعددی طراحی شده است .
گره ها
برنامه ای با نام پارسر،  امکان  استقرار یک سند XML در حافظه را فراهم می نماید . پس از استقرار سند  در حافظه ، اطلاعات مربوطه بکمک  DOM ،  قابل بازیابی و پردازش خواهد بود . DOM  ، یک نمایش شبه درختی از یک سند XML را ایجاد می نماید . المان Document ،
دارای بالاترین  سطح در درخت ایجاد شده  است . المان فوق ،  دارای یک و یا چندین فرزند است . یک اینترفیس گره ، امکان  خواندن و یا نوشتن المان های خاصی در ساختار درختواره ای یک سند XML  را  میسر می نماید .با استفاده از خصلت ChildNodes مربوط به المان Document و بکارگیری یک حلقه تکرار می توان هر یک از گره ها  را انتخاب و در ادامه عملیات مورد نظر در رابطه با آن را انجام داد . پارسر شرکت ماکروسافت (MSXML،  دارای توابع متفاوت بمنظور حرکت در طول درخت،  دستیابی به گره ها بهمراه خصلت مربوطه،  درج و حذف گره ها و تبدیل ساختار درختی به شکل اولیه XML است . در حال حاضر،  سیزده نوع متفاوت گره توسط پارسرشرکت ماکروسافت،  حمایت می گردد . جدول زیر متداولترین نوع گره ها را نشان می دهد .

مثال

نوع گره

<!DOCTYPE food SYSTEM "food.dtd">

Document type

<?xml version="1.0"?>

Processing instruction

<drink type="tea">Irani</drink>

Element

type="tea"

Attribute

Irani

Text

استفاده از پارسر
بمنظور خواندن، ویرایش  و یا ایجاد و پردازش یک سند XML ، می بایست از یک پارسر استفاده کرد . پارسر شرکت ماکروسافت،  یک عنصر مبتنی بر COM بوده که بهمراه IE نسخه پنج ، ارائه شده است . پس از نصب مرورگر فوق،  امکان استفاده از پارسر فراهم می گردد . پارسر MSXML ،  دارای امکانات متعدد برنامه نویسی بمنظور استفاده توسط زبانهای زیر است :

  • حمایت از جاوااسکریپت  VBScript  Perl جاوا و  ++ C

  • حمایت از استاندارد کنسرسیوم وب و XML DOM

  • حمایت از DTD و معتبر سازی

مثال : نحوه ایجاد شی Document ،  با استفاده  جاوااسکریپت ، VBscript و ASP در جدول زیر نشان داده شده است :

مثال

تکنولوژی

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

Javascript

set xmlDoc = CreateObject("Microsoft.XMLDOM")

VBscript

set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")

ASP

استقرار یک سند XML در حافظه
کدهای  زیر نحوه استقرار یک سند XML با نام Test.xml در حافظه را نشان می دهد :

استقرار یک سند XML در حافظه

<script language="JavaScript">
     var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
      xmlDoc.async="false"
      xmlDoc.load("Test.xml")
      // ....... پردازش های لازم  
</script>

اولین خط در اسکریپت های فوق ، یک نمونه از پارسر XML شرکت ماکروسافت را ایجاد می نماید .  در دومین خط ،  به پارسر اعلام می گردد منتظر دریافت کامل سند XML بوده قبل از اینکه پردازش خود را آغاز نماید . در سومین خط ،  به پارسر اعلام شده است که یک سند XML با نام Test.xml را در حافظه مستقر نماید .

استقرار متن XML در پارسر
کدهای زیر، نحوه استقرار یک رشته متن را در پارسر XML نشان می دهد . در مثال فوق از متد LoadXML در مقابل متد load استفاده شده است . از متد loadXML بمنظور استقرار یک رشته متن در پارسر استفاده می گردد .

استقرار یک رشته متن XML در حافظه

<script language="JavaScript">
    var text="<note>"
    text=text+"<to>Ali</to><from>Reza</from>"
    text=text+"<heading>Reminder</heading>"
    text=text+"<body>Don't forget me this weekend!</body>"
    text=text+"</note>"
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.loadXML(text)
    // ....... پردازش های لازم
</script>

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

تشخیص خطاء و استفاده از شی ParseError در رابطه با وجود یک فایل

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("Test1.xml")
document.write("<br>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br>Error Line: ")
document.write(xmlDoc.parseError.line)

خطای مربوط به  XML . فرض کنید یک سند XML که  "خوش شکل "  نمی باشد،  توسط پارسر خوانده شود . کدهای زیر نحوه تشخیص و برخورد با خطاء را نشان می دهد :

تشخیص خطاء و استفاده از شی ParseError   در رابطه با سند "خوش شکل "

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note_error.xml")
document.write("<br>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br>Error Line: ")
document.write(xmlDoc.parseError.line)

خصلت های ParseError

عملکرد

خصلت

کد خطای بوجود آمده ، برگردانده می شود .

errorCode

علت خطای بوجود آمده  ،برگردانده می شود . 

reason

شماره خط خطای بوجود آمده  ، برگردانده می شود 

line

محل بروز خطاء در خط مربوطه را برمی گرداند .

linePos

رشته ای که شامل خط مربوط به خطای بوجود آمده است،  برگردانده می شود

srcText

url مربوط به سند مستقر سده در حافظه ،  بر گردانده می شود .

url

محل بروز خطاء در فایل مربوطه،  برگردانده می شود .

filePos

حرکت در طول درخت
یکی از متداولترین روش های بازیابی المان های یک سند XML ، حرکت در طول درخت ( از گره ای به گره دیگر ) و استخراج مقدار متن ذخیره شده بهمراه هر یک از المان ها  است . کدهای نوشته شده زیر ، امکان حرکت در طول یک درخت XML را فراهم و در ادامه هر یک از المان های سند XML ، در خروجی نمایش داده می شوند ( کدها با استفاده از VBScript نوشته شده اند ) .

حرکت در طول درخت و نمایش المان های یک سند XML

set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
for each x in xmlDoc.documentElement.childNodes
document.write(x.nodename)
document.write(": ")
 document.write(x.text)
next

ایجاد محتویات مبتنی بر Html برای یک سند XML
یکی از مهمترین قابلیت های XML ، تمایز و تفکیک سندهای Html از داده های مربوطه است . با استفاده از یک پارسر XML ، موجود در مرورگرها ، یک صفحه وب قادر به ایجاد محتویاتی پویا است . در این زمینه می توان از پتانسیل های جاوااسکریپت بمنظور تولید و ارائه  محتویات پویا نیز استفاده کرد . در همین راستا ، امکان استفاده از ASP برا ی ایجاد محتویات پویا با  تاکید بر نقش سرویس دهنده وب نیز وجود دارد . برنامه زیر ، داده های موجود در یک سند XML را خوانده و آنها را با فرمت Html در خروجی نمایش خواهد داد .

نمایش داده های موجود در یک سند XML با استفاده از جاوااسکریپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
nodes = xmlDoc.documentElement.childNodes
to.innerText = nodes.item(0).text
from.innerText = nodes.item(1).text
header.innerText = nodes.item(2).text
body.innerText = nodes.item(3).text

دستیابی به المان ها از طریق نام
رنامه زیر داده های موجود در یک سند XML را خوانده و آنها را با فرمت Html در خروجی نمایش خواهد داد .

دستیابی به المان ها د ر  یک سند XML  از طریق نام و بکمک  جاوااسکریپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
document.write(xmlDoc.getElementsByTagName("from").item(0).text)



مقالات                 
دایره المعارف       
دوره های آموزشی


 

 



              

 

مقدمه ای بر برنامه نویسی شی گراء در دات نت

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

بمنظور شناخت برنامه نویسی شی گراء ، کافی است به اطراف خود نگاهی داشته باشیم .جارو برقی ، قهوه جوش ، پنکه سقفی  و مجموعه بسیار گسترده ای  از سایر اشیاء را پیرامون زندگی خود مشاهده می نمائیم . اشیاء ما را محاصره و یا در محاصره اشیاء می باشیم . برخی از این اشیاء نظیر دوربین ، مستقل عمل نموه و برخی دیگر نظیر تلفن و ماشین های پاسخگو با سایر اشیاء ارتباط دارند . برخی از اشیاء دارای داده ها ئی می باشند که بین کاربران استفاده می گردد(یک دفترچه تلقن) . برخی از اشیاء شامل اشیاء دیگری می باشند، یک دستگاه بستنی ساز درون فریزر ، نمونه ای در این زمینه است .
بسیاری از اشیاء از لحاظ عملکرد با یکدیگر مشابه ولی از لحاظ اهداف با یکدیگر متفاوت می باشند . مثلا" وان حمام و سینک آشبزخانه هر دو امکان استفاده از آب را فراهم می نمایند ،ولی این کار بندرت اتفاق خواهد افتاد که شما در سینک آشبزخانه دوش گرفته و یا ظروف آشبزخانه خود را در وان حمام بشوئید! بهرحال وان حمام و سینک آشبزخانه موجود در منزل ، احتمالا" از یک لوله آب مشترک در ساختمان استفاده و اینترفیس آنها در موارد متعددی مشترک است ( پیچ آب گرم وسرد ، یک شیر آب ، یک فاضلاب ) .
در صورت تامل در ارتباط با اشیاء فوق ، با سوالات متعددی مواجه خواهیم شد . چه تفاوت هائی بین یک وان حمام و سینک آشبزحانه ، وجود دارد ؟ آیا اختلاف موجود به  محل آنها ، اندازه لگن و یا  گودی  آنها از سطح زمین برمی گردد. شباهت موجود بین اشیاء فوق چیست ؟
در برخی موارد انجام عملات یکسان در ارتباط با یک شی ، رفتارهای متفاوتی را بدنبال خواهد داشت . یک شی  قادر به انجام عملیات متفاوتی با توجه به ماهیت وضعیت بوجود آمده است . مثلا "  زمانیکه دکمه
Play  یک دستگاه کنترل کننده DVD و یا VCD فعال می گردد ، دستگاه قوق ، یک فیلم را پخش و ما شاهد نمایش آن بر روی صفحه تلویزیون خواهیم بود. اما اگر یک CD در دستگاه Player باشد ، همزمان با فشردن دکمه Play ، دستگاه Player باعث پخش CD صوتی شده و ما شاهد نواختن موسیقی از بلندگوهای مربوطه خواهیم بود.  همانگونه که مشاهده می گردد در چنین وضعیتی ، فعال نمودن دکمه ها ی مشابه ، عملیات یکسان ولی با  نتایج متفاوت را بدنبال داشته است .
به بسیاری از اشیاء پیرامون خود، می توان بعنوان جعبه های سیاه  (
black box ) ، نگاه نمود.در چنین حالتی نسبت به اصول اولیه عملکرد شی مورد نظر و پردازش های اولیه آن شناخت لازم وجود خواهد داشت ولی بسیاری از جزئیات عملیاتی که یک شی انجام می دهد برای ما ناشناخته خواهد بود. اکثرا" در زمان استفاده از یک شی علاقه مند به رویکرد فوق می باشند ( آشنائی با پتانسیل های شی و نحوه بالفعل نمودن آنان و پرهیز از درگیر شدن و آگاهی از جزئیات مربوطه ) . در چنین مواردی برای استفاده از اشیاء موجود در منزل ، ضرورتی به آگاهی از مکانیزم داخلی بعنوان شرط لازم وجود نخواهد داشت و می توان بدون درگیر شدن در جزئیات از شی موجود استفاده نمود.
بمنظور بررسی موضوع اشاره شده ، می توانیم  نگاهی به عملکرد یک لامپ  100 وات ، داشته باشیم . سیم پیچ درون لامپ چیزی بیشتر از یک مقاومت ساده نیست . زمانیکه برق فعال ( سوئیج  فعال گردد) شده باشد ، حرارت سیم پیچ درون لامپ در حدود 2500 درجه سلسیوس ، خواهد بود.وضعیت فوق ، باعث تشعش گرما ئی متناسب با طول رشته سیم درون لامپ ( قطر خیر ) و حدود 1750 لومن ( واحد پخش نور) می گردد .بدین ترتیب نور مرئی با طول موجی حدود 555 نانومنر را شاهد خواهیم بود. رشته موجود در لامپ از تنگستن تشکیل شده است . آیا به این حجم ازاطلاعات بهمراه جزئیات مربوطه  در زمان استفاده از لامپ ، نیاز خواهیم داشت و یا  صرفا"  می خواهیم زمانیکه سوئیچ فعال می گردد، لامپ روشن و با سایر مسائل و نحوه انجام این کار ، کاری نداریم ؟ در این راستا ، استفاده کنندگان از لامپ آن را بمنزله یک جعبه سیاه در نظر گرفته و صرفا" تمایل به آگاهی از نحوه استفاده از اینترفیس مربوطه برای بخدمت گرفتن پتانسیل موجود را دارند .
هر شی دارای دو خصلت ذاتی است : وضعیت ( 
state ) و رفتار ( Behavior ) . مثلا" یک لامپ  دارای اطلاعاتی نظیر :  روشن/خاموش بودن  ، نام تجاری ، طول عمر و موارد دیگر است که جملگی وضعیت شی فوق را مشخص می نمایند. رفتار لامپ ، شامل ارائه نور و روشنائی است .
یک شی مسلما" نسبت به خود ، بمنزله  یک جزیره است . بسیاری از اشیاء بصورت دسته جمعی و با  تشریک مساعی در یک سیستم  قرار خواهند گرفت . مثلا"  تلویزیون و بلندگوهای آن بخشی از سیستمی می باشند که موسوم به تئاتر خانوادگی است . یخچال و اجاق گاز بخشی از سیستمی با نام آشپزخانه می باشند. این نوع سیستم ها خود متعلق به یک سیستم بزرگتر و با نام آپارتمان و یا خانه می باشند . مجموعه ای از آپارتمانها سیستم دیگری را با نام مجتمع ایجاد می نمایند.
یک نرم افزار را می توان  مشتمل بر مجموعه ای از اشیاء در نظر گرفت که هر یک پتانسیل های لازم را ارائه و با بخدمت گرفتن آنان و بهره گیری از پتانسیل های موجود زمینه نیل به اهداف  مورد نظر فراهم خواهد شد.   بمنظور طراحی و پیاده سازی یک برنامه شی گراء در اولین  مرحله می بایست ، اقدام به طراحی و ایجاد اشیاء مورد نظر با توجه به اهداف نرم افزار نمود.مرحله فوق ، اولین گام و بدون شک مهمترین مرحله در فرآیند ایجاد یک سیستم است . در مرحله دوم که ارزش آن شاید بمراتب بالاتر از مرحله قبل باشد ، می بایست نحوه ارتباط اشیاء با یکدیگر بدرستی مشخص گردد. در زمان ایجاد یک سیستم بزرگ که دارای پیچیدگی های خاص خود است ، می بایست نسبت به دو مرحله فوق ، شناخت لازم وجود داشته و بدون آگاهی لازم ، امکان ایچاد اینچنین سیستم های بزرگی با رویکرد شی گراء ، چالش های خاص خود را بدنبال خواهند داشت .  در چنین مواردی می توان فرآیند پیاده سازی یک سیستم را شامل دو مرحله مهم طراحی شی گراء و برنامه نویسی شی گراء در نظر گرفت . برنامه نویسی مبتنی بر عنصر ، پایه و اساس این نوع سیستم ها محسوب می گردد .  برنامه نویسی اشیاء در نرم افزار ، نیازمند یک زبان برنامه نویسی شی گراء نمی باشد و اگر از یک زبان برنامه نویسی شی گراء استفاده می گردد ، بدین مفهوم نخواهد بود که کد نوشته شده ، شی گراء خواهد بود. زبان ها صرفا" می توانند کمکی در فرآیند فوق را ارائه و هیچگونه تضمینی در این رابطه را ارائه نخواهند داد. با استفاده از ویژوال بیسیک ، امکان نوشتن نرم افزار شی گراء وجود خواهد داشت . البته لازم است به این موضوع اشاره گردد که نوشتن برنامه شی گراء در ویژوال بیسیک همواره بسادگی انجام نخواهد شد ، چراکه  ویژوال بیسیک همواره دارای رویکردی شی گراء نمی باشد. پیاده سازی عناصر باینری با قابلیت استفاده مجدد در ویژوال بیسک در حال حاضر میسر و امکان پذیراست ولی استفاده از اینگونه عناصر  بین زبان های متفاوت چالش های خود را بدنبال خواهد داشت . با عرضه دات نت که مطابق آخرین دستاوردهای علمی ایجاد شده است ، ویژوال بیسیک دات نت بعنوان یکی از زبانهای حمایت شده ،  دارای امکانات قدرتمند وغنی بمنظور استفاده ازمزایای آخرین دستاوردهای پیاده سازی در برنامه نویسی شی گراء است .

ویژوال بیسیک دات نت و برنامه نویسی شی گراء
ویژوال بیسیک دات نت یک زبان برنامه نویسی شی گراء کامل است . این بدان معنی است که زبان فوق از چهار اصل برنامه نویسی شی گراء یعنی : انتزاع (abstraction ) ، کپسوله سازی کد و داده  ( encapsulation  ) ، وراثت  ( inheritance) ، چند ریختی ( polymorphism ) حمایت می نماید. در ادامه با اصول چهار گانه فوق بیشتر آشنا شده و مشاهده خواهیم کرد که هر یک از اصول فوق، چه دستاوردی را  برای پیاده کنندگان نرم افزار شی گراء بدنبال خواهند داشت .

انتزاع  ( abstraction )
رادیو دارای یک تیونر ، یک آنتن ، یک پیچ صدا و یک سوئیچ روشن و خاموش است . بمنظور استفاده از رادیو، ضرورتی به به آگاهی از نحوه دریافت سیگنال هائی رادیوئی توسط آنتن مربوطه ، تبدیل آنان به سیگنال های الکتریکی ، تقویت قدرت آنان بر اساس یک مدار تقویت کننده فرکانس بالا ، نخواهد بود. در این راستا لازم نیست از نحوه فیلتر نمودن نتایج ، تقویت و تبدیل آنان به صوت ، آگاهی داشت .ما صرفا" رادیو را روشن و پس از تنظیم ایستگاه مورد علاقه خود ، از آن استفاده می نمائیم . بدین ترتیب استفاده کنندگان می توانند بدون آگاهی از جزئیات داخلی از رادیو استفاده نمایند. ویژگی فوق ،  بسیار مهم بوده و امکان استفاده از رادیو برای هر شخص فراهم می گردد ( نه فقط افرادیکه دارای اطلاعات فنی در رابطه با نحوه عملکرد آن می باشند). بنابراین می توان این استنباط را داشت که رادیو یک شی است که بگونه ای طراحی شده است که پیچیدگی ها ی مربوط نمایان نباشد ( مخفی شدن پیچیدگی ) .
در نرم افزار شی گراء ، پیچیدگی با استفاده از انتراع ، مدیریت می گردد . انتزاع ، فرآیندی است که بر اساس آن رفتار حیاتی و مهم یک شی مشخص و جزئیات نامرتبط  ، حذف می گردد. یک انتزاع خوش فکر ، عموما" ساده بوده و  سمت و سوی آن نگریستن به موضوع (شی ) از دیدگاه کاربر است . فرآیند انتزاع ، نسبت به ساختار و ماهیت شی مورد نظر متفاوت بوده و لازم است برای ایجاد یک انتزاع برتر و مناسب ، موضوع بدفعات و از زوایای متفاوت مورد بررسی قرار گیرد.مثلا" در صورتیکه  بخواهیم  از رادیو با دو هدف متفاوت : گوش دادن به موزیک و یا آمورش اصول الکترونیک ، استفاده نمائیم ، نگرش به انتزاع رادیو در هر یک از موارد فوق با یکدیگر متفاوت خواهد بود .
انتزاع ، یک باید غیر قابل اتتخاب و جزء لاینفک یک شی است . مثلا"  شی
Button که در فرم های ویندوز و یا وب از آن بدفعات استفاده می گردد ، دارای متدی با نام  Click  است . متد فوق ، یک انتزاع است و چه بخواهیم و یا نخواهیم وجود خواهد داشت . ( تغییر شکل اولیه Button در زمانیکه بر روی آن کلیک می گردد ).  در این رابطه رویداد OnClick  یک انتخاب است که پیاده کنندگان می توانند با توجه به سیاست های موجود در نرم افزار نحوه برخورد با رویداد فوق را تبین و مشخص نمایند .

کپسوله سازی کد و داده   (encapsulation)
زبانهای برنامه نویسی نظیر
C و پاسکال قادر به ایجاد ساختارهائی مشابه شی می باشند. در C ، این ویژگی یک struct و در پاسکال از آن با نام رکورد یاد می گردد . هر دو نمونه، نوع های داده تعریف شده توسط کاربر می باشند . در هر دو زبان ، یک تابع قادر به عمل بر روی بیش از یک نوع است عکس حالت فوق نیز صادق است (بیش از یک نابع قادر به عملیات بر روی یک نوع داده است ). داده بطور کامل ارائه و آسیب پذیری خاص خود را خواهد داشت .
در مقابل وضعیت فوق ،  برنامه نویسی شی گراء بر اساس کپسوله سازی است . وضعیت شی و رفتار آن  با یکدیگر نگهداری و اصطلاحا" کپسوله می گردند. داده ئی که وضعیت  یک شی را ارائه داده بهمراه متدهائی  ( توابع و روتین ها ) که بر روی داده ها عملیاتی را انجام خواهند داد ، با یکدیگر و بعنوان یک واحد منسجم  ذخیره می گردند. بعبارت دیگر ، استقرار ساختمان داده ها و کدهای مربوطه جهت پردازش داده های فوق ، بمنظور رسیدن به یک هدف مشخص در یک
Box و تولید یک شی مشخص با اهداف از قبل تعریف شده ، کپسوله سازی نامیده می گردد.
کپسوله سازی ، اغلب با نام مخفی سازی اطلاعات نیز نامیده می شود. اما با اینکه این دو واژه در برخی حالات بجای یکدیگر استفاده می گردند ، نمی توان آنان را مترادف هم در نظر گرفت . آنان دارای مفاهیمی مجزاء می باشند. کپسوله سازی ، پیاده سازی یک شی را از رفتار آن  تفکیک و بنوعی محدودیتی را  بمنظور دستیابی به داده داخلی  ایجاد می نماید . محدودیت فوق ، باعث می گردد که جزئیات خاصی از رفتار یک شی مخفی گردد . بدین ترتیب ، امکان ایجاد یک جعبه سیاه فراهم که وضعیت داخلی یک شی در مقابل استفاده کنندگان وو آسیب های احتمالی حفاظت خواهد شد .
کپسوله سازی معمولا" با "انتزاع " نیز اشتباه گرفته می شود. با اینکه دو مفهوم فوق تا حدود زیادی با یکدیگر مشابه  می باشند ، ولی  ایده های متفاوتی را ارائه می نمایند. انتزاع یک فرآیند بوده و شامل عملیات لازم بمنظور مشخص نمودن خصایص و رفتار یک  شی برای  پردازش است . کپسوله سازی ، مکانیزمی است که توسط  "انتزاع " ، پیاده سازی می گردد .مثلا" شی رادیو ، تکنولوژی های متفاوتی را کپسوله نموده است ، تکنولوژی هائی که امکان درک مناسب آنان برای اغلب افراد امکان پذیر نخواهد بود.
در ویژوال بیسیک دات نت ، ساختاری که امکان تعریف یک "انتزاع " را فراهم می نماید ، کلاس (
class ) ، نامیده می شود. واژه کلاس و شی ، اغلب بجای یکدیگر استفاده می گردند ، اما  شی در واقع یک نمونه از یک کلاس است . یک عنصر شامل مجموعه ای از یک و یا چندین شی نظیر یک کتابخانه کلاس در یک DLL است .

توارث  (inheritance)
توارث ، قابلیت تعریف یک کلاس جدید است که رفتارهای خود ( و کد ) را ااز یک کلاس موجود ، به ارث می برد. کلاس جدید ، کلاس مشتق شده و یا کلاس فرزند ، نامیده می شود . کلاس اولیه بعنوان کلاس پایه و یا مادر  نامیده می شود .
توارث بمنظور ارائه ارتباطات از نوع "
Is-a " و یا "kind-of" ، است. یک اتومبیل یک وسیله نقلیه است . یک قایق یک وسیله نقلیه است . یک زیردریائی یک وسیله نقلیه است . در برنامه نویسی شی گراء ، کلاس پایه "وسیله نقلیه " ، می تواند رفتارهای عمومی تمامی انواع وسائط نقلیه را مشخص می نماید. یک کلاس زیرمجموعه که از کلاس پایه مشتق می گردد می تواند بگونه ای پیاده سازی گردد که نشاندهنده رفتار نوع خاصی از یک وسیله نقلیه باشد .مهمترین دستاورد توارث ، قابلیت توسعه و استفاده مجدد از کد است .  علاوه بر امکان فوق ، یکی دیگر از دستاوردهای توارث ، قابلیت ارتباط بین اشیاء متفاوتی است که از یک شی واحد ، مشتق شده اند .
در مقابل توارث ، نوع خاص دیگری از ازتباط  و از نوع "
has - a" وجود دارد . این نوع ارتباط با استفاده از ترکیب ( Composition)  که در برخی حالات از آن با نام تجمع ( aggregation ) نیز یاد می گردد، ایجاد می گردد. ارتباط فوق، نشاندهنده این موضوع است که  یک شی در مقابل توارث خصلت ها و رفتار خود از یک شی دیگر ، خود شامل شی دیگر است ( ترکیب خصلت ها و رفتار در مقابل توارث خصلت ها و رفتار ) .  طبیعتا"  اتومبیل دارای یک موتور است ، اما نمی توان این ادعا را داشت که اتومبیل نوعی از یک موتور است .
در
++C ، نوع خاصی از توارث و با نام توارت چندگانه ، استفاده می گردد. در سناریوی فوق ، یک کلاس از بیش از یک کلاس پایه مشتق می شود . تعداد زیادی از برنامه نویسان ++C ، استفاده از توارث چندگانه  را دارای چالش های خاص خود دانسته و در مواردیکه از کلاس های پایه با اسامی توابع یکسان  استفاده می گردد بکارگیری صحیح آنان برای حتی برنامه نویسان با تجربه مسائل خاص خود را بدنبال خواهد د اشت .ویژوال بیسیک دات نت ، نظیر جاوا صرفا" امکان توارث یگانه را حمایت می نماید.
در زمان طراحی شی گراء ، می بایست شناخت لازم و عمیقی از توارث و تاثیرات آن وجود داشته باشد . ایجاد یک شی که از شی دیگر مشتق خواهد شد ، همواره عملیات آسانی نخواهد بود و با مجموعه ای از سوالات روبرو خواهیم شد . مثلا"  آیا  دایره نوع خاصی از بیضی است ؟ آیا مربع شکل خاصی از مستطیل است ؟ . 

چند ریختی ( polymorphism  )
چندریختی ، تصور( برداشت )  اشکال متفاوت از یک شی ، است. در برنامه نویسی شی گراء ، این انتظار وجود دارد که پتانسیل های زبان استفاده شده برخوردی مناسب و متفاوت با اشیاء را در زمان اجراء داشته باشند. در مواردیکه اشیاء با یکدیگر ارتباط برقرار می نمایند عملا" پیام هائی را ارسال و یا دریافت می دارند . در این راستا ، فرستنده پیام ضرورتی به آگاهی ازاینکه چه کلاسی از دریافت کننده عضوء است ، نخواهد داشت. (می تواند هر کلاس دلخواهی باشد) . شی فرستنده صرفا"می بایست  دارای دانش لازم در ارتباط با توانائی شی دریافت کننده  بمنظور انجام یک رفتار خاص باشد. وضعیت فوق ، مهمترین مزیت چندریختی  است .
مثلا" فرض کنید ما دارای یک مستطیل ، مربع و یک دایره باشیم . هر کلاس  یک
shape بوده و هر یک دارای متدی با نام Draw می باشند که مسئولیت  تفسیر و رسم شکل بر روی صفحه را بر عهده دارند. با استفاده از چند ریختی  ، می توان متدی را ایجاد که  یک شی Shape  و یا  آرایه ای  از اشیاء Shape را بعنوان پارامتر دریافت نماید. می توان مربع ، مستیطل و دایره را به این متدها بدون هیچگونه مسئله ای پاس دهیم . (مراجعه به یک کلاس از طریق مادر آن بطور کامل معتبر و قانونی خواهد بود ). در مثال فوق ، گیرنده صرفا" از این موضوع که  یک Shape را دریافت که دارای متدی با نام Draw است ، آگاه  و اطلاعات خاصی در ارتباط با نوع خاص Shape  نخواهد بود. در صورتیکه Shape ، مستطیل باشد ، در ادامه نسخه Draw مربوط به مستطیل فراخوانده خواهد شد. اگر شکل مورد نظر ، مربع باشد ، نسخه  Draw مربوط به  مربع ،  فراخوانده می شود.
مفهوم فوق را می توان از زاویه ای دیگر نیز بررسی نمود . فرض کنید از یک نرم افزار گرافیکی کوچک  بمنظور ترسیم اشکال متفاوت استفاده می گردد و بخواهیم در یک لحظه چندین شکل را بر روی صفحه رسم نمائیم . بمنظور پیاده سازی قابلیت فوق ، کلاسی با نام
Scene ، ایجاد می گردد. کلاس فوق، دارای متدی با نام Render است که یک آرایه از اشیاء Shape را بعنوان ورودی دریافت می نماید . در چنین حالتی می توان آرایه ای  از اشکال متفاوت را ایجاد و آن را برای متد Render پاس نمود . متد فوق ، قادر به تکرار بین آرایه و فراخوانی متد Draw برای رسم هر یک از عناصر آرایه است . در این راستا و  متناسب با نوع شکل ، نسخه Draw  مربوط به شکل مورد نظر فراخوانده می گردد . متد  Render ، دارای ایده و یا اطلاعاتی  در ارتباط با نوع شکلی که در حا ل کار با آن است،  نخواهد بود.
مهمترین مزیت پیاده سازی کلاس
Scene و متد مربوطه آن یعنی Render ، جایگاه آنان در توسعه سیستم است . مثلا" در صورتیکه کلاس جدیدی با نام Ellipse ، اضافه گردد  ( کلاسی برای نرم افزار مربوطه ) ، ضرورتی به اعمال تغییرات در کلاس Scene وجودد نخواهد داشت . . متد Render قادر به رسم Ellipse نظیر سایر اشکال خواهد بود چراکه متد فوق با اشیاء مربوط یک ارتباط عمومی دارد . دراین حالت ، کلاس های Shape و Scene بدرستی با یکدیگر جفت وجور شده اند. این نوع از چند ریختی  ، عام و یا parametricpolymorphism نامیده می شود.  نوع دیگری از چند ریختی  ، Overloading
نامیده می شود. در مدل فوق ،  یک شی دارای دو و یا بیش از دو رفتار است که دارای اسامی یکسان می باشند . متدها صرفا" از طریق پیامهائی که دریافت می نمایند ( توسط پارامترهای متد ) مشخص خواهند شد . ایجاد یک متد مشترک با نام power  بمنظور محاسبه توان اعداد صحیح  و اعشاری ، نمونه ای مناسب در این زمینه است . با اینکه می دانیم برای محاسبه توان اعداد صحیح و اعشاری از الگوریتم ها ی متفاوتی استفاده می گردد ، می خواهیم با داشتن یک متد از قابلیت های آن بمنظور محاسبه توان اعداد صحیح و یا اعشاری استفاده نمائیم . استفاده کننده از متد Power ، با سناریوی طراحی شده درون متد کاری نداشته و صرفا" پارامتر خود را در اختیار متد قرار خواهد داد . با تمهیداتی که درون متد پیش بینی شده است ، تصمیم لازم در خصوص استفاده از روتین های جانبی ( متدهای جانبی ) بمنظور محاسبه توان اعداد صحیح و یا اعشاری یک عدد ، اتخاذ خواهد شد .
چند ریختی ، یکی از مفاهیم و ویژگی های مهم  برنامه نویسی شی گراء بوده که انعطاف شگفت انگیزی را در ارتباط با طراحی برنامه ها بدنبال خواهد داشت .

فریمورک دات نت
اشیائی که با استفاده از ویژوال بیسیک دات نت ایجاد می گردند، تداوم و ادامه حیات خود را مدیون فریمورک دات نت می دانند. پلات فرم فوق، با استفاده از استانداردهای های باز و پروتکل هائی نظیر
XML  ، HTTP و SOAP ایجاد شده است . فریمورک دات نت ، شامل یک کتابخانه استاندارد غنی است که سرویس های اساسی را در اختیار تمامی زبانهای سازگار با دات نت ، قرار می دهند.هدف از معماری فوق ، ارائه امکانات و تسهیلات لازم برای برای ایجاد ، بکارگیری و اجراء سرویس های مبتنی بر وب است . علیرغم هدف  فوق ، فریمورک دات نت ، محلی ایده آل برای  پیاده سازی تمامی انواع برنامه ها  صرفنظر از طراحی است .  برخی از مزایای معماری فوق بشرح زیر می باشد :

  • عملیات توزیع شده بر اساس استانداردهای اینترنت و پروتکل هائی نظیر HTTP,XML و SOAP 
  • ارائه سرویس های جهانی و بزرگ نظیر Object pooling, پیام ، امنیت و تراکنش
  •  زیرساخت  مناسب بمنظور تسهیل در پیاده سازی کدها و عناصر با قابلیت استفاده مجدد
  • تسهیل در پیاده سازی تحت وب با استفاده از استانداردهای باز .
  • ارتباط کامل بین زبانها که  دستاوردهائی نظیر : توارث کلاس ها ،  Catch exceptions و اشکال زدائی بین زبان های متفاوت را بدنبال خواهد داشت .
  • بکارگیری نرم افزار در دات نت بمراتب ساده ترنسبت به گذشته خواهد بود ، چراکه تنظیمات در فایل های پیکربندی از نوع XML ذخیره و در دایرکتوری مربوط به نرم افزار ذخیره خواهند شد. در این راستا ضرورتی به استفاده از ریجستری نخواهد بود

دو بخش بسیار مهم دات نت که توجه طراحان و پیاده کنندگان نرم افزار را بسرعت بسوی خود جلب می نماید : CLR)Common Language Runtime) و  کتابخانه کلاس دات نت است . CLR ،  سرویس های لازم برای عناصری را که تحت دات نت اجراء می گردند ، ارائه می نماید .کتابخانه کلاس دات نت ، مجموعه ای گسترده از کلاس ها را برای هر چیزی  از دستیابی به داده گرفته تا طراحی رابط کاربر، امنیت ، شبکه و ... ارائه می نماید. کتابخانه همچنین شامل تعاریف مورد نیاز برای تمامی نوع های داده اولیه نظیر : bytes,integers و string است . تمامی این نوع ها ، از یک کلاس پایه با نام  System.object  مشتق می گردند. محدودیتی بین نوع هائی که توسط سیستم تعریف شده اند با نوع هائی که شما ایجاد می نمائید ،وجود نخواهد داشت . هر چیزبمنزله  یک شی خواهد بود.
در گذشته ، پاس دادن یک
string از یک عنصر نوشته شده به زبان ویژوال بیسیک به عنصر دیگری که با ++C نوشته شده بود ، ( و یا برعکس ) مسائل و مشکلات خاص خود را بدنبال داشت . رشته ها در ویژوال بیسیک ، مشابه رشته ها در ++C نبودند . در حقیقت،در برخی موارد خاص ، استفاده از یک عنصر نوشته شده با ++C
از طریق ویژوال بیسیک ، بدلیل تفاوت در نوع داده آنان ، غیر ممکن بود. هر زبان سازگار با  دات نت ، از نوع های یکسان تعریف شده  و موجود در کتابخانه کلاس پایه استفاده می نماید. بدین ترتیب ، با مسائل مربوط به ارتباط عملیاتی بین زبانها که در گذشته شاهد آنان بودیم ، برخورد نخواهیم کرد.

CLR و قابلیت های آن
CLR ، موتور اجرائی فریمورک دات نت است . سیستم  فوق ، مدیریت تمامی کدهای ترجمه شده را بر عهده خواهد داشت .کد ترجمه شده که در دات نت اجراء می گردد را کد مدیریت یافته (اداره شده) می گویند. علاوه بر مسئولیت لود و اجراء یک برنامه ، CLR
سرویس هائی را ارائه که تمامی  پیاده کنندگان عناصر می توانند از مزایای آن بهره مند گردند:

  • فراخوانی و توقف threads و پردازه ها
  • چرخه حیات شی و مدیریت حافظه
  • ارتباط و همبستگی بین زبان ها
  •  کد قابل استفاده در محیط های  متفاوت ( Cross-code )  و  عملیات مبتنی بر امنیت
  •  Exception handling ( حتی بین زبانها )
  • بکارگیری و مسئله ورژن سازی
  •  ارتباط بین کد اداره شده ( مدیریت یافته ) و کد غیر اداره شده (غیرمدیریت یافته )
  • اشکال زدائی بین تمامی زبانها

Runtime ها چیزی جدیدی نمی باشند . ویژوال بیسیک همواره دارای نوع خاصی از یک runtime  بوده است . ویژوال ++C ، دارای یک runtime با نام MSVCRT.DLL است . perl ، Python و SmallTalk نیز از runtime استفاده می نمایند. تفاوت بین این نوع از Runtime ها و CLR در این است که CLR بمنظور کار با چندین زبان برنامه نویسی طراحی شده است .هر برنامه ای که مقصد کمپایلر آن فریمورک دات نت باشد ، قادر به استفاده از تمامی مزایای CLR است .
دات نت در این رابطه قابل مقایسه با جاوا نیز می باشد . جاوا از یک
Runtime با نام JVM)Java Virtual Machine) استفاده و صرفا" قادر به اجراء کد نوشته شده توسط جاوا می باشد . لازم است به این نکته مهم نیز اشاره گردد که JVM یک مفسر است . در دات نت ، تمامی برنامه های نوشته شده با هر یک از زبان های سازگار با دانت نت ،در ایتدا به یک زبان مستقل از پردازنده ترجمه می گردند که IL)Intermediate Language) نامیده می شود( قابل مقایسه با بایت کدهای جاوا ) . IL ، نظیر جاوا در زمان اجراء تفسیر نمی گردد و زمانیکه کد در اولین مرتبه اجراء می گردد ، یک و یا چندین کمپایلر JIT)Just-in-time) مسئولیت ترجمه کدهای IL به کد مختص یک ماشین را برعهده می گیرند.
ارتباط و همبستگی بین زبانها یک از مهمترین مزایای ارائه شده توسط
CLR است . اگر برنامه نویسی ، کلاسی را با استفاده از ++C نوشته باشد ، می توان کلاسی در VB.NET را با استفاده از آن ایجاد نمود( توارث بین زبانها ). ویژگی فوق ، توارث بین زبان ها نامیده می گردد. اشیاء نوشته شده با زبان متفاوت دیگر قادر به ارتباط عملیاتی  با یکدیگر می باشند . دو بخش مهم CLR که  امکان فوق را فراهم می نمایند CTS)Common Type System) و CLS) Common Language Specification)
، می باشند .

سیستم CTS
سیستم
CTS ، قوانین لازم بمنظورتبعیت یک زبان در جهت  بهره گیری از مزایای فریمورک دات نت را تعریف می نماید. سیستم فوق، همچنین مجموعه ای از نوع های متداول و عملیاتی که در بین زبان های برنامه نویسی متفاوت موجود است را تعریف و مشخص می نماید که چگونه این نوع ها استفاده و توسط CLR مدیریت گردند ، چگونه اشیاء قابلیت های خود را عرضه و چگونه با یکدیگر ارتباط برقرار نمایند . CTS
 ، فونداسیون لازم بمنظور ارتباط متقابل بین زبانها در دات نت را ایجاد  می نماید.

سیستم CLS)Common Language Specification)
CLS ، زیر مجموعه ای از CTS بوده که مسئول تشریح پارامترهای پایه و مهم استفاده شده توسط مجموعه ای گسترده از زبان های برنامه نویسی است . عناصری که از ویژگی های CLS ، استفاده می نمایند ، سازگار با CLS بوده و امکان استفاده و دستیابی به عناصر فوق ، از طریق سایر زبانهای برنامه نویسی سازگار با  دات نت ، وجود خواهد داشت . VB.NET یک زبان سازگار با CLS است . بنابراین ، هر کلاس ، شی و یا عنصری که ایجاد می گردد ، توسط سایر زبا ن های سازگار با CLS در دا ت نت ، قابل استفاده خواهد بود.

ایمن سازی سرویس دهنده FTP

سرویس FTP)File Transfer Protocol) یکی از قدیمی ترین و متداولترین سرویس های موجود بر روی اینترنت است . از سرویس فوق ، بمنظور ارسال و دریافت فایل در یک شبکه استفاده می گردد. سرویس FTP ، توسط عموم کاربران اینترنت استفاده و بعنوان استانداردی برای ارسال و دریافت فایل در شبکه ( اینترانت ، اینترنت )  توسط اکثر سیستم های عامل پذیرفته  شده است
ویندوز 2000 بهمراه خود از یک سرویس دهنده FTP استفاده می نماید که بعنوان بخشی از IIS  در نظر گرفته می شود. مدیران سیستم با استفاده از سرویس فوق و ترکیب آن با  سایر امکانات ارائه شده توسط ویندوز ، قادر به ایجاد و پیکربندی یک سایت FTP با ضریب امنیتی مناسبی خواهند بود.در ادامه و بمنظور ایمن سازی یک سایت FTP ، پیشنهادات متعددی ارائه می گردد.

نکته اول : دستیابی از طریق  Anonymous account را غیر فعال نمائید . دستیابی از نوع Anonymouse، بصورت پیش فرض و پس از نصب اولین سرویس دهنده  FTP فعال می گردد. روش  فوق ، امکان دستیابی به سایت FTP را بدون نیاز به یک  account  خاص فراهم می نماید. بدین ترتیب استفاده کنندگان بصورت کاملا" ناشناس قادر به استفاده از منابع موجود بر روی سرویس دهنده FTP  بوده و امکان مشاهده سودمند ترافیک سایت و در صورت ضرورت، ردیابی آنان وجود نخواهد داشت . با حذف قابلیت دستیابی Anonymous ، امکان دستیابی به سایت FTP صرفا" در اختیار کاربرانی قرار خواهد گرفت که دارای یک account معتبر باشند.
پس از تعریف هر یک از account های مورد نظر، می توان در ادامه با استفاده از ACL)Access Control List) کنترل ها و مجوزهای مربوط به دستیابی به دایرکتوری FTP ( محل فیزیکی استقرار سایت FTP بر روی دیسک ) را تعریف و مشخص نمود . در این رابطه می توان از مجوزهای NTFS استفاده کرد. به منظور غیر فعال نمودن Anonymous account ، می توان از طریق صفحه Property مربوط به سایت FTP  (  برنامه Internet Information Service )  عملیات مورد نظر را انجام داد .

نکته دوم : فعال نمودن Logging . با فعال نمودن Logging بمنظور اتصال به سایت FTP ، این اطمینان بوجود خواهد آمد که اطلاعات لازم ( آدرس های IP و یا نام کاربران ) در خصوص کاربرانی که بصورت موفقیت آمیز به سایت متصل شده اند ، ثبت خواهد شد.با استفاده از فایل های لاگ که در این رابطه ایجاد خواهد شد ، می توان ترافیک موجود بر روی سایت را مشاهده و در صورت یک تهاجم ، امکان ردیابی اولیه آن فراهم گردد. بمنظور فعال نمودن ویژگی فوق، کافی است که  Chex box مربوطه  از طریق صفحه Property مربوط به سایت FTP انتخاب گردد .در ادامه ، فایل های لاگ  بر اساس فرمتی که مشخص شده است ، ایجاد خواهند شد . استفاده از فایل های لاگ ، بمنظور مشاهده و آنالیز ترافیک سایت  بسیار مفید خواهد بود.

نکته سوم : تنظیم و پیکربندی مناسب  لیست ACL ( لیست کنترل دستیابی ) .دستیتابی به دایرکتوری FTP می بایست با استفاده از مجوزهای NTFS و بکارگیری محدودیت های ACL ، کنترل گردد .  دایرکتوری FTP نباید دارای گروه Everyone با تمامی امتیازات و مجوزها باشد ( امکان کنترل مجوزها  و کاربرانی که سایت FTP متصل شده اند وجود نخواهد داشت ) .بدین منظور لازم است  بر روی دایرکتوری مربوط به سایت FTP مستقر و با انتخاب گزینه Property و  Security Option ، اسامی موجود را حذف و  با انتخاب دکمه Add از لیست موجود،  Authenticated user را انتخاب کرد . در ادامه می توان با توجه به سیاست های موجود مجوز Read,Write و List Folder contents را در اختیار گروه مربوطه قرار داد . در صورتیکه سیاست موجود اقتضاء می کند ، می توان صرفا" امکان دستیابی Write را در اختیار گروه مربوطه قرار و مجوزهای Read وList Folder Contents را از آنها سلب نمود .

نکته چهارم : پیکربندی سایت بعنوان دریافت کننده نه ارسال کننده  . در صورتیکه صرفا" نیاز است که کاربران فایل هائی را برای سرویس دهنده ، ارسال و امکان دریافت فایل از سرویس دهنده را نداشته باشند ، می توان سایت FTP را بصورت Blind put پیکربندی نمود. بدین ترتیب به کاربران امکان ارسال ( نوشتن ) فایل بر روی سرویس دهنده داده خواهد شد .( امکان  خواندن از دایرکتوری FTP  وجود نخواهد داشت ) . بدین منظور می توان پس از انتخاب سایت FTP از طریق Home Directory ، اقدام به تنظیمات مورد نظر نمود.

نکته پنجم : فعال نمودن Disk Quotas. با استفاده از امکانات ارائه شده توسط ویندوز 2000 ، می توان اقدام به تعیین ظرفیت و یا سهیه ذخیره سازی بر روی دیسک برای هر یک از کاربران نمود..ویژگی فوق ، باعث اعمال محدودیت در رابطه با میزان فضای ذخیره سازی مربوط به یک کاربر می گردد.بصورت پیش فرض ، مالکیت  به هر کاربر که در فایلی می نویسد اعطاء می گردد . با فعال نمودن و انجام تنظیمات مورد نظر، می توان پیشگیری لازم در ارتباط با تهاجم به یک سایت FTP را انجام داد ( پر نمودن ظرفیت دیسک ). در صورت تحقق وضعیت فوق ، دامنه اشکال بوجود آمده به سایر  سرویس هائی که از فضای ذخیره سازی دیسک استفاده می نمایند نیز سرایت خواهد کرد. برای فعال نمودن Quota Management ، بر روی درایو موردنظر مستقر و با کلیک سمت راست گزینه Property را انتخاب و در نهایت گزینه Quota Tab انتخاب شود .امکان فوق ، صرفا" در ارتبا ط با پارتیشن های NTFS قابل استفاده خواهد بود.استفاده از Disk Quota ، محدود به پارتیش های NTFS بوده و علاوه بر این  صرفا" می تواند در رابطه با یک کاربر استفاده شده وامکان بکارگیری آن در ارتباط با گروه ها وجود نخواهد داشت . با انتخاب دکمه Quota Entries می توان اقدام به تعریف یک Entry جدید و تعریف محدودیت های مورد نظر نمود.

نکته ششم : استفاده از محدودیت زمانی برای Logon . با استفاده از امکانات ارائه شده همراه  ویندوز 2000 ، می توان زمان خاصی را برای ورود به شبکه کا ربران تعریف نمود. بدین ترتیب کاربران صرفا" قادر به استفاده از سرویس دهنده در ساعات مشخص شده خواهند بود.ویژگی فوق ، بطرز محسوسی باعث کنترل دستیابی به سایت FTP خواهد شد. برای پیکربندی زمان  logon ، از برنامه Active Directory Users and Computers استفاده می گردد . پس از فعال شدن برنامه فوق ، کاربر مورد نظر را انتخاب و پس از مشاهده صفحه  Property مربوطه، با انتخاب دکمه Logon hours  از طریق Account Tab ، می توان اقدام به  مشخص نمودن زمان مورد نظر کاربر برای استفاده ازسرویس دهنده  نمود.


 

نکته هفتم : محدودیت دستیابی بر اساس آدرس IP . بمنظور دستیابی به سایت FTP می توان معیار دستیابی را بر اساس آدرس های IP خاصی در نظر گرفت . با اعمال محدودیت فوق ، اقدامات مناسبی بمنظور کنترل دستیابی به سایت در نظر گرفته خواهد شد . بمنظور فعال نمودن ویژگی فوق ، پس از انتخاب سایت FTP از طریق برنامهInternet Information Services و مشاهده  صفحه Property ، گزینه Directory Security Tab انتخاب گردد. در ادامه،  Denied Access فعال و می توان  با استفاده از دکمه Add آدرس های IP تائید شده را معرفی کرد.

نکته هشتم :ثبت رویدادهای Audit logon . با فعال نمودن  Auditing ( ممیزی ) مربوط به رویدادهای Account Logon ، می توان تمامی تلاش های موفقیت آمیز و یا با شکست مواجه شده جهت اتصال به سایت FTP را با استفاده از Security log مربوط به Event Viewer ، مشاهده نمود. مشاهده ادواری این لاگ می تواند عامل موثری در کشف ، تشخیص و ردیابی  تهاجم به یک سایت باشد. (تشخیص مزاحمین و مهاجمین اطلاعاتی ). بمنظور فعال نمودن ویژگی فوق ، از برنامه Local Security Policy و یا Group Policy استفاده می گردد (Programs|Administrative Tools ) . پس از فعال شدن برنامه فوق و استقرار در Local Policies/audit policy ، می توان اقدام به تغییر Local Setting به Success و Failure نمود.

 

نکته نهم : فعال نمودن Strong Password . استفاده از رمزهای عبور پیچیده ،روشی مناسب بمنظور افزایش امنیت در خصوص ارائه یک سرویس خاص برای کاربران تائید شده است . با توجه به جایگاه سرویس دهنده FTP ، استفاده از رمزهای عبور قدرتمند می تواند عاملی موثر در جهت افزایش امنیت سایت های FTP باشد .  با استفاده از امکانات ارائه شده در ویندوز 2000 ، مدیران سیستم می توانند کاربران را مجبور به استفاده از رمزهای عبور مستحکم و قوی نمایند. بمنظور فعال نمودن ویژگی فوق ، از برنامه Local Security Policy و یا Group Policy استفاده می گردد (Programs|Administrative Tools ) . پس از فعال شدن برنامه فوق و استقرار در Account Policy/Password Policy  ، می توان گزینه Passwords Must Meet Complexity Requirements را فعال نمود . پس از فعال شدن ویژگی فوق ، هر یک از account های تعریف شده تابع شرایط و محدودیت های زیر خواهند بود :

  • رمز عبور تعریف شده نمی تواند شامل تمام و یا بخشی از نام Account کاربر باشد .
  • رمز عبور تعریف شده می بایست دارای طولی به اندازه حداقل  شش باشد .
  • رمز عبور تعریف شده می تواند شامل کاراکترها ئی از سه گروه از  چهار گروه زیر باشد :
    - حروف الفبائی  A-Z
    - حروف الفبائی a-z
    - ارقام صفر تا نه
    - کاراکترهای خاص ( %,#,$,!)

نکته دهم : فعال نمودن Account Lockout و Account Lockout Threshold .آگاهی و تشخیص رمزهای عبور یکی از موضوعات مورد علاقه اکثر مهاجمان و برنامه های تشخیص دهنده رمز عبوراست .با استفاده از امکانات ارائه شده بهمراه  ویندوز 2000 ، مدیران شبکه می توانند تعداد دفعاتی را که یک کاربرسعی در ورود به شبکه می نماید و عملیات وی با موفقیت همراه نمی گردد را مشخص و در صورت تحقق شرایط فوق ، account مربوطه غیر فعال گردد. با فعال نمودن ویژگی فوق و پیکربندی میزان آستانه ، مدیران شبکه می توانند عماکرد برنامه های تشخییص دهنده رمز های عبور و یا مهاجمان اطلاعاتی را محدود و ضریب ایمنی را افزایش دهند.  بمنظور فعال نمودن ویژگی فوق ، از برنامه Local Security Policy و یا Group Policy استفاده می گردد (Programs|Administrative Tools ) . پس از فعال شدن برنامه فوق و استقرار در Account Policy/Account Lockout Policy  ، می توان تنظیمات لازم در خصوص Account Lockout duration , Account lockout threshold و Reset account lockout counter after را انجام داد .

 

بخش اول : معرفی زیرساخت یک شبکه

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

یک بستر پایه برای ایجاد یک سازمان و یا سیستم .

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

?        عناصری که بنوعی زیرساخت فیزیکی یک شبکه را تشکیل می دهند.( نظیر کامپیوترها ، کابل ها،  کارت های شبکه،  هاب ها و روترها ). ماهیت عناصر فوق بصورت سخت افزاری است .

?        عناصری که بنوعی زیر ساخت منطقی یک شبکه را تشکیل می دهند. ( نظیر : پروتکل های شبکه، سرویس های مربوط به DNS ، مدل های آدرس دهی IP،  سرویس های مربوط به دستیابی از راه دور و پروتکل های امتیتی ) ماهیت عناصر فوق نرم افزاری بوده که می بایست نصب و پیکربندی گردنند.

در ادامه به تشریح عناصر مربوط به زیرساخت منطقی یک شبکه پرداخته می شود.

عناصر مربوط به زیرساخت منطقی

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

?        پروتکل های شبکه

?        مدل آدرس دهی IP

?        سرویس های مربوط به حل مشکل اسامی  و آدرس ها

?        دستیابی از راه دور

?        روتینگ و ترجمه آدرس های شبکه

?        سرویس های مربوط به ایجاد زیر ساخت های امنیتی

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

پروتکل های شبکه

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

در ویندوز   ۲۰۰۰   نظیر ویندوز NT     و ۹۵ از پروتکل های متعدد ی نظیر : NWlink ( نسخه پیاده سازی شده از پروتکل IPX/SPX  توسط مایکروسافت ) و NetBEUI ( یک پروتکل ساده  سریع که در شبکه های کوچک با تاکید بر عدم  قابلیت روتینگ ) استفاده می گردد) . در ویندوز۲۰۰۰  از پروتکل TCP/IP استفاده می گردد.

 

 

مدل های شبکه ای

بمنظور شناخت مناسب نحوه عملکرد پروتکل در شبکه می بایست با برخی از مدل های رایج شبکه که معماری شبکه را تشریح می نمایند، آشنا گردید. مدل OSI (Open Systems Interconnection) بعنوان یک مرجع مناسب در این زمینه مطرح است . در مدل فوق از هفت لایه برای تشریح فرآیندهای مربوط به ارتباطات استفاده می گردد. در حقیقت هریک از لایه ها مسیولیت انجام عملیات خاصی را برعهده داشته و معیار و شاخص اصلی تقسیم بندی بر اساس عملیات مربوطه ای که می بایست در هر لایه صورت پذیرد. مدل OSI بعنوان یک مرجع و راهنما برای شناخت عملیات مربوط به ارتباطات استفاده می گردد. در بعد پیاده سازی خیلی از پروتکل دقیقا" از ساختار مدل OSI تبعیت نخواهند کرد. ولی برای شروع و آشنا شدن با عملکرد یک شبکه از بعد ارسال اطلاعات مطالعه مدل فوق موثر خواهد بود. شکل زیر هفت لایه معروف مدل OSI را نشان می دهد.

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

 

شناخت مدل فوق از این جهت مهم است که در پروتکل های پشته ای نظیر TCP/IP پروتکل های متعدد در لایه های متفاوت وجود داشته وهر یک دارای عملکرد اختصاص مربوط به خود می باشند. پروتکل های TCP ، UDP  ،  IP از جمله پروتکل هائی هستند که هریک عملیات مربوط به خود را با توجه به لایه مربوطه انجام می دهند. در ادامه به معرفی اولیه هر یک از  آنها خواهیم پرداخت . مدل OSI تنها مدل استفاده شده در شبکه نمی باشد و از مدل های دیگری نظیرمدل DoD  (Department of Defence)) نیز استفاده می گردد.

چرا پروتکل TCP/IP ؟

پروتکل TCP/IP استاندارد فعلی برای شبکه های بزرگ است . با اینکه پروتکل فوق کند و مستلزم استفاده از منابع بیشتری است ولی بدلیل مزایای بالای آن نظیر : قابلیت روتینگ ،  استفاده در اغلب پلات فورم ها و سیستم های عامل  همچنان در زمینه استفاده از پروتکل ها حرف اول را می زند. با استفاده از پروتکل فوق کاربری با در اختیار داشتن ویندوز و پس از اتصال به شبکه اینترنت براحتی قادر به ارتباط با کاربر دیگری خواهد بود  که از مکینتاش استفاده می کند 

برای مدیران شبکه امروزه کمتر محیطی را می توان یافت که نیازبه دارا بودن دانش کافی در رابطه با TCP/IP نباشد. حتی سیستم عامل شبکه ای ناول که سالیان متمادی از پروتکل IPX/SPX برای امر ارتباطات خود استفاده می کرد در نسخه شماره پنج خود به ضرورت استفاده از پروتکل فوق واقف و نسخه اختصاصی  خود را در این زمینه ارائه نمود.

پروتکل TCP/IP در ابتدا برای استفاده در شبکه ARPAnet ( نسخه قبلی اینترنت ) طراحی گردید. وزارت دفاع امریکا با همکاری برخی از دانشگاهها اقدام به طراحی یک سیستم جهانی نمود که دارای قابلیت ها و ظرفیت های متعدد حتی در صورت بروز جنگ هسته ای باشد. پروتکل ارتباطی برای اینچنین شبکه ای TCP/IP در نظر گرفته شد.

بمنظور پیکربندی مناسب پروتکل TCP/IP در ویندوز ۲۰۰۰ می بایست به موارد ذیل توجه نمود:

?        تخصیص دستی  آدرس  IP برای هر یک از منابع ضروری در شبکه  و یا استفاده منابع ضروری  در شبکه از سیستمی که بصورت پویا به آنان IP اختصاص خواهد داد. در این حالت لازم است که سرویس دهنده ای که رسالت فوق در شبکه را برعهده خواهد گرفت نصب و پیکربندی گردد.             ( DHCP server )

?        جایگاه Subnet mask . بکمک آن می توان مشخص نمود که کدام بخش IP مربوط به شماره شناسائی (ID) شبکه بوده وکدام بخش مربوط به شماره شناسائی (ID) کامپیوتر Host است.

?        در صورتیکه لازم است بسته های اطلاعاتی از شبکه خارج و برای شبکه دیگر ارسال گردنند( روتینگ ) می بایست Gateway پیش فرض را مشخص نمود.

?        آدرس مربوط به DNS که مسئولیت حل مشکل تبدیل نام به آدرس را برعهده خواهد داشت . ذکر این نکته ضروری است که استفاده از DNS در شبکه های ویندوز ۲۰۰۰ که بعنوان کنترل کننده دامنه محسوب شده و در کنار خود از Active Directory استفاده می کند یک ضرورت است نه انتخاب.

?        آدرس مربوط به سرویس دهنده WINS که مسئولیت برطرف کردن اسامی NetBIOS به IP مربوط را برعهده خواهد داشت. در صورت نیاز می توان امکان NetBIOS برروی TCP/IP را غیر فعال نموده و در چنین حالتی ضرورتی به نصب سرویس دهنده WINS نخواهد بود.

اغلب موارد فوق را می توان با استفاده از سرویس دهنده DHCP بصورت اتوماتیک انجام داد. شکل  صفحه بعد نحوه تغییر  خصایص پروتکل TCP/IP در ویندوز ۲۰۰۰  را نشان می دهد.

 

 

 

اجزای پروتکل TCP/IP

پروتکل TCP/IP  از مجموعه پروتکل های دیگر تشکیل شده که هر یک در لایه مربوطه، وظایف خود را انجام می دهند. پروتکل های موجود در لایه های Transport  و Network  دارای اهمیت بسزائی بوده و لازم است که در این بخش به معرفی آنها بپردازیم .

?        پروتکل TCP(Transmission Control Protocol) . مهمترین وظیفه پروتکل فوق اطمینان از صحت ارسال اطلاعات است . پروتکل فوق اصطلاحا" Connection-oriented نامیده می شود. علت این امر ایجاد یک ارتباط مجازی بین کامپیوترهای فرستنده و گیرنده بعد از ارسال اطلا عات است . پروتکل هائی از این نوع امکانات بیشتری را بمنظور کنترل خطاهای احتمالی در ارسال اطلاعات فراهم نموده ولی بدلیل افزایش بار عملیاتی سیستم کارائی آنان کاهش خواهد یافت . از پروتکل TCP  بعنوان یک پروتکل قابل اطمینان نیز یاد می شود. علت این امر ارسال اطلاعات و کسب آگاهی لازم از گیرنده اطلاعات بمنظور اطمینان از صحت ارسال توسط فرستنده است . در صورتیکه بسته های  اطلاعاتی بدرستی دراختیار فرستنده  قرار نگیرند فرستنده مجددا" اقدام به ارسال اطلاعات می نماید.

?        پروتکل UDP(User Datagram Protocol) . پروتکل فوق نظیر پروتکل TCP در لایه " حمل " فعالیت می نماید.  UDP بر خلاف پروتکل TCP  بصورت "بدون اتصال " است . بدیهی است که سرعت پروتکل فوق نسبت به TCP سریعتر بوده ولی از بعد کنترل خطاء تضمینات لازم را ارائه نخواهد داد. بهترین جایگاه استفاده از پروتکل فوق در مواردی است که برای ارسال و دریافت اطلاعات به یک سطح بالا از اعتماد نیاز نداشته باشیم .

?        پروتکل IP(Internet Protocol) . پروتکل فوق در لایه شبکه ایفای وظیفه کرده و مهمترین مسئولیت  آن دریافت و ارسال بسته های اطلاعاتی به مقاصد درست است . پروتکل فوق با استفاده آدرس های نسبت داده شده منطقی، عملیات روتینگ را انجام خواهد داد.

پروتکل های موجود در لایه Application  پروتکل TCP/IP

پروتکل TCP/IP صرفا" به سه پروتکل TCP ،  UDP  و IP محدود نشده و در سطح لایه Application دارای مجموعه گسترده ای از سایر پروتکل ها است . پروتکل های فوق بعنوان مجموعه ابزارهائی برای مشاهده  ،   اشکال زدائی و اخذ اطلاعات و سایر عملیات مورد استفاده قرار می گیرند.در این بخش به معرفی برخی از این پروتکل ها خواهیم پرداخت .

?        FTP(File Transfer Protocol) . از پروتکل فوق برای تکثیر فایل های موجود بر روی  یک کامیپیوتر و کامپیوتر دیگر استفاده می گردد. ویندوز ۲۰۰۰ دارای یک برنامه خط دستوری بوده که بعنوان سرویس گیرنده ایفای وظیفه کرده و امکان ارسال و یا دریافت فایل ها را از یک سرویس دهنده FTP فراهم می کند. سرویس دهنده FTP  بعنوان یک بخش مجزاء و در زمان نصب IIS ( سرویس دهنده اطلاعاتی اینترنت ) بر روی سیستم نصب خواهد شد.

?        SNMP(Simple Network Management Protocol) . از پروتکل فوق بمنظور اخذ اطلاعات آماری استفاده می گردد. یک سیستم مدیریتی درخواست خود را از یک آژانس SNMP مطرح و ماحصل عملیات کار در یک MIB(Management Information Base)  ذخیره می گردد. MIB یک بانک اطلاعاتی بوده که اطلاعات مربوط به کامپیوترهای موجود در شبکه را در خود نگهداری می نماید .( مثلا" به چه میزان فضا مربوط به هارد دیسک وجود دارد)

?        پروتکل TelNet . با استفاده از پروتکل فوق کاربران قادر به log on   اجرای برنامه ها و مشاهده فایل های موجود بر روی یک کامپیوتر از راه دور می باشند. ویندوز ۲۰۰۰ دارای برنامه های سرویس دهنده و گیرنده جهت فعال نمودن و استفاده از پتانسیل فوق است .

?         SMTP(simple Mail Transfer Protocol) . از پروتکل فوق برای ارسال پیام الکترونیکی بر روی اینترنت استفاده می گردد.

?         HTTP(HyperText Transfer Protocol) . پروتکل فوق مشهورترین پروتکل در این گروه بوده و از آن برای رایج ترین سرویس اینترنت یعنی وب استفاده می گردد. با استفاده از پروتکل فوق کامپیوترها قادر به مبادله فایل ها با فرمت های متفاوت ( متن،  تصاویر ،گرافیکی ، صدا  ویدئو و...) خواهند بود. برای مبادله اطلاعات با استناد به پروتکل فوق می بایست ، سرویس فوق از طریق نصب سرویس دهنده وب فعال و در ادامه  کاربران و استفاده کنندگان با استفاده از یک مرورگر وب قادر به استفاده از سرویس فوق خواهند بود.

?         NNTP(Network News TYransfer Protocol) . از پروتکل فوق برای مدیریت پیام های ارسالی برای گروه های خبری خصوصی و عمومی استفاده می گردد. بمنظور عملیاتی نمودن سرویس فوق می بایست سرویس دهنده NNTP برای مدیریت محل ذخیره سازی پیام های ارسالی نصب و در ادامه کاربران و سرویس گیرندگان با استفاده از برنامه ای موسوم به NewsReader از اطلاعات ذخیره شده استفاده خواهند کرد. ویندوز 2000 Server دارای یک سرویس دهنده NNTP بهمراه  IIS است . برنامه Outlook Explore 5.0 علاوه بر ارائه امکانات لازم در خصوص ارسال و دریافت پیام های الکترونیکی دارای امکانات لازم بعنوان یک NewsReader نیز است .

برنامه های کمکی TCP/IP

برای استفاده از پروتکل TCP/IP و مشاهده برخی پارامترها و تنظیمات مربوطه  مجموعه ای از برنامه های کمکی ارائه شده است . در ادامه به معرفی برخی از این برنامه های رایج خواهیم پرداخت .

?        IPCONFIG . از برنامه فوق برا ی اخذ اطلاعات در رابطه با پیکربندی TCP/IP نصب شده بر روی یک کامپیوتر استفاده می گردد. با تایپ نمودن دستور فوق بر روی خط دستور می توان اطلاعات متفاوتی نظیر IP  کامپیوتر مورد نظر   Subnet Mask و Default Gateway را مشاهده نمود. با اضافه نمودن سوئیچ /all  به دستور فوق می توان اطلاعات تکمیلی دیگر نظیر Host Name  آدرس های MAC  و سایر اطلاعات ذیربط را مشاهده نمود.

 

 

 

 

?        NETSTAT از برنامه  فوق برای مشاهده آمار و وضعیت جاری اتصالات شبکه استفاده نمود.

 

?        NBTSTAT . ازبرنامه  فوق برای مشاهده جدول محلی NetBIOS ( جدولی مشتمل بر اسامی  NetBIOS که توسط برنامه های محلی ریجستر شده اند ) و اسامی NetBIOS  که Cache شده اند استفاده می گردد.

 

?        NSLOOKUP از برنامه فوق برای بررسی رکوردهای اسامی مستعار Doman host ،   سرویس های Domain host  و اطلاعات مربوط به سیستم عامل استفاده می گردد. درخواست اطلاعات فوق از سرویس دهنده DNS  انجام خواهد شد.

?        ROUTE . از برنامه فوق بمنظور مشاهده وانجام  اصلاحات مورد نظر در جدول محلی روتینگ استفاده میگردد.

 

?        TRACERT . از برنامه فوق بمنظور مسیریابی یک بسته اطلاعاتی تا رسیدن به مقصد استفاده می گردد.

 

?        PING & PATPING . از برنامه های فوق برای بررسی پیکربندی و تست اتصال IP بر اساس نام  و یا آدرس  IP استفاده می گردد. PATHPING دارای ویژگی های PING و TRACERT بصورت همزمان است .

 

 

?        ARP . از برنامه فوق برای مشاهده و انجام تغییرات مورد نیاز در Address Resolution Protocol cache  استفاده می گردد.

 

مدل آدرس دهی IP

علاوه بر جایگاه پروتکل ها، یکی دیگر از عناصر مهم در زیرساخت شبکه های مبتنی بر TCP/IP مدل آدرس دهی IP است . مدل انتخابی می بایست این اطمینان را بوجود آورد که اطلاعات ارسالی بدرستی به مقصد خواهند رسید.  نسخه شماره چهار IP ( نسخه فعلی ) از 32 بیت برای آدرس دهی استفاده کرده که بمنظور تسهیل در امر نمایش بصورت چهار عدد صحیح ( مبنای ده ) که بین آنها نقطه استفاده شده است نمایش داده می شوند.

نحوه اختصاص  IP

نحوه اختصاص IP به عناصر مورد نیاز در شبکه های مبتنی بر TCP/IP یکی از موارد بسیار مهم است . اختصاص IP ممکن است بصورت دستی و توسط مدیریت شبکه انجام شده و یا انجام رسالت فوق بر عهده عناصر سرویس دهنده نرم افزاری نظیر DHCP و یا NAT  گذاشته گردد. برای آشنائی با نحوه اختصاص IP با هر یک از روش های فوق لازم است که در ابتدا اطلاعات لازم در خصوص ساختار داخلی IP و نحوه تخصیص آدرس های منطقی به آدرس های فیزیکی کسب گردد. در این مرحله لازم است با پروتکل هائی نظیر :

ARP(Address Resolution Protocol) و  RARP(Reverse ARP) و نحوه عملکرد آنها آشنا شویم .

ویندوز ۲۰۰۰ دارای امکانات جدیدی در رابطه با تخصیص IP  نظیر APIPA(Automatic Private IP Addressing) بوده که این امکان را به یک سرویس گیرنده DHCP خواهد داد که در صورت عدم یافتن سرویس دهنده DHCP برای خود یک آدرس موقت در نظر بگیرد.

DHCP

با استفاده از پروتکل فوق می توان سرویس دهنده ای در شبکه را مسئول ارائه IP بصورت خودکار نمود. سرویس دهنده DHCP با استفاده از یک منبع ( استخر) مشتمل بر مجموعه ای از آدرس های IP  قادر به اختصاص IP برای هر یک از سرویس گیرندگان DHCP خواهد بود. نسخه پیاده سازی شده در ویندوز ۲۰۰۰ شامل ویژگی های  جدیدی نظیر:  امکان ترکیب  با سرویس دهنده DNS  ، قابلیت ایجاد حوزه های Multicast ،  قابلیت تشخیص سرویس دهنده های غیر مجاز DHCP  و ... است .

IP Subnetting  

یکی از مهمترین عملیات در رابطه با اختصاص IP  مسئله Subnetting  است . مسئله فوق بعنوان هنر و علمی است که ماحصل آن تقسیم یک شبکه به مجموعه ای از شبکه های کوچکتر (Subnet) از طریق بخدمت گرفتن ۳۲ بیت با نام Subnet mask  بوده که بنوعی مشخصه (ID) شبکه را مشخص خواهد کرد. در ادامه این نوشتار در رابطه با نحوه تعریف زیرشبکه ها آشنا خواهیم شد. در این بخش لازم است که با مبنای دو و نحوه نشان دادن اعداد بصورت صفر و یک بیشتر آشنا شویم. ذکر این نکته ضروری است که در مبنای دو تمامی اعداد بصورت دنباله ای از صفر و یک نمایش داده شده و هر رقم در این مبنا دارای یک ارزش مکانی متناسب با ضرایب متفاوت عدد دو است . شکل زیر ارزش مکانی هر رقم در مبنای دو را نشان می دهد.

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

سرویس های Name Resolution

یکی دیگر از عناصر مهم در ایجاد زیر ساخت منطقی یک شبکه کامپیوتری مسئله Name Resolution است.شاید این سوال مطرح گردد که چرا این موضوع تا این اندازه دارای اهمیت است ؟ در پاسخ می توان گفت که علت وجود تفاوت های اساسی  در نحوه نامگذاری و استفاده از آن نزد انسان و کامپیوتر است . کامپیوترها صرفا" قادر به تشخیص و کار با اعداد ( مبنای دو ) می باشند.بدیهی است که در یک شبکه کامپیوتری هر سیستم دارای آدرس منحصر بفردی بوده که بصورت عدد نمایش داده خواهد شد. ارتباط بین کامپیوترهای موجود در شبکه از طریق اعداد فوق که بعنوان مولفه های عددی آدرس دهی مشخص می گردنند انجام خواهد یافت . در مقابل انسان ها علاقه مند به استفاده از اسامی برای دسترسی و ایجاد ارتباط با سایر کامپیوترها ،  سایت های وب و سایر منابع موجود در شبکه می باشند. مثلا" در زمان دستیابی به یک وب سایت کافی است که در بخش آدرس نرم افزار مرورگر خود آدرس یک سایت را تایپ نمائیم (www.Test.com ) . استفاده از نام فوق بمراتب راحت تر از استفاده از آدرسی بصورت 207.46.130.14  و یا 11001111001011101000001000001110    است . بدون استفاده از سیستم هائی که بنوعی مشکل Name Resolution را حل خواهند کرد استفاده از آدرس های عددی حتی بصورت مختصر و بصورت چهار عدد بسیار مشکل زا خواهد بود. سرویس های Name Resolution نظیر DNS(Domain Name System) و WINS(Windows Internet Name Service) امکان استفاده از اسامی ملموس و با معنی برای دستیابی به منابع متفاوت نرم افزاری و سخت افزاری در یک شبکه را فراهم می آورند.

سرویس دهنده های DNS و WINS کامپیوترهائی هستند که مسئولیت پشتیبانی و نگهداری بانک اطلاعاتی مربوط به آدرس های IP و نام مربوطه را برعهده خواهند داشت . عملکرد این سرویس دهنده ها مشابه درخواست یک شماره تلفن مربوط به یک فرد و یا سازمان از مراکز ۱۱۸  است . در چنین حالتی فرد متقاصی با تماس با این نوع مراکز نام و مشخصات مربوط را مشخص و در ادامه از طرف مرکز فوق شماره تلفن مورد نظر در اختیار گذاشته می شود. بهرحال بخاطر سپردن اسامی افراد بمراتب راحت تر از بخاطر سپردن شماره تلفن آنها است . برای ما راحتر است که به این سوال پاسخ دهیم که " شماره تلفن آقای / خانم  X  چیست ؟"

سرویس دهنده های DNS و WINS دارای عملکردی مشابه با اندک تفاوتی می باشند. سرویس دهنده DNS قادر به حل کردن مشکل اسامی بصورت) FQDN(Fully Qualified Domaion Names  به آدرس های IP است . این نوع اسامی از نفطه بین خود استفاده کرده و نظیر اسامی می باشند که از آنها در دسترسی به وب سایت ها استفاده می گردد. سرویس دهنده WINS مشکل اسامی را که بصورت NetBIOS می باشند و تبدیل به آدرس IP مربوطه، انجام خواهد داد. این نوع اسامی بصورت Flat  خواهند بود . مثلا" اگر کامپیوتری دارای نام Computer12 باشد نوع NetBIOS آن نیز به همان صورت استفاده شده در حالیکه اگر از DNS استفاده گردد نام معادل آن بصورت Computer12.mydomain.com نشان داده خواهد شد.

سرویس دهنده DNS

سرویس دهنده DNS در ویندوز ۲۰۰۰ بصورت پویا بوده و شاید استفاده از نام DDNS مناسبت تر باشد. در ویندوز NT 4.0 عملیات بهنگام سازی داده می بایست بصورت دستی انجام گیرد در صورتیکه در ویندوز ۲۰۰۰ بانک اطلاعاتی مربوطه دارای یک ویژگی جدید بگونه ای است که امکان بهنگام سازی را بصورت پویا انجام خواهد داد. با استفاده از ویژگی فوق این امکان فراهم خواهد شد که اسامی بصورت پویا در بانک اطلاعاتی مربوطه ثبت و در ادامه رکوردهای مربوطه در هر یک از Zone های مورد حمایت DNS بصورت خودکار بهنگام گردنند. در ویندوز ۲۰۰۰ سرویس دهنده DNS قادر با ارتباط با Active Directory نیز بوده و از این طریق تسهیلات بمراتب بیشتری ارائه خواهد شد.

بمنظور نصب و پیکربندی مناسب سرویس دهنده DNS می بایست اطلاعات لازم در این خصوص را کسب و به سوالاتی نظیر ذیل بدرستی پاسخ داد:

  • مهمترین وظیفه Primary DNS server چیست ؟ نسخه اولیه مربوط به DNS Zone file بر روی سرویس دهنده اولیه DNS قرار خواهد گرفت . سرویس دهنده فوق بعنوان Authoritative برای هر یک از دامنه ها ی موجود در Zone file  ایفای وظیفه خواهند کرد.
  • مهمترین وظیفه Secondray DNS Server  چیست ؟ سرویس دهنده فوق شامل یک نسخه از بانک اطلاعاتی مربوطه ای است که بر روی Primary   ایجاد شده است . در زمان نصب و پیکربندی DNS می بایست به این نکته توجه نمود که بدلیل جلوگیری از بروز اشکالات ناخواسته بر روی سرویس دهنده اصلی می بایست حتما" اقدام به ایجاد یک سرویس دهنده ثانویه نیز نمود.
  • Caching-only Server چیست و چرا به وجود حداقل یکی از آنها نیاز خواهیم داشت ؟ این نوع سرویس دهنده شامل اطلاعاتی در رابطه با هر یک از Zone ها نبوده و صرفا" اطلاعات مربوط به ماحصل درخواست های قبلی از سرویس دهنده را در خود ذخیره خواهد کرد.
  • وظیفه یک سرویس دهنده Forwarder و یا  Slave چیست ؟ سرویس دهنده ای از این نوع مسئول دریافت درخواست های ارسالی توسط سایر سرویس دهنده های DNS است . این نوع سرویس دهنده ها بمنظور حفاطت سرویس دهنده داخلی DNS از دستیابی توسط کاربران اینترنت نیز ممانعت خواهد کرد. سرویس دهنده های Slave نوع خاصی از سرویس دهنده های Forwarder بوده که بنوعی مسئولیت برطرف کردن مشکل نام و آدرس بر روی خودشان به آنان واگذار نگردیده است .

سرویس دهنده WINS

با اینکه با وجود سرویس دهنده DNS ضرورتی بر استفاده از سرویس دهنده WINS احساس نخواهد شد ولی با علم به این موضوع که هنوز اسامی اختصاص یافته به کامپیوترها و سایر منابع در یک شبکه کامپیوتری تابع NetBIOS  است شرکت مایکروسافت نه تنها آن را از گردونه خارج ننموده است بلکه در ویندوز ۲۰۰۰ تغییراتی را نیز در آن انجام داده است . اضافه کردن مجموعه برنامه های خط دستوری برای مدیریت و راهبری  ،  تغییر در ساختار بانک اطلاعاتی مربوطه   و.. نمونه هائی از تغییرات جدید بوجود آمده می باشند.

دستیابی از راه دور

دستیابی از راه دور یکی دیگر از  عناصر اساسی در ایجاد زیر ساخت منطقی در یک شبکه کامپیوتری است. امروزه دستیابی به یک شبکه و از راه دور بعنوان یک نیاز اساسی مطرح است . مثلا" اغلب کاربران خانگی و یا ادارات کوچک جهت دستیابی به اینترنت از مدل فوق استفاده می نمایند. در این روش کاربران با بخدمت گرفتن یکدستگاه مودم و با استفاده از خطوط تلفن قادر به ایجاد ارتباط با یک سرویس دهنده از راه دور خواهند بود. ویندوز ۲۰۰۰ روش دیگری نیز جهت دستیابی از راه دور را از طریق VPN(Virtual Private Network)  ارائه نموده است . در چنین مواردی کاربران قادر به انجام هر نوع عملیات خواهند بود .( مشابه حالتیکه کاربران از طریق کابل به شبکه متصل باشند) برنامه RRAS)Routing and Remote Access Services) در ویندوز ۲۰۰۰ ابزاری قدرتمندی در این راستا بوده که امکان دستیابی به شبکه از راه دور را برای کاربران فراهم خواهد ساخت . برای دستیابی به یک شبکه از راه دور می بایست از پروتکل های مربوطه نظیر پروتکل های استفاده شده در محیط LAN استفاده نمود(TCP/IP, IPX/SPX,NetBEUI  نمونه هائی از این نوع پروتکل ها بوده که عمدتا" در لایه حمل ایفای وظیفه می نمایند. در زمان استفاده از سرویس فوق (RAS) می بایست از پروتکل دیگر که در سطح لایه Data Link ایفای وظیفه می نماید نیز استفاده گردد. پروتکل فوق مسئولیت بخش WAN  ارتباط را برعهده خواهد گرفت . ویندوز ۲۰۰۰ از دو نوع عمده پروتکل های که اغلب Line Protocol نیز نامیده می شوند استفاده می کند:

?        PPP(Point To Point Protocol) . از پروتکل فوق هم سرویس گیرندگان و هم سرویس دهندگان استفاده خواهند کرد .(RAS Client & RAS server) پروتکل فوق رایج ترین پروتکل در نوع خود بوده که دارای امکانات از قبیل رمزنمودن ، فشرده سازی و اختصاص پویای آدرس های IP است.

?         SLIP(Serial Line Interface Protocol) یکی دیگر از پروتکل های قدیمی در این زمینه بوده که رمزنمودن و فشرده سازی را حمایت نکرده و آدرس های IP می بایست بصورت دستی و ایستا تخصیص یابند. پروتکل فوق صرفا" بر روی کامپیوترهای سرویس گیرنده نصب شده و امروزه اغلب برای ارتباط با سرویس دهندگانی که از سیستم عامل یونیکس استفاده می نمایند مورد توجه است.

IP Routing

روتینگ به مجموعه فرآیندهائی اطلاق می گردد که باعث مسیریابی و هدایت ترافیک موجود بین یک شبکه و سایر شبکه ها می گردد. پس از پیکربندی کامپیوتری که می بایست عملیات روتینگ را انجام دهد امکان دریافت  بسته های اطلاعاتی و ارسال آنها به مقاصد مناسب فراهم خواهد شد.  در چنین حالتی امکان مسیریابی از طریق چندین روتر وجود خواهد داشت . مسافت طی شده از یک روتر به روتر دیگر  hope  نامیده می شود. در هر روتر آدرس IP مقصد با اطلاعات موجود در جدول روتینگ مقایسه شده و بهترین مسیر برای حرکت بسته اطلاعاتی و طی کمترین میزان hope  در نظر گرفته خواهد شد.

مسیریابی سریع و با کارآئی و ضریب اعتماد بالا از مهمترین عوامل موفقیت در شبکه های بزرگ محسوب شده و حتی این مسئله بخوبی در اینترنت نیز برای کاربران ملموس است . عملیات روتینگ می تواند توسط دستگاههای اختصاصی خاصی با نام روتر و یا توسط کامپیوتری که از سیستم عاملی با قابلیت IP Forwarding  نیز  استفاده گردد، محقق خواهد شد. ویندوز ۲۰۰۰ بعنوان یک IP Router نیز می تواند در نظر گرفته شده و مراحل تنظیم و پیکربندی آن انجام گیرد.  از واژه Gateway نیز برای مراجعه به یک روتر نیز استفاده می گردد. در چنین مواردی Gateway بعنوان نقطه خروج بسته های اطلاعاتی از یک شبکه و دریافت آنان توسط شبکه دیگر مطرح خواهد بود. هر کارت شبکه قادر است که در هر لحظه دارای یک Gateway فعال باشد . بمنظور پیشگیری از خطاء در ویندوز ۲۰۰۰ می توان برای یک کارت شبکه بیش از یک Gateway را تعریف که صرفا" یکی از آنها در هر لحظه فعال و قابل استفاده خواهد بود. از واژه Gateway در موارد دیگری نیز استفاده می گردد. در مواردیکه هدف ترجمه بین پروتکل هاو اتصال بین چندین شبکه با نوع های متفاوتی است مثلا" اتصال یک کامپیوتر شخصی با سیستم عامل ویندوز به یک سیستم Mainframe  (SNA Gateway) و یا به یک شبکه مبتنی بر نت ور (Gateway Services for Netware) .

Satatic Routing

در روتینگ ایستا  ایجاد یک جدول روتینگ بصورت دستی و توسط مدیریت شبکه می بایست انجام گیرد.برنامه ROUTE  دارای امکانات گسترده ای در این زمینه بوده و با استفاده از سویئچ های مربوط به آن می توان نسبت به ایجاد ویرایش جدول روتینگ اقدام نمود.

Dynamic Routing

در روش فوق با استفاده ازبرخی پروتکل های روتینگ نظیر RIP(Routing Information Protocol)  و ... روترها خود با یکدیگر مرتبط و بصورت پویا اقدام به ویرایش جداول روتینگ خود خواهند کرد. در فرآیند فوق عوامل انسانی دخالت نخواهند داشت . ویندوز ۲۰۰۰ از پروتکل های زیر برای روتینگ استفاده می کند:

?        RIPv1

?        RIPv2

?        OSPF(Open Shortest Path First)

پروتکل RIP بعنوان یک Distance vector protocol مطرح بوده و دارای حداکثر طولی به اندازه پانزده hope است . در صورتیکه یک بسته اطلاعاتی به بیش از پانزده روتر جهت رسیدن به مقصد خود نیاز داشته باشد ، پروتکل RIP اعلان خواهد کرد که مقصد غیرقابل دستیابی است . این نوع پروتکل ها اغلب برا ی استفاده درشبکه های با ابعاد متوسط توصیه شده و برای  شبکه های بسیار بزرگ  توصیه  نمی گردد.

پروتکل OSPF بعنوان یک Link state protocols مطرح است . این نوع از پروتکل شبکه را  Map و بانک اطلاعاتی Mape شده را در زمان بروز هر نوع تغییراتی در شبکه بهنگام خواهد کرد.کارآئی این نوع پروتکل ها در مقایسه با نوع قبل بمراتب بیشتر بوده ولی در مقابل دارای پیچیدگی بیشتری خواهند بود.

پیکربندی روتینگ استاتیک و پویا در ویندوز ۲۰۰۰ از طریق کنسول Remote Access management انجام خواهد شد. شکل زیر نحوه عملکرد برنامه فوق را نشان می دهد.

 

زیر ساخت امنیتی

امروزه مقوله امنیت در شبکه ها کامپیوتری یکی از مهمترین ضرورت ها و چالش ها در برپاسازی و نگهداری یک شبکه مطمئن است .ویندوز ۲۰۰۰ دارای امکانات گسترده ای بمنظور ایجاد و نگهداری یک شبکه کامپیوتری با ضریب ایمنی بالا است . امکانات ارائه شده شامل موارد ذیل است .

 

       Kerberos authentication

       IP Security (IPSec)

       Much improved policy management (Group Policy)

       Enhanced certificate services

       Encrypting File System (EFS)

       Secondary Logon

       Security Configuration Toolset

       Smart card support

مبانی ویندوز و شبکه ( بخش دوم )

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

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

  • هماهنگی لازم در خصوص عملکرد دستگاه های متفاوت در شبکه بمنظور حصول اطمینان از برقراری ارتباط در مواقع ضروری 

  • امکان دستیابی سرویس گیرندگان به منابع شبکه نظیر فایل ها  و  دستگاه های جانبی نظیر چاپگرها و دستگاه های فاکس

  • اطمینان از ایمن بودن داده ها و دستگاههای موجود در شبکه از طریق تمرکز ابزارهای مدیریتی

ویژگی های یک سیستم عامل شبکه ای 
یک سیستم عامل شبکه ای می بایست امکانات و خدمات اولیه زیر را ارائه نماید:

  • ارائه مکانیزم ها ی لازم بمنظور برقراری ارتباط بین چندین دستگاه کامپیوتر برای انجام یک فعالیت

  • حمایت از چندین پردازنده 

  • حمایت از مجموعه ای (کلاستر)  دیسک درایو

  • ارائه امکانات و سرویس های امنیتی در رابطه با حفاظت از داده ها و سایر منابع موجود در  شبکه

  • قابلیت اطمینان بالا

  • تشخیص و برطرف نمودن خطاء با سرعت مناسب

بر اساس نوع سیستم عامل ،  یک نرم افزار شبکه ای می تواند به سیستم عامل ،  اضافه و یا  بصورت یکپارچه با سیستم عامل همراه باشد . نرم افزار سیستم عامل شبکه ای  با مجموعه ای از سیتسم های عامل رایج نظیر : ویندوز 2000 ، ویندوز NT ،  ویندوز 98 ،  ویندوز 95  واپل مکینتاش ،  بصورت یکپارچه همراه می گردد .

پیاده سازی شبکه در ویندوز 2000
 ویندوز 2000 ، با سازماندهی
Domain وسرویس  Active Directory ، نیاز سازمان ها و موسسات بمنظور ارتباط کاربران و شبکه ها با یکدیگر را فراهم می نماید. برپاسازی یک شبکه مبتنی بر ویندوز 2000 ، بهبود در اشتراک اطلاعات ، انجام موثرتر عملیات ، ایجاد زیرساخت مناسب ارتباطی ، ارائه سرویس های ارتباطی مطلوب را برای سازمان ها بدنبال خواهد داشت .

ویژگی های یک Domain
 
Domain ، یک گروه بندی منطقی از کامپیوترهای شبکه ای است که از یک محل مشترک بمنظور ذخیره سازی اطلاعات امنیتی ، استفاده می نمایند. استفاده از  Domain  ، تمرکز در مدیریت منابع شبکه را بدنبال خواهد داشت . بدین ترتیب پس از ورود کاربران به شبکه و تائید صلاحیت  آنان ، زمینه استفاده از منابع به  اشتراک گذاشته شده  در سایر کامپیوترهای موجود در Domain ، با توجه به مجوزهای تعریف شده ، فراهم می گردد .  Domain  ، درمفهوم مشابه Workgroup
بوده ولی امکانات و ویژگی های بمراتب بیشتر و مفیدتری را ارائه می نماید :

  • Single logon  . با استفاده از Domain ، فرآیند ورود به شبکه صرفا" یک مرتبه انجام و کاربران قادر به استفاده از منابع متفاوت موجود درشبکه شامل: فایل ها ، چاپگرها  و برنامه ها ، خواهند بود. Account مربوط به  تمامی کاربران در یک مکان متمرکز ، ذخیره می گردد.

  • Single User Account . کاربران  یک Domain ، صرفا" از یک Account بمنظور دستیابی به منابع موجود بر روی کامپیوترها ، استفاده خواهند کرد ( بر خلاف workgroup  که نیازمند یک account مجزاء بمنظور دستیابی به  هر یک از کامپیوترها  است ) .

  • مدیریت متمرکز .  با استفاده از Domain ، امکان مدیریت متمرکز فراهم خواهد شد . Account مربوط به کاربران و منابع اطلاعاتی موجود، از طریق یک نقطه متمرکز ، مدیریت خواهد شد.

  • Scalability . استفاده از Domain ، امکان گسترش و توسعه در شبکه را افزایش خواهد داد . روش دستیابی کاربران به منابع و نحوه مدیریت منابع در یک شبکه بسیار بزرگ مشابه یک شبکه کوچک خواهد بود .

مزایای استفاده از Domain 
استفاده از
Domain
، دارای مزایای زیر است :

  • سازماندهی اشیاء . اشیاء موجود در یک Domain را می توان  بر اساس واحدهای موجود در یک سازمان ، سازماندهی نمود. یک واحد سازماندهی شده شامل  مجموعه ای از اشیاء در یک Domain است . اشیاء، نشاندهنده عناصر فیزیکی موجود در یک شبکه بوده و می توانند به  یک و یا بیش از یک Domain مرتبط گردند.کاربران ، گروه هائی از کاربران، کامپیوترها ، برنامه ها ، سرویس ها ، فایل ها و لیست های توزیع شده نمونه هائی در این زمینه می باشند . مثلا" یک Domain در شبکه مربوط به یک سازمان ، می تواند  بمنظور تسهیل در مدیریت منابع موجود در شبکه،  منابع هر یک از دپارتمان های موجود در سازمان را در یک واحد ،سازماندهی نماید. هر واحد ، می تواند توسط کاربران  خاصی در دپارتمان مربوطه مدیریت گردد. بدین ترتیب مدیر شبکه قادر به مدیریت گروه هائی از واحدها در مقابل منابع انفرادی ، خواهد بود .

  • مکان یابی آسان اطلاعات . بموازات نشر( تعریف و پیکربندی )  یک منبع ، امکان دستیابی آن از طریق لیستی از اشیاء Domain ، برای کاربران فراهم و بدین ترتیب مکان یابی یک منبع بسادگی انجام و زمینه استفاده از آن فراهم خواهد شد. مثلا" در صورتیکه چاپگری در یک Domain نصب شده باشد ، کاربران قادر به دستیابی به آن از طریق لیستی از اشیاء موجود در Domain مربوطه ، خواهند بود. در صورتیکه چاپگر در Domain مربوطه تعریف نشده باشد ، کاربران شبکه جهت استفاده از آن می بایست از محل نصب آن آگاهی داشته باشند.

  • دستیابی آسان و موثر . تعریف و بکارگیری یک سیاست گروهی در ارتباط با یک  Domain ،نحوه دستیابی کاربران به منابع تعریف شده در Domain را  مشخص می نماید. بدین ترتیب استفاده از منابع بهمراه رویکردهای امنیتی ، یکپارچه می گردد .

  • تفویض اختیار. با استفاده از Domain ، امکان واگذاری  مسئولیت مربوط به مدیریت اشیاء در تمام Doamin و یا در بخش هائی خاص ، فراهم می گردد .

ساختار  Domain
هر
Domain توسط یک کنترل کننده Domain ، مدیریت می گردد. بمنظور تسهیل در مدیریت چندین Domain ،  می توان Domain
ها  را  در ساختارهائی با نام درخت (Tree)  و جنگل (Forest) ، گروه بندی کرد .

کنترل کننده Domain
کامپیوتری  که برروی آن سرویس دهنده ویندوز 2000 اجراء و مدیریت 
Domain را برعهده می گیرد، کنترل کننده Domain نامیده می شود.  کنترل کننده Domain ، تمام عملیاتی امنیتی مرتبط با کاربران و Domain
را مدیریت می نماید. 

درخت
درخت
، یک سازماندهی سلسله مراتبی از Domain های ویندوز 2000 بوده که یک نام را به اشتراک می گذارند . زمانیکه یک Domain به یک درخت موجود اضافه می گردد، بعنوان یک subDomain ، در نظر گرفته می شود. SubDomain ، یک Child domain  نیز نامیده شده و Domain اضافه شده از طریق Parent domain مربوطه شناخته می گردد . پس از اینکه Child Domain به درخت ملحق گردید نام Domain آن به نام Domain parent اضافه می شود. مثلا" زمانیکه یک Domain با نام Tehran به یک درخت موجود ملحق و بعنوان یک Chid Domain از Domain با نام Citys.com  مطرح گردد ، نام Domain مربوطه، بصورت Tehran.Citys.com خواهد بود. 

جنگل
جنگل، شامل گروهی از درخت ها بوده که در مقابل استفاده از یک نام مشترک، از یک پیکربندی مشترک استفاده می نمایند. بمنظور مراجعه به جنگل ، بصورت پیش فرض از نام ریشه درخت و یا اولین درختی که در جنگل ایجاد می گردد ، استفاده می گردد . مثلا" در صورتیکه
Citys.com اولین Domain در اولین درخت باشد و درخت دیگر به آن ملحق تا یک جنگل را ایجاد نمایند نام، جنگل Citys.com خواهد بود.

ویژگی های Active Directory
 
Active Directory ، سرویس دایرکتوری ویندوز 2000 است . Active Directory ،  اطلاعات مربوط به اشیاء شبکه را ذخیره و با ارائه یک ساختار سلسله مراتبی، زمینه سازماندهی Domain ها و منابع را بسادگی فراهم می نماید . بدین ترتیب کاربران بسادگی قادر به مکانیابی منابع شبکه نظیر فایل ها و چاپگرها ، خواهند بود . Active Directory دارای ویژگی های متعددی است :

  • Active Directory ، باعث سازماندهی دایرکتوری به  بخش هائی خواهد شد که امکان ذخیره سازی حجم بالائی از اشیاء را فراهم می آورد . دستاورد ویژگی فوق ، توسعه   Active Directory ، همزمان با رشد یک سازمان ، خواهد بود. بدین ترتیب،  امکان رشد شبکه  ای با صرفا" یک سرویس دهنده و کمتر از یکصد شی به شبکه ای با هزاران سرویس دهنده و میلیون ها شی فراهم خواهد شد .

  • Active Directory ،یک مکان متمرکز بمنظور جمع آوری و توزیع اطلاعات در رابطه با اشیاء موجود در شبکه شامل کاربران، گروهها و چاپگرها بوده و امکان یافتن و استفاده از اطلاعات را آسان خواهد کرد.

  • تدابیر امنیتی در ارتباط با  Active Directory ، پیش بینی  و زمینه تحقق آن با استفاده از Log on و کنترل دستیابی به اشیاء موجود در دایرکتوری، فراهم می گردد . پس از فرآیند ورود به شبکه ( یک log on به یک شبکه ) ، مدیران شبکه قادر به مدیریت داده ها ی موجود در دایرکتوری می گردند . کاربران تائید شده نیز امکان  دستیابی به منابع موجود درشبکه را از هر مکانی بدست خواهند آورد.

مزایای Active Directory
استفاده از
Active Directory ، دارای مزایای زیر است :

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

  • مدیریت انعطاف پذیر . واحد های سازمانی درون یک Domain  را می توان بر اساس سیاست های موجود در Active Directory ، تقسیم نمود. بدین ترتیب ، واحدهای سازمانی ،امکان تعریف کاربرانی خاص بمنظور مدیریت بخش هائی خاص از شبکه را بدست می آورند .

  • Scalability . با استفاده از  Active Directory ، امکان استفاده از سرویس های دایرکتوری  برای سازمان ها ئی با ابعاد متفاوت، فراهم می گردد .

  • تسهیل در مدیریت .  Active Directory ، ابزارهای مدیریتی خاصی را ارائه که  مدیران شبکه، با استفاده از آنان  قادر به مدیریت منابع موجود در شبکه خواهند بود.

دستیابی به یک شبکه ویندوز 2000
برای استفاده از منابع تعریف شده در شبکه، کاربران می بایست  فرآیند
Log on را دنبال نمایند . در زمان فرآیند Log on ،  ویندوز 2000 اعتبار و هویت یک کاربر را تائید خواهد کرد . فرآیند فوق ، این اطمینان را بوجود خواهد آورد که صرفا" کاربران معتبر و تائید شده،  قادر به دستیابی منابع موجود بر روی یک کامپیوتر در شبکه ،خواهند بود . پس از اتمام موفقیت آمیز فرآیند ورود به شبکه  ،زمینه استفاده از منابع موجود در تمام شبکه با توجه به سیاست های تعریف شده، فراهم می گردد . کاربران  برای دستیابی به منابع در یک شبکه مبتنی بر ویندوز 2000 ،  به یک Account ، نیاز خواهد داشت . Account ، شامل اطلاعات مرتبط با یک کاربر بوده و شامل نام و رمز عبور است . در صورتیکه کامپیوتر یک Memeber Domain باشد ، Account مربوط به کاربر، امکان log on نمودن به کامپیوتر بصورت محلی و یا به Domain ( اما نه هر دو ) را  فراهم و زمینه استفاده از منابع موجود در شبکه با توجه به  مجوزهای تعریف شده ، فراهم خواهد شد . در صورتیکه کامپیوتر عضوی از یک Workgroup باشد ، Account مربوطه ، امکان Log on  نمودن کاربر را صرفا" به کامپیوتر محلی، فراهم می نماید. ( چون Account کاربر صرفا" بر روی بانک اطلاعاتی امنیتی همان کامپیوتر محلی ذخیره شده است ) . برای ورود به یک Domain ویندوز 2000 ، کاربران می بایست ، نام خود را بصورت خاصی وارد نمایند .نام فوق، شامل نام  کاربر بوده که بدنبال آن از کاراکتر @ و یک پسوند استفاده می گردد. پسوند فوق، Domain مربوطه ای است که account بر روی آن وجود دارد .  User1@Citys.com نمونه ای  در این زمینه است .

ورود به شبکه
برای ورود به ویندوز 2000 ، کلیدهای
CTRL+ALT+DELETE بصورت همزمان فشرده و فعال می گردند. پس از فعال نمودن کلیدهای فوق جعبه محاوره ای ورود به ویندوز فعال می گردد . با تایپ نام و رمز عبور در محل مربوطه ، فرآیند  ورود به شبکه انجام خواهد شد. در ادامه می توان با کلیک نمودن برروی کامپیوترهای محلی و یا Domain مربوطه در لیست به هر یک از آنها log on نمود.

مشاهده Network Membership
پس از ورود به شبکه، می توان با استفاده از جعبه محاوره ای
System Properties ، از نوع عضویت در شبکه آگاهی پیدا کرد : یک Domain  و یا یک Workgroup  . برای دستیابی به جعبه محاوره ای System Properties مراحل زیر را دنبال نمائید :
از طریق
Desktop  بر روی آیکون MyComputer  کلیک سمت راست نموده و در ادامه برروی گزینه Properties کلیک نمائید.  جعبه محاوره ای System Properties ، دارای پنج Tab  است . بر روی Network Identification کلیک تا مشخص گردد که کامپیوتر مورد نظر به یک Doamin و یا Workgroup تعلق دارد .

مبانی ویندوز و شبکه ( بخش اول )

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

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

نسخه های متفاوت ویندوز 2000 
ویندوز 2000 ، مجموعه ای گسترده از امکانات و ابزارهای لازم ، بمنظور مدیریت یک شبکه کامپیوتری را ارائه و دارای نسخه های متفاوت زیر است :

  • Microsoft Windows 2000 Professional . نسخه فوق،  دارای امکانات گسترده ویندوز 98 بوده و بر اساس قدرت سنتی سیستم عامل ویندوز NT 4.0 ، ایجاد شده است . این نسخه ، دارای  یک رابط کاربر ساده بوده و علاوه بر بهبود در عملیات Plug&Play و مدیریت Power ، مجموعه ای گسترده از دستگاه های سخت افزاری را حمایت می نماید. نسخه فوق، حداکثر دو پردازنده و  4 گیگابایت حافظه را حمایت می نماید.

  • Microsoft Windows 2000 Server . نسخه فوق، بعنوان نسخه استاندارد خانواده  windows 2000 server ، مطرح می باشد. این نسخه دارای تمامی امکانات  windows 2000 professional بوده و برای سازمان های کوچک تا متوسط ایده آل و  بخوبی با سرویس دهندگان فایل ،  چاپگر ، وب و Workgroup ،  کار می نماید. نسخه فوق، قادر به حمایت از حداکثر 4 پردازنده و 4 گیگابایت حافظه فیزیکی است .

  • Microsoft Windows 2000 Advanced Server  .  نسخه فوق، دارای تمامی امکانات نسخه windows 2000 server  بوده و علاوه بر آن قابلیت گسترش و در دسترس بودن بیشتری را دارا است . با  گسترش شبکه ،  قدرت پردازش سیستم بصورت تصاعدی افزایش خواهد یافت.بدین منظور از کلاسترهائی که شامل چندین سرویس دهنده می باشند ،  استفاده می گردد. سرویس دهندگان فوق ،  توان پردازشی اضافه ای را ارائه و بدین ترتیب قابلیت در دسترس بودن سیستم نیز، افزایش خواهد یافت . در صورتیکه یکی از سرویس دهندگان بدلایلی غیرقابل دسترس گردد،  سایر سرویس دهندگان موجود در کلاستر،  سرویس های مورد نیاز را ارائه خواهند داد . نسخه فوق،  مختص سرویس دهندگانی است که در شبکه های بسیار بزرگ ایفای وظیفه نموده و عملیات گسترده ای را در ارتباط با بانک های اطلاعاتی انجام می دهند. نسخه فوق،  قادر به حمایت از هشت پردازنده و هشت گیگابایت حافظه فیزیکی است .

  • Microsoft Windows 2000 Datacenter Server . نسخه فوق، دارای تمام امکانات Advanced server بوده و علاوه بر آن امکان استفاده از حافظه و پردارنده های بمراتب بیشتری در هر کامپیوتر را فراهم می نماید. نسخه فوق، برای ذخیره سازی حجم بسیار بالائی از داده ها  ، پردازش های تراکنشی online و شبیه سازی های بزرگ استفاده می گردد . نسخه فوق، قادر به حمایت از حداکثر 32 پردازنده و  64 گیگابایت حافظه فیزیکی است .

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

  • مدیریت سخت افزار. سیستم عامل، امکان ارتباط کامپیوتر با دستگاه های جانبی نظیر چاپگر و یا موس را فراهم می نماید

  • مدیریت نرم افزار. سیستم عامل ، مکانیزمی برای مقداردهی اولیه پردازه ها ی مربوط به برنامه ها را فراهم می نماید.  

  • مدیریت حافظه . سیستم عامل، عملیات اختصاص حافظه  برای هر برنامه بدون تاثیرگذاری بر فضای استفاده شده توسط سایر برنامه ها را فراهم می نماید.  

  • مدیریت داده . سیستم عامل، مدیریت فایل های ذخیره شده بر روی هارد دیسک و سایر رسانه های ذخیره سازی را بر عهده دارد  . در این راستا ، امکان ایجاد و فعال کردن فایل ها  در اختیار برنامه ها قرار گرفته  و زمینه  مباددله  داده  بین دستگاههای فراهم خواهدشد. سیستم عامل، امکان انجام عملیات مدیریتی در ارتباط با فایل ها نظیر تغییر نام و یا حذف فایل ها را نیز فراهم می نماید.

سیستم عامل ،  هماهنگی لازم در خصوص ارتباط بین کامپیوتر و برنامه هائی که بر روی آن اجراء می گردند را فراهم می نماید. جریان داده ها توسط سیستم عامل دنبال و کنترل و یک رابط کاربر گرافیکی GUI ( گرافیکی )  بمنظور ارتباط کاربر با کامپیوتر  ارائه می گردد. GUI ،  یک رابط کاربر گرافیکی ،  بمنظور ارتباط کاربر با سیستم و فعال نمودن دستورات مورد نظر است .( در مقایسه با یک محیط مبتنی بر متن )

سیستم عامل ویندوز 2000 ، امکانات گسترده و پیشرفته ای را در اختیار کاربران قرار می دهد:

  • Multitasking . با استفاده از ویژگی فوق،  کاربران قادر به اجرای چندین برنامه بصورت همزمان  بر روی یک سیستم  می شوند. تعداد برنامه هائی که یک کاربر قادر به اجرای همزمان آنان خواهد بود به میزان حافظه موجود بر روی سیستم بستگی خواهد داشت .

  • Memory Support .  بمنظور انجام عملیا ت مربوط به برنامه هائی که در محیط  ویندوز 2000 اجراء می گردند ،  به میزان مطلوبی از حافظه ،  نیاز خواهد بود. برای اجرای چندین برنامه بصورت همزمان و یا اجرای برنامه هائی که میزان بالائی از حافظه را نیاز دارند ،  ویندوز 2000 امکان حمایت تا 64 گیگابایت را فراهم می نماید. 

  • Symmetric Multiprocessing . سیستم های عامل از ویژگی فوق،  بمنظور استفاده همزمان از چندین پردازنده استفاده می نمایند .بدین ترتیب کارآئی سیستم بهبود و یک برنامه در محدوده زمانی کمتری اجراء خواهد شد .ویندوز 2000 ،  امکان حمایت ( با توجه به نوع نسخه ) از حداکثر 32 پردازنده را فراهم می نماید.

  • Plug &Play . با استفاده از ویندوز 2000 ،  دستگاههائی از نوع PNP بسادگی نصب می گردند . دستگاههای PNP ،  دستگاههائی هستند که پس از اتصال به سیستم ،   بدون نیاز به انجام فرآیندهای پیچیده ،  نصب خواهند شد . پس از اتصال  چنین دستگاههائی،  ویندوز 2000 بصورت اتوماتیک آنان را تشخیص و عناصر مورد نیاز را نصب و پیکربندی مربوطه را انجام خواهد داد .

  • Clustering . ویندوز 2000 ،  امکان گروبندی مستقل کامپیوترها را بایکدیگر و بمنظور اجرای یک مجموعه از برنامه ها فراهم می نماید. این گروه بعنوان یک سیستم برای سرویس گیرندگان و برنامه ها در نظر گرفته خواهد شد . چنین گروه بندی  ،  Clustering نامیده شده و گروههائی از کامپیوترها را  کلاستر می گویند. این نوع سازماندهی کامپیوترها ، باعث برخورد مناسب در صورت  بروز اشکال در یک نقطه می گردد . در صورتیکه یک کامپیوتر دچار مشکل گردد،  کامپیوتر دیگر در کلاستر ، سرویس مربوطه را ارائه خواهد داد . 

  • File System . ویندوز 2000 ، از سه نوع متفاوت سیستم فایل حمایت می نماید : FAT(File Allocation table) ، FAT32 و NTFS . در صورتیکه نیازی به استتفاده از قابلیت های بوت دوگانه (راه اندازی سیستم از طریق دو نوع متفاوت سیستم عامل با توجه به خواسته کاربر) وجود نداشته باشد،  ضرورتی به استفاده از سیستم فایل FAT و یا FAT32 وجود نخواهد داشت  . NTFS ، سیستم فایل پیشنهادی برای ویندوز 2000 بوده و امکانات امنیتی مناسبی را ارائه می نماید. ویندوز 2000 ،  با استفاده از سیستم NTFS امکانات متعددی نظیر : بازیافت سیستم فایل،  اندازه پارتیش های بالا،  امنیت،  فشرده سازی و Disk Quotas  را ارائه می نماید.

  • Quality of Service )QoS) . امکان  QoS ،  مجموعه ای از سرویس های  مورد نظر بمنظور حصول اطمینان از انتقال داده ها  با یک سطح قابل قبول در یک شبکه است  با استفاده از QoS ، می توان نحوه پهنای باند اختصاصی به یک برنامه را کنترل نمود. QoS ،  یک سیستم مناسب ، سریع و تضمین شده برای اطلاعات در شبکه را فراهم می نماید .

  • Terminal Service . با استفاده از ویژگی فوق ، امکان دستیابی از راه دور به یک سرویس دهنده از طریق یک ترمینال شبیه سازی شده ، فراهم می گردد . یک ترمینال شبیه سازی شده ،  برنامه ای است که امکان دستیابی به یک کامپیوتر از راه دور را بگونه ای فراهم می نماید که تصور می شود شما در کنار سیستم بصورت فیزیکی قرار گرفته اید. با استفاده از سرویس ترمینال، می توان برنامه های سرویس گیرنده را بر روی سرویس دهنده اجراء و بدین ترتیب کامپیوتر سرویس گیرنده بعنوان یک ترمینال ایفای وظیفه خواهد کرد ( نه بعنوان یک سیستم مستقل) . بدین ترتیب هزینه مربوط به عملیات و نگهداری شبکه کاهش و می توان مدیریت سرویس دهنده را از هر مکانی بر روی شبکه انجام داد.

  • Remote Installation Services)RIS) . سرویس فوق، امکان بکارگیری سیستم عامل در یک سازمان توسط مدیران سیستم را تسریع و بهبود خواهد بخشید. بدین ترتیب  نیاز به ملاقات فیزیکی هر یک از کامپیوترهای سرویس گیرنده وجود نداشته و می توان از راه دور ،  اقدام به نصب نمود. سرویس فوق ، یک عنصر انتخابی بوده و  بعنوان بخشی از  نسخه windows 2000 server است .

مبانی شبکه های کامپیوتری
فرض کنید در سازمانی
، می بایست تعدادی زیادی از کارکنان از داده های مشابه استفاده  نمایند . یکی از راه حل ها ی مربوطه می تواند استقرار  یک نسخه از داده ها  بر روی هر یک از کامپیوتر ها باشد. بدین ترتیب هر یک از کارکنان بصورت مجزاء به داده ها دستیابی خواهند داشت . راه حل دیگر در این زمینه
، استقرار داده ها بر روی یک کامپیوتر و دستیابی سایر کامپیوتر به داده های مورد نیاز از راه دور است. رویکرد فوق ،  باعث صرفه چوئی در فضای ذخیره سازی  بر روی کامپیوترها شده و یک محل مرکزی برای ذخیره سازی و مدیریت داده هائی را که چندین کاربر نیازمند دستیابی به آنان می باشند را فراهم می نماید .عملیات فوق،  مستلزم اشتراک داده ها و منابع بوده و ما را بسمت پیاده سازی شبکه هدایت می نماید.شبکه شامل گروهی از کامپیوترهای مرتبط بهم است که امکان اشتراک اطلاعات را به کاربران خواهد داد .در یک شبکه ، کاربران متعددی قادر به دستیابی به اطلاعات مشابه و اتصال به منابع یکسانی می باشند . مثلا" در مقابل ارتباط هر کامپیوتر به چاپگر اختصاصی خود،  تمام کامپیوترها می توانند به یک چاپگر مرتبط و بدین ترتیب امکان استفاده از چاپگر بصورت مشترک توسط چندین کاربر فراهم می گردد .

مزایای شبکه 
برپاسازی یک شبکه کامپیوتری دارای مزایای زیر است :

  • اشتراک اطلاعات . امکان  اشتراک اطلاعات و داده ها با سرعت مطلوب و هزینه پایین ، از مهمترین مزایای یک شبکه کامپیوتری است .

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

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

نقش ( وظایف ) کامپیوترها در شبکه 
کامپیوترهای موجود در شبکه بعنوان سرویس گیرنده و یا سرویس دهنده
،  ایفای وظیفه می نمایند . 

  • کامپیوترهای سرویس گیرنده،  درخواست خود برای دریافت سرویس و یا اطلاعات  را از کامپیوترهائی در شبکه که بعنوان سرویس دهنده ،  ایفای وظیفه می نمایند ،  مطرح می نمایند . 

  • کامپیوترهای سرویس دهنده،  کامپیوترهائی هستند که سرویس ها و داده های مورد نیاز کامپیوترهای سرویس گیرنده را ارائه می نمایند. سرویس دهندگان در شبکه ، عملیات متفاوت و پیچیده ای را انجام می دهند. سرویس دهندگان،  برای شبکه های بزرگ اختصاصی شده تا قادر به پاسخگوئی به نیازهای توسعه یافته کاربران باشند.  نمونه های زیر انواع متفاوت سرویس دهندگان در یک شبکه بزرگ را نشان می دهد:
    سرویس دهنده فایل و چاپ . این نوع سرویس دهندگان
    ،  منابع فایل و چاپگر را از طریق یک نقظه متمرکز،  ارائه می نمایند. زمانیکه  سرویس گیرنده  ای درخواست خود  را برای دریافت داده ،  فایل و سرویس دهنده چاپ ، ارسال می نماید،  تمام اطلاعات  و یا فایل درخواستی  بر روی کامپیوتر متقاصی دریافت می گردد. مثلا" زمانیکه یک برنامه واژه پرداز فعال می گردد،  برنامه برروی کامپیوتر شما اجراء و مستندات ذخیره شده بر روی سرویس دهنده چاپ و یا فایل در حافظه کامپیوتر شما مستقر تا امکان ویرایش و یا استفاده محلی از مستندات فراهم گردد . زمانیکه مستندات مجددا" بر روی سرویس دهنده ذخیره می گردد،  سایر کاربران شبکه که دارای مجوزهای لازم دستیابی می باشند ،  قادر به مشاهده و استفاده از مستندات خواهند بود.سرویس دهندگان فایل و چاپ، تمرکزدر ذخیره سازی فایل ها و داده ها را بدنبال خواهند داشت.
    سرویس دهنده بانک اطلاعاتی . سرویس دهندگان بانک اطلاعاتی
    ، قادر به ذخیره سازی حجم بالائی از داده ها در یک مکان متمرکز بوده و از این طریق داده ها در دسترس کاربران قرار گرفته و ضرورتی به دریافت تمام بانک اطلاعاتی نخواهد بود. با استفاده از یک سرویس دهنده بانک اطلاعاتی،  تمام بانک اطلاعاتی بر روی سرویس دهنده ذخیره و صرفا" نتایج مربوط به یک درخواست برای متقاضی ارسال خواهد شد. مثلا" می توان از
    بانک اطلاعاتی کارکنان بر روی یک سرویس دهنده اطلاعاتی نظیر Microsoft SQL Server  استفاده کرد. زمانیکه سرویس دهنده درخواست شما را پردازش می نماید ، صرفا" نتایج پرس و جو (Query) از طریق سرویس دهنده برای سرویس گیرنده ارسال می گردد.
    سرویس دهنده پستت الکترونیکی . سرویس دهنده پست الکترونیکی
    ،  نظیر سرویس دهنده بانک اطلاعاتی رفتار می نماید با این تفاوت که از برنامه های  سرویس دهنده و  سرویس گیرنده مجزائی استفاده می گردد. داده های انتخابی از سرویس دهنده  برای سرویس گیرنده ارسال خواهد شد. سرویس دهنده پست الکترونیکی،  مدیریت پیام های الکترونیکی در شبکه برعهده دارد.
    سرویس دهنده فاکس (نمابر) . سرویس دهندگان فاکس
    ،  مدیریت ترافیک فاکس به و یا  از شبکه را با اشتراک یک و یا چندین دستگاه  فاکس مودم ، فراهم می نمایند. بدین ترتیب، سرویس فاکس برای هر یک از کاربران شبکه فراهم و ضرورتی به نصب یک دستگاه فاکس برای هر یک از کامپیوترها ، وجود نخواهد داشت .
    سرویس دهنده
    Directory Service . سرویس دهنده فوق
    ،  یک محل مرکزی بمنظور ذخیره اطلاعات در رابطه با شبکه نظیر اسامی  کاربران و منابع موجود در شبکه است . بدین ترتیبز  امنیت شبکه بصورت متمزکز مدیریت خواهد شد . مدیریت شبکه قادر به تعریف یک منبع نظیر چاپگر و نوع دستیابی  کاربران،خواهد بود. پس از تعریف منابع توسط مدیریت شبکه، کاربران قادر به دستیابی و استفاده از منابع خواهند بود. نوع استفاده از منابع بر اساس سیاست هاتی است که توسط مدیریت شبکه برای کاربران تعریف و درنظر گرفته شده است .
     

انواع شبکه 
با توجه به نحوه پیکربندی کامپیوترها در شبکه و نحوه دستیابی به اطلاعات
،  شبکه ها را به دو گروه عمده
Peer-To-Peer و Client Server تقسیم می نمایند:

  • Peer-To-Peer ( نظیر به نظیر ) . در شبکه های نظیر به نظیر،  سرویس دهنده اختصاصی وجود نداشته  و سلسله مراتبی در رابطه با کامپیوترها رعایت نمی گردد. تمام کامپیوترها معادل و همتراز می باشند. هر کامپیوتر در شبکه هم بعنوان سرویس گیرنده وهم بعنوان  سرویس دهنده ایفای وظیفه  نموده و امنیت بصورت محلی و بر روی هر کامپیوتر ارائه می گردد . کاربر هر یک از کامپیوترها مشخص می نماید که چه داده ئی بر روی کامپیوتر خود را می بایست به اشتراک قرار دهد. شبکه های نظیر به نظیر workgroup ، نیز نامیده می شوند . واژه workgroup ، نشاندهنده یک گروه کوچک ( معمولا" ده و یا کمتر ) از کامپیوترهای مرتبط با یکدیگر است . شبکه های نظیر به نظیر ، گزینه ای مناسب برای محیط هائی با شرایط زیر می باشند:
     ○ حداکثر تعداد کاربران ده و یا کمتر .
     ○ کاربران منابع و چاپگرها را به اشتراک گذاشته و در این راستا
    ، سرویس دهندگان خاصی وجود ندارد.
     ○ امنیت متمرکز مورد نظر نباشد .
     ○ رشد سازمان و شبکه بر اساس آنالیز شده
    ، محدود باشد .

  • Client Server  ( سرویس دهنده - سرویس گیرنده ) . بموازات رشد شبکه و افزایش کاربران و منابع موجود ،یک شبکه نظیر به نظیر قادر به پاسخگوئی به حجم بالای تقاضا برای منابع اشتراکی نخواهد بود بمنظور هماهنگی با افزایش تقاضا و ارائه سرویس های مورد نیاز ، شبکه ها می بایست از سرویس دهندگان اختصاصی، استفاده نمایند . یک سرویس دهنده اختصاصی، صرفا" بعنوان یک سرویس دهنده در شبکه ایفای وظیفه می نماید (نه بعنوان یک سرویس گیرنده) . شبکه های سرویس گیرنده - سرویس دهنده ، بعنوان مدلی استاندارد برای  برپاسازی شبکه مطرح شده اند . بموازات رشد شبکه ( تعداد کامپیوترها متصل شده ،  فاصله فیزیکی ، ترافیک موجود) می توان تعداد سرویس دهندگان در شبکه را افزایش داد. با توزیع  مناسب فعالیت های شبکه بین چندین سرویس دهنده ، کارآئی شبکه بطرز محسوسی افزایش خواهد یافت .

در بخش دوم این مقاله ، به بررسی سیستم های عامل شبکه ای پرداخته و نحوه پیاده سازی شبکه در ویندوز بررسی خواهد شد .