نرم افزار
نرم افزار طراحی شده با ویژوال بیسیک ۶ و دیتابیس SQL بصورت مبتنی بر سرور و شبکه
متدهای گرافیکی مبتنی بر کدجاک
مناسب برای واحد منابع انسانی
شماره تماس : 09127558422

نرم افزار طراحی شده با ویژوال بیسیک ۶ و دیتابیس SQL بصورت مبتنی بر سرور و شبکه
متدهای گرافیکی مبتنی بر کدجاک
مناسب برای واحد منابع انسانی
شماره تماس : 09127558422

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

اولین برنامه اندرویدی ما را از لینک زیر یا از طریق مایکت می توانید دانلود کنید
دانلود از مایکت:
ورژن یک:
https://myket.ir/app/Sh.Bahayiiii
ورژن2:
https://myket.ir/app/Sh.Bahayiiii2
دستور کپی فایل از یک مسیز به مسیر دیگر در ویژوال بیسیک 6
برای این کار از دستور Filecopy به شکل زیر می توان استفاده کرد:
FileCopy "c:\a.bat", "c:\a.bat"
بدست آوردن شماره سریال هارد دیسک با برنامه نویسی ویژوال بیسیک 6

کد:

حالا سوال اینجاست که چطور در زبان برنامه نویسی اندروید این کار رو بکنم به فرض شما برنامه ای نوشته اید که میخواهید کاربری ایمیل خود را ثبت کند تا وارد برنامه شود خب ما اینجا کدی قرار دادیم تا بتوان ایمیل ورودی را چک کرد و درستی ان را فهمید. البته این یک رویه است و باید خودتون بسته به جایی که میخواید از اون استفاده کنید
* این کد مربوط به موتور Basic4andriod می باشد
SubVerify_Email(MailasString)AsBoolen
Dim eMatch AsMatcher
eMatch =Regex.Matcher("\w+@\w+\.\w+", eAddress)
Return eMatch.Find
EndSub
آموزش ارسال پیامک با فشار دادن دکمه در اندروید رو گذاشتم
برای این کار باید یک دکمه به اکتیویتی خودتون اضافه کنید و اون تعریف کنید و بعد از آن در رویه کلیک دکمه
کتابخانه فون رو فراخوانی کرده و بتونید اس ام اس ارسال کنید
توجه داشته باشید که کتابخانه فون گسترده است و یکی از موارد آن ارسال اس ام اس است.
* برنامه نویسی اندروید در برنامه Basic4Android انجام شده و در اندروید استدیو این کد به نوعی دیگر نوشته می شود
کد:
SubButton1_Click
PrivateSmsAsPhoneSms
Sms.Send2("number","text",False,False)
EndSub
نوع پروژه : سورس
زبان پروژه : VB.NET&ASP.NET
بانک اطلاعاتی پروژه زمخت سختسران خيسكننده بوربور : SQL Server
تعداد اسماعيلفر بازارگرمي برنامهدار صفحات :
حجم فایل چارسوق حتماً پیوست : 7.50
رمز: www.sourcecodes.ir
|
عموماً انتخاب پایگاه داده مناسب در فرایند توسعه نرم افزار از مهمترین مراحل تحقیق و توسعه می باشد. در فرایند انتخاب، یکی از اساسی ترین سوالات این است که از پایگاه داده تجاری همراه با لایسنس خریداری شده استفاده شود یا از پایگاه داده منبع باز؟ استفاده از هر کدام این دو نوع پایگاه داده (منبع باز یا تجاری) معایب و مزایای خاص خود را دارا می باشند. در ادامه قصد داریم با توجه به شرایط کشور و شرکت ها و کاربران ایرانی به مزایا و معایب آنها بپردازیم... |
|||||||||||||||
|
عموماً انتخاب پایگاه داده مناسب در فرایند توسعه نرم افزار از مهمترین مراحل تحقیق و توسعه می باشد. در فرایند انتخاب، یکی از اساسی ترین سوالات این است که از پایگاه داده تجاری همراه با لایسنس خریداری شده استفاده شود یا از پایگاه داده منبع باز؟ استفاده از هر کدام این دو نوع پایگاه داده (منبع باز یا تجاری) معایب و مزایای خاص خود را دارا می باشند. در ادامه قصد داریم با توجه به شرایط کشور و شرکت ها و کاربران ایرانی به مزایا و معایب آنها بپردازیم.
پایگاه داده Open Source چیست؟
پایگاه داده تجاری یا اختصاصی چیست؟
مقایسه
امنیت نکته دیگری که در محصولات تجاری بسیار حائز اهمیت است، بحث نفوذ می باشد. یعنی به دلیل دسترسی نداشتن توسعه دهنده به کدهای محصول، احتمال دارد شرکت توسعه دهنده راه نفوذی برای سرقت اطلاعات برای خود باقی گذارد و اطلاعات کاربران را به راحتی در دست بگیرد ولی در محصولات منبع باز همه چیز در دست استفاده کننده است و راه نفوذی باقی نمی ماند.
قابلیت سفارشی سازی
وابستگی به منابع سخت افزاری و نرم افزاری
هزینه به متن عکس زیر توجه کنید:
عکس بالا مربوط به Microsoft SQL Server 2016 می باشد که به صورت خلاصه در متن آن گفته شده: " این برنامه کامپیوتری تحت قانون کپی رایت و تحت حفاظت معاهدات بین المللی می باشد و هرگونه توزیع غیر مجاز این برنامه به شدت تحت مجازات مدنی و کیفری و تحت پیگرد قانونی قرار خواهد گرفت." خب همانطور که اشاره کردیم شرکت های بسیاری از نسخه غیر مجاز و کرک شده استفاده می کنند. یعنی کاملا قوانین کپی رایت را زیر پا گذاشته اند و به شدت جریمه خواهند شد. که این جریمه توسط قاضی پرونده معین می شود. که شامل جریمه مالی که به صورت پایه می باشد از حدود 150000$ شروع شده و به اضافه مقدار فروش شرکت از آن نرم افزار و تعداد دفعات نصب شده این نرم افزار بر روی هر کامپیوتر، جریمه های بسیار بسیار سنگینی در حدود چند صد میلیون دلاری و حتی چندین سال زندان برای رئسای شرکتهای متخلف در برخواهد داشت و احتمالا تمام کاربران آن نرم افزار، نرم افزارشان بلا استفاده خواهد شد. که بعد از برداشته شدن تحریم ها مطمئنا شرکت های متخلف باید جرایم خود را پرداخت کنند. این موضوع برای تمام نرم افزارهایی که به صورت غیر مجاز استفاده می شوند، مانند Oracle نیز صدق می کند. برای اطلاعات بیشتر از از قوانین کپی رایت نرم افزارهای Oracle و Microsoft می توانید به لینک های زیر مراجعه کنید. قوانین کپی رایت Oracle (ممکن است به دلیل تحریمها دسترسی به این سایت از سوی اوراکل محدود باشد) در شرایط کنونی استفاده از نرم افزارهای منبع باز رایگان یا محصولات منبع بازی که دارای لایسنس بسیار ارزان تری نسبت به محصولات اختصاصی هستند، به صرفه می باشد.
نکات مطرح شده در بالا در جدول ذیل خلاصه گردیده است:
نتیجه گیری برچسب ها : پایگاه داده، تجاری، متن باز |
امروزه زبان های برنامه نویسی متعددی وجود دارند که مدیران پروژه ها بر حسب نیاز نرم افزار و امکاناتی که خود نیاز دارند، می توانند برای توسعه نرم افزار انتخاب می کنند. در این مقاله قصد داریم به طور کلی چندین زبان مطرح برنامه نویسی را با یکدیگر مقایسه کنیم و دلایل خود را جهت انتخاب زبان توسعه تیم یار، بیان کنیم. لازم به ذکر است در این مقاله قصد نداریم به صورت جزئی زبان ها را بررسی کنیم بلکه پیش فرض بر این است که شما با زبان های برنامه نویسی آشنایی دارید. در ادامه با ما همراه باشید.
میزان استفاده از زبان های برنامه نویسی طبق آمار
زبان های برنامه نویسی به 4 دسته شئ گرا، رویه ای، کاربردی و منطقی دسته بندی می شوند. میزان استفاده از هر دسته در میان برنامه نویسان در جدول زیر قابل مشاهده می باشد. البته قابل ذکر می باشد که آمار جدول زیر تا سال 2013 میلادی می باشد. (Wavesoft)
جدول 1 - میزان استفاده از دسته های مختلف زبان های برنامه نویسی
|
دسته بندی زبان ها |
میزان استفاده |
|
Object-Oriented (شئ گرا) |
58.1% |
|
Procedural (رویه ای) |
37% |
|
Functional (کاربردی) |
3.2% |
|
Logical (منطقی) |
1.7% |
جدول 2 - رتبه بندی شرکت TIOBE
|
رتبه |
زبان |
میزان استفاده |
|
1 |
C |
18.729% |
|
2 |
Java |
16.914% |
|
3 |
C++ |
10.428% |
|
4 |
Objective-C |
9.198% |
|
5 |
C# |
6.119% |
|
6 |
PHP |
5.784% |
|
7 |
VB (Visual Basic) |
4.656% |
|
8 |
Python |
4.322% |
|
9 |
Perl |
3.276% |
|
10 |
Ruby |
1.670% |
|
11 |
Java Script |
1.536% |
|
12 |
VB.NET |
1.131% |
|
13 |
Lisp |
0.894% |
|
14 |
Transact-SQL |
0.819% |
|
15 |
Pascal |
0.805% |
|
16 |
Bash |
0.792% |
|
17 |
Delphi/Object Pascal |
0.731% |
|
18 |
PL/SQL |
0.708% |
|
19 |
Assembly |
0.638% |
|
20 |
Lua |
0.632% |
در چند نمودار زیر میزان پروژه هایی که در هر ماه با زبان های مختلف توسعه داده می شود، به نمایش در آمده است که این آمارها کاملا به روز می باشند که با مراجعه به سایت OpenHub می توانید به صورت زنده بررسی کنید و اطلاعات بیشتری کسب نمایید.

شکل 1 - میزان پشتیبانی این زبان ها در هر ماه

شکل 2 - میزان به روز رسانی نرم افزارهایی که توسط این زبان ها توسعه داده شده اند در هر ماه

شکل 3 - میزان پروژه هایی که در هر ماه با این زبان ها تکمیل می شوند
همانطور که در نمودارها مشاهده می کنید بیشترین نرم افزارهای کاربردی روز دنیا با زبان های ++C ، C و Java در حال توسعه می باشند. (برای اطلاعات بیشتر به سایت Stackoverflow مراجعه کنید.)

شکل 4 - میزان استفاده زبان های برنامه نویسی در سال 2014
نمودار زیر میزان استفاده از زبان های برنامه نویسی در مسابقات را نشان می دهد. (linkedin)

شکل 5 - میزان استفاده از زبان های برنامه نویسی در مسابقات
مقایسه زبان های برنامه نویسی از لحاظ سرعت
در نمودار های زیر اقدام به تست سرعت زبان های برنامه نویسی در یک کامپیوتر و استفاده از یک نوع الگورتیم شده است. این تست ها شامل حل پاسخ جدول Sudoku 25*20 و Matrix 1000*1000 می باشد و واحد زمان بر حسب ثانیه است. (Attractivechaos.github)

شکل 6 - Sudoku 25*20

شکل 7 - Matrix 1000*1000
نکته قابل توجه در این قسمت این می باشد که الگوریتم استفاده شده برای حل جدول Sudoku و Matrix می تواند بسیار بهینه تر و سریع تر از این باشد. الگوریتم استفاده شده برای همه زبانها یکسان می باشد.
نمودارهای زیر نشان دهنده میزان سرعت محاسبات عددی توسط زبان های C# و ++C می باشد. (برای بررسی و اطلاعات بیشتر نیز می توانید به سایت CodeProject مراجعه کنید.)

شکل 8 - محاسبات عددی با نوع داده ای مختلف در CPU های ARM

شکل 9 - جمع های عددی با نوع داده ای مختلف
مقایسه قابلیت ها
در ادامه قصد داریم از نظر قابلیت های کلیدی و مهم، چند زبان برنامه نویسی را مورد بررسی قرار دهیم.
این مقایسه شامل قابلیت های چون شئ گرایی، عمومی بودن، روش سربار گذاری، چند نخی، اشاره گر بودن، امنیت، کاربردی بودن، رویه ای بودن، سطح زبان ها (هر چه سطح زبان پایین تر باشد کد نویسی با آن سخت تر، ولی سرعت آن بالاتر می باشد)، سیستم عامل و پلتفرم های قابل پشتیبانی، انعطاف پذیری، سرعت و سخت افزار می باشد.
|
قابلیت/زبان |
C++ |
C# |
Java |
Ruby |
Visual Basic |
Python |
Perl |
|
Object-Oriented |
قدرتمند و متغیر |
قدرتمند |
قدرتمند |
ضعیف |
قدرتمند |
قدرتمند |
قدرتمند |
|
Generic Classes |
بله |
خیر |
خیر |
- |
خیر |
- |
- |
|
Method Overloading |
بله |
بله |
بله |
خیر |
خیر |
خیر |
خیر |
|
Multithreading |
بله |
بله |
بله |
بله |
خیر |
بله |
خیر |
|
Pointer Arithmetic |
بله |
بله |
خیر |
خیر |
خیر |
خیر |
خیر |
|
Security |
بسیار بالا |
بالا |
بسیار بالا |
بالا |
پایین |
پایین |
بالا |
|
Functional |
بله |
بله |
بله |
بله |
- |
بله |
بله |
|
Procedural |
بله |
بله |
بله |
- |
- |
بله |
بله |
|
Level |
سطح بالا – سطح پایین –(میانی) |
سطح بالا |
سطح بالا |
سطح بالا |
سطح بالا |
سطح بالا |
سطح بالا |
|
Operation System (OS) |
نا محدود |
محدود |
محدود |
محدود |
محدود |
محدود |
محدود |
|
Flexibility |
کاملا انعطاف پذیر - بالا |
بالا |
بالا |
متوسط |
متوسط |
متوسط |
متوسط |
|
Speed |
بسیار بالا |
بالا |
بالا |
متوسط |
متوسط |
متوسط |
متوسط |
|
Hardware |
اکثر سخت افزارها |
محدود |
محدود |
محدود |
محدود |
محدود |
محدود |
تیم یار و زبان توسعه آن
همانطور که مشاهده کردیم، زبان C و ++C از زبان های بسیار قدرتمند و انعطاف پذیر می باشند. باید به این موضوع نیز اشاره کرد که بسیاری از نرم افزار های کاربردی و سریع دنیا توسط این زبان ها توسعه یافته اند.
سایت mycplus تعدادی از بهترین نرم افزارهایی که با زبان ++C نوشته شده اند را نام برده است که عبارتند از:
Microsoft: مانند windows 95, 98, Me, 2000, XP, Microsoft Office, Internet Explorer, Visual Studio
برای توسعه تیم یار از زبان C و ++C استفاده می شود و برای این انتخاب علاوه بر مقایسه های بالا می توان به چند ویژگی این 2 زبان به صورت زیر اشاره کرد:
جستجویی دودویی به صورت غیر بازگشتی

سوالات:

پاسخ ها:




نرم افزار کار با پورت USB و مدیریت فلش مموری
در چند ماه گذشته روی سورسی کار می کردیم که قابلیت مدیریت پورت یو اس بی را داشته باشد
خب مشکلاتی در این کار داشتیم که با تلاش و مطالعه فراوان از سایت های خارجی و کمک اساتید دانشگاه توانستیم تا حدودی آن ها را رفع کنیم . ازجمله مشکلاتی که درگیر آن بودیم کمبود منابع در این زمینه بود. یعنی سورسی یا نمونه کدی تقریبا وجود نداشت که بتوانیم از آن به طور کلی استفاده کنیم ...
در آخر هم مجبور شدیم قید برنامه نویسی از طریق کار با پورت را بزنیم و با استفاده از برنامه نویسی زیرکانه اقدام به کنترل فلش مموری کنیم. که در ادامه توضیح خواهم داد که چه کردیم.
کارهایی که ما قصد داشتیم انجام بدهیم این موارد بود...
1- اگر فلش مموری به سیستم اتصال پیدا کرد برنامه به صورت RUNTIME بتواند آن را تشخیص دهد
خب ما این کار از دو بخش تشکیل شد: تشخیص عادی فلش و قسمت بلادرنگ
برای تشخیص عادی فلش ما مجبور شدیم از برنامه نویسی پورت استفاده نکنیم به دلیل محدودیت هایی که ویژوال بیسیک در این زمینه دارد و به صورت زیرکانه ای از شی درایو برای کنترل این قسمت استفاده کردیم که کارساز هم بود.
برای بلادرنگ بودن هم از تایمر استفاده کردیم که کار راحتی بود ولی خب یک سری مشکلات هم داشت مثلا اشغال فضای حافظه تقریبا زیاد ...
2- در مرحله قبلی ما فقط می توانستیم یک فلش و با یک نام را کنترل کنیم و بلادرنگ تشخیص دهیم... حال اگر فلش دوم یا سوم هم به سیستم اتصال پیدا کرد چه باید می کردیم...؟
این کار هم تقریبا آسان بود فقط کافی بود نام درایو قبلی (در صورت وصل بودن فلش اول) پیدا می کردیم و به برنامه میگفتیم که خب یک فلش وجود دارد و این فلش تازه اضافه شده فلش دوم است.... به همین ترتیب تا چهار فلش را می توانستیم انجام دهیم...
3- نمایش دادن ایکون مربوط به هر فلش و حالت گرافیکی برنامه
ما برای این قسمت در نظر گرفتیم که از آیکون فلش مموری استفاده کنیم و بگوییم که اگر فلش اول به سیستم متصل شد ایکون مربوط به این فلش در کنار system tray برنامه ظاهر شود... البته ن در خود سیستم تری . بلکه در قسمت بالای آن به صورت جداگانه ای نمایان شود... همین طور برای فلش های بعدی هم همین کار را انجام دادیم...مشکلی که در این جا داشتیم بدست آوردن مقیاس آن منطقه بود یعنی ما باید آیکون یا همان عکس فلش را در محلی در سمت راست و قسمت پایین قرار می دادیم بطوری که روی نوار وظیفه نیفتد... خب این کار را با دستور screen به راحتی انجام دادیم...یکم جمع و تفریق به این قسمت اضافه کردیم تا اگر فلش بعدی متصل شد درست کنار ایکون فلش قبلی نمایان شود...
تا اینجا شد چیزی که ما ساختیم... ولی خب قطعا تنها همین موارد کم مد نظرمون نبود... البته یادم رفت بگم که ما یک قسمت بر روی هر ایکون اضافه کردیم تا کاربر با کلیک بر روی آن بتواند فلش را به صورت امن Remove کند که خب این کار هم چند ساعتی وقت گرفت. مواردی بود که در طراحی اولیه برنامه به آن فکر کرده بودیم و قرار بود که یک به یک انجام شود که متاسفانه به دلیل گرفتاری های بنده نتوانستم بیشتر ازاین ادامه دهم ... مواردی مثل:
1- حذف حداقل یک فایل مخرب به طور مثال فایل اتوران از فلش وصل شده بصورت بلادرنگ و قبل از باز شدن فلش....
2- ایجاد یک موتوز جست جوی محتوایی فلش ... طریقه کارش هم این طور در نظر گرفته بودیم که اگر فلش متصل شد به صورت خودکار تمامی فایل های داخل آن به صورت تفکیک شده در اختیار کاربر قرار بگیرد و یا کاربر بنواند با سرچ کردن موارد خود را پیدا کند... البته مواردی هم بود که میخواستیم در این قسمت اضافه کنیم مثلا برنامه تشخیص دهد که فلش وارد شده در حال پر شدن است و به کاربر پیغام دهد و اگر کاربر اجازه داد تمامی پوشه ها را به صورت زیپ کند تا فلش حجم بیشتری پیدا کند... و مواردی دیگری مانند این ها
3- در بحث امنیتی میخواسیم مواردی ایجاد کنیم مثلا پاک کردن رد و پای فلش وصل شده از سیستم... خب همه ما میدانیم که وقتی فلش یا هر وسیله ای به سیستم متصل می شود یک رد و پا از ان در رجیستری ثبت می شود. مثلا برای فلش نام فلش و زمان وصل شدن آن به سیستم در رجیستری ثبت می شود. ما میخواستیم با اجازه کاربر این مورد را پاک کنیم ...
4- ...
در کل طرح خوبی بود و ارزش کار کردن هم داشت و دارد و همین طور که توضیح دادم میتوان با کمی سعی و خلاقیت به موارد آن افزود این ایده می تواند تا جایی پیش برود که کنترل و مانتیتورینگ دقیق بر روی پورت ایجاد کرد و در آخر میتواند آن را بصورت تحت شبکه قرار داد تا تمامی فلش های متصل شده به هر شبکه ای تحت نظارت باشد و ادمین بتواند هر کاری که خواست با فلش کلاینت ها انجام دهد.... خب تمامی این کار ها را می توان انجام داد ولی یک مشکل اساسی وجود داشت. و آن هم خود ویژوال بیسیک بود(ما برنامه نویسی بر روی پورت انجام دادیم بدون برنامه نویسی پورت)... همینطور که میدانید این پروژه به سمتی ادامه پیدا کرد که ویژووال بیسیک قدرتی در این زمینه نداشت و اگر زبان دیگری مثل سی شارپ بود شاید کمتر وقت صرف این کار می شد و راحت تر هم می توانستیم این کار را انجام دهیم...
دوستانی که میخوان این برنامه را تا آنجایی که ادامه دادیم دریافت کنند و به عنوان پروژه روی آن کار کنند به ایمیل بنده اطلاع دهند... و اگر نکته یا مورد یا ایده خاصی دارید که بتواند به این پروژه کمک کنند لطفا در نظرات اطلاع دهید...