تبليغاتX
کامپیوتر

کامپیوتر

مسائل مربوط به کامپیوتر

فناورى VOIP همچنان بى رقيب

از: آینده نگر

در زمان هايى نه چندان دور يك تماس تلفنى با خارج از كشور يك تماس غيرمتعارف به شمار مى آمد كه مى توانست در ازاى هر دقيقه تماس صدها تومان روى دست صاحب تلفن بگذارد. اما امروزه تكنولوژى به جايى رسيده كه مى توان از همين تهران با هر دقيقه ۵۰ تومان با هزاران كيلومتر دورتر ارتباط برقرار كرد. اين مهم به جز گسترش و نفوذ اينترنت در سراسر جهان امكان پذير نشده و اين شبكه ارتباطى كه كارت هاى آن را حالا مى توان از نزديك ترين خواربارفروشى محل نيز تهيه كرد عملاً امكانات پهناورى را براى نزديك تر كردن انسان ها به يكديگر ايجاد كرده است.

• يك فرزند جنگى
مزيت تلفن اينترنتى يكى از ده ها مزيت جانبى اينترنت است. اين شبكه ارتباطى كه در واقع يك فرزند جنگى به حساب مى آيد حاصل يك پروژه نظامى محسوب مى شود، حالا ده ها كاربرد در كنار آن ظهور كرده و به قابليت هاى آن اضافه شده است. در واقع تبادل صدا روى اين شبكه ايده نخستين تلفن اينترنتى است. با توجه به ارسال بسته هاى متعدد اطلاعاتى روى اينترنت ايجاد كردن فضايى براى ارسال بسته هاى حاوى صوت مى توانست نخستين جرقه شكل گيرى تلفن اينترنتى به حساب بيايد. ارسال پيام هاى صوتى توسط پست الكترونيك در واقع نخستين قدم ها در اين زمينه بود و حالا تا اتصال مسنجرها به شبكه هاى تلفن عادى امتداد يافته است. تلفن اينترنتى هر چند در ابتداى توسعه خود به شكلى آماتورگونه و غيركاربردى به نظر مى آمد كه به هيچ رو آمادگى رقابت با تلفن ها و مكالمات عادى را نداشت اما امروزه به رقيب اصلى تلفن هاى عادى و شبكه هاى PSTN تبديل شده است. حالا بسيارى از دولت ها كه انحصار مخابراتى را در دست خود دارند ضربه هاى عظيمى را بابت رويكرد مردم به تلفن عادى تحمل كرده اند و حجم زيادى از درآمدهاى آنان كاسته شده است. مزيت اصلى تلفن اينترنتى در مقايسه با تلفن هاى عادى قيمت بسيار پايين آنهاست. با توجه به اينكه مكالمات در عرصه تلفن اينترنتى از شبكه هاى مخابراتى عبور نمى كند و يا حداقل استفاده را از اين شبكه ها دارد، قيمت تمام شده براى اين دسته از تلفن ها بسيار پايين است. از سوى ديگر با توجه به رشد سريع تكنولوژى در عرصه اينترنت و ايجاد فضاى رقابتى براى شركت هاى موجود در اين عرصه عملاً قيمت هاى آن طى چند سال اخير به سرعت كاهش يافته است.
تلفن اينترنتى معمولاً به مكالمه اى گفته مى شود كه از طريق دستگاه كامپيوتر با يك تلفن معمولى انجام گيرد. چنين مكالمه اى به دليل استفاده بخشى از فضاى درخواست مكالمه از امكانات مخابراتى شامل هزينه ها شارژ مى شود. با اين حال نوع تلفن اينترنتى كامپيوتر به كامپيوتر ( كه هم اكنون توسط برخى مسنجرها مثل ياهو و AOL امكان پذير است) عملاً از اين شبكه ها استفاده نمى كند و كاربران مى توانند به طور مجانى ساعت ها با يكديگر به گفت وگو بپردازند. مهمترين كمبود در اين زمينه كيفيت پايين مكالماتى است كه از طريق اينترنت صورت مى گيرد. با توجه به شكل بسته ارسال و دريافت اطلاعات كامپيوترى در هنگام يك مكالمه كه نياز به حضور و تداوم يك مكالمه است برخى بسته ها ديرتر به مقصد مى رسند و يا در ميانه راه گم مى شوند. به اين ترتيب بخشى از فضاى مكالمه عملاً غيرقابل شنيدن است و يا با تاخير و كيفيت نامناسب صورت مى گيرد. اما به نظر مى رسد به تدريج با افزايش سرعت ارتباط اينترنتى در جهان اين نقص نيز در حال رفع شدن باشد. ضمن اين كه هم اكنون برخى شركت هاى اينترنتى با همين امكانات و سرعت موجود نيز فضايى را فراهم آورده اند كه كيفيت يك مكالمه اينترنتى با كيفيت يك مكالمه عادى چندان تفاوتى نداشته باشد.
امروزه در بسيارى از كشورهاى جهان مى توان مغازه ها و فروشگاه هايى را مشاهده كرد كه امكان ارتباط صوتى اينترنتى را براى مشتريان خود فراهم مى آورند و اين در واقع ايجاد يك شغل جديد نيز هست. بيشتر اين دفاتر بدون دخالت دولت و به طور خودجوش و براساس نياز جامعه به ارتباطى ارزان تر ايجاد شده است. با اين حال هنوز بسيارى از كشورهاى جهان با بهانه كاهش درآمدهاى مخابراتى خود با ايجاد و فعاليت چنين دفاترى مخالفت مى كنند و يا در زمينه فعاليت آنان مشكلات متعددى قرار مى دهند. هر چند بهانه بسيارى از دولت ها در اين زمينه افزايش درآمد مخابرات و در نهايت كمك به كشور و مردم است اما در واقع آنان با تكنولوژى مبارزه مى كنند كه خود مردم به خاطر ارزان بودن آن را انتخاب كرده اند. با توجه به مزيت هاى تلفن اينترنتى بسيارى از تلاش هاى دولت ها براى مبارزه با اين پديده با شكست مواجه شده است و حتى چندين شركت مخابرات دولتى عملاً به ورشكستگى رسيدند. با اين حال بسيارى از كشورهاى جهان با درك فضاى مخابراتى آينده عملاً به جاى مبارزه در اين عرصه راه استفاده از اين پديده را در پيش گرفتند. موضوع تكنولوژى انتقال صدا از طريق اينترنت يا VOIP امروزه در بسيارى از طرح هاى توسعه اى در كشورهاى توسعه يافته مورد توجه قرار گرفته و بسيارى از شركت هاى مخابراتى حتى سيستم هاى خود را برپايه VOIP پايه ريزى كرده اند.

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

• اعلام جنگ
در زمانى كه شركت هاى ايرانى با مسئولان بر سر داشتن مجوز و چگونگى سرويس دهى چانه مى زدند برخى شركت هاى اينترنتى مشغول توسعه فعاليت هاى تلفن اينترنتى بودند. شركت اينترنتى اسكايپ كه حالا به عنوان يك غول تلفن اينترنتى حتى بزرگان عرصه اينترنت را نيز تهديد مى كند در مدت زمان كوتاهى توانسته بيش از ۶۰ ميليون كاربر اينترنتى را به سمت خود جلب كند. اين شركت با ارائه يك نرم افزار ساده براى مكالمه به كاربران اين امكان را مى دهد كه از طريق اينترنت با يكديگر گفت وگو كنند. چنين امكانى پيش از اين نيز در مسنجر ياهو وجود داشت، اما اسكايپ با تكامل آن عملاً نرم افزارى كاربرپسندتر به بازار ارائه كرد. در كنار اين اسكايپ اين امكان را براى كاربرانش فراهم كرد كه با مبلغ اندكى با تلفن هاى عادى نيز مكالمه برقرار كنند. اين شركت طى يك سال اخير به چنان رشدى در اين زمينه دست يافته كه همگان معتقدند در آينده سلطان بى چون و چراى تلفن اينترنتى جهان خواهد شد. شركت هاى رقيب اسكايپ مثل ياهو نيز بيكار ننشسته اند. در تازه ترين اقدام ياهو اقدام به ارتقاى نرم افزار مسنجر خود كرده تا بتواند بر مسنجر اسكايپ پيشى بگيرد. ياهو همچنين قيمت خدمات مكالمه با تلفن هاى عادى خود را نيز كاهش داده تا در اين زمينه بتواند بر مزيت هاى اسكايپ فايق آيد. اين همه در حالى است كه ياهو پيش از اين نيز برخى سرويس هاى ديگر را به امكانات مسنجر خود افزوده بود كه از جمله آن مى توان به اتصال مسنجر به تلفن همراه در چند كشور جهان اشاره كرد.
در اين ميان كارى كه اسكايپ انجام مى دهد، حتى برخى شركت هاى توليدكننده گوشى موبايل را نيز هراسان كرده است. اين شركت ها از اين هراس دارند كه اسكايپ با چنين رشدى بتواند به زودى تلفن هاى همراهى را ارائه دهد كه از طريق شبكه VOIP كار مى كنند. به اين ترتيب با توجه به مزيت هاى چنين تلفن همراهى به نظر مى رسد عملاً دايره ورشكستگى شركت هاى مخابراتى به شركت هاى سازنده تلفن همراه نيز كشيده شود.
هم اكنون براى كاربران ايرانى ( كه داخل كشور زندگى مى كنند) استفاده از اسكايپ و يا ياهو براى يك اتصال تلفن اينترنتى ( در مقايسه با كارت هاى اينترنتى) چندان مقرون به صرفه نيست و خصوصاً با توجه به اينكه اين شركت ها از سيستم پرداخت اعتبارى بهره مى برند كه در ايران به دليل فقدان كارت اعتبارى قابل انجام نيست عملاً نمى توان اميدوار بود كه در كوتاه مدت چنين نرم افزارهايى مورد استقبال قرار گيرند. اما با توجه به رشد رقابت در اين عرصه و كاهش چشمگير قيمت ها شايد دور نباشد كه حتى كاربران ايرانى نيز به سمت اين دسته از شركت ها هجوم ببرند. ياهو اخيراً اعلام كرده است كه در سرويس جديد تلفن اينترنتى خود هزينه مكالمه با تلفن عادى بين يك تا دو سنت در دقيقه است. چنين كاهش قيمتى در تلفن اينترنتى مى تواند يك اعلام جنگ بر سر تلفن اينترنتى باشد و بسيارى از معادلات در اين عرصه را به هم بزند.

تلفن اينترنتى به عنوان يك تكنولوژى جديد روز به روز در حال رشد است و به نظر مى رسد دايره تغييرات و تاثيرات اين تكنولوژى بر بسيارى از كشورها از جمله كشور ما قابل تعميم باشد. رشد تكنولوژى در اين عرصه آنقدر سريع است كه شايد طولى نكشد كه تلفن هاى عادى به دليل هزينه هاى سنگين نگهدارى شبكه، راهى جز موزه ها نداشته باشند.

+ نوشته شده در  شنبه بیست و ششم آذر 1384ساعت 18:5  توسط مینو  | 

آموزش Asp.net ( قسمت دوم)

آشنائی با ASP.NET
NET نسل بعدی Active Server Pages يا ASP است که توسط شرکت ميکروسافت ارائه شده است. اين محصول توسط ميکروسافت بعنوان شاخص اصلی فناوری در ساخت سايتهای وب در نظر گرفته شده است. با استفاده از ASP.NET می توان هم اينترانت کوچک يک شرکت را ساخت و هم يک سايت وب تجاری خيلی بزرگ را طراحی و پياده سازی نمود. مهمترين نکاتی که در طراحی اين محصول در نظر گرفته شده است راحتی استفاده و بالا بودن کارائی و قابليت آن می باشد. در زير برخی ويژگيهای ASP.NET را بررسی می کنيم.
• صفحات ASP.NET کامپايل می شوند.
هنگامی که يک صفحه ASP.NET برای اولين بارتوسط يک مراجعه کننده به سايت فراخوانی می شود، آن صفحه ابتدا کامپايل شده و بر روی سرور نگهداشته می شود و در فراخوانی های بعدی از آن استفاده می شود. اين بدين معنی است که صفحات ASP.NET خيلی سريع اجرا می شوند.
• صفحات ASP.NET با ابزارهای روی سرور ساخته می شوند.
با ابزارهای موجود در ASP.NET می توان صفحات پيچيده وب را براحتی طراحی نمود. بعنوان مثال با استفاده از ابزار DataGrid می توان به آسانی داده های موجود در يک بانک اطلاعاتی را تحت وب نمايش داد.
• مجموعهASP.NET عضوی از بدنه NET. است.
بدنه NET. دارای بيش از ۴۵۰۰ کلاس آماده جهت استفاده در ASP.NET است. اين کلاس ها تقريبا هر نيازی را در برنامه نويسی برآورده می کنند. بعنوان مثال از اين کلاس ها می توان جهت توليد تصاوير بر حسب تقاضا، به رمز درآوردن يک فايل و يا ارسال يک نامه استفاده کرد.
مقايسه ASP.NET و ASP کلاسيک
ASP.NET نسل بعدی ASP يا ASP کلاسيک است. اما اين يک پيشرفت تکاملی است بطوريکه اين دو فناوری تقريبا از يکديگر متفاوتند. صفحات ASP با زبان های دستورالعمل نويسی مانند VBScript يا JScript ايجاد می شوند اما در ASP.NET ما يک فرايند کامل برنامه نويسی با زبانهای Visual Basic يا #C (سي-شارپ تلفظ شود) داريم. همچنين در ASP کلاسيک تنها پنج کلاس استاندارد (Request, Response, Application Session, Server) وجود دارد حال آنکه در ASP.NET می توان از بيش از ۴۵۰۰ کلاس استاندارد موجود در بدنه NET. بهره جست.همچنين عليرغم قدرت و امکانات زياد و متعدد ASP.NET، استفاده از آن در مقايسه با ASP کلاسيک بسيار آسانتر است. بعنوان مثال با استفاده از چند ابزار در يک صفحه ASP.NET می توان يک صفحه بسيار پيچيده HTML بدست آورد که ساخت آن در ASP کلاسيک ممکن است نياز به چند روز کار داشته باشد.
زبانهای برنامه نويسی در ASP.NET
شما در ASP.NET می توانيد از هر زبان برنامه نويسی که با بدنه NET. سازگار باشد استفاده کنيد. اين زبانها عبارتند از Visual Basic.NET و #C و JScript.NET . اين بدين معنی است که شما جهت نوشتن برنامه در ASP.NET نياز به فراگيری زبان جديدی نداريد و اگر يکی از زبانهای ويژوال بيسيک يا ++C يا جاوا را می دانيد هم اکنون می توانيد در ASP.NET برنامه بنويسيد.از طرف ديگر تعدادی زبانهای ديگر توسط بعضی از شرکتهای فعال در اين زمينه به مجموعه زبانهای استاندارد ASP.NET افزوده شده است. بعنوان مثال اگر مايل باشيد حتی می توانيد از PERL و COBOL هم در ASP.NET استفاده کنيد.
ابزارهای ASP.NET
سالهاست که برنامه نويسان ويژوال بيسيک جهت ساخت فرم های خود از ابزارهای ويژوال بيسيک مانند TextBox و ListBox استفاده کرده اند. در ASP.NET هم شما می توانيد از ابزارهای فراوان موجود در آن برای ساخت فرم ها و صفحات خود استفاده نمائيد. در ASP.NET چهار دسته عمده از ابزارها موجود است:
• ابزارهای اصلی مانند TextBox، RadioButton، ListBox و Button.
• ابزارهای اعتباری برای حصول اطمينان از ورود و تائيد صحت اطلاعات ورودی فرم ها.
• ابزارهای داده ای برای ارتباط با بانک اطلاعاتی و دستکاری داده.
• ابزارهای پيشرفته جهت نمايش عناصر پيچيده در واسط کاربر مانند تقويم و آگهی های تبليغاتي.
با استفاده از Visual Studio.NET شما براحتی می توانيد با چيدن تصويری اين ابزارها بر روی فرم مورد نظر، صفحه دلخواه خود را بسازيد. در صورت تمايل حتی می توانيد در يک ويرايشگر ساده متن مانند Notepad برنامه مورد نظر را نوشته و از اين ابزارها استفاده کنيد.
دريافت ASP.NET
جهت شروع برنامه نويسی در ASP.NET تنها کافی است که مجموعه ASP.NET را بهمراه بدنه NET. از سايت ميکروسافت دريافت کنيد.
دريافت .NET Framework
ASP.NET با سيستم عامل های Windows 2000 (نسخه Server و Professional) و Windows XP کاملا سازگار است.

+ نوشته شده در  سه شنبه بیست و دوم آذر 1384ساعت 9:51  توسط مینو  | 

ASP.NET و پايگاه داده - قسمت دوم

منبع :از سايت IranASP.net
نويسنده :شاهو طوفانی


در اين بخش شما به دانسته های بخش اول نياز داريد. شئ بعدی که مورد بحث قرار می گيرد کلاس Data Adapter است. OleDBDataAdapter اطلاعات را می گيرد و يک ارتباط منطقی بين داده ها و کلاس Dataset ايجاد ميکند. بطور کلی ميتوان گفت Data Adapter در نظر اول معادل Data Command می باشد. روش استفاده از Data Adapter ها بطور معمول بصورت زير تعريف می شود:



Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)



ملاحظه می کنيد که شئ Adapter از دو پارامتر- يکی رشته دستورات SQL و ديگری رشته ارتباطی - برای فرستادن دستورات به پايگاه داده استفاده می کند. بطور معمول DataAdapter برای پرکردن DataSetها و بروز کردن پايگاه بوسيله يک DataSet و اجرا کردن دستورات بکار می رود. اکنون نمای کلی از کاربرد فوق را در زير می بينيد:



Dim ds As DataSet = New DataSet()
objAdapter.Fill(ds,"Users")



متد Fill جهت اجرای دستور تنظيم شده در Data Adapter بکار می رود. بعبارت ديگر اطلاعات واکشی شده از پايگاه داده در يک جدول با نامی که ما تعيين می کنيم (Users) ذخيره می شود.
نکته ضروری اينست که تکنيک Mappings در اکثر مواقع کارساز است. Mappings عبارت است از ساختن يک نام مستعار (Alias) برای نام جداول در يک Dataset. اين aliasها هيچگونه تاثيری در منبع داده ندارد و وقتی که بوسيله DataAdapter فرستاده می شود بصورت خودکار بنام پيش فرض تبديل ميشود. اين تکنيک باعث خوانايی کد و راهنمايی برنامه نويس در ارجاع های بعدی وتشخيص جداول فراخوانی شده ميشود.



objAdapter.TableMappings.Add("adbtable","Users")
with objAdapter.tableMapping(0).ColumnMappings
.Add("PID","ID")
.Add("LAstName","Lname")
.Add("StreetAddress","Addy")
End with
objAdapter.Fill(ds)



در تکنيک فوق بجای استفاده از عبارت ds.Tables("adbtable") ميتوانيم Ds.Tables("Users") را بکار ببريم. در بخشهای آينده ديگر فوايد استفاده از Mappings آمده است. همچنين کلاس CommandBuilder برای بهنگام کردن يک بانک که بوسيله Dataset صورت گرفته يک شيوه صحيح بشمار ميرود:



Dim cmdBLD As New OleDBCommandBuilder(objAdapter)


که در عبارت فوق شئ objAdapter بعنوان پارامتر به دستور CommandBuilder فرستاده شده و سپس بوسيله متد Update منبع داده بهنگام می شود:


objAdapter.Update(ds,"Users")


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



<%@ Import NameSpace="System.data" %>
<%@ Import NameSpace="System.Data.OleDB" %>

< Script Language="VB" Runat="Server">

Sub Page_Load( Sender As Object, E As EventArgs)
Dim objConn As New OleDBConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=e:\db\users.mdb")

objConn.Open()
Dim ds As DataSet=New DataSet
Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)
Dim objcmdBLD As New OleDBCommandBuilder(objAdapter)
Obj.Adapter.Fill(ds,"Users")
End Sub

< /Script>

+ نوشته شده در  دوشنبه بیست و یکم آذر 1384ساعت 20:4  توسط مینو  | 

ASP.NET و پايگاه داده – قسمت اول

نويسنده :شاهو طوفانی
منبع :از سايت IRANASP.net


در اين مقاله شما در مورد کار با با پايگاه داده در ASP.NET آشنا خواهيد شد. بدين معنا که در صدد هستيم تا رويه ای کلی از مفاهيم، روشها وابزارهای مورد استفاده در ASP.NET جهت برقراری ارتباط با پايگاه داده، نشان دادن داده ها، دستکاری داده ها، بهنگام سازی و... توسط اشيايی چون مهيا کننده های بانک های اطلاعاتی، DataSetها XML، و ... معرفی می شود.

اگر تا بحال با پايگاه داده کار نکرده ايد شايد provider يک پايگاه داده برای شما نامفهوم باشـد. بطور خلاصه راهی را که بايد طی کرد تا به پايگاه داده متصل شده، آنرا باز کرده و داده ها را دستکاری کرده و دستورات را اجرا نمود، بوسيله يک تهيه کننده اطلاعات مشخص می شود. در ASP.NET معمولا از دو روش برای اين کار استفاده می شود. روش اول اينکه اگر پايگاه داده شما از نوع SQL Server باشد بايستی با مدل SQLClient کار کرد و اگر پايگاه داده شما غير از SQL Server باشد (در حال حاضر) بايد از روش ديگر يعنی مدل OleDb استفاده نمود. بعنوان مثال اگر پايگاه داده شما Oracle ،Sybase و يا Access باشد بايد از روش OleDb استفاده کنيد.

روش کار بدين صورت است که ابتدا بايستی فضانام زير را در صفحاتی که از بانک اطلاعاتی استفاده می شود فراخوانی کرد:

<% @ Import NameSpace="System.Data" %>
<% @ Import NameSpace="System.Data.OleDb" %>
برای برقراری ارتباط با پايگاه معمولا از عبارت زير استفاده می شود:

Dim ObjConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=e:\db\users.mdb")
که قسمت DataSource آدرس فايل پايگاه داده است که در اينجا يک بانک Access است. همانگونه که ملاحظه می کنيد از رشته ارتباطی يا Connection String بعنوان پارامتر استفاده شده است و بوسيله متد Open ارتباط باز می شود:

objConn.Open()
لازم به توضيح است که در پايان کار بوسيله متد Close ارتباط را خاتمه می دهيم.

بمحض ارتباط با پايگاه داده می توان دستورات را به آن فرستاد. اين کار معمولا بوسيله شی OleDbCommand انجام می شود. جهت انجام اين کار می توان يک دستور SQL يا نام يک روال ذخيره شده (Stored Procedure) را مشخص نمود و بنا به مقتضيات می توان اعمال مختلفی را روی پايگاه پياده نمود:

Dim objCommand As New OleDbCommand ( "Select * From users", objConn )
ملاحظه می کنيد که کلاس Command از دو پارامتر رشته SQL و نام رشته ارتباطی برای فرستادن دستورات به پايگاه داده استفاده می کند. برای مثال آنچه را که در عبارت فوق ديديد می توان به بخشهای کوچکتر زير تقسيم کرد.

ابتدا تعريف شي:

Dim objCommand As New OleDbCommand()
سپس نسبت دادن آن به رشته ارتباطی جهت برقراری ارتباط پايگاه:

objCommand.Connection= objConn
مشخص کردن عمليات مورد نظر بوسيله دستورات SQL:

objCommand.CommandText="Select * From Users"
حتی می توانيد عمليات فوق را بصورت ذيل انجام دهيد:

Dim objCommand As New OleDbCommand( SQL string, Connection string )
روشهای فوق دقيقا يک کار مشابه را انجام می دهند با اين اوصاف که در عبارت آخر بجای شئ ارتباطی از يک رشته ارتباطی استفاده شده است. تا اين مرحله هنوز عبارات فوق را به اجرا در نياورده ايم. برای اين کار راه های متفاوتی وجود دارد:

- از ExecuteNonQuery زمانی استفاده می شود که قصد برگرداندن داده ها از پايگاه مورد نظر نباشد مثلا در مواقعی که از دستورات SQL جهت درج (Insert) و بهنگام سازی (Update) استفاده شود.

objCommand.ExecuteNonQuery
- از ExecuteReader برای خواندن و برگرداندن اطلاعات از پايگاه استفاده می کنيم.

Dim ObjRead As OleDbDataReader
objRead=objCommand.ExecuteReader
- برای دستکاری يک تک مقدار مشخص و مورد نظر از متد ExecuteScalar استفاده می شود.

برای خواندن داده ها معمولا از کلاس DataReader استفاده می شود -برای خواندن نه برای اضافه کردن يا بروز کردن- اين شئ بصورت مستقيم به پايگاه داده دسترسی دارد و فقط خواندنی (Read Only) است. البته اين خاصيت محدوديتی برای آن است اما برای خواندن ساده داده روشی کامل بشمار می رود.


Dim objReadaer As OleDbDataReader
objReader=objCommand.ExecuteReader
Whlie objReader.Read
Response.write(objReader.GetString(0)& "
" )
End While
عبارت فوق جهت نمايش و چاپ داده ها بکار می رود. متد Read خواندن را تا زمانيکه به پايان نتايج نرسد ادامه می دهد و عبارت objReader.GetString(0) برای برگرداندن نسخه رشته ای ستونهای رکورد کاربرد دارد. در ليست زير چند متد ديگر برای برگرداندن مقادير داده ای متغيرها آمده است:

GetBoolean(x) مقدار منطقی را بر می گرداند.
GetChar(x) مقدار کاراکتری را برمی گرداند.
Get DataTypeColumn(x) نوع داده را در ستون برميگرداند.
GetString(x) مقداررشته ای را برمی گرداند.
و...

+ نوشته شده در  دوشنبه بیست و یکم آذر 1384ساعت 20:4  توسط مینو  | 

آموزش Asp.net ( قسمت اول)

منبع: DEV.IR

چرا به دات نت احتياج داريم؟
به طور معمول نسل های جديد زبان های برنامه نويسی به اين دليل متولد می شوند که زبان های قديمی تر دارای امکانات محدود بودند و يا قدرت استفاده از تکنولوژی های فعلی را به صورت مطلوب و ساده ندارند.
مهمترين نيازی که به عنوان آخرين تکنولوژی وجود دارد، برنامه نويسی در محيط اينترنت است. اينترنت در مدت تقريبا ۸ سال جای خود را به عنوان يکی از مهمترين وسايل ارتباطی برای کارهای روزمره و تجارت باز کرده است. سيستم های برنامه نويسی قديمی تر امکان برنامه نويسی برای اينترنت را فراهم کرده بودند اما هر کدام دارای اشکالات بزرگی هستند، برای مثال تکنولوژی COM اولين بار در ويندوز به کار گرفته شد. در سال 1970 نيز سيستم هايی برای Unix نوشته شده بودند، جاوا نيز در اصل برای ابزارهای الکترونيکی بود و نه برای اينترنت.
سپس برای اولين بار يک سيستم جامع برای برنامه نويسی تحت اينترنت ايجاد شد. اين سيستم -NET. از مراحل سطح پايين که به زبان ماشين می باشد تا بالاترين سطح که برنامه نويسی ويژوال آن می باشد برای استفاده در اينترنت طراحی شده است. البتهNET. فقط برای اينترنت نيست و با استفاده از آن می توان برنامه های کامل تحت Client نيز ايجاد کرد، اما بزرگترين مزيت آن دربرابر سيستم های ديگر امکانات اينترنت آن است.
برای اينکه مزايای استفاده ازNET. را بهتر متوجه بشويم بهتر است در ابتدا معايب سيستم های پيشين را ذکر کنيم. شرکت مايکروسافت تا قبل از سال 1995 به برنامه نويسی در محيط های Client و Server می پرداخت، اما از آن سال به بعد توجه بيشتری به مساله برنامه نويسی در اينترنت کرد. مايکروسافت COM و +COM را ايجاد کرد و آنها را در ويژوال استوديوی 6 به کار گرفت. در سال 1999 حدود ۵۰ در صد از بزرگترين سايتهای تجارت الکترونيکی از محصولات مايکروسافت استفاده می کردند. اما هنوز هم مشکلات بزرگی در سيستم های مايکروسافت وجود داشت که يکی از آنها دشواری نوشتن برنامه در اينترنت با محصولات مايکروسافت بود. شرکت مايکروسافت برای راحتی کار برنامه نويس ها ASP يا Active Server Page را ايجاد کرد. با اينکه اين يک قدم بزرگ بود و کارها را بسيار ساده کرد ولی هنوز از برنامه نويسی شی گرا پشتيبانی نمی کرد. همچنين در ويژوال استوديوی 6 قسمتی برای Internet Application ايجاد شده بود و در آنها امکان ساختن Web Class وجود داشت ولی هيچ وقت به عنوان يک ابزار کار آمد برای برنامه نويسی وب درنظر گرفته نشد.
مدل برنامه نويسی DNA
مايکروسافت يک مدل برنامه نويسی به نام Distributed interNet Application دارد که بر پايه برنامه نويسی n-tier و COM بنا نهاده شده است. مدل DNA از سه بخش اساسی تشکيل شده است.
بخش اول به نام Presentation tire معروف است. در اين بخش رابط تصويری کاربر وجود دارد و خود نيز به دو نوع Internet Browser و Win 32 GUI تقسيم می شود که هر کدام مشکلات خاص خود را دارند. در مدلی که از Win32 GUI يا همان نرم افزارهای معمولی استفاده می شود دو مشکل بزرگ وجود دارد ؛ دشواری بروز رسانی نرم افزار و ديگری DLL Hell که در ادامه توضيح داده خواهد شد. در نوع دوم مشکلاتی از قبيل نبود امکانات برنامه نويسی کافی در محيط مرورگر، نبود رابط قوی با کاربر، نبودن مرورگر های يکسان و... وجود دارد. همچنين هميشه يک اتصال به اينترنت يا اينترانت لازم است. در اين نوع از برنامه نويسی می توان از Java Applet ها يا ActiveX استفاده کرد ولی مرورگر بايد امکان استفاده از آن را داشته باشد، مخصوصا ً هنگام استفاده از ActiveX که بايد فقط از IE استفاده کرد.
بخش دوم که Middle tier نام دارد، مکانی است که اطلاعات و قوانين تجاری در آن وجود دارد. منظور از قوانين ، متد ها و اجزائی هستند که اعمال کاربران را کنترل می کنند. مهمترين و آسان ترين زبان برای نوشتن اين اجزا از DNA ويژوال بيسيک است. برنامه نويسی که بخواهد در اين رده برنامه بنويسد بايد آشنايی کاملی با COM و پروتکل های رايج داشته، همچنين بايد مهارت کافی در استفاده از ADO و ADSI داشته باشد. مشخص است که يک اشتباه در اين لايه باعث بروز خطا و نقص در کل سيستم می شود.
بخش سوم يا Data tier مکانی است که اطلاعات سازمان در آن ذخيره می شود. معمولا ً در اين قسمت از بانکهای پيشرفته رابطه ای مانند SQL Server و Oracle استفاده می کنند.
محدوديت های COM
همانطور که ديديد مهمترين قسمت در DNA همان COM است که در جای جای آن استفاده می شود. در اينجا برخی معايب COM ذکر می شود : ( در ابتدای متن ذکر شد که برای درک نياز بهNET. بايد ابتدا معايب سيستم های قديمی را بشناسيم )
DLL Hell: اگر کوچکترين تغييری در يک COM ايجاد شود، ديگر برنامه هايی که از ورژن قبلی استفاده می کردند قادر به فعال ساختن نسخه جديد نيستند. هنگامی که در ويندوز، يک COM نصب شود برايش در رجيستری يک GUID ثبت می شود که اطلاعات آن COM را در خود ذخيره می کند. اگر يک برنامه از نسخه اول يک COM استفاده کند و بعد از مدتی شما تغييراتی در نسخه اول بدهيد و بخواهيد آن را دوباره در سيستم نصب کنيد ويندوز به شما پيغام خطا می دهد چون ورژن آن تکراری است، اگر هم آن را به ورژن دوم ارتقا دهيد نرم افزار قبلی هنوز به دنبال نسخه اول می گردد. اين امر باعث می شود که شما مجبور شويد يکبار ديگر کل برنامه را کامپايل کرده و در کامپيوترتان نصب کنيد.
کمبود در وراثت: در نسخه های COM که در حال حاضرهستند چيزی به نام وراثتی که در ++C وجود دارد نمی باشد، بلکه وراثت تنها در واسط يک COM می باشد، استفاده از آن هم چندان کمکی به برنامه نويسی نمی کند.
برخی محدوديت های برنامه نويسی اينترنتی در مدل DNA
۱- وجود دو محيط برنامه نويسی برای اينترنت و Client
نقصان در نوشتن برنامه هايی با رابط گرافيکی خوب که در اينترنت کار می کردند کاملا ً مشهود است، نمونه بارز آن اختلاف در برنامه نويسی در ويژوال بيسيک و ASP است. ويژوال بيسيک با رابط گرافيکی کاملا ً سطح بالا و ASP تقريبا ً رابط گرافيکی ندارد. همين امر باعث می شد که يک برنامه نويس مجبور باشد طيف وسيعی از تکنيک ها و زبان ها را فرابگيرد تا بتواند برنامه ساده ای در اينترنت بنويسد.
۲- نبودن حالت های ذخيره اطلاعات رابط گرافيکی در صفحه های اينترنتی
نمونه اين حالت زمانی است که در يک textbox متنی وجود داشته باشد. در برنامه های Win32 GUI متن داخل textbox تا زمانی که کاربر يا برنامه آن را تغيير نداده بر جای خود وجود دارد. اما در محيط اينترنت و نوع ASP با هر بار refresh کردن صفحه کل اطلاعات ازبين می رود. البته اين مشکل با استفاده از شئ های Request و Response تقريبا ً قابل حل است ولی احتياج به برنامه نويسی برای هر تکه از صفحه ASP دارد.
۳- نداشتن Event Handler در محيط برنامه نويسی اينترنت
يکی از مهمترين ابزاری که در برنامه نويسی Win32 GUI وجود دارد استفاده از Event ها است. با تکنولوژی که در حال حاضر وجود دارد تنها راه رسيدن به اين مهم استفاده از ActiveX است که به علت مسايل امنيتی در بيش از ۹۵ در صد مواقع توسط کاربر استفاده از آن رد می شود.
معايب استفاده از API
API ها توابعی هستند که از ويندوز نسخه 1 تا امروز در برنامه نويسی کاربرد داشته و دارند. مهمترين کاری که اين توابع انجام می دهند انجام کارهای سخت و سطح پايين سيستمی است که احتياج به برنامه نويسی زيادی دارند و يا حتی امکان ايجاد آن با زبان هايی مثل ويژوال بيسيک نيست. اما هر API از هر نسخه ويندوز تا نسخه ديگر آن می تواند دچار تغييرات بشود. برای مثال برنامه ای که در ويندوز 98 نوشته شده باشد می تواند در ويندوز 95 اجرا نشود. همچنين هم اکنون ابزارهای جديدی به بازار آمده است که برای آنها نيز می توان برنامه نويسی کرد، مانند تلفن های سيار، کيوسک تلفن، دستگاه های کامپيوتری جيبی و غيره. در اين نوع دستگاه ها ديگر ويندوز به مفهومی که در حال حاضر وجود دارد قابل اجرا نيست و در نتيجه API هم وجود ندارد. لازم به ذکر است که ويندوز CE برای دستگاه های مذکور می باشد ولی قابليت های آن با ويندوزهای ديگر تفاوت زيادی دارد.

+ نوشته شده در  دوشنبه بیست و یکم آذر 1384ساعت 19:56  توسط مینو  |