سیستم دانلود و آپلود کتاب UML بخش چهل و سوم
نیاز به مدل جدید ASP
بدیهی بود ماکروسافت به تغییر اصولی برای رساندن ASP به سطح ایده آل برنامه نویسی قدرتمند و صنعتی نیاز داشت . صفحات فعال وب مبتنی بر اصول COM است . فن آوری COM و ActiveX بخش مهمی از قدرت ASP را فراهم میکنند ولی محدودیتهایی نیز برای آن خواهند داشت . ماکروسافت باید تلاش زیادی در جهت بررسی COM و یافتن روشهای بهبود آن انجام میداد و این تغییرات می بایست بر روی ASP نیز تاثیر بگذارند .در همان زمان ماکروسافت در یافت که زمینه کاری برنامه نویسان تغییر یافته است و بر اساس استانداردهای جدید که هر لحظه عرضه میشوند به ویژه در نرم افزارهای توزیع یافته و اشتراک اطلاعات همچون (SOAP)Simple Object Access Protocol و XML_RPC، که در آنها از XML استفاده گردیده تجدید میشود .
خدمات وب متداول شد ، جاوا در همه جا حضور داشت و XML محبوبیت زیادی در میان برنامه نویسان پیدا کرده بود. نسخه جدیدی از ASP برای رفع این نیازها کفایت نمیکرد . اگر تغییرات فقط به قصد شکست دادن حریفان نبود و میتوانستند در مقابل سختیها مقاومت کنند ولی باید فن آوری دور از دسترسی را در اختیار میگرفتند.
windows DNA و ASP که بر پایه فن آوریهای Win۳۲ API و COM ابتدای دهه ۱۹۹۰ بودند، نمیتوانستند معماری فنی و منطقی برای نرم افزارهای توزیع یافته جدید فراهم نمایند در حالی که شرکت SUN با استفاده از (J۲EE) Java ۲ Enterprise Edition مجموعه ای از فن آوریهایی را در اختیار داشت که برنامه نویسان میتوانستند با دنبال نمودن آنها پروژه های کوچک را همراه با Standard Edition آغاز نموده و آن را برای Enterprise Java Beans کاملأتغییر اندازه دهند.
در دنیای امروز ، تنها رقابت برای مرورگرهای مختلف دیده نمیشود ، بلکه رقابت در بخشهایی چون کانالهای توزیع ، روشهای اجرا در کامپیوترها و تلفنهای موبایل ، تلوزیون دیجیتال محاوره ای ، لوازم خانگی هوشمند، منازلی مجهز به شبکه های دیجیتال و شاید برای تبدیل صفحات وب به نرم افزارها وخدمات وب یکبار مصرف نیز وجود دارد.
لوگوی .net
بدون تردید ،در حالی که ماکروسافت در حال بررسی پیرامون فن آوری های مخصوص خود میباشد ، باید رقابت را نیزمورد تجزیه تحلیل قرار دهد . همان طور که ماکروسافت چارچوب کاری .NET را عرضه نمود ، زبان جدیدی را نیز برای قرن بیست و یکم به نام C# ارائه کرد و .NRT بر تمام انتقادات غلبه کرد و روشی کاملأ جدید برای برسی نرم افزارها و وب فراهم ساخت و برای هر چیز موجود شامل ویژوال بیسیک و ، یژوال C++ و صفحات فعال سرور جای گزین قرار داده اند.
تاریخچه ASP
در دسامبر ۱۹۹۵ ، ماکروسافت با انجام تحولی کامل بیان نمود که تمامی تیم تولیدی محصولات خود را برای در برگرفتن انترنیت در ابزارهای خود بکار خواهد گرفت .تا آن زمان آنها از بازار انترنت صرف نظر کرده بودند و در این رقابت کاملأ عقب افتاده بودند.
فوریه ۱۹۹۶ ، ماکروسافت سرور اطلاعاتی انترنت را برای بارگذاری رایگان عموم منتشر کرد.سخنگوی ماکروسافت ادعا کرد این که این سرور ۴ برار سرور Netscape Netsiteا کارایی دار و شامل IDC ISAPI نیز می باشد. با گسترش windows NT۴ نسخه بعد IIS نیز همراه با آن گسترش یافت.
اکتبر ۱۹۹۶ ، ماکروسافت نسخه بتای IIS۳ را را برای ارتقا IIS ۲ در اختیار قرار داد تغییر اصلی در این نسخه پشتیبانی از صفحات فعال سرور بود که این پروژه را “Denali” نامیده بود. ماکروسافت ادعا کرد بر بازار Netscape ۲.۱ غلبه خواهد کرد.
آگوست ۱۹۹۷ ، ماکروسافت ASP ۲ را به همراه IIS ۲ منتشر کرد . IIS در خود کنسول مدیریت ماکروسافت(MMC) را برای مدیریت ساده سرور داشت و سرور SMTP به عنوان برنامه همراه در نظر گرفته شده بود. SMTP قبلأ قسمتی از بسته Commercial محسوب میشد. ÷÷ٍ وASP در این مرحله بطور کامل با Microsoft Transaction Server یکپارچه شده و این در واقع بمنزله برداشتن قدمی به سوی تهیه برنامه ای بود که انتخابی معتبر برای راه اندازی شبکه های بزرگ محسوب میشد.
۱۹۹۸ تا ۲۰۰۰ ماکروسافت انتشار نسخه های بالاتر موتورهای زبان اسکریپت نویسی (Language Scripting Engines) را آغاز نمود و بدون نیاز به UPDATE کارایی ASP را بالا برد بطور مثال عبارات منظم را برای برنامه نویسان اسکریپتهای VB افزود.
لوگوی Visual Studio 2010
با انتشار ویندوز ۲۰۰۰ همراه با IIS ۵ نسخه ASP ۳ عرضه شد ASP ۳ امکان کنترل دوبار سمت سرور ،و پشتیبانی بهتر از خطاها و استفاده از ADO ۲.۵و XML و مخفی سازی کد کامپایل شده را در اختیار قرار میدهد . IIS ۵ این امکان را میدهد که پردازها را تحلیل کند و از خرابی و از کار افتادن سیستم جلو گیری کند. جولای سال ۲۰۰۰ .NET اطلاعیه عمومی خود را منتشر نمود و C# را نیز معرفی کرد که نشان دهند انعطاف و پایداری بود.
آشنائی با زبان C#
مايكروسافت در مصاف با جاوا، بدنبال ارائه يك زبان كامل بود كه سايه جاوا را در ميادين برنامه نويسی كم رنگ تر نمايد. شايد بهمين دليل باشد كه C# را ايجاد كرد. شباهت های بين دو زبان بسيار چشمگير است. مايكروسافت در رابطه با ميزان استفاده و گسترش زبان فوق بسيار خوشبين بوده و اميدوار است بسرعت زبان فوق گستردگی و مقبوليتی به مراتب بيشتر از جاوا را نزد پياده كنندگان نرم افزار پيدا كند. با توجه به نقش محوری اين زبان، از آن بعنوان مادر زبانهای برنامه نويسی در دات نت نام برده می شود. مورد فوق به تنهائی، می تواند دليل قانع كننده ای برای يادگيری اين زبان باشد، ولی دلايل متعدد ديگری نيز وجود دارد كه در ادامه به برخی از آنها اشاره می گردد.
مطرح شدن بعنوان يك استاندارد صنعتی
انجمن توليدكنندگان كامپيوتر اروپا (ECMA) زبان C# را در سوم اكتبر سال 2001 بعنوان يك استاندارد پذيرفته (ECMA-334) و بدنبال آن تلاش های وسيعی برای كسب گواهی ISO نيز انجام شده است. زبان فوق در ابتدا توسط شركت مايكروسافت و بعنوان بخشی از دات نت پياده سازی و بلافاصله پس از آن توسط شركت های اينتل، هيوليت پاكارد و مايكروسافت مشتركا، جهت استاندارسازی پيشنهاد گرديد.
زبان C# بگونه ای طراحی شده است كه نه تنها وابستگی به يك Platform خاص را ندارد، بلكه در اغلب موارد وابستگی RunTime نيز ندارد. كامپايلر C# می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در برخی از نسخه های اوليه كامپايلر زبان فوق كه توسط برخی از شركت های جانبی ارائه شده است، كدهای C# را به بايت كدهای جاوا كمپايل می كنند. يكی از چنين كامپايلرهائی را می توان در سايت Halcyonsoft.com مشاهده نمود. بنابراين كدهای C# براحتی قابليت حمل بر روی محيط های متفاوت را دارا خواهند بود.
مشخصات تعريف شده زبان C# با ساير استاندارهای تعريف شده ECMA نظير (ECMA-335) CLI (Common Language Infrastructure) بخوبی مطابقت می نمايند. CLI قلب و روح دات نت و CLR(Common Language Runtime) است. اولين نسخه از كامپايلر زبان C# كه از CLI استفاده می كند، NET Framwork. مايكروسافت است.
با توجه به موارد گفته شده، مشخص می گردد كه اين زبان بسرعت بسمت استاندارد شدن حركت و با تاييد استانداردهای مربوطه از طرف انجمن های معتبر بين المللی و حمايت فراگير شركت های معتبر كامپيوتری در دنيا مسير خود را بسمت جهانی شدن بخوبی طی می نمايد.
C# چيست ؟
طراحان زبان C# با تاكيد و الگوبرداری مناسب از مزايای زبانهائی نظير ++C، C و جاوا و ناديده گرفتن برخی از امكانات تامل برانگيز و كم استفاده شده در هر يك از زبانهای فوق، يك زبان برنامه نويسی مدرن شی گراء را طراحی كرده اند. در مواردی، برخی از ويژگی های استفاده نشده و درست درك نشده در هر يك از زبانهای گفته شده، حذف و يا با اعمال كنترل های لازم بر روی آنها، زمينه ايجاد يك زبان آسان و ايمن برای اغلب پياده كنندگان نرم افزار بوجود آمده است. مثلا C و ++C می توانند مستقيما با استفاده از اشاره گرها عمليات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق برای نوشتن برنامه های كامپيوتری با كارائی بالا ضرورت اساسی دارد. اما در صورتيكه عملياتی اينچنين بدرستی كنترل و هدايت نگردند، خود می تواند باعث بروز مسائل (Bugs) بيشماری گردد.
طراحان زبان C#، با درك اهميت موضوع فوق، اين ويژگی را كماكان در آن گنجانده ولی بمنظور ممانعت از استفاده نادرست و ايجاد اطمينان های لازم مسئله حفاظت نيز مورد توجه قرار گرفته است. جهت استفاده از ويژگی فوق، برنامه نويسان می بايست با صراحت و به روشنی خواسته خود را از طريق استفاده از Keyword های مربوطه اعلان نمايند( فراخوانی يك توانائی و استفاده از آن).
C# بعنوان يك زبان شی گراء عالی است. اين زبان First-Class را برای مفهوم Property (Data Member) بهمراه ساير خصائص عمومی برنامه نويسی شی گراء حمايت می كند. در C و ++C و جاوا يك متد get/set اغلب برای دستيابی به ويژگی های هر Property استفاده می گردد. CLI همچنان تعريف Property را به متدهای get/ser ترجمه كرده تا بدين طريق بتواند دارای حداكثر ارتباط متقابل با ساير زبانهای برنامه نويسی باشد. C# بصورت فطری Events ، Declared Value، Reference Type ، Operator Overloading را نيز حمايت می كند.
كد مديريت يافته
با استفاده از نسخه پياده سازی شده C# توسط مايكروسافت، می توان همواره كد مديريت يافته ای را توليد كرد. يك برنامه C# پس از كامپايل، بصورت برنامه ای در خواهد آمد كه شامل دستورالعمل های تلفيق شده ( CIL (Common Intermediate Language است (درست بر خلاف دستورالعمل های مختص يك ماشين خاص). CIL (گاها با نام MSIL(Microsoft Intermediate Language) با به اختصار IL نيز ناميده می شود ) ، در مفهوم مشابه بايت كدهای جاوا بوده و شامل مجموعه ای از دستورالعمل های سطح پايين قابل فهم توسط تكنولوژی مبتنی بر CLI نظير CLR مايكروسافت خواهد بود. اين برنامه ها بدين دليل كد مديريت يافته، ناميده می شوند كه CLR مسئوليت تبديل اين دستورالعمل ها به كدهای قابل اجرا برروی ماشين و ارائه اغلب سرويس های اساسی برای كدينگ نظير : Garbage Collection، مديريت Heap و عمر مفيد يك Object و يا Type Verification را فراهم می كند.
روش يادگيری C#
يادگيری اين زبان برای افراديكه دارای سابقه آشنائی با يكی از زبانهای برنامه نويسی VB و يا جاوا باشند كار مشكلی نخواهد بود، حتی افراديكه دارای آشنائی اوليه با جاوااسكريپت و يا ديگر زبانهای برنامه نويسی نظير ويژوال بيسك می باشند، امكان پذير و راحت خواهد بود. برخی از برنامه نويسان حرفه ای بر اين باور هستند كه C# نسبت به C# با اقبال بيشتر و سريعتری مواجه خواهد شد، چراكه C# نسبت به ويژوال بيسك خلاصه تر است. حتی برنامه های بزرگ و پيچيده ای كه توسط C# نوشته می گردند خواناتر، كوتاه و زيبا خواهند بود. برخی از ويژگی های ارائه شده در C# نظير Unsigned Integer، Operator OverLoading و امنيت بيشتر Type ها، در C# وجود نداشته و اين امر می تواند دليلی بر فراگيرتر شدن C# نسبت به C# نزد برنامه نويسان با تجربه باشد.
برای يادگيری هر يك از زبانهای حمايت شده در دات نت، می بايست از BCL (Basic Class Library) مربوط به NET Framework. شروع كرد. C# خود صرفا دارای ۷۷ کلمه کليدی يا Keyword بوده كه برای اكثر برنامه نويسان غريب نخواهند بود. در مقابل BCL، دارای ۴۵۰۰ كلاس و تعداد بيشماری متد و Property است كه برنامه نويسان C#، می توانند از آنها برای انجام عمليات دلخواه خود استفاده نمايند. شايد يكی از مسائل قابل توجه جهت يادگيری اين زبان برای برخی از برنامه نويسان حرفه ای عدم وجود برخی از ويژگی ها و امكاناتی باشد كه در گذشته و از طريق ساير زبانهای استفاده شده، بخدمت گرفته می شدند. مثلا عدم وجود امكاناتی جهت توارث چندگانه (MI) سلسله مراتبی يك شئ.
بدون شك فراگيری و تسلط بر زبان C# بمنزله كسب يك پتانسيل با ارزش بوده كه ثمرات آن برای برنامه نويسان در حال و آينده ای نه چندان دور بيشتر هويدا خواهد شد. استاندارد بودن و وجود كتابخانه ای مملو از كلاس اين اطمينان را بوجود خواهد آورد كه با فراگيری زبان فوق و كسب ، مهارت های لازم ، به يك توانائی فرا محيطی جديد دست پيدا خواهيم كرد كه امكان استفاده از آن بر روی محيط های متفاوت وجود خواهد داشت. ويژگی ها و قابليت های بيشمار اين زبان از جمله دلايل قانع كننده ديگری است كه فراگيری آن را توجيه پذير و منطقی می كند.
فصل ششم : جمع بندی ، نتیجه گیری و پیشنهادات
سیستم ارائه شده نمونه ای از صدها مورد از سیستمهای نرم افزاری است که به صورت آنلاین پیاده سازی شده است. تکنولوژیهای مختلفی برای اتصال به پایگاه داده و استفاده از داده ها وجود دارد که سعی شده در این پروژه حداقل سه روش برای اتصال استفاده شده است.
در طول پروژه مشخص شد که استفاده مستقیم از کد نویسی اگر چه کمی پیچیده است ، ولی دارای سرعت بالاتری نسبت به سایر روشهای اتصال به پایگاه داده برای واکشی و نمایش اطلاعات را داراست.
معمولا استفاده از Wizard ها و اشیاء آماده در ASP.NET دارای یک سری مشکلاتی است که در حقیقت در برخی موارد موجب به بن بست رسیدن کاربران می شود. دلیل آن هم این است که مسیر اتصال به پایگاه داده معمولا به صورت Static در این Object ها ذخیره می شود و در صورت تغییر مسیر Server معمولا اجرای برنامه با اشکال مواجه می شود.
زبان برنامه نویسی مورد استفاده نیز یک زبان برنامه نویسی شی گرا با عنوان C# می باشد که به علت وجود منابع آموزشی بسیار زیاد نسبت به سایر زبان های شئ گرا ، از این زبان برنامه نویسی به عنوان زبان برنامه سازی Base همراه با ASP.Net استفاده شده است.
C# یکی از آن زبان هایی است که بر خلاف C ، امکانات شی گرایی را در بطن وجودش پیاده سازی کرده است. برنامه نویسان میتوانند با استفاده از C# به صورت قدرتمندی اقدام به تولید برنامه های شی گرا نمایند. اما به خاطر داشته باشید وجود تفکر شی گرایی به هنگام برنامه نویسی مهم تر ار وجود امکانات شی گرایی در آن زبان خاص است. حالا که با مفهوم شی گرایی در دنیای حقیقی آشنا شدیم می توان با دنبال کردن این سری پروژه ها ، تمام این مفاهیم را با استفاده از C# در دنیای برنامه نویسی هم پیاده سازی کرد. در این پروژه سعی شده است تا جدید ترین روش های شی گرایی در C# بررسی شود.
برای اتصال به پایگاه داده از تکنولوژی ADO.NET استفاده شد. البته موتور پایگاه داده SQL Server 2008 می باشد که یک موتور بسیار قوی با مدیریت بسیار عالی برای دسترسی به داده است. این مورد تنها زمانی مشخص می گردد که داده ها در حجم بالا میان Server و Client در حال رد و بدل شدن هستند.
نتیجه گیری
پس از پیاده سازی این طرح نتایج حاصله از بررسی های به عمل آمده در مورد تکنولوژیهای برنامه نویسی این نتیجه حاصل شد که همیشه کوتاهترین راه بهترین راه برای رسیدن به هدف نیست. به عنوان مثال هنگام استفاده از ابزار ASP.NET برای دسترسی به داده ها اگر چه عملیات برنامه نویسی کاهش یافت ، ولی مشکل اینجا بود که در هنگام کار با داده ها زمان واکشی و نمایش داده ها به میزان قابل توجهی افزایش یاقته بود و این مساله در طولانی مدت باعث برخی مشکلات خواهد شد.
در برخی موارد استفاده از Validation ها نیز با اشکال روبرو شدند و این زمانی بود که از مرورگرهایی با تکنولوژیهای سطح پائین استفاده شد. البته منظور از استفاده از مرورگرهای قدیمی ، به دلیل تست Template جهت سازگاری بر روی مرورگرهای مختلف بود.
پیشنهادات
متاسفانه در ایران به علت عدم وجود قانون کپی رایت ، نمی توان در این زمینه پیشنهادات چندانی را ارائه نمود. لیکن برای بهتر شدن کار ، برخی مسائل به شرح ذیل ارائه می گردد که در صورت ارائه باید قبلا زیرساختهای آن به نحو احسن پیاده سازی شده باشد:
1- برنامه برای برنامه نویس چه سودی می تواند داشته باشد
2- آیا پروژه می تواند دارای سرمایه گذار باشد یا نه
3- آیا با توجه به نبود قانون برای جلوگیری از دزدی نرم افزار می تواند قفل مناسبی برای نرم افزار تهیه نمود
4- برای برنامه در ابتدا طرح و نقشه تهیه نمود (تجزیه و تحلیل اساسی)
5- در مشتریان ایجاد نیاز نمود
6- به مشتری مزایای این گونه طرح ها را گوشزد نمود
7- حدالامکان پروژه با تکنولوژیهای مختلف سازگاری داشته باشد
8- به گونه ای برای جلوگیری از دزدی نرم افزار هزینه نرم افزار در فروش به تعداد بالا گرفته شود و نه در فروش به صورت تکی و آن هم به یک مشتری خاص
9- افرای که قرار است بر روی پروژه کار کنند قبلا مشخص شده باشند و از افراد قابل اطمینان باشند