تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 5 12345 آخرآخر
نمايش نتايج 1 به 10 از 42

نام تاپيک: آموزش کامل جامع درباره .NET ها

  1. #1
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض آموزش کامل جامع درباره .NET ها

    در اين مقاله كوتاه با بخشي از توانائي هاي ويژوال سي دات نت آشنا خواهيد شد .

    با توسعه مجموعه دات نت و ويژوال استوديو دات نت تحول بزرگي در عرصه برنامه نويسي ( فعلا ) ويندوز پديد آمده است . آنچه كه اين روزها بر سر زبانهاست تنها بخشي از توانائي هائيست كه دات نت در اختيار گسترش دهندگان نرم افزار قرار ميدهد . ( برنامه نويسان ويژوال بيسيك كه قبلا از نعمت توانائي طراحي برنامه هاي سرويس - چند ريسماني و مد كنسول محروم بودند اين حقيقت را بهتر از ديگران درك ميكنند !!! )

    زبان برنامه نويسي در عالم دات نت تنها يك معنا دارد و آن چيزي نيست جز : Syntax ! كلاسهاي واحد و محيط توسعه قدرتمند و قابل گسترش دات نت يكي از بزرگترين تحولاتيست كه در عالم نرم افزار تا كنون رخ داده است . اين تغيير تاثيرات شگرفي بر ويژوال سي برجاي گذارده كه معدودي از آنها ذيلا معرفي ميشود .

    هر چند برنامه نويسان ويژوال سي همچنان ميتوانند از MFC و حتي ATL براي توسعه نرم افزار استفاده كنند ( كه اين خود بزرگترين امتياز براي اين محيط محسوب ميشود . برنامه نويسان ويژوال سي مثل برنامه نويسان وي بي لازم نيست لباس جديد و رسمي بپوشند (!) و خود را برنامه نويس معرفي كنند !!! ) اما با باز كردن پروژه هاي قديمي خود در محيط ويژوال استوديو دات نت و دادن پاسخ مثبت به يك سوال و به تبع آن توليد يك فايل sln . توسط محيط توسعه ميتوانند از امكانات جديد و فدرتمند دات نت استفاده كنند و لزومي به تغيير هيچكدام از جزئيات برنامه نيست !

    ديگر اثري از ClassWizard نميبينيد ! مايكروسافت با تقليدي (!) هوشمندانه از محيطهاي توسعه شركت اينپرايز اكنون به توسعه دهندگانش اين امكان را ميدهد كه در قالبي سهل و البته عاقلانه تر به گسترش نرم افزار هاي مبتني بر رخداد ( event-Driven ) بپردازند .

    در صورتيكه تمايل داريد همچنان از قابليتهاي ميانبر كيبورد نسخه هاي قديمي ويژوال سي و محيط تسوعه نرم آن به جاي محيط جديد استفاده كنيد كافيست از منوي Help گزينه Show Start Page را انتخاب كرده و با دستكاري كردن My Profile در انتهاي صفحه خود را به عنوان Visual C++ Developer معرفي كنيد و بس !!

    بزرگترين تغيير از دست رفتن محيط يكدست توسعه رابط كاربري است !!! ( بهتر است بگوئيم غم انگيز ترين تغيير !!! ) . برنامه نويسان ويژوال سي ديگر مثل گذشته هاي دور و دوست داشتني (!) امكان توليد برنامه هاي GUI را با آن قالب سابق ندارند . هر چند مايكروسافت براي اين برخورد خود تفاصيل زيادي آورده است ( ر.ك ام اس دي ان ) اما با تقليدي ديگر ( و هوشمندانه تر از مورد قبل ! ) سيستم ثبت اطلاعات موقعيتي GUI را از اينپرايز قرض گرفته و توسعه دهنده برنامه مبتني بر ويژوال سي ميتواند مولفه هاي ظاهري برنامه خود را در محيطهاي سي شارپ يا وي بي طراحي كرده و مشخصات ضبط شده آن را براي پياده سازي به محيط ويژوال سي وارد كند .

    در پايان - هر چند بي ربط - چند سطري هم در مورد تفاوتهاي ويژوال سي و سي شارپ بخوانيد :

    الف )سي شارپ ( برادر كوچكتر دلفي !!! ) براي تفكيك subnamespace از Namespace ايضا تفكيك Class از Namespace و همچنين دسترسي به متدها و اعضاي يك كلاس از نقطه ( Dot ) استفاده ميكند در حاليكه ويژوال سي همچنان از :: و <- مثل گذشته استفاده مينمايد .

    ب) سي شارپ ( برادر كوچكتر دلفي !!! ) بعد از استفاده از New يك نمونه از شي توليد شده را بر ميگرداند در حاليكه ويژوال سي تنها يك اشاره گر به موقعيت شي را برخواهد گرداند .

    ج)براي نوشتن برنامه هاي #C نيازي به ورود دستي منبع توابع به پروژه را نداريد و ميتوانيد از طريق منو هاي موجود اين كار را انجام دهيد در حاليكه در محيط ويژوال سي مجبوريد از Using# استفاده كرده و آدرس منبع ( مثلا System.dll ) را وارد كنيد . ( نگران نباشيد !!! اينبار مايكروسافت مشتريانش را شگفت زده كرده است !!! از طريق راهنماي برخط محيط ميتوانيد بفهميد كه كدام كلاس در كدام اسمبلي و محدوده وجود دارد و در كدام فايل ! )

    د) Null در سي شارپ با حروف تمام كوچك و در ويژوال سي با حروف تمام بزرگ نوشته ميشود !

    ه) سي شارپ pre-processor ندارد !

    و) سي شارپ :

    كد:


    this.button1.Click += new System.EventHandler(this.button1_Click);



    ( تعجب نكنيد ! اين اصلا دلفي نيست ! اين سي شارپ است ... Hello world !!!! )

    ويژوال سي :

    كد:


    button1->Click += new System::EventHandler(this, &Form1::button1_Click);



    اميد است اين سطوري اطلاعات مفيد ( هر چند اندك ) درباره محيط جديد توسعه نرم افزار مايكروسافت به شما داده باشد ( ... و اي كاش مايكروسافت در حركتي جوانمردانه (!) نام محصول جديد خود يعني سي شارپ را * مايكروسافت دلفي * ميگذاشت !!! )

    موفق و سلامت و جوانمرد (!) باشيد !

  2. #2
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    بنام خدا

    براي طراحي يك Data Provider براي ADO .NET يقينا بايد از كلاسهاي معروف داده پردازي يعني : Connection, Command, DataReader, DataAdapter استفاده كرد . اسمبلي System.Data.dll حاوي فضاهاي اسمي ( NameSpace ) مناسب براي طراحي جزئيات يك custom data provider ميباشد . با ذكر مقدماتي در باب استفاده از Data Provider ها براي برنامه هاي ويندوز به نحوه عملكرد يك Data Provider خواهيم پرداخت و آنگاه با تشريح جزئيات و نقش موثر هر يك از كلاسهاي دسترسي و پردازش داده دات نت يعني Connection, Command, DataReader, DataAdapter به نحوه تركيب خصوصيات مورد نظر طراح Data Provider با امكانات موجود و چگونگي خصوصي سازي توابع عنصري اين كلاسها براي دسترسي به منبع داده خواهيم پرداخت .

    براي سالهاي متمادي استفاده از ODBC به عنوان يك راه حل استاندارد دسترسي به داده بهترين گزينه گسترش دهندگان نرم افزارهاي داده پرداز بود . ODBC با استفاده از روشي مقدماتي با عنوان one-to-one mapping درخواستهاي مبتني بر SQL نرم افزار را به روشهاي داخلي دسترسي به داده بانك مورد نظر تبديل ميكرد و باز با رعايت استاندارد SQL پاسخ مورد نظر ( يا نشانه اي بر صحت يا بطلان روند مورد انتظار توسط دستور دهنده ) را به نرم افزار باز ميگرداند . در واقع ODBC پلي ارتباطي به گذرگاه هاي ورود و خروج داده ( Gateway ) يك بانك داده و صادر كننده دستورات SQL بود . به عنوان مثال ODBC با اطلاع از فرمت مورد قبول ورودي و خروجي بانك اسكوئل سرور مايكروسافت و گذرگاهش با عنوان SQL Server tabular data stream كه به TDS شهرت دارد درخواستهاي نرم افزار را به "مدير بانك" تحويل داده و جوابهاي مطلوب را باز ميگرداند . همينطور در رابطه با گذرگاه استاندارد داده بانك اوراكل ( Oracle Call Interface ) كه به OCI شهرت دارد . عموما رابط هاي ODBC به عنوان يك پل يا مترجم بين SQL و بانك توسط همان شركت توسعه دهنده بانك گسترش داده مي شدند .

    ODBC تنها محدود به دسترسي به RDBMS ها نيست . ODBC با قرار گرفتن بر فراز رابطهاي COM موجود براي برقراري ارتباط با يك منبع داده مديريت نشده مثل Excel ميتوانست از اطلاعات موجود در آنها نيز استفاده كند ! وظيفه اصلي استاندارد OLE DB توليد ساختاري يكتا "براي تبعيت" بود كه گسترش دهندگان منابع داده اي مثل Lotus يا Word با رعايت آن و توليد ابزارهاي مبتني بر COM امكان دسترسي به اين منابع را به توليد كنندگان نرم افزارهاي داده پرداز بدهند . ( قرار گرفتن بر فراز رابطهاي COM حاصل ترجمه عبارت COM Wrapper است - اينپرايز )

    اكنون دات نت در قالب اسمبلي System.Data.dll فضاهاي نامي مفيدي را ارائه ميكند كه هر كدام توسط كلاسهاي حوزه خود كليه وظايف فوق الذكر را در يك قالب معين مجتمع ( encapsulate ) ميكنند و برنامه نويس بدون درگيري با مشكلات نصب و راه اندازي Driver هاي ODBC يا استفاده از رابط صحيح COM براي يك موجوديت حاوي داده ( Data-awar Object ، به نظر ميرسد منظور محصول نرم افزاري خاصي است كه بگونه اي خاص نوعي از داده را نگه داري و مديريت ميكند و با ارائه رابط هائي خاص اجازه دسترسي و خودكار سازي مديريت اين داده ها را مجاز ميداند - اينپرايز ) يك راه حل جامع ، يكتا ، سهل الوصول ، سهل الاستفاده ( easy to use رو چي بايد ترجمه كنم ؟ - اينپرايز ) را به توسعه دهنده دات نت ارائه ميكند . با استفاده از اسمبلي هاي جامع دات نت و كلاسهاي ADO .NET ديگر درگير نصب و پيكره بندي فيزيكي (!) مسيرهاي عبور داده از منبع تا برنامه تان نيستيد . همچنين دات نت همكنون ( با تقليدي كثيف از بورلند - اينپرايز :-) ) مفهوم DataSet را ارائه كرده است كه مفهومي جديد (!) براي ظرف نگهداري و مديريت داده هاي بدون اتصال به منبع ميباشد . ( disconnected object model )


    چرا بايد يك فراهم كننده داده ( Data Provider ) طراحي كنم و دلائل استفاده از آن چيست ؟

    در صورتيكه منبعي حاوي داده داريد كه بناست پايه طراحي سيستم هاي نرم افزاري گوناگوني قرار بگيرد براي خروج داده از منبع به سيستمهاي مذكور چه فكري كرده ايد ؟ آيا تصور ميكنيد بايد سورس نرم افزار مديريت داده و فرمت فايلهاي ذخيره كننده داده را بايد در تابلو اعلانات شركت نصب كنيد تا تمام برنامه نويسان حال و احتمالا آينده شركت از جزئيات آن اطلاع كسب كرده و آنگاه نرم افزاري براي دسترسي به داده ها طراحي كنند ؟ آيا تصور كرده ايد همه برنامه نويسان شما آنقدر دقيق هستند كه راهنماي 300 صفحه اي شما كه خوشبختانه بصورت PDF طراحي شده (!) را مطالعه كنند و بدون هيچ خطائي روش مورد علاقه شان را براي دستيابي به داده هاي شما "اختراع" كنند ؟ آيا فكر ميكنيد ... يقينا بعد از اندكي تفكر به اين نتيجه خواهيد رسيد كه يك منبع داده بدون يك سلسله رابطهاي استاندارد براي دسترسي به آن مفهومي ندارد ! رابط هاي يكتاي شما بايد همانطور كه به يك برنامه نويس ويندوز امكان ميدهد بانك را جستجو ( Search ) كند و نتايج را استخراج كند بايد امكانات مناسبي را براي طراحان وب سايت شركت در نظر بگيرد تا آنان نيز بدون در گير شدن در جزئيات طراحي نرم افزار و ... فقط با استفاده از يك يا چند دستور و انتخاب كتابخانه مناسب براي روشهاي دسترسي به بانك شما بتوانند صفحات وب ، گزارشهاي گرافيكي و چارتهاي سازماني را براحتي استخراج كنند !

    ورود به مبحث ، قبل از دات نت

    برنامه نويسان محيط ويندوز ، خصوصا برنامه نويسان Visual C++® 6.0 با استفاده از كلاسهاي نرم افزاري خاصي ( هم بصورت ATL و صرفا براي ويژوال سي و هم بصورت COM و با رعايت ATL بدون وابستگي به MFC - اينپرايز ) ميتوانستند فراهم كننده هاي داده خودشان را با رعايت قالب OLE DB طراحي كنند و اين رابط ها را در اختيار برنامه نويسانشان قرار دهند تا روند دستيابي به منبع داده سازمان استاندارد شود . آنها ساختار ( Struct ) اي با عنوان WIN32_FIND_DATA در اختيار داشتند كه حاوي اطلاعات دقيقي از محل فايلها و دايركتوري هاي نگهداري داده ، ساختار و فرمت فايلهاي ذخيره كننده داده و ... بود و با استفاده از آن Data Provider هاي خودشان را طراحي ميكردند كه به اين روند معروف ، DirProv گفته ميشد ! اكنون دات نت در قالب كلاسهاي خود چيزي مشابه همين عمل را با عنوان جديد managed dirprov انجام ميدهد .

    كليات طراحي يك ديتا پرووايدر

    Connection : كلاس حياتي اين روند ، كلاس Connection است . ايجاد و مديريت "برقراري رابطه" با منبع داده به عهده اين كلاس است .

    Command : كلاسي كه وظيه "ارسال و دريافت" دستورات " استاندارد" به منبع فراهم شده را بر عهده دارد . اين دستورات ميتوانند ( بنا به طراحي كلاس كه عموما اين روزها مبتني بر SQL است - اينپرايز ) INSERT, UPDATE, DELETE باشند يا حتي دستوراتي چون SELECT كه داراي پاسخ هستند ! ( پس شما فقط در كلاس command با اسكوئل سر و كار داريد ! - اينپرايز )

    DataReader : اين كلاس كليه وظايف "پردازش خروجي " مرحله قبل را به عهده دارد .

    DataAdapter : اين كلاس " محفظه نگهداري داده" كلاس DataReader را با داده هاي استخراج شده از بانك پر ميكند ! ( پس وظايف پردازشي مثل اديت ، سرچ و ... به عهده ديتا ريدر و وظيفه گرفتن داده از خروجي و پر كردن ديتا ريدر با فرمت مناسب و احتمالا قرار دادن ----- هاي خاص مثل محدوديت ارسال شبكه اي و ... بر عهده ديتا ادپتر است ! - اينپرايز )


    شرح وظايف هر كلاس و نحوه طراحي و پياده سازي ( Implementing ) يك نسخه خصوصي براي نيل به هدف :

    الف) Connection Class

    اين كلاس يك رابط ( Interface ) قابل پياده سازي دارد به نام IDbConnection با شش تابع عنصري بري باز و بسته كردن يك "ارتباط" با داده ها يا تغيير منبع داده و امثالهم . پياده سازي Trasaction ها در همين مرحله صورت ميگيرد ! رابط IDbTransaction بعد از صدا زدن متد BeginTransaction بوجود مي آيد و وظايف يك تراكنش را به عهده ميگيرد !

    ConnectionString و ConnectionTimeout دو خصوصيت مهم اين كلاس هستند كه ميتوانند نقاط خوبي براي اضافه كردن جزئيات مورد نظر هنگام پياده سازي مجدد كلاس باشند .


    ب) Command Class

    اين كلاس يك رابط به نام IDbCommand معرفي ميكند كه ابزار استفاده كننده از داده هاست براي ارسال دستورات . متد ها و خصوصيتهاي نسبتا زياد اين رابط به شما امكنا مديريت مناسب ارسال دستور و دريافت جواب را ميدهد . بنا به اينكه منبع داده هاي شما يك RDBMS مثل اوراكل است يا يك منبع ساده داده مثل يك فايل پارادوكس از امكانات مناسبي براي مديريت ارسال و دريافت برخورداريد . به عنوان مثال اگر داده هاي شما در فايلهاي ساده اي در يك دايركتوري واحد ذخيره ميشوند ميتوانيد در پياده سازي خود از اين كلاس خصوصيات مربوط به SQL را حذف كنيد و صرفا نام دايركتوري حاوي داده را به عنوان CommandText از كاربر بخواهيد !

    ج) DataReader Class

    اين كلاس با ارائه دو رابط به نامهاي IDataReader و IDataRecord به كاربر امكان مشاهده داده ها ، جستجو و حتي كسب اطلاع در مورد محتواي ظرف داده توسط metadata ي موجود براي هر resultset را ميدهد .

    د) DataAdapter Class

    IDataAdapter و IDbDataAdapter توسط اين كلاس ايجاد ميشوند و وظيفه قالب بندي و انتقال داده هاي توليد شده توسط Command به DataReader را به عهده دارند .


    هر كدام از گسترش دهندگان منبع داده ( مثل اوراكل يا مايكروسافت ) با عنايت به استاندارد ADO .NET فراهم كننده داده هايشان را توليد و توزيع نموده اند و برنامه نويس با استفاده از رابط آنها و استفاده از اسمبلي و كلاسهاي مناسب به عنوان پايه نرم افزار ميتواند از طريق دات نت به داده ها دست يابد و آسانترين روند توزيع نرم افزار پردازش داده را تجربه كند و طراحان منبع داده ها كسب دانشي كه چند سطري از آن را فوقا" مشاهده كرديد ميتوانند Data Provider هاي اختصاصي خود را براي سازگاري با دات نت گسترش دهند . نحوه استفاده از Data Provider ها و برقراري ارتباط با منبع داده مبحثي جداگانه و مفصل است كه توصيه ميكنم قبل از پرداختن به آن مطالعات مقدماتي حول آن در MSDN داشته باشيد . اطلاعات فوق هر چند كمكي به طراحي و پياده سازي يك Data Provider نميكند اما به شما به عنوان يك توسعه گر نرم افزار كمك ميكند ديد بهتري نسبت به آنچه اتفاق مي افتد داشته باشيد !

  3. #3
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    ، يکي از مهمترين دستاوردهاي بشريت در عرصه نرم افزارطي ساليان اخير است که بدون شک بيشترين تاثير را در ارتباط با طراحي و پياده سازي برنامه هاي کامپيوتري خصوصا" در اينترنت، بدنبال داشته و خواهد داشت . XML ، يکي از استانداردهاي ارائه شده توسط کنسرسيوم وب است که زمينه استفاده از آن براي تمامي توليدکنندگان نرم افزار، فراهم شده است . XML ، بهمراه خود مجموعه اي از تکنولوژي هاي ديگر را ايجاد نموده است، بطوريکه امروزه از آن بعنوان يک خانواده بزرگ ياد مي گردد (XSLT , XSD ,DOM , XPath ,...) . بديهي است توجه به استانداردهاي فوق براي توليدکنندگان نرم افزار بسيار حايز اهميت بوده و در اين راستا ،شرکت هاي عظيم نرم افزاري بدنبال ارائه بستر مناسب براي طراحي و پياده سازي نرم افزار بر اساس واقعيت هاي موجود، خصوصا" پديده شگرف اينترنت مي باشند . ماکروسافت، بعنوان يکي از شرکت هاي عظيم نرم افزاري ،پروژه دات نت را مطرح و در نهايت آن را در اختيار علاقه مندان قرار داده است . XML ، در دات نت داراي نقشي بسيار مهم و محوري بوده و لازم است با جايگاه آن بصورت اصولي آشنا شويم . در اين مقاله، به بررسي جايگاه XML در دات نت پرداخته مي گردد .

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

    سرويس هاي وب XML
    ساختار و بدنه دات نت، محيطي مناسب براي ايجاد سرويس هاي وب XML است . کاربران قادر به فراخواني سرويس ها بکمک پروتکل هاي استاندارد شده اي نظير : SOAP ، UDDI و XML مي باشند. سرويس هاي وب XML ، با استفاده از کلاس ها و Namespace هائي که توسط کنسرسيوم وب استاندارد شده اند، ايجاد مي گردند. سرويس هاي وب XML ، روشي مطلوب بمنظور اشتراک ، سازماندهي و انجام عمليات متفاوت در رابطه با داده ها مي باشند .

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

    چالش هاي موجود در زمينه بکارگيري برنامه ها در اينترنت
    گسترش فعاليت هاي تجاري بر روي اينترنت باعث حضور شرکت هاي متعدد بهمراه سيستم هاي گوناگون، در کنار يکديگر شده است . با اينکه ايده انجام فعاليت هاي تجاري بر روي اينترنت نسبتا" جديد است ولي اغلب شرکت ها و سازمان ها ، زمان و هزينه زيادي را صرف اين نوع فعاليت ها و تعامل اطلاعاتي مربوطه ، مي نمايند . ارتباط داده ها با سيستم هاي موجود ، يکي از بزرگترين مسائل برنامه نويسان است( خصوصا" در موارديکه داده ها از مراکز و شعب متفاوت يک شرکت دريافت و مي بايست به سيستم هاي اصلي تغذيه گردند ) .

    يکپارچگي بين برنامه هاي مختلف
    دستيابي به داده ها ي مشترک بين شرکت هاي متعدد ، توسط برنامه هاي متفاوت موجود بر روي سيستم هاي عامل گوناگون ، به يک ضرورت مهم تبديل شده است . بمنظور مبادله اطلاعات بين برنامه هاي متقاضي ، مي بايست در مرحله اول داده ها، ساختيافته بوده تا زمينه استفاده از آنان فراهم گردد.برخي از داده ها در سيستم هاي هاي سلسه مراتبي، شامل سندهاي XML ، برخي ديگر در بانک هاي اطلاعاتي رابطه اي، نظير SQL Server و برخي ديگر، بصورت غيرساختيافته و در فايل هائي تخت (Flat) ذخيره شده اند .

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

    فرمت هاي متفاوت XML . فايل هاي XML مي توانند از گرامرهاي متفاوتي استفاده نمايند . مثلا" گرامري، صرفا" از المان ها استفاده نموده و در گرامري ديگر ، از المان ها بهمراه خصلت هاي مربوطه استفاده مي گردد . شرکت ها و موسسات تجاري براي غلبه بر اين نوع مشکل تبديل داده ،مي توانند از تمپليت هاي استاندارد شده استفاده نمايند.

    توليد XML از داده هائي با فرمت ديگر . داده ها ي موجود در هر سازمان با فرمت هاي متفاوتي نظير: EDIFACT ,ANSI ,X12 , XML , فايل هاي CSV)Comma Separated value) ، فايل هاي Tab -Separated و موارد ديگر، ذخيره شده اند. در اين راستا ، مي توان ساختاري استاندارد براي داده ها ايجاد تا زمينه استفاده از آنان براي ساير برنامه ها فراهم گردد .

    معتبر سازي ساختار داده ها . يکي از مزاياي مهم استفاده از XML در برنامه ها ، ارائه روشي مطلوب بمنظور اشتراک اطلاعات است . با توجه به دريافت داده ها از منابع متفاوت، مي بايست از روشي بمنظور اطمينان از صحت و اعتبار داده ها استفاده گردد .بدين منظور و جهت غلبه بر مشکل فوق، مي توان از ابزارهاي معتبر سازي نظير Schema که در بين تمام برنامه ها و نوع داده ها استاندارد است، استفاده گردد.

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

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

    خلاصه سازي، ترکيب و همبستگي . پس از يافتن اطلاعات مورد نياز، مي خواهيم بر روي آنان عمليات متفاوتي را انجام دهيم . مثلا" ممکن است، قصد تنظيم يک گزارش خاص در رابطه با ميزان فروش ماهانه، وجود داشته باشد. در اين راستا مي توان، داده هاي دريافتي از منابع متفاوت را با يکديگر ترکيب و آنها را با يک فرمت خاص ذخيره و در ادامه پردازش هاي لازم را انجام داد . طراحي دات نت بر اساس استفاده از تکنولوژي محوري XML پايه گذاري شده است . با استفاده از XML ، مي توان عمليات فيلترسازي داده ها را بمنظور کاهش حجم اطلاعاتي انجام و بدين ترتيب صرفا" با داده هائي که به فعاليت مرتبط مي باشند، درگير خواهيم شد .

    پردازش ( عمليات ) بر روي داده ها
    بمنظور انجام عمليات بر روي داده ها، مي بايست يک ساختار، بافتار(Context) لازم را ارائه نمايد . پس از انجام عمليات بر روي داده ها ، مي بايست از ساختاري بمنظور نمايش نتايج استفاده گردد.در اين رابطه موارد زير مورد توجه خواهد بود :

    تبديل داده از XML به فرمت ديگر .در صورتيکه المان ها و خصلت هاي برنامه اي که با آن کار مي شود متفاوت از ساختار XML مربوط به داده هائي باشد که از آن بعنوان منبع تامين اطلاعات ، استفاده مي گردد، مي بايست از روشي براي تبديل داده از يک گرامر XML به شکل ديگر، استفاده گردد. در صورتيکه با يک برنامه وب کار مي شود، مي بايست داده هاي ساختيافته در اسناد XML به اسناد Html بمنظور نمايش بر روي وب سايت ، تبديل گردند.

    تغيير ساختار يک سند . در برخي موارد لازم است به يک سند XML المان و يا خصلتي ، اضافه و يا حذف گردد . بدين ترتيب در ساختار سند موجود تغييراتي بوجود مي آيد.

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


    در بخش دوم اين مقاله ، به بررسي استانداردهاي کنسرسيوم وب در دات نت ، کلاس هاي XML در دات نت و امکانات امنيتي در ارتباط با XML ، خواهيم پرداخت .

  4. #4
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    در بخش اول اين مقاله به بررسي مفاهيم وچالش هاي موجود در زمينه طراحي و پياده سازي برنامه هاي کامپيوتري بمنظور استفاده در محيط اينترنت اشاره و محيط دات نت ماکروسافت از اين زاويه، مورد بررسي اوليه قرار گرفت . در بخش دوم ، به بررسي استانداردهاي کنسرسيوم وب در دات نت ، کلاس هاي XML در دات نت و امکانات امنيتي در ارتباط با XML ، خواهيم پرداخت .

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


    Xml Information set : کنسرسيوم وب مشخصاتي را بعنوان مجموعه اطلاعات مرتبط با XML ، استاندارد و ارائه نموده است .استاندارد فوق، شامل مجموعه اي از تعاريف بمنظور استفاده توسط ساير مشخصاتي است که بنوعي به اطلاعات موجود در يک سند XML مراجعه مي نمايند. يک سند XML ، حاوي تعدادي از مجموعه اطلاعات ارائه شده در استاندارد فوق است . مشخصات فوق ، اطلاعات لازم بمنظورتشريح ساختار يک سند XML را ارائه مي نمايد .يک سند XML شامل يک مجموعه اطلاعات است، اگر " خوش - شکل " بوده و محدوديت هاي تعريف شده در رابطه با Namespace را در مجموعه اطلاعات ومشخصات XML ، تامين نمايد . اغلب استانداردهاي XML کنسرسيوم وب، از تعاريف ارائه شده در مشخصه فوق ، اقتباس ( مشتق ) شده اند.براي اطلاعات تکميلي مي توان به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کرد .

    XML 1.0 Namespace . استاندارد فوق ،ضوابط لازم بمنظور ايجاد يک شي داده بصورت يک سند XML ، را تعريف مي نمايد . مشخصات فوق همچنين ،ساختار فيزيکي و منطقي يک سند XML و ساير خصايص مربوطه را تعريف مي نمايد. براي اطلاعات تکميلي مي توان به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه استفاده کرد.namespace ها درXML يک namespace را تعريف و نحوه استفاده از namespace در زمان ايجاد يک گرامر XML را که شامل المان ها و خصلت هائي است، مشخص مي نمايد . براي اطلاعات تکميلي مي توان به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کرد .

    XML Path Language ( XPath) 1.0 : استاندارد XPath ، گرامر و سمنتيک مورد نياز براي آدرس دهي بخش هاي متفاوت يک سند XML را مشخص مي نمايد. XPath ، همچنين شامل امکانات پايه براي انجام عمليات در رابطه با رشته ها ، اعداد و منطق است . براي مشاهده اطلاعات تکميلي مي توان به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کرد .

    XSL Transformation (XSLT) 1.0 : استاندارد XSLT ، گرامر و سمنتيک XSLT را تعريف و زباني براي تبديل اسناد XML به فرمت هاي ديگر است . تبديل مورد نظر( بيان شده ) در XSLT يک Style Sheet ناميده مي شود . براي مشاهده اطلاعات تکميلي مي توان به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کرد .

    Document Object Model )DOM) : استاندارد DOM سطح يک و دو، اينترفيس لازم را بمنظور دستيابي و انجام عملياتي نظير: بهنگام سازي Style ،محتويات و ساختار يک سند از طريق برنامه نويسي ، فراهم مي نمايد . براي مشاهده اطلاعات تکميلي مي توان به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کرد .

    XML Schema Definition Language )XSD) : استاندارد XSD ، روشي براي تشريح ساختار ، محتويات و سمنتيک يک سند XML است . Schema امکان استفاده از واژه هاي مشترک را فراهم مي نمايد . براي مشاهده اطلاعات تکميلي مي توان به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کرد .

    جدول زير نسخه هاي پياده سازي شده هر يک از استانداردهاي فوق را در دات نت نشان مي دهد :


    استاندارد کنسرسيوم وب

    namespace مربوطه در دات نت

    XML 1.0 and Namespaces in XML

    System.Xml

    XPath
    System.Xml System.Xml.XPath

    XSLT
    System.Xml.Xsl

    DOM Level 1
    System.Xml

    DOM Level 2 Core
    System.Xml

    XML Schemas
    System.Xml System.Xml.Schemas

    XML Schema Object Model(SOM)
    System.Xml.Schemas

    دات نت با ارائه namespace و کلاس هاي پايه از استانداردهاي ارائه شده توسط کنسرسيوم وب، حمايت مي نمايد . جدول زير نسخه هاي پياده سازي شده استانداردهاي کنسرسيوم وب، در دات نت را نشان مي دهد .



    W3C XML standard

    .NET Framework namespace

    .NET Framework class

    XML 1.0 and Namespaces in XML

    System.Xml
    Not applicable

    XPath
    System.Xml System.Xml.XPath XPath base class

    XSLT
    System.Xml.Xsl XslTransform base class

    DOM Level 1
    System.Xml XmlDocument class

    DOM Level 2 Core
    System.Xml XmlDocument class

    XML Schemas
    System.Xml System.Xml.Schemas XmlSchema

    XML Schema Object Model(SOM)
    System.Xml.Schemas XmlSchema

    مروري بر کلاس هاي XML در دات نت
    کلاس هاي پايه تجريدي در دات نت ، اساس مبادله اطلاعات مي باشند . جدول زير کلاس هاي پايه در فريمورک دات نت را نشان مي دهد :



    Abstract base class
    کلاس های مشتق شده

    XmlReader
    XmlTextReader XmlNodeReader XmlValidatingReader

    XmlWriter
    XmlTextWriter

    XmlNavigator
    XmlPathNavigator

    XmlResolver
    XmlUrlResolver


    مقايسه بين MSXML 4.0 و دات نت
    ماکروسافت دو روش متفاوت بمنظور کار با XML ، در اختيار برنامه نويسان قرار داده است :

    MSXML، که در ابتدا پارسر XML ناميده مي شد.
    کلاس هاي XML فريمورک دات نت
    MSXML 4.0 ، با پارسر MSXML جايگزين شده است . عملکرد MSXML 4.0 در اغلب موارد مشابه کلاس هاي فريمورک دات نت است . تفاوت عمده در نحوه استفاده از عناصر است . در MSXML بمنظور ارائه امکانات از اشياء COM)Componenet Object Model) استفاده شده ( ازManaged code استفاده نمي گردد ) و داراي امکانات از قبل ساخته اي براي SAX)Simple API for XML) است .
    MSXML 4.0 ، شامل سرويس هاي زير است :

    DOM
    XSD
    XPath 1.0
    XSLT 1.0
    SAX ( يک مدل برنامه نويسي و مشابه با DOM است )
    Schema Object Model)SOM) ، شامل امکانات API اضافه ، بمنظور دستيابي به سندهاي XML Schema از طريق برنامه نويسي است .
    کلاس هاي XML فريمورک دات نت ، عمليات مشابهي را نظير MSXML 4.0 انجام مي دهند. طراحي کلاس هاي فوق بگونه اي است که امکان استفاده از آنان در يک محيط مديريت يافته، خصوصا" سرويس هاي وب XML ،وجود دارد .
    جدول زير ويژگي هر يک را نشان مي دهد :



    استاندارد کنسرسيوم وب

    MSXML ( محيط مبتنی بر COM )

    کلاس های XML فريمورک دات نت ( محيط مديريت يافته دات نت )

    XML 1.0 and Namespaces in XML
    yes yes

    XPath
    yes yes

    XSLT
    yes yes

    DOM Level 1
    yes yes

    DOM Level 2 Core
    no yes

    XML Schemas
    yes yes

    XML Schema Object Model(SOM)
    yes (فقط خواندنی) yes

    Simple API for Xml (SAX)
    yes no

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

    مدل مبتني بر شي XML براي رمزنگاري اشياء
    کلاس SecurityElement ، مدل XML لازم بمنظور رمزکردن اشياء را ارائه مي نمايد. کلاس فوق ، بمنظور استفاده همراه يک سيستم ايمني در نظرگرفته شده است و امکان استفاده از آن بعنوان يک کلاس شي XML عمومي وجود نخواهد داشت .

    XML signature . کنسرسيوم وب در حال پياده سازي مشخصه اي براي امضاء ديجيتالي مبتني بر XML است . System.Security.Cryphtography.xml ،مدلي مبتني بر XML براي استفاده از سيستم امنيتي فريمورک دات نت بوده که از امضاهاي XML حمايت مي نمايد. مدل فوق اين امکان را به اشياء XML خواهد داد که از طريق يک امضاء ديجيتالي تاييد گردند . رمزنگاري باعث حفاظت اطلاعات در مقابل نمايش و يا تغييرات شده وبدين ترتيب يک کانال ايمن ارتباطي ايجاد خواهد شد .

    رمزنگاري سرويس هاي وب XML بمنظور انتقال . برنامه هاي مبتني بر دات نت از پروتکل SOAP ، بمنظور ارتباط با سرويس هاي وب XML استفاده مي نمايند( فرمت اوليه پيام ها ) . کتابخانه کلاس فريمورک دات نت ، ضمائم SOAP را بمنظور اجراء ، همراه با يک متد سرويس وب XML ، ارائه مي نمايد . namespace ، شامل کلاس هائي است که پروتکل هاي مورد نياز براي انتقال داده ها را فراهم مي نمايد .

    ارسال مدارک تائيد شده .در موارديکه يک سند XML ايمن شده باشد ،بدون ارسال مدارک لازم، امکان دستيابي و استفاده از آن وجود نخواهد داشت. کلاس XmlTextReader ،امکان ارسال مدارک را از طريق استفاده از کلاس CredentialCache موجود در System.Net فراهم مي نمايد

  5. #5
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    يک برنامه کامپيوتري ، از مجموعه اي دستورالعمل که نوع و نحوه انجام يک فعاليت را براي کامپيوتر مشخص مي نمايند ، تشکيل مي گردد. دستورالعمل هاي نوشته شده بعنوان نمونه ممکن است به کامپيوتر اعلام نمايند که تعدادي از اعداد را با يکديگر جمع و يا دو عدد را بايکديگر مقايسه و بر اساس نتيجه بدست آمده ، اتخاذ تصميم نمايد. دستورالعمل هاي نوشته شده ، صرفا" براي کامپيوتر قابل فهم و اجراء خواهند بود.کامپيوتر دستورالعمل هاي نوشته شده را اجراء و ماحصل آن رسيدن به اهدافي خواهد بود که بر اساس آن برنامه طراحي و پياده سازي شده است . دستورالعمل ها ، مي بايست با استفاده از يکي از زبانها ي برنامه نويسي نوشته شده ( کد ينگ ) و در ادامه در اختيار کامپيوتر قرار داده شوند. زبانهاي برنامه نويسي متعددي نظير : فرترن ، بيسيک ، کوبال ، پاسکال، ،C ، جاوا ، ويژوال بيسيک و ... وجود دارد.
    برنامه نويسي کامپيوتر ، مشابه آموزش گره زدن کفش به کودکان است . براي نيل به هدف فوق ، مي بايست تمامي مراحل لازم بصورت شفاف به کودکان آموزش داده شود . کودکان با دنبال نمودن دستورالعمل هاي ارائه شده ، قادر به گره زدن کفش خود خواهند بود ( روش انجام اين کار براي آنان مشخص شده و بر اساس آن ، امکان نيل به هدف مورد نظر توسط کودکان فراهم مي گردد ) . VB.NET ، زباني است که مي توا ن نحوه نيل به يک خواسته را بکمک آن بصورت شفاف ( نظير آموزش گره زدن کفش به کودکان ) مشخص و کامپيوتر با دنبال نمودن مراحل مشخص شده ، خواسته مورد نظر را محقق نمايد. با استفاده از VB.NET ، مي توان محصولاتي راايجاد که زمينه استفاده از آنان در محيط ويندوز و اينترنت ، وجود خواهد داشت . فراموش نکنيم در زمان فراگيري يک تکنولوژي در ابتدا مي بايست شيوه راه رفتن را بياموزيم و در ادامه اقدام به دويدن نمود .
    VB.NET يکي از زبان هاي حمايت شده در دات نت مي باشد . با استفاده از زبان فوق علاوه بر اينکه مي توان برنامه هاي مبتني بر ويندوز را پياده سازي نمود ، امکان استفاده از آن بعنوان زبان مورد نظر در زمان ايجاد برنامه هاي مبتني بر وب که از تکنولوژي ASP.NET استفاده مي نمايند ، نيز وجود خواهد داشت . با توجه به اهميت و جايگاه خاص اين زبان در دات نت ، مجموعه مقالاتي در رابطه با آموزش اصولي اين زبان آماده شده که بتدريج بر روي سايت قرار خواهند گرفت . در اولين مقاله از اين مجموعه به معرفي اوليه VB.NET خواهيم پرداخت . در ابتدا لازم است با ويژگي هاي منحصر بفرد برنامه هاي مبتني بر ويندوز در قياس با برنامه هاي مبتني بر DOS ، آشنا شده و پس از مروري مختصر به روند شکل گيري نسخه هاي متعدد ويژوال بيسيک ، با نحوه نصب آن نيز آشنا شويم .

    برنامه نويسي مبتني بر DOS در مقابل ويندوز
    برنامه نويسي مبتني بر ويندوز داراي تفاوت هاي عمده اي نسبت به برنامه نويسي سنتي در محيط DOS است.برنامه هاي DOS ، مسيري دقيق و مشخص را ازابتدا تا پايان دنبال مي نمايند . رويکرد فوق ، باعث بروز محدوديت هائي در رابطه با عملکرد برنامه ها از يکطرف و تحميل محدوديت هائي به کاربران در طي نمودن مسير مشخص شده ، مي گردد. از زاويه اي خاص مي توان عملکرد يک برنامه مبتني بر DOS را مشابه قدم زدن در يک راهرو ( سالن )، در نظر گرفت . بمنظور رسيدن به نقطه انتهائي سالن ، مي بايست طول سالن طي تا به انتهاي آن رسيد . در اين راستا از موانع متعدد موجود در مسير ، مي بايست عبور تا سرانجام به مقصد مورد نظر رسيد . در زمان پيمودن مسير ، صرفا" امکان بازنمودن درب هاي خاصي ، وجود خواهد داشت . ويندوز ، دنياي جديدي از برنامه نويسي مبتني بر "رويداد" را ايجاد نموده است . کليک نمودن موس ، تغيير اندازه پنجره ، تغيير محتويات يک Textbox ، نمونه هائي از يک "رويداد" مي باشند. کدهاي نوشته شده ، نحوه برخورد با يک رويداد را مشخص مي نمايد. براي رسيدن به انتهاي يک سالن کافي است بر روي "انتهاي سالن " ، کليک نمود و ديگر ضرورتي به پيمودن تمامي مسير تا رسيدن به انتهاي سالن نخواهد بود . درصورتيکه به انتهاي سالن رسيده باشيم و متوجه گرديم که اين مکان ، محلي نيست که انتظار آن را داشته ايم ، بسادگي مي توان مقصد جديدي را براي خود انتخاب ، بدون اينکه ضرورتي به برگشت در نقطه آغازين مسير وجود داشته باشد. برنامه نوشته شده عکس العمل هاي لازم در ارتباط با حرکت شما را بهمراه عمليات مربوطه بمنظور تکميل فعاليت ها ي مورد نظر انجام خواهد داد . با استفاده از VB.NET ، مي توان کدهاي لازم بمنظور ارائه عکس العمل لازم در زمان تحقق يک رويداد را نوشت .در اين راستا ، برنامه نويسان مي توانند کدهاي لازم در رابطه با رويدادهائي که امکان تحقق آنها وجود دارد را نوشته تا در زمان بروز رويداد مورد نظر ، عکس العمل لازم از طرف برنامه صورت پذيرد.در اين زمينه مي توان از نوشتن کدهاي ديگر بمنظور برخورد با رويدادهاي غيرضروري ، صرفنظر کرد. مثلا" ويندوز قادر به تشخيص رويداد"کليک " از "کليک مضاعف " است . اين بدان معني است که اگر مي خواهيد برنامه مورد نظر شما ،عکس العمل لازم در ارتباط با رويداد "کليک" را داشته باشد ، مي بايست صرفا" کد مربوط به رويداد " کليک"، نوشته گردد و الزامي به نوشتن کدهاي لازم بمنظور برخورد با رويداد "کليک مضاعف" ، وجود نخواهد داشت . در دنياي برنامه نويسي DOS ، کاربر عکس العمل لازم را نسبت به برنامه انجام مي دهد در صورتيکه در ويندوز ، برنامه ها عکس العمل لازم را با توجه به رفتار کاربران ، انجام خواهند داد .
    يکي ديگر از مزاياي مهم برنامه هاي ويندوز ، عدم وابستگي برنامه ها به يک سخت افزار خاص است . ويندوز تمهيدات لازم در خصوص ارتباط با سخت افزار را پيش بيني و برنامه نويسان نياز به آگاهي از نحوه عملکرد يک دستگاه سخت افزاري خاص بمنظور استفاده از آن ، نخواهند داشت . مثلا" برنامه نويسان ضرورتي به آگاهي از نحوه عملکرد هر نوع چاپگر ليزري، بمنظور ايجاد خروجي مورد نظر خود در برنامه ها ، نخواهند داشت. ويندوز، امکانات لازم در اين خصوص را از طريق ارائه روتين هاي عمومي که با درايورهاي مورد نظر مرتبط مي گردند ، فراهم مي نمايد. شايد همين موضوع دليل موفقيت ويندوز باشد .
    روتين هاي عمومي اصطلاحا" Windows (API ) Application Programming Interface ناميده مي شوند .

    تاريخچه ويژوال بيسيک
    قبل از معرفي ويژوال بيسيک در سال 1991 ، پياده کنندگان نرم افزار مجبور به تسلط و مهارت در زمينه استفاده از ++C بهمراه موارد پيچيده اي در اين خصوص بودند . بدين ترتيب ، صرفا" افراد خاص آموزش ديده، قادر به خلق نرم افزارهاي قدرتمند بمنظور اجراء در محيط ويندوز بودند. ويژوال بيسيک ، محدوديت فوق را تغيير و مي توان اين ادعا را داشت که امروزه خطوط زيادي از برنامه هاي نوشته شده با استفاده از ويژوال بيسيک کد شده است . ويژوال بيسيک ، ظاهر برنامه نويسي تحت ويندوز را با حذف عمليات اضافي براي نوشتن کدهاي لازم جهت طراحي بخش رابط کاربر (UI) ، تغيير داده است . در اين راستا ، زمانيکه بخش رابط کاربر ، ترسيم مي گردد ، برنامه نويس مي تواند کدهاي لازم بمنظور انجام عکس العمل مناسب در رابطه با رويداد ها را به آن اضافه نمايد . زمانيکه ماکروسافت نسخه شماره سه ويژوال بيسيک را ارائه نمود ، مجددا" دنياي برنامه نويسي با تغيير مهمي مواجه گرديد. در اين راستا امکانات مناسبي براي نوشتن برنامه هاي مبتني بر بانک هاي اطلاعاتي ، در اختيار برنامه نويسان قرار گرفت. ماکروسافت بدين منظور محصول جديدي با نام DAO)Data Access Objects) را ارائه نمود . برنامه نويسان با استفاده از DAO ، امکان انجام عمليات متفاوت در رابطه با داده ها را ، بدست آوردند . نسخه هاي شماره چهار و پنج ، قابليت هاي نسخه سه را افزايش و اين امکان را براي پياده کنندگان نرم افزار فراهم نمود تا برنامه هاي خود را جهت اجراء در محيط ويندوز 95 ، طراحي و پياده سازي نمايند . در اين زمينه ، برنامه نويسان قادر به نوشتن کدهائي گرديدند که امکان استفاده از آنان توسط ساير پياده کنندگان نرم افزار که از زباني ديگر استفاده مي کردند، فراهم گرديد. نسخه شماره شش ويژوال بيسيک ، روش جديدي بمنظور دستيابي به بانک هاي اطلاعاتي را ارائه نمود: ADO)ActiveX Data Objects ) . يکي از اهداف اوليه طراحي ADO ، امکان دستيابي به بانک هاي اطلاعاتي براي پياده کنندگان برنامه هاي مبتني بر وب است که از تکنولوژي ASP ، استفاده مي نمايند.
    همزمان با ارائه جديدترين نسخه ويژوال بيسيک که VB.NET ناميده مي شود ، بسياري از محدوديت هاي مرتبط با ويژوال بيسيک برطرف گرديد . در گذشته ويژوال بيسيک با انتفادات فراوان مواجه ( عدم وجود امکانات مناسب در مقايسه با جاوا و يا ++C ) و بسياري آن را نظير يک اسباب بازي در دنياي وسيع زبان هاي برنامه نويسي مي پنداشتند. VB.NET با غلبه بر مشکلات نسخه هاي پيشين ، توانسته است در مدت زمان کوتاهي ، بعنوان يک ابزار پياده سازي بسيار قدرتمند مطرح و گزينه اي مناسب براي برنامه نويسان در تمامي سطوح باشد .

    نصب VB.NET
    براي نصب VB.NET ، از دو رويکرد متفاوت مي توان استفاده کرد :

    نصب بهمراه ويژوال استوديو دات نت

    نصب نسخه استاندارد

    هر يک از گزينه هاي فوق ، امکان ايجاد برنامه هاي مبتني بر ويندوز را فراهم مي نمايند . مراحلي که در ادامه ذکر مي گردد ، نحوه نصب ويژوال استوديو را تشريح مي نمايد .

    مرحله اول : برنامه Setup.exe را از روي CD مربوطه فعال نمائيد.

    مرحله دوم : جعبه محاوره اي ، مراحل و اولويت هاي عمليات نصب را نشان خواهد داد. بمنظور صحت عملکرد VB.NET ، چندين Component نصب و يا بهنگام خواهند شد . اولين مرحله نصب، بهنگام سازي عناصر (Components) است . بر روي گزينه Windows Component Update ، کليک نمائيد.

    مرحله سوم : برنامه نصب در ادامه سيستم را بررسي تا نوع عناصري را که مي بايست بهنگام گردند، مشخص گردد. دامنه فرآيند بهنگام سازي به وضعيت ماشيني که بر روي آن ويژوال استوديو دات نت نصب مي گردد، بستگي خواهد داشت .

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

    مرحله پنجم : در اين مرحله با فشردن دکمه ! Install Now ، بهنگام سازي عناصر (Components) آغاز مي گردد . با اتمام هر يک از آيتم ها يک Check mark بمنزله اتمام مرحله مربوطه نشان داده مي شود . در مقابل عنصر جاري براي بهنگام سازي نيز يک فلش قرمز رنگ نسان داده مي شود.

    مرحله ششم : پس از بهنگام سازي عناصر ، مجددا" به صفحه اصلي Setup مراجعت و امکان نصب ويژوال استوديو دات نت فراهم مي گردد.( کليک نمودن برروي گزينه Visiual Studio.NET )
    نکته : در صورتيکه قصد داريد که از طريق ماشين فوق ، يک برنامه تحت وب پياده سازي نمائيد ، لازم است IIS و FrontPage Extensions قبلا" نصب شده باشد( بصورت پيش فرض در زمان نصب ويندوز 2000 نصب خواهد شد ) در صورتيکه ويژوال استوديو دات نت ، بر روي کامپيوتري نصب مي گردد که داراي سيستم عامل ويندوز 2000 نسخه Professional است ، با يک پيام خطاء مواجه خواهيم شد( عدم وجود عناصر لازم ) با فشردن دکمه Install Component ، عمليات نصب IIS و Frontpage Extensions انجام خواهد شد . در صورتيکه دکمه Continue ، انتخاب گردد ، در آينده نمي توانيد برنامه هاي تحت وب را بصورت محلي بر روي کامپيوتر خود پياده سازي نمائيد .

    مرحله هفتم : نظير اکثر برنامه هاي نصب ، ليستي از گزينه هاي موجود ( شامل عناصر ) براي نصب در اختيار شما قرار مي گيرد . شما مي توانيد ، صرفا" آنچيزي را که بدان نياز داريد ، نصب نمائيد . مثلا" در صورتيکه ظرفيت درايو شما پايين و يا ضرورتي به استفاده از ويژوال ++C دات نت را نداريد ، مي توان در اين مرحله از نصب آن صرفنظر کرد. هر گزينه اي که در اين مرحله انتخاب نمي گردد ، مي توان در صورت ضرورت آن را در آينده نصب کرد. براي هر يک از امکاناتي که قرار است نصب گردند ، سه بخش اطلاعاتي متفاوت نمايش داده مي شود :
    بخش Feature Properties . فايل ها ي مورد نظر براي نصب و ميزان فضاي مورد نياز را نشان مي دهد .
    بخش Feature description . هر Feature چيست و چه عملياتي را انجام مي دهد .
    بخش Space Allocation ، وضعيت فضاي ذخيره سازي هارد را با توجه به گزينه هاي انتخاب شده ، نشان خواهد داد .
    نکته : زمانيکه ويژوال استوديو دات نت ، اجراء مي گردد مجموعه اي از اطلاعات بين ديسک و حافظه مبادله مي گردد . بنابراين لازم است به ميزان کافي ظرفيت آزاد بر روي هارد ديسک وجود داشته باشد ، در اين راستا نمي توان دقيقا" مشخص نمود که به چه ميزان فضاي آزاد نياز خواهد بود ولي حداقل يکصد مگابايت توصيه مي گردد .

    مرحله هشتم : ويژوال استوديو دات نت ، شامل مجموعه اي گسترده از فايل هاي مستندات ( راهنما ) است . در اين مرحله مي توان تنظيمات لازم در خصوص اجراي مستندات از طريق CD و يا دايرکتوري نصب شده بر روي هارد را انجام داد . در اين زمينه مي توان يک مسير بر روي هارد را مشخص تا مستندات نصب و يا گزينه Run From Source را انتخاب تا بر اساس آن مستندات همچنان بر روي CD باقي بمانند .

    مرحله نهم : پس از انتخاب عناصر مورد نظر براي نصب ، با فشردن دکمه ! Install Now ، عمليات نصب آغاز مي گردد . مدت زمان نصب ، بستگي به موارد انتخابي و نوع سيستم دارد . مثلا" نصب تمام ويژوال استوديو دات نت بهمراه تمامي مستندات بر روي يک ماشين با دارا بودن 256 مگابايت حافظه اصلي، سرعت 650 مگاهرتز و دوازده گيگابايـت هارد ديسک ، حدود يک ساعت طول خواهد کشيد .

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

    پس از انجام مراحل فوق ، ويزوال استوديو دات نت بر روي سيستم نصب و محيط لازم براي نوشتن برنامه هاي VB.NET فراهم شده است .

  6. #6
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    دات نت ، پلات فرم جديد ماکروسافت بمنظور تحقق نظريه : " نرم افزار بعنوان سرويس " ، است . دات نت يک محيط پياده سازي است که بکمک آن مي توان اقدام به ايجاد و بکارگيري نرم افزار و نسل جديدي از عناصر موسوم به " سرويس هاي وب " ، نمود. تمامي محصولات اصلي ماکروسافت از ويژوال استوديو دات نت تا ويندوز و نهايتا" مجموعه آفيس ، متاثر از پلات فرم فوق شده و خواهند شد . دات نت به پياده کنندگان اين امکان را خواهد داد که با زبان برنامه نويسي مورد علاقه خود ، اقدام به پياده سازي برنامه ها نمايند. ويژگي ( پتانسيل ) فوق از طريق معرفي CLR)Common Language Runtime )، ميسر شده است . در اين مقاله قصد داريم به بررسي دات نت پرداخته و پتانسيل ها و قابليت هاي آن را تشريح نمائيم .
    در جولاي سال 2000 ، شرکت ماکروسافت در کنفرانس پياده کنندگان حرفه اي (PDC ) ، در شهر Orlando ايالت کاليفرنيا ، جزئيات بيشتري از نسل جديد پلات فرم خود ( دات نت ) بمنظور پياده سازي برنامه هاي ويندوز و اينترنت را در اختيار علاقه مندان خصوصا" پياده کنندگان نرم افزار قرار داد . محوريت ابتکار فوق ، بر فريمورک دات نت استواربوده ونشاندهنده يک پلات فرم مناسب بهمراه کتابخانه هاي کلاس گسترده اي است که پتانسيل هاي متعددي را در اختيار قرار مي دهد. يکي از نکات قابل توجه در پلات فرم فوق،استفاده از XML و SOAP بمنظور ارتباط بين نرم افزارها ي موجود در اينترنت ( نرم افزارهاي مبتني بر وب ) ، است . در اين راستا مجموعه اي از محصولات مبتني بر سرويس دهنده با نام سرويس دهندگان Enterprise دات نت، مطرح که بمنزله نسل جديدي از محصولات Backoffice ماکروسافت ، مي باشند.
    فريمورک دات نت ، مدلي کاملا" جديد بمنظور برنامه نويسي و بکارگيري نرم افزار را ارائه نموده است. "بيل گيتس "، در سخنراني خود در PDC ، بدين نکته اشاره داشتند که در هر پنج تا شش سال ما شاهد يک تحول عمده در رابطه با پياده سازي نرم افزار بوده ايم . آخرين موارد در اين زمينه به سوئيچ از DOS به ويندوز در سال 1990 و گذر از پياده سازي شانزده بيتي به سي و دو بيتي ( از ويندوز widows 3.x به ويندوز NT/95 ) در اواسط دهه 90 ميلادي ، است.
    با معرفي دات نت در PDC ، پياده کنندگان آن را معماري مناسبي براي پياده سازي نرم افزار ( برنامه هاي Desktop و برنامه هاي وب ) مشاهده نمودند . ويژوال استوديو دات نت ، اولين محصول مبتني بر دات نت ماکروسافت بوده که در سال 2001 در اختيار علاقه مندان قرار گرفت . اهميـت دات نت براي ماکروسافت تا بدين حد است که در سال 2001 ، بيش از هشتاد درصد منابع بخش تحقيق و توسعه اين شرکت در رابطه با آن صرف شده است . زبان سي شارپ ، که زباني جديد براي برنامه نويسي در دات نت است بعنوان زبان استاندارد براي پياده سازي داخلي در شرکت ماکروسافت پذيرفته شده است .

    يک پلات فرم مناسب براي آينده
    دات نت، اولين پلات فرم طراحي شده از صدر تا ذيل با در نظر گرفتن واقعيتي با نام اينترنت است . دات نت از يک ماشين مجازي خاص در اين زمينه استفاده مي نمايد . ماهيت ماشين مجازي فوق ، بگونه اي است که از API ويندوز فاصله و در اين رابطه از يک کتابخانه کلاس استفاده مي نمايد که مي توان به جرات اين ادعا را داشت که تاکنون نظير آن ، ايجاد نشده است . امکان استفاده از زبانهاي متعدد برنامه نويسي ، وجود خواهد داشت .معماري دات نت ، امکان ارتباط بين زبانها را بسادگي فراهم خواهد کرد .دات نت ، يک رويکرد جديد در رابطه با پياده سازي نر م افزار را مطرح نموده است . نگاه به دات نت ، عمدتا" بصورت سيستم هاي توزيع شده است. با استفاده از XML ،امکان اجراي توابع بر روي کامپيوترهاي متفاوت يک سازمان ويا جهان فراهم و جلوه اي زيبا در همياري بمنظور اجراي يک برنامه ، به نمايش در خواهد آمد. از اين منظر ، سيستم ها از سرويس دهندگان تا سيستم هاي بدون کابل ، قادر به اشتراک پلات فرم عمومي يکساني خواهند بود . با استفاده از نسخه هاي دات نت که براي تمام آنها در دسترس خواهد بود، امکان ارتباط مناسب آنها با يکديگر فراهم خواهد شد. دات نت ، بمنظور طراحي و پياده سازي برنامه هاي سنتي نيز راهکارها و امکانات مناسبي را ارائه تا از اين طريق امکان پياده سازي و بکارگيري اين نوع از نرم افزارها ، بسادگي انجام گيرد . برخي از تکنولوژي ها ي ارائه شده در دات نت نظير فرم هاي ويندوز، تلاشي در اين راستا است .

    ايده هاي اوليه
    از اواخر سال 1995 ، شرکت ماکروسافت توجهي خاص و قابل توجه نسبت به اينترنت نمود . هدف ماکروسافت در اين زمينه پيوند بين پلات فرم ويندوز و اينترنت بود. ماحصل تلاش ماکروسافت در اين زمينه ارائه مدل برنامه نويسي Windiws DNA ، بود . در اين راستا مجموعه اي از ابزارها و تکنولوژي هاي مبتني بر اينترنت ، طراحي و ارائه گرديد . ASP ، از اولين تلا ش هاي ماکروسافت در اين زمينه است . عملا" در اين زمينه ( مطرح شدن اسکريپت ها ي مفسري ) يک برگشت به عقب نسبت به پياده سازي ساختيافته و شي گراء را شاهد بوده ايم . طراحي ، اشکال زدائي و نگهداري چنين کدهاي غير ساختيافته اي مسائل خاص خود را خواهد داشت . ساير زبانها نظير ويژوال بيسيک بصورت موفقيت آميز در رابطه با برنامه نويسي بر روي اينترنت و پلات فرم ماکروسافت استفاده مي گرديد ولي اغلب از آن بمنظور ايجاد عناصري که از طريق ASP ، بخدمت گرفته مي شدند ، استفاده مي گرديد .در اين رابطه تلاش هاي اندکي نيز در جهت ايجاد يک اينترفيس مبتني بر وب بر روي زبان هاي سنتي نظير webclasses در VB ، نيز انجام شد ولي هيچکدام از تلاش هاي فوق ، در سطح گسترده اي مورد استقبال و پذيرش قرار نگرفت . ماکروسافت در صدد حل آشفتگي هاي همراه برنامه هاي ويندوز DNA بود . ويندوز DNA ، تصويري مناسب از يک معماري Three-Tire و مبتني بر COM بود که تکنولوژي ASP در لايه Presentation ، اشياء Bussiness در لايه مياني و يک engine بانک اطلاعاتي رابطه اي در لايه Data ، قرار مي گرفت . مفاهيم همراه DNA ،کامل و بي عيب بود اما در زمان استفاده عملياتي چالش هاي خاص خود را بدنبال داشت . پياده سازي عناصر COM ، مستلزم يک سطح مناسب از دانش و مهارت است و مي بايست زمان زيادي در اين رابطه صرف گردد . بکارگيري نرم افزارهاي DNA ، نيز مسائل خاص خود را داشت ( مسائل مربوط به ورژن ، نصب عناصر و عناصري که با آن مرتبط مي باشند ) .
    بموازات تلاش ساير شرکت ها در رابطه با ارائه راهکارهائي خاص بمنظور پياده سازي برنامه ها ي وب ، شرکت ماکروسافت در صدد برطرف نمودن محدوديت هاي مدل برنامه نويسي DNA گرديد.

    تولد دات نت
    در اوايل سال 1998 ، گروهي از پياده کنندگان نرم افزار در ماکروسافت ، کار خود را بر روي نسخه اي جديد از IIS ( نسخه چهار) ، به اتمام رساندند که داراي چندين ويژگي جديد در رابطه با ASP بود .در اين راستا ، قابليت هاي جديدي بمنظور پياده سازي برنامه هاي وب در ويندوز NT ، فراهم گرديد.گروه پياده کننده داراي ايده هاي متعددي براي اعمال اصلاحات جديد بودند . گروه فوق ، کار خود را بر روي يک معماري جديد براي پياده سازي ايده هاي مطرح شده ، آغاز نمود . اين پروژه ، NGWS)Netx Generation Window Services) ، ناميده گرديد. پس از ارائه ويژوال استوديو شش ، در اواخر سال 1998 ، تلاش براي ايجاد نسخه اي جديد از ويژوال استوديو در دستور NGWS ، قرار گرفت . گروه COM+/MTS در مدل پيشنهادي خود از يک Runtime ، عمومي براي تمامي زبانهاي استفاده شده در ويژوال استوديو ، استفاده نمودند . تلاش افراد درگير در پروژه NGWS ادامه تا در نهايـت ، شرکت ماکروسافت در کنفرانس پياده کنندگان حرفه اي (PDC) ، دات نت را معرفي نمود.

    مروري بر فريمورک دات نت
    فريمورک دات نت ، تمامي لايه هاي پياده سازي نرم افزار را از سطح سيستم عامل به بالا ، تحت پوشش قرار مي دهد. فريمورک فوق، سطحي مناسب وقدرتمند از ارتباط و همبستگي بين تکنولوژي Presentation ، تکنولوژي هاي Component و تکنولوژي هاي Data را ارائه مي نمايد ( نظير اين ارتباط و همبستگي تاکنون در پلات فرم ويندوز مشاهده نشده است) . معماري فوق ، امکان طراحي و پياده سازي برنامه هاي مبتني بر اينترنت و محيط هاي Desktop ، را بسادگي فراهم و نيازهاي هر گروه از نرم افزارهاي فوق را بخوبي جواب مي دهد . اجزاي اصلي فريمورک دات نت در شکل زير نشان داده شده است .


    فريمورک دات نت از لايه پائين با عملياتي نظير مديريت حافظه آغاز و بسمت بالا بمنظور ارائه اينترفيس هاي برنامه ها و کاربران ، دنبال مي شود . در بين لايه ها ، لايه هاي سيستمي ديگر که هر يک داراي پتانسيل هاي خاصي براي پياده کنندگان مي باشند ، وجود دارد.
    CLR) Common Language Runtime) ، بمنزله قلب فريمورک دات نت محسوب و engine لازم بمنظور ارائه قابليت هاي کليدي را ارائه مي نمايد . CLR ، شامل عناصر اساسي ديگري نظير: (Common Type System (CTS ، است. علاوه بر مديريت حافظه ، CLR ، مراجعات به اشياء و عمليات Garbage Collection را نيز انجام مي دهد .
    در لايه مياني ، ما شاهد نسل جديدي از سرويس هاي استاندارد نظير ADO.NET و XML مي باشيم .سرويس هاي فوق ، تحت کنترل فريمورک بوده و امکان بکارگيري آنها بصورت جامع و استاندارد در بين تمامي زبانها ، فراهم مي گردد . بالاترين لايه ، شامل اينترفيس هاي برنامه و کاربر است . فرم هاي ويندوز ، روشي جديد بمنظور ايجاد برنامه هاي Desktop مبتني بر win32 مي باشند. فرم هاي وب ، يک رابط کاربر مناسب براي برنامه هاي مبتني بر وب را ارائه مي نمايند. سرويس هاي وب ، مکانيزمي بمنظور ارتباط برنامه ها از طريق اينترنت و با استفاده از SOAP ، مي باشد. سرويس هاي وب ، قابل مقايسه با عناصر COM و DCOM بوده با اين تفاوت مهم که در اين راستا از تکنولوژي هاي متعدد اينترنت ، استفاده مي گردد. فرم هاي وب و سرويس هاي وب ، اينترفيس اينترنت دات نت را تشکيل و پياد ه سازي آنان از طريق بخش ديگري در فريمورک دات نت که ASP.NET ، ناميده مي شود ، محقق مي گردد .
    پتانسيل هاي موجود در هر لايه فريمورک دات نت ، توسط هر يک از زبان هاي سازگار با دات نت ، قابل استفاده خواهد بود. در پايان لازم است به اين نکته اشاره گردد که در اين رابطه ( فريمورک دات نت ) مي توان از اينترفيس هاي مبتني بر متن ( کاراکتري) نيز استفاده کرد . اين نوع برنامه ها اصطلاحا" Console Application ، ناميده مي شوند .

    دربخش دوم اين مقاله به بررسي CLR و جايگاه آن در فريمورک دات نت، خواهيم پرداخت .

  7. #7
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    در بخش اول اين مقاله به بررسي و معرفي فريمورک دانت پرداخته گرديد. در اين بخش به بررسي CLR ، يکي از مهمترين عناصر موجود در فريمورک دات نت خواهيم پرداخت .
    درابتدا لازم است تعريفي از CLR را داشته باشيم. CLR ، محيطي است که برنامه هاي دات نت بکمک آن اجراء مي گردند . برنامه هاي نوشته شده توسط هر يک از زبان هاي سازگار با دات نت پس از ترجمه توسط کمپايلر مربوطه به MSIL)Microsoft Intermediate language) ، ترجمه مي گردند ( به زبان فوق ، IL نيز گفته مي شود ) .


    CLR از نماي نزديک
    Common Type System(CTS) ( Data Types ,...)

    Intermediate Language(IL) to native code compilers Execution Support (traditional runtime functions) Security
    Garbage Collection,Stack Walk ,Code manager
    Class Loader and memory layout

    هدف از طراحي CLR ، نيل به اهداف زير بوده است :

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

    برخورد اتوماتيک با مقولاتي همچون مديريت حافظه
    در دات نت ، مجموعه اي گسترده از زيرساخت هاي برنامه نويسي بصورت اتوماتيک توسط CLR ارائه مي گردد. مديريت حافظه ، نمونه اي مناسب در اين زمينه است . پياده کنندگان نرم افزار بکمک ويژوال بيسيک در زماني نه چندان دور همواره نگران مسئله مديريت حافظه بودند . پياده کنندگان ويژوال بيسيک اينک و با استفاده از CLR ، نگراني خاصي در ارتباط با مديريت حافظه ، نخواهند داشت. ( CLR ، داراي توابع متنوعي در رابطه با مديريت حافظه است ) . برنامه نويساني که از ++C در محيط دات نت استفاده مي نمايند ، ديگر ضرورتي به استفاده از CoCreateInstance براي نمونه سازي يک کلاس و يا استفاده از malloc بمنظور اختصاص حافظه ، نخواهند بود. با بکارگيري امکانات CLR در ارتباط با مديريت حافظه مي توان با بخدمت گرفتن يک عبارت ساده خواسته خود را مشخص و CLR در زمان مورد نظر ، عمليات اختصاص حافظه را انجام خواهد داد . عملياتي ديگر، نظير جمع آوري اطلاعات زائد از حافظه ، از ديگر فرآيندهاي ضروري و مهمي است که توسط CLR و در ارتباط با مديريت حافظه انجام مي گردد.

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

    متا ديتا
    متاديتا ، " داده ئي در رابطه با داده " بوده و مي توان آن را بعنوان سطحي عميق تر از داده نسبت به خصلت هاي سطح سيستم در نظر گرفت. متاديتا ، عنصر اساسي براي تحقق اصل برنامه نويسي ساده ( تسهيل در امر برنامه نويسي ) مورد حمايت CLR است. متاديتا توسط يک کمپايلر توليد و بصورت اتوماتيک در يک فايل EXE و يا DLL ذخيره مي گردد.فرمت آن بصورت باينري است ولي فريمورک يک API بمنظور صدور متاديتا به / از يک XML Schema و يا يک کتابخانه نوع COM ارائه مي دهد . از Schema XML ، مي توان در بازيابي ورژن و ساير اطلاعات مرتبط با يک عنصر ترجمه شده ، استفاده کرد. اطلاعات ارائه شده توسط متاديتا ، مجموعه گسترده اي را شامل مي شود :

    تشريح يک واحد بکارگيري ( اسمبلي ناميده مي شود ) : نام ، ورژن ، فرهنگ ( که مي تواند اطلاعاتي نظير زبان پيش فرض کاربر را مشخص نمايد) ، يک کليد عمومي براي بررسي، نوع هاي صادر شده توسط اسمبلي ، وابستگي ها به ساير اسمبلي ها ، مجوزهاي امنيتي مورد نياز بمنظور اجراء
    کلاس هاي پايه و اينرفيس هاي استفاده شده توسط اسمبلي
    خصلت هاي سفارشي : تعريف شده توسط کاربرو يا کمپايلر
    برخي از موارد فوق نظير خصلت هاي سفارشي ، انتخابي مي باشند .کمپايلرها يکي از کاربران و استفاده کنندگان متا ديتا مي باشند . مثلا" يک کمپايلر مي تواند يک ماژول توليد شده نوسط يک کمپايلر متفاوت ديگر را بررسي و از متا ديتا بمنظور استفاده و درج ( Import ) ، نوع هاي cross-language استفاده نمايند. کمپايلرها مي توانند متاد يتا هائي را در ارتباط با ماژول هاي ترجمه شده خود نيز توليد نمايند.
    متا ديتا يکي از روش هائي است که CLR را قادر به حمايت از مجموعه گشترده اي از ابزارها مي نمايد . برخي از استفاده کنندگان متاديتا ، عبارتند از :

    طراحان
    ديباگرها
    توليد کنندگان پروکسي
    ساير کمپايلرها
    مرورگرها نوع / شي

    حمايت و ارتباط چندين زبان
    مهمترين ويژگي و بنوعي هدف CLR ، حمايت از زبانهاي برنامه نويسي متفاوت و امکان ارتباط ( همبستگي ) بين زبانهاي مختلف است .با بهره گيري از يک سيتم نوع ( CTS ) و با اعمال تمامي کنترل هاي لازم در ارتباط با فراخواني اينترفيس، CLR امکان ارتباط مناسب و شفاف بين زبان هاي برنامه نويسي را فراهم مي نمايد.
    درگذشته يک زبان برنامه نويسي بکمک عناصر COM ، قادر به نمونه سازي و استفاده از عناصر نوشته شده توسط يک زبان برنامه نويسي ديگر بود .در برخي موارد، فراخواني اينگونه عناصر، مشکلاتي را از بعد مديريتي ايجاد مي کرد. بهرحال Subclassing يک عنصر نوشته شده به زبان ديگر، مستلزم وجود پتانسيلي خاص بودکه صرفا" پياده کنندگان حرفه اي قادر به انجام و استفاده از آن بودند. در فريمورک دات نت، مي توان از يک زبان بمنظور subclass ( کلاس زيرمجموعه که از يک کلاس پايه ديگر مشتق شده باشد ) يک کلاس نوشته شده به زبان ديگر استفاده نمود. کلاس نوشته شده به زبان ويژوال بيسيک مي تواند از يک کلاس پايه نوشته شده با ++C و يا کوبال به ارث رسيده مي باشد. برنامه VB ، ضرورتي به آگاهي از زبان استفاده شده بمنظور نوشته کلاس پايه ، نخواهد داشت .بدين ترتيب ، زمينه بهره گيري و استفاده از تمامي مزاياي توارث در پياده سازي فراهم و در صورتيکه کلاس پايه تغيير نمايد ، ضرورتي به ترجمه مجدد کلاس زير مجموعه نخواهد بود.چگونه اين کار انجام مي شود ؟ اطلاعات ارائه شده توسط متاديتا ، اين امر را امکان پذير مي سازند . در اين رابطه هيچگونه IDL(Interface Definition Language در دات نت وجود نداشته و يک اينترفيس کلاس صرفنظر از زبان استفاده شده براي توليد آن ، همواره يکسان مشاهده خواهد شد. CLR از متايتا بمنظور مديريت تمامي اينترفيس ها و فراخواني بين زبان ها استفاده مي نمايد توارث بين زبانها ، زمينه تحقق يک معماري باز را فراهم خواهد کرد .

    سيتم نوع
    يکي از اجزاء مهم CLR که حضور و عملکرد آن تاثير مستقيمي بر حمايت از چندين زبان را بدنبال دارد ، CTS)Common Type System) است .در سيستم فوق ، تمامي نوع هاي داده (حتي نوع هائي نظير : Long و Boolean )، بعنوان شي پياده سازي شده اند . بدين ترتيب هماهنگي بين نوع ها در يک سطح پائين تر و بمنظور سازگاري بيشتر بين زبان ها ، صورت مي پذيرد. با توجه به اينکه تمامي زبانها از نوع هاي کتابخانه اي يکساني استفاده مي نمايند ، فراخواني يک زبان از زبان ديگر نيازمند تبديل نوع، نخواهد بود.
    يکي از مهمترين ويژگي هاي دات نت ، namespace است .namespace ، امکان سازماندهي کتابخانه هاي شي را بصورت سلسله مراتبي فراهم مي نمايد.بدين ترتيب امکان مراجعه به آنان بسادگي و به دور از هرگونه نا همخواني و يا تضادي ، محقق خواهد شد .بمنظور استفاده از امکانات موجود در کتابخانه هاي کلاس ، مي بايست در ابتدا براي آنان يک مرجع ايجاد نمود.مرجع فوق ،امکان استفاده از نوع ها را بصورت خلاصه در کد نوشته شده ،فراهم خواهد آورد. در ويژوال بيسيک با استفاده از يک عبارت Import ، اين امر محقق خواهد شد. يک ماژول فرم ويژوال بيسيک در دات نت مي تواند بصورت زير ، آغاز گردد :


    Imports System.WinForms
    Imports MyDebug = System.Diagnostics.Debug



    در اولين خط ، امکان استفاده از تمامي خصلت ها و متدها ي استاندارد مرتبط با فرم ها ، براي کد موجود درماژول ، فراهم خواهد شد.دومين خط ، از يک نام مستعار استفاده مي نمايد. يک شاخه از ساختار سلسله مراتب شي ( يک مسير مشخص بر روي ساختار درختي ) ، مي تواند شناسه خاص خود را داشته باشد که صرفا" در ماژول مربوط معتبر خواهد بود. در ماژول مورد نظر مي توان بمنظور مراجعه به شي System.Diagnostics.Debug ، از MyDebug استفاده گردد.

    بکارگيري و اجراء
    واحد بکارگيري همانگونه که قبلا" اشاره گرديد ، يک اسمبلي است. اسمبلي، مي تواند شامل يک و يا چندين فايل بهمراه ويژگي خود تشريحي باشد . اسمبلي شامل يک "مانيفست" بوده که تمامي متاديتا صادر شده توسط اسمبلي و ساير اطلاعات لازم بمنظور بمنظور بکارگيري و اجراء را مشخص مي نمايد. يک اسمبلي داراي ورژن خاص خود است . اسمبلي ها با يکديگر ترکيب و برنامه ها را بوجود مي آورند . يک برنامه داراي يک و يا چندين اسمبلي بوده و ممکن است شامل فايل ها و داده هاي اختصاصي برنامه نيز باشد .
    کد مبداء ماژول ها ي يک اسمبلي به IL)Intermediate Language) ترجمه مي گردند . در ادامه و قبل از اجراء ، IL به کد مختص يک ماشين ترحمه خواهد شد. ترجمه با استفاده از روش هاي متفاوت و بدفعات ممکن است محقق گردد. معمولا" ترجمه به کد مختص يک ماشين ، صرفا" يک مرتبه انجام و نتيجه براي استفاده در موارد بعد و آتي Cache خواهد شد. CLR ، شامل مجموعه اي از کمپايلرهاي JIT)Just-In-Time) است که مسئوليت تبديل IL به کد مختص يک ماشين را برعهده دارند . بدين ترتيب ، مي توان برنامه ها ي نوشته شده در دات نت را بصورت کد IL ترجمه شده ، توزيع نمود. در ادامه با استفاده ازکمپايلرهاي دات نت بر روي يک ماشين خاص ، کدهاي بهينه و مختص آن ماشين توليد خواهد شد.در سناريوي فوق امکان استفاده از اسکريپت ها بهمراه ماژول نيز وجود دارد ، درچنين مواردي آنان قبل از استفاده ترجمه خواهند شد. در سيستم هاي موجود ، اسکريپت هاي تفسير شده ( در ASP و يا Windows Scriptiong Host ) ، هرگز ترجمه نمي شوند. در دات نت ، اينچنين اسکريپت هائي در اولين مرتبه دستيابي به IL تبديل و در ادامه به کد مختص ماشين مربوطه تبديل و براي استفاده مجدد cache ، خواهند شد.
    در بخش سوم اين مقاله ، به بررسي کلاس هاي پايه فريمورک دات نت خواهيم پرداخت

  8. #8
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    امکانات و پتانسيل هاي گسترده ارائه شده توسط دات نت ، امکان طراحي و بکارگيري برنامه هاي پيچيده توزيع شده را براحتي ميسر مي سازد. پياده سازي برنامه هاي اينچنين بزرگ و پيچيده در گذشته داراي چالش هاي خاص خود بود و در برخي موارد غير ممکن بنظر مي آمد. در اين مقاله قصد داريم به بررسي يک برنامه نمونه در اين رابطه پرداخته و پس از آناليز نيازها و خواسته هاي موجود ، نحوه استفاده از دات نت را بمنظور تامين خواسته هاي فوق ، بررسي نموده تا از اين رهگذر پلات فرم دات بهمراه پتانسيل هاي آن بهتر شناخته گردد.
    بدين منظور يک سيستم نمونه وام در يک بانک فرضي را بررسي مي نمائيم . سيستم فوق، داراي کاربران متعددي است که از طريق دستگاههاي متفاوت ( کامپيوتر ، موبايل ، PDA ) قصد استفاده از خدمات مربوطه را دارند.سيستم فوق ، همچنين داراي همکاران تجاري ( Business Partner) متفاوتي است که بنوعي با آنان تعامل اطلاعاتي دارد . برخي از همکاران تجاري از اطلاعات موجود در سيستم بعنوان مصرف کننده استفاده ( دائره پيگيري وام هاي ديرکرد) و برخي ديگر اطلاعاتي را توليد ( آژانس هاي ارائه دهنده خدمات بررسي کارت هاي اعتباري ) و در اختيار سيستم وام ، قرار خواهند داد.اين سيستم همچنين داراي کاربران متعدد با نگرش هاي متفاوت نسبت به سيستم مي باشد. کارکنان بانک ، مديريت سيستم و کاربران عادي ، جملگي بعنوان کاربران سيستم فوق محسوب شده و هر يک با توجه به نگرش و خواسته خود از سيستم استفاده خواهند کرد.
    شکل زير ، دياگرام کلي سيستم فوق را بهمراه برنامه ها و کاربران مربوطه ، نشان مي دهد . همانگونه که در شکل مشاهده مي شود تمامي عمليات سيستم را مي توان به هشت گروه متفاوت تقسيم و در ادامه اقدام به ارائه راهکار مربوطه در اين زمينه نمود .


    يک سيستم نمونه وام بانکي که از دات نت استفاده مي نمايد

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

    1 - بانک اطلاعاتي وام گيرندگان. بانک اطلاعاتي، شامل داده ( اطلاعات ) مورد نظر در ارتباط با هريک از دريافت کنندگان وام است . بانک اطلاعاتي فوق ، همچنين شامل view هائي از بانک اطلاعاتي مشتريان بانک است . بانک اطلاعاتي وام گيرندگان ، مي تواند با استفاده از امکانات سرويس دهنده SQL ، اينفورميکس ، DB2 و يا ساير سيستم هاي مديريت بانک اطلاعاتي، ايجاد و داده ها را در خود ذخيره نمايد.

    2 - لايه داده ( Data Tier ) . لايه فوق، بعنوان لايه داده در معماري سرويس گيرنده - سرويس دهنده N-tier ، مطرح مي باشد . لايه داده از ADO.NET بمنظور ارتباط با سيستم بانک اطلاعاتي استفاده و يک رويکرد شي گراء از داده ها را براي لايه logic ، ارائه مي نمايد. بعبارت ديگر رکوردهاي بانک اطلاعاتي و فيلدها به اشيائي تبديل ( map ) تا اطلاعات مربوط به مشتريان ، وام ها ، پرداخت ها و ساير موارد مرتبط توسط آنان ارائه گردد. در اين راستا ، مي توان از #C و يا ويژوال بيسيک دات نت و يا ساير زبان هاي سازگار با دات نت در لايه داده ، استفاده کرد.

    3 - لايه منطق ( Logic Tier ) . لايه منطق، شامل قوانيني است که سياست هاي راهبردي نرم افزار را تعيين مي نمايد ( Business rules ) .لايه فوق، بمنزله قلب سيستم خواهد بود. مجددا" مي توانيم براي کدينگ برنامه ها و عناصر مورد نياز در لايه فوق از زبان #C و يا ويژوال بيسيک دات نت و يا ساير زبانهاي سازگار با دات نت استفاده نمائيم. انتخاب زبان برنامه نويسي در اين لايه ، ارتباطي با زبان استفاده شده در لايه داده ، نخواهد داشت . سازگاري بين زبانها نظير توارث بين زبانها ، بدين معني است که ما مي توانيم مناسبترين زبان را بمنظور پاسخگوئي به نيازها و عمليات مورد نظر خود، انتخاب نمائيم . CLR بهمراه پتانسيل هاي موجود ، امکان انتخاب زبان هاي مورد نظر را با توجه به نوع خواسته ها فراهم و در صورت نياز نيز مي توان از ترکيب آنها با يکديگر استفاده کرد.

    4 - برنامه محلي و اختصاصي دپارتمان وام . ممکن است ، قصد داشته باشيم که يک برنامه با کاربرد داخلي را بعنوان يک برنامه مبتني بر ويندوز سنتي ايجاد نمائيم . با استفاده از معماري سرويس گيرنده - سرويس دهنده ، اين نوع برنامه ها قادر به ارتباط مستقيم با لايه منطق از طريق شبکه داخلي محلي بانک، خواهند بود. برنامه فوق ، مشابه مدل فرم هاي ويژوال بيسيک است . با استفاده از ويژوال استوديو دات نت ، مي توان بسادگي اقدام به طراحي فرم هاي مورد نياز نمود. فرم هاي ويندوز، مي توانند شامل تمامي کنترل هاي شناخته شده ويندوز باشند . ( Check box,Labels,List boxes ) . فرم هاي ويندوز، همچنين شامل يک نسخه جديد از Windows Graphic Device Interface)GDI) مي باشند .

    5 - برنامه هاي کنسول مديريت . شايد بانک از اينفورميکس بر روي يونيکس بعنوان سيستم مديريت بانک اطلاعاتي استفاده مي نمايد. در صورتيکه چنين وضعيتي باشد ، ما ممکن است مديراني را داشته باشيم که تمايل به اجراي برنامه هاي دات نت از طريق ايستگاههاي يونيکس را داشته باشند . کلاس Systrm.Console ، قادر به ايجاد برنامه ها ي خط دستوري است که امکان فعال شدن و انجام عمليات مربوطه ،از طريق يک اتصال telnet محقق مي گردد. مثلا" با استفاده از ويژوال بيسيک دات نت و يا #C مي توان يک برنامه کنسول را طراحي و پياده سازي نمود.بدين ترتيب ، مديريت قادر خواهد بود تا با استفاده از يک پلات فرم ديگر ، از تاريخ سررسيد وام ها ، آگاهي يابد.

    6 - سرويس هاي وب Business partner ( توليد). درمدل فوق ، داراي يک همکار تجاري هستيم : مجموعه اي از آژانس ها ي استخدام شده توسط بانک بمنظور پيگيري وام هائي که داراي تاخير در پرداخت مي باشند. در گذشته! ، مي بايست يک برنامه batch خاص را طراحي را تا بصورت روزانه حساب هاي هاي تاخير دار را استخراج و آنها را بر روي يک فايل ذخيره و براي هر يک از آژانس ها ارسال نمايد. با استفاده از دات نت ، مي توان عمليات فوق را بصورت يک سرويس وب طراحي تا حساب هاي تاخير دار را براي سرويس گيرندگان راه دور، نمايش دهد. اين بدان معني است که آژانس هاي مربوطه قادر به بکارگيري برنامه هاي اختصاصي خود بمنظور ارتباط با سيستم وام و استخراج حساب هاي هاي تاخير دار در صورت ضرورت مي باشند. اگر بپذيريم که وب سايت ها، خدماتي را در اختيار انسان قرار مي دهند ، مي توان گفت که سرويس هاي وب توسط ساير برنامه ها استفاده و خدمات خود را در اختيار آنان قرار خواهند داد ( تحول در ارتباط بين برنامه ها و فصل جديدي براي گفتگوي برنامه ها ). رويکرد فوق ، باعث ظهور نسل جديدي از برنامه ها ( مدل فدرال) خواهد شد . در اين راستا ، سرويس هاي وب مستقلي ايجاد که با استفاده از آنان و يا ترکيبي از آنان مي توان ، برنامه هاي قدرتمندي را ايجاد کرد.

    7 - سرويس هاي وب Bussiness partner ( مصرف ) . سيستم وام ممکن است همچنين خود بعنوان يک مصرف کننده سرويس هاي وب توليدي توسط ساير همکاران تجاري باشد . درمدل فوق ، يک آژانس کارت اعتباري ، سرويس وبي را ايجاد تا مشتريان تجاري را قادر به بررسي کارت اعتباري در برنامه وام نمايد.مسئوليت بررسي صحت کارت اعتباري و ساير عمليات مرتبط با آن ، توسط آژانس مربوطه انجام و ماحصل آن براي برنامه متقاضي ارسال خواهد گرديد ( طراحي و پياده سازي يک سرويس وب که مسئوليت فوق را برعهده خواهد گرفت ). دات نت، ابزارها ي لازم بمنظور ايجاد يک سرويس گيرنده بمنظور استفاده از سرويس و ارتباط آن با سيستم وام را فراهم مي نمايد .

    8 - برنامه هاي مشتريان مبتني بر وب . با استفاده از ASP.NET ، مي توان بسرعت يک برنامه وام مبتني بر وب را ايجاد تا امکان دسترسي سريع به سيستم وام را براي مشتريان مربوطه ، فراهم نمايد. همچنين با استفاده از Mobile Internet Toolkit ، مي توان اينترفيسي خاص را طراحي تا بر اساس آن ، مشتريان مربوطه قادر به استفاده از سيستم وام بکمک دستگاههاي handheld نظير تلفن هاي مبتني بر وب و يا PDA باشند.

    همانگونه که در برنامه فوق ، مشاهده مي گردد برخي از عناصر ( نسبت به مدل هاي قبل از دات نت ) از مدل فوق ،حذف شده است . مثلا" در مدل ارائه شده خبري از عناصر COM و يا CORBA وجود ندارد در مقابل ما از توان سرويس دهنده وب بمنظور استفاده از زيرساخت سرويس هاي وب XML مربوط به ASP.NET استفاده تا امکانات سيستم وام را در اختيار سرويس گيرندگان از راه دور قرار دهيم. براي حمايت دستگاههائي موبايل و ساير دستگاههاي مشابه از سرويس دهندگان اضافي و يا فيلترهاي خاصي استفاده نشده است . در اين راستا از کنترل هاي ارائه شده Mobile Internet Toolkit بمنظور تشخييص و حمايت چندين دستگاه استفاده شده است . همچنين در اين رابطه امکانات خاصي دررابطه با حمايت مرورگرهاي متفاوت اضافه نشده است . اين بدان معني است که برنامه هاي ASP.NET قادر به استفاده از مزاياي ويژگي هاي توسعه يافته مرورگرهاي سطح بالا بوده و بر اساس آن ، مرورگرها مي توانند بصورت اتوماتيک HTML لازم براي مرورگرهاي قديمي را با توجه به پتانسيل هاي مربوطه خود ، ارائه نمايند.
    همانگونه که مشاهده گرديد ، طراحي و پياده سازي يک سيستم پيچيده و مدرن که شامل چندين اينترفيس و چندين نوع کاربر است ( کارکنان بانک ، همکاران تجاري که از پلات فرم هاي خاص خود استفاده مي نمايند ، مشتريان بانک که از دستگاههاي متعددي بمنظور ارتباط با سيستم استفاده مي نمايند ) ، با استفاده از پلات فرم دات نت ، بخوبي ميسر خواهد شد.دات نت در رابطه با طراحي و پياده سازي اين نوع سيستم ها ، تمامي امکانات مورد نياز را در اختيار طراحان و پياده کنندگان سيستم هاي نرم افزاري قرار خواهد داد .

  9. #9
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    آنچه تاکنون گفته شده است :
    بخش اول : معرفي فريمورک دانت
    بخش دوم : بررسي CLR
    در اين بخش به بررسي کلاس هاي پايه فريمورک دات نت و اينترفيس هاي کاربر و برنامه خواهيم پرداخت .




    در بخش دوم اين مقاله با اولين لايه فريمورک دات نت ( CLR ) آشنا شديم . در ادامه بر روي لايه بعد متمرکز و به بررسي امکانات ارائه شده خواهيم پرداخت . اين لايه ، کلاس هاي پايه فريمورک دات نت ناميده شده و مسئوليت ارائه سرويس ها و مدل هاي اشياء براي داده ، عمليات ورودي و خروجي ، امنيت و موارد ديگر را بر عهده دارد . نسل بعدي ADO که ADO.NET ناميده مي شود در اين لايه قرار دارد . در لايه فوق ، امکانات و پتانسيل هاي لازم بمنظور انجام عمليات مرتبط با XML نيز ارائه شده است . پارسر و تبديل کننده XSL ، نمونه هائي از پتانسيل هاي موجود در اين لايه بمنظور کار با اسناد XML مي باشند.
    اکثر امکانات و پتانسيل هاي مورد نيازي که ضرورت فراگيري آنان براي هر برنامه نويس در رابطه با يک زبان برنامه نويسي وجود دارد ، به کلاس هاي فريمورک منتقل شده است . مثلا" تابع Sqr که در ويژوال بيسيک از آن بمنظور محاسبه جذر يک عدد استفاده مي گردد در دات نت وجود نداشته و اين تابع با متد System.Math.Sqrt موجود در کلاس هاي فريمورک جايگزين شده است .
    تمامي زبانهاي سازگار با دات نت قادر به استفاده از کلاس هاي فريمورک مي باشند . بدين ترتيب در يک زبان برنامه نويسي نظير کوبال و يا ويژوال بيسيک دات نت ، براي محاسبه جذر يک عدد از تابع مشابهي استفاده خواهد شد .رويکرد فوق ، پيوستگي و ارتباط مناسب بين زبان هاي متفاوت برنامه نويسي را بدنبال خواهد داشت . تمامي زبان ها به روشي مشابه از متد System.Math.Sqrt استفاده و به کد يکساني دستيابي خواهند داشت ( اختلاف موجود صرفا" به گرامر استفاده از متد مورد نظر در زبان مربوطه ، برمي گردد) .
    اکثر قابليت ها و پتانسيل موجود در کلاس هاي پايه فريمورک در يک namespace عظيم و با نام System ارائه شده است . namespace فوق ، شامل چندين namespace زيرمجموعه ديگر است . مثلا" Microsoft.VisualBasic شامل Runtime ويژوال بيسيک و کلاس ها ئي بمنظور ترجمه و توليد کد مورد نظر براي برنامه هاي نوشته شده به زبان ويژوال بيسيک دات نت است .

    اينترفيس هاي کاربر و برنامه
    در بالاترين لايه ، دات نت روش هائي را بمنظور تفسير و مديريت رابط هاي کاربر ( فرم هاي ويندوز ، فرم هاي وب ، برنامه هاي کنسول ) و اينترفيس مورد نيازعناصر از راه دور ( سرويس هاي وب ) ، ارائه مي نمايد .

    اينترفيس کاربر : فرم هاي ويندوز
    فرم هاي ويندوز ( به آنان WinForms هم مي گويند ) روشي پيشرفته ويکپارچه بمنظور ايجاد برنامه هاي Desktop استناندارد سي و دو بيتي را ارائه مي نمايند. تمامي زبان ها ي سازگار با دات نت ، قادر به استفاده از پتانسيل فرم هاي ويندوز در مقابل روش هائي که در حال حاضر استفاده مي نمايند ، خواهند بود ( MFC و يا Win32API در ++C و يا موتور VB Forms در ويژوال بيسيک ) . فرم هاي ويندوز ، مجموعه اي قدرتمند و يکپارجه از کنترل ها و توابع عملياتي را براي تمامي زبانها ارائه و بعنوان بخشي از کلاس هاي فريمورک در namespace با نام System.WinForms ،ارائه شده است . بدين ترتيب امکان استفاده از فرم هاي ويندوز توسط تمامي زبان هاي مبتني بر دات نت وجود خواهد داشت . با استفاده از Drag & Drop Designer فرم هاي ويندوز ، مي توان اقدام به ايجاد ويژوال فرم هاي مورد نظر بمنظور استفاده در هر زبان برنامه نويسي نمود.
    در ويندوز DNA ، تعداد زيادي از برنامه هاي داخلي سازمان ها و موسسات مبتني بر مرورگر بودند ، چراکه هزينه نصب و نگهداري يک برنامه سرويس گيرنده بر روي صدها و يا هزاران ايستگاه بسيار قابل تامل بود . فرم هاي ويندوز و فريمورک دات نت داراي پتانسيل لازم بمنظور بهينه سازي اقتصادي ( مقرون بصرفه ) نصب و نگهداري يک برنامه سرويس گيرنده با توانائي اجراء بر روي هزاران ايستگاه مي باشند . يک برنامه مبتني بر فرم هاي ويندوز ،نسبت به برنامه سرويس گيرنده اي که با ويژوال بيسيک نوشته شده باشد ، بسادگي نصب و بهنگام خواهد شد . با استفاده از دستوري نظير : XCOPY ، امکان بکارگيري برنامه بسادگي و بسرعت فراهم و در اين رابطه نيازي به ريجستر نمودن عناصري وجود نخواهد داشت . نصب و بهنگام سازي اينچنين برنامه هائي بمراتب ساده تر از وضعيتي است که قبلا" شاهد آن بوده ايم.بدين ترتيب طراحي و پياده سازي برنامه هائي که نيازمند يک رابط کاربر قدرتمند براي تعداد زيادي از کاربران مي باشند ، با استفاده از دات نت بخوبي محقق و عملي خواهد شد ( نسبت به ويندوز DNA ) .

    اينترفيس کاربر : فرم هاي وب
    فرم هاي وب ،يکي از بخش هاي مهم ASP.NET محسوب و رابط کاربر مبتني بر يک مرورگر وب را ارائه مي نمايند. فرم هاي وب، نسل جديدي از پياده سازي اينترفيس هاي مبتني بر وب را ارائه مي نمايند ( جداسازي لي اوت از منطق). فرم هاي وب شامل دو بخش مجزاء مي باشند : يک تمپليت که شامل اطلاعات لي اوت مبتني بر HTML براي تمامي عناصر رابط کاربر و بخش دوم که شامل تمامي منطق لازم براي ارتباط با رابط کاربر است . بدين ترتيب ، اطلاعات مربوط به کنترل ها بهمراه خصايص و لي اوت مربوطه در يک بخش و کدهاي مربوطه در بخش ديگر مستقر خواهند شد. کدها ي نوشته شده رفتار کنترل ها را نظارت و در صورت بروز يک رويداد ، روتين هاي مربوطه فعال خواهند شد .
    فرم هاي وب داراي امکانات متعددي مي باشند . کنترل هاي موجود بر روي فرم هاي وب بر روي سرويس دهنده اجراء ولي حضور آنان بمنزله سرويس گيرنده خواهد بود .بدين ترتيب امکانات و شرايط مطلوبي براي ايجاد اينترفيس هاي قدرتمند فراهم که شباهت زيادي به اينترفيس هاي Win32 استفاده شده در برنامه هاي Desktop خواهند داشت . اينترفيس هاي وب ، داراي هوشمندي لازم بمنظور ارتباط با مرورگرهاي متفاوت مي باشند ( بهينه سازي خروجي براي هر يک از مرورگرهاي خاص ) . امکان استفاده از فرم هاي وب ، براي تمامي زبان ها ي سازگار با دات نت وجود خواهد داشت . اين بدان معني است که مي توان کدهاي لازم ( منطق ) براي ارتباط با بخش ويژوال يک فرم را با استفاده از هر يک از زبان هاي حمايت شده نوشت . بدين ترتيب ، امکان طراحي و پياده سازي اينترفيس هاي وب انعطاف پذيري فراهم که مي توان از آنان در مجموعه گسترده اي از زبان ها ، استفاده بعمل آورد.

    کنترل هاي سرويس دهنده
    پياده کنندگان ويژوال بيسيک با ايده کنترل ها ، آشنائي لازم را دارند . کنترل ها ، عناصر رابط کاربر با قابليت استفاده مجددي مي باشند که بمنظور ايجاد يک فرم از آنان استفاده مي گردد . اين نوع کنترل ها در فرم هاي وب ، کنترل هاي سمت سرويس دهنده ، ناميده مي شود. کنترل هاي سمت سرويس دهنده، در حقيقت يک پروکسي را بر روي سرويس دهنده براي يک عنصر رابط کاربر که بر روي يک فرم وب و يا يک صفحه ASP است ، ايجاد مي نمايند. کنترل هاي سمت سرويس دهنده ، با منطق محلي در صورت ضرورت ارتباط و در ادامه هوشمندانه رابط کاربر خود را بعنوان HTML تفسير و در صورت ضرورت خروجي مورد نظر را براي هر صفحه حاوي کنترل هاي سمت سرويس دهنده ، ارسال مي نمايند .
    کنترل ها ي سمت سرويس دهنده ، بمنظور تفسير HTML براي طيف متنوعي از مرورگرها و هماهنگي با رويدادها ئي که بر روي صفحه درحال اجراء بر روي سرويس گيرنده محقق مي گردند ، مي بايست از هوشمندي مناسبي برخوردار باشد . با استفاده از مجموعه اي گسترده از کنترل هاي ارائه شده بهمراه ويژوال استوديو دات نت ، مي توان اينترفيس هاي مبتني بر وبي را ايجاد که شباهت بسيار زيادي به اينترفيس هاي Win32 خواهند داشت . يکي از مهمترين ويژگي هاي مهم و در عين حال جالب کنترل هاي سمت سرويس دهنده ، توانائي آنان در ارتباط با مديريت وضعيت خود است . بمنظور مديريت وضعيت يک صفحه ، ضرورتي به نوشتن کدهاي خاصي در ASP.NET وجود نخواهد داشت .

    اينترفيس کاربر : برنامه هاي کنسول
    با اينکه مايکروسافت بر نوشتن برنامه هاي مبتني بر کاراکتر ، تاکيد خاصي نمي نمايد ،ولي بهمراه فريمورک دات نت امکانات لازم بمنظور طراحي و پياده سازي اين نوع برنامه ها پيش بيني شده است (اينترفيس لازم) . همانند فرم هاي وب و ويندوز ، اينترفيس کنسول براي تمامي زبانهاي سازگار با دات نت در دسترس خواهد بود. نوشتن برنامه هاي مبتني بر کاراکتر در نسخه قبلي ويژوال بيسيک ، داراي چالش هاي خاص خود بود . با استفاده از پتانسيل هاي ارائه شده همراه دات نت مي توان برنامه هاي کنسول واقعي را پياده سازي نمود.

    اينترفيس هاي برنامه : سرويس هاي وب
    طراحي و پياده سازي برنامه هاي کامپيوتر، بسمت نسل جديدي از برنامه هاي غير متمرکز در حال تغيير و تحول است . در ساليان گذشته ، اغلب برنامه ها سرويس هاي اساسي و مورد نياز خود را از طريق سيستم عامل مربوطه ، دريافت مي کردند ( نظير سيستم فايل ) . در ادامه ، قابليت استفاده از توان و پتانسيل موجود در هر نرم افزار براي ساير نرم افزارها فراهم و بدين ترتيب امکان بهره گيري و ارتباط با عناصر نوشته شده فراهم گرديد . تمامي تلاش هاي انجام شده بر اين واقعيت استوار بود که با بکارگيري پتانسيل ها ي ارائه شده ، توان عملياتي يک نرم افزار افزايش يابد و کمتر به نياز فوق بصورت بنيادي و ريشه اي نگاه مي گرديد . در اين رابطه مي بايست فونداسيون لازم بمنظور ارتباط بين برنامه ها فراهم و تمامي برنامه ها با اتکاء به زيرساخت ايجاد شده از خدمات يکديگر در جهت ارائه بهينه خدمات خود استفاده نمايند. سرويس هاي وب ، رويکرد جديدي در اين زمينه مي باشند. در سرويس وب ، قابليت هاي نرم افزار بعنوان يک سرويس عرضه مي شود . با استفاده از سرويس هاي وب ، طراحان و پياده کنندگان مي توانند با ترکيب و بکارگيري منابع محلي و از راه دور ، يک سيستم توزيعي و پيوسته را ايجاد نمايند .
    در دات نت ، سرويس هاي وب بعنوان بخشي از ASP.NET پياده سازي مي گردند( ASP.NET ، مسئول ارائه تمامي اينترفيس هاي وب است ) . بدين ترتيب امکان گفتگوي برنامه ها با يکديگر و از طريق وب فراهم مي گردد(استفاده از SOAP ) . پياده کنندگان در اين رابطه با انجام عملياتي مختصر ، قادر به استفاده از سرويس هاي وب خواهند بود.آنان مي بايست به عضوي از سرويس وب شده و فريمورک دات نت ساير مسائل موجود را دنبال و مديريت خواهد کرد . رويکرد فوق، تغيير معماري برنامه هاي وب را بدنبال داشته و امکان ارتباط سرويس هاي وب با يکديگر و بر روي بستر وب ، ميسر خواهد شد . سرويس هاي وب داراي نقش و جايگاهي بسيار مهم در توليد نسل جديدي از برنامه هاي مبتني بر وب مي باشند . سرويس هاي وب، گزينه اي مناسب براي جايگزين شدن با برخي از پکيج هاي نرم افزاري خواهند بود.

    اهميت XML در دات نت
    اکثر پتانسيل هاي ارائه شده بمنظور ارتباط بين هر يک از اجزاء دات نت ، با استفاده از XML ميسر مي گردد . مثلا" سرويس هاي وب ، کاملا" وابسته به XML براي ارتباط با اشياء از راه دور مي باشند. ADO.NET ارتباط تنگاتنگي با XML براي ارائه راه دور داده دارد .زمانيکه ADO.NET يک Dataset را ايجاد مي نمايد ( يک ساختار بمراتب پيچيده تر نسبت به نسخه قبلي Recordset ) ، داده بمنظور پردازش آتي توسط ADO.NET به XML تبديل و پس از اعمال تغييرات بر روي XML ، مجددا" داده بمنظور ذخيره سازي براي مکان مورد نظر ارسال خواهد شد .با استفاده از XML در حوزه هاي متفاوتي از دات نت ، امکان ارتباط و يکپارچگي بين عناصر مورد نظر چندين برابر مي گردد. XML در دات نت داراي جايگاهي خاص و مهم بوده و مي توان آن را بمنزله پتانسيلي در نظر گرفت که تمامي عناصر مورد نظر را بيکديگر مرتبط مي نمايد

  10. #10
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    در طي سلسله مقالاتي مي خواهيم با C# بيشتر آشنا شويم. فرض اين مقالات بر اين است كه آشنايي مختصري با زبانهاي برنامه نويسي داريد ، هر چند كار ما تقريبا از صفر شروع مي شود و هدف آن سادگي هر چه بيشتر است.

    C# از دو زبان C++ و Java متولد شده است! حاوي بسياري از جنبه هاي C++ مي باشد اما ويژگي هاي شيء گرايي خودش را از جاوا به ارث برده است.

    C# اگرچه از C++ گرفته شده است اما يك زبان "خالص" شيء گرا (Object oriented) مي باشد. هر دو زبان ياد شده جزو زبانهاي هيبريد محسوب مي شوند اما طراحان C# اين مورد را به اندازه ي C++ مهم تلقي نكرده اند. يك زبان هيبريد اجازه ي برنامه نويسي با شيوه هاي مختلف را ميسر مي كند. دليل اينكه C++ هيبريد است ، اين است كه قرار بوده تا با زبان C سازگار باشد و همين امر سبب گرديده تا بعضي از جنبه هاي C++ بسيار پيچيده شوند.

    زبان سي شارپ فرض اش بر اين است كه شما مي خواهيد تنها برنامه نويسي شيء گرا انجام دهيد و همانند C++ مخلوطي از برنامه نويسي رويه ايي (Procedural) و شيء گرا را نمي خواهيد به پايان برسانيد. بنابراين بايد طرز فكر خودتان را با دنياي شيء گرايي تطبيق دهيد. در ادامه خواهيد ديد كه در سي شارپ هر چيزي شيء است حتي يك برنامه ي سي شارپ.

    برنامه ي اول :

    Visual studio.net را اجرا كنيد و سپس در صفحه ي ظاهر شده New Project را برگزينيد. حالا از گزينه ي Visual C# projects قسمت Console applications را انتخاب نماييد. نامي دلخواه همانند ex01 را وارد نموده و سپس Ok نماييد. كد زير به صورت خودكار براي شما توليد خواهد شد:



    using System;

    namespace ex01
    {
    ///
    /// Summary description for Class1.
    ///
    class Class1
    {
    ///
    /// The main entry point for the application.
    ///
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: Add code to start application here
    //
    }
    }
    }


    اگر يك سري از مفاهيم آنرا متوجه نمي شويد اصلا مهم نيست! در مقالات آتي تمام اين موارد مفصل توضيح داده خواهند شد.
    متد استاندارد Main در اينجا قسمتي است كه عمليات اصلي برنامه در حالت Console ( شبيه به برنامه هاي تحت داس اما 32 بيتي ) در آن انجام مي شود.
    بدون متد Main برنامه هاي سي شارپ قادر به اجرا نخواهند بود. نوع آن در اينجا void تعريف شده است يعني اين متد خروجي ندارد. حتي اگر برنامه هاي استاندارد ويندوز را هم بخواهيد با C# بنويسيد بازهم متد Main حضور خواهد داشت ، هر چند به صورت خودكار ويژوال استوديو آنرا توليد مي كند.

    طريقه ي نوشتن توضيحات (Comments) در سي شارپ همانند C++ مي باشد يعني :



    /* any comments */


    ويا


    // any comments


    و تنها برنامه نويس براي نوشتن توضيحاتي در مورد كدهاي خود از آنها استفاده مي كند و در خروجي برنامه ظاهر نمي شوند.

    فعلا براي پايان قسمت اول از شيء Console و متد WriteLine آن براي نمايش يك جمله ي ساده استفاده مي كنيم. راجع به متدها ، متغيرها و غيره در آينده بيشتر صحبت مي كنيم.
    در آخر برنامه ي ما چيزي شبيه به عبارت زير مي باشد:



    using System;

    namespace ex01
    {
    class Class1
    {
    [STAThread]
    static void Main(string[] args)
    {
    Console.WriteLine("Hello C#!");
    }
    }
    }


    دكمه ي F5 را فشار دهيد تا برنامه اجرا شود.

    تعريف متغيرها در سي شارپ:

    سي شارپ عناصري را كه بكار مي گيرد همانند اعداد و كاراكترها ، به صورت نوع ها (Types) طبقه بندي مي كند. اين انواع شامل موارد زير مي شوند :
    نوع هاي پايه ايي از پيش تعريف شده مانند اعداد و غيره.
    نوع هاي تعريف شده توسط كاربر كه شامل STRUCT ها و ENUM ها مي شوند.

    نحوه ي تعريف متغيرها از نوع هاي پايه ايي از پيش تعريف شده :
    همانطور كه مي دانيد از متغيرها براي نگهداري اطلاعات استفاده مي شود. در سي شارپ ابتدا نوع متغير و سپس نام متغير و در آخر يك سمي كولون بكار برده مي شود. براي مثال :


    int a;


    كه در اينجا متغير a بعنوان يك متغير حاوي اعداد صحيح تعريف شده است.
    نكته ي مهمي كه در اينجا حائز اهميت است ، مقدار دهي اوليه ي متغيرها مي باشد. در غير اينصورت كامپايلر سي شارپ برنامه را بايك خطا متوقف مي كند. دليل اين امر هم اين است كه از استفاده از متغيرهاي بدون مقدار در طول برنامه جلوگيري شود تا ميزان خطاهاي در حين اجرا كاهش يابد.

    نوع هاي داده اي پايه ي زير در در سي شارپ به صورت پيش فرض مهيا هستند:

    object : نوعي است نامحدود كه مي تواند تمام انواع ديگر را نيز شامل شود. مثال :


    object = null;


    string : رشته ؛ در اينجا يك رشته توالي كاراكترهاي يونيكد مي باشد. مثال :


    string s= "hello";


    sbyte : نوع داده ايي صحيح 8 بيتي علامت دار.
    byte : نوع داده ايي صحيح 8 بيتي بدون علامت. مثال :


    sbyte val = 12;


    short : نوع داده ايي صحيح 16 بيتي علامت دار.
    ushort : نوع داده ايي صحيح 16 بيتي بدون علامت. مثال :


    short val = 12;


    int : نوع داده ايي صحيح 32 بيتي علامت دار.
    unit : نوع داده ايي صحيح 32 بيتي بدون علامت. مثال :


    int val = 12;


    long : نوع داده ايي صحيح 64 بيتي علامت دار.
    ulong : نوع داده ايي صحيح 64 بيتي بدون علامت. مثال :


    Long val1 = 12; long val2 = 34L;


    كلا در اينجا u به معناي unsigned است.

    float : نوع اعشاري با single precision .
    double : نوع اعشاري با double precision . مثال :


    float val = 1.23f;


    bool : نوع داده ايي Boolean كه مي تواند true و يا false باشد. مثال :


    Bool val = true;


    char : كاراكتر، دراينجا char يك كاراكتر يونيكد است.


    char val = 'h';


    به نحوه ي تعريف كاراكتر ها و همچنين رشته ها در سي شارپ دقت كنيد.

    decimal : نوع داده ايي دسيمال با 28 رقم معني دار.


    decimal val = 1.23M;


    يك نكته :

    - بهتر است هنگام تعريف يك متغير ، نامي با مسما براي آن انتخاب شود تا در هنگام كار خواندن كد ساده تر گردد. همچنين رسم شده است كه نوع متغير را به صورت خلاصه به نام متغير اضافه مي كنند. براي مثال بجاي FirstName بهتر است بنويسيم strFirstName . به اين نوع نگارش Hungarian notation مي گويند.
    - تمام نوع هاي پيش فرض تعريف شده در سي شارپ شيء هستند. در آينده بيشتر در اين مورد صحبت خواهيم كرد.

    مثال اين قسمت :

    يك برنامه ي console جديد در را VS.NET باز كنيد. نام آنرا در ابتدا ex02 انتخاب نماييد. در اينجا مي خواهيم دو متغير رشته ايي و صحيح را تعريف و سپس در خروجي نمايش دهيم.

    كد نهايي به صورت زير مي باشد:


    using System;

    namespace ex02
    {
    ///
    /// Summary description for Class1.
    ///
    class Class1
    {
    ///
    /// The main entry point for the application.
    ///
    [STAThread]
    static void Main(string[] args)
    {
    int intVar1 = 0;

    int intVar2;
    intVar2=1;

    int intV3=15 , intV4 = 12;

    string strText1 = "abcd";

    Console.WriteLine(
    "The value for variables are : \n intVar1="+intVar1 +
    "\n intVar2="+ intVar2 +
    "\n intV3=" + intV3 +
    "\n intV4=" + intV4 +
    "\n strText1=" + strText1);

    Console.WriteLine("\n\n Press any key to terminate");
    Console.ReadLine(); // pause screen!

    }
    }
    }


    نكاتي در مورد كد فوق:

    - بك اسلش ان ، در زبانهاي مشتق شده از سي به معناي new line مي باشد.
    - در كد فوق نحوه ي تعريف چند متغير در يك خط و حالتهاي مقدار دهي مختلف را ملاحظه مي كنيد.
    - از متد ReadLine براي نگه داشتن خروجي و مشاهده ي آن در اينجا استفاده كرديم.
    - عادت كنيد به صورت دندانه دار كد بنويسيد. اينكار خوانايي كد را صد برابر مي كند. در اينجا كدهاي داخل متد main ، كاملا چند دندانه از آكولادهاي باز و بسته كردن آن جلو تر هستند.
    - در كد بالا در متد WriteLine اعداد و رشته ها با هم جمع شده اند! اين مورد بدليل وجود overload هاي زياد اين تابع و ... ميسر گشته است. اصلا به آن دل نبنديد! چون در آينده كامپايلر سي شارپ اگر چنين اعمالي را در جاهاي ديگري مرتكب شويد به شدت با شما برخورد خواهد كرد!! براي جمع كردن اعداد با رشته ها حتما بايد عدد به رشته تبديل گردد و بعد ... . در اين مورد در مقالات بعدي بحث خواهد گرديد.

    در مورد كلاسها و using و namespace و غيره در آينده بيشتر صحبت خواهيم كرد.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •