نمایش نتایج 1 تا 10 از 10

نام تاپیک: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

  1. #1
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,232

    کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    سلام دوستان

    اگر قرار باشه یک برنامه برای سیستم عامل ویندوز بنویسید ترجیح میدید از کدام تکنولوژی استفاده کنید:
    • Windows Form
    • WPF
    • MAUI


    لطفا دلیل را هم ذکر کنید. تشکر

  2. #2
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,885

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    نقل قول نوشته شده توسط mmbguide مشاهده تاپیک
    سلام دوستان

    اگر قرار باشه یک برنامه برای سیستم عامل ویندوز بنویسید ترجیح میدید از کدام تکنولوژی استفاده کنید:
    • Windows Form
    • WPF
    • MAUI


    لطفا دلیل را هم ذکر کنید. تشکر
    سلام به همه

    من با Windows Forms Application نرم افزار ویندوز می سازم چون بیشتر از انواع دیگه بلدم و اینکه ساده تر و یک مورد دیگه هم که هست اکثر پروژ ه هایی که می سازم باید در سیستم مشتری با کمترین مکمل نرم افزاری اجرا بشن. در اینصورته ک سیستم های بیشتری می تونه از نرم افزارو استفاده کنه...

  3. #3
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,232

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    سلام. بله من هم WinForm استفاده میکنم. اما در تولید کنترل های سفارشی در WindForm با چالش های زیادی مواجه هستم. خیلی کوتاه با WPF کار کردم و براحتی میشد Component بسازم و انعطاف بیشتری داشت ولی در WinForm واقعا کد نویسی پیچیده ای داره. بیشتر دنبال همین موضوع هستم

  4. #4
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,885

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    نقل قول نوشته شده توسط mmbguide مشاهده تاپیک
    سلام. بله من هم WinForm استفاده میکنم. اما در تولید کنترل های سفارشی در WindForm با چالش های زیادی مواجه هستم. خیلی کوتاه با WPF کار کردم و براحتی میشد Component بسازم و انعطاف بیشتری داشت ولی در WinForm واقعا کد نویسی پیچیده ای داره. بیشتر دنبال همین موضوع هستم
    همه اشیاء و ابزار WPF رو می شه با استفاده از ElementHost به فرم های Windows Forms اضافه کرد....

    SharedScreenshot08.jpg

  5. #5
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,232

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    همه اشیاء و ابزار WPF رو می شه با استفاده از ElementHost به فرم های Windows Forms اضافه کرد....
    این را نمیدونستم. تشکر از شما

  6. #6

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    سلام طبق آخرین کنفرانس بیلد 2024 مایکروسافت که چند هفته پیش برگذار شد، درحال حاظر بهترین گزینه فقط 2 گزینه WPF و WinUI 3 /WindowsAppSDK می باشد.
    جهت استفاده از جدیدترین کنترل ها، استایل های هماهنگ با ویندوز 11 و توابع جدید باید از WinUI 3 استفاده کنید. (قابلیت اجرا در ویندوز 10 به بالا) فایل اکسپلورر ویندوز و سایر برنامه های ویندوز با این تکنولوژی ساخته شده.
    اگر هم هدف ویندوز های دیگه باشه گزینه مناسب WPF هست که با دات نت 9 میتونید از استایل های شبیه به WinUI 3 و ویندوز 11 روی برنامه های WPF استفاده کنید. برنامه گالری پیشنمایش هم در استور موجود هست
    WPF Gallery Preview - Free download and install on Windows | Microsoft Store

    دقت کنید که Maui و Uno هر دو برای بخش Desktop از WinUI 3 استفاده می کنند. و از اونجایی که این 2 پلتفرم چند سکویی هستند زمانی مناسب هستند که شما نیاز داشته باشید برنامه موبایل و دسکتاپ رو هماهنگ ایجاد کنید.

  7. #7
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,232

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    سلام

    مطابق آنچه که فرمودید در واقع با MAUI میشه برنامه را در زمان خروجی هم به برنامه موبایل و هم به دسکتاپ تبدیل کرد؟ یعنی یکبار برنامه را تولید مکینم؟ ولی WinUI فقط برای دسکتاپ هستش؟

  8. #8

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    نقل قول نوشته شده توسط mmbguide مشاهده تاپیک
    سلام

    مطابق آنچه که فرمودید در واقع با MAUI میشه برنامه را در زمان خروجی هم به برنامه موبایل و هم به دسکتاپ تبدیل کرد؟ یعنی یکبار برنامه را تولید مکینم؟ ولی WinUI فقط برای دسکتاپ هستش؟
    بله Maui یک فریمورک کراس پلتفرم هست شما از یک CodeBase برای توسعه برنامه برای پلتفرم های مختلف استفاده می کنید. هر پلتفرم توسط ابزارهای خاص اون پلتفرم کامپایل میشه و برای پلتفرم دسکتاپ (ویندوز) هم از WinUI 3 استفاده میشه. پس اگر هدف برنامه نویسی ویندوز هست بهتره شما بصورت مستقیم از همون WinUI 3 استفاده کنید و سراغ Maui نرید. WinUI هم فقط دسکتاپ ویندوز 10 به بالا هست.
    dotnet/maui: .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop. (github.com)
    http://github.com/microsoft/microsoft-ui-xaml
    dotnet/maui: .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop. (github.com)

  9. #9

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    نقل قول نوشته شده توسط mmbguide مشاهده تاپیک
    سلام دوستان

    اگر قرار باشه یک برنامه برای سیستم عامل ویندوز بنویسید ترجیح میدید از کدام تکنولوژی استفاده کنید:
    • Windows Form
    • WPF
    • MAUI


    لطفا دلیل را هم ذکر کنید. تشکر

    سلام
    اساسا این رو در نظر بگیرید که هر چیزی (نه فقط فریم ورک هایی مثل اینها) ، برای هدفی ساخته و طراحی شدند . و هر کدوم مزایا و معایبی دارند .
    بنابراین اینکه کلی و قطعا گفته بشه که کدوم یک از این فریم ورک ها برای همه نوع نرم افزار خوب هست ، از اساس سئوال درستی نیست .

    در کل ، مزایای windows form :

    - یادگیری خیلی سریع تر و ساده تر و با سرعت خیلی بیشتری هست . این یک نکته ی خیلی مهم هست .
    - چون از Binding پیچیده و همچنین اغلب از معماری های پیچیده ای مثل mvvm به دور هست ، خوانایی کدش خیلی بهتر از کدهای wpf ای که این موارد در اونها رعایت شده ، هست .
    - بسته به نوع رندر ، چون رندرهای windows form ، سرعت درخواست عملیات رندر تا اجرای عملیات رندرِ کمتری داره ، گاها سرعت رندرش بیشتر یا خیلی بیشتر هست (هر چند wpf ، رندر را در نخ مجزا انجام میده و windows form در نخ اصلی انجام میده) .

    هر چند یکی از مهمترین دلایلی که کاربران سمت wpf میان ، ظاهر کنترل و رابط کاربری هست اما کاربران بسیاری از wpf ، هم از کنترل های شخص ثالث (مثل تلریک و...) یا از کتابخانه های رابط کاربری ای مثل Material Design یا از Winui استفاده میکنند که امکان استفاده از اینها در windows form هم هست .
    اما wpf از لحاظ رابط کاربری و تغییر در ظاهر کنترل ها ، برای کسایی که میخوان کنترل ها را از این حالت آماده ، شخصی سازی کنند و به شکل مورد نظرشون که در هیچ نمونه ی آماده ای وجود نداره ، ایجاد کنند ، کاربرد داره (مثلا کنترلی دقیقا شبیه به کنترل های یک نرم افزار خاص یا هر تغییر مورد نظرشون) .


    مزایای wpf :

    - یکی اش که همین قضیه در پاراگراف بالاست (شخصی سازی کنترل ها به شکل خاص ، بدون استفاده از کتابخانه ای که برای windows form وجود داره . وگرنه وجه تمایزی نداره و اگه صرفا بخاطر تغییر رابط کاربری به سمت wpf میاد ، بهتره که کاربر با همون windows form کار کنه) .

    - معماری mvvm که خلاصه اش اینه که ارتباط لایه ی View با لایه ی بعدیش که ViewModel باشه ، تا حد ممکن ، بصورت مستقیم انجام نشه .
    یعنی مثلا در ارتباطات عادی که در لایه ی ViewModel ، یک کلاسی بنام TestViewModel و این کلاس هم شامل پروپرتی ای بنام TestProp باشه ، ما مجبوریم در لایه ی View ، این عضو را صریحا فراخوانی کنیم . یعنی مجبوریم در View بنویسیم TestViewModel.TestProp

    این باعث میشه که ارتباطی که View با ViewModel برقرار میکنه ، ارتباط مستقیم و صریح و محکم ای باشه (در اصطلاح میگن جفت محکم) و مشکلش هم اینه که تقریبا تا لایه ی بعدی (لایه ی ViewModel) آماده نشده ، نمیشه لایه ی View را ساخت . چون هنوز ViewModel ای وجود نداره که عضوی داشته باشه که عضوِِ TestViewModel.TestProp را درون View فراخوانی کنیم . پس عملا در معماری معمولی ، طراحان View ، منتظر باید بمونن که کار برنامه نویسان تمام بشه تا بعد بتونن View را طراحی کنن یا اینکه حداقل ، با چالش هایی برای اجرا گرفتنِ View برمیخورن و کار اجرا کردنِ View ، خیلی سخت میشه .

    با استفاده از قدرت Binding نسبتا خوب در wpf و استفاده از معماری mvvm ، چون اغلبِ کلاس هایی که درون لایه ی ViewModel ساخته میشه (معمولا بجز کلاس های مربوط به ViewModel) و همچنین اعضای درون کلاس شون ، صریحا و بصورت مستقیم از View فراخوانی نمیشه ، بنابراین کمک بسیار زیادی در جداسازی لایه ی View از ViewModel میکنه و بنابراین طراحان میتونن View را همزمان با برنامه نویسیانی که ViewModel را مینویسن ، طراحی کنن و بدون مشکل ، View شون را اجرا کنن (فقط خطای Binding Failure زمان اجرای برنامه خواند داشت اگر لایه ی ViewModel شون آماده نباشه یا وجود نداشته باشه) .

    - مزایای زیاد دیگری مثل رندر 3 بعدی و رندر توسط کارت گرافیک و ... داره .
    البته در مواقعی ممکنه بعضی هاشون خودشون در بعضی شرایط ، خودشون مشکلاتی برای اون شرایط طرف نسبت به windows form ایجاد کنن .


    معایب wpf :

    - یادگیری پیچیده یا بسیار پیچیده و زمانبر اش نسبت به windows form (بستگی به سطح کاربری یا جزئیات یادگیری و مباحث یادگیری داره) .
    سیستم های جدید و پیچیده (تری) مثل موتور Binding و سیستم پروپرتی و رویداد که اضافه شده و ... .

    - پیاده سازی معماری mvvm ، (بسته به اینکه چند درصد ازش پیاده سازی شده (چون مثل اصول solid ، رعایت اش بصورت درصدی هست) ، مخصوصا در مواقع خاص که اصرار به پیاده سازی این معماری در حداکثرِ حالت و حداکثرِ درصدش باشه) ، به مراتب زمان بیشتری میگیره و سخت هست (بسته به اون حالت ، خیلی زمانبرتر یا خیلی سخت تر هست) .

    - قضیه ی رندر را که اشاره کردم .

    - هر دوشون (windows form و wpf) ، محدود به سیستم عامل ویندوز هستند .
    و ... .


    maui را هم که دوستان توضیح دادن .

    Use the Windows App SDK in a WinForms app - Windows apps | Microsoft Learn

    NuGet Gallery | MaterialSkin.2 2.3.1
    آخرین ویرایش به وسیله SajjadKhati : سه شنبه 09 مرداد 1403 در 09:40 صبح

  10. #10

    نقل قول: کدام تکنولوژی را برای توسعه برنامه های Desktop Application ترجیح میدید؟

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    سلام
    اساسا این رو در نظر بگیرید که هر چیزی (نه فقط فریم ورک هایی مثل اینها) ، برای هدفی ساخته و طراحی شدند . و هر کدوم مزایا و معایبی دارند .
    بنابراین اینکه کلی و قطعا گفته بشه که کدوم یک از این فریم ورک ها برای همه نوع نرم افزار خوب هست ، از اساس سئوال درستی نیست .

    در کل ، مزایای windows form :

    - یادگیری خیلی سریع تر و ساده تر و با سرعت خیلی بیشتری هست . این یک نکته ی خیلی مهم هست .
    - چون از Binding پیچیده و همچنین اغلب از معماری های پیچیده ای مثل mvvm به دور هست ، خوانایی کدش خیلی بهتر از کدهای wpf ای که این موارد در اونها رعایت شده ، هست .
    - بسته به نوع رندر ، چون رندرهای windows form ، سرعت درخواست عملیات رندر تا اجرای عملیات رندرِ کمتری داره ، گاها سرعت رندرش بیشتر یا خیلی بیشتر هست (هر چند wpf ، رندر را در نخ مجزا انجام میده و windows form در نخ اصلی انجام میده) .

    هر چند یکی از مهمترین دلایلی که کاربران سمت wpf میان ، ظاهر کنترل و رابط کاربری هست اما کاربران بسیاری از wpf ، هم از کنترل های شخص ثالث (مثل تلریک و...) یا از کتابخانه های رابط کاربری ای مثل Material Design یا از Winui استفاده میکنند که امکان استفاده از اینها در windows form هم هست .
    اما wpf از لحاظ رابط کاربری و تغییر در ظاهر کنترل ها ، برای کسایی که میخوان کنترل ها را از این حالت آماده ، شخصی سازی کنند و به شکل مورد نظرشون که در هیچ نمونه ی آماده ای وجود نداره ، ایجاد کنند ، کاربرد داره (مثلا کنترلی دقیقا شبیه به کنترل های یک نرم افزار خاص یا هر تغییر مورد نظرشون) .


    مزایای wpf :

    - یکی اش که همین قضیه در پاراگراف بالاست (شخصی سازی کنترل ها به شکل خاص ، بدون استفاده از کتابخانه ای که برای windows form وجود داره . وگرنه وجه تمایزی نداره و اگه صرفا بخاطر تغییر رابط کاربری به سمت wpf میاد ، بهتره که کاربر با همون windows form کار کنه) .

    - معماری mvvm که خلاصه اش اینه که ارتباط لایه ی View با لایه ی بعدیش که ViewModel باشه ، تا حد ممکن ، بصورت مستقیم انجام نشه .
    یعنی مثلا در ارتباطات عادی که در لایه ی ViewModel ، یک کلاسی بنام TestViewModel و این کلاس هم شامل پروپرتی ای بنام TestProp باشه ، ما مجبوریم در لایه ی View ، این عضو را صریحا فراخوانی کنیم . یعنی مجبوریم در View بنویسیم TestViewModel.TestProp

    این باعث میشه که ارتباطی که View با ViewModel برقرار میکنه ، ارتباط مستقیم و صریح و محکم ای باشه (در اصطلاح میگن جفت محکم) و مشکلش هم اینه که تقریبا تا لایه ی بعدی (لایه ی ViewModel) آماده نشده ، نمیشه لایه ی View را ساخت . چون هنوز ViewModel ای وجود نداره که عضوی داشته باشه که عضوِِ TestViewModel.TestProp را درون View فراخوانی کنیم . پس عملا در معماری معمولی ، طراحان View ، منتظر باید بمونن که کار برنامه نویسان تمام بشه تا بعد بتونن View را طراحی کنن یا اینکه حداقل ، با چالش هایی برای اجرا گرفتنِ View برمیخورن و کار اجرا کردنِ View ، خیلی سخت میشه .

    با استفاده از قدرت Binding نسبتا خوب در wpf و استفاده از معماری mvvm ، چون اغلبِ کلاس هایی که درون لایه ی ViewModel ساخته میشه (معمولا بجز کلاس های مربوط به ViewModel) و همچنین اعضای درون کلاس شون ، صریحا و بصورت مستقیم از View فراخوانی نمیشه ، بنابراین کمک بسیار زیادی در جداسازی لایه ی View از ViewModel میکنه و بنابراین طراحان میتونن View را همزمان با برنامه نویسیانی که ViewModel را مینویسن ، طراحی کنن و بدون مشکل ، View شون را اجرا کنن (فقط خطای Binding Failure زمان اجرای برنامه خواند داشت اگر لایه ی ViewModel شون آماده نباشه یا وجود نداشته باشه) .

    - مزایای زیاد دیگری مثل رندر 3 بعدی و رندر توسط کارت گرافیک و ... داره .
    البته در مواقعی ممکنه بعضی هاشون خودشون در بعضی شرایط ، خودشون مشکلاتی برای اون شرایط طرف نسبت به windows form ایجاد کنن .


    معایب wpf :

    - یادگیری پیچیده یا بسیار پیچیده و زمانبر اش نسبت به windows form (بستگی به سطح کاربری یا جزئیات یادگیری و مباحث یادگیری داره) .
    سیستم های جدید و پیچیده (تری) مثل موتور Binding و سیستم پروپرتی و رویداد که اضافه شده و ... .

    - پیاده سازی معماری mvvm ، (بسته به اینکه چند درصد ازش پیاده سازی شده (چون مثل اصول solid ، رعایت اش بصورت درصدی هست) ، مخصوصا در مواقع خاص که اصرار به پیاده سازی این معماری در حداکثرِ حالت و حداکثرِ درصدش باشه) ، به مراتب زمان بیشتری میگیره و سخت هست (بسته به اون حالت ، خیلی زمانبرتر یا خیلی سخت تر هست) .

    - قضیه ی رندر را که اشاره کردم .

    - هر دوشون (windows form و wpf) ، محدود به سیستم عامل ویندوز هستند .
    و ... .


    maui را هم که دوستان توضیح دادن .

    Use the Windows App SDK in a WinForms app - Windows apps | Microsoft Learn

    NuGet Gallery | MaterialSkin.2 2.3.1
    استفاده از WASDK داخل WinForm یا WPF بدرد نمیخوره. علت؟ وقتی شما از توابع WASDK داخل برنامه Winform یا wpf استفاده کنید، برنامه شما فقط روی ویندوز 10 و بالاتر میتونه از اون توابع استفاده کنه، پس چه کاریه؟ از همون ابتدا از WinUI استفاده کنید و از همه قابلیت های اون به بهترین شکل بهره ببرید، دقت کنید که شما فقط میتونید از توابع WASDK روی winform یا wpf استفاده کنید و از کنترل ها و استایل های اون محروم هستید. توابعی مثل AppWindow و... پس به درد چه کسایی میخوره؟ افرادی که نمیتونن برنامه هاشون رو از ابتدا با winui بنویسن ولی میخان از برخی قابلیت های اون بهره ببرن.

تاپیک های مشابه

  1. سوال: بهترین Framewok برای توسعه نرم افزارهای Desktop GUI از نظر شما چیه؟
    نوشته شده توسط Ehsansh در بخش برنامه‌نویسی جاوا
    پاسخ: 2
    آخرین پست: یک شنبه 12 آبان 1392, 17:55 عصر
  2. معماری مناسب برای ترکیب یک برنامه تحت وب با desktop application
    نوشته شده توسط spranza804 در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: دوشنبه 23 خرداد 1390, 17:41 عصر
  3. پروژه Desktop Application در VS
    نوشته شده توسط spranza804 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 23 خرداد 1390, 12:22 عصر
  4. دلفی یا #C برای Desktop Application
    نوشته شده توسط babak_delphi در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 24
    آخرین پست: جمعه 06 اردیبهشت 1387, 15:51 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •