سئوالات و مباحث WPF

the_king

مدیرکل انجمن
خیلی ممنون استاد .
منظورتون اینه که TemplateBinding ، فقط بصورت مستقیم برای پروپرتی در یک کلاس بکار میره؟
خیر. منظور من فقط چیزی است که گفته ام، نه چیزی که نگفته ام.
XML:
    <Grid>
        <Button HorizontalAlignment="Center" VerticalAlignment="Center">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <ContentControl Content="{TemplateBinding Grid.Column}"/>
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>

یعنی اگه بخوایم برای اعضای اون پروپرتی (مثلا برای ButtonShape.Margin که پرسیدم) ، اون TemplateBinding را بکار ببریم ، نمیشه؟
اگر ButtonShape یک مشخصه است، خیر، اما اگر ButtonShape یک کلاس ئه که Margin مشخصه الحاقی اونه، میشه.

در این صورت ، بجای TemplateBinding ، باید از Binding (و Mode ئه TemplatedParent) استفاده کنیم؟
بله
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خیلی ممنون استاد
استاد ، مثلا من اگه در wpf ، با .net 5 (که همون ادامه ی .net core هست) کار کنم ، دقیقا این کار باعث میشه که چه ویژگی هایی را کسب کنم؟
باعث میشه برنامه ای که در wpf میسازم ، در بقیه ی سیستم عامل ها اجرا بشه (اون هم اگه از کتابخونه ای که مربوط به یه سیستم عامل خاص باشه را استفاده نکنم مثل همون قضیه ی رجیستری که قبلا گفتید) . درسته؟

اگه درسته ، خوب مثلا اگه بخوام نرم افزاری درست کنم که در اندروید اجرا بشه ، خوب دیگه در wpf لازم نیست برنامه مو بنویسم . میرم تحت xamarin.android مینویسم .
بخوام کلا تحت سیستم عامل های موبایل بنویسم ، تحت xamarin مینویسم .
بخوام تحت وب بنویسم ، از پلتفرم asp.net استفاده میکنم .


فقط میمونه سیستم عامل های مکینتاش و لینوکس و بقیه ی وسیله ها و پلتفرم های مایکروسافت مثل xbox و هلولنز و iot و ... . آیا وقتی با .net 5 در wpf کار کنم ، به درد این پلتفرم ها و این سیستم عامل ها میخوره؟
 

the_king

مدیرکل انجمن
خیلی ممنون استاد
استاد ، مثلا من اگه در wpf ، با .net 5 (که همون ادامه ی .net core هست) کار کنم ، دقیقا این کار باعث میشه که چه ویژگی هایی را کسب کنم؟
بخودی خود هیچی.
باعث میشه برنامه ای که در wpf میسازم ، در بقیه ی سیستم عامل ها اجرا بشه (اون هم اگه از کتابخونه ای که مربوط به یه سیستم عامل خاص باشه را استفاده نکنم مثل همون قضیه ی رجیستری که قبلا گفتید) . درسته؟
خیر. پست #1,602 رو مجددا بخونید.

فقط میمونه سیستم عامل های مکینتاش و لینوکس و بقیه ی وسیله ها و پلتفرم های مایکروسافت مثل xbox و هلولنز و iot و ... . آیا وقتی با .net 5 در wpf کار کنم ، به درد این پلتفرم ها و این سیستم عامل ها میخوره؟
خیر. ببینید در بخش Operation System برای WPF چی نوشته :
یا در توصیف WPF نوشته for کدوم سیستم عامل ها :
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
بخودی خود هیچی.

خیر. پست #1,602 رو مجددا بخونید.


خیر. ببینید در بخش Operation System برای WPF چی نوشته :
یا در توصیف WPF نوشته for کدوم سیستم عامل ها :

خیلی ممنون استاد
خوب پس فعلا که فقط برای سیستم عامل ویندوز هست ، پس دلیل اینکه .Net 5 را پشتیبانی میکنه اینه که در آینده شاید با سیستم عامل های دیگه سازگارش کنن ، اون موقع مورد استفاده در سیستم عامل های دیگه قرار بگیره؟
پس ، حداقل فعلا ، دلیلی وجود نداره که بخوایم در wpf ، از .net 5 یا .net core استفاده کنیم . درسته؟

اگه الان مثلا بخوایم برای لینوکس و مکینتاش و اینها در سی شارپ برنامه بنویسیم ، باید کجا این برنامه را بنویسیم؟ فکر کنم برنامه های uwp هم فقط در ویندوز 10 اجرا بشن . درسته؟
 

the_king

مدیرکل انجمن
خیلی ممنون استاد
خوب پس فعلا که فقط برای سیستم عامل ویندوز هست ، پس دلیل اینکه .Net 5 را پشتیبانی میکنه اینه که در آینده شاید با سیستم عامل های دیگه سازگارش کنن ، اون موقع مورد استفاده در سیستم عامل های دیگه قرار بگیره؟
پس ، حداقل فعلا ، دلیلی وجود نداره که بخوایم در wpf ، از .net 5 یا .net core استفاده کنیم . درسته؟
شما یک تصوری برای خودتون داشتید که درست نبوده، اما ربطی به دلایل سایرین برای انتخاب یک پلتفرم نداره. کسانی که یک پلتفرم رو انتخاب می کنند برای اینکارشون دلیل دارند. طبعا دلیل شون برای انتخاب NET 5. یا NET Core. پشتیبانی WPF در سایر سیستم عامل ها نبوده.

اگه الان مثلا بخوایم برای لینوکس و مکینتاش و اینها در سی شارپ برنامه بنویسیم ، باید کجا این برنامه را بنویسیم؟ فکر کنم برنامه های uwp هم فقط در ویندوز 10 اجرا بشن . درسته؟
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
شما یک تصوری برای خودتون داشتید که درست نبوده، اما ربطی به دلایل سایرین برای انتخاب یک پلتفرم نداره. کسانی که یک پلتفرم رو انتخاب می کنند برای اینکارشون دلیل دارند. طبعا دلیل شون برای انتخاب NET 5. یا NET Core. پشتیبانی WPF در سایر سیستم عامل ها نبوده.



خیلی ممنون استاد .
با mono؟!
با مونو میشه برای بقیه ی سیستم عامل ها برنامه نوشت؟!
مونو که اختصاصی xamarin بود (هر چند مایکروسافت اون رو خرید) .
اما مگه .net core برای این طراحی نشد که در بقیه ی سیستم عامل ها بشه برنامه نوشت؟
من که قاتی کردم . پس کاربرد .net core کجاست؟
الان کسانی که .net core را در wpf (یا هر پلتفرم دیگه ای) انتخاب میکنن ، هدف شون چیه که نمیشه با .net framework اون را نوشت؟
تشکر استاد .
 

the_king

مدیرکل انجمن
خیلی ممنون استاد .
با mono؟!
با مونو میشه برای بقیه ی سیستم عامل ها برنامه نوشت؟!
اینها پاسخ به سوالات خودتون بوده، صحبت جدیدی که نیست :
#3
#2
اما مگه .net core برای این طراحی نشد که در بقیه ی سیستم عامل ها بشه برنامه نوشت؟
شما طراحش بودید که میگید برای چی طراحی اش کردم یا این رو طراحانش بهتون گفتن؟ NET Core. کد باز و رایگان داره و این مساله این امکان رو بهش میده که در سایر پلتفرم ها توسعه پیدا کنه. معنی اش این نیست که هر واسط کاربری سازگاری که در NET. Core پیاده سازی بشه باید در همه سیستم عامل ها پشتیبانی بشه. ماهیت NET Core. جدا از Windows Forms یا WPF ئه، اینکه در NET. Core پیاده سازی ایندو برای سیستم عامل ویندوز انجام شده معنی اش این نیست که حتما می بایستی در سایر سیستم عامل ها هم پیاده سازی می شده یا باید بشه یا در آینده خواهد شد.

من که قاتی کردم . پس کاربرد .net core کجاست؟
برای برنامه نویسی، در انواع مختلف کاربرد ها، به همین سادگی. پلتفرم تخصصی نجوم که نیست که بگیم کاربردش فقط x و y ئه.

الان کسانی که .net core را در wpf (یا هر پلتفرم دیگه ای) انتخاب میکنن ، هدف شون چیه که نمیشه با .net framework اون را نوشت؟
اولا دلیل انتخاب x این نیست که حتما با انتخاب y کاری شدنی نباشه، ممکنه شخصی x رو به y ترجیح بده. ثانیا هر زمانی پلتفرمی رو با پلتفرم دیگری مقایسه کنید یکسری تفاوت ها خواهند داشت که میتونه معیار انتخاب باشه، مثلا کد باز بودن پلتفرم، جدیدتر بودن و ...
در مورد تفاوت پلتفرم ها و مزیت ها و معایب شون هم که می توانید جستجو کنید.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خیلی ممنون استاد .
استاد ، نمیشه توی کد xaml ، در trigger ، چک کرد که اگه مقدار پروپرتی ای null نبود ، setter ای انجام بشه ، مبشه؟
 

the_king

مدیرکل انجمن
خیلی ممنون استاد .
استاد ، نمیشه توی کد xaml ، در trigger ، چک کرد که اگه مقدار پروپرتی ای null نبود ، setter ای انجام بشه ، مبشه؟
Trigger بر اساس برقراری یک شرط تساوی عمل می کنه، مثلا اینکه null باشه، برای عدم برقراری شرط تساوی چک نمی کنه.
شما می خواهید برعکسش باشه، بر اساس عدم برقراری یک شرط تساوی null بودن.
اما DataTrigger می تونه با Binding و Converter قبل از چک کردن شرط تساوی تبدیل مقدار انجام بده. پس می توانید یک Converter طراحی کنید که بر اساس null بودن (یا null نبودن، مهم نیست کدومش) مقدار خروجی boolean تولید کنه و بر این اساس چه null بودن و چه نبودن رو می توانید در DataTrigger با شرط برابری با true یا false بررسی کنید.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خیلی ممنون استاد .
استاد ، جوابی که در این تاپیک برای قضیه ی "make single instance application" دادید :


این گزینه ، فقط مخصوص زبان ویژال بیسیک هست؟
چون من در تنظیمات Properties پروژه ی WPF ای که با زبان سی شارپ هست ، همچین گزینه ای را برای فعال کردن نمیبینم و جستجو هم که کردم ، همونطور که قبلا گفته بودید ، راهکارشون استفاده از mutex برای این کار بود .

تشکر استاد .
 

the_king

مدیرکل انجمن
خیلی ممنون استاد .
استاد ، جوابی که در این تاپیک برای قضیه ی "make single instance application" دادید :


این گزینه ، فقط مخصوص زبان ویژال بیسیک هست؟
بله، در اسمبلی Microsoft.VisualBasic ئه، یکجورایی از ویژوال بیسیک کلاسیک به ارث رسیده. یکسری مواردی در VB.NET هست که برای این اضافه شدن تا نه دقیقا به همون شکل زبان قدیمی ولی با تفاوت هایی قابلیت های Visual Basic کلاسیک رو حفظ کنند تا پروژه های قدیمی رو بشه با کمترین دردسر بازنویسی کرد.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
اینها پاسخ به سوالات خودتون بوده، صحبت جدیدی که نیست :
#3
#2

شما طراحش بودید که میگید برای چی طراحی اش کردم یا این رو طراحانش بهتون گفتن؟ NET Core. کد باز و رایگان داره و این مساله این امکان رو بهش میده که در سایر پلتفرم ها توسعه پیدا کنه. معنی اش این نیست که هر واسط کاربری سازگاری که در NET. Core پیاده سازی بشه باید در همه سیستم عامل ها پشتیبانی بشه. ماهیت NET Core. جدا از Windows Forms یا WPF ئه، اینکه در NET. Core پیاده سازی ایندو برای سیستم عامل ویندوز انجام شده معنی اش این نیست که حتما می بایستی در سایر سیستم عامل ها هم پیاده سازی می شده یا باید بشه یا در آینده خواهد شد.


برای برنامه نویسی، در انواع مختلف کاربرد ها، به همین سادگی. پلتفرم تخصصی نجوم که نیست که بگیم کاربردش فقط x و y ئه.


اولا دلیل انتخاب x این نیست که حتما با انتخاب y کاری شدنی نباشه، ممکنه شخصی x رو به y ترجیح بده. ثانیا هر زمانی پلتفرمی رو با پلتفرم دیگری مقایسه کنید یکسری تفاوت ها خواهند داشت که میتونه معیار انتخاب باشه، مثلا کد باز بودن پلتفرم، جدیدتر بودن و ...
در مورد تفاوت پلتفرم ها و مزیت ها و معایب شون هم که می توانید جستجو کنید.

خیلی ممنون استاد .
استاد ، لینک زیر میگه که .Net Core برای ساخت برنامه های تحت سرور کاربرد داره و برای ساخت برنامه های تحت دسکتاپ و کلا اون برنامه هایی که رابط کاربری دارن ، کاربرد نداره :

.

پس :

1) الان یعنی پلتفرم uwp ، از .netframework هم برای توسعه استفاده میکنه؟
چون میگه .net core (یا همون .net 5 ) که برای توسعه ی برنامه های دارای رابط کاربری نیست .

2) اگه اینها درستن ، پس چرا مایکروسافت ، توسعه ی .netframework را داره به حاشیه میبره تا دیگه به روزرسانی بزرگی براش انجام نده؟
چون همه ی برنامه هایی که تحت سیستم عامل ویندوز 10 اجرا میشن (از iot تا هلولنز تا pc و ...) ، انگار همه تحت .net framework فقط میشه براش برنامه ای که رابط کاربری داره ، ساخت .

3) اگه باز اینطوره ، پس چرا .net core را برای پلتفرم های winform و wpf آورد؟
چون با .net core که نمیشه برنامه ای که رابط کاربری داره ساخت (و کاربردش در وب هست) اما winform و wpf طراحی شدن برای ایجاد برنامه های با رابط کاربری .

4) من وب کار نکردم و هیچ چی درباره ی سایت زدن و اینها نمیدونم اما اینهایی که با asp.net core استفاده میکنن ، یعنی باهاش وب فرم و رابط کاربری و کنترل هاش را ایجاد نمیکنن؟
یا اینکه طراحی و ساخت رابط کاربری ای که ما میبینیم (مثلا همین صفحه از مجید آنلاین یا هر سایتی که میبینیم که همون رابط کاربری هستن) ، با ابزارهای تحت client درست میشه اما فقط کدهای سرور ، با asp.net core (اگه از asp استفاده کنه)؟

تشکر استاد .
 

the_king

مدیرکل انجمن
خیلی ممنون استاد .
استاد ، لینک زیر میگه که .Net Core برای ساخت برنامه های تحت سرور کاربرد داره و برای ساخت برنامه های تحت دسکتاپ و کلا اون برنامه هایی که رابط کاربری دارن ، کاربرد نداره :

.
به تاریخ نگارش مطالب توجه کنید تا نتیجه گیری اشتباه نکنید، مطالب قدیمی رو بر اساس شرایط اون زمان ارزیابی کنید. تا سال 2019 که NET Core 3.0 ارائه شد WPF و Windows Forms پشتیبانی نمی شد. از مقاله ای که در سال 2017 نوشته شده توقع نداشته باشید که بر اساس شرایط الان منطبق باشه.

4) من وب کار نکردم و هیچ چی درباره ی سایت زدن و اینها نمیدونم اما اینهایی که با asp.net core استفاده میکنن ، یعنی باهاش وب فرم و رابط کاربری و کنترل هاش را ایجاد نمیکنن؟
یا اینکه طراحی و ساخت رابط کاربری ای که ما میبینیم (مثلا همین صفحه از مجید آنلاین یا هر سایتی که میبینیم که همون رابط کاربری هستن) ، با ابزارهای تحت client درست میشه اما فقط کدهای سرور ، با asp.net core (اگه از asp استفاده کنه)؟
مهم نیست که پلتفرم چیه، به هر حال کنترل در سمت کلاینت ایجاد میشه نه سرور. این Browser شما است که باید کنترل رو ایجاد کنه.
کد سمت سرور هر چی که باشه و به هر زبانی که باشه نهایتا یک خروجی صفحه وب خواهد داشت که Browser رندر می کنه و نمایش میده.
و ایجاد ظاهر کنترل هم در صفحه وب بر اساس کد HTML و Javascript و CSS ئه.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
به تاریخ نگارش مطالب توجه کنید تا نتیجه گیری اشتباه نکنید، مطالب قدیمی رو بر اساس شرایط اون زمان ارزیابی کنید. تا سال 2019 که NET Core 3.0 ارائه شد WPF و Windows Forms پشتیبانی نمی شد. از مقاله ای که در سال 2017 نوشته شده توقع نداشته باشید که بر اساس شرایط الان منطبق باشه.


مهم نیست که پلتفرم چیه، به هر حال کنترل در سمت کلاینت ایجاد میشه نه سرور. این Browser شما است که باید کنترل رو ایجاد کنه.
کد سمت سرور هر چی که باشه و به هر زبانی که باشه نهایتا یک خروجی صفحه وب خواهد داشت که Browser رندر می کنه و نمایش میده.
و ایجاد ظاهر کنترل هم در صفحه وب بر اساس کد HTML و Javascript و CSS ئه.

خیلی ممنون استاد .
ولی 4 تا سئوال پرسیدم ها :green:
کامل متوجه نشدم پس این .net core واسه ی چیه دقیقا و کجا کاربرد داره و تفاوت اش نسبت به .net framework کجاست .
تشکر
 

the_king

مدیرکل انجمن
خیلی ممنون استاد .
ولی 4 تا سئوال پرسیدم ها :green:
بله، ولی سوالات هایی پرسیدید که به مقاله ای استناد می کنه که قدیمی و دیگه غیر قابل اتکا است و فرض رو بر چیزی قرار داده اید که دیگه درست نیست.
سوالی که فرض اش اشتباه باشه جواب نداره.

کامل متوجه نشدم پس این .net core واسه ی چیه دقیقا و کجا کاربرد داره و تفاوت اش نسبت به .net framework کجاست .
در مورد تفاوت های ایندو که می توانید جستجو کنید، اون که تکلیف اش معلومه. اما کاربرد NET Core. مشابه NET. ئه. مثل اینه که بخواهید کاربرد VB.NET رو با #C مقایسه کنید، کاربرد های جفت شون مشابه ئه.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
بله، ولی سوالات هایی پرسیدید که به مقاله ای استناد می کنه که قدیمی و دیگه غیر قابل اتکا است و فرض رو بر چیزی قرار داده اید که دیگه درست نیست.
سوالی که فرض اش اشتباه باشه جواب نداره.


در مورد تفاوت های ایندو که می توانید جستجو کنید، اون که تکلیف اش معلومه. اما کاربرد NET Core. مشابه NET. ئه. مثل اینه که بخواهید کاربرد VB.NET رو با #C مقایسه کنید، کاربرد های جفت شون مشابه ئه.

خیلی ممنون استاد .
استاد ، در مقاله ی زیر میگه که :
" دات نت کور برای چند پلتفرمی ، مناسب تر هه . اپلیکیشن های دات نت کور ، در ویندوز ، لینوکس و مک پشتیبانی میشن" :


".NET Core is better suited for cross-platform needs. .NET Core apps are supported on Windows, Linux, and macOS."

و همچنین باز میگه :

".NET Core
is the new open-source and cross-platform framework to build applications for all operating systems including Windows, Mac, and Linux. "

و همچنین :

"Cross-platform needs .NET Core"

پس با این حساب ، اپلیکیشن ای که در wpf توسط .net core مینویسیم ، باید در لینوکس و macos هم اجرا بشه که ؟

بعد اینکه منظورش از عبارت زیر که میگه "معماری ریز سرویس ها در دات نت کور پشتیبانی میشن" ، چیه؟ :
"Microservices architecture is supported in .NET Core"

اصلا ریز سرویس (Microservices) چیه؟

الان استاد انگار در همین مقاله هم اشاره میکنه که با .net core نمیشه رابط کاربری ساخت :

"A high-performance and scalable system without UI .NET Core is much faster."

درسته؟
اگه آره ، پس کسایی که با .net core برنامه مینویسن ، و اگه بخوان رابط کاربری ای بنویسن ، اون رابط را کجا و چجوری طراحی میکنن؟ با یه برنامه ی دیگه که اون برنامه از .net framework استفاده میکنه ، استفاده میکنن و بعد برنامه ای که با .net core نوشتن را بهش ملحق و استفاده میکنن ؟ (یعنی برنامه ی .net core ، یه چیزی شبیه dll عمل میکنه که رابط کاربری نداره؟) .

همچنین در این مقاله تاکید شده که .net core برای کارایی و انعطاف بالاتر (نسبت به .net framework) طراحی شده .
تشکر استاد :rose:
 

the_king

مدیرکل انجمن
خیلی ممنون استاد .
استاد ، در مقاله ی زیر میگه که :
" دات نت کور برای چند پلتفرمی ، مناسب تر هه . اپلیکیشن های دات نت کور ، در ویندوز ، لینوکس و مک پشتیبانی میشن" :


".NET Core is better suited for cross-platform needs. .NET Core apps are supported on Windows, Linux, and macOS."

و همچنین باز میگه :

".NET Core
is the new open-source and cross-platform framework to build applications for all operating systems including Windows, Mac, and Linux. "

و همچنین :

"Cross-platform needs .NET Core"

پس با این حساب ، اپلیکیشن ای که در wpf توسط .net core مینویسیم ، باید در لینوکس و macos هم اجرا بشه که ؟
این چه جور استدلالیه؟ NET Core. چند پلتفرمی است، اما دلیل نمیشه که پس هر پلتفرم یا کتابخانه ای که در NET Core. پشتیبانی میشه یا هر برنامه ای که در NET Core. نوشته میشه هم حتما با همه اون پلتفرم ها سازگار باشه. WPF یک پلتفرم ئه که در NET. Core پشتیبانی شده، اما اینکه WPF با کدوم سیستم عامل ها سازگاری داره به خود WPF مربوطه، ربطی به NET Core. نداره. WPF صرفا یک GUI Framework ئه که در NET Core. پشتیبانی میشه، خودش میتونه چند پلتفرمی باشه یا نباشه.

بعد اینکه منظورش از عبارت زیر که میگه "معماری ریز سرویس ها در دات نت کور پشتیبانی میشن" ، چیه؟ :
"Microservices architecture is supported in .NET Core"

اصلا ریز سرویس (Microservices) چیه؟
منظورش دقیقا همونه که گفتید، در جستجو کردن که مشکلی ندارید؟
مایکروسرویس‌ها


الان استاد انگار در همین مقاله هم اشاره میکنه که با .net core نمیشه رابط کاربری ساخت :

"A high-performance and scalable system without UI .NET Core is much faster."

درسته؟
without UI یعنی نمیشه با NET Core. واسط کاربری نوشت؟ without UI یعنی بدون واسط کاربری.
یک جدول ئه با دو ستون، ستون سمت چپ شرایط ئه و ستون سمت راست گزینه پیشنهادی. میگه اگر برای سیستمی با کارایی بالا و با قابلیت مقیاس پذیری (امکان افزایش منابعش) کد می نویسید و پروژه ای که می نویسید واسط کاربری نداره (مثلا سرویس هایی که در سرور اجرا میشن تا کاری رو بصورت روتین انجام بدن یا به کلاینت ها خدماتی رو بدهند)، NET Core. رو پیشنهاد می کنه چون اگر با NET Core. نوشته بشه سریعتر از NET. اجرا میشه.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
این چه جور استدلالیه؟ NET Core. چند پلتفرمی است، اما دلیل نمیشه که پس هر پلتفرم یا کتابخانه ای که در NET Core. پشتیبانی میشه یا هر برنامه ای که در NET Core. نوشته میشه هم حتما با همه اون پلتفرم ها سازگار باشه. WPF یک پلتفرم ئه که در NET. Core پشتیبانی شده، اما اینکه WPF با کدوم سیستم عامل ها سازگاری داره به خود WPF مربوطه، ربطی به NET Core. نداره. WPF صرفا یک GUI Framework ئه که در NET Core. پشتیبانی میشه، خودش میتونه چند پلتفرمی باشه یا نباشه.

خیلی ممنون استاد .
منظورتون اینه که .Net 5 (یا همون .Net Core) ، در چند پلتفرمی پشتیبانی میشه اما این wpf هست که (حداقل تا امروز) از چند پلتفرمی پشتیبانی نمیکنه و محدودیت (پشتیبانی نکردن از چند پلتفرمی) ، از طرف wpf هست؟
پس یعنی اگه پلتفرم رو عوض کنیم و تحت .net 5 (یا همون .Net Core) ، میشه برنامه ای نوشت که در سیستم عامل های دیگه (مثل لینوکس) اجرا بشه . درسته؟
یعنی الان تحت uno platform میشه برنامه هایی با .net 5 (یا همون .Net Core) نوشت که در لینوکس و ... اجرا بشه . درسته؟

منظورش دقیقا همونه که گفتید، در جستجو کردن که مشکلی ندارید؟
مایکروسرویس‌ها

از لحاظ توضیحات کتابی و اینها منظورم نبود .
منظورم توضیحاتی بود که شما میدین و عامه فهم هست .
وگرنه چون اصلا نمیدونم ماکرو سرویس ها چی ان ، بله در حد تئوری ، معنا اش را حدودا فهمیدم ولی مفهوم دقیق و موارد کاربرد و کلا درک نکردم .

without UI یعنی نمیشه با NET Core. واسط کاربری نوشت؟ without UI یعنی بدون واسط کاربری.
یک جدول ئه با دو ستون، ستون سمت چپ شرایط ئه و ستون سمت راست گزینه پیشنهادی. میگه اگر برای سیستمی با کارایی بالا و با قابلیت مقیاس پذیری (امکان افزایش منابعش) کد می نویسید و پروژه ای که می نویسید واسط کاربری نداره (مثلا سرویس هایی که در سرور اجرا میشن تا کاری رو بصورت روتین انجام بدن یا به کلاینت ها خدماتی رو بدهند)، NET Core. رو پیشنهاد می کنه چون اگر با NET Core. نوشته بشه سریعتر از NET. اجرا میشه.

اما باز هم متوجه نشدم که برنامه هایی را که با .net core نوشته میشه ، میشه باهاش ui و رابط کاربری ساخت یا نه؟
تشکر استاد .
 

the_king

مدیرکل انجمن
خیلی ممنون استاد .
منظورتون اینه که .Net 5 (یا همون .Net Core) ، در چند پلتفرمی پشتیبانی میشه اما این wpf هست که (حداقل تا امروز) از چند پلتفرمی پشتیبانی نمیکنه و محدودیت (پشتیبانی نکردن از چند پلتفرمی) ، از طرف wpf هست؟
بله.

پس یعنی اگه پلتفرم رو عوض کنیم و تحت .net 5 (یا همون .Net Core) ، میشه برنامه ای نوشت که در سیستم عامل های دیگه (مثل لینوکس) اجرا بشه .
درسته؟
میشه، یعنی شدنی است، به این معنی نیست که هر چیزی نوشتید حتما با سیستم عامل های دیگه سازگار ئه و خود به خود سازگاری رو حفظ می کنه. باید از هر روالی که مختص سیستم عامل خاصی است اجتناب کنید تا با سایر سیستم عامل ها سازگار بمونه.

یعنی الان تحت uno platform میشه برنامه هایی با .net 5 (یا همون .Net Core) نوشت که در لینوکس و ... اجرا بشه . درسته؟
من مطلبی در این مورد ارتباط NET 5. و Uno platform به چشمم نخورده. خروجی Uno platform در مرورگر اینترنتی اجرا میشه، طبیعیه که در سیستم عامل های متعددی امکان اجراش باشه.

اما باز هم متوجه نشدم که برنامه هایی را که با .net core نوشته میشه ، میشه باهاش ui و رابط کاربری ساخت یا نه؟
سوال خیلی عجیبیه، می گویید که نمی دونید در NET. Core ای که ASP.NET Core و UWP و WPF و Windows Forms رو پشتیبانی می کنه، میشه واسط کاربری ساخت یا نه، در حالی که خودتون حداقل با WPF و Windows Forms واسط کاربری طراحی کرده اید.
می دونید که در برنامه هایی که با NET. نوشته میشه می توان واسط کاربری ساخت یا نه؟ واسط کاربری در NET. هم شبیه واسط کاربری در NET Core. ئه دیگه.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
Trigger بر اساس برقراری یک شرط تساوی عمل می کنه، مثلا اینکه null باشه، برای عدم برقراری شرط تساوی چک نمی کنه.
شما می خواهید برعکسش باشه، بر اساس عدم برقراری یک شرط تساوی null بودن.
اما DataTrigger می تونه با Binding و Converter قبل از چک کردن شرط تساوی تبدیل مقدار انجام بده. پس می توانید یک Converter طراحی کنید که بر اساس null بودن (یا null نبودن، مهم نیست کدومش) مقدار خروجی boolean تولید کنه و بر این اساس چه null بودن و چه نبودن رو می توانید در DataTrigger با شرط برابری با true یا false بررسی کنید.

سلامی مجدد
خیلی ممنون استاد .
استاد ، بهتر نیست بجای پیاده سازی IValueConverter ، یه پروپرتیِ مجزا (از نوع bool) برای اینکه مشخص کنم که مقدار اون پروپرتیِ مورد نظرمون null هست یا نه ، ایجاد کنیم؟
هم راحت تر از پیاده سازی IValueConverter هست و هم انگار در عملکرد ، فرقی نداره .
درست میگم؟


بله.


میشه، یعنی شدنی است، به این معنی نیست که هر چیزی نوشتید حتما با سیستم عامل های دیگه سازگار ئه و خود به خود سازگاری رو حفظ می کنه. باید از هر روالی که مختص سیستم عامل خاصی است اجتناب کنید تا با سایر سیستم عامل ها سازگار بمونه.

بله .
قبلا گفته بودید .

من مطلبی در این مورد ارتباط NET 5. و Uno platform به چشمم نخورده. خروجی Uno platform در مرورگر اینترنتی اجرا میشه، طبیعیه که در سیستم عامل های متعددی امکان اجراش باشه.

خروجی Uno platform در مرورگر اینترنتی اجرا میشه ؟
یعنی مثل نرم افزارهایی مثل wpf و اینها ، بصورت فایل exe اجرا نمیشه؟
پلتفرم uwp چطور؟
میشه با .net 5 و توسط پلتفرم uwp ، برنامه را در بقیه ی سیستم عامل ها اجرا کرد؟

سوال خیلی عجیبیه، می گویید که نمی دونید در NET. Core ای که ASP.NET Core و UWP و WPF و Windows Forms رو پشتیبانی می کنه، میشه واسط کاربری ساخت یا نه، در حالی که خودتون حداقل با WPF و Windows Forms واسط کاربری طراحی کرده اید.
می دونید که در برنامه هایی که با NET. نوشته میشه می توان واسط کاربری ساخت یا نه؟ واسط کاربری در NET. هم شبیه واسط کاربری در NET Core. ئه دیگه.

اگه اشتباه نکنم ، قبلا گفته بودید که همه ی این کلاس ها (مثل control و ...) که باهاشون کار میکنیم ، به چهارچوب کاری (که در حال حاضر توسط .net framework استفاده میکنیم) ربط داره .
خوب چهارچوب .net 5 و .net core میتونه کلا متفاوت از .net framework باشه و شاید اصلا کنترل های بصری (مثل control و windows و form و ...) را اصلا ارائه نداده باشن . حالا من نمیدونم . چون با .net 5 و .net core آشنا نیستم .

پس الان با .net 5 و .net core هم میشه کنترل (رابط کاربری) و اینها ساخت؟
تشکر استاد .
 

جدیدترین ارسال ها

بالا