سلام خدمت اساتید عزیز
مدتی هست که تصمیم گرفتم برای شرکتی که در آن مشغول به کار هستم یک اپلیکیشن ویندوزی بنویسم که هم کار خودم راحتتر باشه و هم اینکه بتونم یه چیزی یاد گرفته باشم!
حالا سوالی که از شما دارم اینه که بنظر شما باتوجه به اینکه معمولا سیستم های اداری و کلا شرکت ها خیلی بروز نیستند و از نرم افزارها و همینطور ویندوزهای نسخه بروز شده استفاده نمیکنند بهترین زبان و فریمورک برای ساخت یک اپلیکیشن دسکتاپ که ظاهر کاربرپسندی هم داشته باشه و منابع آموزشیش زیاد باشه کدام است؟
شخصا بخاطر علاقه ای که به پایتون دارم ترجیح میدم از پایتون و PyQt5 استفاده کنم اما دوسدارم نظر شما بزرگان را هم بدونم.
@amindeist
سلام .
با electron میشه برنامه های خیلی خوب و قشنگی ساخت . البته اگه html , css , js بلد باشید. نمونه اش هم میشه به ادیتور های vscode و atom اشاره کرد.
برای ساخت برنامه های ویندوزی بنظرم فریمورک دات نت عالیه. در واقع فلسفه دات نت چه برای ابزارهای ویندوزی و چه تحت وب، پروژه های سازمانی (اینترپرایز) هست. حتی با ویندوز فرم میشه در کمترین زمان پروژه ای کامل نوشت حالا UWP یا WPF که جای خود دارند. خود فریم ورک ویژوال استدیو 2019 انصافاً همه چی تمومه.
ابزارها و کامپوننتهای جانبی خوبی هم مثل استیمول سافت برای گزارشگیری یا DEV Express و Telerik و... هستند که کار رو خیلی راحت کردند.
فکرشو بکنید که برای یک برنامه سازمانی یا تحت وب، ورد یا اکسل یا تقویم مشابه گوگل کلندر شخصی سازی شده را بتوانید خیلی راحت در اپ خودتون قرار بدین. کار با ویندوز فرم برای من خاطره انگیزه طوری که کد نویسی کمتری داره و بیشتر درگیر ایده اصلی هستید تا سینتکس و...
میبینین برنامه چند هزار خط کد شد، ده تا DLL تو برنامه اد میکنین و تازه حجم بیلد نهایی زیر یک مگ میشه!!!
فقط حیف و صد حیف که ماکروسافت فعلاً فقط سمت وبشو با لینوکس ساپورت کرده و بقیه بخشها هنوز خبری نیست و باید ببینیم دات نت کور لینوکس رو ساپورت میکنه یا نه!! و اگر بخواهید برنامه خروجی روی لینوکس کار کنه باید از الکترون یا qt یا pyqt یا.... استفاده کنید.
مثل اینکه تازه react-native شش عدد خروجی میده:
وب ، ویندوز ، مک ، لینوکس ، اندروید ، آی او اس
با یک سرچ میتونی این موضوع رو دنبال کنی
دوستان لطفا به این دو نکته دقت کنید که یک سیستم های اداری معمولا بروز نیستند و قابلیت پشتیبانی از مثلا UWP رو ندارن و دوم مسیر رسیدن به هدف باید کوتاه باشه
من پیشنهاد می کنم همون pyqt5 رو استفاده کنید
چون همونطور که خودتون میدونید از qml هم می تونید استفاده کنید که این خیلی میتونه کار رو برای شما اسون کنه.
ولی این که گفتید سیستم های قدیمی و بروز نشده شما باید ببینید کدوم فریمورک زمان کمتری برای deploy کردن از شما میگیره چون این کار ممکنه اندازه کل زمان ساختن اپ از شما انرژی و زمان بگیره:
اول این که شما نمیتونید خیلی روی ساپرت xp حساب کنید (مگه این که این فریمورک رو خودتون با ساپرت xp از روی سورس بیلد کنید و من اطلاع ندارم که در نسخه های جدید کیوت قابلیت ساپرت xp رو داخل سورسشون دارن را نه) این رو برای این گفتم که هنوز اداره های دولتی زیادی هستن که از xp استفاده می کنن
دوم این که معمولا ویندوز های سیستم های اداری سالم نیستن و علاوه بر لایبرری های مورد نیاز اپ شما ممکنه خیلی از پیشنیاز های اولیه که شما فکر می کردید روی فلان نسخه ویندوز به بعد باید باشه روی سیستم نیست و یا براشون مشکلی پیش اومده (مثلا ویروس، استفاده نادرست کارمند ها یا تعمیر های الکی مسئول فنی یا این ویندوز های که شرکت های ایرانی آرم و علائم خودشون رو همه جاش اضافه کردن 😅)
فریمورک هایی مثل الکترون یا ری اکت نیتیو موقع دیپلوی کردن تا حدی راحت تر هستن ... چون شما کاری نیاز نیست انجام بدید و خود مرورگر کرومیومی که داخلش استفاده شده همه پیشنیاز های خودش رو داخل خودش داره (البته خیلی از ویندوز 7 های قدیمی و آپدیت نشده هم نمی تونن مرورگرهای این فریمورک ها رو اجرا کنن و اونجاست که شما باید بری دنبال کامپایل کردن مرورگر الکترون یا ریاکت از روی سورس با سطح api پایینتری از c++)
این رو هم در نظر داشته باشید که اینجور اپ ها که برای اجرا کردن کوچکترین چیز ممکن مجبور هستن مرورگری به بزرگی کرومیوم رو اجرا کنن به علت مصرف بالای رم و سیپیو روی سیستم های قدیمی راحت و روان و سبک اجرا نمیشن
و توی سیستم های اداری معمولا نرم افزار های آفیس روی چند تا فایل بزرگ و سنگین اکسل یا اکسس در حال اجرا شدن هستن
چیزی که من همیشه خودم از اون استفاده می کنم خود فریمورک qt هست و آخر کار هم خروجی استاتیک می گیرم و کل اپ میشه یک فایل 3 مگی (درصورت استفاده از qml هم حدودا 20 مگ) که میتونه از اولین نسخه ویندوز 7 تا آخرین نسخه ویندوز 10 بدون هیچ پیشنیازی کار کنه (توی لینوکس و مک هم همچنین)
آخر کار هم اگه قرار باشه اپ رو روی وب لود کنیم مشکل خاصی نیست (چون کیوت میتونه خروجی وب هم بده)
دوستان لطفا به این دو نکته دقت کنید که یک سیستم های اداری معمولا بروز نیستند و قابلیت پشتیبانی از مثلا UWP رو ندارن و دوم مسیر رسیدن به هدف باید کوتاه باشه
اول اینکه موقع بیلد میتونید تعیین کنید پروژه شما با کدوم فریمورک دات نت سازگار باشه و شما میتونید کمترین ورژن را انتخاب کنید که حتی با ویندوز ویستا سازگار باشه، xp که دیگه چیزی نیست. همچنین microsoft .net framework ورژن مناسب هر ویندوزی، قابل نصب هست.
دوم اینکه تو ویندوز فرم، در محیط گرافیکی، دکمه، لیبل،فرم و.. را میکشین به صفحه و بعد منطق رو پیاده میکنید (البته تو کیوت دیزاین هم اینها هست، اما امکانات وب فرم خیلی بیشتره) من خودم 2 سال پیش فقط c و بیسیک یاد داشتم اونم برای میکروکنترلرها، و برای اولین بار سراغ برنامه نویسی کامپیوتر رفتم. 15 روز طول کشید سی شارپ یاد گرفتم و در 15 روز بعدی یک پروژه که هرچی بخواهید، از اجرای چند نخی، چاپ همزمان، ارتباط با پورت usb و سریال، ارتباط تحت شبکه TCP/IP، گزارشگیری، کار با رجیستری، اکسس و ... داشتم.
سوم اینکه الان برای وب، خودم لاراول و بیشتر جنگو کار میکنم و خوب دوست دارم برای رسپبری پای از پای کیوت یا الکترون استفاده کنم، یکمی کار کردم و باید بگم امکانات و ابزار دات خیلی بیشتر و راحتتره! اگر نیاز به لینوکس نداشتم احتمالاً از دات نت خارج نمیشدم، حتی برای وب.
پای کیوت یا الکترون هم خوب هستند و البته با کد نویسی بیشتر. اینها تجربیات من بود که خدمتتون عرض کردم.
اگر برنامه کار مهمی رو انجام نمیده.. فرقی نمیکنه با الکترون باشه یا با پایتون یا حتی نیتیو
عملا با جاوا و سی پلاس پلاس و سی شارپ و خیلی زبان های دیگه میتونی این کارو انجام بدی
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟