تبليغاتX
دانشجویان کامپیوتر دانشگاه نبی اکرم
وبلاگ دانشجویان کارشناسی ناپیوسته گروه کامپیوتر دانشگاه نبی اکرم (ص) تبریز ورودی بهمن 85

بسياري از برنامه‌‌نويسان هيچ‌گاه از نسخه Express ويژوال استوديو استفاده نمي‌کنند، در صورتي که اغلب‌شان تفاوت‌هاي ميان نسخه‌هاي استاندارد، حرفه‌اي و اکسپرس ويژوال استوديو را نمي‌دانند و صرفا به‌خاطر اين‌که آن يکي حجم بيشتري دارد آن را انتخاب مي‌کنند. اما اگر تفاوت‌ نسخه‌هاي اکسپرس، استاندارد و حرفه‌اي بدانيم، درمي‌يابيم كه در بسياري از مواقع، استفاده از نسخه‌ حرفه‌اي ضروري نيست.

زبان‌هاي برنامه‌نويسي اکسپرس، تنها به VB، VC#، VC++، و VJ# محدود مي‌شود. در حوزه نرم‌افزارهاي وب هم Visual Web Developer و Visual C# و Visual Basic حضور دارند.

در مورد مستندها، نسخه اکسپرس کتابخانه کامل MSDN را ندارد، و 210 مگابايت کتابخانه‌هاي پايه و تنها خلاصه‌اي از MSDN را دارد. اما مهم نيست؛ MSDN به‌طور آنلاين در اختيار همگان است.

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

براي برنامه‌نويسي با موبايل بايد به‌سراغ نسخه‌هاي استاندارد يا حرفه‌اي برويد. همچنين در نسخه اکسپرس، طراح کلاس، Object Test Bench و کنترل سورس کد وجود ندارد. همچنين نمي‌توانيد نرم‌افزارهاي آفيس را گسترش بدهيد و کامپايلر 64 بيتي هم در آن وجود ندارد. همچنين با SQL Server 2005 به‌طور يک‌پارچه نيست و بايد به آن متصل شويد.

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

منبع : کلیک

+ نوشته شده در  سه شنبه بیست و چهارم شهریور 1388ساعت 0:41  توسط یونس فرخ پور  | 

در 5 سال آينده مواردي كه در ادمه برشمرده خواهند شد، نقش بسيار مهمي را در دنياي برنامه نويسي و جهت گيري‌هاي آن ايفا خواهند كرد (براي مثال اگر براي شما اين سؤال مطرح است كه هدف از WCF ، REST services ، سيلورلايت 3 و غيره چيست، اين مقاله‌ي كوتاه را مطالعه نمائيد) :

الف) Object Relational Mapping
ORM يكي از بازيگرهاي واضح خواهد بود. خصوصا پروژه‌اي مانند Fluent NHibernate با ويژگي‌هاي زير:

  • سابقه‌اي 10 ساله (قسمت عمده‌اي از اين سابقه به دنياي جاوا بر مي‌گردد)
  • امكان استفاده از انواع و اقسام ديتابيس‌ها توسط آن
  • پشتيباني از Linq
  • و ...


ب) نرم افزار به عنوان سرويس ( Software as a Service يا SaaS )
نرم افزار به عنوان سرويس يك مفهوم تجاري است كه در آن مصرف كننده بر اساس نيازهايش هزينه‌ي يك نرم افزار را خواهد پرداخت. بر اين اساس برنامه نويسي در زمينه‌هاي طراحي و مديريت دست خوش تغييرات عمده‌اي مي‌شود. شايد نيازي به ذكر نباشد كه حتي مايكروسافت نيز در حال برنامه ريزي براي اين نوع از توسعه است.
پرداختن به SaaS نيازمند يك سري از ويژگي‌ها است:

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


ج) پردازش ابري
پردازش ابري شبيه به آن‌چيزي كه مايكروسافت Azure ارائه مي‌دهد، نيز يكي از نتايج مفهوم تجاري SaaS است. تمركز پردازش ابري بر روي ارائه‌ي وب سرورها، مكان‌هاي ذخيره داده و امثال آن است. به اين صورت شما ديگر درگير تهيه و پرداخت هزينه جهت راه اندازي ديتاسنتر ويژه‌ي خود نخواهيد شد و بسياري از هزينه‌هاي شما كاهش خواهند يافت. بهره برداري تجاري گسترده از اين روش با توجه به توسعه‌ي فريم ورك‌هاي ويژه‌ي اين نوع پردازش‌ها، آموزش و غيره ، بين سال‌هاي 2010 و 2015 شروع خواهد شد.

د) اجراي موازي
پردازش ابري اثرات خاص خودش را بر روي دنياي نرم افزار و برنامه نويسي خواهد گذاشت. اين طبيعت توزيع شده سبب خواهد شد كه در آينده از برنامه نويسي‌هاي چند ريسماني و مسايل همزماني حاصل از آن‌ها بيشتر بشنويد و نهايتا معماري برنامه‌ها به سمت استفاده از روش‌هاي زير سوق خواهند يافت:

REST services;
Message-based distributed architectures, i.e.: see NServiceBus, Mass Transit or Rhino Service Bus




ه) برنامه‌هاي غني وب يا Rich Internet Applications
Rich Internet Applications يا RIA نقش مهمي را در SaaS بازي خواهند كرد و هدفگيري مايكروسافت در اين باره ارائه Silverlight 3.0‌ و Microsoft .NET RIA Services است. هر چند اين موارد راه طولاني (يكي دو ساله) را در پيش خواهند داشت تا به حد استانداردهاي لازم برسند اما حركت‌هاي مهمي در اين زمينه به شمار مي‌روند.

منبع : vahidnasiri.blogspot.com

+ نوشته شده در  جمعه دوازدهم تیر 1388ساعت 2:4  توسط یونس فرخ پور  | 

مقایسه‌ای تطبیقی بین جاوا و دات‌نت


--------------------------------------------------------------------------------

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

در این مستند قصد داریم تا از منظر تولید سیستم‌های مبتنی بر وب، مقایسه‌ای کاربردی بین جاوا و دات‌نت داشته باشیم.

تاریخچه

تاریخجه‌ی فراگیر شدن دات‌کام‌ها و در واقع ارائه‌ی سرویس‌های مجازی مبتنی بر وب به اواخر دهه‌ی 90 و خصوصاً سال‌های 1998 تا 2000 بر می‌گردد. در آن زمان علاوه بر فراگیر شدن اینترنت، بلوغ مرورگرهای وب و استانداردسازی قراردادهای ارتباطات مبتنی بر وب همه و همه به توسعه‌ی سرویس‌های مجازی کمک کردند و به بیانی شرکت‌ها یک زمین مجازی برای ارائه‌ی خدمات یافتند. به تبع آن، نیازی روزافزون برای تسهیل توسعه‌ی سیستم‌های مبتنی بر وب احساس می‌شد.

پاسخ شرکت سان (Sun Microsystems) به این نیازها ارائه‌ی بسته‌ی توسعه‌ی نرم‌افزار Java 2 Entrrprise Edition (به طور مخفف J2EE، که از نسخه‌ی 5 به بعد به Java EE معروف است) بود. این بسته در واقع مجموعه‌ای از استانداردهای فناوری‌های مبتنی بر وب بود که با استفاده از جاوا، مجموعه امکانات جدیدی را به توسعه‌دهندگان برنامه‌های وب (و فراتر از آن سیستم‌های توزیع‌شده مانند EJBها) ارائه می‌داد. J2EE در واقع مجموعه‌ای از استانداردها به همراه پیاده‌سازی مرجع آن‌ها (عموماً توسط سان) می‌باشد.

سه سال پس از ارائه‌ی J2EE (که اساساً حول محورهای برنامه‌های حجیم، معماری‌های پیچیده و طراحی منسجم قرار دارد)، مایکروسافت در سال 2002 فناوری دات‌نت را ارائه داد. در این بسته‌ی توسعه‌ی نرم‌افزار، مایکروسافت زبان‌های گوناگونی چون VB.Net، J#.Net، C++.Net و زبان جدید C#.Net را ارائه داد. همچنین برای توسعه‌ی سیستم‌های مبتنی بر وب برنامه‌نویسان می‌توانستند از فناوری ASP.Net استفاده نمایند. کتابخانه‌ی کلاس‌های دات‌نت با در نظر گرفتن امکانات موجود جاوا و به منظور رقابت با آن طراحی شده بودند. با اندک نگاهی به آن می‌توان متوجه شد که بر خلاف جاوا که طراحان آن بهترین تمرین‌ها (Best practices) را ملاک طراحی خود قرار داده بودند و به شدت به اصول طراحی پایبندند، پایبندی اصلی طراحان کتابخانه‌ی کلاس‌های دات‌نت، سهولت کاربر و آسانی نوشتن کد (هم از جهت اختصار و هم از جهت ملموس بودن) است.

در ادامه‌ی به بررسی دو فناوری جاوا و دات‌نت از منظر‌های مختلف می‌پردازیم.


ادامه مطلب
+ نوشته شده در  پنجشنبه دهم بهمن 1387ساعت 12:16  توسط بهرام منافی  | 

در دنياي برنامه‌نويسي تحت وب، بي‌گمان يكي از پركاربردترين، محبوب‌ترين و توانمندترين زبان‌ها php است كه تاكنون توانسته است توجه بسياري از برنامه‌نويسان و توسعه‌دهندگان وب را به خودش جلب كند. پيش از اين php با وجود وسعت كاربردش، يك محيط كار مجتمع و توانمند نداشت و برنامه‌نويسان ناچار بودند برنامه‌هاي خود را در ويراستارهاي معمولي نوشته و در سرورهاي خود آزمايش و اشكال‌زدايي كنند.

 با اين وجود به كارخود با اين زبان ادامه مي‌دادند، اما بسياري از شركت‌ها محصولات متنوعي براي اين زبان به بازار عرضه كردند  تا كار برنامه‌نويسان را با اين زبان راحت‌تر و لذت‌بخش‌تر كنند، اما شركت Zend كه يكي از پيشگامان يا بهتر است بگوييم در صدر توسعه‌دهندگان زبان php بوده است كامل‌ترين و توانمندترين ابزار براي php را كه در حقيقت يك IDE تمام و كمال براي اين زبان به‌شمار مي‌رود يعني Zend Studio را به بازار نرم‌افزار عرضه كرد.


ادامه مطلب
+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 16:8  توسط یونس فرخ پور  | 

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

تاريخچه

عبارت PHP سرنام عبارت "صفحه خانگي شخصي1" است. پيدايش PHP به سال 1995 بازمي‌گردد، زماني که يک توسعه‌دهنده نرم‌افزار مستقل به نام راسموس لردورف2 يک اسکريپت Perl/CGI نوشت که او را از تعداد بازديدکنندگان وب سايت شخصي‌اش مطلع مي‌ساخت. اسکريپت او انجام دو وظيفه را برعهده داشت: گزارش‌گيري از اطلاعات بازديد‌کننده از سايت و شمارش تعداد کاربران. در آن زمان وب، به فرمي که اکنون ما آن را مي‌شناسيم، هنوز بسيار جوان بود و ابزار‌هايي از اين نوع هنوز پا به‌عرصه وجود نگذاشته بودند. بنابر‌اين اکثر کاربراني که از سايت لردورف بازديد مي‌کردند، با ارسال نامه‌هاي الکترونيکي از وي درخواست مي‌کردند که اسکريپت‌هاي خود را براي آنها بفرستد. به اين ترتيب لردروف شروع به ارسال اين اسکريپت‌ها تحت عنوان صفحه خانگي شخصي  يا PHP كرد.


ادامه مطلب
+ نوشته شده در  دوشنبه بیست و پنجم آذر 1387ساعت 19:35  توسط یونس فرخ پور  | 

نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم افزار در گذشته نيز همواره حائز اهمیت بوده است ، ولی در ساليان اخير به دليل گسترش اينترنت و ظهور نسل جديدی از برنامه های کامپيوتری موسوم به برنامه های وب ، نگاه به نرم افزار و انتظار از آن در جهت تامين طيف گسترده ای از خواسته ها تغيير  و رشد چشمگيری يافته است . به همين دليل است که در دنيای نرم افزار هر روز تحولات مهمی اتفاق می افتد و فناوری های جديدی قدم در اين عرصه می گذارند .
ظهور فناوری LINQ ( برگرفته شده از  Language-INtegrated Query   ) تلاشی است در اين راستا که با هدف تحول در نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده ) ، مطرح شده است .
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ، طراحان و پياده کنندگان با سه پرسش اساسی مواجه می گردند : این فناوری چيست ؟ چه کار می کند ؟ و چرا ما به آن نیاز داريم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی خواهیم کرد به سه پرسش فوق در ارتباط با فناوری LINQ پاسخ دهيم .

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


ادامه مطلب
+ نوشته شده در  دوشنبه بیست و چهارم تیر 1387ساعت 0:16  توسط یونس فرخ پور  | 
مجله فورچون سلسله مصاحبه‌هایی با عنوان "چگونه کار می‌کنم" با افراد مشهور دنیای صنعت و اقتصاد انجام داده است . محور اصلی این مصاحبه‌ها نحوه انجام کارها و مدیریت برنامه‌ها توسط این اشخاص است. در یکی ازتازه‌ترین این سری مصاحبات ، مجله فورچون مصاحبه‌ای با بیل گیتس انجام داده است. به خلاصه‌ای از این مقاله توجه کنید :
اگر به دفتر بیل گیتس نگاه کنید کاغذ زیادی در آن نمی‌بینید.
او میگوید :روی میزم ۳ صفحه نمایش دارم که مجموعه آنها با هم یک دسکتاپ واحد را تشکیل می‌دهند. من می‌توانم چیزها را از یک صفحه به صفحه دیگر بکشم . اگر شما یک بار تجربه کار با یک صفحه نمایش بزرگ را تجربه کنید ، دیگر به گذشته برنمی‌گردید ، چون اثر مستقیمی روی کارآیی شما خواهد گذاشت.
صفحه نمایش چپ لیست ایمیل‌هایم را نشان می‌دهد ، صفحه نمایش وسط ایمیلی را که می‌خوانم و به آن جواب می‌دهم را نمایش می‌دهد و مرورگرم روی صفحه نمایش راست قرار می‌گیرد.
در مایکروسافت ایمیل رسانه انتخابی است و بیشتر از تماسهای تلفنی ، بلاگ ، اسناد و بولتنهای خبری و یا نشستها از آنها استفاده می‌شود. ( میلهای صوتی و فکسها در ایمیلها ادغام شده‌اند.)
بیل گیتس روزانه ۱۰۰ ایمیل دریافت می‌کند ، البته بعد از فیلتر ایمیلهای ناشناس وی چنین تعداد ایمیلی دارد.
بیل گیتس سعی می‌کند ، مطمئن شود وقتش را روی ایمیلهایی که اهمیت بیشتری دارند متمرکز کند .
تنها وسیله‌ای که گیتس در دفترش دارد و تکنولوژی پایینی دارد ، "وایت بوردش" است . وی از ماژیکهای خوشرنگی استفاده می‌کند.
در مایکروسافت ، می‌شود از روی وایت‌بوردها عکس برداشت و به رایانه‌ها ارسال کرد ، به این ترتیب آنها شبیه یک Tablet pc بزرگ می‌شوند .
کاغذ در زندگی روزانه من نقشی ندارد ، من ۹۰ درصد اخبار را آنلاین دریافت می‌کنم ، وقتی برای نشستی می‌روم برای اینکه چیزی را به بقیه نشان دهم از tablet pc استفاده می‌کنم ،
این کامپیوتر با رایانه دفترم کاملا در ارتباط است و من به همه فایلهایی که به آنها نیاز دارم ، دسترسی دارم. یک نرم‌افزار یادداشت‌برداری به نام OneNote هم روی این رایانه دارم ، بنابراین همه نوشته‌هایم به شکل دیجیتال هستند.
گیتس معمولا به جای اینکه برای پیدا کردن فایلی در داخل فولدرها دنبال آنها بگردد ، آنها را جستجو می‌کند ، این کار را پیدا کردن آدرسهای میل و شماره‌های تلفن هم انجام می‌دهد.
ابزار دیجیتالی دیگری که اثر زیادی روی کارآیی من داشته است ، نرم افزار جستجوی دسکتاپ است ، این ایزار دسترسی من را به اطلاعات روی رایانه شخصی ، سرور و اینترنت تغییر داده است ، با هاردهای بزرگتر و افزایش پهنای باند ، من چندین گیگابایت اطلاعات به شکل ایمیل ، اسناد ، فایلهای رسانه‌ای ، دیتابیس تماسها و غیره دارم.
مایکروسافت بیش از ۵۰ هزار کارمند دارد ، بنابراین وقتی به این مطلب فکر می‌کنم که آینده پرداخت آنلاین چگونه خواهد بود و یا چه کار جالبی خواهد بود که خاطرات دوران کودکی را بشود
ذخیره کرد ، یا هر چیز جدید دیگر ، آنها را می‌نویسم ، بعد کارکنان می‌توانند آنها را ببینند و بگویند : نه، تو اشتباه می‌کنی یا اینکه می‌دانی چنین کاری اینجا و اینجا انجام شده است؟
نرم‌افزار SharePoint ، یکی از نرم‌افزارهای محبوب بیل گیتس برای تماس با کارکنان و مدیریت پروژه‌هاست
+ نوشته شده در  چهارشنبه یکم خرداد 1387ساعت 17:59  توسط یونس فرخ پور  | 

با توجه به اين كه برنامه هاي تحت داس رابط ضعيفي نسبت به ويندوز و لينوكس و... دارند ما حداقل بايد برنامه هايمان را به ماوس مجهز كنيم تا اين نقص تا حدودي برطرف شود. مخصوصا اگر بخواهيم يك برنامه گرافيكي بنويسيم برنامه مان بدون ماوس غير قابل استفاده خواهد بود. خب بهتره بريم سر اصل مطلب. در اين مقاله فعال كردن ماوس در زبان C توضيح داده شده. البته ما ماوس را با استفاده از وقفه ها كه در تمام كامپيوترهاي IBM يكي هستند فعال مي كنيم و كدهاي ارائه شده با كمي تغيير در پاسكال و بيسيك نيز كار خواهند كرد. اگر شما با زبان C آشنايي نداريد ممكن است اين كدها برايتان ناآشنا باشند. پس بهتر است از خواندن اين مقاله صرفنظر كنيد. البته ممكن است به زودي آموزش C و ++C را نيز در اين سايت بگذاريم. ابتدا براي اين كه از ماوس استفاده كنيم بايد بفهميم كه درايور ماوس نصب شده يا نه؟ اگر نصب نشده باشد نمي توان ماوس را فعال كرد. براي اين كار از تابع شماره 00hex از وقفه 33hex استفاده مي كنيم. اگر قبلا با وقفه ها كار كرده باشيد حتما مي دانيد كه شماره تابع وقفه در ثبات AH قرار مي گيرد ولي توابع 33hex به جاي AH از AX استفاده مي كنند. يعني براي فراخواني اين وقفه شماره تابع آن را در ثبات AX قرار مي دهيم. پس از فراخواني اين وقفه اگر مقدار ثبات AX برابر 0000hex باشد يعني درايور ماوس نصب نشده و ما نميتوانيم از ماوس استفاده كنيم. پس از اين كار بايد نشانگر ماوس را د ر صفحه ظاهر كنيم. نشانگر ماوس دقيقا در وسط صفحه ظاهر خواهد شد. اگر در حالت متني باشيم اين نشانگر به صورت يك مستطيل و اگر در حالت گرافيكي باشيم نشانگر به صورت يك فلش كوچك نشان داده خواهد شد. براي ظاهر كردن كافي است از تابع شماره 01 وقفه 33h استفاده كنيم. برنامه زير هم درايور ماوس را تشخيص داده و هم آن را در حالت متني نشان ميدهد:

#include
#include
#include
#include
void main()
{ union REGS r;
clrscr();
r.x.ax= 0;
int86(0x33,&r,&r);
if(r.x.ax==0)
{
printf("No Mouse Available.....");
getch();
exit(1);
}
r.x.ax=1;//place 01 in AX register
int86(0x33,&r,&r);//showing the mouse pointer
printf(“press any key to exit…”);
getch();
}


ادامه مطلب
+ نوشته شده در  جمعه دوازدهم بهمن 1386ساعت 0:9  توسط یونس فرخ پور  | 

اشاره :
كدام زبان برنامه‌نويسي را انتخاب كنم؟ از كدام نوع ديتابيس استفاده كنم؟ اين‌ها سؤالات قديمي و تاحدودي كليشه‌اي هستند. با اين حال خواندن يكي دو مقاله جالب در اينترنت باعث شد، طرح مجدد اين موضوع هميشگي را خالي از فايده ندانم.


ادامه مطلب
+ نوشته شده در  یکشنبه بیست و هفتم آبان 1386ساعت 12:24  توسط یونس فرخ پور  | 

 

دوستان علاقه مند به برنامه نويسي SQL و ORACLE می تونن به لینکهاي زیر مراجعه کنند . 

آموزش SQL 

آموزش oracle 10g

+ نوشته شده در  جمعه پنجم مرداد 1386ساعت 18:33  توسط بهرام منافی  | 

اصول برنامه نويسي


الگوريتم
مجموعه اي از دستورالعمل ها كه به صورت محدود و پايان پذير است و اگر بصورت متوالي دنبال شود موجب انجام كار خاصي مي گردد.
شرايط و معيارالگورتيم
1. ورودي( مي تواند چند ورودي داشته باشد يا هيچ ورودي را از محيط خارج تامين نكند . )
2. خروجي (حداقل يك كميت به عنوان هدف و نتيجه الگوريتم به خروجي برگزدانده مي شوند . )
3. قطعيت (واضح و بي ابهام باشد . )
4. محدوديت ( بالاخره بايد الگوريتم پايان يابد و براي تمام حالات عملي انجام گيرد و بازتابي داشته باشد . )
5. كارآيي ( هر دستورالعمل بايد انجام پذير باشد . )
نكته : در علم كامپيوتر بايد بين يك الگوريتم و يك برنامه تفاوت قائل شد، بعنوان مثال سيستم عامل برنامه ايست كه هيچ گاه پايان نمي پذيرد در صورتيكه شرط الگوريتم پايان پذيريست .
نكته : يك الگوريتم را به شيوه هاي مختلف مي توان بيان كرد و براي هر مساله مي توان الگوريتم هاي متفاوتي نوشت .
نوع داده مجرد ADT (abstract data type)
يك نوع داده مجرد مفهوم مجرديست كه با مجموعه اي از خواص منطقي تعريف شده است . بعد از تعريف اين نوع داده مجرد، بايد اعمال مربوط به آن را مشخص گردد و مي توان آن نوعِ داده را پياده سازي كرد .
يك پياده سازي نرم افزاري شامل ويژگي هاي چگونگي نمايش يك نوع داده جديد بر اساس داده هاي موجود است، به عبارت ديگر نوع داده مجموعه اي از انواع داده مقصد) ( object وعملكرد هايي است كه بر روي اين نوع داده ها عمل مي كنند .
توابع يك نوع داده مجرد را به چند گروه تقسيم مي كنند :
1. ايجاد كننده يا سازنده ( اين توابع نمونه جديدي از نوع تعيين شده ايجاد مي كند . )
2. تبديل كننده ( اين توابع با استفاده از يك يا چند نمونه ديگر نمونه تعيين شده را ايجاد مي كند . )
3. مشاهده كننده يا گزارش دهنده ( اطلاعاتي را راجع به يك نمونه از نوع داده را ارائه مي دهد . )
بررسي نحوه اجراي يك برنامه
عواملي چون :برآورده شدنِ اهداف اصلي برنامه، صدق كردن تمام مقادير، مستند سازي برنامه، ايجاد واحدهاي منطقي، استفاده موثر از توابع، خوانا بودن كد ها ي برنامه، استفاده موثر برنامه از حافظه ها ي اصلي و كمكي، زمان اجراي برنامه و ... در ارزيابي برنامه موثرند .
تعيين تخمين هاي حافظه و زمان مورد نياز را تحليل نحوه اجراي برنامه مي نامند .
پيچيدگي فضاي لازم
فضاي مورد نياز يك برنامه شامل موارد زير است :
1. نيازمنديهاي فضاي ثابت
2. نيازمنديهاي فضاي متغير
مي توانيم نيازمنديهاي فضاي كل را بصورت مجموع نيازمنديهاي فضاي ثابت و متغير بيان كنيم .
پيچيدگي زمان
ميزان يا پيچيدگي زمان يك برنامه مقدار زماني است كه كامپيوتر براي اجراي كامل برنامه نياز دارد . اين زمان شامل مجموع زمان كامپايل و زمان اجراي برنامه است البته از آنجا كه برنامه بعد از كامپايل اول ديگر نيازي به كامپايل مجدد ندارد و مي توانيم چندين بار بدون كامپايل آنرا اجرا كنيم، زمان مهم براي ما زمان اجراي برنامه است .
چرخه زندگي سيستم ( شيوه توسعه نرم افزار)
اين چرخه شامل موارد زير است :
1. تعين نياز هاي مسئله :
نيازها دو دسته اند : دسته اول نيازمنديهاي عملياتي سيستم كه در واقع كاربر با آن سرو كار دارد و دسته دوم نيازمندي هاي غير عملياتي هستند كه اين نيازمنديها محدوديت ها و استانداردها ي سيستم را مشخص مي كنند .
2. تحليل مساله:
در تحليل دو شيوه موجود است : شيوه از پايين به بالا ((bottom up و شيوه از بالا به پايين ((top down
در شيوه از پايين به بالا ما ابتدا كل برنامه را در نظر گرفته و بعد به ريشه ها و قسمت ها ي مختلف مي پردازيم . اين روش قديمي و غير ساخت يافته است اما در شيوه از بالا به پايين ما برنامه را به قسمت هاي قابل كنترل تقسيم مي كنيم و در نهايت به برنامه اصلي دست پيدا مي كنيم .
3. طراحي الگوريتم براي حل مساله :
در اين مرحله، طراح سيستم را هم از نقطه نظر داده هاي مقصود مورد نياز برنامه و هم از نظراعمالي كه بر روي انها انجام مي گيرد، بررسي مي كند. از آنجايي كه نوع داده مجرد و مشخصات الگوريتم ها مستقل از زبان هستند لذا جزئيات برنامه نويسي را ناديده مي گيريم .
4. پياده سازي الگوريتم :
در اين مرحله الگوريتم توسعه مي يابد و بر طبق زبان انتخاب شده الگوريتم پياده سازي مي شود .
5. بازبيني، بررسي و آزمايش برنامه كامل شده :
در اين مرحله برنامه ها با انواع داده هاي ورودي مختلف آزمايش و خطا هاي مختلف رفع مي شوند، جنبه هاي مختلف در اين زمينه عبارتند از : اثبات درستي، آزمايش درستي و خطا زدايي .
نكته : بايد توجه داشت كه برنامه بدون خطايي كه سرعت پاييني دارد از ارزش كمي برخوردار است .
6. پشتيباني و به روز رساني برنامه :
اين بخش طولاني ترين دوره شيوه توشعه نرم افزار است . دراين مرحله برنامه وابسته به نيازهاي جديد يا تغيير نيازهاي قديم يا بروز اشتباهات مختلف و ... به روز رساني يا اصلاح مي شود .
نكته : سه مرحله اول توسعه نرم افزار يعني نيازمنديها، تحليل مساله و طراحي الگوريتم، به عهده تحليلگران سيستم است و برنامه نويس مرحله چهارم را به عنوان نوعي كتابدار انجام مي دهد . در اصطلاح برنامه نويسي به دو مرحله آغازي تحليل و به مراحل سه و چهار تركيب گفته مي شود .
بعضي از الگو هاي توسعه نرم افزار :
1. روش آبشاري :
در اين روش پس از تعريف هر مرحله توسعه نرم افزار به سمت مرحله بعدي پيش مي رود .
2. برنامه نويسي اكتشافي :
دراين روش در حداقل زمان ممكن سيستمي ايجاد مي شود و سپس اصطلاحات لازم در آن بوجود مي آيد، تا عمل مورد نظر را به درستي انجام دهد . اين روش معمولا در توسعه سيستم هاي هوش مصنوعي كه كاربران نمي توانند نياز هاي مشروح را بطور دقيق بيان كنند و كفايت به جاي صحت هدف اصلي طراحان سيستم است بكار مي رود .
طراحي شئ گرا:
ازآنجا كه پنهان سازي اطلاعات يك استراتژي طراحي است كه در آن اطلاعات تا آنجايي كه ممكن است در داخل قطعات سيستم مخفي مي شوند ، طراحي شئ گرا نيز بر مبناي پنهان سازي اطلاعات است ، در روش شئ گرا سيستم به صورت مجموعه اي از اشيا يا حالت اختصاصي خود در نظر گرفته مي شود .
ويژگي هاي طراحي شي گرا :
1. ناحيه مشترك داده ها حذف مي شوند و اشيا به جاي استفاده از متغير هاي عمومي و مشترك با تبادل پيام ها با يكديگر ارتباط برقرار مي كنند . اين كار هم باعث سهولت در اصلاحات و هم كاهش اتصال كل سيستم مي شود .
2. اشيا نهادهاي مستقلي هستند كه به راحتي قابل تغييرند زيرا تمام حالت ها و اطلاعات در داخل خود شئ پنهان شده است و اشيا ديگر چه از روي عمد و چه تصادفي به اطلاعات يك شي نمي توانند دست يابند و تغيير در يك شي بدون مراجعه به اشياي ديگر صورت مي گيرد .
3. اشيا ممكن است توزيع شده باشند و مي توانند بصورت ترتيبي يا موازي اجرا شوند .
امتيازات روش طراحي شئ گرا :
1. به دليل مستقل بودن اشيا نگهداري سيستم آسانتر است ، مي توان اشيا را جداگانه اصلاح كرد و افزودن يا حذف يك شي تغييري در ساير اشيا سيستم نخواهد داشت .
2. اشيا قطعات مناسبي هستند كه مي توانند مجددا مورد استفاده قرار گيرند .
3. براي دسته اي از سيستم ها نگاشت روشني بين نهاد هاي دنياي واقعي ( مثل قطعات سخت افزاري ) و اشياي كنترل كننده آنها در سيستم وجود دارد اين موضوع درك سيستم را بالا مي برد .
طراحي تابعي :
طراحي تابعي روشي براي انجام طراحي نرم افزار است ، در آن طراحي به مجموعه اي از واحدهاي متاثر به هم تجزيه مي شود كه هر كدام وظيفه خاصي دارند در واقع طراحي تابعي مكمل تكنيك طراحي شي گراست . يك روش طراحي تابعي طراحي ساخت يافته است، اين روش با استفاده از نمودارهاي جريان داده ها پردازش داده اي منطقي را توصيف مي كند .
استراتژي طراحي تابعي بر تجزيه سيستم به مجموعه اي از توابع متاثر به همه تكيه دارد كه حالت متمركز سيستم بين توابع مشترك است . طراحي تابعي جزييات الگوريتم را در يك تابع پنهان مي كند اما اطلاعات حالات سيستم مخفي نيست، اين كار ممكن است موجب مشكلاتي گردد زيرا يك تابع مي تواند اين حالت را طوري تغيير دهد كه ساير توابع انتظارش را ندارند . اين روش زماني موفق است كه ميزان اطلاعاتي حالت سيستم اندك باشد و از اشتراك داده ها جلوگيري گردد . بعضي از سيستم هايي كه واكنش هاي آنها وابسته به يك محرك يا ورودي است و متاثر از ورودي هاي قبلي نيست ، ماهيت تابعي دارند.


ادامه مطلب
+ نوشته شده در  پنجشنبه سیزدهم اردیبهشت 1386ساعت 12:59  توسط بهرام منافی  | 

 اشاره :
در اين مقاله قصد دارم يكي از مباحث جديد در مهندسي نرم‌افزار را به صورت مختصر توضيح دهم. در يادداشت‌هاي بعدي نيز سعي خواهم كرد اصول و روش هاي آن را شرح دهم. اين مدل توليدي نرم‌افزار را بارها در پروژه‌هاي نرم‌افزاري كه مديريت و اجرا كرده‌ام اعمال كردم و تجربه نشان داده است كه خيلي از مواقع اين روش توانسته است گوي سبقت را از روش‌هاي معمول و متداول بربايد.

Agile Software Development
در طراحي يك نرم‌افزار رعايت اصول استاندارد طراحي، استفاده از الگوهاي آماده و بهره‌گيري از روش‌هاي نوين بسيار مهم است، ولي نكته مهم اين است كه در اصل كاربران، باعث مي‌شوند يك پروژه نرم‌افزاري به نتيجه برسد. يعني فناوري و پروسه استفاده شده، در حقيقت در رده دوم اهميت قرار دارند.

بسياري از ما با پروژه‌هاي نرم‌افزاري‌اي كه بدون هيچ‌گونه اصولي تهيه مي‌شوند، مواجه شده‌ايم و ديده‌ايم كه كار با اين گونه پروژه‌ها تا چه اندازه مشكل است. در اين پروژه‌ها مشكلات عمده‌اي كه پيش ميآيند عبارتند از: عدم توانايي توليدكنندگان در تشخيص نيازهاي كاربران، وجود ايرادها و error هاي تكراري، تأخير در ارائه محصول و... . از طرف ديگر، مشتريان اين‌گونه نرم‌افزارها از عدم دقت در ارائه برنامه زمانبندي دقيق از طرف طراحان سيستم، كيفيت كمِ نرم‌افزارهاي توليدي و افزايش هزينه‌ها شكايت دارند.

در اين پروژه‌ها برنامه‌نويسان ساعت‌هاي زيادي را صرف تهيه نرم‌افزاري مي كنند كه مملو از مشكل است و تلاش آنان چنان كه بايد، مؤثر نيست. وقتي با اين مشكلات مواجه مي‌شويم، به اين فكر مي‌افتيم كه بايد در كار خود روش و رويه‌اي درست داشته باشيم كه فعاليت‌هاي مربوط به پروژه در آن مشخص و منظم باشد، نيازهاي كاربران در آن مشخص باشد و خروجي نرم‌افزار و محصولات پروژه با موفقيت توليد شوند.

براي اين كار مي‌توانيم به تجربيات كسب شده در پروژه‌هاي گذشته خود مراجعه كنيم و فعاليت‌هاي موفقي كه در آن پروژه‌ها انجام شده است را دوباره انجام دهيم و از كارهايي كه باعث مشكل در آن پروژه‌ها گشته‌اند، پرهيز كنيم.  البته نمي‌توانيم با اين  كار از وجود مشكل در نرم‌افزار خود مطمئن باشيم؛ زيرا مشكلات، چه بخواهيم چه نخواهيم، بروز خواهند كرد و از آن جايي كه در كار رويه‌اي ثابت نداريم و تنها از تجربيات قديمي خود استفاده مي‌كنيم، نمي‌توانيم انتظار داشته باشيم كه نرم‌افزارهاي ما بدون اشكال باشند؛ زيرا ممكن است با مشكلي برخورد كنيم كه تا به حال با آن برنخورده‌ايم و تجربه‌اي در رفع آن نداريم.

اوايل سال 2001 تعدادي از محققان و صاحب‌نظران نرم‌افزار، گروهي به نام  Agile Alliance را تشكيل دادند كه توانست راه‌حلي براي تيم‌هاي نرم‌افزاري پيدا كند تا به سرعت و با كيفيت بالا نرم افزار توليد كنند و بتوانند اگر تغييري در قسمتي از نرم‌افزار به وجود آمد، آن را كنترل كنند و اصلاحات لازم را اعمال نمايند. آن‌ها مدعي هستند كه راه بهتري براي توليد نرم‌افزار پيشنهاد كرده‌اند كه كار ما برنامه‌نويسان را آسان كرده است.

آن‌ها چند اصل مهم را به عنوان مانيفيست يا بيانيه خود در نظر گرفته‌اند. از جمله: اهميت نقش اعضاي تيم در پروژه نرم‌افزاري،  توليد مستندات مناسب براي نرم‌افزار، اهميت نقش كاربران سيستم و استفاده از آن‌ها در مراحل ساخت نرم‌افزار، و توانايي اعمال تغييرات در نرم‌افزار در تمامي مراحل توليدي آن.

منبع : ماهنامه شبکه


ادامه مطلب
+ نوشته شده در  چهارشنبه بیست و دوم فروردین 1386ساعت 1:8  توسط یونس فرخ پور  | 
آخرین اخبار فوتبال ایران و جهان